Spring Cloud Eureka 一些心得
Spring Cloud Eureka是Spring cloud Netflix 微服务套件的一部分,它基于Netflix Eureka做了二次封装,主要负责完成微服务架构中的服务治理功能。
基础架构
Eureka服务治理的基础架构主要包含服务注册中心,服务提供者,服务消费者。
服务注册中心提供服务注册与发现功能,服务提供者是提供服务的应用,可以是Spring Boot应用,也可以是其他的语言平台遵循Eureka通信机制的应用。服务消费者从服务注册中心获得服务列表,从而使消费者可以知道从何处调用其需要的服务。
实际操作
1.创建一个Eureka Server 的Spring Boot项目。
pom.xml主要信息如下:

需要注意的是spring boot的版本与spring cloud版本。
建立两个配置文件用于测试,分别为:application-peer1.yml与application-peer2.yml。


开启服务注册中心:增加@EnableEurekaServer注解。
在hosts文件下增加:
127.0.0.1 peer1
127.0.0.1 peer2
打包,然后指定配置文件启动。
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2
分别访问8001和8002可以看到如下页面:


可以看出,registered-replicas,avaliable-replicas已经相互关联。如果关闭其中一个,节点会切换至unavaliable-replicas节点。
2.创建一个spring boot web 项目用作关联测试。
pom.xml :

同样,需要注意springboot版本与spring cloud版本。
在application.yml指定注册中心地址:

新建一个测试Controller:

最后增加@EnableDiscoveryClient,打包分别以两个端口启动。
访问eureka server ,可以看到,注册信息:

3.创建一个ribbon-consumer用于简单测试负载均衡。
pom.xml:

application.yml:

测试controller:

入口:

启动ribbon,看Eureka Server的注册信息:

访问ribbon的测试controller:
http://localhost:8088/test-consumer,可以得到之前web project的测试返回结果test。
反复刷新,可以看到请求被平均分配到两个测试服务提供商:

关闭8001的Eureka Server,访问Eureka Server显示8001不可用:

再次访问ribbon的测试入口,访问成功并得到返回值test:

一个简单的Eureka Server+Client+Ribbon的测试完成。
参考资料《Spring Cloud 微服务实战》
网友评论