Actuator
1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2.端点检测(end-points)
通过一系列的 ip + port + end-points 的RESTful的请求来检测该服务的运行状态
比如:
http://localhost:8080/health
/info
同时端点还可以自定义
我们在client客户端开启健康检查healthcheck就可以把本服务的健康信息传给Eureka Server了 ;
还是同样springboot的套路,想实现更多的功能,实现HealthCheckHandler接口
3.敏感/安全
关于端点信息的http请求是否可用,是可以进行相关设置的
具体关于actuator的操作以后到了需要使用的时候,详细编写
Eureka
如果在consumer里面把provider的地址写死在代码里面肯定不行(硬编码)
我们可以写在配置文件里面,之后用springcloud-config/apollo修改;
当然也可以单独起一个zk/eureka来用于服务注册和服务发现,这样consumer直接通过Eureka来找provider就可以了。
1.fetchRegistry
是否从Eureka Server中获取注册信息,默认为true,如果有多台Eureka Server,那肯定是要数据同步的
2.高可用Eureka Server集群
我们在一个Eureka Server的配置文件里面配置两个profiles对应两个instance
这样的话,按照profile启动2次就可以有2个Eureka Server的集群了;
我们在client端的时候在defaultZone:可以写多个url,也可以只写一个url,但是这里建议全写(万一你写的那一个Eureka Server挂了呢)
3.基于安全认证的Eureka Server
在pom.xml里面加一个
spring-boot-starter-security的包,这样就可以在applicaiton.yml里面配置http协议的账号密码访问了
我们访问Eureka Server的页面输入账号密码即可;
同样,注册到Eureka Server也需要账号密码,我们在defaultZone:处写上 http://USER:PASSWORD@IP:PORT/eureka/即可;
按照spring的老套路,对于更复杂的需求,有对应的需要实现的类,给你更多自定义的实现
4.Eureka元数据
我们可以在application.yml里面配置一些自定义元数据
这些元数据可以被其他注册到该注册中心的microServer查看标准元数据和自定义元数据
5.使用RESTful HTTP协议向Eureka Server注册
这里直接不看,没这个需求(需要POST大量XML)
6.Eureka Server自我保护
一般情况下,某个微服务与Eureka Server失去连接90S以后,Eureka Server会自动删除这个服务
但是如果是因为网络分区故障,短时间有大量微服务没有连接,那么Eureka Server会启动自我保护机制,暂时保留所有的微服务
7.Eureka网卡
不谈
8.Jersey
Eureka使用的RESTful框架是Jersey,如果想换的话,自己在Eureka包里面exclusion
Ribbon
Ribbon是处在consumer端的,consumer找Eureka Server获取provider列表,然后ribbon负责实现负载均衡->provider
1.@LoadBalanced
在RestTemplate上直接加该注解,就让RestTemplate具备了负载均衡能力
2.virtual-hostname
我们使用ribbon的时候,这里就不用写调用之前从application.yml里面拿到的EureakServer的地址,而是直接使用微服务注册到EurekaServer的主机名,来作为访问地址
3.自定义Ribbon
①主要分为java实现类来自定义Ribbon
②属性配置自定义Ribbon(简单一些)
这里不做说明和操作,具体操作查看文档
4.脱离Eureka使用Ribbon
这种情况不考虑,有此需求的自己查文档
5.饿汉加载
可以把Ribbon从懒汉式改成饿汉式