微服务架构的常见问题
- 这么多小服务,如何管理他们?(服务治理 注册中心【服务注册,发现,删除】 nacos
- 他们之间怎么通讯?以前,httclient(“url”,参数),springBoot restTemplate(“url”,参数),现在,(restful rpc dubbo feign)
- 客户端怎么访问他们?(网关)gateway
- 一旦出现问题,怎么自处理?服务熔断,比如服务雪崩, sentinel
- 一旦出现问题,怎么排错? (链路终端)skywalking实现
1.什么是Nacos
官网:一个更利于构建云原生应用的动态服务发现(Nacos Discovery)、服务配置(Nacos Config)和服务管理平台。
集注册中心+配置中心+服务管理平台
关键特性包括:
- 服务发现和服务健康监测
- 动态配置服务
- 动态DNS服务
- 服务及其元数据管理
核心功能
Nacos Discoery
-
服务注册:系统一启动,Nacos Client会发送rest请求向Nacos Server注册自己的服务,提供自身的元数据,如ip,端口号等信息。
-
服务心跳:在服务注册之后,Nacos Client会维护一个定时心跳来通知Nacos Server,说明自己一直处于可用状态,防止被删除,默认5s发送一次。
-
服务同步:Nacos Server集群之间会互相同步服务实例,用来保证服务信息的一致性。
-
服务发现:Nacos Client发送一个Rest请求向Nacos Server获取服务清单,并缓存到本地,后面会定时获取
-
服务健康检查:Nacos Server会开一个定时任务来检查注册服务清单的健康情况,如果超过15s没有收到客户端的心跳,则会将healthy属性设置为false(服务发现不能获取),如果超过30s,直接删除该实例(重新服务心跳才会重新注册)。