个人学习SpringCloud系列 分布式配置中心服务化与高可用篇

Github Link: https://github.com/panjianlong13/SpringBoot-SpringCloud/tree/master/spring-cloud-config-eureka

代码大部分参考(https://github.com/souyunku/SpringCloudExamples/tree/master/spring-cloud-config-eureka


客户端都是直接调用配置中心的server端来获取配置文件信息。这样就存在了一个问题,客户端和服务端的耦合性太高,如果server端要做集群,客户端只能通过原始的方式来路由,server端改变IP地址的时候,客户端也需要修改配置,不符合springcloud服务治理的理念。springcloud提供了这样的解决方案,我们只需要将server端当做一个服务注册到eureka中,client端去eureka中去获取配置中心server端的服务既可。

Eureka Service Server

作为服务注册中心,端口8761,此处不再详述

Eureka Provide

spring-cloud-eureka-provider-1 8081
spring-cloud-eureka-provider-2 8082
spring-cloud-eureka-provider-3 8083

作为服务提供者

添加依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-client</artifactId>
</dependency>

开启服务注册

 application.properties

spring.application.name=eureka-provider
server.port=8081

spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri=http://localhost:8888/

eureka.client.serviceUrl.defaultZone=http://localhost:8761/eureka/
spring.cloud.config.discovery.enabled=true
//Get Config By Calling Config Server (ServiceId) 
spring.cloud.config.discovery.serviceId=config-server

Feign Consumer

服务消费者,端口9000

添加依赖

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-eureka</artifactId>
 </dependency>

 <dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-feign</artifactId>
 </dependency>

application.properties

Config Server

配置中心,端口8888,添加依赖,相比上篇加入Eureka

application.properties

依次启动Eureka Server,Config Server,Provider和Feign Consumer,在Eureka界面中可以看到 http://localhost:8761/

访问http://127.0.0.1:9000/hello  ,可以通过不同的Provider得到参数值


配置中心高可用

为了模拟生产集群环境,此处启动两个Config Server,会有两个server端同时提供配置中心的服务,防止某一台down掉之后影响整个系统的使用。新的一台Config Server端口为8889

当模拟一台宕机情况停掉Config1时,配置中心服务仍可使用,实现了配置服务的高可用

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐