zookeeper 和 metamorphosis 研究完成
目前搭建的环境是在 2台 ubuntu server 64下 简称 USA USB ...
USA下 安装了 server1 server3 目录 分别是两个 zookeeper metamorphosis消息中间件
USB下 安装了 server2 目录 一个zookeeper metamorphosis消息中间件
3个zookeeper 形成一个集群 metamorphosis也是通过 zookeeper形成集群
zookeeper 是2n+1 可以容许n台机器故障
metamorphosis 单台机器故障不引想使用
第一阶段 完成的是 zk集群的配置 各种故障测试 和 不同机器数据获取的测试
第二阶段 完成的是 metamorphosis单机的正确 消息传递测试 和 集群配置 及单点故障测试
第三阶段 完成的是 metamorphosis收发消息的细节研究
brokerId是metamorphosis集群中的唯一标识 第一台 我们的唯一标识是1
metamorphosis 的 topic 会发布到 zk的 /meta/brokers/topics 目录下 并且每个消息可以有多个区
被命名为 0,0-m 如果有另一台集群机器 brokerId 为 1 那么 消息为 0,0-m,1,1-m
也就是说两个消息中间件发布同一个消息名称的话 会被认为是要做一个 消息集群
在客户端发布消息的时候 会按照 0-1 0-2 0-3...1-1...1-m的 顺序区间去发布(可以自定义) 发布者发布的消息在服务端写入磁盘被认为成功返回成功消息(不一定落到磁盘设备)
客户端消费者采取的pull方式 这种方式和寻常的消费者监听不一样 而是主动的定时去查看 zk下的信息 并拉下来(落到磁盘设备的消息)
上面就产生了一个 我看了很久的问题 就是 metamorphosis默认设置是 1000条 强制写入磁盘设备一次 或者10秒强制写入 一次 磁盘设备 导致我发布者发布消息并成功很快 接收消息却总是延迟
后来邮件咨询了下 淘宝团队的工程师 才知道以上原因 (应该是淘宝的队列中总是瞬间有很多消息 所以默认都设置的比较注重吞吐量)
这里就有一个问题 pull方式的消息接收可能比较适合 并发处理量特别大的系统 对小系统可能 却消耗比较大
发布者的发布负载均衡策略是 分区轮询
消费者的消费负载均衡策略是 消费者数目 大于 分区时 消费者1对1分区 多余的消费者闲着 消费者小于分区时 有部分消费者 可能要1对n分区
分享到:
相关推荐
《Zookeeper 3.4.5与Metamorphosis Server Wrapper深度解析》 在IT行业中,Zookeeper和Metamorphosis作为重要的分布式中间件,扮演着数据协调和消息队列的关键角色。本篇将深入探讨Zookeeper 3.4.5版本以及与其相关...
* Zookeeper:负责分布式配置和故障恢复 * Meta Server:负责元数据管理 * Meta Client:负责客户端管理 * Meta Manager:负责集群管理 优缺点 Metamorphosis的优点包括: * 无状态 * 消息存储顺序写,性能极高 *...
淘宝消息队列metamorphosis使用,下载java项目后查看readme.txt文本配置zookeeper,metaq后在测试代码修改下自己的配置即可执行demo,可以通过生产者生产消息,消费者消费消息
1. **服务发现**:利用Diamond和Zookeeper自动发现Meta服务器的地址列表。 2. **连接管理**:创建和销毁到Meta服务器的连接,实现连接复用。 3. **消息存储与恢复**:管理消息消费者的状态,方便消息的持久化和恢复...
生成的服务端所需内容会出现在目标目录下的`taobao-metamorphosis-server-wrapper.dir`或不带扩展名的`taobao-metamorphosis-server.dir`。 - **独立工程打包**:对于其他独立工程,进入其目录,同样执行`mvn -U -...
3. 交易柔性事务支付宝的开源分布式消息中间件–Metamorphosis(MetaQ):负责处理交易消息的传输和处理,包括消息存储、顺序写、吞吐量大和支持本地和XA事务等功能。 Metamorphosis(MetaQ) 介绍: Metamorphosis...
主工程的打包命令是`mvn -U -Dtest -DfailIfNoTests=false clean install package assembly:assembly`,这将生成所有需要的服务端文件,包括`taobao-metamorphosis-server-wrapper.dir`或不带扩展的`taobao-...
它负责服务发现(通过Diamond和Zookeeper),连接管理和复用,消息存储和恢复,以及资源协调与管理。推荐全局共享一个MessageSessionFactory实例。 8. **消息生产者示例**: - 以下代码展示了如何创建和使用一个...
- **灵活的offset存储**:除了常见的数据库存储方式外,MetaQ还支持磁盘存储、Zookeeper存储等多种offset存储方式,甚至允许用户根据自身需求定制存储方案。 - **配套项目**:为了进一步提升MetaQ的易用性和扩展性,...
启动: 启动mongo: mongod 启动Kafka服务器: kafka-server-start /usr/local/etc/kafka/server.properties 创建Kafka主题: kafka-topics --list --zookeeper localhost --topic metamorphosis 启动生产者: ...