运行 Wow
Wow 服务是一个以一个或多个节点运行的 Spring Boot 应用。它的节点共用服务的数据库,通过数据库互相发现,在彼此之间划分日志的分区,并在内部端口上通信。同一系统的服务之间通过 Kafka 通信。本区写给部署和运行它们的人。
页面
| 页面 | 内容 |
|---|---|
| 部署模型 | 服务与节点、两个端口、服务需要什么、启动与停止 |
| 配置服务 | 配置怎样生效、哪些必须在各节点间一致、开发环境的默认值 |
| PostgreSQL | 表、schema、连接池、多个数据库 |
| Kafka | 服务什么时候需要 Kafka、它的主题、持久的命令摄入 |
| 保护部署 | 调用方、授权、内部端口、个人数据、租户 |
| ops 服务与控制台 | 把每个服务停放的聚合汇集到一处 |
上线生产之前
存储
- 服务运行在持久的后端上:应用提供
DataSource或MongoClient,并且没有生产节点运行在开发 profile 中。 wow.log.partitions在首次部署之前选定;日志有了条目之后就不能再改。- 数据库账户与
wow.ddl相符:auto需要能建表的账户,或者事先应用 schema 并使用validate。 - 日志、检查点、租约、失败台账、预留和定时器一起备份。
集群
- 一个服务的每个节点都有相同的
wow.service、分区数、存储和集群令牌。 - 节点之间能访问彼此的内部端口,集群之外的东西访问不到。
- 平台的终止宽限期足够节点关闭(部署模型)。
- 就绪和存活探针读取节点的健康分组。
服务之间
- 服务拥有的每个 Kafka 主题都已存在,并有它需要的分区数:命令主题的分区数与上下文的日志完全相同(Kafka)。
- 每个服务列出它在内部端口上信任的服务,以及每个服务可以调用的命令。
安全
- 过一遍保护部署的检查清单。
运维
- ops 服务汇集每个服务的失败台账,并且有人关注它(ops 服务与控制台)。
- 启动时,配置没有任何关于未知
wow.*键的警告。