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

网站建设费用进会计什么科目商业计划书范文

网站建设费用进会计什么科目,商业计划书范文,网站域名缴费,青岛百度竞价开个新坑#xff0c;和大家一起学习Dubbo 3.X。我们按照一个由浅入深顺序来学习#xff0c;先从使用Dubbo开始#xff0c;再深入Dubbo的核心原理。 今天我们就从认识Dubbo开始#xff0c;整体的内容可以分为3个部分#xff1a; Dubbo是什么RPC是什么Dubbo的架构 正式开… 开个新坑和大家一起学习Dubbo 3.X。我们按照一个由浅入深顺序来学习先从使用Dubbo开始再深入Dubbo的核心原理。 今天我们就从认识Dubbo开始整体的内容可以分为3个部分 Dubbo是什么RPC是什么Dubbo的架构 正式开始前我先叠个甲通常网上很多资料将RPC称之为协议并将RPC与HTTP进行比较目前来看这已经成为“不太正确”但主流的说法了。而我个人是个原教旨主义者更倾向使用RPC原初的解释因此可能和你看到的部分文章有一定的差别。另外因个人能力有限若出现错误希望大家不吝赐教。 TipsRPC的章节主要参考Andrew D. Birrell与Bruce Jay Nelson于1984年发表的论文《Implementing Remote Procedure Calls》通常认为这篇文章是“现代”RPC的起源实际上1976年就有文献开始讨论RPC了。 Dubbo是什么 我们来看Apache Dubbo社区是怎样描述Dubbo的 Apache Dubbo是一款RPC服务开发框架用于解决微服务架构下的服务治理与通信问题官方提供了Java、Golang等多语言SDK实现。使用Dubbo开发的微服务原生具备相互之间的远程地址发现与通信能力 利用Dubbo提供的丰富服务治理特性可以实现诸如服务发现、负载均衡、流量调度等服务治理诉求。Dubbo被设计为高度可扩展用户可以方便的实现流量拦截、选址的各种定制逻辑。 Dubbo是具有高性能可拓展等特性的RPC框架除此之外Dubbo还提供了服务治理的能力。 Dubbo的“野心”不仅仅在于提供一套完整的RPC调用及服务治理框架更是将Dubbo与编程语言解绑提供了大部分主流语言的版本。 Tips该图截自Apache Dubbo社区在B站上发布的《5分钟快速了解Apache Dubbo》。 RPC是什么 既然Dubbo的本质是RPC框架那么在继续深入学习Dubbo前我们有必要先来了解下RPC是什么。 RPCRemote Procedure Call即远程过程调用。《Implementing Remote Procedure Calls》中是这么解释的 The idea of remote procedure calls (hereinafter called RPC) is quite simple. It is based on the observation that procedure calls are a well-known and well-understood mechanism for transfer of control and data within a program running on a single computer.Therefore, it is proposed that this same mechanism be extended to provide for transfer of control and data across a communication network. RPC的思想是基于对单机程序中的传输和处理数据的过程调用的观察并建议将相同的机制拓展到远程网络通信上的结果。 是不是有点难理解没关系我们换一个简单点的说法来看Sahn Lam在油管视频《What is RPC? gRPC Introduction》中的解释视频中他通过本地过程调用与远程过程调用的对比进行解释 A local procedure call is a function call within a process to execute some code.A remote procedure call enables one machine to invoke some code on another machine as if it is a local fuction call from a users perspective. 这个解释就非常清晰了RPC的核心是希望远程调用可以像本地函数调用一样简单。Birrell与Nelson正是基于此目标给出了RPC服务的设计参考 Birrell与Nelson的设计是基于存根stub即图中的User-stub和Server-stub这个概念的系统整体包含5个部分 用户端服务调用方用户端存根保存函数声明负责请求参数的打包与响应参数的解包RPC Runtime选择合适的方式协议传输数据服务端存根保存函数声明负责请求参数的解包与响应参数的打包服务端服务提供方。 用户端和服务端的开发者只需要从存根中获取并调用目标函数而无需考虑目标函数所在服务器的地址和传输数据的方式是非常契合“远程调用可以像本地函数调用一样简单”这样的愿景的。 好了到这里我们已经对“原教旨主义”的RPC有了整体的认知现在来回答一个不太“正经”的问题既然有了HTTP为什么还要RPC 这是个挺常见的初学误区将RPC与HTTP划上了等号。首先RPC是一种思想我觉得更像是简化远程服务调用的目标而HTTP是应用层的传输协议上图中“两个”RPC Runtime传输数据时可以使用HTTP也可以是其它能够完成数据传输的方式。其次“现代”RPC的理论诞生于1984年而HTTP是1989年发起的因此这个问题反过来问还显得稍微合理些。最后HTTP的诞生的目的是接收和发布HTML页面即在浏览器与服务端之间进行数据的传输而不是应用在两个服务端之间的数据传输。 Tips Sahn Lam和Alex Xu是油管频道ByteByteGo的管理者拥有有43万粉丝另外他们也是《System Design Interview》的作者RPC的系统设计图截自《Implementing Remote Procedure Calls》实际的项目中没有严格的用户端与服务端的区分服务都可以提供对外的接口也可以使用外部服务的接口。 Dubbo的架构 Dubbo 3.0开始Dubbo的官方文档使用了新的抽象架构 将Dubbo从整体划分了两层 Dubbo数据面提供RPC功能的核心部分通过RPC协议进行通信定义了调用规范完成了数据交互的编码和解码功能做服务治理控制面服务治理的抽象包含了注册中心流量管控策略Dubbo Admin控制台等。 Dubbo 3.0之前官方给出过一张非常复杂的Dubbo 2.X的设计图以下的部分是官方原文 图例说明 图中左边淡蓝背景的为服务消费方使用的接口右边淡绿色背景的为服务提供方使用的接口位于中轴线上的为双方都用到的接口图中从下至上分为十层各层均为单向依赖右边的黑色箭头代表层之间的依赖关系每一层都可以剥离上层被复用其中Service和Config层为API其它各层均为SPI图中绿色小块的为扩展接口蓝色小块为实现类图中只显示用于关联各层的实现类图中蓝色虚线为初始化过程即启动时组装链红色实线为方法调用过程即运行时调时链紫色三角箭头为继承可以把子类看作父类的同一个节点线上的文字为调用的方法。 Dubbo提供了非常丰富的接口这些都是Dubbo的可被用户自定义的拓展点。Dubbo自身也采用了MicrokernelPlugin微内核拓展的模式Microkernel只负责组装Dubbo对Plugin的默认实现。 各层说明 config配置层对外配置接口以ServiceConfigReferenceConfig为中心可以直接初始化配置类也可以通过Spring解析配置生成配置类proxy服务代理层服务接口透明代理生成服务的客户端Stub和服务器端Skeleton以ServiceProxy为中心扩展接口为ProxyFactoryregistry注册中心层封装服务地址的注册与发现以服务URL为中心扩展接口为RegistryFactoryRegistryRegistryServicecluster路由层封装多个提供者的路由及负载均衡并桥接注册中心以Invoker为中心扩展接口为ClusterDirectoryRouterLoadBalancemonitor监控层RPC调用次数和调用时间监控以Statistics为中心扩展接口为MonitorFactoryMonitorMonitorServiceprotocol远程调用层封装RPC调用以InvocationResult为中心扩展接口为ProtocolInvokerExporterexchange信息交换层封装请求响应模式同步转异步以RequestResponse为中心扩展接口为ExchangerExchangeChannelExchangeClientExchangeServertransport网络传输层抽象Mina和Netty为统一接口以Message为中心扩展接口为ChannelTransporterClientServerCodecserialize数据序列化层可复用的一些工具扩展接口为SerializationObjectInputObjectOutputThreadPool 有些文章会将Service纳入Dubbo的层级结构中但实际上Service是用户业务逻辑的部分严格意义上并不是Dubbo自身的组成。 支持协议 协议是RPC框架的核心功能定义了数据的传输格式除了数据本身外还应包含控制信息如序列化方式超时时间等。 Dubbo支持了非常多的协议在这里我将它们分成5类 不要看到Dubbo支持了这么多协议就害怕它虽然支持的多但我们不必每个协议都深入。未来我们在学习到协议的部分是会重点的学习Dubbo协议Dubbo 3.X主推的Triple协议以及支持HTTP/2的gRPC其余协议我们大致了解其特性即可。 Tips实际上Dubbo 2.X的官方文档中有非常详细的设计文档不知道为什么Dubbo 3.0中删除了这部分内容。 结语 好了到目前为止希望你能够建立起一个对Dubbo设计的整体认知。设计虽然复杂支持的协议虽然很多但我们今天的目的不是“一文弄懂”。我们以理解RPC和Birrell与Nelson给出的设计为主其次我们需要建立对Dubbo的设计的整体认知看看它Dubbo在Birrell与Nelson的基础上做出了哪些拓展。如果有兴趣的话可以参考Birrell与Nelson给出的架构来设计自己的RPC服务需要考虑如何将服务保存到存根中使用哪种方式进行交互交互的数据结构该如何设计 如果本文对你有帮助的话还请多多点赞支持。如果文章中出现任何错误还请批评指正。最后欢迎大家关注分享硬核Java技术的金融摸鱼侠王有志我们下次再见
http://wiki.neutronadmin.com/news/288078/

相关文章:

  • 做那种事的网站html源码大全
  • 做网站的一般多钱2020新闻热点事件素材
  • 做个购物网站多少钱wordpress登录可见
  • 如何在建设银行网站查验回单陶瓷网站建设中企动力
  • 旅游网站案例分析市场代理招商信息
  • 学做分类网站公司网页设计html
  • seo网站推广的主要目的包括建设论坛网站
  • 网站公司做网站修改会收费吗重庆市建设工程信息网联系电话
  • 企信查官网旺道seo推广系统怎么收费
  • 河源建设局网站罗泾网站建设
  • 网站无后台添加后台东莞小程序开发解决方案
  • 天津企业网站建设哪家好做网站的大骗子
  • 网站正在建设中 图片网站建设便宜
  • 许昌市做网站wordpress固定链接+404
  • tomcat做网站属于什么公装设计网站
  • 机关网站建设费入什么科目最便宜的货源网站大全
  • 新电商网站网站建设公司问候语
  • 东莞贸易公司寮步网站建设价格厂房装修东莞网站建设
  • 专业手机网站建设价格明细表西安建设工程交易中心
  • 建设银行境外汇款申请书网站手机网站开发 和 网页
  • 做网站运用的软件网站设计中的用户体验
  • 云阳一平米网站建设怎么做货物收发的网站
  • 小型购物网站开发怎么制作自己的免费网站
  • 友情链接网站源码怎样建自己的网站赚钱
  • 建立网站就是制作网页邯郸市教育公共服务平台
  • 软件公司门户网站模板好网站推荐
  • 沈阳个人网站建设重庆汽车网站建设
  • 武侯区网站建设100种禁用的视频软件不要钱
  • 建立网站的工具wordpress cms plugin
  • 做网站知识wordpress 前台