响应式编程与函数式编程基础
1. 分布式环境中的故障处理与响应式应用构建
在分布式系统中,横向扩展虽然能让应用处理更多的连接请求,但也让故障处理变得更加复杂。例如,若只有一个节点能连接到 Twitter,那么这个节点就成了单点故障点,一旦它出现问题,整个系统就会陷入困境。为避免单点故障,实际系统中通常会设置多个主节点,并设计相应机制来应对主节点故障。
在构建响应式 Web 应用时,可采用以下关键技术:
- 使用异步操作处理传入的 HTTP 请求。
- 利用迭代器(iteratees)、枚举器(enumerators)和枚举集合(enumeratees)异步流式处理和转换推文。
- 通过 Akka 参与者建立 WebSocket 连接,并将其连接到数据流。
- 在客户端处理故障。
- 使用简单的复制模型进行横向扩展。
2. 函数式编程基础概述
函数式编程是异步编程的核心,对于理解和编写 Scala 异步代码至关重要。其重要概念包括不可变性、函数以及对不可变集合的操作。
2.1 函数式编程定义
通常认为函数式编程是“用函数进行编程”,但这个定义比较模糊,未指出与命令式编程的区别。“Uncle Bob” Martin 给出的定义是:函数式编程是不使用赋值语句的编程。对于习惯命令式编程(如 Java)的开发者来说,这个定义可能难以理解,因为很难想象没有赋值语句的编程是什么样。不过,这个定义能帮助我们理解从命令式编程过渡到函数式编程时最难理解的概念:不可变性。即变量一旦声明,其值就不能改变,类似于 Java 中到处使用 final 关键字,且只
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



