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]

Reply via email to