Spring-cloud微服务实战【三】:eureka注册中心(中)

本文介绍了Eureka作为服务发现框架的作用,探讨了在消费者调用生产者API时存在的问题,并详细阐述了Eureka的工作机制。通过实战改造,将Producer注册到Eureka Server,并演示了Consumer如何从Eureka获取服务信息,实现了服务的优雅调用。同时,文章讨论了Eureka的自我保护机制及其优缺点,并提供了禁用该机制的方法。
摘要由CSDN通过智能技术生成

  回忆一下,在上一篇文章中,我们创建了两个springboot项目,并且在consumer项目中通过restTemplate进行HTTP通信,成功访问到了producer提供的接口,思考一下这样的实现方式有什么问题?
  1.consumer必须知道producer的IP,才能调用对方的HTTP接口,并且在consumer代码中使用硬编码的方式来访问producer的HTTP接口,代码耦合度高,实现方式不优雅.也许有童鞋会说,我们可以在application.properties配置文件进行配置,那么请看第二个问题.
  2.一般来说,生产环境的producer是一个集群,有多个IP,那我consumer该怎么写请求地址?并且假如producer集群的IP变了,consumer应用需要修改配置,重新打包上线.这对于一个高并发访问的生产项目来说是不可接受的.因此,consumer应用需要一种机制,可以在访问producer的时候不需要关心producer的IP,并且该机制还应该提供类似于观察者模式的通知机制,在producer的IP进行变更的时候,及时通consumer,并且还能提供类似Nginx的负载均衡的功能,这就是eureka注册中心的作用.

什么是eureka注册中心?

  eureka是netflix公司开发的一款用于服务发现的框架,spring-cloud将其集成到spring-cloud-netflix子项目中,包括我们后续会使用的负载均衡ribbon,服务熔断与降级Hystrix等等都是netflix公司开发的.可以看出,springcloud其实整合了许多优秀公司的框架.
  我们通过一张图来说明一下eureka工作机制:
file

  假如我们现在有许多的微服务作为服务提供方,每个微服务是一个集群,他们将自己的集群节点的IP与端口号注册到eureka中心,当有消费者需要消费服务的时候,即可从注册中心拉取所有的服务提供方列表,选择需要消费的服务,此时,eureka会根据负载算法将消费者需要的服务的IP与端口号返回给消费者,此时,消费者就可以根据IP和端口号去消费对应的服务了.此外,eureka还必须接收注册服务的心跳,确保注册的服务可用.并且从图中我们可以得知:
file

代码实战

  接下来,我们改造上一篇文章中已有的代码,使用eureka进行服务治理,producer注册自身到eureka,consumer从eureka获取producer的信息并调用.
  首先,我们要新建一个子模块,用于充当eureka-server的角色:
file
file

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值