event

Apache Kafka 概览

时光总嘲笑我的痴心妄想 提交于 2019-12-18 20:45:25
简介 Apache Kakfa 是一个分布式流处理平台,既可以当做普通的消息中间件用于消息发布订阅,也可以存储并处理流式数据,其分布式设计使得其有较好的容错性,水平拓展性等。 通常可以用于当做消息订阅发布用于业务系统中,或者用于大数据方向,接受存储大量的流式数据并和对应的大数据处理框架结合使用,eg. Kafka + Samza 从物理部署层面来讲,其主要有如下几个模块: ZooKeeper 用于元数据保存以及事件通知 Broker Kafka 的核心部分,用 scala 实现,负责处理客户端请求,持久化消息数据等 Client(Consumer & Producer) 客户端,Java 实现。生产者消费者实现 下面分别从这几个模块来讲解 Kafka 相关的实现[ 基于 Kafka 2.4 ]。 相关概念 Broker Consumer Producer Controller GroupCoordinator TransactionCoordinator Topic Partition Replicas ZooKeeper Apache ZooKeeper 在 Kafka 的作用中类似于元数据的存储以及元数据改变的的一个通知器的作用。看清楚其内部存储了哪些数据就可以知道其具体的一个作用。存储的主要数据如下 集群相关元数据 /cluster/id { "version" : 4 ,

Service Worker

荒凉一梦 提交于 2019-12-18 19:01:41
1. Service Worker的身份 Service的意思是服务,Worker的意思是工人,那么Service Worker的意思就是服务员。这个员工是2014年6月HTML5新招的实习生,目前在试用中。在此之前,已经有一位老员工,它叫Web Worker。那么问题来了,Boss是谁?Boss就是浏览器。准确来说,每个页面的javascript运行主线程都是一个Boss。 这里先谈一下大的背景。Boss很厉害,在页面上指点江山,呼风唤雨。但他有个局限:同一时刻只做一件事(单线程)。当一些很耗时的杂事让Boss去处理时,在处理的过程中他就无暇顾及其它重要的事了。在用户看来,页面没人管了,Boss不干事了!这时Boss就很郁闷。为了保证Boss能处理更重要的事情,董事会(W3C)终于招聘了一个新员工:Web worker。这下,Boss终于可以从耗时的杂事中解放出来了,他只需要把Web worker叫过来说:“这些事情拿去做,没做完不要来找我”。Web worker领到任务后默默地到自己的工位(线程)去干活,完成之后给Boss发了个邮件(postMessage)。Boss收到邮件(onmessage)后欣慰地点了点头。 扯了半天好像还没谈到新员工啊。。。不急,下面就讲到了。 Boss下班了(页面关闭),Web worker也收拾东西回家了。这样执行了很久,直至2014年6月

事件驱动模式--Reactor

♀尐吖头ヾ 提交于 2019-12-18 18:48:28
原文:https://www.cnblogs.com/harvyxu/p/7498763.html 1 Reactor模型   Reactor模式是处理并发I/O比较常见的一种模式,用于同步I/O,中心思想是将所有要处理的I/O事件注册到一个中心I/O多路复用器上,同时主线程/进程阻塞在多路复用器上;一旦有I/O事件到来或是准备就绪(文件描述符或socket可读、写),多路复用器返回并将事先注册的相应I/O事件分发到对应的处理器中。   Reactor是一种事件驱动机制,和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。用“好莱坞原则”来形容Reactor再合适不过了:不要打电话给我们,我们会打电话通知你。 Reactor模式与Observer模式在某些方面极为相似:当一个主体发生改变时,所有依属体都得到通知。不过,观察者模式与单个事件源关联,而反应器模式则与多个事件源关联 。 Reactor模型各模块之间的关系如下图所示 : Handle( 描述符 ): 即操作系统中的句柄fd,是对资源在操作系统层面上的一种抽象,它可以是打开的文件、一个连接(Socket)

AWS---Cloudwatch、SNS

前提是你 提交于 2019-12-18 17:29:40
监控到EC2停止了,就发邮件通知 1. SNS页面,创建一个topic,输入topic name,接着创建subscription,选择email。由下图看出,可以选择http、email、SQS、lambda等 2. Cloudwatch页面,event---新建rule. (1)由下图可以看出,可以选择event pattern和schedule两种。 event pattern是你自己选择任何一个aws 的service,进行监控; schedule是定时器,就是没有任何事件发生,这个cloudwatch就假装发生了,你可以设置 假装事件发生频率。 右侧的target是通知给哪个service (2)步骤(1)中的service name选择EC2, 接着选择event type,有any state和指定的两种。如果选择specific states,则会列出所有状态。 下图最下方是event pattern preview,也就是本次rule的json代码。 (3)上图右侧的target,选择步骤1中创建的sns topic名字。可以看到target的service选择也很多。 3. EC2页面,停止EC2,可以看到邮箱收到的邮件 由上图可以看出,ec2在stop或者running的状态下,可以选择image创建AMI。 由下图可以看出,ec2在pending状态

Reactor模式详解

余生颓废 提交于 2019-12-18 16:45:59
转自:http://www.blogjava.net/DLevin/archive/2015/09/02/427045.html 前记 第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的 Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名字而已,虽然它引入了EventLoop概 念,这对我来说是新的概念,但是代码实现却是一样的,因而我并没有很在意这个模式。然而最近开始读Netty源码,而Reactor模式是很多介绍Netty的文章中被大肆宣传的模式,因而我再次问自己,什么是Reactor模式?本文就是对这个问题关于我的一些理解和尝试着来解答。 什么是Reactor模式 要回答这个问题,首先当然是求助Google或Wikipedia,其中Wikipedia上说:“The reactor design pattern is an event handling pattern for handling service requests delivered concurrently by one or more inputs. The service handler then demultiplexes the incoming requests

以setTimeout来聊聊Event Loop

夙愿已清 提交于 2019-12-18 15:16:16
终于到了神话破灭的时刻…… 这注定是一篇“自取其辱”的博客,飞哥,你们眼中的大神,Duang,这次脸朝下摔地上了。 故事得从这个求助开始: e.returnValue 报错:未定义 ,“一起帮”现在人气还不够旺,碰到了我勉勉强强能够解决的问题,硬着头皮也得上啊!远程一看,问题不是e.returnValue没值,是e本身就没值。而更核心的问题是:这段代码,是被放在setTimeout()里面的。 (这里插一句:很多问题,就得远程,求助人贴出来的代码,根本就没抓住重点。话说,很多时候,要是能抓住问题的核心,问题也已经解决了一大半了。) 把代码简单化一下,代码大致应该是这样的: 1 <script> 2 function showEvent(){ 3 setTimeout( 4 function(){ 5 alert('in setTimeout:'+ event); 6 },100 7 ); 8 } 9 </script> 10 11 <input type="submit" name="Submit" value="提交" onclick="showEvent()" /> 点击提交按钮,就会看到:event 为 undefined。 凭着直觉,真的就是坑踩得太多的直觉,我飞快的解决了这个问题:在setTimeout()之前加一行代码,如下所示: 1 function

Html页面Dom对象之Event

穿精又带淫゛_ 提交于 2019-12-18 15:13:40
HTML DOM Event 对象 实例 哪个鼠标按钮被点击? 光标的坐标是? 被按的按键的 unicode 是? 相对于屏幕,光标的坐标是? shift 键被按了吗? 哪个元素被点击了? 哪个事件类型发生了? Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。 事件通常与函数结合使用,函数不会在事件发生前被执行! 事件句柄 (Event Handlers) HTML 4.0 的新特性之一是能够使 HTML 事件触发浏览器中的行为,比如当用户点击某个 HTML 元素时启动一段 JavaScript。下面是一个属性列表,可将之插入 HTML 标签以定义事件的行为。 属性 此事件发生在何时... onabort 图像的加载被中断。 onblur 元素失去焦点。 onchange 域的内容被改变。 onclick 当用户点击某个对象时调用的事件句柄。 ondblclick 当用户双击某个对象时调用的事件句柄。 onerror 在加载文档或图像时发生错误。 onfocus 元素获得焦点。 onkeydown 某个键盘按键被按下。 onkeypress 某个键盘按键被按下并松开。 onkeyup 某个键盘按键被松开。 onload 一张页面或一幅图像完成加载。 onmousedown 鼠标按钮被按下。

QP简介

给你一囗甜甜゛ 提交于 2019-12-18 12:52:38
QP简介     QP(Quantum Platform)是一个轻量级的、开源的、基于状态机的、事件驱动型应用程序框架。这个框架包括四部分:  事件处理器(QEP);  轻量级的事件驱动框架(QF); 任务调度微内核(QV、QK、QXK);   实时跟踪调试器(QS)。 (1)QEP   Quantum Event Processor是一个通用的,可移植的,可重用的状态机引擎。   QEP允许你直接把UML样式的状态图映射为代码。   QEP提供了传统的简单平面状态机和层次式状态机。QEP可以直接操作事队列和事件分发机制。 (2)QF   QF是一个通用的,事件驱动的应用框架,是一个实时框架,面向嵌入式系统。   QF被设计成和QEP,RTOS协同工作。   QF包含了事件队列,活动对象,事件遍历等。 (3)QK   QK是一个轻量级可抢占型实时内核   QK是一个极小的,按RTC习惯的,执行独立任务的内核。   QK必须和QF版本相匹配。 (4)QS   一个强大的调试工具 QEP (Hierarchical Event Processor)   事件处理器,也可以理解为一个状态机引擎,当有事件需要处理时,调用当前状态的状态函数处理这个事件,并处理调用状态函数的返回值,根据返回值进行相应的状态变换(如转移到父状态)。而且状态引擎也处理某状态的进入(ENTER)、退出(EXIT)

angular父子组件传值

依然范特西╮ 提交于 2019-12-18 08:48:27
angular 组件传值---****---子传父。。。。@Output *****子组件 --------ts文件 import {Component, Output, EventEmitter,OnInit} from '@angular/core'; @Component({ selector: 'child-Component', templateUrl: './child.component.html', styleUrls: ['./child.component.less'] }) export class childComponent implements OnInit { //使用"事件传递"是 "子组件" 向 "父组件" 传递数据最常用的方式,子组件需要实例化EventEmitter类来订阅和触发自定义事件 @Output() childDataevent = new EventEmitter();//自定义事件 实例化EventEmitter,赋值给event,event被@Output装饰器定义为输出属性, private username: string; // 这样event具备了向上级传递数据的能力,通过调用EventEmitter类中定义的emit方法,来向上传递数据 constructor() {} ngOnInit(): void {}

Android EventBus 3.0.0 使用总结

萝らか妹 提交于 2019-12-18 02:22:53
转载请标明出处:http://www.cnblogs.com/zhaoyanjun/p/6039221.html 本文出自 【赵彦军的博客】 前言 EventBus框架 EventBus是一个通用的叫法,例如Google出品的Guava,Guava是一个庞大的库,EventBus只是它附带的一个小功能,因此实际项目中使用并不多。用的最多的是greenrobot/EventBus,这个库的优点是接口简洁,集成方便,但是限定了方法名,不支持注解。另一个库square/otto修改自 Guava ,用的人也不少。所以今天我们研究的目标是greenrobot的EventBus. EventBus 简介 1、EventBus3.0.0 是最新的版本。 2、EventBus 是Android 发布/订阅事件总线,可简化 Activities, Fragments, Threads, Services 等组件间的消息传递。 3、可替代 Intent, Handler, BroadCast ,接口等传统方案,更快,代码更小,50K 左右的 jar 包,代码更优雅,彻底解耦。 github地址:https://github.com/greenrobot/EventBus EventBus原理图 如何添加依赖 在module的build.gredle 文件中的dependencies标签中添加