gRPC 调用 ActiveMQ?
gRPC calls on ActiveMQ?
我正在使用 ActiveMQ。我想将 gRPC 调用作为消息放在 ActiveMQ 上。一旦消费者选择一条消息,消息中的 gRPC 就应该执行。
gRPC 调用采用参数,因此我想了解如何在消息正文中将这些参数与方法 name/identifier 一起发送。是否有其他已经遵循的方法来实现此目的?
示例:
someResponse response = someStub.rpcMethodName(parameter); // grpc call
我需要的是将此语句以某种格式存储在 ActiveMQ 上,而无需立即调用 gRPC。那么以后当 ActiveMQ 的消费者接收到包含这条语句的消息时,它应该执行这个 gRPC 调用。
您可以按照自己的方式在消息中构造 gRPC 调用数据。您可以使用 XML、JSON、ProtoBuf 等。这真的取决于您想要做什么。如果您真正需要的只是简单的 key/value 对,那么您可以只使用 JMS 消息属性来存储您需要的数据。
我认为使用 gRPC 并不特别常见,但是 使用消息作为一种“工作单元”来处理各种远程资源是很常见的(例如数据库、REST 服务、微服务等)。
无论如何,我强烈建议反对 使用 JMS ObjectMessage
。 ObjectMessage
个对象依赖于 Java 序列化来编组和解组它们的对象负载。这个过程不仅缓慢而且通常被认为是不安全的,因为恶意负载可以利用主机系统。 Lots of CVEs have been created for this. There are a number of other issues with using JMS ObjectMessage
not related to security that you should read about 还有。
我正在使用 ActiveMQ。我想将 gRPC 调用作为消息放在 ActiveMQ 上。一旦消费者选择一条消息,消息中的 gRPC 就应该执行。
gRPC 调用采用参数,因此我想了解如何在消息正文中将这些参数与方法 name/identifier 一起发送。是否有其他已经遵循的方法来实现此目的?
示例:
someResponse response = someStub.rpcMethodName(parameter); // grpc call
我需要的是将此语句以某种格式存储在 ActiveMQ 上,而无需立即调用 gRPC。那么以后当 ActiveMQ 的消费者接收到包含这条语句的消息时,它应该执行这个 gRPC 调用。
您可以按照自己的方式在消息中构造 gRPC 调用数据。您可以使用 XML、JSON、ProtoBuf 等。这真的取决于您想要做什么。如果您真正需要的只是简单的 key/value 对,那么您可以只使用 JMS 消息属性来存储您需要的数据。
我认为使用 gRPC 并不特别常见,但是 使用消息作为一种“工作单元”来处理各种远程资源是很常见的(例如数据库、REST 服务、微服务等)。
无论如何,我强烈建议反对 使用 JMS ObjectMessage
。 ObjectMessage
个对象依赖于 Java 序列化来编组和解组它们的对象负载。这个过程不仅缓慢而且通常被认为是不安全的,因为恶意负载可以利用主机系统。 Lots of CVEs have been created for this. There are a number of other issues with using JMS ObjectMessage
not related to security that you should read about 还有。