##参考
- Zookeeper实现简单的分布式RPC框架
- 使用Netty实现多路复用的client
- netty 数据分包、组包、粘包处理机制(二)
- netty 过长内容分成了多次发送 问题 LengthFieldBasedFrameDecoder使用
- netty之http部分handler的使用与超时控制handler
- Netty 超时机制及心跳程序实现
- Spring bean 实现生命周期的三种解决方案
- dubbo是如何“插入”到spring框架中的
- Dubbo之旅--启动解析(
DubboBeanDefinitionParser#parse
) - spring hessian 自动扫描注入
- hessian-spring
- rpc-spring
- rsf
- netty重连实例
- AutoReconnectNettyExample
##client端调用remote service的方式
- java config方式
@Bean
public HelloService buildHelloService(RpcProxyFactory rpcProxyFactory){
return rpcProxyFactory.proxyBean(HelloService.class,100/*timeout*/);
}
好处是,可以直接共用service-api的接口,不好的是java config稍微不如xml直观,不过适应就好
- xml方式
<bean id="helloService" class="com.patterncat.rpc.spring.SpringProxyFactoryBean">
<property name="innerClassName">
<value>com.patterncat.rpc.service.demo.HelloService</value>
</property>
<property name="timeoutInMillis">
<value>200</value>
</property>
</bean>
这种方式就是配置感觉略微复杂点,不过还可以接受,具体可参照navi
- 更简洁的xml
<dubbo:reference id="helloService" interface="com.patterncat.rpc.service.demo.HelloService" timeout="200"/>
参照dubbo的方式,自定义schema,dubbo-config-spring
- client再次定义接口 使用scanner的方式,client端再次写接口,然后client端扫描装配,重复定义,不建议用,具体可参照rpc-spring
##todo
- client的失败重连
- service mapping 采用注解形式
- 基于spring的远程代理参考navi
- 服务注册\发现\路由