博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务的消费
阅读量:4321 次
发布时间:2019-06-06

本文共 1238 字,大约阅读时间需要 4 分钟。

一、微服务的消费模式

  基于HTTP的客户端经常被用作微服务的消费者。这类客户端往往有着与平台无关性、语言无关性等特征,而被社区广泛支持,各类HTTP客户端框架也是层出不穷。常见的微服务消费模式如下:

1、服务直连模式

  服务直连模式是最容易理解的,例如,在浏览器里面访问某篇文章,我们知道URL,直接通过URL访问想要的资源。

  服务直连模式具有以下特点:

  • 简单明了
  • 平台语言无关

  假如给定的URL不可用,则访问不了。由于简单直连模式如法保证服务的可用性,所以在生产环境中比较少用。

2、客户端发现模式

  客户端发现模式是一种由客户端来决定相应服务实例的网络位置的解决方案。原理如下:

  • 当服务实例启动后,将自己的位置信息提交给服务注册表(Serivice Registry)中。服务注册表是维护着所有可用服务实例的列表。
  • 客户端从服务注册表中进行查询,来获取可用的服务实例。
  • 在选取可用的服务实例的过程中,客户端自身使用负载均衡算法从多个服务实例中选择一个,然后发出请求。

  很多技术框架提供了客户端发现模式。Spring Cloud 提供了完整的服务注册与服务发现的实现方式,例如 Eureka ,其提供了服务注册表的功能,为服务注册实例注册管理和查询可用实例提供了 REST API 接口。Ribbon 主要功能是提供客户端的软件负载均衡算法,将中间层服务连接在一起;Ribbon 客户端组建提供一系列完善的配置项,例如,连接超时、重试等。

  Zooker 是 Apache  基金会下一个开源的、高可用的分布式应用协调服务,也被广泛应用于服务发现。

  客户端发现模式的特点:

  优点:

    该模式相对直接,除服务注册外,其他部分基本无需做改动。此外,由于客户端已经知道所有可用的服务实例,所以能够针对特定应用来实现智能的负载均衡。

  缺点:

    客户端需要与服务注册表进行绑定,要针对服务端用到的每个编程语言和框架,来实现客户端的服务发现逻辑。

3、服务端发现模式

  该模式就是客户端通过负载均衡器向某个服务提出请求,负载均衡器查询服务注册表,并将请求转发到可用的服务实例。同客户端发现模式类似,服务实例在注册表中注册或注销。

  与客户端发现模式不同的是,服务端发现模式中需要有专门的负载均衡器来分发请求。这样客户端就可以保持相对简单,无须自己实现负载均衡机制。

  开源领域中,kubernates(https://kubernetes.io/)及 nginx (http://nginx.org/)可以用作服务端发现的负载据衡器。

  服务端发现模式的特点:

  优点:

    会简化客户端的开发工作。客户端之需要将请求发送到负载均衡器即可。

  难点:

    需要考虑如何来配置和管理负载均衡器成为高可用的系统组件。

转载于:https://www.cnblogs.com/BillyYoung/p/10701006.html

你可能感兴趣的文章
发现的一个好的socket网页抓取源码
查看>>
jquery解析json
查看>>
实现自动发邮件功能
查看>>
jQuery笔记(二)
查看>>
GJM : Socket TCP 通信连接(四)
查看>>
基于SDP的提议/应答(offer/answer)模型简介
查看>>
PHP生成word文档的三种实现方式
查看>>
GIS当代技术群2084282(opening)
查看>>
arcengine 经典代码(转) 空间查询 在一个图层上画一个polygon,根据该polygon查询出图层上与之相交的polygon并高亮显示出来...
查看>>
BurpSuite中的安全测试插件推荐
查看>>
用存储过程实现获取字符串中的数据添加到列中
查看>>
GZIP压缩传输服务器配置
查看>>
Velocity模版进行shiro验证
查看>>
新生舞会
查看>>
双倍回文(bzoj 2342)
查看>>
微软Coco Blockchain Framework:一键解决企业级区块链三大难题
查看>>
Azure 虚拟机诊断设置问题排查
查看>>
C++入门经典-例4.8-同名的全局变量和局部变量
查看>>
文章阅读报告 -- 自媒体时代的电子阅读
查看>>
python并行编程学习之并行计算存储体系结构
查看>>