《 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配置内容如下:
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 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |