当前位置: 首页 > news >正文

成都品牌网站建设电话网站推广优化平台

成都品牌网站建设电话,网站推广优化平台,WordPress调用npr电台,做网站工作描述RPC架构 一、RPC概述 RPC(Remote Procedure Call)叫作远程过程调用,它是利用网络从远程计算机上请求服务,可以理解为把程序的一部分放在其他远程计算机上执行。通过网络通信将调用请求发送至远程计算机后,利用远程计…

RPC架构

一、RPC概述

RPC(Remote Procedure Call)叫作远程过程调用,它是利用网络从远程计算机上请求服务,可以理解为把程序的一部分放在其他远程计算机上执行。通过网络通信将调用请求发送至远程计算机后,利用远程计算机的系统资源执行这部分程序,最终返回远程计算机上的执行结果。

RPC的五个主要部分

  • user(服务调用方)
  • user-stub(调用方的本地存根)
  • RPCRuntime(RPC通信者)
  • server-stub(服务端的本地存根)
  • server(服务端)

服务调用方、调用方的本地存根及其一个RPC通信包的实例存在于调用者的机器上;而服务提供方、服务提供方的存根及另一个RPC通信包的实例存在于被调用的机器上。

服务方的代码启动后要能够接受调用方的网络请求(如Netty、Tomcat)

从一个简单的案例分析

  • Provider模块为服务方,提供服务(接口)的实现,接收调用方的调用(网络请求),并返回执行结果
  • Consumer模块为调用方,发送请求给服务方,并接受执行结果
  • Common模块为公共模块,提供服务(接口)的定义。供Provider和Consumer使用
  • RPC模块为RPC架构的实现框架
    • 提供网络服务的启动(HttpServer)
    • 提供网络请求的处理(HttpServerHandler)
    • 提供接口名和实现类的映射,便于快速找到网络请求调用方法对应的实现类(LocalRegister,这里使用本地注册)
    • 提供网络请求中接口名,方法名,参数类型数组,参数数组的封装(Invocation,需要实现序列化接口)
    • 提供代理工厂类用于Consumer创建代理对象,通过代理对象直接调用服务中的方法(ProxyFactory,通过JDK中的动态代理类Proxy实现)

二、RPC框架的开发要点

服务发现

从远程注册中心(如Redis)获取接口名对应的ip地址和端口(URL列表)

List<URL> urlList = RemoteRegister.get(interfaceClass.getName(), "1.0");

负载均衡

负载均衡(LoadBalance)提供很多种策略,这里实现随机策略

public class LoadBalance {public static URL random(List<URL> urls){Random random = new Random();int randomIndex = random.nextInt(urls.size());return urls.get(randomIndex);}
}

服务容错

在可能会出现异常的位置进行异常的友好处理,例如在网络连接失败时返回具体的信息

也可以在catch中调用自定义的实现类HelloServiceErrorCallback调用具体的错误回调方法

//服务调用:发送请求
String result = null;
try {HttpClient client = new HttpClient();result = client.send(url.getHostname(), url.getPort(), invocation);
}catch (Exception e){return "服务调用失败!";
}

服务重试

当某个服务调用失败后,可以尝试调用集群中的其他服务

服务mock

若服务方的业务代码没有开发完,调用方需要一个返回结果,就可以用mock实现。

在代理对象的调用逻辑中判断是否有mock参数的信息,如果有直接返回mock中的信息

String mock = System.getProperty("mock");
if( mock != null && mock.startsWith("return:")){String result = mock.replace("return:", "");return result;
}

三、案例代码实现

获取源码可以去看我的Github

RPC模块中需要的依赖

<dependencies><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-core</artifactId><version>9.0.43</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>1.3.2</version></dependency>
</dependencies>
http://www.wooajung.com/news/23494.html

相关文章:

  • 汕头网站制作公司今日小说排行榜百度搜索风云榜
  • 网站指向邮箱超链接怎么做永久免费用的在线客服系统
  • 专门做设计的网站有哪些游戏推广拉人渠道
  • 贺州网站建设凡科建站登录
  • wordpress纯css主题自适应seo推广的特点
  • 公司做网站的流程网络服务器地址怎么查
  • 网站后台管理系统怎么进全网搜索软件
  • 自己做网站可以上传软件下载谷歌下载官方正版
  • wordpress新建功能页面惠州网站seo排名优化
  • 怎么知道哪家公司网站做的好营销推广方法有哪些
  • php动态网站开发 模版金融网站推广圳seo公司
  • wordpress无法进入登录页seo网站推广工作内容
  • wordpress网站实例标题优化方法
  • 滨州哪里做网站seo推广什么意思
  • 17做网店网站池尾泽成seo网站排名
  • 有没有专门做航拍婚礼网站互联网域名注册查询
  • 如何做别人的网站雅思培训班价格一览表
  • 做视频解析网站网络推广seo怎么做
  • 一页网站下列哪些店铺适合交换友情链接
  • 专业做网站建设 昆山最近一周新闻热点回顾
  • 烟台网站建设公司地址手机网站制作软件
  • wordpress下拉菜单不显示影响关键词优化的因素
  • 做大型网站建设百度排名推广
  • 黄冈市建设信息网站网站宣传文案
  • 有没有专门做针织衫的网站seo是干嘛的
  • 网页传奇游戏托套路成都seo服务
  • 商务部建设司网站站长工具关键词查询
  • 福州网站制作网站廊坊seo外包
  • 珠海建站网站全网营销推广软件
  • 东莞市品牌网站建设全网霸屏推广系统