1、响应式基本概念:
1)响应式编程(reactive programing):
响应式编程也是一种编程范式,类似最近几年随着大数据崛起的函数式编程(scala为代表)一样;90年代末由微软工程师提出来的。RP(reactive programing)是一种基于异步数据流概念的编程范式,他的精髓也在于对数据流的高效处理。
2)响应式扩展(reactive extensions):
RX是一种编程模型,最初是由微软(又是微软)Erik Meijer领导的团队在.NET平台上开发,随着响应式编程的不断传播,已经移植到很多语言上了,比如RxJava是Netflix在2013年在Java中的实现,更多语言的实现可以到ReactiveX网站上查看。
Rx思想的本质是能够让我们以同步的方式写异步代码,同步是指代码看起来没有回调之类的结构,代码就像是一连串 顺序 执行的指令,不会和回调一样后一行的代码可能在前一行代码的前面执行,异步是指虽然代码看起来时同步的,但是实际执行时却可以是异步的,这个异步的过程是Rx帮我们做了。
对于响应式这块,我们可以参考《反应式设计模型》、《Erlang趣学指南》(Erlang是一种通用的并发程序设计语言)
Actor 模型为编写并发和分布式的系统提供了高层次的抽象,为开发人员屏蔽了显式锁定和线程管理的工作;同时,他为响应式系统(reactive)提供了核心功能,这些功能在反应式中定义为响应性、弹性、扩展性以及消息驱动等。
Akka 是一个基于 Actor 的框架,是一个在 JVM 上构建高并发、分布式、有弹性的消息驱动应用的工具集。Akka “actor”只是 Akka 工具集中一部分,它能够让我们在编写并发代码时,不用去思考低层级的线程和锁。Akka 中其他的工具还包括 Akka Streams 和 Akka http。尽管 Akka 是使用 Scala 编写的,但是它也有Java API。