`
lobin
  • 浏览: 115667 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
Rss 文章列表
HTTP响应中的状态行、消息头   HTTP响应包括状态行,消息头,消息体以及实体等内容。   http服务器在处理请求响应时,发回一个响应消息给客户端: Response = Status-Line ; Section 6.1 *(( general-header ; Section 4.5 | response-header ; Section 6.2 | entit ...
关于Java RMI(RPC)的绑定(bind)和导出(export)   绑定(bind)是将远程对象存根和对应的绑定名称在Registry上进行关联,以便在查找(lookup)是能够根据绑定名称查找绑定的远程对象(实际上市对应的远程对象存根,静态存? ...
在很多远程方法调用(RPC)实现中,在开发的时候,通常会为远程对象生成对象的存根(Stub)和骨架(Skeleton),如在java1.5以前,开发RMI服务时,需要通过rmic生成对应的Stub和Skeleton。其他类似的技术如COM(DCOM)以及CORBA也会生成Stub和Skeleton。   Skeleton的作用是将用户的RPC请求转发给对应的远程对象调用。 Client   ---<call>--->  Stub   ---<req>--->   Skel   ---<dispatch>---->    ----&l ...
以前整理的一点Thrift的资料 Java序列化机制实现:参考https://lobin.iteye.com/blog/629414序列化章节。
<版本号,2字节><无用字段,1字节><消息类型,1字节><方法名长度,4字节><方法名,n字节><序列号,4字节><参数…,n字节> <参数…,n字节>参考struct Field <Field类型,1字节><Field Id,2字节> <Field类型(stop),1字节> 上面的Field Id对应下面例子中”:”前面的数字: struct Order {     1: required i64 orderId;     2: required i64 use ...
  public class HessianMethodInvocation implements InvocationHandler, Serializable { private static final long serialVersionUID = 7304512179586775133L; private TestServiceImpl testService; private HessianSkeleton skeleton; private AbstractHessianInput input; private AbstractHessian ...
  public class ThriftExporter extends RemoteExporter implements InitializingBean { private static final Logger LOGGER = LoggerFactory.getLogger(ThriftExporter.class); public static final String CONTENT_TYPE_HESSIAN = "application/x-thrift"; protected TProcessorFactory process ...
public interface TestService { public void test(String name); }   public class TestServiceImpl implements TestService { @Override public void test(String name) { System.out.println("test:" + name); } }   public class BurlapSkeletonTest { private stati ...
一个最简单的例子 基于hessian进行rpc调用(http方式)   先定义一个接口: public interface TestService {     public void test(String name); }   实现这个接口: public class TestServiceImpl implements TestService {     @Override     public void test(String name) {         System.out.println("test:" + name);     } ...
基于hessian协议调用java方法-一个map例子   map map ::= M t b16 b8 type-string (object, object)* z   Map类型,同时支持对象Object。 type描述map类型,可为空 如果是对象,type表示类全名     先定义一个接口:     public interface TestService {   public void testMap(Map<String, Object> map);   }   实现这个接口:   public class TestServ ...
要实现一个远程方法调用,最基本的是要考虑调用方法的序列化,包括方法名,传参(参数类型以及传值),返回类型以及返回值。   方法名很简单,就是个字符串,传参和返回就比较麻烦。   传参和返回有类型,光这些类型表示就比较多,尤其是对象类型,特别是复杂对象类型。   Hessian针对对象的序列化不同于Java,对象的序列化形式如下: map map ::= M t b16 b8 type-string (object, object)* z   Map类型,同时支持对象Object。 type描述map类型,可为空 如果是对象,type表示类全名        基 ...
一个最简单的例子 基于hessian协议调用java方法 先定义一个接口: public interface TestService {     public void test(String name); }   实现这个接口: public class TestServiceImpl implements TestService {     @Override     public void test(String name) {         System.out.println("test:" + name);     } }   ...
Java RMI是Java提供的远程方法调用,也就是RPC。   Java RMI在Registry上将远程对象存根(可能是静态存根,也可能是动态存根:Java动态代理对象,动态代理方式)和对应的绑定名进行关联,查找的时候根据绑定的名称进行查找。   Java RMI会将远程对象存根(可能是静态存根,也可能是动态存根:Java动态代理对象,动态代理方式)序列化存储在Registry上,在Registry上绑定名关联, 查找的时候根据绑定的名称进行查找,找到后在序列化传给客户端,客户端通过从Registry上获取到的对象存根进行方法调用。   Java RMI的几个核心组件: 1 ...
Protobuf <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>3.1.0</version> </dependency>     protoc protoc可以直接下载protoc-3.4.0-win32.zip。下载地址:https://github ...
Java RMI规范 Java序列化机制实现:参考https://lobin.iteye.com/blog/629414 远程方法调用(RMI)章节。  Java 序列化 Java序列化机制实现:参考https://lobin.iteye.com/blog/629414 序列化章节。    Java RMI 实例 新版本java开发rmi服务很方便,不需要通过rmic生成Stub(存根)和Skel(Skeleton),老版本java开发rmi服务还需要生成Stub(存根)和Skel(Skeleton) import java.rmi.Remote; import java.r ...
Global site tag (gtag.js) - Google Analytics