当前位置: 首页 > news >正文

Eureka: 微服务架构中的服务发现与注册实践

Eureka介绍与使用教程

你好,我是悦创。

Eureka 是 Netflix 开发的一款服务发现(Service Discovery)工具,它主要用于云中基于微服务架构的应用程序。Eureka使服务实例能够动态地注册自己,而其他服务实例可以通过 Eureka 发现并连接到它们。这种动态服务注册与发现机制,是构建高度可扩展的微服务架构的关键组成部分。

Eureka的主要组成部分

  • Eureka Server: 服务注册中心。服务实例注册其元数据到Eureka Server,其它服务实例通过Eureka Server来发现服务。
  • Eureka Client: 通常嵌入在需要进行服务注册与发现的应用程序中。Eureka Client负责维护心跳(心跳机制保证服务实例的存活状态)、服务注册、服务发现等功能。

Eureka的工作原理

  1. 服务注册: 启动后,Eureka客户端向注册中心注册自己的服务,并定期发送心跳来更新其状态。
  2. 服务发现: 服务消费者使用Eureka客户端从Eureka服务器查询可用服务,并获取服务相关信息来进行远程调用。
  3. 服务下线: 当服务实例关闭时,它会向Eureka服务器发送下线请求,注册中心将该实例从其列表中移除。
  4. 故障监测: Eureka Server在没有收到某个服务实例的心跳后,会将该实例从服务列表中移除。

如何使用Eureka

以下是使用Spring Cloud与Eureka进行服务注册与发现的步骤:

步骤 1: 设置Eureka Server
  1. 添加依赖: 在Spring Boot项目的pom.xml中添加Eureka Server的依赖。
   <dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies>
  1. 配置应用程序:

application.yml中配置Eureka Server。

   server:port: 8761eureka:client:registerWithEureka: falsefetchRegistry: falseserver:enableSelfPreservation: false
  1. 启动类配置:

在Spring Boot的启动类中,通过@EnableEurekaServer注解激活Eureka Server。

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

步骤 2: 设置Eureka Client

  1. 添加依赖:

在需要注册的微服务的 pom.xml 中添加 Eureka Client 的依赖。

   <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
  1. 配置客户端:
    application.yml中配置 Eureka Client。
   eureka:client:serviceUrl:defaultZone: http://localhost:8761/eureka/
  1. 启动类配置:

在微服务的启动类中,通过 @EnableEurekaClient 注解激活 Eureka Client。

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

通过这些步骤,你可以设置一个基本的 Eureka Server 和 Client,用于微服务的注册和发现。使用 Eureka 可以极大地增强微服务架构的动态性和健壮性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Python 潮流周刊#61:PyPI 管理员密钥泄露事件(摘要)
  • 【面试题】手撕缓存LRU
  • 开放开源开先河(三)
  • python需要掌握那些语法
  • 【Mysql关于读已提交和可重复读(Read Committed)隔离级别下解决幻读的方案】
  • python--实验15 数据分析与可视化
  • Python爬虫——1爬虫基础(一步一步慢慢来)
  • 【golang-ent】go-zero框架 整合 ent orm框架 | 解决left join未关联报错的问题
  • window11 部署llama.cpp并运行Qwen2-0.5B-Instruct-GGUF
  • python实现插入排序、快速排序
  • 陪玩系统小程序模式APP小程序H5系统搭建开发
  • 微信小程序-组件通信
  • DETR算法解读——Transformer在目标检测任务的首次应用
  • <数据集>铁轨缺陷检测数据集<目标检测>
  • IP转接服务的重要性及其应用
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [译]CSS 居中(Center)方法大合集
  • 「译」Node.js Streams 基础
  • angular组件开发
  • CSS实用技巧
  • express + mock 让前后台并行开发
  • Linux Process Manage
  • Linux后台研发超实用命令总结
  • mysql常用命令汇总
  • php面试题 汇集2
  • Quartz初级教程
  • spring + angular 实现导出excel
  • SpringCloud集成分布式事务LCN (一)
  • vue-cli3搭建项目
  • vue-router 实现分析
  • windows下如何用phpstorm同步测试服务器
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 后端_MYSQL
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 悄悄地说一个bug
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 实现简单的正则表达式引擎
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 使用权重正则化较少模型过拟合
  • 双管齐下,VMware的容器新战略
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • CMake 入门1/5:基于阿里云 ECS搭建体验环境
  • 阿里云ACE认证之理解CDN技术
  • 数据可视化之下发图实践
  • $(function(){})与(function($){....})(jQuery)的区别
  • (23)Linux的软硬连接
  • (3)STL算法之搜索
  • (AngularJS)Angular 控制器之间通信初探
  • (C++哈希表01)
  • (leetcode学习)236. 二叉树的最近公共祖先
  • (笔记)M1使用hombrew安装qemu
  • (附源码)springboot掌上博客系统 毕业设计063131
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (十六)、把镜像推送到私有化 Docker 仓库