motan学习笔记 一 微博轻量级RPC框架Motan

前言







前几年RPC+SOA,这几年服务化,微服务


其实都大同小异,都是概念。dubbo是一款比较成功的开源项目,好多公司都在使用,去哪 京东 当当

但是,dubbo有点太繁琐了,把rpc拆分的很细,利于大家扩展。同时综合了服务治理。

motan,是微博基于dubbo的定制,同时框架接口比较清晰(当然dubbo也很清晰,相对而言)


不熟悉dubbo的同学,请看我之前写的文档   dubbo学习笔记 http://blog.csdn.net/akfly/article/category/6600674


motan

官方文档


通过官方文档可以看出

可以看出与dubbo很类似,之后我们会分析其的几个模块

register

用来和注册中心进行交互,包括注册服务、订阅服务、服务变更通知、服务心跳发送等功能;Server端会在系统初始化时通过register模块注册服务,Client端在系统初始化时会通过register模块订阅到具体提供服务的Server列表,当Server 列表发生变更时也由register模块通知Client。

protocol

用来进行RPC服务的描述和RPC服务的配置管理,这一层还可以添加不同功能的filter用来完成统计、并发限制等功能。

serialize

将RPC请求中的参数、结果等对象进行序列化与反序列化,即进行对象与字节流的互相转换;默认使用对java更友好的hessian2进行序列化。、

transport

用来进行远程通信,默认使用Netty nio的TCP长链接方式。

cluster

Client端使用的模块,cluster是一组可用的Server在逻辑上的封装,包含若干可以提供RPC服务的Server,实际请求时会根据不同的高可用与负载均衡策略选择一个可用的Server发起远程调用。
在进行RPC请求时,Client通过代理机制调用cluster模块,cluster根据配置的HA和LoadBalance选出一个可用的Server,通过serialize模块把RPC请求转换为字节流,然后通过transport模块发送到Server端。


代码构建

下载pherialize


motan支持protocol-yar  所以需要这个jar吧,简单的看了下,里面是java如何序列化成php识别的字符串

Example:

List list;

list = new ArrayList();
list.add("A string");
list.add(Integer.valueOf(12345));
list.add(Boolean.TRUE);
System.out.println(Pherialize.serialize(list));
The result is printed to stdout and looks like this:

a:3:{i:0;s:8:"A string";i:1;i:12345;i:2;b:1;}
Now you can use this string in PHP to unserialize it back into a PHP array:

$data = unserialize('a:3:{i:0;s:8:"A string";i:1;i:12345;i:2;b:1;}');
var_dump($data);
Result is a PHP array with exactly the data and types you have added to the array with Java:

array(3) {
  [0]=>
  string(8) "A string"
  [1]=>
  int(12345)
  [2]=>
  bool(true)
}


下载源码     https://github.com/kayahr/pherialize   因为motan使用1.2.1,切换分支,本地build即可 

下载motan


https://github.com/weibocom/motan   mvn clean install





  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值