• springcloud15:config配置中心+Bus消息总线


    • Config分布式配置中心
      config是干什么的?
      面临问题:统一配置中心,如四个微服务都会访问数据库,我们需要统一配置四个微服务的数据库连接的配置。
      configServer来解决这个问题
    • 提供了集中化的外部配置支持,提供了中心化的外部配置(local git repository)
      分为服务端和客户端
      服务端负责提供配置信息,客户端获取配置信息
    • 搭建分布式配置中心
      启动分布式配置中心然后获取配置文件
      可以通过访问server来获取github上的配置内容
      此时客户端如何访问配置中心的配置?
      bootstrap是系统级的,优先级高与application.yml,是去外部获取一个配置文件
      成功实现了客户端访问服务端通过github配置文件
      动态刷新问题?
      修改github的配置文件,此时服务端访问可以立即拿到修改的,而客户端仍然会拿到以前旧的配置文件(除非重启)重启很难受。
      解决动态刷新问题:
      加入配置和注解(解决动态刷新问题)
      需要运维人员去刷新3355 actuator/refresh
      有多个服务,可否广播通知?大范围的自动刷新?实现差异化自动管理?
    • Bus消息总线(支持springcloud消息总线)
      能够管理和传播分布式系统的消息
      广播的自动刷新,有一个公用的消息主题,该主题产生的消息会被所有实例监听和消费
      RabbitMQ环境配置
    • 两种配置
      第一种:利用消息总线触发一个客户端的刷新操作,然后刷新所有客户端的配置(通知一个客户端然后通知其他)
      第二种:利用消息总线触发一个服务端server的刷新操作而刷新所有客户端的配置(configServer广播)
      第一种破坏了单一性,微服务本身是业务模块
      第一种破坏了服务之间的对等性
      故使用第二种涉及思想
    • 具体编码
      服务端增加Bus的依赖
      yml修改
      客户端做对应的修改
      修改文件,只需要发送请求刷新3344,则全部生效
      curl -X post “http://localhost:3344/actuator/bus-refresh”
    • 动态刷新的定点通知
      精确打击,定点刷新(只通知一个客户端)
      直接在发送请求中加入一个destination参数即可
      curl -X post “http://localhost:3344/actuator/bus-refresh/config-client:3355”
  • 相关阅读:
    vim中粘贴代码片段出现每行新增缩进的解决方法-set paste
    以太坊的最全概念攻略分享与案例分享|猿创征文
    用动图详细讲解——栈
    JSON和全局异常处理
    gRPC 应用指引
    java网络编程Socket output is already shutdown
    扯什么kafka顺序消费,然后呢?古尔丹,代价是什么
    UI设计原则背后的认知心理学 优漫动游
    MySQL数据库——索引(2)-B+Tree、Hash结构,索引分类(聚集索引、二级索引)
    全智V5+AXP233电源管理芯片调试
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/128022631