1.应用场景

学习目前流行的微服务架构模式, 并且结合具体情况,采用合适的架构模式,开发高可用可扩展易维护的系统.

2.学习/操作

微服务架构的整体架构图和一次正常的服务调用的完整流程:

1. 文档

微服务从入门到实践 | Laravel 学院

腾讯开源|腾讯与阅文技术合作 微服务框架Tars再添PHP

Chris Richardson 微服务系列文章 翻译 - 简书

https://drive.google.com/drive/folders/1t-A5QvlKiOhEht5gaKL-fSfT64GjeEoG // 微服务架构设计模式-aws 推荐.pdf

https://microservices.io/ // The site of Chris Richardson

01 分布式系统架构的冰与火 -- william

https://blog.csdn.net/william_n/article/details/116023669

PHP - RPC框架 - 学习/实践_william_n的博客-CSDN博客

2021-04-22 - RPC / 远程方法调用 - 学习/实践_william_n的博客-CSDN博客

What's the Difference Between Monolith and Microservices? | Nordic APIs | -- 单体架构与微服务架构的不同

2. 整理输出

2.1 前言

软件的技术架构,就是选择和取舍。

面对围绕微服务的众多杂音,开发者和架构师应该具备选择和取舍的能力,应该站在比较高的角度俯瞰全局,权衡利弊,做出正确的架构和技术选择。

微服务的介绍

简单回顾一下,微服务就是将庞杂臃肿的单体应用拆分成细粒度的服务,独立部署,并交给各个中小团队来负责开发、测试、上线和运维整个生命周期。

2.2 内容列表

2.2.1 逃离单体地狱

...

组织结构

2.2.2 服务的拆分策略

 补充

开篇:什么是微服务架构 | 概念术语 | 微服务从入门到实践

2.2.3 微服务架构中的进程间通信

TBD

2.2.4 使用Saga管理事务

TBD

2.2.5 微服务架构中的业务逻辑设计

TBD

2.2.6 使用事件溯源开发业务逻辑

TBD

2.2.7 在微服务架构中实现查询

TBD

2.2.8 外部API模式

TBD

2.2.9 微服务架构中的测试策略(上)

TBD

2.2.10 微服务架构中的测试策略(下)

TBD

2.2.11 开发面向生产环境的微服务应用

TBD

2.2.12 微服务部署应用

TBD

2.2.13 微服务架构的重构策略

TBD

...

后续补充

...

3.问题/补充

1. 微服务框架

目前,市面上已经有很多符合我们前面介绍的满足微服务架构的开源 RPC 框架,比如 Dubbo、Spring Cloud、gRPC、Thrift 等,但由于本系列教程基于 PHP + Go 进行开发,所以,我们选择一个基于 Go 语言生态里的 Go Micro 框架作为微服务开发框架。

go-micro

2.  关于编程的良好实践以及对微服务的认知

33 | 动手实现一个简单的RPC框架(三):客户端-极客时间

3. 微服务架构6大组件

1、服务描述:RestfulApi (http)、xml (rpc)、IDL (grpc)
2、注册中心:注册(服务提供者->注册中心)、订阅(服务消费者->注册中心)、返回(注册中心->服务消费者)、通知(注册中心->服务消费者)
3、服务框架
4、服务监控(发现问题):指标收集、数据处理、数据展现
5、服务追踪(定位问题):RequestId传递
6、服务治理(解决问题):

单机故障——自动摘除、

单IDC故障——自动切换、

依赖服务不可用——熔断

4.参考

参见文档阅读列表

后续补充

...

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐