java B2B2C 源码 多级分销Springcloud多租户电子商城系统-使用spring cloud Bus刷新配置
我们使用spring cloud做了b2b2c的电子商务系统,除了架构本身自带的系统服务外,我们将b2b2c的业务服务进行了细粒度拆分,做成了不同的业务微服务。
文章来源 java B2B2C 源码 多级分销Springcloud多租户电子商城系统
当我们的业务系统越来越庞大复杂的时候,各种配置也会随之增多。配置文件只要一修改,会对commonservice-config配置中心先停止服务,然后再重新启动,最后使配置生效。
如果服务少,我们可以手动方式来启动,但是对业务和系统的稳定性肯定有一定的影响。
如果是成百上千的服务都靠手动操作,我估计运维人员或技术人员会疯掉的。
针对以上问题,commonservice-config服务端和业务微服务分别做了相关的配置,服务端负责将git(svn或本地文件系统)中存储的配置文件进行配置化,业务微服务通过配置从服务端配置中心获取相关配置,如果配置文件变动了,通过刷新业务微服务的方式,将最新的配置信息获取。
spring cloud Bus通过一个轻量级消息代理连接分布式系统的节点。这可以用于广播状态更改(如配置更改)或其他管理指令。
接下来,我们就来实施通过spring cloud Bus方案,动态刷新服务端配置:
1 新建项目microservice-config-client-refresh-cloud-bus
2 为项目添加spring-cloud-starter-bus-amqp依赖
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bus-amqp</artifactId> </dependency> </dependencies>
修改bootstrap.yml内容
spring: application: name: microservice-foo # 对应config server所获取的配置文件的{application} cloud: config: uri:http://localhost:8080/ profile: dev # profile对应config server所获取的配置文件中的{profile} label: master # 指定Git仓库的分支,对应config server所获取的配置文件的{label} rabbitmq: host: localhost port: 5672 username: guest password: guest
测试
1 启动microservice-config-server。
2 启动microservice-config-client-refresh-cloud-bus。
3 将microservice-config-client-refresh-cloud-bus端口改为8082,再启动一个节点。
4 访问http://localhost:8081/profile,此时获得结果:dev-1.0
5 将Git仓库中的microservice-foo-dev.properties文件内容修改为profile=dev-1.0-bus
6 发送POST请求到一个Config Client实例的/bus/refresh
7 访问两个Config Client实例的/bus/refresh端点,会发现两个节点都返回profile=dev-1.0-bus

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【最全资料下载+视频回顾】云栖TechDay - PG天天象上活动 - 合肥站
活动介绍 贸易摩擦、中兴事件、以及近期某银行收到Oracle6亿罚单等等的热点事件,引发了企业对核心技术安全合规、自主可控的深度思考。对于数据库来说,安全合规、自主可控,成本等也已经成为绝大多数企业迫在眉睫要解决的问题。 什么数据库最适合替代Oracle,同时在技术架构上领先于传统数据库,并且可以支持企业的蓬勃发展?除了需要考虑Oracle兼容性、企业特性(可靠、可用、安全、可扩展、性能、稳定、功能)还需要考虑产品的开源许可,多模特性,混合场景能力等等。 PostgreSQL作为最先进的企业级开源数据库(BSD like开源许可,自用和分发都不需要担心法律风险,不需要担心PG被收购,不用担心PG被一家独大的公司控制。),覆盖OLTP,OLAP,NoSQL,搜索,时空,流,图,图像等应用场景。应用场景丰富,并且在稳定性、性能、可用性、可靠性、容灾、安全性、扩展性等方面不亚于商用数据库Oracle,被业界称为“开源界的Oracle”。在企业数据库自主可控、安全合规、成本几个方面,PG毫无疑问的成为了企业的最佳选择。 为帮助企业掌握去O能力。阿里云数据库团队、PG社区、云栖社区、云栖技术日、...
- 下一篇
Node.js+express+MongoDB+socket.io 做的一个即时聊天案例
说明 目录说明: config 配置目录 public 公共资源文件目录 scripts 框架自带js文件 server 服务端文件 src 客户端文件 component 组件文件 container 页面文件 redux 常量与redux文件 APP.js index.jx 入口文件 reducer.js 包含所有的reducer文件 store.js 包含store文件,扩展其它插件 演示图片 ![Uploading file...]() 我是拿某款录屏gif软件录的,导致点击发送消息的时候,发送了两次,实际上只有一次,原因应该是服务端触发了两次广播,懒得改了。。。将就看吧! 项目包说明 antd 蚂蚁金服的react组件 按需加载流程 安装antd `npm install antd --save` 暴露eject npm run eject 安装babel-plugin-import `npm install babel-plugin-import --save` 修改package.json如下代码 `"babel": { "presets": [ "react-app" ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS8安装Docker,最新的服务器搭配容器使用
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,CentOS7官方镜像安装Oracle11G
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2整合Thymeleaf,官方推荐html解决方案