akka mysql_初试超轻量级actor框架——akka

本文介绍了使用Akka框架实现多线程并发查询多个数据库的方法。Akka不仅支持Actor模式,还具备良好的容错性、内存对象事务管理和远程调用等功能。通过简单的示例代码展示了如何创建和使用TypedActor。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

akka的大名在之前学Scala的时候就时常听到,就连Scala作者都不得不赞叹它对actor实现的精妙。最近写一个服务端代码,对于接受到的请求需要查询后台多个数据库,这自然就想到用多线程来并行查询,然后把结果合并起来。这里最主要的就是多线程任务的执行以及执行结果的回调。这个时候突然回忆起用Scala时一个简单的“!”就实现了多线程调用的清爽和方便,那现在用java+akka框架是什么样呢?

先找到官方网站大概的翻阅了一下,惊讶的发现这个框架比想象中强太多了。一下载下来就看到很多高质量库,httpclient, netty, jetty, asm等等,这都不知道他具体想做成什么了。在官方看到一处说明,akka有两种使用方式,一种就是作为一个模块调用,另外一种就是作为一个服务。

看完文档后,感觉akka确实非常出色!实现了actor模式这点就不说了,首先就是有非常好的容错性,其次它居然还有对内存对象实现事务的功能,还有他能非常方便的实现远程调用以及线程间通讯,还能定制路由策略,对第三方框架的集成也非常好。基于上述的功能,akka完全有实力作为系统的核心框架,通过它简单的多线程调用方式和支持远程调用,实现一个分布式计算的系统非常容易。

最后还是给个小例子,代码很简单,只是用到的库非常多,放的位置也比较分散,自己慢慢找吧。

这个是TypedActor的接口:

importakka.dispatch.Future;

publicinterfaceMathTypedActor {

publicFuture square(intvalue);

}

这个是TypedActor的具体实现:

importakka.actor.TypedActor;

importakka.dispatch.Future;

publicclassMathTypedActorImplextendsTypedActorimplementsMathTypedActor {

@Override

publicFuture square(intvalue) {

returnfuture(value * value);

}

}

这是调用的main方法:

importakka.actor.TypedActor;

importakka.dispatch.Future;

publicclassMathTypedActorTest {

publicstaticvoidmain(String[] args) {

test();

}

privatestaticvoidtest() {

MathTypedActor math = TypedActor.newInstance(MathTypedActor.class, MathTypedActorImpl.class);

Future future = math.square(10);

future.await();

Integer result = future.result().get();

System.out.println(result);

TypedActor.stop(math);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值