liangyepianzhou commented on PR #6: URL: https://github.com/apache/pulsar-java-contrib/pull/6#issuecomment-2337002045
> **Feedback is not positive due to PIP-371.** [apache/pulsar#23143](https://github.com/apache/pulsar/pull/23143) [apache/pulsar#23194](https://github.com/apache/pulsar/pull/23194) > > **We need to implement this distributed RPC framework in a way that does not intrude into the pulsar core library. Therefore, we need to use two topics, one is the request topic and the other is the reply topic. The client side sends RPC requests to the request topic, the server side receives request message and performs customized processing, and finally sends them to the reply topic. The client receives the reply message and returns.** > > ### Motivation > As we known,Pulsar's current **asynchronous** publish-subscribe model serves well for decoupled message distribution, but it lacks a native mechanism for handling **synchronous** interactions typical of Remote Procedure Calls (RPC). > > This request-reply model can greatly enhance the utility of Pulsar. We can then use Pulsar as RPC. > > Why would we use Pulsar for this RPC call? > > * This proposal to achieve the function is `request`. `Request` and existing send function of pulsar can be mixed to same topic. This means that the user can choose, and the call to the server side (consumer) can be asynchronous or synchronous, which is controlled by the user flexibly. > * You can directly use Pulsar's own delaying messages, that is, you can execute RPC regularly. > * You can directly use Pulsar's own load balancing mechanism. > * You can directly use Pulsar's own message consumption throttling mechanism. > * You can directly use Pulsar's own expansion and contraction mechanism. > * You can directly use Pulsar's own message call tracking, monitoring, and logging mechanisms. > Another benefit of using message queues to implement RPC requests is that the request message can be received by multiple services and processed in parallel, and then all the processing results are returned. Finally, the client will do the integration. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
