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

网站建设 费用预算做购物网站收费标准

网站建设 费用预算,做购物网站收费标准,百度游戏app下载,健康保险网站本文主要讲解 RPC 远程服务调用相关的知识。 RPC 远程服务调用是分布式服务架构的基础#xff0c;无论微服务设计上层如何发展#xff0c;讨论服务治理都绕不开远程服务调用#xff0c;那么如何理解 RPC、有哪些常见的 RPC 框架、实现一款 RPC 框架需要哪些技术呢#xff…本文主要讲解 RPC 远程服务调用相关的知识。 RPC 远程服务调用是分布式服务架构的基础无论微服务设计上层如何发展讨论服务治理都绕不开远程服务调用那么如何理解 RPC、有哪些常见的 RPC 框架、实现一款 RPC 框架需要哪些技术呢 如何理解 RPC RPCRemote Procedure Call是一种进程间通信方式百科给出的定义是这样的“RPC远程过程调用协议它是一种通过网络从远程计算机程序上请求服务而不需要了解底层网络技术的协议”。 RPC 允许程序调用另一个地址空间的过程或函数而不用程序员显式编码这个远程调用的细节。即无论是调用本地接口/服务的还是远程的接口/服务本质上编写的调用代码基本相同。 比如两台服务器 A、B一个应用部署在 A 服务器上想要调用 B 服务器上应用提供的函数或者方法由于不在一个内存空间则不能直接调用这时候就可以应用 RPC 框架的实现来解决。 RPC 如何实现 早期的远程服务调用一般是通过 RMI 或 Hessian 等工具实现以 Java RMI 为例RMI 是 Java 语言中 RPC 的一种实现方式。 Java RMIJava 远程方法调用Java Remote Method Invocation是 Java 编程语言里一种用于实现远程过程调用的应用程序编程接口。应用 Java RMI可以让某个 Java 虚拟机上的对象调用另一个 Java 虚拟机中的对象上的方法。 Java RMI 实现主要依赖 java.rmi 包下面的工具类具体流程包括继承 Remote 实现远程接口开发业务逻辑创建 Server 并且注册远程对象客户端创建 Client 调用远程方法等。关于 RMI 的实现细节由于实际开发中很少应用这里不展开讲解了。 以 Java RMI 为代表的的早期 RPC 实现起来比较繁琐需要在代码中直接编码地址并且不支持服务治理比如无法对服务调用进行统计、无法梳理服务依赖情况、无法保证服务上下线时的稳定性等。随着分布式系统规模的增长传统方式已经无法满足开发需求于是诞生了一系列的 RPC 服务框架。 RPC 框架代表 开源社区里有许多优秀的 RPC 框架比如常用的 Dubbo、Thrift、gRPC 等下面简单介绍一下这几款组件。 Apache Dubbo Dubbo 是阿里巴巴公司开源的一个高性能 Java 分布式服务框架目前已经成为 Apache 顶级项目。Dubbo 可以通过高性能的 RPC 实现服务的输出和输入支持服务治理提供了控制台界面可以独立应用也可以和 Spring 框架无缝集成。 Dubbo 在设计中采用了微内核架构基于对 Java SPI 机制的扩展实现Dubbo 对分布式服务调用核心功能都开放了扩展点包括服务调用的负载均衡策略、序列化协议、传输协议等使用者都可以添加自定义实现。 Dubbo 在国内曾经拥有很高的人气是微服务架构的首选后来随着 Spring Cloud 的流行社区一度停更外部用户发布了 DubboX 等升级版本。最近Dubbo 社区又重新活跃更新后的 Dubbo 也发布了 3.0 预览版等并且宣布会在未来的版本中支持更多特性值得期待。 Google 的 gRPC gRPC 是 Google 开发的高性能、通用的开源 RPC 框架gRPC 使用 ProtoBuf 来定义服务ProtoBuf 是 Google 开发的一种数据序列化协议性能比较高压缩和传输效率高语法也比较简单。另外gRPC 支持多种语言并能够基于语言自动生成客户端和服务端功能库。 Apache Thrift Thrift 起源于 Facebook和 Dubbo 一样后来被提交 Apache 基金会将 Thrift 作为一个开源项目。Facebook 创造 Thrift 的目的是为了解决 Facebook 各系统间大数据量的传输通信以及系统间语言环境不同需要跨平台的问题。 Thrift 支持多种编程语言如 Java、C、Python、PHP、Ruby 等可以在多种不同的语言之间通信。应用 Thrift需要在一个语言无关的 IDL 文件里定义数据类型和服务接口然后生成用来构建 RPC 客户和服务器所需的代码。 Thrift 主要的优点是跨语言缺点是由于需要定义独立的 IDL 文件如果对服务进行修改当数据结构发生变化时必须重新编辑 IDL 文件、重新编译和生成相关的代码修改起来比较繁琐。 微博 Motan Motan 是新浪微博开源的一个 Java RPC 框架官方文档对外宣传在微博平台已经广泛应用每天为数百个服务完成近千亿次的调用。 Motan 基于 Java 语言开发设计和实现与 Dubbo 比较类似包括服务提供者RPC Server、服务调用方RPC Client、服务注册中心Registry三个角色。服务端会向注册中心注册服务消费端使用服务需要先向注册中心进行订阅根据注册中心的返回列表与具体的 服务端建立连接进行 RPC 通讯。当服务端发生变更的时候注册中心也会同步变更然后同步的通知到消费端。 Motan 也提供了服务治理的功能包括服务的发现、服务的摘除、高可用及负载均衡。 RPC 框架用到哪些技术 了解了常见的 RPC 框架后我们来看一下实现一个 RPC 框架需要哪些技术。 如何建立通信 实现分布式服务框架首先要解决不同节点之间通讯的问题需要在客户端和服务器之间建立 TCP 连接远程过程调用的所有交换的数据都在这个连接里传输。 一般来说建立通信可以使用成熟的网络通信框架比如 Java 语言中的 Netty这是一个优秀的网络通信框架。在 Dubbo、Motan 中都应用了 Netty。 如何进行网络传输 建立通信之后节点之间数据传输采用什么协议也就是选择什么样的二进制数据格式组织传输的数据如何序列化和反序列化比如在 Dubbo 中传输协议默认使用 Dubbo 协议序列化支持选择 Hessian、Kryo、Protobuf 等不同方式。 如何进行服务注册和发现 服务注册和发现也就是服务寻址以 Dubbo 为例下图分布式服务典型的寻址和调用过程 服务注册需要服务提供者启动后主动把服务注册到注册中心注册中心存储了该服务的 IP、端口、调用方式协议、序列化方式等信息。 服务发现当服务消费者第一次调用服务时会通过注册中心找到相应的服务提供方地址列表并缓存到本地以供后续使用。当消费者再次调用服务时不会再去请求注册中心而是直接通过负载均衡算法从 IP 列表中取一个服务提供者调用服务。 上面列举了一些分布式服务框架的实现要点除了这些还有很多技术细节比如如何实现服务调用RPC 框架如何和服务层交互Java 中通过代理实现服务调用那么代理对象如何解析请求参数、如何处理返回值等。 总结 本文分享了 RPC 远程服务调用的概念介绍了常见的 RPC 框架实现以及 RPC 框架需要关心哪些技术。通过本课时的学习相信你对 RPC 相关技术有了一个初步认识如果对其中某个框架感兴趣你可以找一些资料深入了解。
http://www.huolong8.cn/news/134612/

相关文章:

  • 做窗帘网站图片大全公司网站建设需要什么资质
  • angularjs的网站模板怎样做网络推广方案服务
  • 如何登录网站制作平台北京软件开发公司推荐
  • 财务办公室装修设计网站查询seo
  • 网站失败后怎么重新建设做网站没有固定电话
  • 选择合肥网站建设谁有手机网站
  • 金耀网站建设网站制作搜索排名提升
  • 商城网站开发公司排名全网营销公司有哪些
  • 网站建设规划书范文5000字设计师网站登录
  • 郑州网站建设制作公司海外推广代理渠道
  • 网站制作及维护合同沈阳设计网站公司
  • 怎样做静态网站创网网站后台管理系统
  • wordpress仿站之家本地上海集团网站建设
  • 长沙市天心区城乡建设局网站腾讯建设网站视频视频视频
  • 苏州市住房和城乡建设局信息网站比较好用的搜索引擎
  • 东莞最好的网站wordpress干什么用的
  • 网站建设 视频安装好了wordpress
  • 刘涛现在哪个网站做直播wordpress 自动发卡
  • 网页制作与网站建设完全学习手册光盘贸易公司logo设计
  • 新乡网站建设制作公司wordpress悬浮反馈
  • 怎么查网站是否备案有没有公司做农副产品网站的
  • 福州模板建站定制网站网址大全2345色综合导航
  • 南宁在线制作网站石家庄网络推广优化
  • dreamwear做网站步骤网站申请好了 怎么建设
  • 万网个人网站建设教程网站设计
  • 免费商城网站申请便民平台推广怎么做
  • 公司官方网站建设申请自己怎么制作企业网站
  • 网站分站如何做html基础知识思维导图
  • 崇仁网站建设推广网站空间不够用
  • 用模板搭建的网站备案吗做婚纱影楼网站的价格