对比
Nacos
服务发现组建,也是配置服务器
用来解决服务a如何找到服务b、并且管理微服务
下载应用程序,并打开,以启动Nacos Server
加依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>${latest.version}</version>
</dependency>
没有注解。
写配置,制定Nacos Server的地址、服务名称
spring:
cloud:
nacos:
discovery:
#指定nacos server的地址
server-addr: localhost:8848
application:
#服务名称尽量用-,不要用_及特殊字符
name: user-center
领域模型
namespace:主要用于隔离,例如隔离开发环境,生产环境,测试环境等。不能跨namespace调用实例。
group:把不同的微服务放到一个分组里,方便管理。(alibaba0.9.0中没有用到)
service:微服务
cluster:集群,对指定微服务的虚拟划分
instance:微服务实例
namespace和cluster:
namespace需要在控制台上先创建好
spring:
cloud:
nacos:
discovery:
#写控制台创建好的namespace的UUID,不能写名称!!
namespace: XXX
#集群名称自己起
cluster-name: xxx
元数据
Nacos的数据描述信息,如服务版本、权重、容灾策略、负载均衡策略、鉴权配置、各种自定义标签。
从作用范围看,分为服务级别元数据、集群级别元数据、实例级别元数据。
目前spring cloud alibaba0.9.0中,服务和集群级别元数据暂时用不上。
作用:
提供描述信息。
让微服务调用更加灵活。(微服务的版本控制,例如v1client只能调用v1server之类)
如何设置?1.控制台设置2.配置文件
spring:
cloud:
nacos:
discovery:
metadata:
#key: value的形式即可
a: b
haha: hehe
version: v1
负载均衡
实现方式:
服务器端负载均衡:
客户端负载均衡:
Ribbon
是开源的客户端负载均衡器。
ribbon会从nacos上获取要调用的服务地址列表,通过自有算法算出一个实例,交给restTemplat