Atitit.atiRI  与 远程调用的理论and 设计

    xiaoxiao2026-09-26  12

    Atitit.atiRI  与 远程调用的理论and 设计

     

     

    1. 怎么做到透明化远程服务调用?1

    2. 2  怎么对消息进行编码和解码1

    2.1.  确定消息数据结构dsl1

    2.1.1. 消息里为什么要带有requestID?2

    2.2. 序列化与反序列化 json2

    3. 通信  http2

    4. 发布自己的服务2

     

     

     

    1. 怎么做到透明化远程服务调用?

     

    怎么封装通信细节才能让用户像以本地调用方式调用远程服务呢?对java来说就是使用代理!java代理有两种方式:1) jdk 动态代理;

     

    2. 2  怎么对消息进行编码和解码

    作者::  ★(attilax)>>>   绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 ) 汉字名:艾龙,  EMAIL:1466519819@qq.com

    转载请注明来源: http://blog.csdn.net/attilax

     

    2.1.  确定消息数据结构dsl

     

    接口名称(class).method(param)   参数类型&参数值

    要是只一个method,可以反射参数型...贝儿,就要手动指定型..

     

    4)超时时间

    5)requestID,标识唯一请求id,在下面一节会详细描述requestID的用处。

    同理服务端返回的消息结构一般包括以下内容。

    1)返回值

    2)状态code

    3)requestID

     

    2.1.1. 消息里为什么要带有requestID?

    为异步处理

    2.2. 序列化与反序列化 json

     

    3. 通信  http

     

    4. 发布自己的服务

     

    有没有一种方法能实现自动告知,即机器的增添、剔除对调用方透明,调用者不再需要写死服务提供方地址?当然可以,现如今zookeeper被广泛用于实现服务自动注册与发现功能!

    简单来讲,zookeeper可以充当一个服务注册表(Service Registry),让多个服务提供者形成一个集群,让服务消费者通过服务注册表获取具体的服务访问地址(ip+端口)去访问具体的服务提供者。如下图所示:

     

     

     

     

     

    参考

     

    你应该知道的 RPC 原理 - 文章 - 伯乐在线.html

    转载请注明原文地址: https://ju.6miu.com/read-1312359.html
    最新回复(0)