美团点评RPC框架pigeon实现原理及源码解析

1.介绍及使用方式Pigeon是一个分布式服务通信框架(RPC),在美团点评内部广泛使用,是美团点评最基础的底层框架之一。和阿里的Dubbo类似,在微服务的场景下,提供高性能和透明得如同本地化调用的RPC调用服务。有以下特点: 除了支持spring schema等配置方式,也支持代码annotation方式发布服务、引用远程服务,并提供原生api接口的用法。 支持netty通信...
摘要由CSDN通过智能技术生成

1.介绍及使用方式

Pigeon是一个分布式服务通信框架(RPC),在美团点评内部广泛使用,是美团点评最基础的底层框架之一。和阿里的Dubbo类似,在微服务的场景下,提供高性能和透明得如同本地化调用的RPC调用服务。有以下特点:

  • 除了支持spring schema等配置方式,也支持代码annotation方式发布服务、引用远程服务,并提供原生api接口的用法。

  • 支持netty通信,也支持http协议,方便非java应用调用pigeon的服务。

  • 使用zookeeper实现服务注册及发现,使用Curator管理Zookeeper的相关操作。

  • 序列化方式除了hessian,还支持thrift等。

  • 提供了服务器单机控制台pigeon-console,包含单机服务测试工具。

  • 创新的客户端路由策略,提供服务预热功能,解决线上流量大的service重启时大量超时的问题。

  • 记录每个请求的对象大小、返回对象大小等监控信息。

  • 服务端可对方法设置单独的线程池进行服务隔离,可配置客户端应用的最大并发数进行限流。

配置使用方法如下:

  1. 定义服务:
    定义服务接口: (该接口需单独打包,在服务提供方和调用方共享);
    
    
    
    package com.dianping.pigeon.demo;
    
    public interface EchoService {
    
    	public String echo(String name);
    	
    }
  2. 在服务提供方实现接口:(对服务调用方隐藏实现)。
    
    
    
    package com.dianping.pigeon.demo.provider;
    
    import com.dianping.pigeon.demo.EchoService;
    
    public class EchoServiceImpl implements EchoService {
    
    	public String echo(String name) {
    		return "Hello " + name;
    	}
    	
    }

    服务提供方Spring配置声明暴露服务:
     

    
    <bean class="com.dianping.pigeon.remoting.provider.config.spring.ServiceBean" init-method="init">
        <property name="services">
            <map>
                <entry key="http://service.dianping.com/demoService/echoService_1.0.0" value-ref="echoServiceImpl" />
            </map>
        </property>
        <property name="port">
            <value>5008</value>
        </property>
    </bean>
  3.  服务调用方通过配置引用远程服务
    
    
    
    <bean id="echoService" class="com.dianping.pigeon.remoting.invoker.config.spring.ReferenceBean" init-method="init">
        <!-- 服务全局唯一的标识url,默认是服务接口类名,必须设置 -->
    	<property name="url" value="http://service.dianping.com/demoService/echoService_1.0.0" />
    	<!-- 接口名称,必须设置 -->
    	<property name="interfaceName" value="com.dianping.pigeon.demo.EchoService" />
    	<!-- 超时时间,毫秒ÿ
  • 15
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值