Motan

https://github.com/weibocom/motan/wiki/zh_userguide

http://www.cnblogs.com/mantu/p/5885996.html(源码分析)

  • 当Server发生变更时,Registry会同步变更,Client感知后会对本地的服务列表作相应调整。(本地服务列表做出相应的调整!!!)  --》》》--  当Server 列表发生变更时也由register模块通知Client。
  • SPI概念
  • protocol
  • hessian2 序列化
  • transport

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

  • 在进行RPC请求时,Client通过代理机制调用cluster模块,cluster根据配置的HA和LoadBalance选出一个可用的Server,通过serialize模块把RPC请求转换为字节流,然后通过transport模块发送到Server端。
  • google protobuffer 
    1. <dependency>
    2. <groupId>com.google.protobuf</groupId>
    3. <artifactId>protobuf-java</artifactId>
    4. <version>${protobuf-java.version}</version>
    5. </dependency>
时间: 2024-10-08 22:41:20

Motan的相关文章

微博轻量级RPC框架Motan正式开源:支撑千亿调用

支撑微博千亿调用的轻量级 RPC 框架 Motan 正式开源了,项目地址为https://github.com/weibocom/motan. 微博轻量级RPC框架Motan正式开源 Motan 是微博技术团队研发的基于 Java 的轻量级 RPC 框架,已在微博内部大规模应用多年,每天稳定支撑微博上亿次的内部调用.Motan 基于微博的高并发和高负载场景优化,成为一套简单.易用.高可用的 RPC 服务框架. Motan 功能特点:简单.易用.高可用 无侵入集成.简单易用,通过 Spring 配

motan服务启动

motan(https://github.com/weibocom/motan.git)是微博开源出来的一款轻量级RPC框架,结合Spring食用,配置简单易上手.之前搞过facebook开源的thrift框架,thrift虽然支持众多语言,但像服务注册与发现.负载均衡这些重要的功能都没有提供,自己实现的费时费力又不稳定,最总还是放弃了. 这次说说motan的启动: 先说一下Spring的BeanPostProcessor接口,该接口中定义了两个方法: public interface Bean

Motan在服务provider端用于处理request的线程池

最近开始重新看motan的源码,打算花一年的时间来分析每个模块每个功能的代码实现,坚持写一个motan分析系列. 因为没有思路,只能一个片段一个片段的看,等到有了一定的积累,再将看过的代码串起来一起分析,形成完整的思路. 第一篇是要回答自己的一个疑问,motan在服务provider端的线程模型是什么?request到达服务provider端之后,被哪个线程处理? motan的tcp通信框架用的是netty,netty的线程模型是reactor模型.由一个Acceptor线程负责channel的

motan源码分析十一:部分特性

本章将描述motan部分的特性并对源码进行分析. 1.requestid的维护,使用了当前时间左移20位,再和一个自增变量组合 public class RequestIdGenerator { protected static final AtomicLong offset = new AtomicLong(0); protected static final int BITS = 20; protected static final long MAX_COUNT_PER_MILLIS = 1

motan中的注册中心:zookeeper

Apache ZooKeeper is an effort to develop and maintain an open-source server which enables highly reliable distributed coordination. --官网 从官网可以看出,zookeeper是一个分布式一致性服务的软件.认识它源于hadoop中的habse.在后来的使用过程,可以看出它本省就是一个分布式的内存数据库,它由多个节点组成,每个节点的中存储的内容的都是一样的.,看到这里

motan源码分析五:cluster相关

上一章我们分析了客户端调用服务端相关的源码,但是到了cluster里面的部分我们就没有分析了,本章将深入分析cluster和它的相关支持类. 1.clustersupport的创建过程,上一章的ReferConfig的initRef()方法中调用了相关的创建代码: for(Iterator iterator = protocols.iterator(); iterator.hasNext();) { ProtocolConfig protocol = (ProtocolConfig)iterat

Motan的SPI机制实现分析

Motan使用SPI机制来实现模块间的访问,基于接口和name来获取实现类,降低了模块间的耦合. 首先来看一下使用方式: 有两个注解 @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface Spi { Scope scope() default Scope.PROTOTYPE; } @Documented @Retention(RetentionPolicy.RUN

motan源码分析四:客户端调用服务

在第一章中,我们分析了服务的发布与注册,本章中将简单的分析一下客户端调用服务的代码及流程,本文将以spring加载的方式进行分析. 1.在DemoRpcClient类的main()方法中加载类: ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"classpath:motan_demo_client.xml"}); MotanDemoService service = (MotanDemo

Motan:目录结构

motan是由maven管理的,在最外层的pom.xml中可以看出这个项目有多个模块组成. <modules> <module>motan-core</module> //核心项目 <module>motan-manager</module> //管理motan的web项目 <module>motan-springsupport</module> //spring对标签的解析 <module>motan-tra