Strata Data Conference 是全球具有影响力的技术峰会,本届于 2019 年 9 月 23 - 26 日在美国纽约举办。峰会汇集了全球范围内的大数据、云计算、机器学习等前沿科技团队,演讲嘉宾来自 Google,IBM,Microsoft,AWS,Intel,Oracle,Facebook,Cloudera 等企业的技术团队。

9 月 25 日,中国电信甜橙金融首席科学家、大数据部人工智能研究院院长谢巍盛和 StreamNative CTO 翟佳分享了 Apache Pulsar 在甜橙金融的应用:How Orange Financial combats financial fraud over 50M transactions a day using Apache Pulsar。分享嘉宾向行业展示甜橙金融在大数据风控场景下的创新实践,成为现场各方关注的焦点。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

甜橙金融成立于 2011 年 3 月,是互联网金融行业领先的创新企业,是中国人民银行核准的第三方支付机构、中国证监会核准的基金支付结算机构。


甜橙金融作为中国电信布局互联网金融科技生态圈的主体,旗下设翼支付、甜橙信用、橙分期、甜橙小贷、甜橙理财、交费易等子品牌。目前甜橙金融有超 5 亿注册用户,每月活跃用户超过 4 千万。 

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

其中翼支付已经成为当前国内第二大个人移动支付 APP。依托中国电信强大平台优势和巨大用户体量,甜橙金融多年来专注在大数据、人工智能等前沿技术领域的研发探索,投入大量资源,在大数据反欺诈领域形成了独特体系,并取得了业界瞩目的成果。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗
当前业内互联网金融公司每天都会面临金融诈骗,例如身份盗窃、洗钱、会员欺诈、商户欺诈等。随着中国用户手机支付的应用场景和普及率逐渐增大,对金融安全的控制就需要更加重视。下图展示了国内移动支付市场近年的增长情况。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

移动支付在电商,金融,交通出行及零售等各领域的渗透率也在逐年升高。简单便捷的支付手段是移动支付得以快速发展的主要原因,扫码支付是当前最常用的移动支付方式,用户通过扫码就能在瞬间完成一笔交易。


甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

>>> ????挑战 <<<

移动支付带来便利的同时,也为后台的风控系统带来了严峻的挑战。看似瞬时完成的交易,其背后往往经过了成百上千的策略运算,用以控制金融风险。在手机支付业务上,甜橙金融遇到如下挑战:


  • 高并发:每天的交易量超过 5000 万,每天处理 10 亿+ 事件(高峰期达到 35K/s)。
  • 低延迟:响应速度要控制在 200ms 内。
  • 大量的批处理作业和流处理作业。例如要计算一个商户上个月的交易总量,需要统计过去 29 天的交易总量(批处理)和当天的交易总量(流处理)。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

在这类场景下 Lambda 是业内绝大多数公司采用的架构。之前,甜橙金融也采用了 Lambda 架构进行风险指标开发,诸如每月平均消费频率和金额数,最后一分钟、最后一个月和一年的登录频率或是两次转账之间的时间间隔等等。

其中一些指标需要回溯大量历史数据,这些数据存储在 Hive 中,并且通常以批处理方式计算(例如,在这种情况下为 Presto)。一些指标取决于当前交易中的数据,并且当前交易的决策需要这些指标;实时交易数据存储在消息队列(例如 Kafka)中,流计算被广泛采用(例如 Spark 流)。


甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

>>> ????不足 <<<

Lambda 采用这种体系结构需要维护 Kafka、Hive、Spark、Flink 等多个集群,也要求 Engineer 在 Scala、Java 和 SQL 等语言间来回切换。Kafka 尝试通过仅保留一个代码库而不是为 Lambda 体系结构中的每个批次管理一个代码库和速度层来简化。

 

这种架构的复杂性主要围绕必须处理流中的数据,例如处理重复事件、交叉引用事件或维护顺序,这些操作通常在批处理中更容易进行。尽管如此,公司仍在寻求一种解决方案,该解决方案可以统一数据存储,计算引擎和编程语言,降低系统复杂度进而能够在开发中提升实际生产效率并降低成本。


甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

为了应对目前的业务挑战,简化业务流程,严格控制金融风险,甜橙金融对 Apache Pulsar 进行了调研。

1.云原生架构和以 Segment 为中心的分片存储

Apache Pulsar 采用了计算和存储分层的架构和以 Segment 为中心的分片存储。Pulsar 集群由两层组成:无状态服务层,由一组接受和传递消息的 broker 组成;分布式存储层,由一组名为 bookies 的 Apache BookKeeper 存储节点组成,具备高可用、强一致、低延时的特点。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

Pulsar 基于主题分区(Topic partition)的逻辑概念进行主题数据的存储。Kafka 的物理存储也是以分区为单位,每个 partition 必须作为一个整体(一个目录)被存储在一个 broker 上,而 Pulsar 的每个主题分区本质上都是存储在 BookKeeper 上的分布式日志,每个日志又被分成分段(Segment)。每个 Segment 作为 BookKeeper 上的一个 Ledger,均匀分布并存储在多个 bookie 中。

存储分层的架构和以 Segment 为中心的分片存储是 Pulsar 的两个关键设计理念。因此 Pulsar 有很多重要的优势:无限制的主题分区、存储即时扩展,无需数据迁移、无缝 broker 故障恢复、无缝集群扩展、无缝的存储(Bookie)故障恢复和独立的可扩展性。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

2.Pulsar 提供了两种级别的 API 读,发布-订阅来处理流计算,Segment 处理批计算。

在流计算中,Pulsar 基于发布订阅模式(pub-sub)构建,生产者(producer)发布消息(message)到主题(topic),消费者可以订阅主题,处理收到的消息,并在消息处理完成后发送确认(Ack)

Pulsar 提供了四种订阅类型,它们可以共存在同一个主题上,以订阅名进行区分:

  • 独享(exclusive)订阅——一个订阅名下同时只能有一个消费者。
  • 共享(shared)订阅——可以由多个消费者订阅,每个消费者接收其中一部分消息。
  • 失效备援(failover)订阅——允许多个消费者连接到同一个主题,但只有一个消费者能够接收消息。只有在当前消费者发生失效时,其他消费者才开始接收消息。
  • 键划分(key-shared)订阅——多个消费者连接到同一主题,相同 Key 总会发送给同一个消费者。

在批处理过程中,Pulsar 以 Segment 为中心,从存储层(BookKeeper 或分层存储)读取数据。

经过深入调研后,甜橙金融采用了基于 Apache Pulsar 的数据处理架构:使用 Pulsar 存储数据,使用 Spark 作为计算引擎,采用统一的 API 。

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

>>> ????Pulsar + Spark 结合使用 <<<

Spark 2.2.0 版本 Structured Streaming 正式发布后,为 Spark 的批流统一提供了基础。对于实时数据,可以通过 Spark Structured Streaming 来读取 Pulsar 中的数据。对于历史数据,可以通过 Spark SQL 来交互查询 Pulsar 中的数据。

   

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

在对系统架构的升级过程中,主要涉及到两个方面的内容。 


一方面是把原有 λ 架构中的数据导入到 Pulsar 中。对于实时数据处理中 Kafka 数据的导入,使用了 StreamNative 开源的 pulsar-io-kafka(https://github.com/streamnative/pulsar-io-kafka) 项目,把 Kakfa 中的数据读出并写入到 Pulsar 中。

对于批处理中 Hive 数据的导入,使用了 StreamNative 开源的另一个项目 pulsar-spark(https://github.com/streamnative/pulsar-spark),直接利用 Spark 来查询 Hive 中的数据,并将查询结果以 AVRO 格式的 Schema 存入 Pulsar 中。

另一方面是采用新的架构来处理 Pulsar 中的带有 AVRO 信息的记录,用 Spark Structured Streaming 做实时处理,用 Spark SQL 进行批处理和交互式查询。

这种新的解决方案具备统一的计算引擎,数据存储及开发语言,相比于 Lambda 极大降低了系统复杂度,具体优势如下:

  • 复杂度下降了33%(集群数量从 6 个减少到 4 个)
  • 存储空间节省了8.7%(预计为 28%)
  • 数据科学家的生产效率提高了 11 倍(支持流 SQL )
  • 统一的架构带来了更高的稳定性

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

智慧金融成为大势所趋,协作共赢成为互联网金融生态圈发展的主旋律,甜橙金融以创新的金融科技成果结合场景需求,为商户、消费者带来安全、便捷、高效的服务,为行业风控保驾护航。

Apache Pulsar 是一个云原生的消息流系统,具有多层架构,采用分片(Segment)为中心的存储。Pulsar 支持两种级别的读 API:发布/订阅+ Segment;提供统一数据视图。把 Pulsar 和 Spark 结合使用,可以统一数据处理,简化操作。

>>> ????参考信息 <<< 

  • pulsar-io-kafka????https://github.com/streamnative/pulsar-io-kafka

  • pulsar-spark????https://github.com/streamnative/pulsar-spark

  • Apache Pulsar as One Storage System for Both Real-time and Historical Data Analysis????https://medium.com/streamnative/apache-pulsar-as-one-storage-455222c590

作者 | 谢巍盛、翟佳
审校 | Growth
编辑 | Sylvia

猜你喜欢

1、

2、

3、

4、

甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

过往记忆大数据微信群,请添加微信:fangzhen0219,备注【进群】

相关文章:

  • 2021-10-12
  • 2021-06-05
  • 2021-11-27
  • 2021-11-07
  • 2021-10-22
  • 2019-11-01
  • 2021-06-02
  • 2021-10-25
猜你喜欢
  • 2022-01-16
  • 2021-10-01
  • 2021-09-17
  • 2021-05-28
  • 2021-09-14
  • 2021-12-15
  • 2021-06-27
相关资源
相似解决方案