下载nacos服务端
在GitHub(https://github.com/alibaba/nacos/releases)下载nacos service并解压(Windows版本)。

在conf文件夹里面的application.properties里面可以修改nacos service的启动端口,默认8848
### Default web server port:
server.port=8848
启动nacos service
Windows命令控制台进入bin文件夹执行命令:startup.cmd -m standalone

访问nacos控制端(http://localhost:8848/nacos),默认账号密码都是“nacos”,进入下面的界面,说明nacos服务端就安装成功了。

nacos客户端引入
在父工程pom文件,dependencyManagement标签添加spring alibaba cloud依赖管理
<dependencyManagement>
<dependencies>
<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>
</dependencies>
</dependencyManagement>
在子模块添加nacos客户端依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
添加application.yml系统配置
spring:
application:
name: user-service # 服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848 #nacos服务地址,这里不是全URL 只是ip:port
然后启动子模块,在nacos服务端就可以看到注册信息

nacos负载均衡
nacos和eureka都实现了同样的spring规范,所以很多代码都可以复用,实现负载均衡的方式
配置类注入@Bean
@Configuration
public class MyConfig {
@Bean
@LoadBalanced
public RestTemplate restTemplate(){
return new RestTemplate();
}
// 更改eureka负载均衡配置,方式一:这个加一个bean 这个方式是全局的所有的服务都将用这个策略
@Bean
public IRule randomIRule(){
return new RandomRule();
}
}
方式二:配置文件
user-service:
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
nacos 服务分级存储模型
nacos服务分级存储模型是在原来服务的基础上增加了集群和实例。
集群:如有不同的机房,成都一个机房,上海一个机房,重庆一个机房,就可以在每个地区布置一个集群,成都的用户访问成都的集群,上海的用户访问上海的集群,这样速度会快很多。
实例:一个机房的某台机子部署了某个服务,例如服务器A部署了userservice的服务
设置实例的集群属性
在服务的配置文件application.yml添加配置,重启服务
spring:
application:
name: user-service # 服务名称
cloud:
nacos:
discovery:
server-addr: localhost:8848
cluster-name: chongqing #集群名称
然后再nacos控制端就可以看见不同集群对应的实例

到这一步还没有实现访问同集群的服务,如果选择服务是负载均衡做的,所以还需要修改负载均衡策略,实现集群访问。
user-service:
ribbon:
NFLoadBalancerRuleClassName:com.alibaba.cloud.nacos.ribbon.NacosRule
如果同一个集群里面有多个相同的实例,这时候nacos采用的是随机访问。但是也可以通过配置实例权重实现比例访问。
服务管理-》服务列表-》点击“详情”-》选择实例点击“编辑”-》修改权重。
这样就可以实现,权重越高的服务被访问的概率就越大。
本文详细介绍了如何下载并配置Nacos服务端,包括修改启动端口和启动服务。接着展示了如何在Spring Cloud项目中引入Nacos客户端,并配置相关YAML文件。此外,还讲解了Nacos的负载均衡实现,包括代码配置和YAML配置两种方式。最后,提到了Nacos服务的集群和实例概念,并展示了如何设置实例集群属性以及权重,以实现不同集群的访问策略。
5770

被折叠的 条评论
为什么被折叠?



