服务发现是微服务架构体系中最关键的组件之一。如果尝试着用手动的方式来给每一个客户端来配置所有服务提供者的服务列表是一件非常困难的事,而且也不利于 服务的动态扩缩容。Nacos Discovery Starter 可以帮助您将服务自动注册到 Nacos 服务端并且能够动态感知和刷新某个服务实例的服务列表。除此之外,Nacos Discovery Starter 也将服务实例自身的一些元数据信息-例如 host,port,健康检查URL,主页等-注册到 Nacos 。
如上图,如果此时用户打车成功,会调用订单服务,订单服务会修改司机状态,此时会调用hailtaxi-driver,如果是生产环境,每个节点一定是集群状态,比如有2个hailtaxi-driver节点,此时如何实现负载均衡?

我们可以发现服务注册到Nacos中,有一个权重属性,这个权重属性就是Nacos的负载均衡机制,此时需要用到Nacos的负载均衡策略NacosRule,我们可以在程序中先初始化负载均衡算法,再到bootstrap.yml中配置权重。
1、我们可以在Nacos控制台配置项目的配置数据,先打开Nacos控制台,在命名空间中点击新建命名空间

2、修改hailtaxi-driver中的bootstrap.yml配置文件,指定命名空间
spring:
application:
name: hailtaxi-driver
cloud:
nacos:
discovery:
# nacos 服务注册地址
server-addr: 192.168.200.200:8848
weight: 1
# 指定命名空间的id
namespace: 1ebba5f6-49da-40cc-950b-f75c8f7d07b3
config:
server-addr: 192.168.200.200:8848
# 指定命名空间的id
namespace: 1ebba5f6-49da-40cc-950b-f75c8f7d07b3
# 如果将配置信息保存到nacos,指定配置文件扩展名
file-extension: yaml
# nacos config dataid name 默认加载 ${spring.application.name}.${file-extension},当然也可指定
#name: hailtaxi-driver.yaml
3、在nacos中添加配置

4、启动测试:
我们启动hailtaxi-driver服务,默认加载
s
p
r
i
n
g
.
a
p
p
l
i
c
a
t
i
o
n
.
n
a
m
e
.
{spring.application.name}.
spring.application.name.{file-extension:properties} 配置,加载完成后,配置数据会生效,并访问
http://localhost:18081/driver/info/1 测试,效果如下:

配置自动刷新对程序来说非常重要,Nacos支持配置自动刷新,并且提供了多种刷新机制。
1、Environment自动刷新
2、@Value刷新-程序中如果写了@Value注解,可以采用@RefreshScope实现刷新,只需要在指定类上添加该注解即可
灰度配置指的是指定部分客户端IP进行新配置的下发,其余客户端配置保持不变,用以验证新配置对客户端的影响,保证配置的平稳发布。灰度配置是生产环境中一个比较重要的功能,对于保证生产环境的稳定性非常重要。在1.1.0中,Nacos支持了以IP为粒度的灰度配置