IDEA springcloud-Eureka搭建服务注册中心2-集群化
@https://my.oschina.net/luoyaqi/blog/1605810
目标:搭建出三个节点的服务注册中心集群,并实现一个服务的注册。
目录:
1、注册中心集群配置(代码里都有关键注释,可自行查看);
2、运行集群;
3、hello-server服务注册;
一、注册中心集群配置
跟上一篇文章的单个服务注册中心一样,首先创建一个springboot项目eureka-server-cluster,然后在pom.xml文件中添加spring cloud的版本依赖和Eureka的服务端依赖(请查看上一篇文章的pom.xml配置,事实是两个项目pom内容一样),然后进行下面配置:
1、首先在项目的resource下创建三个节点的配置文件-目的为了后面启动集群不同节点加载不同配置文件,服务注册中心节点1的主机名为: eurekaserverone、服务注册中心节点2的主机名为: eurekaservertwo、服务注册中心节点3的主机名为: eurekaserverthree(因为这里我是在本机器环境下搭建的集群,所以三个节点的IP都是127.0.0.1,只是端口不同-具体端口见下面的配置文件,为了主机名能映射到IP地址,所以我们需要在系统的host文件中配置对应的映射如下图示)。三个配置文件分别为:application-serverone.yml,application-servertow.yml,applicatioin-serverthree.yml 具体配置分别如下:
1) application-serverone.yml配置,这里服务注册中心节点eurekaserverone注册到服务注册中心节点eurekaservertwo和服务注册中心节点eurekaserverthree
# 配置服务名称(因为这里作为服务中心集群,所以将自己作为服务向其它服务中心注册自己,形成互相注册的服务注册中心) 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/
2、在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);
}
}
二、运行集群
1、将上面项目进行编译打包后,现在到命令行环境去针对不同节点加载不同配置文件运行,具体命令如下
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
我这启动成功后界面,这里也可以看注册的信息(自己去看吧,这里我就不再叙述了)
2、三个命令窗口启动成功后,可以在浏览器中输入如下地址即可看到集群各节点的注册信息:
http://eurekaserverone:1111/
http://eurekaservertwo:1112/
http://eurekaserverthree:1113/
其中一个界面的信息为(这里可以看到节点2和节点3都注册到节点1上了,其他节点类似):
三、hello-server服务注册
1、这里我直接使用的上一篇文章里面的eureka-clientone项目作为服务注册到服务注册中心集群中;
2、对项目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/
3、运行此项目后,再在浏览器输入上述地址中的一个,例如我这输入的是:
http://eurekaserverone:1111/
可以在注册中心界面看到,此服务hello-service已经注册进去了(注意:其它服务注册中心节点eurekaservertwo、eurekaserverthree也都注册了此服务),如下图所示:
到这里集群服务注册中心代码已经完成,如有建议或疑问敬请在博客留言。接下来文章会对服务注册中心集群的详细配置一一进行分解。
服务注册中心服务端代码地址:https://github.com/camel-luo/eureka-server-cluster
服务注册中心被注册服务代码:https://github.com/camel-luo/eureka-clientone