Akka与微服务实践
1号店-搜索与精准化部架构师 王富平
SOA治理
• 微服务的官感:独立、开放。
1 、契合人类的历史:部落-族群(各种
歧视)-家庭-人
2 、契合人的本性:开放促进了融合、消
弭误解
SOA演变历史
图片引用自dubbo官网
SOA演变历史
• 单一应用架构
– 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
– 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
• 垂直应用架构
– 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个
应用,以提升效率。
– 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
• 分布式服务架构
– 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐
渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
– 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
• 流动计算架构
– 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中
心基于访问压力实时管理集群容量,提高集群利用率。
– 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
需要给微服务一个定义
• 服务化 != 微服务
• 微服务的重点
1 、微型化:进一步分解传统领域服务,粒
度更小
2、标准化:统一部署、管理
3、平台化:在标准化前提下,接入统一管理
平台,提供监控、负载均衡、动态扩展等功能
Akka是什么鬼?
• 可扩展的实时事务处理框架
1. 并发模型:基于actor模型,对并发、并行、事
务处理做了高级抽象。
2. 高性能、容错:actor提供了异步非阻塞的事
件驱动编程模型, 提供了明确的错误处理机制
3. 可扩展:
3.1. cluster模式下,可以动态增减处理节点
3.2. 自动监控节点,实现负载均衡
举个栗子:A转账给 B
转出服务 消息系统 转入服务
记录请求
检查余额是否
足够
YES
提交扣款 成功 转入请求
结束 撤销请求 失败 提交入款
撤销 结束
Akka实现
Akka微服务架构
Rest api
直接调用
Play Play Apache
Node
Actor Actor Actor
agent agent agent
Node Node
微服
原创力文档

文档评论(0)