Spring Cloud 之 Service Registry

Spring Cloud 之 Service Registry

目前使用的较多的是Eureka和consul,这里使用eureka作为服务注册中心。Eureka是Netflix开源的一款产品,它提供了完整的Service Registry和Service Discovery实现,Spring Cloud Eureka就是基于它开发的,不过目前2.x已经停止开源了,但是并不影响,大多数公司目前还是使用的1.x版本。

背景

为什么需要服务注册中心,它有什么作用?

在项目分布式之后,各个服务之间的调用就会变得异常复杂,如果这个歌时候修改其中某个服务,那么跟它相关的所有服务都需要更新一遍,这样很麻烦并且容易出错。服务注册中心可以让开发者无需关心需要调用的服务的地址,统一从注册中获取可以调用的服务再去调用服务即可。所有服务都在服务注册中心进行注册,这样就可以很方便的通过注册中心对每个服务进行监控。

Eureka的架构

  1. Eureka Server
    • Eureka服务器,提供服务注册与发现的功能
  2. Service Provider
    • 服务提供者
    • 讲自己注册到注册中心,让其他服务能够发现
  3. Service Consumer
    • 服务消费者
    • 从Eureka获取服务列表用于消费

步骤

  1. 新建一个SpringBoot工程

引入Eureka核心依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
  1. 编写配置
server:
  port: ${EUREKA_PORT:8761}

spring:
  application:
    name: eureka-server

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      default-zone: http://${EUREKA_ZONE_HOST:localhost}:${EUREKA_ZONE_PORT:8761}/eureka/
  # 开发环境关闭自我保护模式
  server:
    enable-self-preservation: false

logging:
  file: log/eureka-server.log
  1. 添加启动注解

在启动类上添加@EnableEurekaServer注解,用于启动

@SpringBootApplication
@EnableEurekaServer
public class RegistryApplication &#123;

    public static void main(String[] args) &#123;
        SpringApplication.run(RegistryApplication.class, args);
    &#125;

&#125;
  1. 启动应用

启动应用后,访问localhost:8761,就可以看到Eureka的界面了,可以看到此时还没有任何服务注册。

总结

Eureka的基本搭建比较简单,但是单注册中心在生产环境中不能做到高可用,一旦挂了就会影响整个系统,所以在线上需要多个Eureka互相注册以达到高可用。


   转载规则

本文不允许转载。
 上一篇
Spring中的Event实战 Spring中的Event实战
Spring中的Event实战 这篇文章用于介绍event在Spring中的使用,同时也是一篇偏实践性的文章。event在Spring中容易被忽略,但是这是一个非常有用的功能。与Spring中的许多其他功能一样,event也是Applica
2019-09-19
下一篇 
排序算法之冒泡、选择、插入 排序算法之冒泡、选择、插入
排序算法之冒泡、选择、插入冒泡排序 冒泡排序,顾名思义,就像在水里水泡会一个一个往上冒,先冒出来的是小的,然后逐渐变大。基本思路就是: 数组中的两个元素两两比较,如果前面的数比后面大就交换 每一轮中对每一对相邻的元素作比较,每一轮比较过后