在生产环境中部署 PubSub+ 软件事件代理
以下部分旨在帮助您成功地在生产环境中部署高度可用(HA)的PubSub+软件事件代理实例。
虚拟机部署注意事项
PubSub+软件事件代理通常部署在虚拟机(VM)环境中。在这些情况下,您会根据公司标准创建一个Linux虚拟机,使用基于主要发行版之一(Red Hat Enterprise Linux或Ubuntu很常见)的标准镜像。虚拟机使用虚拟化程序(VMware最常见,但虚拟化程序的选择不重要,只要它能运行Linux 虚拟机)。企业IT团队有管理这些类型系统的经验。
PubSub+事件代理规模
在部署虚拟机之前,您必须考虑将要部署到其中的事件代理实例的资源需求。HA部署需要三个实例(主节点、备份节点和监控节点)。主节点和备份节点是处理事件的消息路由节点,应该完全相同,因为它们中的任何一个都可能在任何时候处于活动状态。监控节点的功能是提供多数票,以决定在消息路由节点无法相互通信时(防止脑裂故障,即两个节点都变为活动状态)应该激活哪个消息路由节点。有关更多信息,请参见软件事件代理的高可用性。监控节点需要的资源比消息路由节点少。
要确定虚拟机将需要的资源,Solace提供了系统资源计算器工具。使用这个工具,您可以创建一个事件代理配置,工具会输出虚拟机必须为PubSub+事件代理实例提供的一组资源需求。一旦您创建了一个符合部署需求的事件代理配置,必须记录以下几项内容以备后用。从工具的输出中记录以下内容:
系统资源计算器输出 | 描述 | 消息路由节点容器(消息) | 监控节点容器(监控) |
---|---|---|---|
CPUs | PubSub+事件代理实例所需的CPU核心数。这些可以与主机操作系统共享。 | ||
主机虚拟内存 | 必须在主机系统中可用的内存量。这个量是除了主机操作系统需求之外的(其中2GB可能是交换空间)。 | ||
内存CGroup限制 | 这是分配给容器的主机虚拟内存量。 | ||
Posix共享内 存(/dev/shm ) | 必须分配给/dev/shm 的内存量。这在前两个内存限制中有所考虑,但在创建容器时必须指定。 | ||
容器运行时后端存储 | 这是必须分配给容器运行时以存储容器镜像和容器实例的读写层的存储。 | ||
存储 | 分配给事件代理的存储组的存储。它包含与事件代理实例相关的所有状态。通常分配在不是虚拟机根文件系统的存储卷上。 | ||
Docker Compose环境变量 | 环境变量用于在首次启动时为新实例提供引导配置。系统资源计算器的输出包含一些用于配置存储元素大小和系统缩放参数的环境变量。 |
从上述内容中,您可以确定要部署的虚拟机的特性。在部署虚拟机时必须分配的关键资源是CPU核心数、内存量和额外的存储卷。分配给虚拟机的CPU核心数必须至少等于系统资源计算器的输出。分配给虚拟机的内存量必须至少是计算器输出的主机虚拟内存
加上主机操作系统所需的量。最佳实践是将PubSub+使用的存储组分配在与主机根文件系统不同的存储卷上。分配给存储组的存储必须至少等于计算器输出的大小。
用于托管存储组的存储的特性将对事件代理性能产生重大影响。存储组必须托管在由固态存储支持的卷上。延迟、吞吐量和IOPS都将影响PubSub+能够实现的性能。
两个消息路由节点对CPU、内存和存储的资源需求相同。监控节点的资源需求较低。有关详细信息,请参见计算器的容器(监控)
输出。