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

个性flash网站百度竞价广告推广

个性flash网站,百度竞价广告推广,昌大建设原名叫什么,房价网查询官网RPC 是“远程过程调用#xff08;Remote Procedure Call#xff09;”的缩写形式#xff0c;比较通俗的解释是#xff1a;像本地方法调用一样调用远程的服务。虽然 RPC 的定义非常简单#xff0c;但是相对完整的、通用的 RPC 框架涉及很多方面的内容#xff0c;例如注册发…RPC 是“远程过程调用Remote Procedure Call”的缩写形式比较通俗的解释是像本地方法调用一样调用远程的服务。虽然 RPC 的定义非常简单但是相对完整的、通用的 RPC 框架涉及很多方面的内容例如注册发现、服务治理、负载均衡、集群容错、RPC 协议等如下图所示 简易 RPC 框架的架构图 本课时我们主要实现RPC 框架的基石部分——远程调用简易版 RPC 框架一次远程调用的核心流程是这样的 Client 首先会调用本地的代理也就是图中的 Proxy。Client 端 Proxy 会按照协议Protocol将调用中传入的数据序列化成字节流。之后 Client 会通过网络将字节数据发送到 Server 端。Server 端接收到字节数据之后会按照协议进行反序列化得到相应的请求信息。Server 端 Proxy 会根据序列化后的请求信息调用相应的业务逻辑。Server 端业务逻辑的返回值也会按照上述逻辑返回给 Client 端。 这个远程调用的过程就是我们简易版本 RPC 框架的核心实现只有理解了这个流程才能进行后续的开发。 这个版本写的非常简单实用http协议模拟的rpc实现 provider 是服务提供方consumer 是服务调用方 其实这两个都不算rpc框架内容是使用者真正的业务代码common 把rpc相关的都放入这一个模块中了 代码比较简单我们就直接从下面两个方便进行分析了 服务提供方 public class Provider {public static void main(String[] args) {Url url new Url(localhost, 8099);//模拟远程注册中心RemoteMapRegister.regist(HelloService.class.getName(),url);//指明服务的实现类LocalRegister.regist(HelloService.class.getName(), HelloServviceImpl.class);//获取协议Protocal protocol ProtoaclFactory.getProtocol();//启动 startprotocol.start(url);} }URL 统一配置 比较简单不做赘述 远程注册中心 我们这个使用的内存本地文件存储 public static void regist(String interfaceName, Url url){ // REGISTER.putIfAbsent(interfaceName, new ArrayList());ListUrl urls REGISTER.get(interfaceName);if(urls null){ListUrl objects new ArrayList();objects.add(url);REGISTER.put(interfaceName, objects);}else {urls.add(url);}saveFile();}服务的实现类 实现类方便服务调用方进行调用 public class LocalRegister {private static MapString, Class map new HashMap();public static void regist(String interfaceName, Class implClass){map.put(interfaceName,implClass);}public static Class get(String interfaceName){return map.get(interfaceName);} }代码中可以看出来非常简单放到内存map中了 获取协议 其实说白了根据参数获取相关的协议实现 public static Protocal getProtocol(){String name System.getProperty(protocalName);if(name null || name.equals()) name http;switch (name){case http:return new HttpProtoacl();case dubbo:return new DubboProtocal();default:break;}return new HttpProtoacl();}根据不同的协议我们开启不同的服务供服务调用方进行调用 开启服务 //启动 start protocol.start(url); 根据不同的协议进行开启服务 Overridepublic void start(Url url) {HttpServer httpServer new HttpServer();httpServer.start(url.getHostName(),url.getPort());}我这用的http服务底层开启了一个tomcat服务 服务调用方 public static void main(String[] args) {HelloService proxy ProxyFactory.getProxy(HelloService.class);System.out.println(proxy.say(hellow));}服务调用方 生成代理 服务调用方拿不到提供方的实例因此只能通过代理的方式进行访问 public static T T getProxy(final Class interfaceClass){return (T) Proxy.newProxyInstance(interfaceClass.getClassLoader(), new Class[]{interfaceClass}, new InvocationHandler() {Overridepublic Object invoke(Object proxy, Method method, Object[] args) throws Throwable {Invocation invocation new Invocation(interfaceClass.getName(), method.getName(), method.getParameterTypes(), args);ListUrl urlListRemoteMapRegister.get(interfaceClass.getName());Url url SimpleLoadBalance.random(urlList);Protocal protocol ProtoaclFactory.getProtocol();String result protocol.send(url,invocation);return result;}});}代理中做的事情 根据远程的注册中心获取URL即配置信息提供方可能存在多个实例 因此是用负载均衡进行流量负载根据协议发送请求这个地方我们发送请求没做任何逻辑实际rpc这个地方会存在很多逻辑获取到响应数据返回给调用方 总结 其实这个在一定意义上算不上rpc 框架 只能说是帮我们简单的理解rpc工作的流程比只看概念具体一点方便理解
http://www.w-s-a.com/news/293783/

相关文章:

  • 企业网站建设的层次返利网站建设
  • 竞价单页网站制作中小企业网站建设问题
  • 响应式网站源码学校网站制作多少钱
  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器
  • 分销系统价格多少北京网站优化平台
  • 怎样做旅游公司的网站泉州网站建设方案优化
  • 手机网站页面范例个人网站做淘宝客违规
  • 做一套网站开发多少钱SEO做得最好的网站
  • 咸宁做网站的公司那家便宜福建建设注册管理中心网站
  • 网站建设工作汇报黑科技广告推广神器
  • 淘宝做首页热点的什么网站徐州建设安全监督网站
  • 正规的镇江网站建设广州有什么好玩的东西
  • 丹阳网站设计公司网站开发 0755
  • 百度网页版浏览器网址找文网优化的技术团队
  • 信息网站怎么做做儿童网站赚钱吗
  • 帝国cms 网站迁移个人网站备案备注
  • 青岛做网站推广怎样做网站才不能被攻破
  • 使用网站模板快速建站教案杂志wordpress主题 无限加载
  • 南宁南宁做网站南安网络推广
  • 旌阳移动网站建设微网站 杭州
  • 合肥网站开发如何用VS2017做网站
  • 网站 制作公司福州企业建站软件
  • 网站推广主要方法一流的盘锦网站建设