SpringCloud如何实现Eureka集群、HA机制

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

  1. 现在已经成功的实现了一个Eureka服务器,但是现在属于单节点的服务运行过程,如果说现在单节点的Eureka出现了错误,导致无法使用,那么对于所有的微服务架构就将出现整体的瘫痪,这样就需要进行Eureka集群搭建,同时利用集群可以有效的实现HA的处理机制,如果要进行集群的搭建一定要选择两台或以上的电脑完成。

    SpringCloud如何实现Eureka集群、HA机制_第1张图片

    SpringCloud如何实现Eureka集群、HA机制_第2张图片

  2. 2

    【microcloud-eureka-7001】为了方便进行Eureka操作,建议将“microcloud-eureka-7001”进行复制:microcloud-eureka-7002、microcloud-eureka-7003

    SpringCloud如何实现Eureka集群、HA机制_第3张图片

  3. 3

    修改hosts配置文件,进行多个主机名称的定义:

    127.0.0.1 eureka-7001.com

    127.0.0.1 eureka-7002.com

    127.0.0.1 eureka-7003.com

    SpringCloud如何实现Eureka集群、HA机制_第4张图片

  4. 4

    【microcloud-eureka-7001】修改application.yml配置文件,这个配置文件主要注意端口号以及Eureka服务的注册位置。

    server:

      port: 7001

    eureka:

      instance: #eureka实例定义

        hostname: eureka-7001.com #设置清理的间隔时间,默认这个时间使用的毫秒单单位(默认是60秒)

      client: #客户端进行Eureka注册的配置

          service-url: 

            defaultZone: http://eureka:[email protected]:7002/eureka,http://eureka:[email protected]:7003/eureka

          register-with-eureka: false #当前的微服务不注册到eureka之中

          fetch-registry: false

      server:

        enable-self-preservation: false #是否要设置成保护模式

        eviction-interval-timer-in-ms: 60000  #不通过eureka获取注册信息

    spring:

      application:

        name: microcloud-eureka-7001

    security:

      user:

        name: eureka

        password: eureka

    SpringCloud如何实现Eureka集群、HA机制_第5张图片

  5. 5

    【microcloud-eureka-7002】修改application.yml配置文件,并修改主类名称。

    server:

      port: 7002

    eureka:

      instance: #eureka实例定义

        hostname: eureka-7002.com #设置清理的间隔时间,默认这个时间使用的毫秒单单位(默认是60秒)

      client: #客户端进行Eureka注册的配置

          service-url: 

            defaultZone: http://eureka:[email protected]:7001/eureka,http://eureka:[email protected]:7003/eureka

          register-with-eureka: false #当前的微服务不注册到eureka之中

          fetch-registry: false

      server:

        enable-self-preservation: false #是否要设置成保护模式

        eviction-interval-timer-in-ms: 60000  #不通过eureka获取注册信息

    spring:

      application:

        name: microcloud-eureka-7001

    security:

      user:

        name: eureka

        password: eureka

    SpringCloud如何实现Eureka集群、HA机制_第6张图片

    SpringCloud如何实现Eureka集群、HA机制_第7张图片

  6. 6

    【microcloud-eureka-7003】修改application.yml配置文件,并修改主类名称。

    server:

      port: 7003

    eureka:

      instance: #eureka实例定义

        hostname: eureka-7003.com #设置清理的间隔时间,默认这个时间使用的毫秒单单位(默认是60秒)

      client: #客户端进行Eureka注册的配置

          service-url: 

            defaultZone: http://eureka:[email protected]:7001/eureka,http://eureka:[email protected]:7002/eureka

          register-with-eureka: false #当前的微服务不注册到eureka之中

          fetch-registry: false

      server:

        enable-self-preservation: false #是否要设置成保护模式

        eviction-interval-timer-in-ms: 60000  #不通过eureka获取注册信息

    spring:

      application:

        name: microcloud-eureka-7003

    security:

      user:

        name: eureka

        password: eureka

    SpringCloud如何实现Eureka集群、HA机制_第8张图片

  7. 7

    启动所有的Eureka服务,而后进入到每一个服务的后台去观察运行的副本效果。

    登陆7001控制台:http://eureka:[email protected]:7001/

    登陆7002控制台:http://eureka:[email protected]:7002/

    登陆7003控制台:http://eureka:[email protected]:7003/

    SpringCloud如何实现Eureka集群、HA机制_第9张图片

    SpringCloud如何实现Eureka集群、HA机制_第10张图片

    SpringCloud如何实现Eureka集群、HA机制_第11张图片

  8. 8

    【microcloud-provider-dept-8001】修改application.yml配置文件,进行多台主机注册。

    server:

      port: 8001

    mybatis:

      config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径

      type-aliases-package: com.gwolf.vo       # 定义所有操作类的别名所在包

      mapper-locations:                                     # 所有的mapper映射文件

      - classpath:mybatis/mapper/**/*.xml

    spring:

      datasource:

        type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型

        driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类

        url: jdbc:mysql://localhost:3306/mldn_1?serverTimezone=UTC   # 数据库连接地址

        username: root                                  # 数据库用户名

        password: root                            # 数据库连接密码

        dbcp2:                                          # 进行数据库连接池的配置

          min-idle: 5                                   # 数据库连接池的最小维持连接数

          initial-size: 5                               # 初始化提供的连接数

          max-total: 5                                  # 最大的连接数

          max-wait-millis: 200                          # 等待连接获取的最大超时时间

      application:

        name: microcloud-provider-dept

    eureka:

      client: #客户端进行Eureka注册的配置

        service-url: 

          defaultZone: http://eureka:[email protected]:7001/eureka,http://eureka:[email protected]:7002/eureka,http://eureka:[email protected]:7003/eureka

      instance:

        instance-id: dept-8001.com  #在信息列表中显示主机名称

        prefer-ip-address: true   #访问的路径变为IP地址

        lease-renewal-interval-in-seconds: 2  #设置心跳的时间间隔(默认是30秒)

        lease-expiration-duration-in-seconds: 5 #如果现在超过了5秒的间隔(默认90秒)

    info:

      app.name: gwolf-microcloud

      company.name: www.gwolf.com

      build.artifactId: $project.artifactId$

      build.version:  $project.version$

    SpringCloud如何实现Eureka集群、HA机制_第12张图片

  9. 9

    运行之后该微服务会出现在所有的Eureka主机之中。这样即使某一台Eureka出现了问题,那么依然可以保证服务可用。

    SpringCloud如何实现Eureka集群、HA机制_第13张图片

    SpringCloud如何实现Eureka集群、HA机制_第14张图片

你可能感兴趣的:(java)