SpringCloud学习笔记(1)——Eureka

时间:2024-02-18 18:42:29

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覆盖这种默认的设置