• 分布式系统间的通信框架


    rpc:
    RPC是远程过程调用的简称,主要功能目标是让构建分布式计算(应用)更容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性。

    RPC调用的流程:

    1)服务消费方(client)调用以本地调用方式调用服务;
    2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
    3)client stub找到服务地址,并将消息发送到服务端;
    4)server stub收到消息后进行解码;
    5)server stub根据解码结果调用本地的服务;
    6)本地服务执行并将结果返回给server stub;
    7)server stub将返回结果打包成消息并发送至消费方;
    8)client stub接收到消息,并进行解码;
    9)服务消费方得到最终结果。
    RPC的目标就是要2~8这些步骤都封装起来,让用户对这些细节透明。
    Java中的RPC框架比较多,各有特色,广泛使用的有RMI、Hessian、Dubbo等

    简单介绍下我们公司用的rpc框架。

    消费端在服务启动时会去注册中心取定义的服务。
    消费端接入流程:
    1、 消费端注册,会生成一个消费编码
    2、 远程服务配置:配置消费编码
    3、 服务授权:在注册中心申请消费编码需要的服务。
    4、 消费端调用远程服务
    通过注解引入服务
    @Resource(name="esgPosServiceId")
    private RestOperations restOperations;
    以get方式的请求举例:
    String data=restOperations.getForObject(“/appsvr/public/helloWord”,String.class)
    发出请求。


    参照:
    Spring提供的用于访问Rest服务的客户端:RestTemplate实践
    http://www.open-open.com/lib/view/open1436018677419.html
    在线文档查看: 3.1.3.RELEASE @ spring-web
    http://www.boyunjian.com/javadoc/org.springframework/spring-web/3.1.3.RELEASE/_/org/springframework/web/client/RestTemplate.html#postForEntity(java.lang.String, java.lang.Object, java.lang.Class, java.lang.Object...)
    RPC 原理
    http://blog.jobbole.com/92290/

  • 相关阅读:
    re.match() and re.search()
    libxml2 使用教程【转】
    Spring PropertyPlaceholderConfigurer类载入外部配置
    Spring PropertyPlaceholderConfigurer类载入外部配置
    Spring PropertyPlaceholderConfigurer类载入外部配置
    Spring PropertyPlaceholderConfigurer类载入外部配置
    前缀和、前缀积
    前缀和、前缀积
    前缀和、前缀积
    前缀和、前缀积
  • 原文地址:https://www.cnblogs.com/gexiaoshan/p/6382968.html
Copyright © 2020-2023  润新知