写点什么

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:0055145

评论

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

Microsoft Outlook将邮件、日历和联系人汇集一处,让你轻松管理一切

Rose

Office 邮件客户端 Microsoft Outlook

WiFi 7/QCN9274: Connecting the super network of the future

wallysSK

中文版3d lut creator pro调色软件下载 兼容M1

Rose

Mac软件 3d lut creator pro 调色

2023 年已知被利用最多的十大CWE漏洞排名

华为云PaaS服务小智

软件开发 华为云

Seal 新春大挑战等你来参与!

SEAL安全

AI DevOps Walrus

测试开发+人工智能大礼包,让你在假期实现弯道超车

测试人

软件测试

【YAML语法规范指南】从入门到精通,揭秘神秘语法,引领配置文件解析指南(基础结构篇)

码界西柚

配置 yaml 开发指南 yaml文件 2024年第三十二篇文章

mac电脑好玩的游戏:帕斯卡契约:终极版 游戏模式,体验大升级

Rose

游戏 mac电脑 帕斯卡契约:终极版

FTP(文件传输协议)客户端 Transmit 5 中文for Mac v5.10.4

Rose

ftp Mac软件 ftp传输 Transmit 5

千万级数据深分页查询SQL性能优化实践-京东零售技术团队

京东零售技术

Java MySQL 后端

迎龙年接新春,来华为手机里寻找祥龙

最新动态

如何使用低代码+定制,打造一个个性化的社交媒体平台?

天津汇柏科技有限公司

低代码 定制软件开发 软件开发定制

OpenSPG新版发布:大模型知识抽取与快速知识图谱构建

百度开发者中心

人工智能 知识图谱 智能客服 大模型

假期想学习,送你测试开发+人工智能大礼包

霍格沃兹测试开发学社

GraphicConverter 12 mac图片浏览器:编辑、转换和增强图像

Rose

SublimeText中文破解版 简单易用的代码编辑器

Rose

代码编辑器 SublimeText

高效率软件开发工具,提速开发,真的很赞!

互联网工科生

软件开发 低代码 JNPF

KubeEdge v1.16.0 版本发布!10项新增特性

华为云开发者联盟

k8s 开发 华为云 kubeedge 华为云开发者联盟

口袋瑜伽 Pocket Yoga for mac 专业瑜伽课程 打造完美身材

Rose

瑜伽 Mac软件 瑜伽教学 Pocket Yoga

macs fan control pro破解版序列号 mac电脑风扇控制 v1.5.17中文版

Rose

苹果电脑 风扇转速控制 Macs Fan Control Pro

IT工单治理野史:由每周最高150+治理到20+ | 京东物流技术团队

京东科技开发者

wrk压测

这篇深入浅出贴 助你早日实现Stable diffusion自由

京东科技开发者

Bookends for Mac(文献书籍管理工具)v14.2.9注册激活版

Rose

安卓动态链接库文件体积优化探索实践

京东科技开发者

4份报告简读Java生态

4ye

JVM, Java’

探索大模型训练与多模态数据处理

百度开发者中心

人工智能 图像 大模型训练

100%中奖、会员回馈礼…星河会员新春福利到!

飞桨PaddlePaddle

百度 飞桨 飞桨AI 飞桨星河社区

【踩坑指南】线程池使用不当的五个坑

越长大越悲伤

Java 线程池 踩坑指南

Minitab Express:对数据进行整理、可视化、建模和预测

Rose

数据分析 数据统计 Minitab Express

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