目录
1、在未设置namespace时,所有服务都默认在public
3、将order-service的namespace更改为dev
1、将以下代码复制到父工程的pom文件下
- <!-- nacos依赖-->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-alibaba-dependencies</artifactId>
- <version>2.2.5.RELEASE</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
2、将以下代码复制到子工程的pom文件下
- <!-- nacos客户端依赖包 -->
- <dependency>
- <groupId>com.alibaba.cloud</groupId>
- <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
- </dependency>
-
3、更改子工程的yml文件,在spring下增加nacos的服务地址

4、启动服务

5、查看nacos,发现服务注册成功


- 服务调用尽可能选择本地集群的服务,跨集群调用延迟较高
- 本地集群不可访问时,再去访问其它集群
当服务被注册时,它会有默认的集群,为default
(1)我们现在有如下三个实例
(2)我们要将1,2划分到HZ集群,首先就要在yml文件中增加如下代码
- discovery:
- cluster-name: HZ
(3)然后启动服务1,2
(4)接下来讲服务3划分到SH集群,首先修改yml文件
(5)启动服务3,并在Nacos中查看
(6)将order也划分进入HZ集群,并且清空服务1,2,3的日志
(7)使用get请求访问服务并查看
我们发现它并没有优先访问同集群的实例
所以,我们要在order的yml文件中修改负载均衡规则
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule
(8)重启order服务,并发送get请求
为此,我们可以看到服务1,2有访问,而服务3未被访问,所以优先访问了同集群的服务
(9)关闭服务1,2;并发送get请求
发现这次是服务3处理了这次请求,且有跨域访问的警告


(1)每个服务都有自己的权重
(2)当我将某一机器的权重调整为0.1时,它的被访问量就是其它服务的十分之一
(3)若权重设置为0,则该服务不能接收请求,这样就可以在用户无感知的情况下去做服务升级了
生成了一个id
(1)首先复制id
(2)找到order的yml文件,并添加如下内容
(3)重启order
(4)查看dev空间的服务
(5)且order以无法访问
(6)所以,要让服务可以访问,就必须放在相同的环境下