SpringCloud微服务架构开发实战:微服务的消费模式
微服务的消费模式基于HTTP的客户端经常被用作微服务的消费者 。 这类客户端往往有着平台无关性、语言无关性等特征 , 而被社区广泛支持 , 各类HTTP客户端框架也是层出不穷 。
【SpringCloud微服务架构开发实战:微服务的消费模式】本节我们将带领大家来了解微服务常见的消费模式 。
@ServicepublicclassWeatherDataServicelmplimplementsWeatherDataService{@AutowiredprivateRestTemplaterestTemplate;privateWeatherResponsedoGetWeatherData(Stringuri)[ResponseEntityresponse=restTemplate.getForEntity(uri,String.class);//...}/l...}服务直连模式具有以下特点 。
简洁明了 。 平台语言无关性 。当然 , 这种模式也有一个最大的问题 , 就是假设给定的URL不可用 , 怎么办?由于这种模式
无法保证服务的可用性 , 所以在生产环境中比较少用 。
客户端发现模式客户端发现模式是一种由客户端来决定相应服务实例的网络位置的解决方案 。 其原理如下 。
当服务实例启动后 , 将自己的位置信息提交到服务注册表(ServiceRegistry)中 。 服务注册表维护着所有可用的服务实例的列表 。 客户端从服务注册表进行查询 , 来获取可用的服务实例 。 在选取可用的服务实例的过程中 , 客户端自行使用负载均衡算法从多个服务实例中选择一个 , 然后发出请求 。图9-1显示了客户端发现模式的架构 。
ZooKeeper是Apache基金会下一个开源的、高可用的分布式应用协调服务 , 也被广泛应用于服务发现 。
客户端发现模式的优点是 , 该模式相对直接 , 除了服务注册外 , 其他部分基本无须做改动 。 此外 , 由于客户端已经知晓所有可用的服务实例 , 所以能够针对特定应用来实现智能的负载均衡 。
客户端发现模式的缺点是 , 客户端需要与服务注册表进行绑定 , 要针对服务端用到的每个编程语言和框架 , 来实现客户端的服务发现逻辑 。
服务端发现模式另外一种服务发现的模式是服务端发现模式 。 该模式是客户端通过负载均衡器向某个服务提出请求 , 负载均衡器查询服务注册表 , 并将请求转发到可用的服务实例 。 同客户端发现模式类似 , 服务实例在服务注册表中注册或注销 。 图9-2展现了这种服务端发现模式的架构 。
在商业产品领域 , Amazon公司的ElasticLoadBalancing(https:/laws.amazon.com/cn/elasticload-balancing/)提供了服务端发现路由的功能 , 可以在多个AmazonEC2实例之间自动分配应用程序的传入流量 。 它可以实现应用程序容错能力 , 从而无缝提供路由应用程序流量所需的负载均衡容量 。
ElasticLoadBalancing提供两种类型的负载均衡器 , 一种是Classic负载均衡器 , 可基于应用程序或网络级信息路由流量;另一种是应用程序负载均衡器 , 可基于包括请求内容的高级应用程序级信息路由流量 。 Classic负载均衡器适用于在多个EC2实例之间进行简单的流量负载均衡 , 而应用程序负载均衡器则适用于需要高级路由功能、微服务和基于容器的架构的应用程序 。 应用程序负载均衡器可将流量路由至多个服务 , 也可在同一EC2实例的多个端口之间进行负载均衡 。 这两种类型均具备高可用性、自动扩展功能和可靠的安全性 。
在开源领域 , Kubernetes(https:/kubernetes.io)及NGINX(http:/nginx.org/)也能用作服务端发现的负载均衡器 。 NGINX是一个高性能的HTTP和反向代理服务器 , 在连接高并发的情况下 , 可以作为Apache服务器不错的替代品 , 在分布式系统中 , 经常被作为负载均衡服务器使用 。
Kubernetes作为Docker生态圈中的重要一员 , 是Google多年大规模容器管理技术的开源版本 。
其中 , Kubernetes的Proxy(代理)组件实现了负载均衡功能 。 Proxy会根据LoadBalancer将请求透明地转发到集群中可用的服务实例 。
使用服务端发现模式的好处是 , 它通常会简化客户端的开发工作 , 因为客户端并不需要关心负载均衡的细节工作 , 其所要做的工作就是将请求发到负载均衡器即可 。 市面上也提供了很多商业或开源的负载均衡器的实现 , 开箱即用 , 方案也比较成熟 。
实施服务端发现模式也有难点 , 一个比较大的问题是需要考虑如何来配置和管理负载均衡器成为高可用的系统组件 。
本篇文章内容给大家讲解的是微服务的消费模式下篇文章给大家讲解常见微服务的消费者;觉得文章不错的朋友可以转发此文关注小编;感谢大家的支持!
推荐阅读
- 显微镜|假如人类可以把显微镜提升到40亿倍,是不是全新的宇宙观?
- 各地地方风味特色菜!
- 猜成语|看图猜成语:稍微转一转,生命更精彩!
- 布法罗大学|新工具可以通过眼睛里的微小反射来识别出深度伪造照片
- 微创手术|女大学生双手“挥汗如雨” 微创手术20分钟搞定顽疾
- 大叔用xo酱炖的辣豆腐,嫩滑可口,咸鲜微辣,家人爱吃!
- 鲫鱼我只服这样做,稍微腌制风干,做好一次可以吃上半年
- 使用微波炉蒸蔬菜,要想好吃营养不流失,不同的蔬菜方法不同
- 微笑豆沙巧克力面包
- 螺旋测微器|敲黑板!千分尺就怕这样用……
