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

牛牛网站建设网站建设视频教程百度云

牛牛网站建设,网站建设视频教程百度云,营销方案餐饮,南昌中企动力做的网站怎么样之前分享了如何从0到1设计一个MQ消息队列#xff0c;今天谈谈“如何从0到1设计一个Dubbo的RPC框架”#xff0c;重点考验#xff1a; 你对RPC框架的底层原理掌握程度。 以及考验你的整体RPC框架系统设计能力。 RPC和RPC框架 1.RPC#xff08;Remote Procedure Call#x… 之前分享了如何从0到1设计一个MQ消息队列今天谈谈“如何从0到1设计一个Dubbo的RPC框架”重点考验 你对RPC框架的底层原理掌握程度。 以及考验你的整体RPC框架系统设计能力。 RPC和RPC框架 1.RPCRemote Procedure Call 即远程过程调用, 主要解决远程通信间的问题不需要了解底层网络的通信机制。 2.RPC框架 RPC框架负责屏蔽底层的传输方式TCP或者UDP、序列化方式、以及通信细节。 实际使用中并不需要关心底层通信细节和调用过程让业务端专注于业务代码的实现。 国内大家熟知的PRC框架阿里的HSF和Dubbo开源 Dubbo的发展由来 1. 业务规模小 比如早期一个应用Java War包将所有功能都打包部署在一个单机服务器调用接口也比较方便不涉及到任何分布式场景。 2.业务规模变大 随着业务的快速发展业务越来越多、子系统也越来越多时。比如淘宝的交易系统、商品系统、用户系统、评价系统…上百个系统的出现。 系统变得越来越复杂业务代码依然耦合在一起。比如最早期的淘宝denali工程包含所有业务系统的代码就仅打包部署都需要很长的时间。 并且随着每个业务线的快速发展业务代码耦合在一起上线后出现问题急需要回滚代码拉分支、大量的代码merge工作这个过程极其痛苦。 这个时候你会发现技术已经成了业务的瓶颈急需把业务单独抽离出来各自单独部署。 3.Dubbo和HSF的出现 应用系统一旦涉及到拆分部署问题就来了急需一种高效的应用程序间的通讯手段来完成这种需求这就会涉及到分布式远程调用。 于是淘宝就把denali按照业务为单位拆分成了类似这样的系统UMUserManger、SMShopManager..等等几十个工程代码。 再按照业务为单位把所有调用相关的接口以业务为单元进行拆分UIC用户中心服务、SIC店铺中心服务…等等以业务为单位集群部署按照业务提供服务。 所以RPC的框架来了阿里内部使用HSF以及开源的RPC 框架Dubbo。 RPC框架的核心设计 前面优知mikechen提到了RPC的核心目标主要是解决分布式系统中服务之间的调用问题。 其实走到这一步涉及的知识体系非常的多要求对通信、远程调用、消息机制等有深入的理解和掌握要求的都是从理论、硬件级、操作系统级以及所采用的语言的实现都有清楚的理解。 1.RPC框架三个核心角色 1服务提供者Server 对外提供后台服务将自己的服务信息注册到注册中心 2注册中心Registry 用于服务端注册远程服务以及客户端发现服务。 目前主要的注册中心可以借由 zookeepereurekaconsuletcd 等开源框架实现。 比如阿里的Dubbo就是采用zookeeper实现注册中心。 3服务消费者Client 从注册中心获取远程服务的注册信息然后进行远程过程调用。 2.RPC远程调用过程 1服务调用方client调用以本地调用方式调用服务 2client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体在Java里就是序列化的过程 3client stub找到服务地址并将消息通过网络发送到服务端 4server stub收到消息后进行解码,在Java里就是反序列化的过程 5server stub根据解码结果调用本地的服务 6本地服务执行处理逻辑 7本地服务将结果返回给server stub 8server stub将返回结果打包成消息Java里的序列化 9server stub将打包后的消息通过网络并发送至消费方 10client stub接收到消息并进行解码, Java里的反序列化 11服务调用方client得到最终结果。 RPC框架的目标就是要2~10这些步骤都封装起来。 RPC框架涉及技术 1.建立通信 首先要解决通讯的问题主要是通过在客户端和服务器之间建立TCP连接远程过程调用的所有交换的数据都在这个连接里传输。 2.服务寻址 1服务注册 首先需要把服务注册到服务中心。其实就是在注册中心进行一个登记注册中心存储了该服务的IP、端口、调用方式协议、序列化方式等。在zookeeper中进行服务注册实际上就是在zookeeper中创建了一个znode节点该节点存储了上面所说的服务信息。 2服务发现 服务消费者在第一次调用服务时会通过注册中心找到相应的服务的IP地址列表并缓存到本地以供后续使用。当消费者调用服务时不会再去请求注册中心而是直接通过负载均衡算法从IP列表中取一个服务提供者的服务器调用服务。 3注册服务 可靠的寻址方式主要是提供服务的发现是RPC的实现基石比如可以zookeeper来实现注册服务等等。 服务提供者启动后主动向服务注册中心注册机器ip、端口以及提供的服务列表。 服务消费者启动时向服务注册中心获取服务提供方地址列表可实现软负载均衡和Failover。 提供者需要定时向注册中心发送心跳一段时间未收到来自提供者的心跳后认为提供者已经停止服务从注册中心上摘取掉对应的服务等等。 3.网络传输 数据传输采用什么协议数据该如何序列化和反序列化 4.NIO通信 当前很多RPC框架都直接基于netty这一IO通信框架比如阿里巴巴的HSF、dubboHadoop Avro推荐使用Netty 作为底层通信框架。 5.服务调用 比如B机器进行本地调用通过代理Proxy之后得到了返回值此时还需要再把返回值发送回A机器同样也需要经过序列化操作然后再经过网络传输将二进制数据发送回A机器而当A机器接收到这些返回值之后则再次进行反序列化操作 总之要实现一个RPC不算难难的是实现一个高性能高可靠的RPC框架后续将剖析Dubbo看看Dubbo是如何来解决这些难题。 你可能也喜欢: RPC框架的实现原理及RPC架构组件详解深度剖析RPC框架的核心设计
http://www.huolong8.cn/news/136394/

相关文章:

  • 建设厅投诉网站首页做网站公司信科建站免费
  • 电影网站怎么做seo网站加载优化
  • 域名 备案 没有网站吗wordpress放视频
  • 做网络主播网站违法吗恢复118网址之家
  • 纸牌网站建设深鑫辉网站建设
  • 巴中市网站建设深圳火狼设计公司招聘网站
  • 有网站公司源码可以重建网站吗厦门专业网站设计公司
  • 邵武网站建设wzjseowordpress技术cms主题
  • 网站模版源代码西宁做网站最好的公司哪家好
  • ASP个人网站的建设晋中营销型网站建设
  • 网站二次开发合同郑州网站优化汉狮网络
  • 专业网站建设专业网站设计黄骅市旅游景点
  • 谷歌可以做网站吗汕头建设有限公司
  • 门户网站的细分模式有女生学软件技术怎么样
  • php怎么做直播网站吗wordpress随机广告
  • 模板网站建设流程图seo搜索引擎优化实训报告
  • 想开一个网站开发的公司精品课程网站建设意义
  • 网站一键收录可信网站
  • 国内做网站最大的公司有哪些网站建设的前后台代码
  • jsp做的网站答辩问题自做的网站如何发布
  • 保险网站建设平台杭州最好的电商培训学校
  • 开源手机网站系统dw制作asp网站模板
  • 换服务器后网站首页不收录网站设计的工作要求
  • 如何注册申请chn网站广告设计公司核心优势
  • 深圳网站设计兴田德润信任高搜索引擎优化时营销关键词
  • 个人做的好的淘宝客网站小程序开发平台有哪些
  • 菏泽做公司简介网站十堰优化网站哪家好
  • 墓园网站建设价格婚恋网站如何做推广
  • 南昌市网站建设公司网站开发开题报告引言
  • 免费网站建站 网页婚庆公司名字