微服务技术系列教程(18) - SpringCloud- 服务治理Eureka(集群搭建)

简介: 微服务技术系列教程(18) - SpringCloud- 服务治理Eureka(集群搭建)

代码已上传到Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/SpringCloud-Eureka-Demo

1. Eureka高可用原理

在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式。

默认情况下Eureka是让服务注册中心,不注册自己。

###因为该应用为注册中心,不会注册自己
    register-with-eureka: true
###不需要去注册中心上检索服务
    fetch-registry: true

Eureka高可用实际上将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组相互注册的服务注册中心,从而实现服务清单的互相同步,达到高可用效果

2. Eureka集群搭建

2.1 Eureka01配置

1.application.yml配置:

###服务端口号
server:
  port: 8101
###eureka 基本信息配置
spring: 
 application: 
  name: eureka-server-01
eureka:
  instance:
    ###注册到eurekaip地址
    hostname: 127.0.0.1
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8102/eureka/
###因为自己是为注册中心,不需要自己注册自己
    register-with-eureka: true
###因为自己是为注册中心,不需要检索服务
    fetch-registry: true

2.启动类:

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

2.3 Eureka02配置

1.application.yml配置:

###服务端口号
server:
  port: 8102
###eureka 基本信息配置
spring: 
 application: 
  name: eureka-server-02
eureka:
  instance:
    ###注册到eurekaip地址
    hostname: 127.0.0.1
  client:
    serviceUrl:
      defaultZone: http://127.0.0.1:8101/eureka/
###因为自己是为注册中心,不需要自己注册自己
    register-with-eureka: true
###因为自己是为注册中心,不需要检索服务
    fetch-registry: true

2.启动类:

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

2.3 客户端集成Eureka集群

Eureka-ServiceA和Eureka-ServiceB的搭建可以参考上一篇博客《SpringCloud- 服务治理Eureka(搭建注册中心)》,主要修改application.yml。

Eureka-ServiceA:

###服务启动端口号
server:
  port: 8000
###服务名称(服务注册到eureka名称)
spring:
  application:
    name: app-service-a
####服务注册到eureka地址
#eureka:
#  client:
#    service-url:
#      defaultZone: http://localhost:8100/eureka
#
#
#    ###因为该应用为注册中心,不会注册自己
#    register-with-eureka: true
#    ###是否需要从eureka上获取注册信息
#    fetch-registry: true
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8101/eureka,http://localhost:8102/eureka
    register-with-eureka: true
    fetch-registry: true

Eureka-ServiceB:

###服务启动端口号
server:
  port: 8001
###服务名称(服务注册到eureka名称)
spring:
  application:
    name: app-service-b
####服务注册到eureka地址
#eureka:
#  client:
#    service-url:
#      defaultZone: http://localhost:8100/eureka
#
#
#    ###因为该应用为注册中心,不会注册自己
#    register-with-eureka: true
#    ###是否需要从eureka上获取注册信息
#    fetch-registry: true
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8101/eureka,http://localhost:8102/eureka
    register-with-eureka: true
    fetch-registry: true

2.4 启动Eureka服务以及客户端

浏览器输入Eureka01注册中心地址和Eureka02注册中心地址,可以看到都注册上了:

Eureka01:

Eureka02:

客户端B去远程调用客户端A的接口:http://localhost:8001/getorder,可以看到调用成功:

现在把Eureka01关掉,模拟宕机,可以看到现在只剩Eureka02一台注册中心可以跑了。

客户端B再次去远程调用客户端A的接口:http://localhost:8001/getorder,可以看到调用成功:

目录
相关文章
|
1月前
|
Kubernetes Cloud Native 微服务
探索云原生技术:容器化与微服务架构的融合之旅
本文将带领读者深入了解云原生技术的核心概念,特别是容器化和微服务架构如何相辅相成,共同构建现代软件系统。我们将通过实际代码示例,探讨如何在云平台上部署和管理微服务,以及如何使用容器编排工具来自动化这一过程。文章旨在为开发者和技术决策者提供实用的指导,帮助他们在云原生时代中更好地设计、部署和维护应用。
|
2月前
|
运维 监控 负载均衡
探索微服务架构下的服务治理:动态服务管理平台深度解析
探索微服务架构下的服务治理:动态服务管理平台深度解析
|
2月前
|
运维 监控 安全
探索微服务架构下的服务治理:动态服务管理平台的力量
探索微服务架构下的服务治理:动态服务管理平台的力量
|
12天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
负载均衡 监控 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
37 3
|
2月前
|
Kubernetes Java 微服务
微服务上下线动态感知实现的技术解析
随着微服务架构的广泛应用,服务的动态管理和监控变得尤为重要。在微服务架构中,服务的上下线是一个常见的操作,如何实时感知这些变化,确保系统的稳定性和可靠性,成为了一个关键技术挑战。本文将深入探讨微服务上下线动态感知的实现方式,从技术基础、场景案例、解决思路和底层原理等多个维度进行阐述,并分别使用Java和Python进行演示介绍。
67 4
|
2月前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
67 1
|
2月前
|
监控 安全 测试技术
深入理解并实践微服务架构中的服务治理
深入理解并实践微服务架构中的服务治理
33 1
|
2月前
|
负载均衡 算法 Java
深入探索微服务架构下的服务治理
深入探索微服务架构下的服务治理
|
2月前
|
监控 Java 微服务
从零构建微服务架构:一次深度技术探索之旅####
本文作为一篇深度技术分享,引领读者踏上自底向上搭建微服务架构的征途,旨在通过实战经验剖析,揭示微服务转型背后的技术挑战与解决方案。不同于常规摘要仅概述内容,本文摘要将直接以故事化手法,简述作者从单体应用困境出发,逐步迈向微服务化的心路历程,涵盖关键决策点、技术选型考量及实践收获,激发读者对微服务架构设计与实现的浓厚兴趣。 ####