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脚本解析服务 |
购买的源码已经包含 |