我们正在考虑使用消息代理来实现基于消息的发布-订阅通信模式。
您是否需要使用Actor-model才能在您的微服务之间进行基于消息的发布/订阅通信。
发布于 2019-03-20 22:55:01
大多数消息代理同时支持同步和异步API。首先,您必须决定使用哪种API :同步还是异步。同步比较简单,但使用阻塞I/O操作。阻塞操作阻塞一个线程,您必须保留与等待I/O操作的线程数量一样多的线程。由于每个线程消耗大量的核心内存,因此每个Java进程有大约10000个线程的自然限制。因此,首先评估您是否负担得起使用同步API,如果负担得起,就使用它。
如果一个JVM中同时循环的消息数量超过10000条,那么您必须使用异步API和异步消息处理。参与者只是一种异步处理单元。其他的是来自标准java的CompletableFuture,来自RxJava和其他反应库的观察者,或者通常消息代理提供他们自己的异步处理方式。看看所有的异步库,然后选择你更喜欢的。
发布于 2019-08-11 15:39:21
消息代理只是异步机制中的一种。角色模型是更宽泛的概念,即当消息被发送到本地角色时(即在相同的程序中运行,在相同的线程中运行)。
因此,它们是相互独立的:消息代理可以在没有参与者的情况下使用(即redis、rabbit mq、zero-mq),也可以在没有消息代理的情况下实现参与者。
https://stackoverflow.com/questions/55260689
复制相似问题