Nacos服务搭建
在nacos/bin目录中,输入命令启动Nacos:
startup.cmd -m standalone
1.在cloud-demo父工程中添加spring-
<!--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.注释掉order-service和user-service中原有的eureka依赖
3.添加nacos的客户端依赖
<!-- nacos客户端依赖包 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
4.修改user-service和order-service中的application.yml文件,注释掉eureka地址,添加nacos地址
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服务端地址
Nacos服务分级存储模型
Nacos-分级存储就是nacos的集群通过设置集群
① 服务集群属性
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服务端地址
discovery:
cluster-name: HZ # 配置集群名称,也就是机房位置, 例如 HZ 杭州
Nacos-根据集群负载均衡
NacosRule负载均衡策略
①优先选择同级群服务实例列表
②本地集群找不到提供者才去找其他的集群,并会报警告
③确定可用实例列表后,在采用随机负载均衡挑选实例
1.修改order-service中的application.yml,设置集群为HZ:
spring:
cloud:
nacos:
server-addr: localhost:8848 # nacos 服务端地址
discovery:
cluster-name: HZ # 配置集群名称,也就是机房位置
2.然后在order-service中设置负载均衡的IRule为NacosRule,这个规则优先会寻找与自己同集群的服务:
userservice:
ribbon:
NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则
Nacos-根据权重负载均衡
实际部署中会出现这样的场景:
服务器设置性能有差异,部分实例所在的机器性能较好,另一些较差,我们希望性能好的机器承担更多的用户请求
为了解决上述问题Nacos提供了权重配置来控制访问频率,权重越大则访问频率越高
Nacos控制台可以设置实例的权重值,0-1之间
同级群内的多个实例,权重越高被访问的频率越高
权重值设置为0则完全不会被访问
Nacos-环境隔离-namespace
nacos后台管理页面新建命名空间,项目代码配置命名空间
cloud:
nacos:
server-addr: localhost:8848 #nacos 服务地址
discovery:
cluster-name: BJ
namespace: d73b7e1e-c568-43c7-a0fa-dd6a11fcfefb # dev 环境的命名空间
①namespace用来做环境隔离
②每个namespace都是唯一的id
③不同的namespace下的服务不可以见
Nacos与Eureka的对比
共同点:
①都支持服务的注册和拉取
②都支持服务提供者心跳方式提供健康监测
不同点:
①Nacos支持服务端主动监检测提供者状态,临时实例采用心跳模式,非临时实例采用主动检测模式.
②临时实例心跳不正常会被剔除,非临时实例则不会被剔除
③Nacos支持服务列表变更的消息推送模式,服务列表更新及时
④Nacos集群默认采用AP方式,当集群众中存在非临时实例时,采用CP模式,;Eureka采用AP方式.
需要项目代码及nacos安装包 联系博主.
相关文章
暂无评论...