1、如何实现高可用
1-1、同一服务组件,重复部署
例如:
1、Kafka集群部署多个节点。
2、提供功能接口的CORE服务,集群内部署数量超过1个。
1-2、虚拟IP管理
例如:管理页面,使用VIP(虚拟IP)访问,VIP地址使用KeepAlived(虚拟IP管理软件)管理。
让多台服务器虚拟成一个对外提供服务的VIP(Virtual IP,虚拟IP),并通过选举机制决定由哪台服务器实际承载这个VIP,从而实现故障转移(Failover)。
1-3、反向代理
如:Haproxy、Nginx
2、中间件选型
中间件名称 | 协议 | 说明 | 扩展说明 | 是否需要购买 |
Nginx | BSD-2 | 第三方的WEB服务器 | 不需要购买 | |
Haproxy | GPL 2 | 第三方的负载均衡中间件 | 不需要购买 | |
Kafka | Apache-2.0 | 第三方的消息中间件 | 不需要购买 | |
Redis | RSALv2+SSPLv1 | 第三方的缓存管理软件 | 协议补充说明: SSPL【Server Side Public License】;RSAL【Redis Source Available License】 | 不需要购买 |
Zookeeper | Apache-2.0 | 第三方的服务管理软件 | 不需要购买 | |
Postgresql | PostgreSQL License | 第三方的关系数据库,用于存储基础数据。 | 协议说明:PostgreSQL 是根据PostgreSQL 许可证发布的,这是一个自由的开源许可证,类似于 BSD 或 MIT 许可证 | 不需要购买 |
Pgpool | 免费使用 | 第三方的Postgresql集群管理软件 | 类似于 BSD 和 MIT 的许可证 | 不需要购买 |
Cassandra | Apache-2.0 | 第三方的分布式数据库,用于存储历史数据。 | 不需要购买 | |
Thingskit@TB_CORE | 自研 | 应用服务,为前端应用提供接口。 | 购买的源码已经包含 | |
Thingskit@TB_RULE_ENGINE | 自研 | 规则引擎服务 | 购买的源码已经包含 | |
Thingskit@TB_TRANSPORT | 自研 | 设备接入服务,例如:MQTT、GBT28181、TCP/UDP等。 | Emqx提供的功能与设备接入服务的MQTT模块等效,提供MQTT设备接入服务。 | 购买的源码已经包含 |
Thingskit@JS_EXECUTOR | 自研 | Javascript脚本解析服务 | 购买的源码已经包含 |