1、Feign是SpringCloud组件中的一个轻量级RESTful的HTTP服务客户端,Feign内置了Ribbon,用来做客户端负载均衡,去调用服务注册中心的服务。 OpenFegin是SpringCloud在Feign的基础上支持了SpringMVC的注解,如RequestMapping等等。OpenFeign的@FeignClient可以解析SpringMVC的@RequestMapping注解下的接口,并通过动态代理的方式产生实现类,实现类中做负载均衡并调用其他服务。 2、使用docker中国官方镜像下载 docker pull registry.docker-cn.com/library/ubuntu:16.04 3、hystrix单独使用 @EnabledHystrix和@HystrixCommand配合使用 4、触发熔断时机 缺省是5秒内20次调用失败 5、断路器开启和关闭的条件 5.1 默认10秒内超过20个请求次数并且失败率达到一定的时候(默认10秒内超过50%的请求失败),断路器将会开启,当开启的时候,所有请求都不会进行转发 5.2 一段时间之后(默认是5秒),这个时候断路器是半开状态,会让其中一个请求进行转发,如果成功,断路器就会关闭,若失败,继续开启。 6、hystrixDashboard需要配合actuator依赖使用 6.1 pom.xml引入spring-cloud-starter-netflix-hystrix-dashboard依赖并在启动类标注@EnabledHystrixDashboard,并在启动类上加如下代码:
@Bean
public ServletRegistrationBean getServlet() {
HystrixMetricsStreamServlet streamServlet = new HystrixMetricsStreamServlet();
ServletRegistrationBean registrationBean = new ServletRegistrationBean(streamServlet);
registrationBean.setLoadOnStartup(1);
registrationBean.addUrlMappings("/hystrix.stream");
registrationBean.setName("HystrixMetricsStreamServlet");
return registrationBean;
}
6.2 所有Provider服务类需要pom.xml需要引入spring-cloud-starter-actuator依赖 7、spring cloud gateway不能与web、actuator并存 当项目中引入spring-cloud-starter-gateway依赖时,需要移除 spring-boot-starter-web依赖和spring-boot-starter-actuator依赖 8、config客户端手动刷新配置 以微服务localhost:3355为例 8.1 pom.xml文件引入spring-boot-starter-actuator依赖 8.2 bootstrap.yml文件中暴露监控端点:
management:
endpoints:
web:
exposure:
include:"*"
8.3 @RefreshScope标注在Controller类中 8.4 需要运维人员发送POST请求手动刷新
curl -X POST "http://localhost:3355/actuator/refresh"
9、什么是消息总线 在微服务架构系统中,通常会使用轻量级的消息代理来构建一个共用的消息主题,并让系统中所有微服务实例都连接上来。由于该主题中产生的消息会被所有实例监听和消费,所以称它为消息总线。在总线上的各个实例 ,都可以方便地广播一些需要让其他连接在该主题上的实例都知道的消息。 基本原理: ConfigClient实例都监听MQ中同一个topic(默认是springCloudBus)。当一个服务刷新数据的时候,它会把这个消息放入到Topic中,这样其它监听同一个Topic的服务就能得到通知,然后去更新自身的配置。 使用方式有两种: 第一种方式:利用消息总线触发一个客户端/bus/refresh,而刷新所有客户端的配置(不推荐使用,不应该承担刷新配置的职责) 第二种方式:利用消息总线触发一个服务端ConfigServer的/bus/refresh端点,而刷新所有客户端的配置。 10、bus定点通知,指定具体一个实例生效而非全部实例 3344指的是configServer配置中心的端口 3355指的是configClient客户端的端口 10.1 全部通知:
curl -X POST "http://localhost:3344/actuator/bus-refresh"
10.2 定点通知:
# config-client指的是微服务名称,3355是端口号
curl -X POST "http://localhost:3344/actuator/bus-refresh/config-client:3355"
11、Nacos支持AP和CP模式的切换 切换命令:
curl -X PUT '$NACOS_SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'
|