云平台队列服务-Qbus实践

栏目: IT技术 · 发布时间: 3年前

内容简介:点击蓝字关注我们

云平台队列服务-Qbus实践

点击蓝字关注我们

本篇文章 从Qbus服务介绍、架构、使用场景开展, 涉及到队列底层具体实现原理, 只讲把Qbus服务上 到私有云的过程,希望给有相同需求的各位带来一点有价值的东西。下来就跟随作者一同学习下吧。

1

服务介绍

Qbus作为云平台队列服务,服务于公司各个业务线,目前 每天流量PB+ , topic 1W

Qbus以kafka组件为核心,及其周边配套服务 ,包括 日志收集 各种语言的sdk 持久化存储到hdfs 业务定制监控 等服务。

2

使用场景

场景广泛,包括日志系统,打点服务,大数据,流处理等常见场景。主要作用为   服务解耦 消息通讯 流量削峰   等。

3

服务架构

云平台队列服务-Qbus实践

4

业务接入方法

读写客户端主要有以下三种:

  • 日志收集;

  • sdk 写入;

  • 其他组件或者平台的读写(比如flink,hadoop);

其中前两种,可以直接在云平台提交工单,自动审核通过。第三种需要人工沟通,我们提供多版本集群,适配更多业务平台。

5

服务具体实现

其中我结合整个服务的实现。说一下我们主要做了的东西,及遇到的问题。这篇只讲解决方案。不涉及到具体细节。

日志收集组件:

日志收集使用 logstash 组件做了定制, filebeat 版在研发马上上线。

一般用户在云平台申请了日志收集的 topic ,填写了机器,与收集路径,就会生成一个自动工单,由命令系统自动去业务机器安装logstash。当然还包括日常的路径增删改查,这些由我们为云平台提供接口来实现。

定制功能包括

  • 配置统一管理,自动更新;

  • 收集进度汇报;

  • 服务自检;

  • 日志头添加机器名,特殊日志归并;

  • bug 修改;

配置存放在云平台配置中心。

状态展示如图:

云平台队列服务-Qbus实践

6

SDK

SDK是组内自研的。kafka-bridge 目前已经开源。欢迎大家使用。

定制功能包括

  • 使用VIP代替broker_list;

  • 更强大的错误处理,当有不可用副本时候直接跳过;

  • 相关参数优化;

7

持续化保存到HDFS

这是 Qbus队列周边的配套服务,提供持久化到HDFS的功能。

HDFS我们直接用的兄弟部门的平台。

服务架构如下:

云平台队列服务-Qbus实践

如图示,主要实现了以下内容:

  • 消费组件使用 flume , 我们给他做了容器化;

  • 相关配置存放在云平台配置中心 ,支持动态更改;

  • 我们在外围增加了一个动态调整工具,实时监控消费状态,自动的加减副本;

  • 还做了历史状态保存,统一展示,做到有据可查;

这样用户只需要在页面点一下开通或者关闭,就可以了,非常方便。

云平台队列服务-Qbus实践

8

监控服务

监控服务作为整体服务的基础,为整体服务提供数据支撑,包括上层的动态调整工具,都非常依赖监控。

当然业务们也有权限在云平台查看自己topic的流量情况。   云平台队列服务-Qbus实践

监控服务我们主要使用了 Prometheus

如图:

云平台队列服务-Qbus实践

对它做了以下改造:

  • 根据业务水平切分为多个进程,做HA;

  • 统一的后端存储(influxdb 集群);

  • prometheus 前增加了nginx做反向代理;

  • 增加权限验证;

这样为上层提供稳定的监控数据接口。

9

总结和展望

在Qbus 服务依托云平台已经做到了工单全自动,除非kafka集群故障需要人工处理。

但是随着越来越多的业务都把服务上到容器平台之后,横向扩容变得非常迅捷,频繁,异常处理也可能不太合理,这也对基础服务带来了更多的挑战。

基础服务要做的更加健壮,才能应付这一切。

这其中包括:

  • 更迅速的扩容,迁移能力;

  • 更丰富的业务隔离;

  • 更强大的客户端兼容;

说到这里,更期待 pulsar 加入到新版本的qbus了。

往期精彩回顾

Golang开发入门(一)

云平台队列服务-Qbus实践
云平台队列服务-Qbus实践

360技术公众号

技术干货|一手资讯|精彩活动

扫码关注我们


以上所述就是小编给大家介绍的《云平台队列服务-Qbus实践》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java语言程序设计

Java语言程序设计

(美) Y. Daniel Liang / 李娜 / 机械工业出版社 / 2011-6 / 75.00元

本书是Java语言的经典教材,多年来畅销不衰。本书全面整合了Java 6的特性,采用“基础优先,问题驱动”的教学方式,循序渐进地介绍了程序设计基础、解决问题的方法、面向对象程序设计、图形用户界面设计、异常处理、I/O和递归等内容。此外,本书还全面且深入地覆盖了一些高级主题,包括算法和数据结构、多线程、网络、国际化、高级GUI等内容。 本书中文版由《Java语言程序设计:基础篇》和《Java语......一起来看看 《Java语言程序设计》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具