为了账号安全,请及时绑定邮箱和手机立即绑定

Akka的好用例

/ 猿问

Akka的好用例

烧仙草VB 2019-12-06 15:59:49

我听说过很多关于Akka框架(Java / Scala服务平台)的赞誉,但是到目前为止,还没有看到很多对用例有益的实际用例。因此,我想听听有关开发人员成功使用它的知识。


只有一个限制:请不要包括编写聊天服务器的情况。(为什么?因为这已被过度用作许多类似事物的示例)


查看完整描述

3 回答

?
缥缈止盈

到目前为止,我已经非常成功地在两个实际项目中使用了它。两者都位于近实时交通信息领域(交通流量就像高速公路上的汽车一样),分布在多个节点上,整合了多方之间的消息以及可靠的后端系统。我还没有自由提供有关客户端的详细信息,当我确定时,也许可以将其添加为参考。

Akka确实完成了这些项目,即使我们是从0.7版本开始的。(我们正在使用scala)

最大的优势之一是,您可以轻松地由参与者和消息组成几乎没有重复电镀的系统,它的伸缩性非常好,而无需手动卷入线程的所有复杂性,并且几乎可以免费在对象之间传递异步消息。

在对任何类型的异步消息处理进行建模方面非常好。与任何其他样式相比,我更喜欢以这种样式编写任何类型的(网络)服务系统。(您是否曾经尝试用JAX-WS编写异步Web服务(服务器端)?这有很多问题)。因此,我想说任何不想挂在其组件之一上的系统,因为所有组件都使用同步方法隐式调用,并且该组件正在锁定某个对象。它非常稳定,让故障崩溃+主管解决故障的方法非常有效。一切都很容易以编程方式设置,而且很难进行单元测试。

然后是出色的附加模块。Camel模块确实可以很好地插入Akka中,并且可以通过可配置的端点轻松开发异步服务。

我对该框架感到非常满意,它已成为我们构建的连接系统的事实上的标准。


查看完整回答
反对 回复 2019-12-06
?
慕的地8271018

免责声明:我是Akka的PO

除了提供并发smorgasbord之外,它更易于推理和获取正确的内容(参与者,代理,数据流并发),并且采用STM形式的并发控制。

您可能会考虑以下一些用例:

  1. 交易处理(在线游戏,金融,统计,投注,社交媒体,电信等)

    • 扩大规模,扩大规模,容错/ HA

  2. 服务后端(任何行业,任何应用)

    • 服务REST,SOAP,cometd等

    • 充当消息中心/集成层

    • 扩大规模,扩大规模,容错/ HA

  3. 管理单元并发/并行(任何应用程序)

    • 正确

    • 易于使用和理解

    • 只需将罐子添加到现有的JVM项目中(使用Scala,Java,Groovy或JRuby)

  4. 批处理(任何行业)

    • 骆驼集成以连接批处理数据源

    • 参与者分而治之

  5. 通讯中心(电信,网络媒体,移动媒体)

    • 扩大规模,扩大规模,容错/ HA

  6. 游戏服务器(在线游戏,投注)

    • 扩大规模,扩大规模,容错/ HA

  7. BI /数据挖掘/通用处理

    • 扩大规模,扩大规模,容错/ HA

  8. 在这里插入其他好的用例


查看完整回答
反对 回复 2019-12-06
?
慕桂英546537

例如,在借记卡/信用卡交易的优先级队列中,我们将如何使用它。我们有数百万种这样的工具,而工作量取决于输入字符串的类型。如果交易的类型为CHECK,我们的处理量很少,但如果是销售点,则要做很多事情,例如与元数据合并(类别,标签,标签等)并提供服务(电子邮件/短信提醒,欺诈检测,资金余额不足等)。根据输入类型,我们组成处理工作然后执行工作所需的各种特征(称为混合)类。来自不同金融机构的所有这些工作都以实时模式进入同一队列。清除数据后,会将其发送到其他数据存储以进行持久性,分析,推送到套接字连接或Lift Comet actor。工作参与者不断地自我平衡工作负载,以便我们能够尽快处理数据。我们还可以加入其他服务,持久性模型和关键决策点的stm。

在JVM上传递的Erlang OTP样式消息是在现有库和应用程序服务器的肩膀上开发实时系统的绝佳系统。

Akka允许您像在传统esb中一样进行消息传递,但是速度很快!它还为您提供了框架中的工具,以管理解决方案所需的大量参与者池,远程节点和容错能力。


查看完整回答
反对 回复 2019-12-06

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信