大数据开发最火技术Kafka背后的“黑科技”
2019-11-07 11:40:12Kafka是由Apache软件基金会开发的一个开源流处理平台,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于其他常见消息系统,Kafka在保障了大部分功能特性的同时,还在高吞吐、低延迟等方面有很突出的表现。
Kafka是由Apache软件基金会开发的一个开源流处理平台,被广泛地应用在数据缓冲、异步通信、汇集日志、系统解耦等方面。相比较于其他常见消息系统,Kafka在保障了大部分功能特性的同时,还在高吞吐、低延迟等方面有很突出的表现。这篇文章不同于其他介绍Kafka使用或实现的文章,只是谈谈Kafka用了什么“黑科技”使他在性能方面有这么突出的表现。
磁盘大多数都还是机械结构(SSD不在讨论的范围内),如果将消息以随机写的方式存入磁盘,就需要按柱面、磁头、扇区的方式寻址,寻址是一个“机械动作”也最耗时。为了提高读写硬盘的速度,Kafka就是使用顺序I/O。
图 1 Kafka顺序IO
上图中,每个partition就是一个文件,每条消息都被Append 到该 partition 中,属于顺序写磁盘,因此效率非常高。这种方法有一个缺陷—— 没有办法删除数据 ,所以Kafka是不会删除数据的,它会把所有的数据都保留下来,每个消费者(Consumer)对每个Topic都有一个offset用来表示读取到了第几条数据 。
关于磁盘顺序读写和随机读写的性能,引用一组Kafka官方给出的测试数据(Raid-5,7200rpm):
所以通过只做Sequence I/O,给Kafka带来了性能的极大提升。
考虑一个web程序读取文件内容并传输到网络的场景,实现的核心代码如下:
图 2 普通read方法
虽然只是两个调用,但却经过了4次copy,其中有2次cpu copy,还有多次用户态与内核态的上下文切换,这会加重cpu的负担,而零拷贝就是为了解决这种低效。
减少拷贝次数的一种方法是调用mmap()来代替read()调用:
应用程序调用mmap(),磁盘上的数据会通过DMA被拷贝到内核缓冲区,接着操作系统会把这段内核缓冲区与应用程序共享,这样就不需要把内核缓冲区的内容往用户空间拷贝。应用程序再调用write(),操作系统直接将内核缓冲区的内容拷贝到socket缓冲区中,最后再把数据发到网卡去。
图 3 mmap方法
使用mmap可以减少一次cpu copy,但也会遇到一些陷阱,当你的程序map了一个文件,但是当这个文件被另一个进程截断(truncate)时, write系统调用会因为访问非法地址而被SIGBUS信号终止。通常可以通过,为SIGBUS信号建立信号处理程序或使用文件租凭(file leasing)的方式去解决,这里就不再赘述了。
# sendfile:
从2.1版内核开始,Linux引入了sendfile来简化操作
图 4 sendfile方法
sendfile() 方法引发 DMA 引擎将文件内容拷贝到一个读取缓冲区(DMA copy)然后由内核将数据拷贝到socket buffer(cpu copy)最后再拷贝到网卡(DMA copy)使用sendfile不仅减少了数据拷贝的次数,还减少了上下文切换,数据传送始终只发生在kernel space
聊到这里,sendfile至少还需要一次cpu copy,那么这一步能不能省去呢?为了消除内核完成的所有数据复制,我们需要一个支持收集(gaTher)操作的网络接口。同时,在内核版本2.4中,也修改了套接字缓冲区描述符以适应零拷贝要求。 这种方法不仅减少了多个上下文切换,还完全取消了cpu copy。
图 5 sendfile方法(DMA gather)

sendfile系统调用利用DMA引擎将文件内容拷贝到内核缓冲区去,然后将带有文件位置和长度信息的缓冲区描述符添加socket缓冲区去,这一步不会将内核中的数据拷贝到socket缓冲区中,DMA引擎会将内核缓冲区的数据拷贝到协议引擎中去,避免了最后一次CPU拷贝。
零拷贝技术非常普遍,JAVA的transferTo、transferFrom方法就是Zero Copy。
【本文是51CTO专栏机构“AiChinaTech”的原创文章,微信公众号( id: tech-AI)”】
戳这里,看该作者更多好文
塞班系统好还是安卓系统好
进入2011年,安卓在智能手机领域超越苹果登上首席挑战者的位置。据市场调研机构Gartner早些时候发布的报告显示, 安卓将在2014年超越塞班。另一方面,关于塞班基金会即将关闭的传闻也是甚嚣尘上,塞班的自我救赎仍然漫长。智能手机操作系统之争的第一回合已见分晓?安卓的风光无限和塞班的命运多舛形成了鲜明的对比,智能手机操作系统之争大局已定?安卓赶超苹果,蒸蒸日上
安卓无疑是2010年最为亮眼的智能手机系统,在短短1年多的发展后,安卓已经迅速成为智能手机系统霸主地位的最有力竞争者。 移动广告网络公司Millenial Media最新数据显示,根据其广告印象市场份额计算,谷歌安卓去年12月首次超越苹果iOS,成为最受欢迎的智能手机操作系统。 另有数据显示,安卓系统已占据了全球四分之一的智能手机市场,并且还将继续以两倍于竞争对手的速度增长。 而在国内市场上,安卓也后来居上逐渐成为国内智能手机操作系统领域的领头羊。
安卓得以横扫智能手机市场,其系统化开源性功不可没。 随着3G的推广,手机搜索、手机游戏、手机支付等移动应用也开始迅猛发展。 移动应用的无限丰富使得安卓系统拥有了无限广阔的“升级”空间,安卓手机相比传统智能手机更加像一台具有通话功能的微型电脑,使用户获得了塞班等封闭系统所不能比拟的丰富体验。
为了推广安卓平台技术,Google和几十个手机相关企业建立了开放手机联盟(Open Handset Alliance)。 联盟成员包括摩托罗拉(Motorola)、HTC、SAMSUNG、LG以及中国移动在内的34家技术和无线应用的领军企业,都将基于该平台开发手机的新型业务,极大的保障了Android平台应用之间的通用性和互联性。 也使得安卓在人机交互体验上获得了更加杰出的表现。
2010年12月31日,三星宣布彻底放弃塞班系统,转投安卓的怀抱,此举成为Android蒸蒸日上的一个里程碑。 随着千元安卓手机进入市场,安卓系统在2011年将迎来一个更加令人瞩目的井喷式增长期。
塞班命途多舛,王朝远去
相比安卓在各大市场的高歌猛进,塞班的日子则不那么好过。 据媒体报道,由于资金严重匮乏,塞班基金会将最终宣告关闭。 而三星的反水则使得昔日强大的塞班王朝几近解体。 场份额节节下降,只剩“老顽固”诺基亚一力苦撑,塞班的辉煌似乎已经注定要成为王朝的背影。
与安卓的开源不同,塞班是封闭式智能系统的巅峰之作。 系统严谨,安全稳定使得塞班系统获得了大批拥趸,然而在发展空间上,封闭的塞班就显露出了底气不足的一面。 首先,塞班尽管兼容性好安全稳定,但速度较慢,操作时比较卡让用户体验打了折扣,难以满足人们对智能系统操作灵敏度的追求。 其次,塞班系统在操作的人性化方面有所不足,比如塞班系统的长按键比之安卓的手指划动就要麻烦不少,在用户体验上吃亏不少。 第三,塞班的封闭系统无法获得足够丰富的应用支持,开发成本和应用联通性方面完全被安卓超越。
依靠吃老本在智能手机市场苦撑的塞班尽管在去年依然获得了业绩上的增长,但其市场份额仍在继续下降。 尽管仍然手握40%的全球市场份额,但其主要支持者诺基亚在2010年年初与英特尔联手,打造了全新的移动终端操作系统MeeGo,并将之后发布N系列旗舰手机全面转向使用MeeGo操作系统。 媒体评论认为,“诺基亚的强大造就了塞班系统昨日的繁荣,而今日则是塞班系统的衰落造就了诺基亚的困局”。 诺基亚与塞班之间的缝缝补补目前并没有能够扭转局面,难说诺基亚这个老情人会不会水往高处流,另攀高枝。 最后一根支柱如果崩溃,塞班王朝或将难逃分崩离析的命运。
操作系统之争尘埃已定?
随着3G时代全面到来,移动应用的不断丰富带来的新一轮操作系统的改朝换代已经开始。 目前,智能手机市场上Meego尚在酝酿,WP7大器未成,黑莓亮点少见,苹果自成一家,最大的纷争在于安卓与塞班。 如今,安卓蒸蒸日上,塞班遭遇关门困境,随着安卓井喷期的到来,智能手机操作系统之争的第一回合已见分晓?
不过,此时下此结论或许为时尚早,尽管安卓目前人气极旺,前景一片大好,但元旦期间,安卓被曝多款软件留有“后门”而深陷“吸费门”,充分暴露出安卓系统尚不成熟的一面。 数据显示,安卓占据全球智能手机操作系统25.5%的份额。 而截至2010年年底,安卓全球应用程序数量超20万。 由于应用过多升级过快,反而导致安卓系统操作系统版本混乱,缺乏统一审核。 从国内市场看,移动应用目前依然处在2G时代。 移动互联网目前面临着很多挑战。 操作系统版本混乱和3G推广的滞后将在未来的一段时期内拖住安卓在国内市场前进的脚步。
而从全球市场上看,由于安卓系统的开源性,互联网对于手机网络的渗透带来的安全隐私方面的困扰令人担忧。 由于手机与互联网的联系日趋紧密,用户在上网过程中留下的个人足迹容易为不法分子利用,而Google在安卓系统背后对用户隐私带来的隐忧则使互联网潜伏着一场隐私危机。
另一方面,没落中的塞班也在求新求变。 诺基亚自去年开始将技术工作的重点转向应用程序的开发和丰富。 另外,诺基亚还在与全球91家运营商进行合作,推动第三方应用的开发。 诺基亚力图通过在应用和服务方面提升水平实现自救。 据市场调研机构Gartner早些时候发布的报告显示, 安卓将在2014年全面超越塞班。 但塞班手中毕竟依然掌握着全球40%智能手机市场份额,如果自救顺利,安卓登上智能手机市场霸主地位的日子恐怕还得往后拖一拖
beats 音效, 杜比数码和魔声哪个品牌的音效比较好,他们有什么特点
Beats Audio 音效系统,是一款独特的高性能的技术系统,是由惠普和Beats by Dr. Dre共同开发,且将应用于惠普Pavilion以及Envy等系列机型当中,例如惠普Pavilion dv6等笔记本电脑。 为用户提供更加不错的音效享受。 红圈加B,对,就是魔声“MONSTER”2011年2月23日 在“惠普新世界”大会上,相信除了PSG移动互联、WebOS、TouchPad以及CoolSense最令人印象深刻外,Beats Audio音效系统着实也是一个出现频率颇高的词汇。 其中一个最好的例子就是将Beats Audio技术融入了webOS平板电脑Touchpad。 到目前为止,这个技术在多处被提及的时候仅仅像一个脚注一样(PS:估计是不被人重视的意思),但Beats Audio技术很有可能让webOS的第一款平板电脑Touchpad在众多平板电脑中鹤立鸡群。 为什么这么说呢?接着往下看就知道了。 所以让我们先抱着怀疑的态度来看一看。 是的,Beats耳机是由Monster Cable Products Inc.公司生产的,并得到了著名音乐人Justin Beiber、Lady Gaga、Bono甚至Dr. Dre的一致好评。 是的,Beats这个品牌在音乐片到完整的好莱坞大片的大肆炒作下,确实名声在外,但这个技术是否真的虚有其表呢?答案当然是不。 Beats是由美国著名音乐人Jimmy Iovine和超级Rap歌星Dr. Dre共同开发的。 由于人们对于音乐产品的高度关注,他们看到了一个可以惠及主流消费者市场的巨大的市场机会:计算机上的音频质量。 在2月9日的发布会上,Iovine援引了一长串现在音乐供应链条中的平庸之处。 现在从我们电脑上放出的音乐大多是从iTunes上获取的低比特率音质的音乐,他指出这是相当令人震惊的,因为电脑正越来越成为家庭中的主要音乐播放工具,但没有人能听到与艺术家在录音棚里录制的音乐一样效果的音乐。 在这里最关键的一点是如何保持从耳机接口处的音频信号通过音频线连到耳机上的衰减问题。 这也包括了如何把主板的电磁噪音与发音部分之间隔离,一个离散音频信号放大器,分离左右声道以及地面音频线,甚至在接口处使用了无金属材质,从而能够降低接地噪音。 还有一个Beats Audio特殊音频配置文件,通过它能够让搭载了Beats Audio技术的电脑充分发挥相关硬件的功能。 说了那么多深奥的技术,实际的使用效果如何?出乎意料地优秀。 很多知名科技媒体,如Engadget、笔记本杂志、电脑世界等在对惠普获得多项大奖的Envy系列笔记本进行测试后都对此技术赞赏有加。 甚至HeadFi发烧友论坛认为打造Beats技术的笔记本是最佳的音频体验电脑之一。 看来Beats Audio还确实有两把刷子,那这一技术能否成为Touchpad的秘密武器呢?当然。 那是否Beats技术能成为笔记本电脑的音频终极技术?多半不会。 不过,不管怎么说,Touchpad上搭载的Beats Audio技术将不仅仅是一块牌子,更有可能让Touchpad的表现超越我们的想像。 此外,哪怕Beats Audio没有想像的那么好,Touchpad也能凭借这一技术的炒作而形成一个区别于其他平板电脑的特色,从而能够在竞争激烈的平板电脑市场上获得更多地市场份额。 编辑本段魔声公司魔声(Monster),又叫怪兽,线材(Monster Cable)是世界上最早开发出高能影音器材连线的品牌,该公司由美籍华裔李美圣( Lee)先生于1979年创立。 在此之前,音响器材中尽管已出现了保真度很高、音质相当不错的密纹唱片唱机、Hi-end级的放大器和对音乐还原相当完美的高保真扬声器,但人们对这些器材的连接线一无所知,只是用普通的导线来传输高保真讯号。 杜比降噪系统主要用来降低录音或放音的噪声。 在70年代就已经广泛地用于家用录音机中,那时我们常常发现许多录音机和原声音乐磁带上标有的符号,其意思就是表示该机具有杜比降噪功能,该磁带则是采用杜比降噪方式录制的。 当然,这种录音磁带只有在带有杜比降噪系统的录音机中放音才能获得满意的降噪效果。 杜比杜比环绕声系统则是美国杜比实验室为改善立体声质量而研制成功的影院音响系统。 在立体声电影院中,为了给观众创造出身临其境的空间感觉,除左右声道外,还装了能强化银幕上声音效果的中置声道和能使观众获得环境气氛与特殊效果感觉的环绕声道。 这一环绕声道用了许多扬声器,沿两侧墙面和后墙并联架设。 由于多声道直接录制和传输即昂贵又不方便,1976年,杜比实验室发明了杜比立体声电影系统,把左、中、右、环绕四个声道的信息经降噪后按一定方式编制记录成两声道。 在播放时再按相反的方式还原成四个声道(即4-2-4方式),从而实现了多声道与二声道的兼容传输。 杜比环绕声系统在70年代末拍摄的《星球大战》中,成功地实现了声音方向与画面移动的同步,让观众感受到声音从头顶呼啸而过的方位感和现场感,引起了电影界的震动,因此这一系统后来在电影院中获得了极为广泛的应用。 为了在普通家庭中也能欣赏到与电影院类似的效果,杜比实验室又对“杜比立体声电影系统”进行简化、浓缩,相继推出了“杜比环绕声系统”和“杜比定向逻辑环绕声系统”。 现在我们常说的杜比功放,大多指是带有“杜比定向逻辑环绕声”解码器并获杜比实验室认证的AV功放。 杜比定向逻辑环绕声(DOLBYPro-LogicSurround),是对第一代“杜比环绕声系统”进行改进后的第二代家用视听环绕声系统,发布于1987年。 从80年代末到现在,已广泛用于录像机、LD、VCD等影视节目声音效果的录制中,当然,其解码系统也就自然地落户到AV功放中了。 该系统有左、右、中置、环绕四个声道,并采用了特殊设计的方向性增强电路,能根据节目信号的实际情况对各个声道的相对强弱做出随机应变的巧妙调整,从而使声像定位感、方向感、移动感以及声场原貌的再现能力在很大程度上得到强化,真正地实现了家庭中的“影院”效果。 于是,杜比功放成了人们组建家庭影院的首选器材。 当然,必须是带有杜比定向逻辑环绕声的碟片与杜比功放相配合才能实现期望的效果。 杜比定向逻辑环绕声尽管在性能上已达到较高的水平,但它仍旧摆脱不了模拟技术的限制。 随着数字技术的日益成熟,为了满足下一代电视广播的要求,在杜比定向逻辑环绕声的基础上,1994年杜比实验室与日本先锋公司发布了他们合作研制开发的一种全新的数字化多通道影视音响系统:AudioCoding-3,取其字头命名为AC-3,1997年又更名为杜比数码:DOLBYDIGITAL。 它既可装备到电影院去,又可配置到家庭影院中来。 杜比AC-3是一个压缩/解压缩系统。 它采用先进的数码压缩技术,应用了杜比独创的特殊技术,把完全独立的前置左(L)、前置右(R)、中置(C)、左环绕(Ls)、右环绕(Rs)和超重低音(S)六个声道(5.1声道)压缩编码成两个声道,记录在电影胶片或影碟上。 在播放时再通过解码器还原成六个声道进行播放。 为了达到宽动态范围、高信噪比、高分离度、保证信号的保真度等目的,各声道先采用完全独立的方式录音,然后再进行压缩编码处理。 压缩时,杜比实验室利用音响心理学的基本原理,在无信号时使其保持宁静,而有音频信号时则利用较强的信号掩蔽听觉范围内的噪声,并删除人耳所听不到的或频率相近但音量小而可忽略的信号部分。 这样,大大地减少了需要处理的内容,使AC-3达到了较高的数字音频压缩效率,却仍然能给人以极为完整的、效果真实的感觉。 AC-3系统可与杜比定向逻辑环绕声系统相兼容,其效果比THX更加优越,未来的家庭影院应该是杜比AC-3为主流的系统。 杜比数码是一种比以往各种方式更为先进的高质量数码音频编码格式,.该系统设置互相独立的6个声道,它们是全频带的左,右,中置,左环绕,右环绕,再加上1个120HZ以下的超低音声道,因而又称作5.1声道.在此系统中要求超低音声道比其它5个全频带声道大10dB,可获得震撼力超群的低音.该全频带的5声道又称为3/2形态,或称为3/2立体声系统,它是由3个前置主声道和2个环绕声道组成.杜比AC-3具有两个突出的特点.第一,数码化的音响效果非凡,动态范围很宽,各声道的频率响应应都超过20kHz,有很高的信噪比,完全独立的6声道大功率输出,没有后置环绕声道的干扰.第二,它备有超低音输出,并使用独立音轨录音,它是数码化音频信号,具有电影院般的超低音输出效果。 杜比AC-3具有全频带立体声环绕,频响均为(20-20k)Hz,每个声道可同时携带不同的信号.而杜比定向逻辑环绕声是单声道环绕声,各声道频响范围较窄,限制在(100-7000)Hz,只能左至右,前至后地动向控制,各声道之间分离度也不够高,信噪比较差系统基本上也是杜比环绕的多声道,后置的环绕声道仍是仅约7kHz带宽的单声道,不是真正的立体声只是利用独特电路对杜比定向逻辑作了改进性的后期处理,使杜比环绕声的记录效果更好些,更接近于电影院的效果.例如增加了超低音的输出,将环绕声拟成立体声,高音区作了校正等.而杜比AC-3做了重大变化,它从开始记录音频信号就采用了新的音响系统----5.1声道.它输出的超低音是由原始的4声道中分离出来的,不是单轨录制的音响效果。 实际上,DSP和THX仅是满足了AV立体声的部份要求,它们产生的效果是一种失真的,被夸张的音响效果.雅马哈的DSP和杜比定向逻辑球绕声有共同点,都是以牺牲后置声道的清晰度来体现前方3个声道的音像清晰度,它们对非前方的声道的音像定位表达比较模糊,只能进行一般影视对话和单一的背景性很强的音源的还原.它们都要求较大的听音房间,应在聆听者背后1.5m以上的地方设置环绕音箱.今天,杜比AC-3的5.1声道编码还原系统比较好地解决了这个问题,它将各声道的声音传输进行校准,使各声道的声音好像经过了相同距离到达聆听者,因而可产生更佳的音像效果,使聆听者产生特殊的刺激和投入感,这是一种极为理想的家庭影院效果.杜比环绕声也是杜比公司开发的一种音频格式,在杜比数码之前应用十分广泛,所以很多AV扩音机都有杜比环绕声功能的,但是现在的带杜比数码功能的AV扩音机也一般同时有杜比环绕声的功能.杜比环绕声还有一种模式叫杜比定向逻辑环绕声(Dolby Surround ProLogic)可以提供更加好的环绕购买前一定要仔细留意AV扩音机上的LOGO和英文字样.请大家注意:目前相当多的国产杜比认证的扩音机不带Dolby digital解码,只是带(Dolby surround)解码器。
5.1在呼市去哪玩,最好自然点的地方?
辉腾锡勒草原草原位于乌盟察右中旗中南部,距呼和浩特135公里。 辉腾锡勒,蒙古语意为“寒冷的高原”。 海拔1800多米,东西长100公里。 草原上有99个天然湖泊,点缀在碧绿的草原上,既有牧区草原苍茫雄浑的格调,又有江南水乡明媚清秀的色彩。 这里青山秀水,瑰丽多姿。 每年五月至九月,鲜花遍地,成为花的海洋。 美丽图沟有座天然洞府,山洞离地面垂直高度100多米,洞内可容纳近百人。 怪石嶙峋的黑山,有大小岩洞99个,最大可容纳200—300人。 草原活动项目有:骑马、乘驼、射箭、射击;参观蒙古式摔跤,登敖包山,到牧民家作客,品尝民族风味的奶食和奶茶、吃手扒肉、喝马奶酒等。 交 通:从呼和浩特到辉腾锡勒草原草原135公里,需要3个小时的车程。 中旗到黄花沟大约半小时。 1、可以选择从呼和浩特坐长途汽车到乌兰察布盟察右中旗(简称乌中旗),然后从乌中旗包车去辉腾希勒草原。 或者从乌中旗做去卓资山的班车。 乌中旗至卓资山的公路南北纵穿辉腾希勒草原,各种旅游点、大风车均在公路两侧。 呼和浩特至中旗长途车参考票价20元乌中旗包车至辉腾希勒草原黄花沟景点处参考费用 40元2、可以先坐火车到卓资山。 然后从车站前包小面包前往辉腾希勒草原,推荐这样走,比较省时间,也可以从卓资山做去中旗的班车,路上经过“大北沟白桦林旅游点”、“九十九泉旅游点”,然后就可以看到草原了。 呼和浩特至卓资山的火车票价7元卓资山车站包车去辉腾希勒草原参考费用50元呼和浩特希拉穆仁草原希拉穆仁,蒙语意为“黄色的河”,位于呼和浩特市北80公里处,乌兰察布盟达尔罕茂明安联合旗境内,是内蒙古著名的草原旅游点。 从呼和浩特乘车约一个多小时就能到达希拉穆仁草原。 希拉穆仁草原俗称“召河”,因在希拉穆仁河边有清代喇嘛庙“普会寺”而得名。 “普会寺”原为呼和浩特席力图召六世活佛的避暑行宫,建于乾隆34年(公元1769年),寺内三重殿阁,雕梁画栋,非常壮观。 普会寺背后环绕着希拉穆仁河,跨过河上大桥可达阿勒宾敖包山上观赏美丽的草原风光。 交通从呼和浩特到希拉穆仁草原约100公里,乘坐汽车翻越大青山即可到达希拉穆仁草原,车程约2.5小时。 就好包车前往或者跟团。
发表评论