akka cluster singleton
cluster singleton 需要注意的一点是
ClusterSingletonProxy 必须和 ClusterSingletonManager 一起工作
尝试过通过 path 来获得 singleton actor 的 actorRef,但是结果和期望的不同,具体的表现是,在 main 方法中,创建完 singleton actor 后,无法通过 path 获得实例
val system = ActorSystem("ClusterSystem", config)
val singletonManager: Props = ClusterSingletonManager.props(Master.props(Duration(99, "second")), "active", PoisonPill, None)
system.actorOf(singletonManager, "master")
val res = system.actorOf(ClusterSingletonManager.props(Master.props(Duration(99, "second")), "active", PoisonPill, None), "master")
val path = ActorPath.fromString("akka.tcp://ClusterSystem@127.0.0.1:2551/user/master/active")
askSingletonActor(system, path)
askSingletonActor 会报错,说找不到此 actor,但是 ClusterSingletonManager 的 actor 倒是找得到
在 singleton actor 的内部通过 path 找自己就找得到
正解是,通过 ClusterSingletonProxy 来寻找 singleton actor
val singletonActor = system.actorOf(ClusterSingletonProxy.props(
singletonPath = "/user/master/active",
role = None),
name = "consumerProxy") singletonActor ! ParentGreetings
这种方式,总是能够找的到 singleton actor。
对于一般的 actor,在 main 方法创建之后可以直接找到 actor
此外,我在 actor 做了下测试,通过消息传递的方式,1 秒内 能够从 0 加到 4 million,而 for 循环,达到千万只用了不到 0.05 秒
akka cluster singleton的更多相关文章
- Akka 集群单例Cluster Singleton
一.简介 集群中Cluster Singleton 集群中有而只一个单例,可应用于集群全局调控,单一运算决策,中央命名服务或中央路由等应用场景 二.依赖 dependencies { compile ...
- Run a task only once in (akka) cluster
在stackOverflow网站上看到这一提问,下文是部分摘抄问题简述: Java cluster, run task only once We have a java process, which ...
- Akka-Cluster(1)- Cluster Singleton 单例节点
关于cluster-singleton我在前面的博文已经介绍过,在这篇我想回顾一下它的作用和使用方法.首先,cluster-singleton就是集群某个节点上的一个actor.任何时间在集群内保证只 ...
- akka cluster sharding
cluster sharding 的目的在于提供一个框架,方便实现 DDD,虽然我至今也没搞明白 DDD 到底适用于是什么场合,但是 cluster sharding 却是我目前在做的一个 proje ...
- akka cluster 初体验
cluster 配置 akka { actor { provider = "akka.cluster.ClusterActorRefProvider" } remote { log ...
- akka cluster sharding source code 学习 (1/5) 替身模式
为了使一个项目支持集群,自己学习使用了 akka cluster 并在项目中实施了,从此,生活就变得有些痛苦.再配上 apache 做反向代理和负载均衡,debug 起来不要太酸爽.直到现在,我还对 ...
- Akka Cluster简介与基本环境搭建
akka集群是高容错.去中心化.不存在单点故障以及不存在单点瓶颈的集群.它使用gossip协议通信以及具备故障自动检测功能. Gossip收敛 集群中每一个节点被其他节点监督(默认的最大数量为 ...
- Akka系列(十):Akka集群之Akka Cluster
前言........... 上一篇文章我们讲了Akka Remote,理解了Akka中的远程通信,其实Akka Cluster可以看成Akka Remote的扩展,由原来的两点变成由多点组成的通信网络 ...
- akka cluster sharding source code 学习 (2/5) handle off
一旦 shard coordinator(相当于分布式系统的 zookeeper) 启动,它就会启动一个定时器,每隔一定的时间尝试平衡一下集群中各个节点的负载,平衡的办法是把那些负载较重的 actor ...
随机推荐
- PID控制器(比例-积分-微分控制器)- I
形象解释PID算法 小明接到这样一个任务: 有一个水缸点漏水(而且漏水的速度还不一定固定不变),要求水面高度维持在某个位置,一旦发现水面高度低于要求位置,就要往水缸里加水. 小明接到任务后就一直守在水 ...
- 9.7 dubbo心跳机制
dubbo的心跳机制: 目的:检测provider与consumer之间的connection连接是不是还连接着,如果连接断了,需要作出相应的处理. 原理: provider:dubbo的心跳默认是在 ...
- Android四大组件应用系列——使用BroadcastReceiver和Service实现倒计时
一.问题描述 Service组件可以实现在后台执行一些耗时任务,甚至可以在程序退出的情况下,让Service在后台继续保持运行状态.Service分本地服务和远程服务,Local地服务附在主进程上的m ...
- jni4net使用小结
网站首页 http://jni4net.com/ 一个简单的例子: 1) 从这里下载binaries,然后解压缩. https://sourceforge.net/projects/jni4 ...
- 使用PostgreSQL存储时序数据
操作系统 :CentOS7.3.1611_x64 PostgreSQL版本 :9.6 问题描述 在InfluxDB中存储时序数据时,当tag值和时间戳都相同时会执行覆盖操作.在PostgreSQL中能 ...
- 多线程本地图片载入演示样例【OpenCV】【Pthread】
Pthread barrier的简单使用演示样例: C++代码例如以下: // ThreadingLoadImages.cpp : 定义控制台应用程序的入口点. // #include "s ...
- oracle完全删除实例
问题描述: 重建oracle库实例,因此要删除数据库实例 问题解决: 利用自用自带的dbca库管理,实现图形化删除实例 01.登录安装oracle数据库的linux 打开xshell企业版的Xman ...
- 【LeetCode】239. Sliding Window Maximum
Sliding Window Maximum Given an array nums, there is a sliding window of size k which is moving fr ...
- redis性能测试报告
服务器配置:16核心,64G 250个并发读:250个并发写性能[内容8千byte] 163为读:164为写:
- linux下编译安装pthreads扩展
这里讲的是如何编译安装pthreads,以后编译安装其他PHP扩展可以参考此方法. 下载pthreads源码:http://pecl.php.net/package/pthreads 首先确定安装的p ...