版本说明
我用的版本为springboot2.5.5+springcloud2020.0.4。
nacos集群配置
相关依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>
(2020.0版本的springcloud配置bootstrap.yml需要引入第三个依赖)
1.修改nacos/conf下的cluster.conf.example文件,去掉example后缀名,更改为cluster.conf
2.修改cluster.conf中的集群的ip地址以及端口(我是在本地搭的集群,如果是在服务器上搭建就把ip地址改一下)

3.修改nacos/conf下的application.properties中的端口server.port修改为该机器的端口

去掉关于数据库的注释并修改数据库名称、用户和密码。

4.修改完成后复制两份nacos文件并修改端口
5.进入各自的nacos/bin目录下打开cmd,直接输入 start.up.cmd启动
配置nginx负载均衡
打开nginx/conf下的nginx.conf文件
在http{}中加入
upstream nacos-cluster{
server localhost:8845;
server localhost:8847;
server localhost:8849;
}
server{
listen 8003;
server_name localhost;
location /nacos{
proxy_pass http://nacos-cluster;
}
}
把端口改成各个nacos配置中的端口
启动nginx
访问localhost:8003/nacos即可负载均衡到nacos中
idea修改配置文件

把server-addr:改为nginx中配置的端口
启动服务后即可在nacos中找到该服务
记录一个小坑
利用openfeign调用远程服务时发现了这个错
Caused by: java.lang.IllegalStateException: No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalancer
2020.0版本的springcloud中把spring-cloud-starter-netflix-ribbon换成了 spring-cloud-loadbalancer
既然他说我忘记引入loadbalancer,我就引入,引入后如下
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
再次启动,他又报了这个错
java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose(Ljava/lang/String;Lorg/springframework/cloud/client/loadbalancer/Request;)Lorg/springframework/cloud/client/ServiceInstance;
最后发现是由于导入 spring-cloud-loadbalancer后nacos中 spring-cloud-starter-netflix-ribbon会与它冲突,造成loadbalanc包失效
于是在最后,在nacos依赖中排除掉netfix-ribbon包就好了,依赖如下
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
参考这篇博文

本文档详细介绍了如何配置SpringBoot 2.5.5与SpringCloud 2020.0.4集成的Nacos集群,包括修改Nacos配置文件、启动多实例及通过Nginx实现负载均衡。同时,文中提到了一个常见问题:在使用OpenFeign进行服务调用时遇到的依赖冲突,并给出了解决方案,即排除SpringCloud Starter Netflix Ribbon依赖。
1755

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



