使用
概述:
这里是使用Nacos作为服务的注册中心出现的. 起到的是服务发现组件 和 服务配置服务器的作用.
使用:
下载Nacos: https://github.com/alibaba/nacos/releases 下载的是和项目引入的
依赖同版本的Nacos.比如我,cloud-alibaba的依赖是1.14的.
alibaba的版本是2.2. 在宰割pom文件中nacos的版本是1.1.4
启动:
sh startup.sh -m standalone
配置:
spring:
cloud:
nacos:
discovery:
server-addr:
localhost:8848
如果需要其个名称的话,只需要这样既可:
spring:
application:
name: user-center
使用Nacos,不需要配置什么注解. 只要引入了依赖,启动了nacos,在编写配置.可以直接使用SpringBoot的启动类启动.
理论
领域模型
在Nacos中,是由领域模型的. 就是用来划分 微服务实例的.用来满足各种开发中的需求.
NameSpace
命名空间,实现微服务的隔离. 而且 微服务不能跨NameSpace调用. 默认级别为 public.
我们可以在 Nacos页面中 建立命名空间.会生成一个 ID. 我们可以在yml文件中配置该 ID.
还可以用于不同环境下的使用. 比如开发环境,测试环境,生产环境.
Group
分组,将不同的微服务划分到一个组内.
Service
微服务,自上而下的整个微服务.
Cluster
集群: 多个提供同样功能的服务集合. 在Nacos中是对微服务的划分. 默认为 DEFAULT.
而集群名字 则是认为的划分. 我们在 yml 中配置,
反应到 nacos 网页上面
而且我们可以针对性的划分集群. 比如,南京机房,北京机房. 如果 北京机房出了问题的话,
我们可以切换到南京机房.
Instance
微服务实例.
元数据
Nacos 的元数据 可以自定义一些信息. 其中的k,v 都可以自己定制. 比如:
还可以在 nacos 的网页上书写:
那么 元数据有什么用呢?? 我们一般用来 描述一些版本信息,权重,容灾策略等等.
从而在微服务发生故障时,根据已配置好的信息,来执行相应的操作
DiscoveryClient
而 DiscoveryClient 是 SpringCloud 提供的接口.
无论是 eureka,zuul,还是 consul 都可以使用.
@Autowired
private DiscoveryClient discoveryClient;
@GetMapping("/getInstances")
public List<ServiceInstance> getInstances(){
List<ServiceInstance> instances = discoveryClient.getInstances("x");
return instances;
}
而 DiscoveryClient 的API 见名知意. 就会知道该怎么使用