写点什么

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

评论

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

AlDente Pro :苹果电脑电池管理工具 延长电池寿命

Rose

苹果电脑 电池管理 AlDente Pro破解版 电池寿命

数据分析统计Minitab Express for Mac破解补丁 及安装教程 兼容m芯片

Rose

数据统计 Mac 软件 数据分析软件 Minitab Express下载 Minitab Express破解版

两个爆点,引爆在线教育平台数智化

字节跳动数据平台

在线教育 可视化 云服务 数智化

ETL数据集成丨将DB2数据同步至Postgres数仓实践

RestCloud

数据库 postgresql 数据同步 ETL 数据集成工具

支持英文语言的堡垒机是什么?叫做什么名字?

行云管家

软件 堡垒机

滴滴开源 LogicFlow:专注流程可视化的前端框架

源字节1号

开源

基于大模型的对话式数据分析产品“腾讯云 ChatBI ”正式上线公测

腾讯云大数据

腾讯云 BI

超13万律师使用的工具,启信宝推出“司法大数据”功能

合合技术团队

人工智能 大数据 司法

ShareSDK第三方平台使用指南——新浪微博

MobTech袤博科技

Java 开发者 产品动态

向量检索服务应用场景

DashVector

数据库 向量检索 大模型

走在市场前沿:用Lazada商品列表数据接口追踪竞争对手

tbapi

lazada商品API接口 lazada商品列表数据接口 lazada lazada商品数据采集接口

需求缺陷管理:8款最佳系统全面评测

爱吃小舅的鱼

缺陷管理系统 缺陷管理 缺陷管理工具 需求缺陷管理

复古传奇,经典归来,清渊传奇详细图文架设教程

echeverra

清渊传奇

巴赫:阿里AI技术将巴黎奥运转播带到新高度

阿里云CloudImagine

云计算 音视频 视频云 奥运会 AI增强技术

8月浙江省公安厅即将举办省网络与信息安全管理员项目职业技能竞赛

行云管家

网络安全 信息安全

利用 Python 和 IPIDEA:跨境电商与数据采集的完美解决方案

海拥(haiyong.site)

Python

推荐5款人事管理系统!免费可用

软件大师兄

草料二维码 人事管理系统 简道云

可观测性建设路线图

FunTester

Bug管理必备:2024年7款最佳工具推荐

爱吃小舅的鱼

缺陷管理 bug管理 bug管理工具 缺陷管理工具

油猴Safari浏览器辅助插件 油猴脚本Tampermonkey mac版下载安装教程

Rose

Tampermonkey插件 油猴脚本使用

低代码平台在采购管理中的革新与应用

天津汇柏科技有限公司

低代码 采购管理 软件定制开发

深入解析 Go 语言 GMP 模型:并发编程的核心机制

王中阳Go

Go 面试 GMP

向量检索服务的基本概念

DashVector

向量检索 #数据库 #人工智能 #大模型

如何将文本转换为向量(DashScope)

DashVector

数据库 向量检索 大模型

日程管理多源归一,服务场景一键直达

HarmonyOS SDK

HarmonyOS

第61期|GPTSecurity周报

云起无垠

Interconnectivity of Industrial Equipment: IPQ9574 vs. IPQ4019 in Real-World Applications

wallyslilly

揭秘攻击者规避XDR检测的惯用手法及应对建议

我再BUG界嘎嘎乱杀

黑客 网络安全 安全 网安 XDR检测

硅纪元视角 | 苹果AI训练数据大曝光,坚持用户隐私第一

硅纪元

综合性价比超越硅谷,PPIO派欧云发布下一代推理加速引擎

Geek_2d6073

GPT4o-mini是什么?有什么特点?

蓉蓉

GPT-4o mini

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