10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

评论

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

透明LED显示屏报价方案

Dylan

方案 屏幕亮度 报价 像素 LED显示屏

你应该搞懂的 C 语言头文件路径问题

矜辰所致

C语言 头文件 6 月 优质更文活动

公有云数据库新趋势,企业降本增效正当时

MatrixOrigin

数据库 分布式 云原生 超融合 HTAP

如何成功实施一个数据治理项目?实施步骤有哪些?

袋鼠云数栈

数字化转型 数据治理 企业号 6 月 PK 榜

牛逼!Windows竟然也能运行QEMU虚拟机!

吴脑的键客

qemu windows10 windows 11

知乎最具争议的Java面试成神笔记,GitHub已下载量已过百万

互联网架构师小马

Java java面试 Java八股文 Java面试题 Java面试八股文

架构训练营模块3作业——外包学生管理系统的架构文档

Geek_3d7c4d

#架构训练营

Battery Indicator for Mac:Mac笔记本电脑电池电量剩余百分比显示工具

背包客

macos Mac软件 MacBook Pro Battery Mac电量显示软件

南宁建宁水务集团财务共享、全面预算项目正式启动

用友BIP

HummerRisk 开发手册:Restful Api 使用

HummerCloud

开源 云原生 云安全

OpenInfra基金会在亚洲、欧洲正式设立运营中心

说山水

用友入选信通院“铸基计划”IPaaS标准贡献单位

用友BIP

数智平台

如何用Taro打造敏捷的移动App架构

没有用户名丶

用友承办全国两化融合标委会工业互联网管理标准工作组全体成员大会圆满召开

用友BIP

工业互联网

MaxCompute中如何处理异常字符

阿里云大数据AI技术

大数据 数据处理 企业号 6 月 PK 榜

膜拜!Alibaba最新发布SprinBoot:进阶原理实战与面试题分析指南

互联网架构师小马

Java spring 微服务 Spring Boot 框架

还在为618电商推送方案烦恼?我们帮你做好了!

HarmonyOS SDK

HMS Core

河北国控携手用友探索数智司库,加快建设世界一流

用友BIP

全球司库

弥合风险缺口 筑牢共享安全|2023开放原子全球开源峰会开源安全技术与实践分论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 开源安全技术与实践

打造科学新高地|2023开放原子全球开源峰会科学智能分论坛圆满举行

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 科学智能

软件测试/测试开发丨Python类与对象学习笔记

测试人

Python 程序员 软件测试 测试开发 类与对象

OpenAI发布ChatGPT函数调用和API更新

楚少AI

openai GPT-4 ChatGPT4 chatgpt api gpt-3.5-turbo-16k

重庆企业购买堡垒机选择哪家好?理由有哪些?

行云管家

网络安全 堡垒机 重庆

银行数字化转型研究与敏捷转型探索

L3C老司机

数字化转型 敏捷转型 敏捷组织 银行转型 敏捷探索

TG Pro for mac:Mac温度和风扇速度如何控制?

背包客

深度学习 macos Mac软件 MacBook Pro TG Pro for mac

推动开源行业高质量发展|2023开放原子全球开源峰会圆满落幕

开放原子开源基金会

开源 开发原子全球开源峰会 开发原子

火山引擎DataLeap:一个易用、高效的数据目录,是如何搭建的?

字节跳动数据平台

大数据 数据治理 数据目录 数据研发

【Netty】「萌新入门」(二)剖析 EventLoop

sidiot

Java 后端 Netty 6 月 优质更文活动

GitHub收获70K+Star!阿里巴巴总结的「百亿级别并发设计手册」太香了

互联网架构师小马

Java 系统设计 高并发

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