Spring Cloud 进阶--Rest微服务加入Eureka服务注册与服务发现(集群版)

版权声明:本文为博主原创文章,如果觉得写的不错需要转载,在转载时请注明博文出处! https://blog.csdn.net/Hello_World_QWP/article/details/87979010

                                       《 Rest 微服务加入 Eureka(集群) 》

前言

在上一篇博文中,主要对 “ Spring Cloud 进阶--Eureka服务注册与服务发现(单机版) ” 进行了详细的介绍,本篇主要对Eureka的集群模式进行详细的介绍,虽然非常的简单,不喜勿喷呀。主要包括如下内容:

  • 注册中心一号服务器,服务名称 “ microservice-eureka-7001  ”;
  • 注册中心二号服务器,服务名称 “ microservice-eureka-7002 ”;
  • 注册中心三号服务器,服务名称 “ microservice-eureka-7003 ”;
  • 修改的微服务提供者模块,服务名称 “ microservice-provider-8001 ”;

Rest 微服务加入 Eureka(集群)

1、新增Eureka服务注册中心 2、3 号服务器,参考Eureka微服务注册中心1号服务器 “ microservice-eureka-7001 ” ,内容如下:

2、分别创建:

  • 2号服务器 “ microservice-eureka-7002 ” 
  • 3号服务器 “ microservice-eureka-7003 ”

3、分别修改3台注册中心的YML配置文件

1号服务器YML配置内容如下:

扫描二维码关注公众号,回复: 5552928 查看本文章
server: 
  port: 7001  # 自定义服务端口

eureka:
  instance:
    hostname: www.eureka7001.com  # eureka服务端的实例名称
  client:
    register-with-eureka: false  # false表示不向注册中心注册自己。
    fetch-registry: false  # false表示自己端就是注册中心,其职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://www.eureka7002.com/eureka/,http://www.eureka7003.com/eureka/


2号服务器YML配置内容如下:

server: 
  port: 7002  # 自定义服务端口

eureka:
  instance:
    hostname: www.eureka7002.com  #eureka服务端的实例名称
  client:
    register-with-eureka: false  #false表示不向注册中心注册自己。
    fetch-registry: false  #false表示自己端就是注册中心,其职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://www.eureka7001.com/eureka/,http://www.eureka7003.com/eureka/

3号服务器YML配置内容如下:

server: 
  port: 7003  # 自定义服务端口

eureka:
  instance:
    hostname: www.eureka7003.com  # eureka服务端的实例名称
  client:
    register-with-eureka: false  # false表示不向注册中心注册自己。
    fetch-registry: false  # false表示自己端就是注册中心,其职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://www.eureka7001.com/eureka/,http://www.eureka7002.com/eureka/


4、修改微服务提供者 “ microservice-provider-8001 ” 的YML配置文件,在 “ eureka.client.service-url.defaultZone ” 属性下,写上三台Eureka服务注册中心服务地址,内容如下:

server:
  port: 8001
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml        # mybatis配置文件所在路径
  type-aliases-package: com.huazai.springcloud.entity    # 所有Entity别名类所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                       # mapper映射文件
    
spring:
   application:
    name: microservice-provider # 该模块的服务提供者的应用名称必须一致
   datasource:
    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url: jdbc:mysql://***.***.***.***:*****/microservice-01              # 数据库名称
    username: *****
    password: ***********
    dbcp2:
      min-idle: 5                                           # 数据库连接池的最小维持连接数
      initial-size: 5                                       # 初始化连接数
      max-total: 5                                          # 最大连接数
      max-wait-millis: 200                                  # 等待连接获取的最大超时时间
      
eureka:
  client: #客户端注册进eureka服务列表内
    service-url: 
      defaultZone: http://www.eureka7001.com/eureka/,http://www.eureka7002.com/eureka/,http://www.eureka7003.com/eureka/
       
  instance:
    instance-id: 服务提供者-1号服务器
    prefer-ip-address: true


info:
  app.name: learning-microservice-springcloud
  company.name: huazai-studio
  contact.number: 021-87506868
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
 
 

5、测试

首先启动三台Eureka注册中心服务器,再启动服务提供者,最后启动服务消费者,如下图:

访问1号Eureka注册中心服务器,如下图:

访问2号Eureka注册中心服务器,如下图:

访问3号Eureka注册中心服务器,如下图:

6、配置域名映射

如果没有开发服务器和域名解析,这儿博主还教大家一种使用本地域名映射的方法,只需要简单配置即可实现,在目下 “ C:\Windows\System32\drivers\etc ” 打开 hosts 文件,加入如下内容:

127.0.0.1 www.eureka7001.com
127.0.0.1 www.eureka7002.com
127.0.0.1 www.eureka7003.com

修改三台Eureka注册中心服务器的YML配置,因为是本地域名映射,域名本身就是虚的,实际不存在的,它存在于我们的心中(开个玩笑),所以要在Eureka服务器后面追加各个Eureka服务器的端口号,内容如下:

server: 
  port: 7001  # 自定义服务端口

eureka:
  instance:
    hostname: www.eureka7001.com  # eureka服务端的实例名称
  client:
    register-with-eureka: false  # false表示不向注册中心注册自己。
    fetch-registry: false  # false表示自己端就是注册中心,其职责就是维护服务实例,并不需要去检索服务
    service-url:
      defaultZone: http://www.eureka7002.com:7002/eureka/,http://www.eureka7003.com:7003/eureka/


其它两个Eureka注册中心类似的修改操作,就不再重复兹述了。

修改微服务提供者模块 “ microservice-provider-8001 ” 的YML配置文件,同样在Eureka注册中心服务地址后面追加各个服务的端口号,完整内容如下:

server:
  port: 8001
  
mybatis:
  config-location: classpath:mybatis/mybatis.cfg.xml        # mybatis配置文件所在路径
  type-aliases-package: com.huazai.springcloud.entity    # 所有Entity别名类所在包
  mapper-locations:
  - classpath:mybatis/mapper/**/*.xml                       # mapper映射文件
    
spring:
   application:
    name: microservice-provider # 该模块的服务提供者的应用名称必须一致
   datasource:
    type: com.alibaba.druid.pool.DruidDataSource            # 当前数据源操作类型
    driver-class-name: org.gjt.mm.mysql.Driver              # mysql驱动包
    url: jdbc:mysql://192.168.159.145:3306/microservice-01              # 数据库名称
    username: root
    password: Huazai12345!
    dbcp2:
      min-idle: 5                                           # 数据库连接池的最小维持连接数
      initial-size: 5                                       # 初始化连接数
      max-total: 5                                          # 最大连接数
      max-wait-millis: 200                                  # 等待连接获取的最大超时时间
      
eureka:
  client: #客户端注册进eureka服务列表内
    service-url: 
      defaultZone: http://www.eureka7001.com:7001/eureka/,http://www.eureka7002.com:7002/eureka/,http://www.eureka7003.com:7003/eureka/
       
  instance:
    instance-id: microservice-provider-8001
    prefer-ip-address: true


info:
  app.name: learning-microservice-springcloud
  company.name: huazai-studio
  contact.number: 021-87506868
  build.artifactId: $project.artifactId$
  build.version: $project.version$
  
 
 

再次访问时,输入虚域名+端口即可,如下图:

7、Eureka集群原理

这儿就不再重复兹述了,请参考:《 Eureka 与 zookeeper 的区别、原理及各自优缺点 》

GitLab 源码地址:

项目源码地址(zip格式的工程包):


好了,关于 Spring Cloud 进阶--Eureka服务注册与服务发现(集群版) 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: [email protected]
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/87979010
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

猜你喜欢

转载自blog.csdn.net/Hello_World_QWP/article/details/87979010
今日推荐