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

网站建设伍金手指下拉8微信商城网站建设视频

网站建设伍金手指下拉8,微信商城网站建设视频,商城网站设计一站式服务,网站建设与维护实训Flink是一个典型的Master/Slave分布式实时处理系统,分布式系统组件之间必然涉及通信,也即RPC,以下图展示Flink组件之间的关系: RPCGateWay 一般RPC框架可根据用户业务类生成客户端和服务器端通信底层代码,此时只需定…

Flink是一个典型的Master/Slave分布式实时处理系统,分布式系统组件之间必然涉及通信,也即RPC,以下图展示Flink组件之间的关系:
在这里插入图片描述

RPCGateWay

一般RPC框架可根据用户业务类生成客户端和服务器端通信底层代码,此时只需定义业务类接口以及实现接口的业务逻辑,网络通信以及序列化反序列化这些繁琐的细节有框架屏蔽,flink中也是类似的原理,业务接口被抽象为RpcGateway, 比如:

  • DispatcherGateway,接受客户端的请求,比如提交JobGraph,查询Job信息、触发Savepoint等
  • JobMasterGateway,包含一个Job的元信息,调度执行Job
  • ResourceManagerGateway,保存资源分配信息,主要是TaskManager中Slot分配情况
  • TaskExecutorGateway,TaskManager核心功能,比如分配释放Slot、执行Task
  • MetricQueryServiceGateway,提供查询Metric功能

这些接口的具体实现就是组件提供的核心功能

RPCEndPoint

组件间通信基于Actor, 负责RPC通信功能则被抽象成一个RPCEndPoint

在这里插入图片描述

RPCEndPoint将通信细节委托给一个全局RpcService,在RPCEndPoint构造时需传递一个RpcService实例,RpcService提供startServer/connect两个核心接口,具体实现为AkkaRpcService, 调用RpcService.startServer(RPCEndPoint)就会生成一个封装了RPCEndPoint的AkkaRpcActor, 该Actor可接受消息,提供RPC服务;

如果要与其他组件通信,则调用RpcService.connect(RpcGateway)获取一个可与远程Actor通信的Client,该Client是一个实现了RpcGateway的动态代理类,动态代理类内部通过AkkaInvocationHandler序列化RPC消息,发送给其他Actor, 从而实现这个RPC过程

整个过程有以下几个核心类:

  • AkkaRpcService, 生成与其他组件进行通信的代理客户端以及启动一个AkkaRpcActor服务
  • AkkaRpcActor, RPC服务端核心类,接受远程过程调用消息,反射调用RPCEndPoint的业务逻辑
  • AkkaInvocationHandler, RPC客户端核心类,发送消息给本地AkkaRpcActor或序列化RPC消息, 发送给远程AkkaRpcActor
  • RpcInvocation,封装RPC消息

Component

RpcEndPoint构造函数如下:

protected RpcEndpoint(final RpcService rpcService, final String endpointId) {this.rpcService = checkNotNull(rpcService, "rpcService");this.endpointId = checkNotNull(endpointId, "endpointId");this.rpcServer = rpcService.startServer(this); //核心this.mainThreadExecutor = new MainThreadExecutor(rpcServer, this::validateRunsInMainThread);
}

构造时传递一个RpcService, 同时会调用RpcService.startServer(this)方法,返回一个RPCServer实例,这样就将当前实例封装成一个AkkaRpcActor,这个Actor既能对外提供RPC服务,也能在本地通过返回的RpcServer向这个Actor发送消息。

因此实现一个具体的Component只要同时继承RpcGateway和RpcEndPoint就能实现将RpcGateway的业务接口暴露出去提供远程服务,在JobManager/TaskManger启动过程中,都是先创建一个RpcService实例,然后new出各个业务组件实例,这样各个组件完成初始化后就能各司其职,协调配合完成具体业务功能。

JobManager启动时两个核心组件:

  • StandaloneDispatcher, 实现了DispatcherGateway
  • StandaloneResourceManager, 实现了ResourceManagerGateway

TaskManger启动时核心组件:

  • TaskExecutor, 实现了TaskExecutorGateway

源码中继承关系很容易看出它们都是继承自RpcEndPoint同时实现某个RpcGateWay接口。

http://www.yayakq.cn/news/594099/

相关文章:

  • 网站建设需要注意的企业网络营销推广方案策划
  • 如何做论文网站wordpress附件插件下载
  • 做HH网站三亚旅游攻略
  • vs做网站通过e浏览器个人门户网站模板下载
  • 用dw做网站用div布局运维工程师是干嘛的
  • 上海好的高端网站建设服务公司写作挣钱的网站
  • 医疗网站建设精英不用服务器做网站
  • 学校网站首页设计沈阳定制网站开发
  • 山西省建设厅网站打不开小程序开发工具
  • 百度自己网站排名响应式网站设计案例
  • 金山网站建设公司电子商务网站建设实用教程
  • 建筑公司网站网站海关企业信息查询网站
  • 福州外贸网站制作app下载量统计查询
  • 芜湖做网站需要多少钱jsp网站部署怎么做
  • 新媒体网站建设网站竞价怎么做
  • 网站空间被挂马百度不收录网站吗
  • 濮阳住房和城乡建设部网站网站不能上传附件
  • 昆明专业做网站多少钱北京分形科技有限公司
  • 关键词歌词林俊杰网站优化 保定
  • 58网站 做现浇混凝土重庆巴南区网站开发公司
  • 手机网站建设一般多少钱wordpress 黑客主题
  • 公司网站注册要多少钱湖南网站推广建设公司
  • 做推广网站的文章术语微信开发小程序公司
  • 网站技术培训班有哪些种类长沙城乡建设网站首页
  • 商城网站建设视频找合作项目app平台
  • 赤峰网站开发公司建筑公司年度工作总结报告
  • 浏阳网站建设tvshown网站开发ssh
  • 17网站一起做网店app酥糖的网站建设的目的是什么
  • 网络营销怎么做好推广网站建设和优化的步骤
  • 网站开发需要注册几类商标有没有专门做网站的