- 快召唤伙伴们来围观吧
- 微博 QQ QQ空间 贴吧
- 文档嵌入链接
- 复制
- 微信扫一扫分享
- 已成功复制到剪贴板
直面PHP微服务
展开查看详情
1 .直⾯面PHP微服务架构挑战 2019-04-20
2 .NeekeGao neeke@php.net SeasLog/JsonNet/SeasX
3 .“我们的系统将会拥有五千个微服务组件。 我们应该怎么做?” –某CTO如是说
4 .微服务的前世今⽣生 微服务的挑战 应该怎么⾯面对
5 . TOGAF DDD SOA GRASP原则 •1995/美国国防部 •精简的业务 • 信息孤岛 •⾃自⼰己⼲干⾃自⼰己的事 •企业架构域 •回答业务是做什什么的 • 业务重⽤用 •⾃自⼰己⼲干⾃自⼰己能⼲干的事 •ADM •不不断迭代 • 互联互通 •⾃自⼰己只⼲干⾃自⼰己的事 •企业连续 教科书:微服务架构是⼀一种架构模式,它提介将单⼀一应⽤用程序划分成⼀一组⼩小的服务,服务之间互相协调、互相配合,为⽤用户提供最终价值。每个服务运⾏行行在其独⽴立的进程中,服务与服务间采⽤用轻 量量级的通信机制互相沟通(通常是基于HTTP协议的RESTFul API)。每个服务都围绕着具体业务进⾏行行构建,并且能够被独⽴立的部署到⽣生产环境、类⽣生产环境等。另外,应当尽量量避免统⼀一的、 集中式的服务管理理机制,对具体的⼀一个服务⽽而⾔言,应根据业务上下⽂文,选择合适的语⾔言、⼯工具对其进⾏行行构建。 词条:微服务架构是⼀一项在云中部署应⽤用和服务的新技术。⼤大部分围绕微服务的争论都集中在容器器或其他技术是否能很好的实施微服务,⽽而红帽说API应该是重点。 微服务可以在“⾃自⼰己的程序”中运⾏行行,并通过“轻量量级设备与HTTP型API进⾏行行沟通”。关键在于该服务可以在⾃自⼰己的程序中运⾏行行。通过这⼀一点我们就可以将服务公开与微服务架构(在现有系统中分 布⼀一个API)区分开来。在服务公开中,许多服务都可以被内部独⽴立进程所限制。如果其中任何⼀一个服务需要增加某种功能,那么就必须缩⼩小进程范围。在微服务架构中,只需要在特定的某种 服务中增加所需功能,⽽而不不影响整体进程。
6 .使⽤用微服务架构,我们得到了了什什么 敏敏捷迭代(开发\测试\维护) 易易于扩展和收缩 多技术栈可能 ⾼高可修改性
7 .“微服务架构,你的系统变得健壮了了吗” “使⽤用微服务让系统变得更更快了了吗”
8 .微服务架构⾯面临的挑战和思考
9 . 1. ⼩小即是多 数据资源 多节点/服务/状态 业务功能 服务对象
10 . 2. 债务管理理 单元测试 集成回归 版本管理理 迭代冲刺刺 Bug Crash 回归总结
11 .3. 复杂的服务依赖 服务发现 依赖唤醒 灰度发布 AB测试 多版本共存
12 .4. 消息通讯 统⼀一标准 消息中⼼心 通讯⽹网关
13 . 5. 分布式事务 分布式消息(事件驱动) 2PC(投票 -> 执⾏行行) 最⼤大通知(定期校对) 3PC(Can -> Pre -> Do) 两阶段补偿TCC(Try/Confirm/Cancel)
14 .6. 花式故障 容错 灾备 物理理监控 状态监控 主动拨测 全链路路追踪
15 .7. 中⼼心与去中⼼心 配置中⼼心 发号中⼼心 ⽇日志中⼼心 调度中⼼心 状态中⼼心 预警中⼼心
16 . 8. 组织危机 信任危机 过期维护 多语⾔言栈 沟通协作 安全⽹网关 轮岗结对
17 . 微服务不不是银弹。 不不要让重复的事情做两次。