MetaQ

MetaQ

简介:

  • 概念:MetaQ是一款分布式、队列模型的消息中间件。
  • 模式:分为Topic与Queue两种模式
  • 消费方式:Push和Pull两种方式消费
  • 特点:支持严格的消息顺序,亿级别的堆积能力,支持消息回溯和多个维度的消息查询。

影响性能的关键几点

  • 序列化与反序列化
    从MetaQ Cleint要发送消息,必须要先序列化,然后才能通过网络发送出去。 MetaQ Server收到消息后,要进行反序列化,才能解析出消息内容,最后序列化存储到文件系统。
    MetaQ Client收到消息,首页MetaQ Server必须从文件中读取消息,然后通过网络发送给MetaQ Client,收到消息,进行反序列化,应用才能识别消息内容。
    MetaQ核心功能,都要通过序列化与反序列化,所以其性能,对MetaQ性能有关键性的影响,其实不是对MetaQ,只要使用了序列化与反序列化,其对性能影响都很大。
    虽然使用Google的Protocol Buffers性能会更好,但各个版本不兼容。所以MetaQ选择使用JSON
  • write性能
    因为MetaQ Server会有大量的write系统调用 ,所以其性能对MetaQ性能有着重要的影响。
    优化:
  • MetaQ消息只保留在一个物理文件上,所有的消息都会写一个物理文件,每个物理文件都是固定大小,超过设置的阀值后,自动创建新的一个文件。当磁盘快满时,会自动删除老的文件。
  • read性能
    因为MetaQ Server会有大量的read系统调用 ,所以其性能对MetaQ性能有着重要的影响。
    优化:
  • read优化主要是使用了map文件映射技术。这样可以减少系统上下文切换和复制数据的开销。
  • 同时文件系统提供了文件预读的功能,也使的读取文件开销,特别是顺序读时,开销比较低。
  • 网络框架
    因为发送消息,订阅消息都必须经过网络,如果网络组件性能不好,对MetaQ性能有着关键的影响。
  • MetaQ的网络框架,选择了Netty4。Netty4因出色的性能和易用性,成为高性能场景的不二选择。

Group Commit技术

  • Group Commit也就是组提交,组提交是指可以多次分写请求只要通过一次刷新数据,就可以实现这些请求的数据都已刷新到磁盘上。
  • MySQL数据库能保证ACID,事务提交也使用了Group Commit来提高性能(为了保证D,数据需要持久化到文件系统)。

MetaQ学习笔记

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,537评论 19 139
  • 本文转载自http://dataunion.org/?p=9307 背景介绍Kafka简介Kafka是一种分布式的...
    Bottle丶Fish阅读 5,583评论 0 34
  • Kafka入门经典教程-Kafka-about云开发 http://www.aboutyun.com/threa...
    葡萄喃喃呓语阅读 10,981评论 4 54
  • Kafka系列一- Kafka背景及架构介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统。...
    raincoffee阅读 2,335评论 0 22
  • 我一直都没意识到,忽然有一天我会没时间爱你,或者说我的心里忽然安放不了你了。 大理回来,我心中缺失很久的自我慢...
    美琪的故事阅读 184评论 0 0

友情链接更多精彩内容