Akka介绍(Akka 1)

Akka是一个运行在JVM上的工具套件,用于构建高并发、分布式及高弹性的消息驱动应用。本文介绍了Akka的异步特性,如何通过Actor、Stream和Future等高级抽象解决独占CPU核的问题,并探讨了其在单机环境下每秒处理50百万条消息的高性能表现,同时深入讨论了其支持的集群管理和非中心化机制。

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

1  Akka介绍

       Akka运行在JVM上,能够构建高并发、分布式和高弹性的消息驱动应用程序的一个工具套件。Akka具有异步、高性能、扩展性等特性。


1.1     异步

       异步能够对单一机器和跨越一个分布式的架构的集群都有益处。在单一节点中,通过组织同步和管道的逻辑,它完全可能有巨大的吞吐量。通过LMAX的Disruptor模式一个优秀的架构实例,它能够在单一线程模型下处理大量的事务(event)。那就是说,它满足一个非常特殊使用案例配置:高容量、低延迟和优化队列消费结构的能力。如果数据没有进入生产者,disruptor必须找到方法保存线程繁忙执行,只用不丢失能够使它高效运行的预热缓存。它也能够高效地使用预分配,异变状态来避免垃圾收集(GC),但是,如果开发者不知道它们在做什么就危险了。

        伴随着异步编程,我们尝试去解决对于独占的CPU核的不固定线程执行问题,取而代之的是允许所有线程公平地访问一个变换的线程模型。我们想通过分阶段执行任务来为硬件提供一种能够充分利用CPU核的方法。这会导致上线文(context)不断切换,应为不同的线程在CPU核里被调用去做他们的工作,这不利于整体的性能,既然当那个线程需要CPU时,数据必须加载到一个CPU核的缓存硬件中。这样的话,你也需要提供能够批量异步执行的方法。这就使得代码实现起来很不合理,但是,运行开发者去调优线程来表现更加缓存友好。


        通过设计像Actor、Stream和Future那样高级抽象,那就是异步和分布式了。


1.2     高性能

在单个机器上,每秒50百万条信息,极小内存消耗;部署层面上,每个GB堆2.5 百万个actor节点。


1.3     弹性和非中心化

Akka提供了一套成熟的运行模式,支持适配集群管理、负载均衡、路由、分区和分片机制。


欢迎关注我的微信公众号


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值