SpringCloud服务配置

传送门

SpringMVC的源码解析(精品)
Spring6的源码解析(精品)
SpringBoot3框架(精品)
MyBatis框架(精品)
MyBatis-Plus
SpringDataJPA
SpringCloudNetflix
SpringCloudAlibaba(精品)
Shiro
SpringSecurity
java的LOG日志框架
Activiti(敬请期待)
JDK8新特性
JDK9新特性
JDK10新特性
JDK11新特性
JDK12新特性
JDK13新特性
JDK14新特性
JDK15新特性
JDK16新特性
JDK17新特性
JDK18新特性
JDK19新特性
JDK20新特性
JDK21新特性
其他技术文章传送门入口

前言

本文第一代SpringCloudNetflix和第二代SpringCloudAlibaba都有讲解。参考尚硅谷周阳老师的资料。
下面文章不定期更新中。。。

SpringCloud服务注册中心
SpringCloud服务调用
SpringCloud服务降级
SpringCloud服务网关
SpringCloud服务配置
SpringCloud服务总线
SpringCloud消息驱动
SpringCloud链路跟踪
SpringCloud分布式事务

总共Config、Nacos两个服务配置

一、Config

1、概念

Spring Cloud Config是一个用于集中管理配置信息的工具。它提供了一个中央仓库,用于存储应用程序的配置文件,并且可以根据需要将配置文件提供给其他微服务应用程序。通过使用Spring Cloud Config,可以轻松地管理不同环境下的配置文件,如开发环境、测试环境和生产环境。此外,Spring Cloud Config还支持配置文件的版本控制和动态刷新功能,使得配置的更改可以实时生效,而不需要重启应用程序。

并没有停更,只是被更好的Nacos超越了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、入门案例

2.1、服务端修改

改pom
在这里插入图片描述
改yml
在这里插入图片描述
改启动类
在这里插入图片描述
http://localhost:3344/application-dev.yml 访问正常
在这里插入图片描述
gitee的配置,按照视频github一直不行,改换gitee可以了
在这里插入图片描述
master和dev等来区分分支,加上master也可以读取
在这里插入图片描述
在这里插入图片描述

2.2、bootstrap.yml说明

在这里插入图片描述

2.3、客户端修改

改pom
在这里插入图片描述

改yml
在这里插入图片描述
在这里插入图片描述
Controller增加逻辑拿配置
在这里插入图片描述

2.4、动态刷新

在这里插入图片描述
在这里插入图片描述

2.5、坑


因为版本原因,客户端一直没有测试通过。
而且上面的配置也没有真正的动态刷新到,
还需要单独post请求。需要真正动态刷新,
则需要配合bus处理。

加了动态刷新配置后没有效果,需要再次post请求一下这个接口才行 -X PSOT 加上就是post请求,不加就是git请求
在这里插入图片描述
具体的也可以看 传送门 SpringCloudNetflix文章。

二、Nacos

Nacos既是注册中心,又是配置中心。

Nacos (Naming and Configuration Service) 是一个基于云原生应用的动态服务发现、配置管理和服务管理平台。它可以帮助开发人员更好地构建、部署和管理微服务架构的应用。

Nacos 提供了以下核心功能:

  • 服务发现和注册:可以将微服务注册到 Nacos 上,并可以通过 Nacos 进行服务的发现和调用。
  • 动态配置管理:可以将应用的配置信息存储在 Nacos 上,并且可以实时动态更新配置,无需重启应用。
  • 服务和流量管理:可以通过 Nacos 进行服务的路由、流量控制等管理操作。
  • 健康检查和故障治理:可以通过 Nacos 对服务的健康状态进行监测和管理,提供故障治理能力。

在 Spring Cloud 中,Nacos 提供了集成模块,可以方便地与 Spring Cloud 相结合,实现微服务的注册、发现、配置管理等功能。通过使用 Nacos,开发人员可以更加方便地构建和管理微服务架构的应用。

1、概念

Nacos=Eureka+Config+Bus

1.1、下载

在这里插入图片描述
https://github.com/alibaba/nacos 这个网站 点nacos.io过去就是官网
在这里插入图片描述
点开源版会回到前面截图
在这里插入图片描述
这边版本下载

1.2、安装运行

直接解压,出来一个nacos文件夹
在这里插入图片描述
bin下cmd运行命令 startup.cmd -m standalone 因为默认是集群模式了,这边要指明单机模式启动 linux对应为 sh startup.sh -m standalone
在这里插入图片描述
http://localhost:8848/nacos 浏览器访问 账号密码 默认都是 nacos
在这里插入图片描述

1.3、访问

在这里插入图片描述
为了版本一致性,降低到1.4.2了
在这里插入图片描述

2、注册中心

2.1、服务提供者配置

注意:总pom的版本一定要按照官网上要求的来,不然各种坑,各种报错。一定要版本保持一致。
在这里插入图片描述
改pom
在这里插入图片描述
改yml
在这里插入图片描述
改启动类
在这里插入图片描述
业务类 (payment9001 和 payment9002类似,启动集群)
在这里插入图片描述
测试成功
在这里插入图片描述

2.2、消费者配置

改pom
在这里插入图片描述
改yml
在这里插入图片描述
改启动类
在这里插入图片描述
业务类
在这里插入图片描述
restTemplate的坑
在这里插入图片描述
消费者要单独引入,不然报 payment这个url是未知host地址
在这里插入图片描述
报错原因猜测就是 新版并没有看到包含ribbon了。
在这里插入图片描述
测试结果,请求轮询 9001 9002
在这里插入图片描述

2.3、坑

版本一定要匹配,项目中我用错了Alibaba的版本,用的2.2.7导致,服务提供者一直无法注册进去
在这里插入图片描述
为了保证版本一直,将nacos下载安装的降低到1.4.2版本了。下载一个tar.gz包就行了,在三个操作系统window(同上安装)、mac、Linux(官网命令)都能用。
在这里插入图片描述

3、配置中心

3.1、概念

两个配置,bootstrap和application
在这里插入图片描述
官网理论
在这里插入图片描述
视频的配置案例说明(注意深坑,nacos那边配置时, .yml不行呀,要.yaml才行)
在这里插入图片描述
视频的配置(注意深坑,.yml不行呀,要.yaml才行)
在这里插入图片描述
视频的配置(注意深坑,.yml不行呀,要.yaml才行)(这里截图是对的,data ID 要有.yaml的后缀结尾。注意!注意!注意!)
在这里插入图片描述
小总结
在这里插入图片描述

3.2、客户端配置(nacos本身就是服务端)

改pom
在这里插入图片描述
改yml(红框的字,不知道后面有没有优化)(坑:注意yaml的格式,不能被其他配置插入影响了)
在这里插入图片描述
改yml
在这里插入图片描述

改启动类(这个上面加个@RefreshScope,全局影响)
在这里插入图片描述
业务类(这个@RefreshScope可以放在启动类,全局影响)
在这里插入图片描述
nacos配置文件。这个具体可以看上面的概念截图。坑多,配置要非常仔细。(不用像config那样搞github,非常方便)
在这里插入图片描述
测试结果。成功
在这里插入图片描述

3.3、坑

客户端启动错误,坑1,但是还是不行啊,看后面截图
在这里插入图片描述

https://blog.csdn.net/wyz0923/article/details/118303072

网速源码解析
在这里插入图片描述
在application.yml加上name配置就可以了,在bootstrap加上就不行。原因就在于改了规则,得引入bootstrap的依赖
在这里插入图片描述
坑2
在这里插入图片描述
深坑
在这里插入图片描述
深坑,还是报错,因为ymal写错了,正确的是 yaml
在这里插入图片描述
这才是正确的
在这里插入图片描述

3.4、动态刷新

Controller上面加个@RefreshScope注解。
支持nacos的动态刷新,不是被动的,是真正的,不像config那样还得主动post请求什么的,或者结合mq还是要请求。这个主动刷新了,nacos那边的配置一改,马上生效,不用人工去post,不用重启任何微服务,不用重启nacos,真棒!!!。

在这里插入图片描述
真正的动态刷新。秒杀config+bus,帅的一批

3.5、分类配置概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、集群和持久化

4.1、概念

在这里插入图片描述
在这里插入图片描述
持久化说明:
不能用自带的内嵌数据库derby,当要弄nacos集群的时候,每个都在自己带的数据库里面存,数据有一致性问题,所以要 集中用MySQL数据库

4.2、数据库操作(同理移植到Linux系统)

在自己MySQL数据库创建数据库

在这里插入图片描述
改application文件

在这里插入图片描述
视频的修改截图

在这里插入图片描述
我自己修改的截图,注意数据库名称 和用户名和密码修改成自己MySQL数据库的,改错了又是深坑。而且url参考了这个配置文件的(比官网东西多)
在这里插入图片描述重启后发现之前的dev和test等都不见了,说明对了,之前是存到内嵌数据库的,现在链接到了MySQL数据库了。
在这里插入图片描述

4.3、nacos的修改

改conf下面文件
在这里插入图片描述
改conf下面文件(注意,这边一定要在Linux系统查看hostname -i 看到的ip地址,不能是localhost和127)
在这里插入图片描述
养成好习惯,先备份原来的配置文件 .bk结尾
在这里插入图片描述
视频截图,这个我下的版本已经有了,不用搞这个
在这里插入图片描述
视频截图,这个我下的版本由于前面截图已经有了,后面不用跟着搞了,实测可以
在这里插入图片描述

启动命令:
sh startup.sh -p 3333(在bin目录下./startup.sh -p 3333这个居然不行)
sh startup.sh -p 4444
sh startup.sh -p 5555

ps -ef | grep nacos| grep -v grep|wc -l   命令检查几个启动了,是3才对

在这里插入图片描述

4.4、nginx的修改

视频截图
在这里插入图片描述
我自己的截图
在这里插入图片描述
开启端口*(注意把8848也加上去)
在这里插入图片描述

启动命令:
nohup /usr/local/nginx/sbin/nginx &

4.5、坑

在吉帆Linux启动nacos集群的时候,发现linux内存不够用,改shartup.sh把,值改小,依次为 64 64 40,生产环境一般不用改。还是不够用,Linux环境测试放弃
在这里插入图片描述

4.6、日志的坑

默认按照上面的配置启动后,会有大量日志产生。所以后面要关闭一下配置再去启动。
在这里插入图片描述
vim /usr/local/nacos/conf/application.properties
在这里插入图片描述

4.7、小总结

1、集群和持久化,都在Linux系统环境中弄;
2、首先Linux中的MySQL数据库要安装弄好,并且创建数据库nacos_config,然后nacos安装路径下面的application.properties文件要增加db连接等内容连接到Linux系统上的MySQL数据库;
3、其次Linux中的nacos安装好后,在conf文件下创建新文件cluster.conf文件,里面加上3个或3个以上的ip地址和端口;视频改了shutup.sh的启动文件,但是新版本不用改了。并且window环境下需要三份nacos文件,而linux环境下不需要,启动的时候带参数就能抽像成三份。
4、再次Linux中的Nginx要修改nginx.config文件,增加3个ip地址的负载均衡和反向代理。(Nginx本身没有做集群) nohup /usr/local/nginx/sbin/nginx & 启动。

5、上面四个注册中心对比

对比(这里面nacos显示了支撑ap,其实cp也支撑,可以切换),nacos全场景覆盖,相当牛批
在这里插入图片描述
在这里插入图片描述
下面命令就是切换cp模式
在这里插入图片描述

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝影铁哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值