加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

利用Kafka设置可靠的高性能分布式消息传递基础架构

发布时间:2019-09-12 16:07:49 所属栏目:建站 来源:Irena Kezic 和 Anamarija Talija
导读:世界已经迈进移动时代,现在应用程序必须能够实时提供数据,这不仅包括数据库表中存储的重要最终结果,还包括用户使用应用程序时执行的所有操作。任何可用信息,例如,用户点击量、日志数据或传感器数据都可用于改善用户体验、生成报告、向机器学习系统提

适配器使用来自 Kafka 重试主题的消息,并对其进行重新处理。超出已配置的消息处理重试次数后,该适配器会将此消息传递到 Kafka 死信主题。发送到死信主题的消息包含有价值的业务数据,因此监视该主题至关重要。

利用Kafka设置可靠的高性能分布式消息传递基础架构

传出流

传出流表示由企业应用程序发起的 Kafka 通信。在我们的例子中,这是用于向移动应用程序发送支付确认的通知系统。JCA 规范定义了一个连接管理合约,可让应用程序服务器合并 Kafka 连接,从而提供支持大量客户端的可扩展环境。

Kafka 传出连接配置详细信息是使用 Managed Connection Factory JavaBean 进行定义的。利用这些配置详细信息,管理员和开发者可使用适配器来配置 Kafka 生产者,并决定所需的功能,例如,可靠性、可用性、吞吐量、延迟和事务支持。这些配置详细信息将作为应用程序服务器配置的一部分来进行定义。

Kafka JCA 资源适配器将公开用于实施公共客户端接口 (CCI) 和 Java 消息服务 (JMS) 接口的 Kafka Connection Factory 和 Kafka Connection。应用程序组件会使用 Java 命名和目录接口 (JNDI) 名称来查找连接工厂。成功获取连接工厂后,应用程序会使用它来获取连接,以便访问 Kafka。这样,您就可以为通知系统应用程序无缝添加 Kafka 集成,该应用程序当前将数据发送到 JMS 消息传递提供程序(如 IBM MQ 或 Active MQ)。

资源适配器传出流会封装低级别的 Kafka 通信逻辑,并提供:

  • 连接合并
  • 使用 Kafka 事务性机制来保证仅传递一次
  • 采用稳妥的方式来识别、记录和处理 Kafka 故障
  • 实施 XA 事务,从而在分布式系统中通过 Kafka 提供可靠的消息处理

要在传出流中管理事务,Kafka 资源适配器可使用由 JCA 规范定义的事务管理合约。

利用Kafka设置可靠的高性能分布式消息传递基础架构

在我们的例子中,连接工厂需要设置为支持 XA 事务,该适配器需要在客户端获取连接时启动 Kafka 事务。无论应用程序服务器何时回滚 Kafka 事务,该事务都会异常终止。如果发生 XA 事务落实,那么事务管理器会在正在运行的事务所使用的所有资源上执行两阶段落实协议。这可保证对受管资源的所有读写访问权要么全部落实,要么全部回滚。

最后,该资源适配器会通过向 Kafka 事务日志主题写入事务数据来跟踪正在运行的事务。写入事务日志主题的数据将用于崩溃恢复处理,以便在分布式系统中提供可靠的消息处理。

结束语

Kafka JCA 适配器的设计方法为标准企业 Java 解决方案提供了 JMS 与 Kafka 事件处理平台的"即插即用式"集成。此设计支持将 Kafka 与现有企业应用程序无缝集成,而无需实施补偿逻辑。通过该适配器,应用程序服务器还可以提供企业应用程序所依赖的基础架构和运行时环境,以用于建立 Kafka 连接并执行事务管理。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读