You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# 用于 DMP 回流项目的分布式部署方案
|
|
|
|
|
|
|
|
|
|
|
|
## 1. 环境
|
|
|
|
- 服务器
|
|
|
|
- 118.195.141.114(10.206.0.8) 1
|
|
|
|
- 118.195.181.101(10.206.0.7) 2
|
|
|
|
- 118.195.179.228(10.206.0.2) 3
|
|
|
|
|
|
|
|
- 应用服务
|
|
|
|
- jar: ad-callback
|
|
|
|
- nginx + KA
|
|
|
|
|
|
|
|
nginx(KA) -> ad_callback -> DB(查询)
|
|
|
|
ad_callback -> DB(查询)
|
|
|
|
ad_callback -> -> 计算
|
|
|
|
|
|
|
|
查【2台】 / 写(计算) 【1台】
|
|
|
|
-> 内存
|
|
|
|
|
|
|
|
内存
|
|
|
|
-> 统计 内存
|
|
|
|
|
|
|
|
## 2. 架构说明
|
|
|
|
|
|
|
|
- Nginx + KA
|
|
|
|
- KA 保证 Nginx 服务的高可用(虚拟网卡对外进行提供访问)
|
|
|
|
- Nginx 进行负载均衡配置, 流量转发到3个 -> ad-callback 服务
|
|
|
|
- 确保同一个 tag 在一个数据库上
|
|
|
|
|
|
|
|
- 优化策略
|
|
|
|
- 使用 3 库 * 16 表 来存数据, 优先对外做到, 使用本地策略来进行存储
|
|
|
|
- Nginx 根据 tag 进行转发请求, tag请求会转发去查对应的服务器上的数据库来进行存储
|
|
|
|
|
|
|
|
|
|
|
|
- 架构逻辑示意图
|
|
|
|
|
|
|
|
```text
|
|
|
|
|
|
|
|
Req(tag=xxx1) -> ad-callback_1 -> DB(db_1) => tb_{0...16}
|
|
|
|
(Nginx + KA) 策略分发请求到对应服务器 -> ad-callback_2 -> DB(db_2) => tb_{0...16}
|
|
|
|
Req(tag=xxx2) -> ad-callback_3 -> DB(db_3) => tb_{0...16}
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
- 高可用策略
|
|
|
|
- Nginx 高可用 -> 使用 KA 来进行保证
|
|
|
|
- 服务高可用 -> 注册在 Nacos / Zookeeper 上进行处理/ 并且 使用监控面板进行监控可用状态
|
|
|
|
- 数据库高可用 -> 目前不设计,因为这个数据和实效性有关,不具备很强的存储价值, 后续可用 PXC 或者别的数据库集群来保证
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tag -> all
|
|
|
|
|