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

posted @ 2018-11-06 13:29  鹿野之城  阅读(1038)  评论(0编辑  收藏  举报