java技术--SpringCloud:Ribbon概念解析(06)

1.Ribbon概念

(1)Ribbon是Netflix公司开源的一个负载均衡的项目
   <1>是一个客户端负载均衡器,运行在客户端上
   <2>是一个经过了云端测试的IPC库,可以很好地控制HTTP和TCP客户端的一些行为
   <3> Feign已经默认使用了Ribbon
(2)Ribbon的特性:
   <1>负载均衡,容错
   <2>多协议(HTTP,TCP,UDP)支持异步和反应模型
   <3>缓存和批处理   
(3)IPC与TPC/IP
   <1> IPC,即进程间通讯
     1.1.在同一台机器上的两个进程就用IPC,不能跨物理机器
     1.2.IPC包括共享内存、队列、信号量等几种方式
   <2> TCP/IP,即传输控制协议/网间网协议
     2.1.可在同一台机子或两台物理机或不同操作平台之间的两个进程进行通讯
   <3>IPC与TPC/IP区别与联系
     3.1.如果两个进程在同一台机子且在同一个操作平台,可选择IPC或TCI/IP两种通讯方式都可以 
     3.2.IPC效率高于TCP/IP
     3.3.采用IPC通讯,进程1直接把通讯包发给进程2
     3.4.采用TCP/IP通讯,进程1将要先把通讯包发给“LO”即本地环路接口,通过"LO"再把通讯包发给进程2
     3.5. 如果两个进程在不同的物理机上或在不同的操作平台,则不能用IPC,用TCP/IP通讯:
        3.5.1.进程1把通讯包发给本机的物理网卡1
        3.5.2.物理网卡1通过网线把通讯包发给进程2所在的机器的物理网卡2
        3.5.3.网卡2再把通讯包发给进程2    

2.RestTemplate和Ribbon相结合

(1)Ribbon在Netflix组件是非常重要的一个组件
     <1>在Zuul中使用Ribbon做负载均衡,以及Feign组件的结合
     <2>在Spring Cloud 开发中,做的最多的是将RestTemplate和Ribbon相结合
(2)RestTemplate和Ribbon相结合代码示例如下:
     <1>服务配置类:
       @Configuration
       public class RibbonConfig {
         @Bean
         @LoadBalanced
         RestTemplate restTemplate() {
           return new RestTemplate();}}
     <2>消费另外一个的服务的接口:
     @Service
     public class RibbonService {
        @Autowired
        RestTemplate restTemplate;
        public String hi(String name) {
        return restTemplate.getForObject("http://eureka-client/hi?name="+name,String.class);}}   

3.RestTemplate简介

(1)spring框架提供的RestTemplate类可用于在应用中调用rest服务
    <1>它简化了与http服务的通信方式,统一了RESTful的标准,封装了http链接
    <2>只需要传入url及返回值类型即可
(2)RestTemplate类的设计原则
    <1>在Spring应用程序中访问第三方REST服务与使用Spring RestTemplate类有关
    <2>为执行复杂任务提供了一种具有默认行为的简化方法
    <3>RestTemplate默认依赖JDK提供http连接的能力
(3)RestTemplate类具有的方法:
    <1>headForHeaders():制定请求头信息
    <2>getForObject():GET请求
    <3>postForObject():POST请求
    <4>put()和delete()等方法:PUT和DELETE请求

4.RestTemplate包含以下几个部分:

(1)HttpMessageConverter 对象转换器
(2)ClientHttpRequestFactory 默认是JDK的HttpURLConnection
(3)ResponseErrorHandler 异常处理
(4)ClientHttpRequestInterceptor 请求拦截器
(5)区别与关系:
   <1>RestTemplate继承自HttpAccessor这个统一的处理器
   <2>然后再继承自InterceptingHttpAccessor,这个拦截转换器
   <3>最终RestTemplate实现了封装httpClient的模板工具类

5.RestTemplate使用参考文档:
https://www.cnblogs.com/f-anything/p/10084215.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值