Spark组件间通信
1、Spark组件之间使用RPC机制进行通信。RPC的客户端在本地编写并调用业务接口,接口在本地通过RPC框架的动态代理机制生成一个对应的实现类,在这个实现类中完成soket通信、远程调用等功能的逻辑包装,而在RPC的服务端既编写业务接口也编写了具体的业务实现类,通过RPC框架以接口的方式暴露出来,供客户端远程调用。
Spark2.x之前使用的是Akka作为底层框架来实现Actor模型的,Spark2.x之后用Netty替换了Akka作为底层框架,来实现Actor模型(Akka底层用的也是Netty)。
BIO:客户端调用后一直等待服务端的执行返回,客户端才能继续执行自生在调用点位后面的逻辑,造成客户端逻辑的阻塞。
NIO:客户端调用后,继续执行调用点位后的本地逻辑,通过事件监听等机制获得服务端的返回,客户端无阻塞,但是客户端需要付出额为的精力去实时监听服务端的执行是否完毕。
AIO:客户端调用后,继续执行调用点位后的本地逻辑,服务端主动将结果发送到共享的地方,客户端灵活取用,客户端无阻塞也无额外开销,(服务端通常使用call-back等机制实现对客户端的通知、Feature来约定共享数据区)但是目前Linux不支持AIO,Windows支持。
*
2、Actor模型:每一个通信端点都拥有一对inbox-outbox**,任何信息的接收都通过inbox,同样任何信息的发送都必须通过outbox,多条信息就在box中排序处理。
Spark组件间通信的更多相关文章
- React独立组件间通信联动
React是现在主流的高效的前端框架,其官方文档 http://reactjs.cn/react/docs/getting-started.html 在介绍组件间通信时只给出了父子组件间通信的方法,而 ...
- 聊聊Vue.js组件间通信的几种姿势
写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出. 文章的原地址:https://github.com/a ...
- 【Vue】利用父子组件间通信实现一个场景
组件间通信是组件开发的,我们既希望组件的独立性,数据能互不干扰,又不可避免组件间会有联系和交互. 在vue中,父子组件的关系可以总结为props down,events up: 在vue2.0中废弃了 ...
- React 精要面试题讲解(二) 组件间通信详解
单向数据流与组件间通信 上文我们已经讲述过,react 单向数据流的原理和简单模拟实现.结合上文中的代码,我们来进行这节面试题的讲解: react中的组件间通信. 那么,首先我们把看上文中的原生js代 ...
- vue_组件间通信:自定义事件、消息发布与订阅、槽
自定义事件 只能用于 子组件 向 父组件 发送数据 可以取代函数类型的 props 在父组件: 给子组件@add-todo-event="addTodo" 在子组件: 相关方法中, ...
- Vue的父子组件间通信及借助$emit和$on解除父子级通信的耦合度高的问题
1.父子级间通信,父类找子类非常容易,直接在子组件上加一个ref,父组件直接通过this.$refs操作子组件的数据和方法 父 这边子组件中 就完成了父 => 子组件通信 2. 子 =&g ...
- React 组件间通信介绍
React 组件间通信方式简介 React 组件间通信主要分为以下四种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面对这四种情况分别进行介绍: 父组件向子 ...
- Vue 根组件,局部,全局组件 | 组件间通信,案例组件化
一 组件 <div id="app"> <h1>{{ msg }}</h1> </div> <script src=" ...
- [转] React 中组件间通信的几种方式
在使用 React 的过程中,不可避免的需要组件间进行消息传递(通信),组件间通信大体有下面几种情况: 父组件向子组件通信 子组件向父组件通信 跨级组件之间通信 非嵌套组件间通信 下面依次说下这几种通 ...
随机推荐
- 使用telnet连接redis
平时连接redis用的是官方客户端redis-cli, 使用redis-cli最常用的几个参数如下: -h <hostname> Server hostname (default: 127 ...
- error while loading shared libraries: libevent-2.1.so.6 的解决办法
执行 memcached 启动命令时,报错,提示:error while loading shared libraries: libevent-2.1.so.6: cannot open shared ...
- 通过识别页面内容获得返回值判断后续执行(exists指令的用法)
本案例主要用到airtest 的exists指令 从指令解释可以知道,当判断某图片不存在的时候,会返回false值 脚本思路即为如果返回值==false则执行A,!=fales则执行B 下图脚本思路, ...
- jmeter连接数据库操作
JDBC Connection Configuration 数据库连接配置 数据库连接配置器,用来连接数据库,是一个连接池. 界面介绍 1.右键线程组->添加->配置元件->JDBC ...
- CSS-10-内边距
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- pycharm安装PIL失败
搜索安装PIL后无法成功安装,在尝试各种版本后依旧无法解决 问题解决 安装Pillow-PIL,既可以成功执行代码 因为pil没有64位的版本,所以需要下载安装第三方支持64位系统的版本才可以使用.
- kafka for centos7
https://blog.csdn.net/wqh8522/article/details/79163467
- tomcat性能优化梳理
tomcat性能优化 Tomcat本身优化 Tomcat内存优化 启动时告诉JVM我要一块大内存(调优内存是最直接的方式) 我们可以在 tomcat 的启动脚本 catalina.sh 中设置 jav ...
- canvas跨域完美解决,微信头像解决跨域
现在前端技术发展的越来越快,很多图片合成这种耗费服务器性能的,都可以移动到前端进行了合成了.而且合成很方便,我们利用 canvas 可以实现好多东西. 自动打算利用前端来合成图片,在网上就找到了 ht ...
- java操作数组转list集合删除元素报错ConcurrentModificationException
public static void main(String[] args) { ArrayList<String> list = new ArrayList<String>( ...