从零开始学微服务09.为什么需要服务注册发现
微服务调用的问题
值得注意的是,在微服务化的过程中,原本应用内部的方法级调用将转变为跨进程的服务间通信。这种转变不仅提高了系统的灵活性和可扩展性,还有助于实现更高效的资源利用和更快速的业务迭代。
随着业务的增长,服务的数量可能会越来越多,服务间的调用可能会变得异常复杂,实际情况可能是这样的:
随着业务的不断扩展,我们可能会面临服务数量的持续增长。在这种情况下,服务之间的相互调用可能变得错综复杂,给系统的维护和优化带来诸多挑战。为了更好地解决这一问题,我们需要深入了解实际场景中可能出现的情况:
在互联网技术领域,一个服务往往需要与众多其他服务进行交互。它可能会调用其他服务来完成特定的功能,同时,这个服务本身也可能作为一个组件,被其他服务所调用。这种相互依赖的关系使得整个系统更加灵活和高效,有助于实现各种复杂的业务场景。
微服务架构是天然分布式的,为了保证高可用,每个服务往往会有多个服务的实例,实例的数量还会根据业务的负载情况进行伸缩扩展。
此时服务间的调用会出现几个问题:
- 如何获取服务的地址信息?
- 多个服务实例之间,调用者如何选择?
- 服务实例状态发生变化了,调用者如何感知?
在微服务架构中,由于其天然的分布式特性,为了确保系统的高可用性,每个服务通常会部署多个实例。同时,这些实例的数量还需要根据业务负载的变化进行动态伸缩。在这种情况下,服务间的调用就会面临一些挑战,主要包括以下几个方面:
- 服务地址信息的获取:在分布式系统中,服务实例可能部署在不同的节点上,因此调用者需要知道服务实例的地址信息,才能进行远程调用。
- 服务实例选择策略:当存在多个服务实例时,调用者需要根据某种策略来选择合适的实例进行调用。这种策略可能包括负载均衡、服务实例的健康状况等因素。
- 服务实例状态变化的感知:在分布式系统中,服务实例的状态可能会发生变化,例如实例可能因为故障而下线,或者因为扩容而增加新的实例。调用者需要能够实时感知这些变化,以便及时调整调用策略。
服务地址信息的获取
在互联网技术领域,跨进程服务间调用是一种常见的通信方式。为了实现这种通信,服务之间需要通过网络进行交互。在这个过程中,我们必须要知道对方的地址信息。然而,将这些地址信息记录在本地并不可行,原因主要有以下两点:
-
随着服务数量的不断增加,地址信息的数量也会越来越庞大。如果将这些信息都存储在本地,不仅会占用大量的存储空间,还会导致查找和管理的效率降低。
-
在分布式系统中,服务的地址可能会频繁变化。例如,服务可能会因为负载均衡、故障转移等原因而迁移到其他节点。如果将地址信息记录在本地,那么每次地址发生变化时,都需要更新本地的记录,这无疑会增加系统的维护成本和复杂度。
服务实例选择策略
为了提高并发性能并确保高可用性,实际生产环境中的每个服务都会部署多个实例。在进行服务调用时,我们需要从这些实例中选择一个进行请求交互。如果选择不当,可能会导致业务压力分布不均衡,从而削弱并发性能的优势,并增加潜在的风险。
服务实例状态变化的感知
在互联网技术领域,服务实例的升级和故障处理是不可避免的挑战。当服务实例需要升级或因故障而下线时,调用者如何及时感知这些变化至关重要。否则,调用者可能会继续向失效的服务实例发送请求,从而导致请求失败。这种情况可能会进一步引发不必要的业务故障,对整个系统的稳定性和可靠性造成影响。
总结
恭喜你,看到这里你已经超越了80%的人。感谢你这么帅,还给我点赞。
《从零开始学微服务》总目录
- 【从零开始学微服务】01.微服务的过去与现在
- 【从零开始学微服务】02.初识微服务
- 【从零开始学微服务】03.软件架构的演化过程
- 【从零开始学微服务】04.微服务架构的特点
- 【从零开始学微服务】05.微服务的优势和不足
- 【从零开始学微服务】06.微服务架构的建设思路
- 【从零开始学微服务】07.微服务常用的开发框架
- 【从零开始学微服务】08.引入微服务架构的时机
- 【从零开始学微服务】09.为什么需要服务注册发现?
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhihgcbe
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
excel图片置于文字下方的方法
PHP中文网 06-27 -
excel下划线不显示怎么办
PHP中文网 06-23 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22