【问题标题】:pub/sub communication and Actorspub/sub 通信和 Actor
【发布时间】:2019-08-11 03:25:22
【问题描述】:

我们正在考虑使用消息代理来实现基于消息的发布-订阅通信模式。

您是否需要使用 Actor-model 才能在您的微服务之间进行基于消息的发布/订阅通信。

【问题讨论】:

    标签: microservices publish-subscribe actor messagebroker


    【解决方案1】:

    大多数消息代理都允许同步和异步 API。首先,您必须决定使用哪个 API:同步或异步。同步更简单,但使用阻塞 I/O 操作。阻塞操作会阻塞一个线程,并且您必须保留与等待 I/O 操作的数量一样多的线程。由于每个线程消耗大量核心内存,每个 Java 进程自然限制大约 10000 个线程。因此,首先评估您是否可以负担得起使用同步 API,如果可以,请使用它。

    如果一个JVM中同时循环的消息数量超过10000条,那么就必须使用异步API,异步处理消息。 Actor 只是一种异步处理单元。其他的是标准 java 中的 CompletableFuture,RxJava 中的 Observers 和其他响应式库,或者通常消息代理提供自己的异步处理方式。查看所有异步库并选择您更喜欢的。

    【讨论】:

      【解决方案2】:

      消息代理只是异步机制之一。 Actor 模型是更广泛的概念,即当消息被发送到本地 Actor 时(即在同一个程序中,在同一个线程中运行)。

      因此,它们是相互独立的:消息代理可以在没有actor的情况下使用(即redis、rabbit-mq、zero-mq),以及actor可以在没有消息代理的情况下实现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-13
        • 2016-03-13
        • 2018-08-16
        相关资源
        最近更新 更多