#客户端连接 #服务 #通知 #helm #kubernetes #实用工具 #数据

saasaparilla_notification_common

包含saasaparilla_notification项目公共类型和实用工具的crate

1个不稳定版本

0.1.0 2024年2月16日

#7 in #helm

GPL-3.0-or-later

7KB

SaaSaparilla通知服务

验收标准

  • 服务可以在现有的k8s集群或本地(用于测试目的)使用
    • helm install
    • docker-compose up
  • 服务支持使用套接字、sse和http长轮询进行客户端连接
  • 服务可以水平扩展以处理每秒1M条消息和100M个客户端
  • 服务公开了Prometheus指标
  • 服务图表依赖于prometheus-adapter进行指标扩展
  • 任何服务在不到10分钟的时间内暂时不可用,其影响范围不包括数据丢失
  • 后端服务(包括postgreskafkaredis)可以使用pulumi在k8s或docker-compose中管理

安装先决条件

开发

  • 仅lint
  • 仅构建
  • 仅测试
  • 仅发布
  • 仅docker-构建-所有
  • 仅docker-运行

构建先决条件

架构

接收器

接收器服务负责确保

  • 接收到的通知消息格式正确
  • 执行任何可能的逻辑验证以提前拒绝消息
  • 逻辑有效且格式良好的通知消息被推送到kafka

导演

导演服务负责确保

  • 从kafka消费的消息被发送到持有连接的接收客户端的分配器
  • 未能到达目标的消息将被重试
  • 在适当数量的重试后失败的消息将被存储在postgres中以供检索

分配器

分配器服务负责确保

  • redis中的客户端连接列表保持最新
  • 将导演服务接收到的消息转发到适当的客户端
  • 在发送任何新消息之前,在建立连接时从postgres检索消息并按接收顺序发送给客户端

依赖关系

~8–20MB
~314K SLoC