zoukankan      html  css  js  c++  java
  • RCP简介(笔记一)

    一、RCP概念

    RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。

    二、实现方式

    JDK动态代理

    三、消息数据结构

    客户端请求参数数据结构:

    1、接口名称

    2、方法名

    3、参数类型&参数值

    4、超时时间

    5、requestID,标识唯一请求id。

    服务端返回参数数据结构:

    1、返回值

    2、状态code

    3、requestID,标识唯一请求id。

    requestID作用:在多线程请求中,每一个线程的唯一标识。

    四、序列化和反序列化

    RPC选择序列化方法时需要考虑的点:

    1、通用性,比如是否能支持Map等复杂的数据结构;

    2、性能,包括时间复杂度和空间复杂度,由于RPC框架将会被公司几乎所有服务使用,如果序列化上能节约一点时间,对整个公司的收益都将非常可观,同理如果序列化上能节约一点内存,网络带宽也能省下不少;

    3、可扩展性,对互联网公司而言,业务变化快,如果序列化协议具有良好的可扩展性,支持自动增加新的业务字段,删除老的字段,而不影响老的服务,这将大大提供系统的健壮性。

    五、网络通信

    一般RPC框架都要支持BIO,NIO两种IO通信模式。

    一般都基于netty实现RPC的IO通信框架。

    六、发布服务

    使用zookeeper实现服务自动注册与发现功能。

  • 相关阅读:
    从零开始的HTML5之旅(三)
    2020年3月12日
    2020年3月14日
    错误There is no Action mapped for namespace / and action name—Struts2
    2014.05.06我在这里起航
    Test For Windows Live Writer
    点亮灯泡——JS实现
    windows phone中解决html乱码问题
    .net处理多线程
    Windows Store App之数据存储
  • 原文地址:https://www.cnblogs.com/libinhyq/p/15049931.html
Copyright © 2011-2022 走看看