Github上星标55.9k的微服务神仙笔记真的太香了

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: 微服务,是著名的00 ( 面向对象,Object Oriented) 专家Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人们意识到它对于软件领域所带来的影响力。

微服务

微服务,是著名的00 ( 面向对象,Object Oriented) 专家Martin Fowler 提出来的,它是用来描述将软件应用程序设计为独立部署的服务的一种特殊方式。最近两年,微服务在各大技术会议、文章、书籍上出现的频率已经让人们意识到它对于软件领域所带来的影响力。

微服务架构

微服务架构的系统是一个分布式系统,按业务领域划分为独立的服务单元,有自动化运维、容错、快速演进的特点,它能够解决传统单体架构系统的痛点,同时也能满足越来越复杂的业务需求。

要注意的是

我们做软件的架构设计,就是要能选择和取舍。光架构设计模式就有好几十种,面对围绕微服务的众多杂音,开发者和架构师应该具备选择和取舍的能力,应该站在比较高的角度俯瞰全局、权衡利弊,做出正确的架构和技术选择。

为了更好的解决这个问题,小编在这一块一直是两份相关文档配合使用,吃透后能对微服务有一个整体的认知,以及为架构师提供一个微服务的全局视野,并教会架构师如何在纷繁复杂的情况下做出正确的架构选择和取舍。废话就不多说了,内容如下:

深入理解Spring Cloud与微服务构建(大致分为五部分)

  • 第1章 微服务简介
  • 第2章 Spring Cloud简介

详细介绍了微服务架构和Spring Cloud

  • 第3章 构建微服务的准备
  • 第4章 开发框架Spring Boot

准备工作

  • 第5章 服务注册和发现Eureka
  • 第6章 负载均衡Ribbon
  • 第7章 声明式调用Feign
  • 第8章 熔断器Hystrix
  • 第9章 路由网关Spring Cloud Zuul
  • 第10章 配置中心 Spring Cloud Config
  • 第11章 服务链路追踪 Spring Cloud Sleuth
  • 第12章 微服务监控 Spring Boot Admin

以案例为切入点,讲解了Spring Cloud构建微服务的基础组件

  • 第13章 Spring Boot Security详解
  • 第14章 使用Spring Cloud OAuth2 保护微服务系统
  • 第15章 使用Spring Security OAuth2 和JWT保护微服务系统

讲述了使用Spring Cloud OAuth2来保护微服务系统的相关知识

  • 第16章 使用Spring Cloud构建微服务综合案例

用一个综合案例全面讲解了如何使用SpringCloud构建微服务

篇幅限制不能全展示出来,需要获取这两份文档的老哥,可以点击此处来获取就可以了!

微服务架构设计模式

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

  • 第2章 服务的拆分策略
  1. 微服务架构到底是什么  
  2. 为应用程序定义微服务架构 
  • 第3章 微服务架构中的进程间通信
  1. 微服务架构中的进程间通信概述
  2. 基于同步远程过程调用模式的通信
  3. 基于异步消息模式的通信 
  4. 使用异步消息提高可用性

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

  • 第5章 微服务架构中的业务逻辑设计
  1. 业务逻辑组织模式 
  2. 使用聚合模式设计领域模型
  3. 发布领域事件
  4. Kitchen Service的业务逻辑
  5. Order Service的业务逻辑

  • 第6章 使用事件溯源开发业务逻辑
  1. 使用事件溯源开发业务逻辑概述
  2. 实现事件存储库
  3. 同时使用Saga和事件溯源
  • 第7章 在微服务架构中实现查询
  1. 使用API组合模式进行查询
  2. 使用CQRS模式 
  3. 设计CQRS视图  
  4. 实现基于AWS DynamoDB的CQRS视图

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

  • 第9章 微服务架构中的测试策略(上)
  1. 微服务架构中的测试策略概述 
  2. 为服务编写单元测试 
  • 第10章 微服务架构中的测试策略(下)
  1. 编写集成测试
  2. 编写组件测试
  3. 端到端测试

  • 第11章 开发面向生产环境的微服务应用
  1. 开发安全的服务
  2. 设计可配置的服务
  3. 设计可观测的服务 
  4. 使用微服务基底模式开发服务

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

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

写在最后

这两份文档不仅有微服务领域已经识别出来的问题、解决思路和解决方案,也有相应的代码例子。可以帮助微服务相关人员构建知行合一的能力,可以帮你在设计微服务架构时做出取舍,能在你处理微服务相关问题左右为难的时候给你提供参考和建议。

需要获取这两份文档的老哥,可以点击此处来获取就可以了!

相关文章
|
6月前
|
负载均衡 安全 Java
【微服务系列笔记】Gateway
Gateway是Spring Cloud生态系统中的网关服务,作为微服务架构的入口,提供路由、负载均衡、限流、鉴权等功能。借助于过滤器和路由器,Gateway能够动态地管理请求流量,保障系统的安全和性能。
157 7
|
5月前
|
开发工具 git
【笔记】十分钟学会正确的github工作流,和开源作者们使用同一套流程
【笔记】十分钟学会正确的github工作流,和开源作者们使用同一套流程
95 11
|
6月前
|
负载均衡 Java Apache
【微服务系列笔记】Feign
Feign是一个声明式的伪HTTP客户端,它使得HTTP请求变得更简单。使用Feign,只需要创建一个接口并注解。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 OpenFeign 是SpringCloud在Feign的基础上支持了SpringMVC的注解。
133 8
|
6月前
|
存储 负载均衡 Cloud Native
【微服务系列笔记】Nacos
Nacos 是阿里巴巴开源的项目,用于构建云原生应用的动态服务发现、配置管理和服务管理平台。它支持动态服务发现、服务配置、服务元数据和流量管理,旨在更敏捷和方便地构建、交付和管理微服务平台。可作为注册中心与配置中心。
151 5
|
6月前
|
Nacos 微服务
【微服务系列笔记】Eureka
该文档介绍了微服务注册中心的重要性和流行选项,如Eureka、Nacos、Consul和Zookeeper,强调Eureka是唯一支持跨区域调用的AP系统。接着,它提供了一个Eureka入门案例,包括设置Eureka服务器和客户端的步骤,并展示了多实例部署的效果。最后,简要总结了学习Eureka的意义,并提出了几个思考问题,如Eureka的功能、工作原理以及其他服务发现技术。
119 5
|
6月前
|
监控 Java 应用服务中间件
【微服务系列笔记】Sentinel入门-微服务保护
Sentinel是一个开源的分布式系统和应用程序的运维监控平台。它提供了实时数据收集、可视化、告警和自动化响应等功能,帮助用户监控和管理复杂的IT环境。本文简单介绍了微服务保护以及常见雪崩问题,解决方案。以及利用sentinel进行入门案例。
189 3
|
6月前
|
Linux Docker 容器
【微服务系列笔记】Docker
docker是一种容器技术,它主要是用来解决软件跨环境迁移的问题和同一环境下依赖冲突问题。 Docker可以运行在Mac, Windows, linux等操作系统上,常用于适用于构建和部署分布式应用、微服务架构。
85 0
【微服务系列笔记】Docker
|
1月前
|
编解码 Oracle Java
java9到java17的新特性学习--github新项目
本文宣布了一个名为"JavaLearnNote"的新GitHub项目,该项目旨在帮助Java开发者深入理解和掌握从Java 9到Java 17的每个版本的关键新特性,并通过实战演示、社区支持和持续更新来促进学习。
76 3
|
3月前
|
SQL JavaScript 前端开发
Github 2024-08-05 开源项目周报 Top15
根据 Github Trendings 的统计,本周(2024年8月5日统计)共有15个项目上榜。以下是根据开发语言汇总的项目数量: - Go 项目:4个 - JavaScript 项目:3个 - Python 项目:3个 - Java 项目:2个 - TypeScript 项目:2个 - C 项目:1个 - Shell 项目:1个 - Dockerfile 项目:1个 - 非开发语言项目:1个
113 2
|
3月前
|
人工智能 Rust JavaScript
Github 2024-08-26 开源项目周报Top15
根据Github Trendings的统计,本周共有15个项目上榜。以下是按开发语言汇总的项目数量:Python项目8个,TypeScript、C++ 和 Rust 项目各2个,Jupyter Notebook、Shell、Swift 和 Dart 项目各1个。其中,RustDesk 是一款用 Rust 编写的开源远程桌面软件,可作为 TeamViewer 的替代品;Whisper 是一个通用的语音识别模型,基于大规模音频数据集训练而成;初学者的生成式人工智能(第2版)则是由微软提供的18门课程,教授构建生成式AI应用所需的知识。
126 1