我正在Azure上部署Thingsboard CE。出于可用性和弹性的原因,我希望有两个虚拟机同时连接到同一个数据库。有没有办法做到这一点,这可能吗?我也欢迎关于如何在云中安全地托管Thingsboard的提示。我设法做到了如下:我创建了一个VM并将其连接到数据库,然后创建了VM的副本。也就是说,两个VM连接到同一个数据库。错误:如果我的设备连接到VM1,并且我通过VM2访问 Jmeter 板,则数据不会自动更新,我需要刷新页面。
okxuctiv1#
是的,可以将两台带有ThingsBoard的计算机连接到同一数据库。1.使用像PostgreSQL这样的数据库。1.并配置ThingsBoard以使用复制的数据库。1.并配置负载平衡器以在两台机器之间分配流量。
PostgreSQL
ThingsBoard
为2个VMS访问数据库提供负载平衡。
确保ThingsBoard在云中的安全。
对于Security Fundamentals和Security best-practices对于您所得到的错误,您需要确保两个VM使用相同的数据同步机制。这可以通过分布式缓存来实现,比如Redis。当设备向VM1发送数据点时,该数据点也被发送到该高速缓存。当VM2请求数据点时,它会从该高速缓存中获取数据点。这可确保两个VM都具有最新数据。另一种错误的方法是使用消息代理,如RabbitMQ。当设备向VM1发送数据点时,该数据点被发送到消息代理。VM2然后可以订阅该数据点的主题,并在发送后立即接收该主题。有关详细信息,请参阅Blog。
1条答案
按热度按时间okxuctiv1#
是的,可以将两台带有ThingsBoard的计算机连接到同一数据库。
1.使用像
PostgreSQL
这样的数据库。1.并配置
ThingsBoard
以使用复制的数据库。1.并配置负载平衡器以在两台机器之间分配流量。
为2个VMS访问数据库提供负载平衡。
确保
ThingsBoard
在云中的安全。对于Security Fundamentals和Security best-practices
对于您所得到的错误,您需要确保两个VM使用相同的数据同步机制。
这可以通过分布式缓存来实现,比如Redis。当设备向VM1发送数据点时,该数据点也被发送到该高速缓存。当VM2请求数据点时,它会从该高速缓存中获取数据点。这可确保两个VM都具有最新数据。
另一种错误的方法是
使用消息代理,如RabbitMQ。当设备向VM1发送数据点时,该数据点被发送到消息代理。VM2然后可以订阅该数据点的主题,并在发送后立即接收该主题。
有关详细信息,请参阅Blog。