Nacos服务注册与发现的原理

注册中心:
当服务调用者需要调用多个服务提供者的实例的时候,为保证服务能正常运行而不宕机,服务提供者需要将实例都注册到一个注册中心去,由注册中心管理,并且定时向注册中心汇报心跳,提供健康状态,然后服务调用者去注册中心订阅服务并且完成远程调用。一旦服务提供者的某个实例健康状态异常,注册中心会注销该实例,以避免服务调用者的服务宕机。同时,每个服务即是服务调用者又是服务提供者。

常用的注册中心组件:Nacos

服务注册:
1、导入Nacos依赖


com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery

2、配置yml文件
spring:
application:
name: service #注册到Nacos的服务名,不写会报错
cloud:
nacos:
discovery: #服务注册
server-addr: localhost:8848
3、启动类上加注解(可不写)
@EnableDiscoveryClient //开启服务发现,可以不打

服务发现:服务的消费者要去nacos订阅服务,这个过程就是服务发现
1、导入Nacos依赖(与服务注册一样)


com.alibaba.cloud
spring-cloud-starter-alibaba-nacos-discovery

2、配置文件(同上)

虽然利用Nacos实现了服务的治理,但是利用RestTemplate实现服务的远程调用的代码太复杂了,因此需要OpenFeign组件

OpenFeign组件:
1、 导入依赖

org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-starter-loadbalancer 2、在启动类上添加@EnableFeignClient注解,启动OpenFeign功能 3、定义一个新的接口,编写Feign客户端,里面只需要声明接口,无需实现方法 4、注入客户端,使用FeignClient
posted @ 2024-10-11 21:06  Kwaibu  阅读(65)  评论(0)    收藏  举报