我们有一个实时服务,它从不同的来源(内部和外部)获取二进制消息,然后使用一些NodeJS实例和一个HAProxy实例,配置为路由TCP流量,我们将它们提供给我们的最终用户和不同的服务谁消费了这些消息 . HAProxy版本是1.8.14,NodeJS是6.14.3,两者都托管在CentOS 7机器上 .

现在我们在HAProxy实例的出站接口中遇到了一些复杂的问题 . 我们不确定突发是否真实(例如某些消息在Node中被卡住,然后网络被消息淹没)或者问题是某种错误配置或某些其他服务的间接影响(后两种原因更有可能,因为有时候我们在午夜时会得到这些爆发,我们的负荷最小为零) .

这个问题现在很烦人,但它可能会变得很重要,因为它会淹没我们的出站流量,因此我们的实时服务在工作时间内会遇到滞后或很小的停机时间 .

我的问题是,我们如何以最小的开销跟踪和记录这些消息的性质或内容?我一直在阅读HAProxy文档以找到一种方法来监控它,这可以通过使用Unix套接字来实现,但我们担心的有两件事:

  • 使用此套接字的开销是多少?

  • 我们可以使用此套接字跟踪服务器中发生的情况吗?或者它只给我们统计数据?

  • 有没有办法"catch/echo"这些消息的内容,或找出有关它们的一些信息?最小的开销?

如果您对此问题有任何疑问,请与我们联系 .