Eureka 服务端搭建入门与集群搭建

前言

Eureka在2022年已经确定的是,2.x版本开源计划已经停止了,1.x版本陆陆续续还是有人在维护的。还有很多最早使用微服务的公司还在继续用着eureka作为注册中心,也是很多同学学习微服务的敲门砖。

搭建Eureka服务端

创建一个平平无奇的maven工程,取名为eureka-server

1. 导入pom坐标

创建好maven工程之后,导入spring-boot与spring-cloud依赖版本管理依赖,注意两者的版本对应关系,或者你直接用我的版本。

    <properties>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
    </properties>

	<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>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!-- eureka-server -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

2. 编写application.yml文件

server:
  port: 7001
eureka:
  instance:
    # eureka服务端的实例名称
    hostname: localhost
  client:
    # false表示不向注册中心注册自己
    register-with-eureka: false
    # 表示自己是注册中心,职责是维护服务实例,不去检索服务
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

3. 编写启动类

很正常的一个启动类,只是添加了@EnableEurekaServer标签

@SpringBootApplication
@EnableEurekaServer
public class EurekaMain7001 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaMain7001.class, args);
    }
}

4. 启动程序

访问 http://localhost:7001,出现下面类似的界面就是搭建成功了
在这里插入图片描述
一个简单的Eureka客户端搭建就完成了,整体上就这些步骤,其它的配置可以在遇到问题后再去学习解决,常见的问题有eureka的自我保护机制。

搭建集群模式

实际生产中,eureka决定着所有服务的调用,如果eureka只有单机的话,eureka所在的服务器挂了,所有的服务都会无法工作,所以搭建为集群模式,非常有必要的。eureka集群模式的思想是互相注册,假设有A、B、C三个eureka服务端,A中要注册B、C两个服务端,B中要注册A、C两个服务端,C中要注册A、B两个服务端。

听起来很复杂,实际上要做的不难。在这里我所做的都是在自己本地电脑上搭建的eureka集群,和实际生产的多台服务器略有不同。

1. 修改host文件

多台服务器的情况下,省略这部

用随便一个文本编辑器,右键选择用管理员权限打开,找到 C: -> windows -> system32 -> drivers -> etc -> hosts 文件,添加本机ip的多个域名。
在这里插入图片描述

2. 修改配置文件

hostname将localhost修改为你要设置的域名,defaultZone不再指向自己,而是指向了另外两个注册中心
在这里插入图片描述

3. 修改另外两个eureka服务端的配置

方式1:
实际生产部署多台机时,你可以在同一个eureka项目下,配置多份application文件,比如application-7001.yml,application-7002.yml,application-7003.yml,然后启动时添加启动参数-Dspring.profiles.active=7001这样去启动,分别启动3个服务。
比如这样的
在这里插入图片描述
启动参数选择7001
在这里插入图片描述
方式2:

在我这里,由于是有非常好用的idea,我可以直接修改一下vm options 就能启动了,我连多配置文件这步都不做了,原理是相同的。
在Services窗口,选择启动的应用,Ctrl + D
在这里插入图片描述

在弹出来的窗口中,修改应用名称,修改vm options参数
在这里插入图片描述

点击 apply ,点击ok,即可在Not Started分栏看到刚复制的配置,点击启动即可。

4. 访问eureka集群

可以看到3个集群中彼此互相依赖
在这里插入图片描述

5. 客户端在注册的时候,需要3个eureka的defaultZone都写上

这样客户端就会同时被注册到集群中的每一个服务中
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值