2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

Contentsquare 跨多个服务的通知解决方案:微服务和 Apache Kafka

  • 2023-10-30
    北京
  • 本文字数:1059 字

    阅读完需:约 3 分钟

大小:505.13K时长:02:52
Contentsquare跨多个服务的通知解决方案:微服务和Apache Kafka

Contentsquare 平台的许多场景都需要通知功能。作为其微服务架构的一部分,该公司创建了一个跨多个服务的通用解决方案。在实现过程中,开发人员改进了可观察性,同时还克服了一些可扩展性挑战。

 

Contentsquare 的通知功能可以用于密码重置、API 配额超标告警等,并根据用户的喜好通过电子邮件、Slack 或 Microsoft Teams 发送。该公司选择循序渐进地推出与通知相关的功能,以便在需要时提高性能和可扩展性。



通知组件(来源:Contentsquare工程博客

 

Contentsquare 的平台使用了微服务架构,通知子系统由几个微服务组成。Notification Consumer 负责处理来自Apache Kafka主题的消息。Mailer Service 用于电子邮件通知发送,并使用EJS模板引擎根据预配置的模板呈现电子邮件内容。最后,Integration Service 负责 Slack 和 Microsoft Teams 通知,它将基于Slack的Block KitMicrosoft Teams Adaptive Cards编写 JSON 消息体。Slack Service 和 Microsoft Teams Service(如下所示)分别负责向 Slack 或 Microsoft Teams API 发送通知消息。



用于向 Slack 和 Teams 发送通知的微服务(来源:Contentsquare工程博客

 

Contentsquare 软件工程师Joseph-Emmanuel Banzio分享了该团队在推出通知功能时的经验:

在此过程中,我们遇到了几个瓶颈,为此,我们扩展并增强了系统的可靠性。一个值得注意的挑战是,在创建 Notifications 主题之前,我们最初使用了单个 Kafka 主题进行微服务间通信。在我们发布实时告警测试版之前,这个功能一直运行良好。

 

除了使用专用的 Kafka 主题进行告警通知外,该团队还优化了通知存储,以免读取时出现高延迟。他们实现了一种数据保留机制,用来删除旧的通知记录。另一个需要调查的问题是,一些用户没有收到电子邮件。经过仔细研究,这是由于 SPF(Sender Policy Framework)配置错误引起的,安全团队已经解决了这个问题。

 

为了帮助解决电子邮件通知问题,该团队创建了一个专门的电子邮件可观察性解决方案。其中,它会定期检索第三方电子邮件服务收集的发送事件并存储在 Contentsquare 的平台中。这种方法提供了电子邮件通知流的端到端可见性。

 

在该功能上线的过程中,开发人员还致力于提高了平台的可观察性。他们创建了一个Kibana仪表板来监控和分析日志,一个Grafana仪表板来监控通知微服务使用的云资源。此外,该团队还扩展了对 Kafka 生产集群的监控,以确保资源利用率和 Consumer Group Lag 在可接受的范围之内。将来,该团队计划提升系统弹性,以防系统故障,并提高通知发送的及时性,实现近实时发送。

 

原文链接:

https://www.infoq.com/news/2023/10/contentsquare-notifications/

2023-10-30 08:0054912

评论

发布
暂无评论
发现更多内容

Meta公布首款AR眼镜Orion,成本1万美元;OpenAI CTO Mira Murati离职丨RTE开发者日报

声网

华为云分布式缓存服务Redis®版9月企业版、灵活的购买方式全新上市

华为云PaaS服务小智

分布式缓存 华为云

天命人,如何轻松利用仿真技术打造出属于你的“金箍棒”?

Altair RapidMiner

人工智能 设计 仿真 altair 黑神话悟空

解读 Story Protocol:IP 与区块链的潜力与障碍

TechubNews

“AI+Security”系列第3期(五):AI技术在网络安全领域的本地化应用与挑战

云起无垠

精准测试之探索

京东科技开发者

京东金融APP的鸿蒙之旅:技术、挑战与实践

京东科技开发者

面试官:谈谈你对IO多路复用的理解?

王磊

office系列全套装:Office LTSC 2021 (Win&Mac) 特别版

你的猪会飞吗

Office LTSC 2021 office ltsc 2021中文版

HAP官方力作:MEGA进销存应用正式上线

明道云

在Bamboo上怎么使用iOS的单元测试

京东科技开发者

主动元数据,让数据管理“看得清、管得住、治得动”

Aloudata

元数据 全链路数据血缘 数据血缘 数据链路

为什么投递简历已读不回?

老张

面试 简历优化 求职面试

10分钟了解Golang集合类型数据操作

俞凡

golang

再获殊荣!MIAOYUN获评“2024新一代信息技术应用优秀案例”

MIAOYUN

云计算 云原生 超融合 新一代信息技术 优秀案例

澳鹏大模型数据服务,赋能AGI智能涌现

澳鹏Appen

数据标注 大模型 数据服务 AGI AI 智能体

TikTok多账号运营:云手机的选择与注意事项

Ogcloud

云手机 海外云手机 tiktok云手机 矩阵运营 TikTok矩阵运营

【YashanDB知识库】YMP迁移oracle不兼容给用户授权高级包

YashanDB

yashandb 崖山数据库 yashandb知识库

【YashanDB知识库】decode函数中的子查询被不必要地多次执行

YashanDB

yashandb 崖山数据库 yashandb知识库

推荐一款Python接口自动化测试数据提取分析神器!

不在线第一只蜗牛

Python

探索 Snowflake 与 Databend 的云原生数仓技术与应用实践

Databend

望繁信科技CTO李进峰受邀在上海外国语大学开展流程挖掘专题讲座

望繁信科技

数字化转型 流程挖掘 流程资产 流程智能

TikTok云手机:实现多账号矩阵运营

Ogcloud

云手机 海外云手机 tiktok云手机 矩阵运营 TikTok矩阵运营

袋鼠云数据资产平台:数据模型标准化建表重构升级

袋鼠云数栈

Contentsquare跨多个服务的通知解决方案:微服务和Apache Kafka_微服务_Rafal Gancarz_InfoQ精选文章