微服务-Eureka

Eureka的作用

使用RestTemplate完成远程调用需要被调用者 的ip和端口,从而能够发起http请求,但是如果有很多个实例也更加不能有效的处理,而且我们又该如何知道这些实例是否健康呢。所以就有了很多的注册中心比如Eureka、Nacos等等。

  1. 服务注册:服务提供者实例启动后会把自己的信息注册到eureka中,eureka会将服务名称与服务实例之间的映射关系
  2. 服务发现:服务消费者会根据服务名称拉取服务的时候会根据映射关系找到对应的实例
  3. 负载均衡:服务消费者消费者从实例列表中利用负载均衡算法选中一个实例地址
  4. 健康检测:服务提供者每隔一段时间会向eureka发生心跳,来证明自己存活,可以被调用

Eureka的使用

Eureka服务搭建

1)引入依赖

我们需要一个一个maven项目,单独作为eureka服务,导入依赖:

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>

2)配置文件

yml 复制代码
server:
  port: 10086
spring:
  application:
    name: eureka-server
eureka:
  client:
    service-url: 
      defaultZone: http://localhost:10086/eureka

3)启动类

给该项目的启动类添加@EnableEurekaServer注解。

4)启动项目并进行验证

服务注册

1)依赖引入

需要引入eureka-client的依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

添加服务名称、eureka地址:

yml 复制代码
spring:
  application:
    name: userservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3)启动多个实例

服务发现

1)依赖引入

需要引入eureka-client的依赖

xml 复制代码
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

2)配置文件

服务发现也需要知道eureka地址,因此第二步与服务注册一致,都是配置eureka信息,添加服务名称、eureka地址:

yml 复制代码
spring:
  application:
    name: orderservice
eureka:
  client:
    service-url:
      defaultZone: http://127.0.0.1:10086/eureka

3)服务拉取

这里的ip+端口需要变成我们服务注册的时候的服务名称。

并且需要给调用者的RestTemplete加上@LoadBalanced注解开启负载均衡。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Ribbon负载均衡

SpringCloud的负载均衡是通过一个Ribbon的组件来实现的。

我们使用postman多进行几次测试,会发现user服务的两个实例都被调用了,如图所示

相关推荐
会周易的程序员6 小时前
cNetgate物联网网关内存数据表和数据视图模块架构
c语言·c++·物联网·架构·lua·iot
国科安芯8 小时前
基于RISC-V架构的抗辐照MCU在空间EDFA控制单元中的可靠性分析
单片机·嵌入式硬件·性能优化·架构·risc-v·安全性测试
福大大架构师每日一题11 小时前
dify 1.13.0——Human-in-the-Loop与工作流执行架构全面升级,释放AI与人的协作潜力
人工智能·架构
想用offer打牌12 小时前
一站式了解火焰图的基本使用
后端·面试·架构
castro14 小时前
图像处理滤镜应用 - 技术说明文档
架构
功能啥都不会14 小时前
PowerShell 开机脚本不执行?WireGuard 防火墙配置踩坑实录(接从零搭建安全内网穿透博文)
架构
AC赳赳老秦17 小时前
2026多模态技术趋势预测:DeepSeek处理图文音视频多格式数据实战指南
java·人工智能·python·安全·架构·prometheus·deepseek
无心水18 小时前
【任务调度:数据库锁 + 线程池实战】4、架构实战:用线程池 + SKIP LOCKED 构建高可用分布式调度引擎
人工智能·分布式·后端·spring·架构
Max_uuc18 小时前
【架构心法】榨干 USB 带宽:多合一调试工具的“复合设备”架构与端点分配哲学
架构
Coder_Boy_19 小时前
Java高级_资深_架构岗 核心知识点(模块三:高并发)
java·spring boot·分布式·面试·架构