消息队列

Kafka初识

亡梦爱人 提交于 2019-12-06 14:22:36
转载自 https://www.cnblogs.com/luotianshuai/p/5206662.html Kafka初识 1、Kafka使用背景 在我们大量使用分布式数据库、分布式计算集群的时候,是否会遇到这样的一些问题: 我们想分析下用户行为(pageviews),以便我们设计出更好的广告位 我想对用户的搜索关键词进行统计,分析出当前的流行趋势 有些数据,存储数据库浪费,直接存储硬盘效率又低 这些场景都有一个共同点: 数据是由上游模块产生,上游模块,使用上游模块的数据计算、统计、分析,这个时候就可以使用消息系统,尤其是分布式消息系统! 2、Kafka的定义 What is Kafka:它是一个分布式消息系统,由linkedin使用scala编写,用作LinkedIn的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。具有高水平扩展和高吞吐量。 3、Kafka和其他主流分布式消息系统的对比 定义解释: 1、Java 和 scala都是运行在JVM上的语言。 2、erlang和最近比较火的和go语言一样是从代码级别就支持高并发的一种语言,所以RabbitMQ天生就有很高的并发性能,但是 有RabbitMQ严格按照AMQP进行实现,受到了很多限制。kafka的设计目标是高吞吐量,所以kafka自己设计了一套高性能但是不通用的协议

[转帖]插曲:大白话带你认识Kafka

坚强是说给别人听的谎言 提交于 2019-12-06 14:10:07
插曲:大白话带你认识Kafka 2019-11-18 21:58:27 从事Java 阅读数 2 更多 分类专栏: java Kafaka 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/weixin_45674354/article/details/103132612 本文内容过长,文末小编准备了彩蛋!希望读者喜欢! 前言 应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。 一、Kafka基础 消息系统的作用 应该大部份小伙伴都清楚,用机油装箱举个例子 所以消息系统就是如上图我们所说的仓库,能在中间过程作为缓存,并且实现解耦合的作用。 引入一个场景,我们知道中国移动,中国联通,中国电信的日志处理,是交给外包去做大数据分析的,假设现在它们的日志都交给了你做的系统去做用户画像分析。 ​​ ​​ 按照刚刚前面提到的消息系统的作用,我们知道了消息系统其实就是一个模拟缓存,且仅仅是起到了缓存的作用而并不是真正的缓存,数据仍然是存储在磁盘上面而不是内存。 1.Topic 主题 kafka学习了数据库里面的设计,在里面设计了topic(主题),这个东西类似于关系型数据库的表 ​ ​ 此时我需要获取中国移动的数据,那就直接监听TopicA即可 2

RabbitMQ

心不动则不痛 提交于 2019-12-06 14:01:22
1、RabbitMQ简介 2、RabbitMQ安装及使用 3、RabbitMQ快速入门 4、交换机 RabbitMQ 简介 各大主流中间件对比 ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线,并且它一 个完全支持 J M S 规范的消息中间件。 其丰富的 API 、多种集群构建模式使得他成为业界老牌消息中间件,在中 小型企业中应用广泛! MQ 衡量指标:服务性能、数据存储、集群架构 RocketMQ是阿里开源的消息中间件,目前也已经孵化为Apache顶级项目, 它是纯java开发,具有高吞吐量、高可用性、适合大规模分布式系统 应用的特点。 RocketMQ思路起源于Kafka,它对消息的可靠传输及事务 性做了优化, 目前在阿里集团被广泛应用于交易、充值、流计算、消息推 送、日志流式处理、binglog分发等场景 RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议 来实现。 AMQP的主要特征是面向消息、队列、路由(包括点对点和发布 /订阅)、可靠性、安全。AMQP协议更多用在企业系统内, 对数据_致 性、稳定性和可靠性要求很髙的场景,对性能和吞吐量的要求还在其次。 结论: activiMq老牌消息中间件,api全面,但是吞吐量不大 Kafaka吞吐量大,但是数据无法保证不丢失,主要面向大数据 rokectMQ:吞吐量大

VxWorks基本OS介绍

前提是你 提交于 2019-12-06 12:36:41
这里我就偷点懒,直接复制粘贴文档了。可能会有一些图片无法显示 ,可以直接管我索要文档。 每一个被切换的程序实体就是“任务”。每一个任务都有其自己的上下文——所谓上下文就是指任务在每一次被核心调度时所需要的 CPU环境、系统资源。在上下文的切换过程中,每一个任务的上下文被存在该任务的任务控制块中(TCB )。 ◆ 执行的线程,也就是任务程序计数器; ◆ CPU 寄存器的内容和浮点寄存器中的内容; ◆ 动态变量和程序调用所使用的堆栈; ◆ 标准输入输出的I/O 分配和错误; ◆ 延时计时器; ◆ 时间片计时器; ◆ 核心控制结构; ◆ 信号处理句柄; ◆ 调试和性能监视值。 wind核心中使用了基于优先级抢占式的任务调度策略,但是用户也可以选择优先级轮转调度策略。 1.优先级抢占策略 通过使用优先级抢占策略,每一个任务都会拥有一个优先级,这样内核就会确信将 CPU资源分给了优先级最高的就绪任务。这种方法之所以叫做抢占式的,是指任何运行的任务会被一个变成就绪状态而且优先级更高的任务打断,这时系统会保存当前任务的上下文并立即切换到高优先级的任务上下文,并且开始执行这个任务。在图14.2所示的任务优先级抢占图中给出了优先级抢占的例子,例子中任务t1被优先级较高的任务t2抢占,而更高优先级的任务t3则抢占了t2的执行,当t3执行完后,t2开始继续执行,接下来t1在t2

Redis 分布式锁

三世轮回 提交于 2019-12-06 12:19:56
众所周知,redis是一个高性能的分布式 key-value 存储系统,在NoSQL数据库市场上,redis自己就占据了将近半壁江山,足以见到其强大之处。同时,由于redis的单线程特性,我们可以将其用作为一个 消息队列 。本篇文章就来讲讲如何将redis整合到spring boot中,并用作消息队列的 (本人自己在线上使用后,感觉加分布式锁大大影响了效率,还没有单机效率高) 为什么会出现消息队列? 异步:常见的B/S架构下,客户端向服务器发送请求,但是服务器处理这个消息需要花费的时间很长的时间,如果客户端一直等待服务器处理完消息,会造成客户端的系统资源浪费;而使用消息队列后,服务器直接将消息推送到消息队列中,由专门的处理消息程序处理消息,这样客户端就不必花费大量时间等待服务器的响应了; 解耦:传统的软件开发模式,模块之间的调用是直接调用,这样的系统很不利于系统的扩展,同时,模块之间的相互调用,数据之间的共享问题也很大,每个模块都要时时刻刻考虑其他模块会不会挂了;使用消息队列以后,模块之间不直接调用,而是通过数据,且当某个模块挂了以后,数据仍旧会保存在消息队列中。最典型的就是 生产者-消费者 模式,本案例使用的就是该模式; 削峰填谷:某一时刻,系统的并发请求暴增,远远超过了系统的最大处理能力后,如果不做任何处理,系统会崩溃;使用消息队列以后,服务器把请求推送到消息队列中

Winows下安装RabbitMQ

送分小仙女□ 提交于 2019-12-06 10:55:17
RabbitMQ的简介 RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成;RabbitMQ支持主流操作系统Linux、Windows、MaxOX等,多种开发语言支持,Java、Python、Ruby、.Net、PHP、C/C++、Node.js等。 安装 1、下载地址:http://www.rabbitmq.com/download.html 2、 安装RabbitMQ需先安装Erlang,下载地址:http://www.erlang.org/download,下载最新版的压缩包 3、 安装过程就不截图了,安装好Erlang 和 RabbitMQ找到C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\RabbitMQ Server文件夹下的RabbitMQ Command Prompt (sbin dir)双击如图所示: 然后,进入C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.18\sbin输入命令:rabbitmq-plugins

消息队列 ActiveMQ

时光总嘲笑我的痴心妄想 提交于 2019-12-06 10:54:07
一。首先,说一下ActiveMQ在Linux的安装: 1.下载安装包:      下载:apache-activemq-5.14.0-bin.tar.gz      地址 : http://activemq.apache.org/activemq-5140-release.html 2.安装到Linux虚拟机上:   1、gz文件拷贝到/usr/local/src目录   2.解压启动:     tar -zxvf apache-activemq-5.14.0-bin.tar.gz     cd apache-activemq-5.14.0/bin --->到解压过后的activemq的bin目录下启动     ./start 启动图示:      查看指定端口下的activemq是否启动:    netstat -anp|grep 61616 图示:   关闭 ./activemq start 3. 开启防火墙端口 参考资料: 1.编辑/etc/sysconfig/iptables文件:vi /etc/sysconfig/iptables 加入内容并保存:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 2.重启服务:/etc/init.d/iptables

关于rabbitmq

。_饼干妹妹 提交于 2019-12-06 10:53:48
关于rabbitmq 1 简单介绍rabbitmq    RabbitMQ 是实现了 高级消息队列协议 (AMQP)的开源 消息代理 软件(亦称 面向消息的中间件 )。RabbitMQ服务器是用 Erlang 语言编写的,而聚类和故障转移是构建在 开放电信平台 框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 2.为什么使用mq,rabbitmq相对其他列队的优势?   mq主要是做程序异步处理,服务解耦,流量削峰,顺序处理保证,    来源: https://www.cnblogs.com/wchxj/p/11979276.html

求不更学不动之Redis5.0新特性Stream尝鲜

若如初见. 提交于 2019-12-06 10:53:44
Redis5.0最近被作者突然放出来了,增加了很多新的特色功能。而Redis5.0最大的新特性就是多出了一个数据结构Stream,它是一个新的强大的支持多播的可持久化的消息队列,作者坦言Redis Stream狠狠地借鉴了Kafka的设计。 Redis Stream的结构如上图所示,它有一个消息链表,将所有加入的消息都串起来,每个消息都有一个唯一的ID和对应的内容。消息是持久化的,Redis重启后,内容还在。 每个Stream都有唯一的名称,它就是Redis的key,在我们首次使用 xadd 指令追加消息时自动创建。 每个Stream都可以挂多个消费组,每个消费组会有个游标 last_delivered_id 在Stream数组之上往前移动,表示当前消费组已经消费到哪条消息了。每个消费组都有一个Stream内唯一的名称,消费组不会自动创建,它需要单独的指令 xgroup create 进行创建,需要指定从Stream的某个消息ID开始消费,这个ID用来初始化 last_delivered_id 变量。 每个消费组(Consumer Group)的状态都是独立的,相互不受影响。也就是说同一份Stream内部的消息会被每个消费组都消费到。 同一个消费组(Consumer Group)可以挂接多个消费者(Consumer),这些消费者之间是竞争关系,任意一个消费者读取了消息都会使游标

消息队列 ActiveMQ详解

十年热恋 提交于 2019-12-06 10:25:54
一。首先,说一下ActiveMQ在Linux的安装: 1.下载安装包:      下载:apache-activemq-5.14.0-bin.tar.gz      地址 : http://activemq.apache.org/activemq-5140-release.html 2.安装到Linux虚拟机上:   1、gz文件拷贝到/usr/local/src目录   2.解压启动:     tar -zxvf apache-activemq-5.14.0-bin.tar.gz     cd apache-activemq-5.14.0/bin --->到解压过后的activemq的bin目录下启动     ./start 启动图示:      查看指定端口下的activemq是否启动:    netstat -anp|grep 61616 图示:   关闭 ./activemq start 3. 开启防火墙端口 参考资料: 1.编辑/etc/sysconfig/iptables文件:vi /etc/sysconfig/iptables 加入内容并保存:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT 2.重启服务:/etc/init.d/iptables