configserver高可用(代码片段)

linjiqin linjiqin     2023-03-02     797

关键词:

一 简介
构建高可用的Config Server集群,包括Config Server的高可用,以及依赖Git仓库的高可用。

二 Git仓库的高可用
由于配置的内容都存储在Git仓库中,所以要想实现Config Server的高可用,必须有一个高可用的Git仓库。有两种方式可以实现Git仓库的高可用。
1 使用第三方的Git仓库:这种方式非常简单,可使用例如Github、BitBucket、[email protected]、Coding等提供的仓库托管服务,这种服务本身就已经实现了高可用。
2 自建Git仓库管理系统:使用第三方服务的方式虽然省去了很多麻烦,但是很多场景下,倾向于自建Git仓库管理系统。此时就需要保证自建Git的高可用。

三 Config Server注册到Eureka Server上
a、mima-cloud-config-server服务启动两个节点,分为为6063、6066
技术分享图片

b、mima-cloud-config-client服务bootstrap.yml配置
1、单机bootstrap.yml配置:

#注意config-client的配置需要放到bootstrap.yml中
management:
  security:
    enabled: false
spring:
  application:
    name: mima-cloud-config-client
  cloud:
    consul:
      discovery: 
        instanceId: $spring.application.name:$server.port
      host: localhost
      port: 8500
      config:
        enabled: true #falseu7981u7528Consulu914du7f6euff0cu9ed8u8ba4true
        format: YAML    # u8868u793aconsulu4e0au9762u6587u4ef6u7684u683cu5f0f u6709u56dbu79cd YAML PROPERTIES KEY-VALUE FILES
        #data-key: configuration    #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
        data-key: data    #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
        #prefixu8bbeu7f6eu914du7f6eu503cu7684u57fau672cu6587u4ef6u5939
        #defaultContextu8bbeu7f6eu6240u6709u5e94u7528u7a0bu5e8fu4f7fu7528u7684u6587u4ef6u5939u540du79f0
        #profileSeparatoru8bbeu7f6eu7528u4e8eu4f7fu7528u914du7f6eu6587u4ef6u5728u5c5eu6027u6e90u4e2du5206u9694u914du7f6eu6587u4ef6u540du79f0u7684u5206u9694u7b26u7684u503c 
    config:
      #安全认证设置用户名密码
      uri: http://localhost:6063/ #config-server访问地址
      #指定profile,对应config-server所获取的配置文件中的profile
      #配置文件的几种写法
      #application-profile.yml
      #application-profile.properties
      #application/profile.yml
      profile: prod #相当于在远程git项目找到application-prod.properties文件
      label: master

 

2、高可用bootstrap.yml配置:

#注意config-client的配置需要放到bootstrap.yml中
management:
  security:
    enabled: false
spring:
  application:
    name: mima-cloud-config-client
  cloud:
    consul:
      discovery: 
        instanceId: $spring.application.name:$server.port
      host: localhost
      port: 8500
      config:
        enabled: true #falseu7981u7528Consulu914du7f6euff0cu9ed8u8ba4true
        format: YAML    # u8868u793aconsulu4e0au9762u6587u4ef6u7684u683cu5f0f u6709u56dbu79cd YAML PROPERTIES KEY-VALUE FILES
        #data-key: configuration    #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
        data-key: data    #u8868u793aconsulu4e0au9762u7684KEYu503c(u6216u8005u8bf4u6587u4ef6u7684u540du5b57) u9ed8u8ba4u662fdata
        #prefixu8bbeu7f6eu914du7f6eu503cu7684u57fau672cu6587u4ef6u5939
        #defaultContextu8bbeu7f6eu6240u6709u5e94u7528u7a0bu5e8fu4f7fu7528u7684u6587u4ef6u5939u540du79f0
        #profileSeparatoru8bbeu7f6eu7528u4e8eu4f7fu7528u914du7f6eu6587u4ef6u5728u5c5eu6027u6e90u4e2du5206u9694u914du7f6eu6587u4ef6u540du79f0u7684u5206u9694u7b26u7684u503c 
    config:
      profile: prod
      label: master
      discovery:
        # 默认false,设为true表示使用注册中心中的configserver配置而不自己配置configserver的uri
        enabled: true  
        # 指定config server在服务发现中的serviceId,默认为:configserver         
        serviceId: mima-cloud-config-server

 

3、获取配置文件属性

@RestController
@RefreshScope
public class ConfigClientController 

    @Value("$env")
    private String env;
    
    @Value("$password")
    private String password;
    
    @Value("$username")
    private String username;

    @GetMapping("/config/profile")
    public String hello() 
        return this.env+","+this.password+","+this.username;
    

http://localhost:6062/config/profile

springcloud教程七:config(高可用分布式配置中心)

...做任何额外的配置,只需要遵守一个配置规则:将所有的ConfigServer都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护,而客户端在指定ConfigServer位置时,只要配置ConfigServer外的均衡负载即可,就像如下... 查看详情

springcloud教程七:config(高可用分布式配置中心)

...做任何额外的配置,只需要遵守一个配置规则:将所有的ConfigServer都指向同一个Git仓库,这样所有的配置内容就通过统一的共享文件系统来维护,而客户端在指定ConfigServer位置时,只要配置ConfigServer外的均衡负载即可,就像如下... 查看详情

keepalived高可用(代码片段)

文章目录一、高可用基本概述1.1什么是高可用1.2高可用使用什么工具1.3高可用是如何实现的1.4VRRP诞生背景及原理二、高可用Keepalived2.1Keeplaived基本介绍2.2Keepalived核心概念2.3Keeplaived应用场景2.4Keeplaived安装配置2.4.1配置Master2.4.2配... 查看详情

高可用和灾备(代码片段)

高可用SFB角色前端和其他角色的高可用:池服务DNS轮询:成本低,效率尚可,SFB默认高可用推荐:角色池中的服务器的数量3台以上HLB高可用:硬件的负载平衡设备,不支持NLBhttps://docs.microsoft.com/zh-cn/SkypeForBusiness/certification/infra-loa... 查看详情

keepalived高可用(代码片段)

...keepalivedkeepalived是什么?keepalived的重要功能keepalived高可用故障转移的原理keepalived原理keepalived高可用架构图keepalived工作原理描述keepalived默认配置文件keepalived实现apache在LVS均衡负载上的高可用实例配置LVS配置keepalived主配置文... 查看详情

keepalived高可用搭建(代码片段)

-[1.keepalived简介##](#1-keepalived-简介-)-[1.keepalived](#1-keepalived)-[2.安装keepalived](#2-安装keepalived)-[2.keepalived高可用配置##](#2-keepalived-高可用配置-)-[1.安装keepalived](#1-安装keepalived)-[2.配置keepalived以实现虚 查看详情

25.keepalived高可用(代码片段)

Keepalived高可用基本概述什么是高可用一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。高可用通常使用什么软件?硬件通常使用F5软件通常使用k... 查看详情

linux企业运维——hadoop大数据平台(下)hdfs高可用yarn高可用hbase高可用(代码片段)

Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用文章目录Linux企业运维——Hadoop大数据平台(下)hdfs高可用、Yarn高可用、hbase高可用一、Hadoop高可用1.1、zoomkeeper集群部署1.2、hdfs高可用1.... 查看详情

keepalived高可用集群。(代码片段)

Keepalived高可用集群 Keepalived介绍Keepalived软件起初是专门为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以... 查看详情

keepalived高可用集群(代码片段)

...群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高可用功能的,VRRP是VirtualRouterRedun... 查看详情

keepalived高可用集群(代码片段)

...群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高... 查看详情

keepalived高可用集群(代码片段)

...群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx,Haproxy,MySQL等)的高可用解决方案软件。Keepalived软件主要是通过VRRP协议实现高... 查看详情

keepalived高可用(代码片段)

keepalived介绍在这里我们使用keepalived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果keepalived通过VRRP(VirtualRouterRedundancyProtocl)来实现高可用。在这个协议里会将多台功能相同的路由器组成一个小组,这个小... 查看详情

lvs-利用ldirectord实现rs的高可用(代码片段)

利用ldirectord实现RS的高可用性---实验:搭建Ldirectord,实现RealServer的高可用性LVS高可用性---RS的高可用1Director不可用,整个系统将不可用;SPoFSinglePointofFailure单点失败解决方案:高可用keepalived(实现相对容易的,轻量级的解决方... 查看详情

keepalived高可用配置(代码片段)

Keepalived高可用一、高可用介绍什么是高可用一般是指2台机器启动着完全相同的业务系统,当有一台机器down机了,另外一台服务器就能快速的接管,对于访问的用户是无感知的。常用的工具1.硬件通常使用F52.软件通常... 查看详情

redis集群高可用架构(代码片段)

Redis集群高可用架构1、Redis高可用集群1.1、Redis高可用集群模式和哨兵模式方案比较1.2、Redis高可用集群搭建2、Java操作Redis集群3、Redis集群原理分析3.1、槽位定位算法3.2、跳转重定位3.3、Redis集群节点间的通信机制3.4、Redis集群选... 查看详情

haproxy+keepalived实现mycat高可用(代码片段)

在实际项目中,Mycat服务也需要考虑高可用性,如果Mycat所在的服务器出现宕机,或者Mycat服务故障,需要有备机提供服务,需要考虑Mycat集群。高可用方案:我们可以使用HAProxy+Keepalived配合两台Mycat搭起Mycat集群,实现高可用性。... 查看详情

1.mysql之mha高可用(01)(代码片段)

1.前言  在众多的Mysql高可用架构中,MHA架构目前属于现在比较成熟且岁数比较年长的架构之一了,目前,在Mysql的业界比较流行的高可用架构除了MHA,还有官方的MGR高可用架构、Percona公司出品的PXC(perconaXtraDBCluster)高可用架构... 查看详情