java的akka测试

简单的消息框架吧,这样用的话

package com;

import akka.actor.UntypedActor;

public class HelloActor extends UntypedActor {
    public static final String KEY = "HelloActor";

    @Override
    public void onReceive(Object arg0) throws Exception {
        System.out.println(" HelloActor ======>" + arg0);

        ActorMgr.getDefault().tell(WorldActor.KEY, "====>> gogo");

    }

}
package com;

import akka.actor.UntypedActor;

public class WorldActor extends UntypedActor {

    public static final String KEY = "WorldActor";

    @Override
    public void onReceive(Object arg0) throws Exception {
        System.out.println(" WorldActor ======>" + arg0);
    }

}

package com;

import java.util.concurrent.ConcurrentHashMap;

import akka.actor.ActorRef;
import akka.actor.ActorSystem;
import akka.actor.Props;

public class ActorMgr {

    private static final ActorMgr _instance = new ActorMgr();

    private static ConcurrentHashMap<String, ActorRef> kv = new ConcurrentHashMap<>();

    public static ActorMgr getDefault(){
        return _instance;
    }

    private ActorSystem sys;
    public void start(){
        sys = ActorSystem.create("ActorMgr");
    }

    public ActorRef actorOf(String key, Class clazz){
        ActorRef value = sys.actorOf(Props.create(clazz));
        kv.put(key, value);
        return value;
    }

    public boolean tell(String key, Object msg){
        ActorRef val = kv.get(key);
        if (val == null)
            return false;
        val.tell(msg, val);
        return true;
    }

    public void shutdown(){
        sys.shutdown();
    }
}

package com;

import akka.actor.ActorRef;

public class Main {

    public static void main(String[] args) {

        ActorMgr m = ActorMgr.getDefault();
        m.start();

        ActorRef a1 = m.actorOf(HelloActor.KEY, HelloActor.class);
        ActorRef a2 = m.actorOf(WorldActor.KEY, WorldActor.class);

        a1.tell("gogo", a1);

        m.shutdown();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值