宝石流云|SpringCloud微服务架构开发实战:微服务的消费模式
微服务的消费模式基于HTTP的客户端经常被用作微服务的消费者 。 这类客户端往往有着平台无关性、语言无关性等特征 , 而被社区广泛支持 , 各类HTTP客户端框架也是层出不穷 。
本节我们将带领大家来了解微服务常见的消费模式 。
@ServicepublicclassWeatherDataServicelmplimplementsWeatherDataService{@AutowiredprivateRestTemplaterestTemplate;privateWeatherResponsedoGetWeatherData(Stringuri)[ResponseEntityresponse=restTemplate.getForEntity(uri,String.class);//...}/l...}服务直连模式具有以下特点 。
简洁明了 。 平台语言无关性 。当然 , 这种模式也有一个最大的问题 , 就是假设给定的URL不可用 , 怎么办?由于这种模式
无法保证服务的可用性 , 所以在生产环境中比较少用 。
客户端发现模式客户端发现模式是一种由客户端来决定相应服务实例的网络位置的解决方案 。 其原理如下 。
当服务实例启动后 , 将自己的位置信息提交到服务注册表(ServiceRegistry)中 。 服务注册表维护着所有可用的服务实例的列表 。 客户端从服务注册表进行查询 , 来获取可用的服务实例 。 在选取可用的服务实例的过程中 , 客户端自行使用负载均衡算法从多个服务实例中选择一个 , 然后发出请求 。图9-1显示了客户端发现模式的架构 。
ZooKeeper是Apache基金会下一个开源的、高可用的分布式应用协调服务 , 也被广泛应用于服务发现 。
客户端发现模式的优点是 , 该模式相对直接 , 除了服务注册外 , 其他部分基本无须做改动 。 此外 , 由于客户端已经知晓所有可用的服务实例 , 所以能够针对特定应用来实现智能的负载均衡 。
客户端发现模式的缺点是 , 客户端需要与服务注册表进行绑定 , 要针对服务端用到的每个编程语言和框架 , 来实现客户端的服务发现逻辑 。
服务端发现模式另外一种服务发现的模式是服务端发现模式 。 该模式是客户端通过负载均衡器向某个服务提出请求 , 负载均衡器查询服务注册表 , 并将请求转发到可用的服务实例 。 同客户端发现模式类似 , 服务实例在服务注册表中注册或注销 。 图9-2展现了这种服务端发现模式的架构 。
推荐阅读
- 宝石流云|典型的中国式爱国,说好的支持华为呢?iPhone12遭疯抢
- 宝石流云|关于光刻机!中科院霸气回复来了!
- 宝石流云|而5G是在够用的基础上更快,4G速度已经完全够用
- 流云悠悠|蓝波湾电商——拼多多如何增加销量
- 毒蛇|红宝石蛇?印度发现的毒蛇新品种,号称自然界中最“高贵”的毒蛇
- IT之家|Watch GT 2 Pro 配置对比出炉:线性马达、蓝宝石玻璃,华为
- 流云悠悠|蓝波湾拼多多全新模式运营带你月入3-10万!
- 流云如落花|安西教练眼中樱木花道的才能是什么!,“天才”二字真正的含义
- 宝石流云|外媒:华为的回应“亮”了?,4545亿!三星喜获美国5G大单
- 流云悠悠|带你月入过万!,蓝波湾拼多多新手开店指南