栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

SpringCloud2020.0版本Nacos集群配置以及踩到的坑

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringCloud2020.0版本Nacos集群配置以及踩到的坑

版本说明

我用的版本为springboot2.5.5+springcloud2020.0.4。

nacos集群配置

相关依赖

    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
    

    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-config
    

    
        org.springframework.cloud
        spring-cloud-starter-bootstrap
    

(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,我就引入,引入后如下

    
        org.springframework.cloud
        spring-cloud-starter-openfeign
    
    
        org.springframework.cloud
        spring-cloud-starter-loadbalancer
    

再次启动,他又报了这个错

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包就好了,依赖如下

    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
        
            
                org.springframework.cloud
                spring-cloud-starter-netflix-ribbon
            
        
    

参考这篇博文

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/395900.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号