Eureka非分区集群部署

简介: Eureka非分区集群部署

1、简介

非分区集群部署是Eureka一种简单的集群部署方式,这种方式下集群中的Eureka Server不分区。通常情况下,如果我们的Eureka服务器都在同一个机房中,可以采取这种方式集群部署。

2、修改hosts文件

由于我在Windows环境下启动多个Eureka服务模拟集群部署,因此先修改C:\Windows\System32\drivers\etc\hosts文件,以便于正确的域名寻址(不修改直接使用127.0.0.1也一样

127.0.0.1       eureka18881.com

127.0.0.1       eureka18882.com

127.0.0.1       eureka18883.com

127.0.0.1       eureka18884.com

3、Eureka Server搭建

我这里一共搭建四个Eureka Server,为了方便看清楚整个Eureka Server的集群方式和启动过程,我搭建了四个Eureka Server,分别是Eureka-01、Eureka-02、Eureka-03、Eureka-04。如果觉得服务过多可以创建不同的profile,在启动Eureka Server时指定不同的profile即可。

第一步:引入pom依赖,我这里采用spring-cloud版本为Greenwich.SR1

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

   <modelVersion>4.0.0</modelVersion>


   <groupId>com.liziba</groupId>

   <artifactId>spring-cloud-netflix-demo</artifactId>

   <packaging>pom</packaging>

   <version>1.0-SNAPSHOT</version>

   <modules>

       <module>Eureka-01</module>

       <module>Eureka-02</module>

       <module>Eureka-03</module>

       <module>Eureka-04</module>

   </modules>


   <properties>

       <spring-cloud.version>Greenwich.SR1</spring-cloud.version>

   </properties>


   <dependencies>

       <dependency>

           <groupId>org.springframework.cloud</groupId>

           <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

       </dependency>

   </dependencies>


   <dependencyManagement>

       <dependencies>

           <dependency>

               <groupId>org.springframework.cloud</groupId>

               <artifactId>spring-cloud-dependencies</artifactId>

               <version>${spring-cloud.version}</version>

               <type>pom</type>

               <scope>import</scope>

           </dependency>

       </dependencies>

   </dependencyManagement>


</project>

第二步:创建启动类Application_EurekaServer01.java,使用@EnableEurekaServer注解开启Eureka Sever

/**

* <p>

*  EurekaServer01启动类

* </p>

*

* @Author: Liziba

* @Date: 2021/10/30 10:46

*/


@SpringBootApplication

@EnableEurekaServer

public class Application_EurekaServer01 {


   public static void main(String[] args) {

       SpringApplication.run(Application_EurekaServer01.class, args);

   }


}

第三步:创建application.yml/application.properties配置文件,在如下配置文件中配置类当前Eureka Server的端口信息、服务名称、实例地址、集群地址数组、是否注册本身和获取注册信息,在这里我将Eureka Server本身也注册到了当前Eureka Server中。

## 端口

server:

 port: 18881


## 服务名称

spring:

 application:

   name: Eureka-01


## Eureka 配置信息

eureka:

 instance:

   hostname: eureka18881.com

 client:

   service-url:

     defaultZone: http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

   register-with-eureka: true

   fetch-registry: true

第四步:再创建三个相同的应用,修改对应端口信息、服务名称、集群地址,比如Application_EurekaServer02的配置文件如下所示。

## 修改端口

server:

 port: 18882


## 修改应用名

spring:

 application:

   name: Eureka-02


## 修改实例hostname

eureka:

 instance:

   hostname: eureka18882.com

 client:

   service-url:

    ## defaultZone中配置其他三台服务器地址,剔除自己

     defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

   register-with-eureka: true

   fetch-registry: true

第五步:服务启动,依次启动四个Eureka Server,等服务均启动成功后,访问Eureka Dashboard,查看集群信息。每个Eureka Dashboard中均可以看到四台服务注册信息展示在Instances currently registered with Eureka中,服务注册的名字Application 是配置文件中提供的spring.application.name应用配置名称;DS Replicas中展示的是defaultZone集群信息,展示的名称是对应Eureka Server配置文件中配置的eureka.instance.hostname

4、Eureka Client搭建

Eureka Server未进行分区划分,因此Eureka Client也无需考虑Eureka Server中分区相关配置。

第一步:创建Client服务,引入Eureka Client依赖

<dependency>

   <groupId>org.springframework.cloud</groupId>

   <artifactId>spring-cloud-netflix-eureka-client</artifactId>

</dependency>

第二步:创建启动类,使用@EnableDiscoveryClient开启服务发现

/**

* <p>

*      客户端应用启动

* </p>

*

* @Author: Liziba

* @Date: 2021/10/30 15:34

*/

@SpringBootApplication

@EnableDiscoveryClient

public class Application_client01 {


   public static void main(String[] args) {

       SpringApplication.run(Application_client01.class, args);

   }


}

第三步:创建配置文件,在配置文件中指定集群服务地址

server:

 port: 19991


spring:

 application:

   name: client-01


eureka:

 client:

   service-url:

     defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

第四步:通过Eureka Dashboard查看服务注册信息,可以看到每个Eureka Server上都会有client-01服务注册上去了

目录
打赏
0
0
0
0
10
分享
相关文章
Nacos部署问题之多节点集群报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
837 21
Nacos 集群部署过程中,常见的问题
Nacos 集群部署过程中,常见的问题
132 1
Nacos的单机以及集群部署模式
Nacos定义为一个IDC内部应用组件,并非面向公网环境的产品,建议在内部隔离网络环境中部署,强烈不建议部署在公共网络环境。
183 0
|
10月前
|
zookeeper单机伪集群集群部署
zookeeper单机伪集群集群部署
157 0
SpringCloud - Eureka服务注册与发现实战(单节点与集群)
SpringCloud - Eureka服务注册与发现实战(单节点与集群)
122 0
【深入了解Nacos集群和持久化配置】 ——每天一点小知识
【深入了解Nacos集群和持久化配置】 ——每天一点小知识
563 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等