Github上霸榜的微服务笔记终于要开源了!涵盖其所有技术栈

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 随着云端办公以来,发现微服务越来越重要了。Docker 容器技术和自动化运维等相关技术发展,使微服务变得更容易维护。大家可能都注意到,像阿里、腾讯、字节跳动等大厂的后端岗位明确写出:微服务设计经验优先。如果没有这方面的准备的话,想拿到高薪可不容易。

前言

随着云端办公以来,发现微服务越来越重要了。Docker 容器技术和自动化运维等相关技术发展,使微服务变得更容易维护。大家可能都注意到,像阿里、腾讯、字节跳动等大厂的后端岗位明确写出:微服务设计经验优先。如果没有这方面的准备的话,想拿到高薪可不容易。

不难预料,今年,微服务只会越来越完善,成为将来大中型企业业务架构的发展方向。但对于一些 coding 的朋友,由于接触不到一线实战架构设计,眼看别人都在向微服务架构转型,自己却只能日复一日地重复造轮子。

微服务越来越重要,但以下6个点是大家也都需要注意的:

  • 微服务不是解决所有问题的万能“银弹"。
  • 编写整洁的代码和使用自动化测试至关重要,因为这是现代软件开发的基础。
  • 关注微服务的本质,即服务的分解和定义,而不是技术,如容器和其他工具。
  • 确保你的服务松耦合,并且可以独立开发、测试和部署,不要搞成分布式单体,那将会是巨大的灾难。
  • 最重要的,不能只是在技术上采用微服务架构。拥抱DevOps的原则和实践,在组织结构上实现跨职能的自治团队,这必不可少。
  • 还必须记住:实现微服务架构并不是你的目标。你的目标是加速大型复杂应用程序的开发。

如今,业务关键型企业应用程序通常是由大型团队开发的大型单体应用。虽然软件版本不经常更新,但每次更新都会给所涉及的参与人员带来巨大的痛苦。IT经常难以跟上业务需求。大家都很想知道如何采用微服务架构来解决所有这些问题。下面这份Github上超火的微服务笔记就完全可以教你如何成功开发基于微服务架构的应用程序。

为了不影响大家的阅读体验,只能以截图主要内容这种形式展示出来了,需要完整高清版笔记的老哥可以点击此处来获取就可以了!

微服务架构设计模式

  • 1逃离单体地狱

描述了所谓“单体地狱”的症状,当单体应用程序超出其架构时会出现这种问题,这可以通过采用微服务架构来规避。

  1. 迈向单体地狱的漫长旅程      
  2. 拯救之道:微服务架构    
  3. 微服务架构的好处和弊端    
  4. 微服务架构的模式语言   
  5. 微服务之上:流程和组织

  • 2服务的拆分策略

解释了为什么软件架构很重要,描述了可用于将应用程序分解为服务集合的模式,并解释了如何克服在此过程中遇到的各种障碍。

  1. 微服务架构到底是什么  
  2. 为应用程序定义微服务架构 

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

介绍了微服务架构中强大的进程间通信的几种模式,解释了为什么异步和基于消息的通信通常是最佳选择。

  1. 微服务架构中的进程间通信概述
  2. 基于同步远程过程调用模式的通信
  3. 基于异步消息模式的通信 
  4. 使用异步消息提高可用性

  • 4使用Saga管理事务

介绍如何使用Saga模式维护服务间的数据一致性。Saga是通过传递异步消息的方式进行协调的一系列本地事务。

  1. 微服务架构下的事务管理  
  2. Saga的协调模式
  3. 解决隔离问题  
  4. Order Service和Create Order Saga的设计

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

介绍如何使用领域驱动设计(DDD)的聚合和领域事件等模式为服务设计业务逻辑。

  1. 业务逻辑组织模式 
  2. 使用聚合模式设计领域模型
  3. 发布领域事件
  4. Kitchen Service的业务逻辑
  5. Order Service的业务逻辑

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

以上一部分为基础,解释了如何使用事件溯源模式开发业务逻辑,事件溯源模式是一种以事件为中心的设计思路,用来构建业务逻辑和持久化领域对象。

  1. 使用事件溯源开发业务逻辑概述
  2. 实现事件存储库
  3. 同时使用Saga和事件溯源

  • 7在微服务架构中实现查询

介绍如何使用API组合模式或命令查询职责隔离(CQRS)模式,这两个模式用来实现查询分散在多个服务中的数据。

  1. 使用API组合模式进行查询
  2. 使用CQRS模式 
  3. 设计CQRS视图  
  4. 实现基于AWS DynamoDB的CQRS视图

  • 8外部API模式

介绍了处理来自各种外部客户端请求的外部API模式,例如移动应用程序、基于浏览器的JavaScript应用程序和第三方应用程序。

  1. 外部API的设计难题 
  2. API Gateway模式
  3. 实现一个API Gateway

  • 9微服务架构中的测试策略

介绍了重要的测试概念,例如测试金字塔,描述了测试套件中每种测试类型的相对比例,还展示了如何编写构成测试金字塔基础的单元测试。描述了如何在测试金字塔中编写其他类型的测试,包括集成测试、消费者契约测试和组件测试等。

  1. 微服务架构中的测试策略概述 
  2. 为服务编写单元测试 
  3. 编写集成测试
  4. 编写组件测试
  5. 端到端测试

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

介绍了开发生产就绪服务的各个方面,包括安全性、外部化配置模式和服务可观测性模式。服务可观测性模式包括日志聚合、应用指标和分布式追踪。

  1. 开发安全的服务
  2. 设计可配置的服务
  3. 设计可观测的服务 
  4. 使用微服务基底模式开发服务

  • 11部署微服务应用

介绍了可用于部署服务的各种部署模式,包括虚拟机、容器和Serverless模式。还介绍了使用服务网格的好处,服务网格是在微服务架构中处理服务间通信的一个网络软件层。

  1. 部署模式:编程语言特定的发布包格式 
  2. 部署模式:将服务部署为虚拟机
  3. 部署模式:将服务部署为容器
  4. 使用Kubernetes部署FTGO应用程序
  5. 部署模式:Serverless部署 
  6. 使用AWS Lambda和AWS Gateway部署RESTful服务

  • 12微服务架构的重构策略

介绍了如何通过采用绞杀者(Strangler)模式逐步将单体架构重构为微服务架构,绞杀者模式是指以服务形式实现新功能,从单体中提取模块将其转换为服务在学习这些章节的过程中,读者将了解微服务架构的不同方面。

  1. 重构到微服务需要考虑的问题
  2. 将单体应用重构为微服务架构的若干策略 
  3. 设计服务与单体的协作方式
  4. 将新功能实现为服务:处理错误配送订单
  5. 从单体中提取送餐管理功能

写在最后

笔记中既包含了微服务的原理、原则,又包含了实际落地中的架构设计模式;全面概述了团队在转向微服务时面临的挑战,以及针对这些问题的、经过行业检验的解决方案。

需要获取这份微服务笔记的老哥,可以点击此处来获取就可以了!

相关文章
|
19天前
|
存储 JavaScript 网络架构
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
28 3
|
2月前
|
人工智能 文字识别 异构计算
关于github开源ocr项目的疑问
小白尝试Python OCR学习,遇到报错。尝试Paddle OCR部署失败,Tesseract OCR在Colab误操作后恢复失败。EasyOCR在Colab和阿里天池Notebook成功,但GPU资源不足。其他平台部署不顺,决定使用WebUI或阿里云轻应用。求教OCR项目部署到本地及简单OCR项目推荐。
30 2
|
2月前
|
Web App开发 前端开发 数据库
推荐GitHub上开源的一款独立开发者出海技术栈和工具合集
推荐GitHub上开源的一款独立开发者出海技术栈和工具合集
|
2月前
|
机器学习/深度学习 人工智能 API
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
『GitHub项目圈选06』推荐5款本周 超火 的开源AI项目
|
2月前
|
自然语言处理 并行计算 PyTorch
GitHub 开源神器 Bark模型,让文本转语音更简单!
GitHub 开源神器 Bark模型,让文本转语音更简单!
|
4月前
|
SQL 存储 数据挖掘
从GitHub火到头条!这套万人期待的 SQL 成神之路PDF,终于开源了!
近年来,随着互联网技术的发展,数据分析领域越来越受到人们的重视。能够有效地操作和分析数据,已经成为很多企业和个人成功的重要保证。SQL 是数据操作和查询的重要工具,掌握它不仅可以帮助我们更好地利用数据,也可以为我们打开新的职业之门。
|
4月前
|
Java 程序员 Docker
爱了!Alibaba技术官甩出的SpringCloud笔记,GitHub已标星81.6k
阿里巴巴,作为国内互联网公司的Top,算是业界的标杆,有阿里背景的程序员,也更具有权威性。作为程序员,都清楚阿里对于员工要求有多高,技术人员掌握的技术水平更是望尘莫及。所以,大厂程序员的很多经验也都值得我们借鉴和学习,在一定程度上确实能够帮助我们“走捷径”。
|
3月前
|
消息中间件 安全 druid
GitHub昙花一现!《Spring Boot趣味实战课》神作开源几分钟被下架
今天给大家分享好书了:刘水镜老师的 《Spring Boot趣味实战课》,网上依旧是没有开源版本!小编会在文末附电子版免费下载方式。 刘水镜是谁? 十余年持续技术文章输出,CSDN博客专家。2020年《 Spring Boot趣味私房课》专栏上线,凭借风趣幽默、深入浅出的写作风格深受读者好评。 《Spring Boot趣味实战课》 内容丰富、趣味实战是本书的两大特色 涵盖 Spring MVC、MyBatis Plus、Spring DaJPA、Spring Security、Quartz等主流框架 整合MySQL. Druid、Redis、 RabbitMQ、Elastics
41 0
|
2月前
|
数据采集 人工智能 Rust
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
『GitHub项目圈选周刊01』一款构建AI数字人项目开源了!自动实现音视频同步!
234 0
|
17天前
|
缓存 网络协议 Windows
FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码
在国内访问GitHub不稳定时,可以采取三种解决方法。首先,通过网站(<https://ping.chinaz.com/github.com>)找到快速响应的GitHub IP,将其添加到本地hosts文件,然后刷新DNS缓存以正常访问。其次,使用代下载网站如(<https://d.serctl.com/>)下载GitHub上的压缩包。最后,可从国内镜像站点,如码云(<https://gitee.com/mirrors/ffmpeg>),下载FFmpeg等开源代码。这些方法有助于绕过访问限制,确保FFmpeg学习与开发的顺利进行。
31 3
FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码