第一节 SpringCould微服务之Eureka Server搭建

一、Eureka简介

Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来。
Eureka包含了服务器端和客户端组件。服务器端,也被称作是服务注册中心,用于提供服务的注册与发现。Eureka支持高可用的配置,当集群中有分片出现故障时,Eureka就会转入自动保护模式,它允许分片故障期间继续提供服务的发现和注册,当故障分片恢复正常时,集群中其他分片会把他们的状态再次同步回来。
客户端组件包含服务消费者与服务生产者。在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时也可以从服务端查询当前注册的服务信息并把他们缓存到本地并周期性的刷新服务状态。

服务的注册与发现机制:

1. 服务注册于发现.png

关系调用说明:

  • 服务生产者启动时,向服务注册中心注册自己提供的服务
  • 服务消费者启动时,在服务注册中心订阅自己所需要的服务
  • 注册中心返回服务提供者的地址信息个消费者
  • 消费者从提供者中调用服务

三、使用Eureka进行服务治理

1. 搭建服务注册中心

通过网站: https://start.spring.io/ 进行Springboot项目创建, 我们搭建一个Eureka服务注册中心项目:

点击Generate Project后将生成一个Maven工程: eureka-server 并下载到本地, 把工程导入到eclipse中即可.

pom.xml 中的依赖如下:

    <dependencies>
        <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-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
 

需要修改EurekaServerApplication.java 添加注解:@EnableEurekaServer

添加属性配置文件:application-peer1.properties

spring.application.name=EurekaServer
server.port=1111

编译:maven install 后会生成jar包到 target目录下: eureka-server-0.0.1-SNAPSHOT.jar

在工程根目录下编写一个自动运行脚本 peer1.cmd:

java -jar ./target/eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1

双击 peer1.cmd 开始运行,成功后,输入http://localhost:1111 可以看到监控界面

 

2. 搭建高可用的服务注册中心

因为服务注册中心非常重要,如何只有一个服务注册中心,一旦此注册中心发生异常,将导致所有服务消费者无法使用服务。

所以我们需要通过搭建集群服务注册中心 来保证 注册中心的高可用性:

假设我们准备部署两个服务注册中心,让他们之间互相注册对方,这样只要其中一个工作,就能保证整个应用服务正常工作。

之前我们已经有一个Eureka配置peer1, 现在我们再添加一个peer2,配置application-peer2.properties如下:

spring.application.name=EurekaServer
server.port=1112

eureka.instance.name=peer2
eureka.client.regiester-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:1111/eureka

注意:我们需要把peer2这个EurekaServer当作client,注册到 peer1的EurekaServer中: http://localhost:1111/eureka

同时修改 peer1配置application-peer1.properties, 把它注册到 peer2的EurekaServer中:http://localhost:1112/eureka

spring.application.name=EurekaServer
server.port=1111

eureka.instance.name=peer1
eureka.client.regiester-with-eureka=false
eureka.client.fetch-registry=false
eureka.client.service-url.defaultZone=http://localhost:1112/eureka

在工程根目录下编写一个自动运行脚本 peer2.cmd:

java -jar ./target/eureka-server-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

双击 peer1.cmd 开始运行。

双击 peer2.cmd 开始运行。

peer1,peer2成功后,输入http://localhost:1111 可以看到监控界面

输入http://localhost:1112 可以看到监控界面

可以看到,这两个注册服务已经互相注册到对方了。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值