[转] 消息系统该Push/Pull模式分析】的更多相关文章

信息推拉技术简介 “智能信息推拉(IIPP)技术”是在网上信息获取技术中加入了智能成份,从而有助于用户在海量信息中高效.及时地获取最新信息,提高了信 息系统主动信息服务的能力.如果引入基于IIPP的主动信息服务系统,则可根据用户的特性提供具有针对性的.个性化的信息服务. 以往在Internet上搜寻信息,最常用的方法就是浏览器发出请求后,Web就将信息传送给用户,此过程用户需要“拉取”信息而被描述为 Pull:而将信息直接“推送”到用户的计算机的方法就是信息推送,称之为Push,用户只需要在初次…
我们都用过消息中间件,它的作用自不必多说.但对于消费者却一直有一些权衡,就是使用push,还是pull模式的问题,这当然是各有优劣.当然,这并不是本文想讨论的问题.我们想在不使用长连接的情意下,如何实现实时的消息消费,而不至于让server端压力过大.大体上来说,这是一种主动拉取pull的方式.具体情况如何,且看且听. 1. 架构示意图 既然是一个消息中间的作用,我们必须得模拟一个生产消费者模型,如下: 生产者集群->消息中心集群->消费者集群 只是这里的生产和消息中心也许我们可以合二为一,为…
分布式消息系统作为实现分布式系统可扩展.可伸缩性的关键组件,需要具有高吞吐量.高可用等特点.而谈到消息系统的设计,就回避不了两个问题: 消息的顺序问题 消息的重复问题 RocketMQ作为阿里开源的一款高性能.高吞吐量的消息中间件,它是怎样来解决这两个问题的?RocketMQ 有哪些关键特性?其实现原理是怎样的? 关键特性以及其实现原理 一.顺序消息 消息有序指的是一类消息消费时,能按照发送的顺序来消费.例如:一个订单产生了 3 条消息,分别是订单创建.订单付款.订单完成.消费时,要按照这个顺序…
1.背景 最近因为工作需要,调研了追求高吞吐的轻量级消息系统Kafka,打算替换掉线上运行的ActiveMQ,主要是因为明年的预算日流量有十亿,而ActiveMQ的分布式实现的很奇怪,所以希望找一个适合分布式的消息系统. 以下是内容是调研过程中总结的一些知识和经验,欢迎拍砖. 2.基础知识 2.1.什么是消息队列 首先,我们来看看什么是消息队列,维基百科里的解释翻译过来如下: 队列提供了一种异步通信协议,这意味着消息的发送者和接收者不需要同时与消息保持联系,发送者发送的消息会存储在队列中,直到接…
Kafka——分布式消息系统 架构 Apache Kafka是2010年12月份开源的项目,采用scala语言编写,使用了多种效率优化机制,整体架构比较新颖(push/pull),更适合异构集群. 设计目标: (1) 数据在磁盘上的存取代价为O(1)(2) 高吞吐率,在普通的服务器上每秒也能处理几十万条消息(3) 分布式架构,能够对消息分区(4) 支持将数据并行的加载到hadoop Kafka实际上是一个消息发布订阅系统.producer向某个topic发布消息,而consumer订阅某个top…
终于可以写kafka的文章了,Mina的相关文章我已经做了索引,在我的博客中置顶了,大家可以方便的找到.从这一篇开始分布式消息系统的入门. 在我们大量使用分布式数据库.分布式计算集群的时候,是否会遇到这样的一些问题: l  我想分析一下用户行为(pageviews),以便我能设计出更好的广告位 l  我想对用户的搜索关键词进行统计,分析出当前的流行趋势.这个很有意思,在经济学上有个长裙理论,就是说,如果长裙的销量高了,说明经济不景气了,因为姑娘们没钱买各种丝袜了. l  有些数据,我觉得存数据库…
1.  概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数据.活跃的流式数据在web网站应用中非常常见,这些数据包括网站的pv.用户访问了什么内容,搜索了什么内容等. 这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理. 传统的日志分析系统提供了一种离线处理日志信息的可扩展方案,但若要进行实时处理,通常会有较大延迟.而现有的消(队列)系统能够很好的处理实时或者近似实时的应用,但未处理的数据通常不会写到磁盘上,这对于Hadoop之类(一…
2015-01-05 大数据平台 Hadoop大数据平台 基本概念 kafka的工作方式和其他MQ基本相同,只是在一些名词命名上有些不同.为了更好的讨论,这里对这些名词做简单解释.通过这些解释应该可以大致了解kafka MQ的工作方式. Producer (P):就是网kafka发消息的客户端 Consumer (C):从kafka取消息的客户端 Topic (T):可以理解为一个队列 Consumer Group (CG):这是kafka用来实现一个topic消息的广播(发给所有的consum…
http://www.infoq.com/cn/articles/kafka-analysis-part-1 Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spark都支持与Kafka集成.InfoQ一直在紧密关注Kafka的应用以及发展,“Kafka剖析”专栏将会从架构设计.实现.应用场景.性能等方面深度解析Kafka. 背景介绍 Kafka创建背…
1.  概述 Kafka是Linkedin于2010年12月份开源的消息系统,它主要用于处理活跃的流式数 据.活跃的流式数据在web网站应用中非常常见,这 些数据包括网站的pv.用户访问了什么内容,搜索了什么内容等. 这些数据通常以日志的形式记录下来,然后每隔一段时间进行一次统计处理. 传统的日志分析系统提供了一种离线处理日志信息的可扩展方案,但若要进行实时处理,通常会有较大延迟.而现有的消(队列)系统能够很好的处理实时或 者近似实时的应用,但未处理的数据通常不会写到磁盘上,这对于Hadoop之…