千家信息网

ribbon+rest怎么使用

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容主要讲解"ribbon+rest怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"ribbon+rest怎么使用"吧!在微服务架构中,业务都会
千家信息网最后更新 2026年10月31日ribbon+rest怎么使用

本篇内容主要讲解"ribbon+rest怎么使用",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"ribbon+rest怎么使用"吧!

在微服务架构中,业务都会被拆分成一个独立的服务,服务与服务的通讯是基于http restful的。Spring cloud有两种服务调用方式,一种是ribbon+restTemplate,另一种是feign。

一、ribbon简介

Ribbon is a client side load balancer which gives you a lot of control

over the behaviour of HTTP and TCP clients. Feign already uses Ribbon,

so if you are using @FeignClient then this section also applies.

-----摘自官网

ribbon是一个负载均衡客户端,可以很好的控制htt和tcp的一些行为。Feign默认集成了ribbon。

ribbon 已经默认实现了这些配置bean:

IClientConfig ribbonClientConfig: DefaultClientConfigImpl

IRule ribbonRule: ZoneAvoidanceRule

IPing ribbonPing: NoOpPing

ServerList ribbonServerList: ConfigurationBasedServerList

ServerListFilter ribbonServerListFilter: ZonePreferenceServerListFilter

ILoadBalancer ribbonLoadBalancer: ZoneAwareLoadBalancer

二、准备工作

启动eureka-server 工程;启动service-hi工程,它的端口为8762;将service-hi

的配置文件的端口改为8763,并启动,了解springcloud架构可以加求求:三五三六二四七二五九,这时你会发现:

service-hi在eureka-server注册了2个实例,这就相当于一个小的集群。

三、建一个服务消费者
重新新建一个spring-boot工程,取名为:service-ribbon;
在它的pom.xml继承了父pom文件,并引入了以下依赖:

    4.0.0    com.forezp    service-ribbon    0.0.1-SNAPSHOT    jar    service-ribbon    Demo project for Spring Boot            com.forezp        sc-f-chapter2        0.0.1-SNAPSHOT                            org.springframework.cloud            spring-cloud-starter-netflix-eureka-client                            org.springframework.boot            spring-boot-starter-web                            org.springframework.cloud            spring-cloud-starter-netflix-ribbon             

在工程的配置文件指定服务的注册中心地址为http://localhost:8761/eureka/,程序名称为 service-ribbon,程序端口为8764。配置文件application.yml如下:

eureka:  client:    serviceUrl:      defaultZone: http://localhost:8761/eureka/server:  port: 8764spring:  application:    name: service-ribbon

在工程的启动类中,通过@EnableDiscoveryClient向服务中心注册;并且向程序的ioc注入一个bean: restTemplate;并通

过@LoadBalanced注解表明这个restRemplate开启负载均衡的功能。

@SpringBootApplication@EnableEurekaClient@EnableDiscoveryClientpublic class ServiceRibbonApplication {    public static void main(String[] args) {        SpringApplication.run( ServiceRibbonApplication.class, args );    }    @Bean    @LoadBalanced    RestTemplate restTemplate() {        return new RestTemplate();    }}

写一个测试类HelloService,通过之前注入ioc容器的restTemplate来消费service-hi服务的"/hi"接口,在这里我们直接

用的程序名替代了具体的url地址,在ribbon中它会根据服务名来选择具体的服务实例,根据服务实例在请求的时候会用具

体的url替换掉服务名,代码如下:

@Servicepublic class HelloService {    @Autowired    RestTemplate restTemplate;    public String hiService(String name) {        return restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class);    }}

写一个controller,在controller中用调用HelloService 的方法,代码如下:

@RestControllerpublic class HelloControler {    @Autowired    HelloService helloService;    @GetMapping(value = "/hi")    public String hi(@RequestParam String name) {        return helloService.hiService( name );    }}

在浏览器上多次访问http://localhost:8764/hi?name=forezp,浏览器交替显示:

hi forezp,i am from port:8762
hi forezp,i am from port:8763

这说明当我们通过调用restTemplate.getForObject("http://SERVICE-HI/hi?name="+name,String.class)方法时,已经做了负载均衡,访问了不同的端口的服务实例。

四、此时的架构

  • 一个服务注册中心,eureka server,端口为8761

  • service-hi工程跑了两个实例,端口分别为8762,8763,分别向服务注册中心注册

  • sercvice-ribbon端口为8764,向服务注册中心注册

  • 当sercvice-ribbon通过restTemplate调用service-hi的hi接口时,因为用ribbon进行了负载均衡,会轮流的调用service-hi:8762和8763 两个端口的hi接口.

到此,相信大家对"ribbon+rest怎么使用"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

服务 端口 工程 实例 均衡 文件 程序 配置 接口 方法 架构 两个 代码 内容 地址 浏览器 程序名 学习 浏览 消费 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 百单网互联网科技有限公司 广州淘业互联网络科技 汇久创客互联网科技 互联网科技论坛 亿人帮互联网科技 互联网科技咨询 互联网科技类展会 阿里巴巴算科技企业还是互联网 湖南一路畅行互联网科技 阿大互联网科技有限公司 互联网5g黑科技有哪些 成都互联网科技公司工作好不好 亳州好赞互联网科技有限公司 互联网公司黑科技创始人 中国互联网公司排名锤子科技 互联网科技的全部知识 区块链结合互联网科技 中国互联网有什么科技 工业互联网科技成果转化 兰石爱特工业互联网科技分公司 金融科技 互联网金融 壹账通互联网科技 万达互联网科技 滨湖区互联网智能科技产品供应 福建科技产业互联网发展 花神(南京)互联网科技有限公司 米聚互联网科技南京有限公司排面 浙南科技城互联网大厦建设工程 晋城互联网科技 浙南科技城互联网大厦招聘
0