微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WQS 消息服务中间件

程序名称:WQS

授权协议: Apache 2.0

操作系统: 跨平台

开发语言: Google Go

WQS 介绍

WQS 是微博开源的消息服务中间件。

  1. 多租户支持

  2. 多 IDC 支持

  3. 多协议支持 memcached、http 1/2、motan

  4. 轻客户端。(去 zk 依赖、无 partition 感知)

  5. 支持 pub/sub、long polling、pipeline;

  6. 支持 TTL;

  7. 支持 filter。

WQS 目前支持多 IDC 部署,创建队列时选取响应的配置表明该队列是否需要多 IDC 功能支持,当 WQS 集群跨 IDC 部署时:

  • Producer 通过 WQS 实例写消息会时写到与自身实例部署在同一 IDC 内的 Kafka 集群上。

  • Consumer 通过 WQS 实例读消息时,该实例会根据 Queue 的配置来执行响应的行为。

    • 当 Queue 未配置多 IDC 同步时,该实例只会从该实例部署的 IDC 的 Kafka 集群中读取消息

    • 当 Queue 配置多 IDC 同步时,该实例会从用户所配置的 IDC 内的 Kafka 集群上读取消息,且不同 IDC 的 WQS 实例读取同一 Kafka 集群时,会采用相同的 consumer-group-ID。

为兼容老版本配置,则本地 IDC 的 Kafka 配置为:

kafka.zookeeper.connect=localhost:2181
kafka.zookeeper.root=
#本地IDC的名称,只能是英文字母和数字
kafka.idc=idc

其他 IDC 的配置为:

kafka.remote.<your idc name>.zookeeper.connect=xxx.xxx.xxx.xxx:2181/

例如远端 IDC 的名称为abc则:

kafka.remote.abc.zookeeper.connect=xxx.xxx.xxx.xxx:2181/

如果你要创建一个队列,要支持多 IDC 数据同步,队列名为abc,IDC分别为idc1、idc2,则创建命令为

curl -X PUT "http://127.0.0.1:8080/queues/abc" -d '{"idcs":["idc1","idc2"]}'

WQS 官网

https://github.com/weibocom/wqs

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐