本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- siemens800
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
最新文章列表
MetaQ技术内幕——源码分析(七)
前面介绍了Broker在网络传输过程中使用的数据结构,同时也介绍了MetaQ使用了Gecko框架作为网络传输框架。
有人会问,Gecko什么调用MetaEncodeCommand的encode()方法,让命令变成可见的明文在网络传输,Gecko又在什么时候将网络传输的数据包装成一个个Command对象?
或许有人已经注意到了笔者在介绍Broker启动类MetaMorphosisBroker的 ...
MetaQ技术内幕——源码分析(六)
前面介绍过MetaQ使用gecko框架作为网络传输框架,Gecko采用请求/响应的方式组织传输。MetaQ依据定义了请求和响应的命令,由于命令Client和Broker均需要使用,所以放在了common工程的类MetaEncodeCommand中:
Java代码
public String GET_CMD = "get"; //请求数据请求
public ...
MetaQ技术内幕——源码分析(五)
Broker接收从Producer(Client端)发送的消息,也能够返回消息到Consumer(Client),对于Broker来说,就是网络输入输出流的处理。
Broker使用淘宝内部的gecko框架作为网络传输框架,gecko是一个NIO框架,能够支持一下特性:
1、 可自定义协议,协议可扩展、紧凑、高效
2、 可自动管理重连,重连由客户端发起
3、 需进行心跳检测,及时发现连接失 ...
MetaQ技术内幕——源码分析(四)
前面,我们已经把Broker存储最重要的一个类具体分析了一遍,接下来,我们分析一下其删除的策略。前面介绍过Messagestore采用的多文件存储的组织方式,而存储空间不可能无限大,得有一定的删除策略对其进行删除以腾出空间给新的消息。
MetaQ允许自定义删除策略,需要实现接口DeletePolicy,默认提供了两种删除策略:过期删除(DiscardDeletePolicy)和过期打包删除(A ...
MetaQ技术内幕——源码分析(三)
前面忘了先介绍一下Broker消息存储的组织方式,我们前面知道了一条消息属于某个Topic下的某个分区,消息存储的组织方式是按照此方式进行组织的,结构图如下:
所以对于每个Topic而言,分区是最小的元素,对外API主要由MessageStore提供,一个MessageStore实例代表一个分区的实例,分区存储具体的内容。在MetaQ中,分区的存储采用的多文件的方式进行组合,即Mes ...
MetaQ技术内幕——源码分析(二)
消息,是MetaQ最重要的资源,在分析MetaQ之前必须了解的概念,我们所做的一切都是围绕消息进行的,让我们看看MetaQ中消息的定义是怎样的,MetaQ的类Message定义了消息的格式:
Java代码
MetaQ技术内情——源码分析(一)
MetaQ技术内幕——源码分析(一)
笔者最近在业务上需要使用到MetaQ,也借此阅读了MetaQ的相关源码,准备分享MetaQ源码分析。先扫扫盲,如果读者对MetaQ已经较为熟悉,可以跳过下一段落。
一、MetaQ简介
MetaQ(全称Metamorphosis)是一个高性能、高可用、可扩展的分布式消息中间件,,MetaQ具有消息存储顺序写、吞吐量大和支持本地和XA事务等特 ...
简单例子-metaq
示例源码
源码地址:
metamorphosis-example
Example
消息中间件中有两个角色:消息生产者和消息消费者。Meta里同样有这两个概念,消息生产者负责创建消息并发送到meta服务器,meta服务器会将消息持久化到磁盘,消息消费者从meta服务器拉取消息并提交给应用消费。我们假设你已经部署了你的meta服务器,参见
Java advancetopics-metaq
本指南以1.4.5版本的java客户端为起点编写。
简单例子
消息
客户端配置
会话工厂MessageSessionFactory
发送消息MessageProducer
订阅消息MessageConsumer
遍历消息TopicBrowser
Spring框架支持
高级主题
这里包括一些MetaQ的高级应用,比如使用log4j appender发送消息作为日志框架,Tw ...
Metaq服务器端的配置说明server.ini
注:从metaq官网copy下来,便于查看;
地址:https://github.com/killme2008/Metamorphosis/wiki/%E9%85%8D%E7%BD%AE%E7%AE%A1%E7%90%86
配置管理
Web管理平台
从1.4.5开始,MetaQ提供了一个Web管理平台,默认运行在8120端口,你可以通过浏览器访问
淘宝MetaQ开源消息队列安装
前提:: 安装zookeeper 首先你需要搭建自己的zookeeper集群,meta利用zookeeper做服务的注册和发现,以及默认情况下offset的存储。 安装java运行环境 第一步:下载安装包从这里下载最新的metamorphosis服务器可运行包并在某个目录解压缩(或者checkout源码按上面的步骤打包出来)。解压出来的结构大概是这样 -你的目录 -taobao -metamor ...