服务间通信:Spring Cloud Netflix Ribbon和 Spring Cloud OpenFeign
一个大型的系统由多个微服务模块组成,我们一般可以通过内部接口调用的形式(服务A提供一个接口,服务B通过HTTP请求调用服务A的接口)实现各模块之间的通信。为了简化开发,SpringCloud集成了Spring Cloud Netflix Ribbon和Spring Cloud OpenFeign,两个组件都支持通过HTTP请求不同的服务。
举个例子,用户模块和评论模块,当查询评论列表时需要返回用户的基本信息(昵称、头像等),直接利用SQL语句关联查询是可以实现该需求的,但是耦合性较强,亦不利于扩展。用户信息应由用户模块提供,这时就需要用户模块提供接口,评论模块调用此接口,从而拿到用户数据。
本文将简要介绍Spring Cloud Netflix Ribbon,借此引出 Sping Cloud OpenFeign,并详细介绍其用法。
Spring Cloud Netflix Ribbon的使用
Spring Cloud Netflix Ribbon(即 Ribbon )是Spring Cloud Netflix的一个子项目,它提供了HTTP客户端和TCP客户端,用于支持各服务间的通信并且拥有负载均衡能力。

Ribbon 的一个核心概念是命名的客户端。每一个负载均衡器都是Ribbon组件的一部分,它们在需要的时候一起工作,并且和远程服务器通信。
在 Spring Cloud工程中引用Ribbon非常简单,只需要在pom.xml中添加以下依赖:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artif

本文介绍了Spring Cloud Netflix Ribbon在服务间通信中的作用,作为HTTP客户端支持负载均衡。通过添加依赖和@LoadBalanced注解启用Ribbon,使用RestTemplate进行远程调用。文中展示了如何创建接口和控制器,实现在comment服务中调用TEST服务并验证了Ribbon的负载均衡效果。同时,指出Ribbon的不足,预告了Spring Cloud OpenFeign作为更优雅的解决方案。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



