首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Akka的"Distributed Publish Subscribe in Cluster“中,有可能知道消息是在哪个主题上收到的吗?

在Akka的"Distributed Publish Subscribe in Cluster"中,可以通过订阅特定主题来接收消息。Akka的分布式发布订阅模式允许在集群中的不同节点之间发布和订阅消息。当一个节点发布消息时,其他节点可以订阅该主题并接收消息。

在Akka中,可以使用ActorRef来订阅主题。ActorRef是一个引用,可以用来发送和接收消息。通过向ActorRef发送订阅消息,可以指定要订阅的主题。当有消息发布到该主题时,订阅该主题的节点将收到消息。

由于Akka的分布式发布订阅模式是基于Actor模型的,消息的接收是通过Actor来处理的。每个订阅主题的节点都可以创建一个Actor来处理接收到的消息。当消息发布到特定主题时,Akka会将消息发送给订阅该主题的Actor,从而实现消息的接收和处理。

在Akka中,可以使用ClusterSharding来管理分布式Actor,以便在集群中跨节点进行消息的发布和订阅。ClusterSharding可以根据消息的主题将消息路由到正确的Actor,并确保在集群中的不同节点上创建和管理Actor的副本。

总结起来,在Akka的"Distributed Publish Subscribe in Cluster"中,可以通过订阅特定主题来接收消息。消息的接收是通过Actor来处理的,每个订阅主题的节点可以创建一个Actor来处理接收到的消息。可以使用ClusterSharding来管理分布式Actor,以实现消息的发布和订阅。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Akka 指南 之「集群中的分布式发布订阅」

文章目录 集群中的分布式发布订阅 依赖 简介 发布 主题组 发送 DistributedPubSub 扩展 传递保证 集群中的分布式发布订阅 依赖 为了使用分布式发布订阅(Distributed Publish...-- sbt --> libraryDependencies += "com.typesafe.akka" %% "akka-cluster-tools" % "2.5.22" 简介 在不知道 Actor...发送 这是一种点对点(point-to-point)模式,其中每个消息都传递到一个目的地,但你仍然不必知道目的地在哪里。这种模式的典型用法是在即时消息应用程序中与另一个用户进行私人聊天。...在每个节点上,给定路径只能有一个 Actor,因为该路径在一个本地 Actor 系统中是唯一的。...---- 英文原文链接:Distributed Publish Subscribe in Cluster.

1.4K20

Akka 指南 之「集群的使用方法」

更高级别的群集工具 Cluster Singleton Cluster Sharding Distributed Publish Subscribe Cluster Client Distributed...WeaklyUp 成员 如果一个节点是unreachable的,那么消息聚合是不可能的,因此leader的任何行为也是不可能的。但是,在这个场景中,我们仍然可能希望新节点加入集群。...Distributed Publish Subscribe 在集群中的 Actor 之间发布订阅消息,并使用 Actor 的逻辑路径发布点对点(point-to-point)消息,即发送方不必知道目标...详见「Distributed Publish Subscribe」。 Cluster Client 从不是集群一部分的 Actor 系统到集群中某个地方运行的 Actor 的通信。...客户端不必知道目标 Actor 正在哪个节点上运行。 详见「Cluster Client」。

4.8K60
  • Akka 指南 之「分布式数据」

    「Distributed Data」示例项目来看看分布式数据是如何在实践中应用的。...请注意,在最终一致的系统中,读取可能会返回过期的值。 使用 Replicator akka.cluster.ddata.Replicator Actor 提供了与数据交互的 API。...在Update消息中,你可以传递一个可选的请求上下文,Replicator不关心该上下文,但它包含在回复消息中。...但是,没有定义回复消息的顺序,即在上一个示例中,你可能会在UpdateSuccess之前收到GetSuccess。 在Get消息中,你可以通过与上述Update消息相同的方式传递可选的请求上下文。...通过实现akka.cluster.ddata.DurableStore中描述的 Actor 协议并为新实现定义akka.cluster.distributed-data.durable.store-actor-class

    2.6K40

    Akka 指南 之「集群客户端」

    这就产生了紧密耦合,因为客户端和集群系统可能需要具有相同版本的 Akka、库、消息类、序列化程序,甚至可能是 JVM。...值得注意的是,由于这些 Actor 的分布式特性,消息总可能丢失。一如既往,额外的逻辑应该在目标(确认)和客户端(重试)Actor 中实现,以确保至少一次的消息传递。...在「Distributed workers with Akka and Java」指南中,有一个更全面的示例。...这在大多数情况下是方便和完美的,但是可以知道,akka.cluster.client.ClusterReceptionist是一个普通的 Actor,你可以同时拥有几个不同的接待员,服务不同类型的客户端...建议在 Actor 系统启动时加载扩展,方法是在akka.extensions配置属性中定义它: akka.extensions = ["akka.cluster.client.ClusterClientReceptionist

    1.8K30

    Akka 指南 之「集群分片」

    简介 当你需要将 Actor 分布在集群中的多个节点上,并且希望能够使用它们的逻辑标识符与它们进行交互,但不必关心它们在集群中的物理位置时,集群分片(Cluster sharding)非常有用,这也可能随着时间的推移而改变...如果你只有几个有状态的 Actor,那么在集群单例(Cluster Singleton)节点上运行它们可能更容易。...它将消息转发到SR2。 SR2接收到S2的消息,询问SC,SC回答S2的位置是SR2,这时我们将回到场景1中(但SR2除外)。...分布式数据的设置在akka.cluster.sharding.distributed-data部分中配置。对于不同的分片实体类型,不可能有不同的distributed-data设置。...只有在Shard中收到实体的第一条消息后,才会启动实体。如果实体停止而不使用Passivate,则不会重新启动。

    2.3K61

    Akka-Cluster(4)- DistributedData, 分布式数据类型

    在实际应用中,集群环境里共用一些数据是不可避免的。我的意思是有些数据可以在任何节点进行共享同步读写,困难的是如何解决更改冲突问题。...首先,共享数据结构是在各节点的replicator中构建的,数据更新时各节点程序把包嵌共享数据类型指定和对该数据更新方法函数的消息发送给本节点的replicator去更新并通过gossip协议向其它节点的...由于数据是存在于replicator内的,所以数据值的读取同样是通过向本地replicator发送数据读取消息实现的。...replicator作为一个actor,可以通过在.conf文件中定义akka-cluster-ddata-DistributedData扩展来启动,又或者直接通过replicator.prop构建。...0L 下面是用消息订阅方式获取读写状态的示范: replicator ! Subscribe(DataKey, self) ...

    71630

    AKKA中的事件流

    在《企业应用集成模式》一书中,定义了许多与消息处理有关的模式,其中运用最为广泛的模式为Publisher-Subscriber模式,尤其是在异步处理场景下。...这些任务虽然存在事务的一致性,但基于BASE原则,可以通过补偿机制实现事务的最终一致性。于是,设计时可以将这些任务交给不同的Subscriber,当接收到消息后,同时对订单进行处理。...AKKA提供的事件总线(Event Bus)可以看做是一种运用于特殊场景的消息总线,此时事件即为消息。...在AKKA中,Event Bus被定义为trait,定义了基本的订阅、取消订阅、发布等对应的方法,代码如下所示: trait EventBus { type Event type Classifier...AKKA自身也提供了默认的处理器,可以配置在application.conf文件中: akka { event-handlers = ["akka.event.Logging$DefaultLogger

    1.8K40

    Akka 指南 之「集群指标扩展」

    不同的收集器(collector)实现提供发布到集群的不同指标子集。当未设置Sigar时,某些消息路由和让其崩溃功能可能无法工作。...akka.cluster.metrics.ClusterMetricsChanged事件的有效负载将包含节点的最新指标,以及在收集器采样间隔期间接收到的其他群集成员节点指标流言。...Sigar使用的是本机 O/S 库,需要提供库,即在运行时将 O/S 本机库部署、提取和加载到 JVM 中。...akka.cluster.metrics.MetricsSelector的任何自定义实现 使用「指数加权移动平均值」平滑收集的指标值。在「集群配置」中,你可以调整过去的数据相对于新数据的衰减速度。...「Akka Cluster Sample with Java」中的代码和教程。

    72720

    项目实践,Redis集群技术学习(十四)

    但是当持有槽的主节点下线时,从故障发现到自动完成转移期间整个集群是不可用状态,对于大多数业务无法容忍这种情况,因此建议将参数cluster-require-full-coverage 配置为 no,当主节点故障时只影响它负责槽的相关命令执行...,不会影响其他主节点的可用性。...3)如果条件允许集群尽量均匀部署在更多机器上。避免集中部署,如集群有 60 个节点,集中部署在 3 台机器上每台部署 20 个节点,这时机器带宽消耗将非常严重。...cluster_pub_spread 2)在 6379 节点上发布频道为 cluster_pub_spread 的消息: 127.0.0.1:6379> publish cluster_pub_spread...message_body_1 3)集群内所有的节点订阅客户端全部收到了消息: 127.0.0.1:6380> subscribe cluster_pub_spread 1) "message" 2)

    41410

    实习培训考核内容--Akka+Netty编写聊天室系统

    前言:akka是一种基于Actor 模型,提供了一个在 JVM 上构建高并发、分布式和高容错应用程序的平台。...Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序,是目前最流行的 NIO 框架。...2、主要内容 2.1客户端与服务端模拟 客户端与服务端都是使用netty框架,客户端模拟用户的登录,服务端作为消息的转发,发送到akka集群中的分片区域的节点。...snapshot-store.local.dir = "target/snapshots/node1" # 快照存储路径 } } 3、补充 netty在进行消息传输时,服务端收到消息才会创建...: String) : Serializable 其余细节性的内容没有过多展示,新手代码编写可能较为冗余,文章只是作为自己学习的记录,可能没有太大的参考意义,所以希望大佬们嘴下留情

    12220

    kka-typed(5) - cluster:集群节点状态监视

    akka-cluster对每个节点的每种状态变化都会在系统消息队列里发布相关的事件。通过订阅有关节点状态变化的消息就可以获取每个节点的状态。...这部分已经在之前关于akka-cluster的讨论里介绍过了。由于akka-typed里采用了新的消息交流协议,而系统消息的发布和订阅也算是消息交换,也受交流协议约束。...所以想通过重写以前示范的ClusterMemberStatus来了解一下akka-typed环境下节点状态变化消息监听的一些机制。 我们需要一个actor来订阅系统发布的节点状态变化消息。...这里涉及到系统、actor两端的信息交流。假设向系统订阅是一种消息的发送,那么得到的节点状态变化消息就是系统的response了。...MonitorActor处理的消息类型是ClusterEvent。

    63630

    Redis基础知识(二)

    Redis发布订阅模式 Redis通过PUBLISH 、SUBSCRIBE 等命令实现了订阅与发布模式,发布者可以向多个频道发布消息,订阅者可以订阅多个频道,当然一个频道也可以有多个订阅者,发布者和订阅者的这种分离可以允许更大的可伸缩性和更动态的网络拓扑...命令 向频道发送消息 publish channel message 例如 返回的是接收到消息的订阅者数量 127.0.0.1:6379> publish CCTV1 worldnews (integer...一个主服务器可以有多个从服务器。从服务器也可以有多个从服务器,从服务器还可以以类似级联的结构连接到其他从服务器。 Redis复制在主服务器端无阻塞。...节点最近一次使用集群连接发送 PING 数据包(packet)的时间。 节点最近一次在回复中接收到 PONG 数据包的时间。 集群将该节点标记为下线的时间。 该节点的从节点数量。...以上信息的其中一部分可以通过向集群中的任意节点(主节点或者从节点都可以)发送 CLUSTER NODES 命令来获得。

    56140

    akka-typed(6) - cluster:group router, cluster-load-balancing

    WorkerRoutee.DoLog(s"msg $n") } group-router与pool-router有较多分别: 1、routee是在router之外构建的,router是用一个...就是说任何节点上的actor都可以在Receptonist上注册形成一个生存在集群中不同节点的actor清单。...那么获取的清单内应该全部是一种类型的actor,只不过它们的地址可能是跨节点的,但它们只能进行同一种运算。从另一个角度说,一项任务是分布在不同节点的actor并行进行运算的。...在上篇讨论里提过:如果发布-订阅机制是在两个actor之间进行的,那么这两个actor也需要在规定的信息交流协议框架下作业:我们必须注意消息类型,提供必要的消息类型转换机制。...那么发送给Receptionist消息中的replyTo必须是发送者能处理的类型,如下: def apply(): Behavior[Event] = Behaviors.setup { ctx =

    78620

    redis研究

    之所以说是有限的事务支持,是因为客户端成功在开启事务之后执行 EXEC,在执行EXEC的过程中如果 Redis 服务器因为某些原因被管理员杀死,或者遇上某种硬件故障,那么可能只有部分事务命令会被成功写入到磁盘中...、 UNSUBSCRIBE 和 PUBLISH 三个命令实现了发布与订阅信息泛型(Publish/Subscribe messaging paradigm), 在这个实现中, 发送者(发送信息的客户端..." 3) (integer) 2 #另一个客户端执行PUBLISH命令 > PUBLISH second Hello #前一个客户端则会收到消息 1) "message" 2) "second" 3...在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。数据库中的每条评论都有一个唯一的递增的ID字段。...比如我想要知道某些特定的注册用户或IP地址,他们到底有多少访问了某篇文章。

    82680

    Cluster Sharding及Kafka应用

    数据处理在 Session-Based 场景中的一大特点是:同一会话产生的数据应投递到同一处理单元中。...Entity 和 Node 的映射关系可能动态调整,比如 Cluster 扩缩容,Node 消息不可达或响应过慢导致的 Entity 在 Nodes 上分配的重新调整(Rebalance)。...Cluster Sharding Cluster Sharding 在集群内部实现消息路由,无论哪个节点接收到外部投递的消息,都应准确发送到目标 Entity 所属 Node。...根据目的地有两种场景:目标 shard 位于收到消息的 Node 本地;目标 shard 所在 Node 并非收到消息的 Node 。下面分别介绍这两种场景。...这是典型的 Publish-Subscribe 场景,可以使用 Kafka 保存单局事件,做到不同服务间的解耦。由于消极行为裁决要求保留消息的原始顺序,所以在通信链路上应该保证唯一性。

    1.2K123

    Akka-CQRS(6)- read-side

    前面我们全面介绍了在akka-cluster环境下实现的CQRS写端write-side。简单来说就是把发生事件描述作为对象严格按发生时间顺序写入数据库。...也就是说在另一个线程里有个程序也按时间顺序把这些二进制格式的对象读出来、恢复成某种结构如ActionGo类型、然后按照结构内的操作指令对业务数据进行实际操作处理,这时才会产生对业务数据的影响。...() } 这种pub/sub模式的特点是消息收发双方耦合度非常松散,但同时也存在订阅方sub即reader十分难以控制的问题,而且可以肯定的是订阅到达消息无法保证是按发出时间顺序接收的,我们无法控制...akka传递消息的过程。...下一篇准备对应前面的CQRS Writer Actor 示范里的akka-cluster-pos进行rCQRS-Reader-Actor示范。

    63530

    Redis Cluster执行流程

    ASK错误 在执行重新分片的过程中,可能存在这样一种情况:在迁移某个槽位上的数据时,一部分数据已经被迁移到了目标节点,而还有一部分数据仍然在源节点上未迁移完成。...如果一个集群中,半数以上的处理槽的主节点都认为一个主节点处于PFAIL状态,那么这个主节点就会被标记为已下线状态(FAIL),并将这个主节点下线的消息在集群中进行广播,所有接受到这条消息的节点都会立即将其标记为...新的主节点向集群中广播一条PONG消息,其他节点接收到消息后会立即知道新主节点的产生,并且这个主节点已经接管了已下线主节点的所有槽。 新的主节点开始接收和自己负责的槽相关的所有命令,故障转移完成。...节点的消息类型主要有一下五种: MEET:当sender接收到客户端发送的CLUSTER MEET命令时,会向receiver发送MEET消息,请求receiver加入到sender所在的集群中。...PUBlISH:当一个节点接收到PUBLISH命令时,节点会执行这个命令,并向集群中广播一条PUBLISH消息,所有接受到这条PUBLISH消息的节点都会执行相同的PUBLISH命令。

    87510

    【redis】来吧,展示一下redis 发布-订阅模式

    前言推送 什么是“发布 - 订阅 模式”? 答:你知道“观察者模式”吗? “发布 - 订阅 模式用来干嘛”? 答:你知道消息队列(MQ)的削峰、异步、解耦合吗?...redis的配置文件中是怎么来描述这个特性的? 答:可曾欣赏过redis.conf 吗? 这一切的一切,我都给你准备好了。...当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端。...废话不多说,直接看操作: Redis的消息机制:发布订阅 一publish: 发布消息 语法: publish channel名称"消息的内容” 一subscribe:订阅消息 语法: subscribe...在SUBSCRIBE,PSUBSCRIBE,UNSUBSCRIBE和PUNSUBSCRIBE命令中,其返回值都包含了该客户端当前订阅的频道和模式的数量,当这个数量变为0时,该客户端会自动退出订阅状态。

    1.2K20
    领券