Networking 在ActiveMQ/AMQ上包装http/gRPC流量

Networking 在ActiveMQ/AMQ上包装http/gRPC流量,networking,network-programming,integration,grpc,amq,Networking,Network Programming,Integration,Grpc,Amq,我的企业网络分为两部分——绿色(可接入互联网)和红色(内部网络)。所以,它是这样工作的:互联网↔ 绿色↔ 红色 两个部分中的每一部分都有自己的Red Hat Fuse包、Red Hat AMQ(或ActiveMQ)、Apache Camel包——为了简单起见,我们将此包称为“套件”。此套件在两个段中都是相同的,用于集成。 绿色和红色之间的所有交通都通过套房对。一端的套件接收流量,以某种方式打包,通过MessageBroker(AMQ)发送,然后另一端的套件将其解压缩并发送到所需的节点。 因此,套

我的企业网络分为两部分——绿色(可接入互联网)和红色(内部网络)。所以,它是这样工作的:互联网↔ 绿色↔ 红色

两个部分中的每一部分都有自己的Red Hat Fuse包、Red Hat AMQ(或ActiveMQ)、Apache Camel包——为了简单起见,我们将此包称为“套件”。此套件在两个段中都是相同的,用于集成。 绿色和红色之间的所有交通都通过套房对。一端的套件接收流量,以某种方式打包,通过MessageBroker(AMQ)发送,然后另一端的套件将其解压缩并发送到所需的节点。 因此,套件就像某种防火墙和隔离/检查软件一样使用

不幸的是,对于一般的交通换乘情况,套房换乘是一项要求。我知道这会影响表演,而且不优雅

问题是:通用TCP流量(即http和gRPC流量)如何由AMQ/ActiveMQ包装并在段之间透明传输

如何组织这种交流?例如,我考虑将流量放入类似于SOCKS5隧道的东西中,然后将SOCKS5流量包装为AMQ(通过将其转换为AMQP或类似的方式)

我还知道,可以使用Apache Camel为AMQ编写连接器,因此可以这样做:
交通↔ 拦截器↔ 一套↔ AMQP或其他AMQ-AMQ协议↔ 一套↔ 解码器和发送器↔ 交通

既然您有Red Hat AMQ,并且考虑到这一点,您可以在解决方案中使用AMQ互连吗?如果是这样的话,也许你可以利用这一点。@JustinBertram,谢谢你的回答!我认为我们可以使用Interconnect,但前面提到的网桥似乎还不支持http/2,我不确定它是否支持http/2。然而,它代表着大量的工作,你可能不得不以这样或那样的形式复制。您完全可以实现对网桥的HTTP/2支持,而不是彻底改造解决方案。在任何情况下,我认为像Interconnect这样的东西将是你最好的选择,因为我真的无法想象将HTTP帧转换为消息并通过代理队列调解发送/响应将是直接实现的,或者提供足够合理的性能,以便在功能上可行。我认为Skupper()值得一看。它面向Kubernetes,但是它使用的组件可以在没有它的情况下进行调整。Skupper使用Interconnect(Qpid调度路由器)在站点之间形成网络,然后每个站点的代理将HTTP(包括HTTP/2)或TCP转换为AMQP并返回。是的,我将开始研究Skupper代理。我没有尝试过在没有Kubernetes的情况下使用Skupper,因此我不确定您会发现哪些障碍,但从架构上来说,我认为代理是您感兴趣的组件(加上互连网络)。或者,您可以先使用Kubernetes进行尝试,以了解它的功能。