PRODUCTS PORTFOLIO

分布式消息队列(CKAFKA)

产品丰富、安全可靠的银联云平台,多达170种产品和服务

产品优势

解耦

有效解耦生产者、消费者之间的关系。在确保同样的接口约束的前提下,允许独立扩展或修改生产者/消费者间的处理过程。

可扩展性

由于消息的处理过程被解耦,只需要水平扩展处理过程,即可有效增加消息的入队效率和处理效率,十分灵活。

削峰填谷

消息队列能够抵挡突增的访问压力,而不会因为突发的超负荷的请求而完全崩溃,有效提升系统健壮性。 

可恢复性

当系统的部分组件出现故障时,整个系统不会因此收到影响,增加了系统的容错能力。及时某一处理消息的进程故障,队列中的消息依然可以在系统恢复后被处理。

顺序读写

Cloud Kafka能够保证一个Partition内消息的有序性,和大部分的消息队列一致,Cloud Kafka可以保证数据按照顺序进行处理,极大提升磁盘效率。

异步通信

在业务无需立即处理消息的场景下,Cloud Kafka提供了消息的异步处理机制,访问量高时仅将消息放入队列中,在访问量降低后再对消息进行处理,缓解系统压力。

产品功能

高吞吐

高吞吐

消息队列 CKafka 中存在大量的网络数据持久化到磁盘和磁盘文件通过网络发送的过程。这一过程的性能直接影响Kafka 的整体吞吐量,主要通过以下几点实现:

1、高效使用磁盘:磁盘中顺序读写数据,提高磁盘利用率。

  • 写 message:消息写到 page cache,由异步线程刷盘。
  • 读 message:消息直接从 page cache 转入 socket 发送出去。
  • 当从 page cache 没有找到相应数据时,此时会产生磁盘 IO,从磁盘加载消息到 page cache,然后直接从socket 发出去。

2、Broker 的零拷贝(Zero Copy)机制:使用 sendfile 系统调用,将数据直接从页缓存发送到网络上。

3、减少网络开销

  • 数据压缩降低网络负载。
  • 批处理机制:Producer 批量向 Broker 写数据、Consumer 批量从 Broker 拉数据。
数据持久化

数据持久化

消息队列 CKafka 的数据持久化主要通过如下原理实现:
1、Topic 中 Partition 存储分布
在消息队列 CKafka 文件存储中,同一 Topic 有多个不同 Partition,每个 Partition 在物理上对应一个文件夹,用户存储该 Partition 中的消息和索引文件。例如,创建两个 Topic,Topic1 中存在5个 Partition,Topic2 中存在10 个 Partition,则整个集群上会相应生成5 + 10 = 15个文件夹。
2、Partition 中文件存储方式
Partition 物理上由多个 segment 组成,每个 segment 大小相等,顺序读写,快速删除过期 segment, 提高磁盘利用率。

水平扩展(Scale Out)

水平扩展(Scale Out)

  • 一个 Topic 可包含多个 Partition,分布在一个或多个 Broker 上。
  • 一个消费者可订阅其中一个或者多个 Partition。
  • Producer 负责将消息均衡分配到对应的 Partition。
  • Partition 内消息是有序的。
Consumer Group

Consumer Group

  • 消息队列 CKafka 不删除已消费的消息。
  • 任何Consumer必须属于一个 Group。
  • 同一Consumer Group中的多个Consumer不同时消费同一个 Partition。
  • 不同 Group 同时消费同一条消息,多元化(队列模式、发布订阅模式)。
多副本

多副本

多副本设计可增强系统可用性、可靠性。
Replica 均匀分布到整个集群,Replica 的算法如下:

  • 将所有 Broker(假设共 n 个 Broker)和待分配的 Partition 排序。
  • 将第 i 个 Partition 分配到第(i mod n)个 Broker 上。
  • 将第 i 个 Partition 的第 j 个 Replica 分配到第((i + j) mode n)个 Broker 上。
Leader Election选举机制

Leader Election选举机制

消息队列 CKafka 在 ZooKeeper 中动态维护了一个 ISR(in-sync replicas),ISR 里的所有 Replica 都跟上了Leader。只有 ISR 里的成员才有被选为 Leader 的可能。

  • ISR 中 f + 1个 Replica,一个 Partition 能在保证不丢失已 commit 的消息的前提下 容忍 f 个 Replica 的失败。
  • 共有 2f + 1个 Replica(包含 Leader 和 Follower),commit 之前必须保证有 f + 1个 Replica 复制完消息,为了保证正确选出新的 Leader,fail 的 Replica 不能超过 f 个。

应用场景

网页追踪

Cloud Kafka通过实时处理网站活动(PV,搜索,用户其他活动等),并根据类型发布到topic中,这些信息流可以被用于实时监控或离线统计分析等。 由于每个用户的page view中会生成许多活动信息,因此网站活动跟踪需要很高的吞吐量,Cloud Kafka可以完美满足高吞吐、离线处理等要求。

日志聚合

Cloud Kafka 提供了低延迟处理、易于支持多个数据源和分布式的数据处理(消费)的特性。相比于中心化的日志聚合系统,Cloud Kafka 可以在提供同样性能的条件下,实现更强的持久化保证以及更低的端到端延迟。 因此,Cloud Kafka 的特性决定它非常适合作为”日志收集中心”;多台主机/应用可以将操作日志”批量”“异步”的发送到 Cloud Kafka 集群中,而无需保存在本地或者 DB 中;Cloud Kafka 可以批量提交消息/压缩消息,这对生产者而言,几乎感觉不到性能的开支。此时 消费者可以使hadoop 等其他系统化的存储和分析系统对拉取日志进行统计分析。

大数据场景

对于一些大数据相关的业务场景而言,需要对大量并发数据进行处理和汇总,此时对集群的处理性能和扩展性都有很高的要求。而Cloud Kafka在实现上,其数据分发机制,磁盘存储空间的分配、消息格式的处理、服务器选择以及数据压缩等方面,也决定其适合处理海量的实时消息,并能汇总分布式应用的数据,方便系统运维。
在具体的大数据场景中,Cloud Kafka能够很好地支持离线数据、流式数据的处理,并能够方便地进行数据聚合、分析等操作。

了解更多银联云

了解更多银联云

7*24 专家为您服务

欢迎致电:021-20638828

cloud@unionpay.com

商业咨询

了解更多银联云

7*24 专家为您服务

欢迎致电: 021-20638828

云助手微信小程序

移动端便捷运营,数据同步零延迟

一键绑定

扫码一键关联,多账号轻松绑定,权限实时可控

掌上运营

关键指标实时掌控,账单资费清晰可查,AI助手随时响应

扫码即刻绑定,体验移动端便捷运营

商业咨询