Akka Actor是一款专业的程序开发软件。功能强大的分布式程序开发软件Akka Actor。软件提供用于构建的分布式程序开发方案,用于java和scala的构建高卡路里并发,分布式和弹性消息传递应用程序,软件提供多个模块来帮助您构建程序,可以配置并发和分发方案,您可以配置HTTP,您可以配置一个集群,提供的模块仍然非常多。它适合需要设计分布式工作计划的朋友。您可以在软件中创建群集共享程序,为群集中的参与者提供切片功能,可以在群集中设置。设置参与者的数量,支持启动实体设置,通过其实体标识配置特定的分片实体,您可以直接创建新实体,更轻松地构建强大的无功,并发应用程序,下载!
软件功能:
1,Akka演员
Akka的核心是:一种并发和分发模型,没有所有疼痛的主要语言。
2,又名溪流
用于执行异步的直观和安全的方法,没有阻挡压力。
3,akka http
现代快速,异步,流优先级HTTP服务器和客户端。
4,AKKA集群
通过在多个节点上分配系统来实现弹性和弹性。
5,簇碎片
根据角色分发它们在集群中的角色。
6,分布式数据
最终一致,非常可读,低延迟的数据。
7,又名持久性
参与者的事件外包允许他们在重新启动后达到相同的状态。
8,Akka投影
使用AKKA预测,您可以处理从原点到投影模型或外部系统的事件或记录流。
9,Akka Management
用于在云系统上运行AKKA系统的扩展(K8,AWS等)
10,alpakka
Alpakka基于反应溪流和Akka的反应企业集成图书馆。
11,Alpakka Kafka
Alpakka Kafka连接器 - Ractival Streams和Akka的Java和Scala的反应企业集成图书馆。
12,Akka Grpc
运输GRPC服务器和客户端拖动。
官方教程:
创建一个演员
到目前为止,我们研究了演员的定义及其新闻。现在让我们更多地了解该位置的功能,并了解如何创建Actor实例。
位置透明功率
在AKKA中,您无法使用新关键字创建Actor的实例。但使用Factory Spawn方法创建实例。 spawn不会返回一个参与者实例,但akka.actor.typed.actorref指向参与者实例的引用。这种间接级别在分布式系统中增加了大量功能和灵活性。
在又名,该地点是微不足道的。位置透明度意味着ActorRef容器保持相同的语义,仍然指示过程中的演员或远程计算机上的示例。
如果需要,您可以通过在演员运行时更改其位置或整个应用程序拓扑来优化系统。这将使“让我们崩溃”故障管理模型。在这个模型中,系统可以通过撞击故障演员并从我重新启动健康的演员来从我这里。
Akka演员系统
Anactorsystem是Akka的初始入口点。通常,每个应用程序只创建一个。 Anactorsystem有名称和监护人。应用程序的引导程序通常在守护进程中完成。
守护者是Breetermain。
Val Breakermain:Actorsystem [Braintermain.sayhello] = Actorsystem(Breakermain(),“AkkaquickStart”)
它用于行为.Setup引导应用程序。
生成儿童演员
其他参与者是由Spawn方法创建的ActorContext。创建Gretermain以以此方式开始,并且每个接收时间Saylo消息的新调味品。
异步通信
参与者是反应性的,是消息传递。在收到消息之前,演员不会做任何事情。 AC.
tor与异步消息进行通信。这可确保发件人不会留在等待收件人处理消息的过程中。相反,发件人将消息放在收件人的邮箱中,这是自由才能做其他工作。 Actor的邮箱基本上是一个带有测序语义的消息队列。保留从同一actor发送的多个消息的顺序
当演员没有解决消息时,您可能想知道演员正在做什么(即实际工作)?它处于暂停状态,其中它不会消耗除内存之外的任何资源。同样,展示了演员的轻质,效率。
向演员发送消息
要将消息放入演员的邮箱,请使用它! (爆炸)方法actorref。例如,Hello World的主要类向BretterMainActor发送消息,如下所示:
我们研究了如何定义参与者的行为并发送消息。现在让我们通过完整的视图查看主要课程。
主班
Akkaquickstarthello World中的对象将创建一个监护人的行为系统。监护人是一个顶级参与者,指导您的应用程序。它通常使用使用行为的守护程序定义.Setup。
完整的示例代码
查看参与者行为,消息的定义以及如何启动示范系统:
作为另一个最佳实践,我们应该提供一些测试范围。
测试演员
Hello World示例中的测试说明了ScalAtest框架的用法。测试范围不完整。它只是显示了测试参与者代码的简单,并提供了一些基本概念。您可以将其添加为练习以增加您的知识。
测试类别定义
AkkaquickStartSpec类别将ScalestWithActestKit与Anywordspeclike {
支持ScalestWithActestKit通过扩展的ScalaTest包含。对于其他测试框架,您可以直接使用testkit
这管理actortestkit,我们将在测试中使用生命周期。
测试方法:
此测试使用TestProbe询问并验证预期的行为。让我们来看看源代码片段:
一旦您参考TestProbe,我们将作为regreter的一部分传递它。然后我们验证了克雷特回应有问候。
完整的测试代码
而且,这是一个完整的代码:
此示例代码只是在头部中间提供的函数行为。
软件特色:
1,简单的并发和分布式系统
演员和流量使您使用多个服务器创建尺寸系统,更高效,更高,更高。
2,设计是弹性的
根据“响应声明Akka”的原则,您可以在发生故障时编写可以自修复和保持响应性的系统。
3,高性能
计算机上的速度高达5000万msg /秒。记忆力较少,每GB的约250万参与者。
4,弹性和分散
分布式系统没有单点故障。跨节点负载平衡和自适应路由。事件源和CQRS具有集群分数。使用CRDT实现最终一致性分布式数据。
5,反应流数据
异步非阻塞流量处理背压。完全异步和流的HTTP服务器和客户端为构建微服务提供了一个很好的平台。与alpakka流程集成。