擅长:python、mysql、java
<p>我在Erlang编程方面的经验是,当您期望较高的消息传递速率(即,生产者比消费者更快)时,您就添加了自己的流控制。一个简单的场景</p>
<ul>
<li>消费者将:发送消息,等待确认,然后重复。在</li>
<li>生产者将:等待消息,在消息接收和处理时发送ack,然后重复。在</li>
</ul>
<p>也可以反转它,生产者等待消费者来获取下一个可用的N条消息。在</p>
<p>这些方法和其他流控制可以隐藏在函数后面,第一种方法在<code>gen_server:call/2,3</code>中针对<code>gen_server</code>OTP行为过程已经可用。在</p>
<p>我认为Erlang中的异步消息传递是更好的方法,因为当延迟很高时,您可能非常希望避免在计算机之间进行消息传递时发生同步。然后就可以组合出实现流控制的巧妙方法。例如,要求消费者对生产者发送的每N条消息进行确认,或者时不时地发送一条特殊的“当你收到这条消息时ping我”消息,以计算ping时间。在</p>