目标:搭建出三个节点的服务注册中心集群,并实现一个服务的注册。java
目录:git
一、注册中心集群配置(代码里都有关键注释,可自行查看);github
二、运行集群;spring
三、hello-server服务注册;浏览器
1、注册中心集群配置springboot
跟上一篇文章的单个服务注册中心同样,首先建立一个springboot项目eureka-server-cluster,而后在pom.xml文件中添加spring cloud的版本依赖和Eureka的服务端依赖(请查看上一篇文章的pom.xml配置,事实是两个项目pom内容同样),而后进行下面配置:app
一、首先在项目的resource下建立三个节点的配置文件-目的为了后面启动集群不一样节点加载不一样配置文件,服务注册中心节点1的主机名为: eurekaserverone、服务注册中心节点2的主机名为: eurekaservertwo、服务注册中心节点3的主机名为: eurekaserverthree(由于这里我是在本机器环境下搭建的集群,因此三个节点的IP都是127.0.0.1,只是端口不一样-具体端口见下面的配置文件,为了主机名能映射到IP地址,因此咱们须要在系统的host文件中配置对应的映射以下图示)。三个配置文件分别为:application-serverone.yml,application-servertow.yml,applicatioin-serverthree.yml 具体配置分别以下:spa
1) application-serverone.yml配置,这里服务注册中心节点eurekaserverone注册到服务注册中心节点eurekaservertwo和服务注册中心节点eurekaserverthree.net
# 配置服务名称(由于这里做为服务中心集群,因此将本身做为服务向其它服务中心注册本身,造成互相注册的服务注册中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1111 eureka: # 配置本注册中心的hostname instance: hostname: eurekaserverone # 本Eureka服务端将本身做为服务将要注册的注册中心的地址 client: serviceUrl: defaultZone: http://eurekaservertwo:1112/eureka/,http://eurekaserverthree:1113/eureka/
2) application-servertwo.yml配置,这里服务注册中心节点eurekaservertwo注册到服务注册中心节点eurekaserverone和服务注册中心节点eurekaserverthree命令行
# 配置服务名称(由于这里做为服务中心集群,因此将本身做为服务向其它服务中心注册本身,造成互相注册的服务注册中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1112 eureka: # 配置本注册中心的hostname instance: hostname: eurekaservertwo # 本Eureka服务端将本身做为服务将要注册的注册中心的地址 client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/,http://eurekaserverthree:1113/eureka/
3) application-serverthree.yml配置,这里服务注册中心节点eurekaserverthree注册到服务注册中心节点eurekaserverone和服务注册中心节点eurekaservertwo
# 配置服务名称(由于这里做为服务中心集群,因此将本身做为服务向其它服务中心注册本身,造成互相注册的服务注册中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1113 eureka: # 配置本注册中心的hostname instance: hostname: eurekaserverthree # 本Eureka服务端将本身做为服务将要注册的注册中心的地址 client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/,http://eurekaservertwo:1112/eureka/
二、在EurekaServerClusterApplication.java中即项目的启动类中添加开启此段为服务注册中心注解@EnableEurekaServer,代码以下:
package com.lyq.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * @description : @EnableEurekaServer开启此端为服务注册中心 * @author : lyq * @date : 2018/01/10 */ @EnableEurekaServer @SpringBootApplication public class EurekaServerClusterApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerClusterApplication.class, args); } }
2、运行集群
一、将上面项目进行编译打包后,如今到命令行环境去针对不一样节点加载不一样配置文件运行,具体命令以下
1)启动服务中心节点eurekaserverone,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=serverone
2)启动服务中心节点eurekaservertwo,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=servertwo
3)启动服务中心节点eurekaserverthree,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=serverthree
我这启动成功后界面,这里也能够看注册的信息(本身去看吧,这里我就再也不叙述了)
二、三个命令窗口启动成功后,能够在浏览器中输入以下地址便可看到集群各节点的注册信息:
http://eurekaserverone:1111/
http://eurekaservertwo:1112/
http://eurekaserverthree:1113/
其中一个界面的信息为(这里能够看到节点2和节点3都注册到节点1上了,其余节点相似):
3、hello-server服务注册
一、这里我直接使用的上一篇文章里面的eureka-clientone项目做为服务注册到服务注册中心集群中;
二、对项目eureka-clientone只对application.yml文件进行了以下修改:
# 配置注册到注册中心的服务名称 spring: application: name: hello-service ## 配置服务注册中心的地址(实践单节点服务注册中心案例时,放开此注释,而且注释下面的代码) #eureka: # client: # serviceUrl: # defaultZone: http://eurekaserverone:1111/eureka/ # 配置服务注册中心的地址(实践服务注册中心集群案例时,放开此注释,而且注释上面的代码) eureka: client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/
三、运行此项目后,再在浏览器输入上述地址中的一个,例如我这输入的是:
http://eurekaserverone:1111/
能够在注册中心界面看到,此服务hello-service已经注册进去了(注意:其它服务注册中心节点eurekaservertwo、eurekaserverthree也都注册了此服务),以下图所示:
到这里集群服务注册中心代码已经完成,若有建议或疑问敬请在博客留言。接下来文章会对服务注册中心集群的详细配置一一进行分解。
服务注册中心服务端代码地址:https://github.com/camel-luo/eureka-server-cluster
服务注册中心被注册服务代码:https://github.com/camel-luo/eureka-clientone