三(2)、springcloud之Eureka集群配置

1)原理说明**mysql

  • 服务启动后向Eureka注册,Eureka Server会将注册信息向其余Eureka Server进行同步,当服务消费者要调用服务提供者,则向服务注册中心获取服务提供者地址,而后会将服务提供者地址缓存在本地,下次再调用时,则直接从本地缓存中取,完成一次调用。
  • 当服务注册中心Eureka Server检测到服务提供者由于宕机、网络缘由不可用时,则在服务注册中心将服务置为DOWN状态,并把当前服务提供者状态向订阅者发布,订阅过的服务消费者更新本地缓存。
  • 服务提供者在启动后,周期性(默认30秒)向Eureka Server发送心跳,以证实当前服务是可用状态。Eureka Server在必定的时间(默认90秒)未收到客户端的心跳,则认为服务宕机,注销该实例。

在这里插入图片描述

  • 处于不一样节点的eureka经过Replicate进行数据同步
  • Application Service为服务提供者
  • Application Client为服务消费者
  • Make Remote Call完成一次服务调用

2)新建其它Eureka注册中心web

新建microservicecloud-eureka-7002/microservicecloud-eureka-7003,步骤与以前同样,将microservicecloud-eureka-7001Eureka注册中心的内容复制到7002,7002,参考:上一篇博客spring

注意这里:要修改主启动类,sql

2)修改映射配置数据库

修改C:\Windows\System32\drivers\etc路径下的hosts文件缓存

在这里插入图片描述
若是是单节点的注册中心,是没法保证系统稳定性的,固然如今项目部署架构不多是单节点的。集群节点的部署思路:经过运行多个实例并请求他们相互注册,来完成注册中心的高可用性服务器

3)3台eureka服务器的yml配置网络

7001:mybatis

server: 
  port: 7001
 
eureka: 
  instance:
    hostname: eureka7001.com #eureka服务端的实例名称
  client: 
    register-with-eureka: false #false表示不向注册中心注册本身。
    fetch-registry: false #false表示本身端就是注册中心,个人职责就是维护服务实例,并不须要去检索服务
    service-url: 
      #单机 defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都须要依赖这个地址(单机)。
      defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/

7002:架构

server: 
  port: 7002
 
eureka: 
  instance:
    hostname: eureka7002.com #eureka服务端的实例名称
  client: 
    register-with-eureka: false #false表示不向注册中心注册本身。
    fetch-registry: false #false表示本身端就是注册中心,个人职责就是维护服务实例,并不须要去检索服务
    service-url: 
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都须要依赖这个地址。
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/

7003:

server: 
  port: 7003
 
eureka: 
  instance:
    hostname: eureka7003.com #eureka服务端的实例名称
  client: 
    register-with-eureka: false #false表示不向注册中心注册本身。
    fetch-registry: false #false表示本身端就是注册中心,个人职责就是维护服务实例,并不须要去检索服务
    service-url: 
      #defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #设置与Eureka Server交互的地址查询服务和注册服务都须要依赖这个地址。
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/

4)microservicecloud-provider-dept-8001微服务provider发布到上面3台eureka集群配置中

server:
  port: 8001
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml  # mybatis配置文件所在路径
  type-aliases-package: com.jiatp.springcloud.entity  # 扫描此包下的entity ->全部entity别名类所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                 # mapper映射文件
 
spring:
  application:
    name: microservicecloud-dept                      # 很重要,对外暴露的微服务名字
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource      # 数据源类型
    driver-class-name: org.gjt.mm.mysql.Driver        # 数据库驱动包
    url: jdbc:mysql://localhost:3306/cloudDB01?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT
    username: root
    password: 123456
    dbcp2:
      min-idle: 5 # 数据库链接池的最小维持链接数
      initial-size: 5 # 初始化链接数
      max-idle: 5 # 最大链接数
      max-wait-millis: 200 # 等待链接获取的最大超时时间
eureka:
  client:                                             # 客户端注册进eureka服务列表内
    serviceUrl:
      defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/ 
  instance:
    instance-id: microservicecloud-dept8001           # 自定义服务名称信息
    prefer-ip-address: true # 访问路径能够显示IP地址 

info:
  app.name: jiatp-microservicecloud
  company.name: www.jiatp.club
  build.artifactId: $project.artifactId$
  build.version: $project.version$

测试:

在这里插入图片描述

相关文章
相关标签/搜索