编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。
Akka Actor模型开发库是一个为Java和Scala构建高并发、分布式和弹性消息驱动应用程序的工具包,更轻松地构建强大的反应式、并发式和分布式应用。
软件介绍
Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:
1、系统中的所有事物都可以扮演一个Actor;
2、Actor之间完全独立;
3、在收到消息时Actor所采取的所有动作都是并行的,在一个方法中的动作没有明确的顺序;
4、Actor由标识和当前行为描述;
5、Actor可能被分成原始(primitive)和非原始(non primitive)类别;
6、非原始Actor有:
由一个邮件地址表示的标;
当前行为由一组知识(acquaintances)(实例变量或本地状态)和定义Actor在收到消息时将采取的动作组成;
7、消息传递是非阻塞和异步的,其机制是邮件队列(mail-queue);
8、所有消息发送都是并行的。
软件特色
简单的并发和分布式系统
Actors和Streams让你构建的系统可以扩展,更有效地使用服务器的资源,出,使用多个服务器。
弹性设计
基于 "反应式宣言 "的原则,Akka允许你编写系统,使其在面对失败时能够自我修复并保持响应。
高效能
在单机上最高可达到 5000 万 msg/秒。小内存占用;每GB堆约250万个角色。
弹性和分散式
无单点故障的分布式系统。跨节点的负载均衡和自适应路由。使用集群共享的事件源和CQRS。使用CRDTs实现最终一致性的分布式数据。
反应式流数据
异步非阻塞流处理与反压。完全异步和流式HTTP服务器和客户端为构建微服务提供了一个很好的平台。与Alpakka进行流式集成。
使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。