1个不稳定版本
0.1.0 | 2024年2月16日 |
---|
#7 in #helm
7KB
SaaSaparilla通知服务
验收标准
- 服务可以在现有的k8s集群或本地(用于测试目的)使用
helm install
docker-compose up
- 服务支持使用套接字、sse和http长轮询进行客户端连接
- 服务可以水平扩展以处理每秒1M条消息和100M个客户端
- 服务公开了Prometheus指标
- 服务图表依赖于prometheus-adapter进行指标扩展
- 任何服务在不到10分钟的时间内暂时不可用,其影响范围不包括数据丢失
- 后端服务(包括
postgres
、kafka
和redis)可以使用
pulumi
在k8s或docker-compose中管理
安装先决条件
开发
仅lint
仅构建
仅测试
仅发布
仅docker-构建-所有
仅docker-运行
构建先决条件
架构
接收器
接收器服务负责确保
- 接收到的通知消息格式正确
- 执行任何可能的逻辑验证以提前拒绝消息
- 逻辑有效且格式良好的通知消息被推送到kafka
导演
导演服务负责确保
- 从kafka消费的消息被发送到持有连接的接收客户端的分配器
- 未能到达目标的消息将被重试
- 在适当数量的重试后失败的消息将被存储在postgres中以供检索
分配器
分配器服务负责确保
- redis中的客户端连接列表保持最新
- 将导演服务接收到的消息转发到适当的客户端
- 在发送任何新消息之前,在建立连接时从postgres检索消息并按接收顺序发送给客户端
依赖关系
~8–20MB
~314K SLoC