微服务技术系列教程(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,可以看到调用成功:

目录
相关文章
|
2月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
398 3
|
25天前
|
监控 安全 Java
Spring Cloud 微服务治理技术详解与实践指南
本文档全面介绍 Spring Cloud 微服务治理框架的核心组件、架构设计和实践应用。作为 Spring 生态系统中构建分布式系统的标准工具箱,Spring Cloud 提供了一套完整的微服务解决方案,涵盖服务发现、配置管理、负载均衡、熔断器等关键功能。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
79 1
|
1月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
154 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
1月前
|
Kubernetes Java 微服务
Spring Cloud 微服务架构技术解析与实践指南
本文档全面介绍 Spring Cloud 微服务架构的核心组件、设计理念和实现方案。作为构建分布式系统的综合工具箱,Spring Cloud 为微服务架构提供了服务发现、配置管理、负载均衡、熔断器等关键功能的标准化实现。本文将深入探讨其核心组件的工作原理、集成方式以及在实际项目中的最佳实践,帮助开发者构建高可用、可扩展的分布式系统。
259 0
|
6月前
|
SpringCloudAlibaba Java Nacos
尚硅谷SpringCloud教程 笔记
本文介绍了基于Spring Cloud Alibaba构建的cloud-demo工程创建步骤,包括父模块及子模块的配置。父模块采用pom打包方式,定义了Java 8、Spring Boot 2.4.2、Spring Cloud 2020.0.1及Spring Cloud Alibaba 2021.1版本。包含三个主要模块:services(依赖Nacos)、service-order和service-product(均依赖spring-boot-starter-web)。同时提供了discoveryClient的测试代码,展示服务发现功能的实现与验证过程。
359 12
尚硅谷SpringCloud教程 笔记
|
4月前
|
负载均衡 Java API
基于 Spring Cloud 的微服务架构分析
Spring Cloud 是一个基于 Spring Boot 的微服务框架,提供全套分布式系统解决方案。它整合了 Netflix、Zookeeper 等成熟技术,通过简化配置和开发流程,支持服务发现(Eureka)、负载均衡(Ribbon)、断路器(Hystrix)、API网关(Zuul)、配置管理(Config)等功能。此外,Spring Cloud 还兼容 Nacos、Consul、Etcd 等注册中心,满足不同场景需求。其核心组件如 Feign 和 Stream,进一步增强了服务调用与消息处理能力,为开发者提供了一站式微服务开发工具包。
502 0
|
8月前
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
366 1
|
9月前
|
搜索推荐 NoSQL Java
微服务架构设计与实践:用Spring Cloud实现抖音的推荐系统
本文基于Spring Cloud实现了一个简化的抖音推荐系统,涵盖用户行为管理、视频资源管理、个性化推荐和实时数据处理四大核心功能。通过Eureka进行服务注册与发现,使用Feign实现服务间调用,并借助Redis缓存用户画像,Kafka传递用户行为数据。文章详细介绍了项目搭建、服务创建及配置过程,包括用户服务、视频服务、推荐服务和数据处理服务的开发步骤。最后,通过业务测试验证了系统的功能,并引入Resilience4j实现服务降级,确保系统在部分服务故障时仍能正常运行。此示例旨在帮助读者理解微服务架构的设计思路与实践方法。
441 17
|
7月前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
132 0

热门文章

最新文章