nacos 注册中心:
功能:发现、配置和管理微服务;服务启动的时候,将服务的信息交给注册中心进行管理,使用心跳机制检 测注册信息的状态,每隔一段时间还会去拉取一份最新的发物列表信息;
步骤:
1- 添加nacos依赖; 2- 在启动类上贴注解 @EnableDiscoveryClient; 3- 在yml配置文件中,添加Nacos服务地址; 4- 启动服务,在Nacos的控制面板中观察服务是否被注册; 5- 启动类中实现RestTemplate的注入,修改实现类,实现微服务调用;restTemplate.getForObject("被调用 服务地址")
ribbon 负载均衡:
功能:服务的提供方会提供多个节点,避免自己去实现负载均衡,Ribbon会将负载的请求、任务进行分摊到 多个操作单元上,解决单个服务请求压力过大问题;
步骤:
1- 在启动类上的RestTemplate类上贴注解 @Loadbalanced; 2- 修改实现类中嗲用其他服务的地址:localhost 改成--> 被调用的服务名; 3- 修改配置来调整Ribbon的负载均衡策略 [RandomRule:随机选择一个]
feign 远程调用服务 :
功能:工作中使用最频繁之一的插件,底层集成了Ribbon;属性 ----> 超时、重试,针对幂等性业务处理; 使得调用远程服务就像调用本地服务一样简单, 只需要创建一个接口并添加一个注解即可。
步骤:
1- 添加feign依赖; 2- 启动类上贴注解 @EnableFeignClients; 3- 创建一个接口,写请求路径和方法(与被调用的服务中的请求路径和方法一样); 4- 在实现类中调用步骤4中的接口; 5- 重启服务测试;
sentinel 服务熔断降级:
功能:因为可用率达不到百分比,少部分请求会出问题,出问题时给出友好提示; 提供了很多方案保护系统,(限流,不会被流量洪峰直接冲垮;降级:三个降级方案,慢比例、异常 比例、异常数比例较高,意味着该接口出现了较大问题,降级,对外不开发不给访问;热点,授权, 黑白名单)以防服务雪崩;可以自定义异常信息和对规则的持久化,
步骤:
在浏览器中设置: 1- 加入Sentinel的依赖; 2- 添加配置,指定Nacos控制台服务的地址; 3- 在可视化界面中进行设置; 服务雪崩的解决: 1- 在某一个服务的配置文件中开启feign对Sentinel的支持; 2- 创建容错类(兜底数据) 3- 在Feign接口中定义容错类:@FeignClient(name = "服务名",fallback = 容错类.class );
Gateway 服务网关:
功能:指系统的统一入口, 作为后台的入口,请求先经过网关,再由网关转发到对应的服务当中; 把一些通过的业务逻辑放到网关当中,比如:登录鉴权操作;
步骤:
1- 创建一个网关的模块,导入相关依赖; 2- 编写配置文件,让gateway可以发现nacos中的微服务; 3- 自定义路由规则;
Sleuth&ZIPkin 链路追踪:
功能:帮我们快速定位到微服务中的问题,原本的去日志文件中查找,难以找到同一次请求所产生的日志; Sleuth:生成一个请求的Id等;ZIPKin:可视化软件;
步骤:
Sleuth:添加sleuth依赖 ZipKin: 1- 添加Zipkin依赖(里面包含了Sleuth依赖); 2- 添加配置;
nacos config 配置中心:
功能:解决各服务的配置重复、修改配置后需要重启的问题、不同环境下各个微服务手动配置维护较困难等 问题,帮助我们统一管理配置,各个服务需要获取配置时就去配置中心拉取配置;
步骤:
配置中心: 1- 与Nacos一致,导入依赖; 2- 将配置文件改成bootstrap.yml,被添加配置信息(作用是:找到Nacos配置列表中对应的配置文件,才能拉取里面的配置) 3- 将各个服务统一需要的配置写在Nacos中的配置列表中,这样多个服务的配置重复问题就解决了; 配置动态刷新: - 在nacos中的某个配置列表中的配置文件的配置项中添加配置; 不同微服务中间共享配置: - 如果想在同一个微服务的不同环境之间实现配置共享,其实很简单。只需要提取一个以 spring.application.name 命名的配置文件,然后将其所有环境的公共配置放在里面即可;