1
1
大多数消息代理都允许同步和异步API。首先必须决定使用哪个API:同步的还是异步的。同步更简单,但使用阻塞I/O操作。阻塞操作会阻塞一个线程,您必须保留与等待I/O操作的线程数相同的线程数。由于每个线程消耗大量的核心内存,因此每个Java进程自然有10000个线程的限制。因此,首先评估您是否有能力使用同步API,如果有,则使用它。 如果一个JVM中同时循环的消息数量超过10000条,则必须使用异步API和消息的异步处理。参与者只是一种异步处理单元。其他的是来自标准java的CompletableFuture,来自RxJava和其他反应库的观察者,或者通常是消息代理提供他们自己的异步处理方式。看看所有的异步库,选择你更喜欢的。 |
2
0
消息代理只是异步机制之一。Actor模型是一个更广泛的概念,即当消息发送到本地Actor时(即在同一程序中运行,在同一线程中运行)。 因此,它们是相互独立的:可以在没有参与者(即redis、rabbit mq、zero mq)的情况下使用MessageBroker,也可以在没有MessageBroker的情况下实现参与者。 |