女主宣言

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

PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!

1

服务介绍

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

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

2

使用场景

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

3

服务架构

4

业务接入方法

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

  • 日志收集;

  • sdk 写入;

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

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

5

服务具体实现

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

日志收集组件:

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

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

定制功能包括:

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

  • 收集进度汇报;

  • 服务自检;

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

  • bug 修改;

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

状态展示如图:

6

SDK

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

定制功能包括

  • 使用VIP代替broker_list;

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

  • 相关参数优化;

7

持续化保存到HDFS

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

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

服务架构如下:

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

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

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

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

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

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

8

监控服务

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

当然业务们也有权限在云平台查看自己topic的流量情况。 

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

如图:

对它做了以下改造:

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

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

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

  • 增加权限验证;

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

总结&展望

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

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

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

这其中包括:

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

  • 更丰富的业务隔离;

  • 更强大的客户端兼容;

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

360云计算

由360云平台团队打造的技术分享公众号,内容涉及数据库、大数据、微服务、容器、AIOps、IoT等众多技术领域,通过夯实的技术积累和丰富的一线实战经验,为你带来最有料的技术分享

云平台队列服务-Qbus实践相关推荐

  1. 什么是容器服务_携程万台规模容器云平台运维管理实践

    *本文来自于周昕毅在GOPS全球运维大会上的分享,由高效运维公众号整理,略有修改* 前言 本文将分享携程在私有云平台管理实践过程中踩过的坑和遇到的问题,包含: 第一部分,携程容器云概览 第二部分,容器 ...

  2. 微软云平台媒体服务实践系列 2- 使用动态封装为iOS, Android , Windows 等多平台提供视频点播(VoD)方案...

    文章微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案  介绍了如何针对少数iOS, Android 客户端的场景,出于节约成本的目的使用媒体服务的静 ...

  3. 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案...

    微软的云平台媒体服务为流媒体服务提供了多种选择,在使用流媒体服务为企业做流媒体方案时,首先需要确认要流媒体接收目标,如针对广大iOS, Android移动设备,由于它们都支持HLS 格式的流媒体,基于 ...

  4. 网易容器云平台的微服务化实践

    摘要:网易云容器平台期望能给实施了微服务架构的团队提供完整的解决方案和闭环的用户体验,为此从 2016 年开始,我们容器服务团队内部率先开始进行 dogfooding 实践,看看容器云平台能不能支撑得 ...

  5. 网易容器云平台的微服务化实践(一)

    此文已由作者冯常健授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 摘要:网易云容器平台期望能给实施了微服务架构的团队提供完整的解决方案和闭环的用户体验,为此从 2016 年开 ...

  6. 搭建云平台(一) 云平台基础服务部署

    最近因课程要求,自己动手搭了一个OpenStack云平台,我将整个过程分了六篇博客.我使用了两个CentOS的虚拟机,一个作为计算节点,一个作为控制节点,整体过程比较繁杂,有心人可以细心看一看 1.修 ...

  7. 5G MEC边缘云平台架构及商用实践白皮书丨附下载

    4月29日,中国联通"首张MEC规模商用网络暨生态合作发布会"成功在云端举办.本次大会以"5G新基建,智胜在边缘"为主题,中国联通携手华为.Intel.腾讯.中 ...

  8. AWS云平台的服务概览

    当我们向别人解释AWS云平台所包含的那些服务的时候,许多人对AWS服务种类的丰富程度都表示惊讶.对于部分听说过AWS的人来说,他们知道AWS云平台的功能主要限于EC2(弹性计算云).S3(简单存储服务 ...

  9. 在虚拟机上搭建云平台环境(7)云平台组件服务安装

    在虚拟机上搭建云平台环境(7)云平台组件服务安装 本文涉及到代码复制,粘贴.CSDN中会复制多余信息导致出错,选择删除多余信息,或者去我的Blog添加配置 https://julur.github.i ...

最新文章

  1. 干货!仅有 100k 参数的高效显著性检测方法
  2. 实战:动手搭建一个开源动作相机
  3. 查找谁在使用文件系统
  4. Java集合总结【面试题+脑图】,将知识点一网打尽!
  5. setmonth_日期setMonth()方法以及JavaScript中的示例
  6. 语音识别现在发展到什么阶段了?
  7. java web 题_Java+web考试题预备
  8. 提高linux运行速度,教你如何提高Linux操作系统的运行速度
  9. python将变量写入文件_python 如何把变量写入文件
  10. java实现蒲丰投针求,用程序模拟蒲丰投针试验
  11. 深度学习FlappyBird环境搭建
  12. #把一个数把各个位数拆取出来
  13. 计算机附件计算器的用法,计算机附件中的计算器使用方法.doc
  14. android点击号码打电话,android-拨打电话单击一个按钮
  15. 松耦合(Loose coupling)笔记
  16. JavaWeb在线考试系统(简单版)
  17. iOS开发技巧--iOS app 上架(2016年10月底)以及版本迭代上架
  18. 我的Android前生今世之缘-学习经验-安卓教程(六)
  19. linux下smbd安装使用
  20. 2022.3.17内容总结

热门文章

  1. zoj 1406 Jungle Roads
  2. J2ME的移动支付系统的客户端的实现
  3. Android学习之碎片与活动之间的通信
  4. 【转载】Kerberos原理--经典对话
  5. 一样入职的应届生工资不一样_为什么每月工资一样,但扣的个税不一样?
  6. get请求中传json参数报400的错误_诡异 | Spark使用get_json_object函数
  7. Android字节码替换方法,滴滴开源 DroidAssist : 轻量级 Android 字节码编辑插件
  8. mysql jdbc 多数据源_springboot jdbc连接多个数据源
  9. 矩阵论思维导图_全新思维导图
  10. 8.0强行转换后变成了7_如何在服务器上安装SSL证书,让你的网站变成https