Spring Cloud
Spring Cloud为开发者快速构建通用的分布式系统(例如:配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性的Token、全局锁、领导者选举、分布式会话、集群状态)提供工具。
这里用的是最新版本Edgware
操作步骤
1、新建一个工程作为Eureka Server
创建完成后的pom.xml文件是这样的
接下来,运行一个Eureka Server
所以,最终这个工程看起来是这样的
启动以后,在浏览器中输入http://localhost:8761/就能看的如下界面
2、接下来,再建一个工程作为Eureka Client。唯一不同的是artifact id换成spring-cloud-starter-netflix-eureka-client
接下都是翻译自官方文档中第三部分Spring Cloud Netflix第11章部分小节
11.2 Registering with Eureka
当客户端用Eureka注册的时候,它提供自身的元数据,比如主机、端口、url、主页地址等等。Eureka接收某个服务下所有实例的心跳消息。如果心跳检测失败(超过配置的超时时间)了,那么这个实例通常会被从注册列表中删除。
只要在你的应用的classpath下有spring-cloud-starter-netflix-eureka-client,那么将会自动注册到Eureka Server。当然需要配置Eureka Server的地址。例如:
默认的应用的名称、虚拟主机和非安全的端口分别用${spring.application.name}、${spring.application.name}和${server.port}代表。
如果不想让Eureka发现客户端,你可以设置eureka.client.enabled的值为false
于是
观察两边的启动日志
此时再看http://localhost:8761/
11.4 Status Page and Health Indicator
Eureka实例的状态页面和健康指示器默认情况下分别用"/info"和"/health"代表。当然这个是可以改的。默认就像下面这样
11.6 Eureka’s Health Checks
默认情况下,Eureka用客户端心跳检测来判断一个客户端是否活着。除非有特殊情况,否则这个客户端不会传播这个应用的健康检查状态给每个Spring Boot监控器。这就意味着在注册成功以后,将总是宣称这个应用是"UP"状态。这个行为可以被Eureka健康检查改变,这种改变的结果就是传播应用的状态给Eureka
注意:eureka.client.healthcheck.enabled=true只应该写在application.yml中。
11.7.3 Changing the Eureka Instance ID
默认的实例ID的格式是这样的:${spring.cloud.client.hostname}:${spring.application.name}:${spring.application.instance_id:${server.port}}}
当然,可以使用eureka.instance.instanceId覆盖这种默认的设置