本章节主要是完成小程序核心下单功能和接收异步通知功能的实现,吃透小程序支付流程,同时引出消费幂等性问题和掉单问题这两个顽疾,看如何对症下药去处理
微服务架构下的工程存在多个独立部署的微服务,这些微服务之间不可避免的会存在功能依赖,所以,我们需要学习微服务间的通信机制。企业级中最流行的通信方案是 OpenFeign,它是基于 Ribbon 实现的,且最底层都是依赖 RestTemplate,我会在这一章讲解它们的前世今生。
本章利用面部识别+静态活体验证,核实挂号患者身份,避免黄牛雇人挂号。后端项目采用了Redis事务+缓存过期的方案,防止出现挂号超售现象。微信支付升级到了3.0版本,支付挂号费的相关代码更加简单
- 6-1 调用微信支付3.0接口创建付款单
- 6-2 挂号前先检测患者实名登记
- 6-3 使用RESTful封装挂号科室列表
- 6-4 使用Flex布局实现门诊列表页面
- 6-5 使用RESTful封装挂号出诊接口
- 6-6 使用Flex布局实现挂号页面出诊计划
- 6-7 使用RESTful封装检测患者挂号资格
- 6-8 患者端小程序检测挂号资格
- 6-9 使用RESTful封装采集人脸模型接口
- 6-10 利用Camera录入面部特征信息
- 6-11 使用RESTful封装人脸识别接口
- 6-12 利用Camera实现人脸验证
- 6-13 使用RESTful封装医生出诊信息
- 6-14 使用uView显示患者端医生出诊信息(一)
- 6-15 使用uView显示患者端医生出诊信息(二)
- 6-16 利用Redis事务执行挂号避免超售
- 6-17 微信支付3.0的资质和Java依赖库
- 6-18 调用微信支付3.0接口创建付款单
- 6-19 在HBase中保存挂号单
- 6-20 利用Redis缓存过期,关闭挂号单
- 6-21 开通内网穿透,接收付款结果
- 6-22 患者端小程序支付挂号费
- 6-23 使用RESTful主动查询付款结果
- 6-24 挂号成功后主动查询付款结果
- 6-25 本章总结
学习高效 NestJS 微服务通信,使用 gRPC 实现双端通信,掌握 proto 转 TypeScript 方案、SSL 配置、服务测试与工程化,完成核心业务拆分与微服务模板项目创建,并借助 gRPC 工具生成代码
- 31-1 使用gRPC进行微服务通信(2种proto转ts的方案)
- 31-2 gRPC微服务进阶:配置SSL证书
- 31-3 测试gRPC服务第二种方案:grpcurl(go环境配置)
- 31-4 测试gRPC服务第三种方案(grpc-tools+ts-proto)
- 31-5 微服务工程化:共享grpc的proto与certs
- 31-6 核心业务拆分分析
- 31-7 微服务模板项目创建+配置vscode插件
- 31-8 [插件推荐]定义user.proto并测试服务
- 31-9 [扩展]对于空值的处理&VSCode插件bug
- 31-10 用户微服务:完成数据库对接与服务测试
- 31-11 网关微服务:登录接口&服务调用测试
- 31-12 [代码生成器]借助grpc-tools产生nestjs双端代码
- 31-13 微服务拆分总结
订单微服务是电商工程的核心微服务,这其中会引入微服务通信、微服务容错、消息驱动与分布式事务,它会将电商工程中所有的微服务都串联在一起,共同完成用户的下单操作。所以,在实现这个微服务时,要认真考虑这里面要解决的问题,以及使用到的技术、工具和组件。
从财报 Agent 价值出发,配置环境、解析 PDF 语义,用模型向量化构建智能搜索引擎,全链路掌握 LlamaIndex 实战技能。
- 13-1 向量索引与语义检索:打造智能搜索引擎,快速精准获取财报关键信息
- 13-2 环境检测与配置:检查与准备开发环境,确保程序无障碍启动
- 13-3 智能读取PDF-LlamaIndex VectorStoreIndex × 语义检索锁定关键信息
- 13-4 本地嵌入模型向量化:将文字转换为数字,提升财报分析的机器理解能力
- 13-5 向量索引与语义检索:打造智能搜索引擎,快速精准获取财报关键信息
- 13-6 专项综合:LlamaIndex 全链路实战技能一网打尽
- 13-7 案例实操:LlamaIndex 全链路 × DeepSeek LLM,企业级本地智能财务分析引擎
- 13-8 案例实操:LlamaIndex 全链路 × DeepSeek LLM,企业级本地智能财务分析引擎
本章讲解微服务的核心概念,高可用与软件架构相关知识点,BFF和网关以及微服务的划分原则和具体方法和可用性设计。
微信支付我们经常使用,但我们了解微信支付的整个流程吗?本小节,我们将详细介绍微信支付的整个流程并编写产品的下单、支付与处理支付结果的相关接口。
- 10-1 关于微信支付
- 10-2 前置方法
- 10-3 对Address接口做权限控制
- 10-4 下单与支付的业务流程(库存量检测)
- 10-5 下单与支付详细流程
- 10-6 重构权限控制前置方法
- 10-7 编写一个复杂的验证器
- 10-8 下单接口业务模型 一
- 10-9 下单接口业务模型 二
- 10-10 订单快照
- 10-11 订单快照的实现
- 10-12 订单创建
- 10-13 一对多关系的新增操作
- 10-14 测试订单接口
- 10-15 TP5自动写入时间戳
- 10-16 在TP5中使用事务
- 10-17 关于微信支付
- 10-18 支付的服务器端编写 一
- 10-19 支付的服务器端编写 二
- 10-20 支付的服务器端编写 三
- 10-21 支付的服务器端编写 四
- 10-22 支付的服务器端编写 五
- 10-23 支付的服务器端编写 六
- 10-24 支付的服务器端编写 七
- 10-25 支付的小程序端讲解(含签名的作用讲解) 八
- 10-26 支付的服务器端编写 九
- 10-27 统一测试订单与支付接口 十
- 10-28 支付的服务器端编写(支付结果回调机制) 十一
- 10-29 支付回调通知处理 一
- 10-30 支付回调通知处理 二
- 10-31 事务与锁防止多次减库存
- 10-32 接收微信回调
- 10-33 测试支付全流程
- 10-34 可以断点调试微信支付的回调吗?
- 10-35 TP5中的分页查询与获取用户历史订单数据
- 10-36 测试与验证历史订单数据接口
- 10-37 订单详情接口
在什么业务场景下会提供微服务架构方案,方案如何设计?我们会学习到哪些设计模型?本章以实际的互联网电商 IM 案例为基础,介绍业务背景、分析功能需求和非功能需求、剖析 IM 的微服务架构方案以及微服务架构方案下的技术选型,并对微服务的关键问题—服务拆分原则进行重点剖析,最后以电商案例进行应用扩展。通过本章学习,你将深入理解业务背景与微服务架构两者之间的模型设计关系,并掌握微服务架构设计的关键问题。
学习 NestJS 微服务健康检查方案,集成 gRPC 健康检查,通过 Terminus 创建健康检查端点,优化微服务代码,提炼 HealthModule 并支持多端点的动态健康检查配置
商品微服务提供两大核心功能:异步入库商品信息与商品信息查询。为了对异步任务进行监控管理,我们需要实现监控切面与代理执行管理器;商品信息查询是非常频繁的操作,我们使用 Redis 缓存数据,提高工程的并发性能。
- 10-1 商品信息对象定义及转换方法
- 10-2 商品属性枚举类及转换器定义(上)
- 10-3 商品属性枚举类及转换器定义(下)
- 10-4 数据表及 ORM 过程
- 10-5 商品信息对象定义及转换方法
- 10-6 异步任务与商品服务接口定义
- 10-7 异步入库商品服务功能实现
- 10-8 异步任务执行管理器
- 10-9 异步任务执行监控切面
- 10-10 商品相关服务接口实现(上)
- 10-11 商品相关服务接口实现(中)
- 10-12 商品相关服务接口实现(下)
- 10-13 异步入库商品功能可用性验证
- 10-14 商品服务接口可用性测试
- 10-15 商品微服务对外 HTTP 接口
- 10-16 验证商品微服务功能可用性
- 10-17 商品微服务总结
- 10-18 【查缺补漏】Redis的安装
- 10-19 章节思考题
微服务已然成为大厂主流,作为简历上的亮点和加分项,让小伙伴们掌握作为后端开发者需要掌握的微服务的核心知识,体现我们作为后端开发的额外价值。
- 15-1 微服务的容错设计
- 15-2 微服务的优缺点分别是什么?
- 15-3 SOA和微服务架构有什么区别?
- 15-4 如何确定微服务架构的拆分粒度?
- 15-5 微服务有哪些设计原则?
- 15-6 微服务化过程中有哪些注意点?
- 15-7 微服务治理的手段有哪些?
- 15-8 微服务的容错设计
- 15-9 限流有哪些实现方式?
- 15-10 如何对整个调用链做超时控制?
- 15-11 Prometheus的四种指标类型
- 15-12 Docker的底层原理
- 15-13 Docker 与 LXC有何不同?
- 15-14 Docker Image 和 Docker Layer (层) 有什么不同?
- 15-15 简述 K8s 的优势、使⽤场景及其特点?
- 15-16 简述 K8s 创建⼀个 Pod 的主要流程?
- 15-17 K8s中pod的状态有哪些?怎么查看?
- 15-18 K8s中什么是静态 Pod?
- 15-19 简述 K8s中 Pod 的健康检查⽅式?
工欲善其事,必先利其器。本章节会介绍课程的主要脉络,方便大家提前构建知识体系。同时考虑到部分同学可能第一次接触微服务,所以会介绍微服务的基础知识,我们不放弃任何一个努力进步的同学
大公司侧重考察的不是你用过的框架有多少,而是你对技术有没有深度的思考,何为深度?不仅是框架的使用,而是你是否可以通过源代码来解决网上查不到的问题,如何通过底层代码了解微服务框架的真正原理,是否更深层次的思考过微服务的周边技术
- 6-1 dubbo微服务配置知识
- 6-2 用源码解决百度不到的问题--源码探求
- 6-3 如何熟练的看源代码
- 6-4 除了spring相关源代码,你还研究过哪些源代码
- 6-5 springboot启动流程分析
- 6-6 springboot 启动器和监听器的加载
- 6-7 springboot 启动监听器
- 6-8 springboot Env及Profile
- 6-9 springboot 容器加载及web server启动
- 6-10 springboot 启动流程总结
- 6-11 Dubbo RPC原理
- 6-12 Dubbo 线程模型
- 6-13 dubbo微服务配置知识
- 6-14 聊一下dubbo服务暴露的过程吧!
- 6-15 聊一下dubbo服务发现及调用过程吧!
- 6-16 你是如何解决微服务的异常问题的?
- 6-17 单机版限流方案:限制并发VS限制QPS-TPS
- 6-18 集群限流方案:Redis获取令牌
- 6-19 如何做到灵活的熔断
- 6-20 360度监控如何实现?
- 6-21 二面雷点提示
学习 NestJS 微服务的实践与应用,探索微服务方案、TCP通信、常用装饰器、项目工程化配置,掌握容器化部署、事件广播消息传递及超时和错误处理机制
物流微服务是订单微服务的下游服务,它们之间通过 Stream 结合消息中间件的模式构建了通信通道。创建订单完毕之后,由物流微服务异步生成物流单,并可以在此基础上做更多的扩展,例如:推送消息、构造物流清单等等。
本章专注于云原生微服务特性的实践,包括微服务概念的理解与服务拆分。核心内容包括云原生微服务特性的本质、Bookinfo应用的微服务拆分思路分析,以及具体模块如web、productpage、details、reviews和ratings的拆分实践。通过这些内容,同学可以学习到如何将单体应用拆分为独立的微服务,以及云原生环境下微服务设计的关键考量。
多线程、多进程编程一直是面试中被问到的高频问题,本章节我们将从 GIL 开始讲解多线程以及多进程的应用场景、之后详细的介绍多线程的编码、线程间通信以及线程的同步- Lock\Rlock\Condition,通过对 condition 的源码分析加深大家对条件变量的理解,接着通过线程池 ThreadPoolExecutor 的使用和源码分析加深大家对异步IO编程的设计理念的理解,在多进程中我们也会详细的讲解 multiprocessing 以及进程间通信。
消息队列是构建消息驱动服务的基础,不过,不同的团队、项目可能偏好于不同的消息中间件,例如 Kafka、RocketMQ 等等。那么,为了屏蔽这些中间件的底层细节,Stream 组件使用统一的 API 与它们进行交互,实现了一套代码可以应用于多种消息中间件的能力。
- 13-1 自定义 Stream 消息通信信道实现定制分发
- 13-2 SpringBoot 集成 Kafka 构建消息驱动微服务(中)
- 13-3 SpringBoot 集成 Kafka 构建消息驱动微服务(下)
- 13-4 SpringBoot 集成 RocketMQ 构建消息驱动微服务(1)
- 13-5 SpringBoot 集成 RocketMQ 构建消息驱动微服务(2)
- 13-6 SpringBoot 集成 RocketMQ 构建消息驱动微服务(3)
- 13-7 SpringBoot 集成 RocketMQ 构建消息驱动微服务(4)
- 13-8 SpringCloud Stream 消息驱动组件概览
- 13-9 基于 SpringCloud Stream 消息驱动的简单应用
- 13-10 自定义 Stream 消息通信信道实现定制分发
- 13-11 SpringCloud Stream 消息分组和消费分区的配置与说明
- 13-12 SpringCloud Stream 消息驱动组件总结
- 13-13 【查缺补漏】RocketMQ的安装
- 13-14 章节思考题
本章继续微服务实战,带大家针对微服务统一的请求进行管理,使用zuul作为微服务网关,结合config与bus作为动态配置中心,最后还会使用stream消息组件以及sleuth链路追踪组件优化服务。
- 12-1 微服务网关【zuul】
- 12-2 搭建网关微服务【zuul】
- 12-3 配置路由【zuul】
- 12-4 配置微服务实例的路由【zuul】
- 12-5 过滤器【zuul】
- 12-6 限制ip黑名单的频繁请求【zuul】
- 12-7 分布式配置中心【config】
- 12-8 搭建配置中心【config】
- 12-9 配置中心实现git配置读取【config】
- 12-10 配置客户端拉取配置【config】
- 12-11 动态刷新git配置【config】
- 12-12 消息总线概述【bus】
- 12-13 配置实现消息统一发送【bus】
- 12-14 消息驱动概述【stream】
- 12-15 实现生产者与消费者【stream】
- 12-16 消息分组与持久化【stream】
- 12-17 链路追踪概述与zipkin【sleuth】
- 12-18 整合zipkin【sleuth】
- 12-19 SpringCloud总结
认识微服务中长时间无响应的带来的问题,使用go-zero实现请求超时、任务的失败重试和重试设置,理解go-zero的服务重试机制,掌握幂等性在微服务中的实现方式和思路,并实现具体的幂等性机制。
本章主要讲解构建父子maven聚合项目,及搭建最新版微服务基础框架,构建微服务注册中心与构建微服务网关。
- 4-1 【基础】idea设置微历史微服务列表
- 4-2 【基础】构建maven分层聚合项目
- 4-3 【基础】SpringBoot3与微服务版本依赖构建
- 4-4 【基础】搭建新版分布式微服务架构
- 4-5 【基础】idea设置微历史微服务列表
- 4-6 【实战】Docker安装Nacos注册中心
- 4-8 【实战】构建微服务并注册到Nacos
- 4-9 【基础】构建SpringBoot多环境profile配置
- 4-10 【实战】微服务网关Gateway原理与构建
- 4-11 【进阶】网关高并发流量防刷 - Redis整合与通用工具类.
- 4-12 【实战】实现微服务网关Gateway的统一路由功能.
- 4-13 【进阶】网关高并发流量防刷 - 网关基本结构与异常返回.
- 4-14 【进阶】网关高并发流量防刷 - 防刷逻辑落地.
- 4-15 【进阶】网关高并发流量防刷 - 分布式动态参数配置
- 4-16 本章小结.
学习微服务与微前端的基础概念,回顾分布式系统架构,并推荐 Node.js 微服务工具包,理解其在实际应用中的场景。
本章主要讲解对文件服务器的搭建与微服务整合,及文件资源的上传与管理等。
- 7-1 【实战】生成微信隔个人二维码
- 7-2 【实战】Springboot文件上传实现用户头像修改
- 7-3 【实战】SpringBoot 静态资源映射
- 7-4 【实战】网关为静态资源服务开放白名单
- 7-5 【实战】统一限制文件上传大小
- 7-6 【进阶】分布式文件存储方案的架构演变
- 7-7 【进阶】分布式存储技术选型
- 7-8 【实战】Docker 安装分布式对象存储中间件MinIO
- 7-10 【实战】MinIO实现Java客户端文件上传
- 7-11 【实战】SpringBoot整合MinIO实现头像上传
- 7-12 【实战】OpenFeign实现微服务远程调用
- 7-13 【实战】生成微信隔个人二维码
- 7-14 【实战】OpenFeign微服务远程调用二维码上传
- 7-15 -1【实战】朋友圈封面设置与展示
- 7-16 -2【实战】朋友圈封面设置与展示
- 7-17 本章小结
微服务在工程应用领域不是一开始就出现的,本章将带你领略工程架构的升级、改造历史;同时,对于微服务架构的工程来说,也需要学习、掌握其必须遵循的设计原则。
WebSocket 协议,能实现客户端与服务器间的持久通信。打破传统 HTTP 短连接局限。通过uniapp实现连接服务器 。监听 open 、message 、close 等事件,收发数据、以及SpringBoot配置端点和处理器,实现 WebSocket 协议,并编写处理消息业务逻辑。
本章主要让大家了解后端技术架构的演进及各种架构的适用场景,以及掌握微服架构中的核心技术和知识点,了解常见的微服务框架,以及K8S作为微服务框架的优势。
- 2-1 常见的微服务框架
- 2-2 后台技术架构的发展史
- 2-3 【文】后台架构演进的关键节点和重点
- 2-4 服务发现与负载均衡(一)
- 2-5 服务发现与负载均衡(二)
- 2-6 【文】服务发现与负载均衡
- 2-7 从设计模式角度理解API网关
- 2-8 服务调用的限频、限流、降级和熔断(一)
- 2-9 服务调用的限频、限流、降级和熔断(二)
- 2-10 服务调用的限频、限流、降级和熔断(三)
- 2-11 【文】服务调用的限频、限流、降级和熔断
- 2-12 常见的微服务框架
- 2-13 为什么选择kubernets作为微服务框架
- 2-14 【文】常见限流算法及Hystrix源码解读
- 2-15 本章作业
- 2-16 本章小结