
带大家从0~1搭建微服务saas框架
文章平均质量分 87
《带大家从0~1搭建微服务框架进阶架构师》限时活动,订阅后进学习群,微信名片在每篇文章的最下面,后续会在群内公布源码地址,会经常线上语音视频和大家一起讨论解决问题,不仅限于微服务,所有java 相关问题都可以一起学习讨论
峡谷电光马仔
多年开发与架构经验,java,c++ andorid ,ios 均有参与项目,多个公司担任架构师一职,擅长面向对象设计,框架设计,DDD领域驱动设计,微服务架构、数字孪生、技术选型、区块链应用、工作流、容器化部署运维、海量数据处理等,阿里云专家博主,有过多个国企/集团/平台等大型微服务系统项目从0到1实际落地架构经验,有过多个几台至几十台服务器规模项目组件及应用服务从0~1部署经验,服务监控经验,设计开源大型微服务saas框架《minicloud》(已开源内测版)和适配全部框架的全场景开源可视化工作流引擎《open-activiti》,设并完成发多项软件专利
展开
-
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(一) (mini-cloud) 整体架构图
从0到1 手把手搭建spring cloud alibaba微服务大型应用框架原创 2022-01-12 19:04:02 · 4746 阅读 · 9 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(二) (mini-cloud) 创建项目以及搭建源码启动版nacos 注册中心
从0到1 手把手搭建spring cloud alibaba 微服务大型应用(二) (mini-cloud) 创建项目以及搭建源码启动版nacos 注册中心原创 2022-01-13 18:45:00 · 6929 阅读 · 20 评论 -
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (上)
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (上)原创 2022-01-18 09:54:02 · 3069 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (中)
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (中)oauth2.0 动态权限校验自定义 TokenEnhancer 自定义AccessDecisionManager原创 2022-01-26 14:39:07 · 2491 阅读 · 4 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(三) (mini-cloud) 搭建认证服务(认证/资源分离版) oauth2.0 (下)-代码重构篇
这样做有两个目的,一 是不像让重构代码扰乱我们之前的开发流程二是需要单独保留重构篇,让大家确确实实的参与到一个框架从无到有,从烦乱到精炼的过程原创 2022-02-22 18:23:54 · 1227 阅读 · 1 评论 -
spring cloud alibaba 集成feign 自定义feign权限注解 某接口只允许feign访问 附带所有流程以及代码
spring cloud alibaba 集成feign 自定义feign权限注解 某接口只允许feign访问 附带所有流程以及代码原创 2022-01-22 15:47:42 · 2806 阅读 · 5 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(四) (mini-cloud) 集成shardingSphere 读写分离
#1 为什么要用读写分离## 如果一个业务的数据读远远大于写的需求,那么创建多个多个读从库还是比较常用的选择,主要为了分离数据库压力,如果并没有太多高压力读需求,则不需要读写分离#2 读写分离一般性方案##2.1 外置层proxy方案### 外置层proxy方案主要是指外部搭建一个代理服务,全权代理了数据库本身的连接,类似于nginx对web应用的代理一样,我们应用本身连接数据库的连接直接连接这个代理,而不是连接真是数据库,代理会根据配置的规则自动帮助请求进行读写分离或者分库分表,比如mycat#原创 2022-03-21 14:46:44 · 1890 阅读 · 0 评论 -
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) (mini-cloud) SEATA分布式事务篇(上) 运行原理以及AT模式源码启动版集成
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(上) 运行原理以及AT模式源码启动版集成原创 2022-06-21 13:28:56 · 714 阅读 · 2 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(中)shardingshere 多库读写分离/分库分表下分布式事务完整代码及案例
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(中)shardingshere 多库读写分离/分库分表下分布式事务完整代码及案例构建分布式事务案例场景-电商订单-库存分布式事务问题...............原创 2022-06-23 18:19:35 · 1056 阅读 · 3 评论 -
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例原创 2022-06-24 14:07:51 · 1200 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(补充) seata与应用不在同一台服务器下报连接不上 127.0.0.1 8091 问题
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(补充) 应用不在同一台服务器下报连接不上 127.0.0.1 8091 问题解决在上一篇《从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(五) SEATA分布式事务篇(下)应用整合shardingsphere集成seata完整代码及订单-库存完整模拟案例》中许多小伙伴和我说,都集成后,seata 和应用服务在同一机器上的情况下没问题 但是Seata 和应用服原创 2022-11-09 18:50:42 · 548 阅读 · 1 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(六)(gateway篇)spring cloud gateway 远程漏洞原因升級到3.1.1完整配置
# 从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(gateway篇)spring cloud gateway 远程漏洞原因升級到3.1.1完整配置## spring cloud gateway 远程漏洞问题## spring cloud gateway 升级到3.11spring cloud ,spring cloud alibaba,spring boot版本对应关系## 为什么只升级spring cloud gateway 服务而不升级全部服务?原创 2023-03-09 12:19:44 · 2109 阅读 · 2 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(六)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
当前公司内微服务开发一般有两种模式1.开发启动所有服务,注册中心,网关,认证服务等都在自己机器启动优点:可以保证自己发送的请求(经过网关的请求或者通过fegin调用的请求)都能达到自己机器的服务缺点:如果服务过多,电脑有可能会承受不住2.开发只启动自己需要开发的服务,注册中心,网关,认证服务等都在一个公用的服务器启动,所有人启动的服务都注册到了这个公用服务上优点:只需要启动自己开发的服务,方便快捷,节省电脑资源缺点:由于自己开发的服务不一定只有自己启动了,可能请求会到别人机器上的服务....原创 2022-07-07 17:08:18 · 770 阅读 · 0 评论 -
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(六)(优化篇)开发篇-如何解决微服务开发环境请求实例转发到别人机器问题原创 2022-07-26 16:30:54 · 389 阅读 · 6 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(七) 开发环境使用轻量级在线文档解决知识分享问题
有没有过想看某个项目资料或者接口或者文档资料等怎么都找不到的精力,或者有一堆文档,但是不知道自己想要找的内容在哪个文档里?恭喜你不要999,也不要99 ,只要0.0元 在线文档送到家( ^_^ )......原创 2022-07-20 14:10:05 · 624 阅读 · 2 评论 -
从0到1带大家把手搭建spring cloud alibaba 微服务大型应用框架(八) saas平台篇-解决不同租户针定制化开发问题 -完整代码以及案例方案(1)
saas平台篇-解决不同租户针定制化开发问题 -完整代码以及案例方案平台越做越大到多租户时,经常会遇见一种情况,就是某些用户希望自己的功能是定制化的,有可能是完全的新功能,也有可能压根就是同样的功能但是A和B两个用户的实现前后台展示和逻辑就压根不同不可能在同样的一套系统里写一个针对客户A的一套前后台,又写一套针对用户B的前后台,然后通过租户Id不同去做判断校验,这样随着用户数量的不断增加,代码就变得不可维护而且很有可能是不同的团队去定制化开发,也就是说A 的定制化部分由A的团队去开发,B的B团队开发.原创 2022-07-20 20:47:23 · 1175 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(3) -oauth2 登陆源码分析以及扩展添加tenantId属性
本篇承接上一篇《从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(2) -挂载自定义登陆以及业务端完整代码》,上一篇中具体说明了如何创建租户个性化工程以及详细代码,这里说明代码上如何在认证中心添加tenantId属性目前登陆返回信息并没有tenantId字段oauth2 框架认证流程源码分析.........原创 2022-07-30 22:41:36 · 727 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(八)saas平台篇-解决不同租户针定制化开发问题(2) -挂载自定义登陆以及业务端完整代码
为什么要挂载用户自定义登陆端以及自定义业务端,上节已经说过一些原因,这节补充下,主要原因有以下几点: 1。屏蔽登陆得clientid 以及clientSecret,因为多租户情况下需要client信息才可以确认租户信息 2.自定义登陆封装个性化信息,不同租户也许需要登陆后外围包装一些自己业务端的业务信息 3.租户自己需要重写或者新增某些功能,自己的业务端与自定义前端联通开发自己一套微服务应用.........原创 2022-07-29 14:32:59 · 716 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(1):minio 单机与集群搭建
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(1):minio 单机与集群搭建原创 2022-08-02 18:23:13 · 1093 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(九)文件服务篇(2):集成minio文件服务
为什么要搭建独立的文件服务,而不是做一个共通某个业务端去引用,主要是有以下几点理由1.独立服务可以让前后台有唯一的路由访问,避免嵌入到某个业务端造成的路由混乱2.可以独立集群部署,做独立得的文件集群服务3.不需要将代码逻辑渗透到前后台,封装性,易用性更好4.可以进行权限隔离,做到灵活控制哪些服务可以访问哪些不可以访问.........原创 2022-08-02 20:32:10 · 1327 阅读 · 2 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十)sentinel篇(1): sentinel 介绍以及服务集成
本篇以及未来几篇我们将进行sentinel介绍与整合原创 2022-08-21 12:40:03 · 421 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十)sentinel篇(2): sentinel 流控规则及使用详解
sentinel 流控规则及使用详解sentinel qps与最大并发数区别,流控模式:直接,关联,链路, 流控效果: 直接,关联,链路 ,流控效果:快速失败,Warm Up,排队等待 等详解原创 2022-08-22 13:51:36 · 497 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十)sentinel篇(3): sentinel 熔断规则及使用详解
本篇主要讲述sentinel 熔断策略,慢调用,异常比例,异常数原创 2022-08-22 15:10:32 · 324 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(1) 原理与介绍
Spring Boot Admin 是一个基于spring boot 开发的可视化监控项目,主要用户监控spring boot 项目各种状态以及实时指标,也可以用来进行分布式日志的收集展示,兼容单体spring boot 服务以及spring cloud 微服务原创 2022-09-03 20:51:24 · 882 阅读 · 1 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin spring-boot-admin 服务端创建与集成入nacosspring-boot-admin 查看日志原创 2022-09-04 20:50:54 · 1091 阅读 · 8 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十二)日志篇(1):rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码
rocketmq+ aop +自定义注解 实现入参出参日志收集记录 完整源码,我们日常开发中日志是不可缺少的一部分,如mini-cloud架构图所示,大型系统一般可用elk 等进行日志收集中小型系统也可以用spring-boot-admin 等进行收集,但我们业务场景经常会有一种需求,就是一些重要入参出参接口希望按照url 进行收集并便于以后排查分析比较典型的就是金融产品或者银行产品扣款,出账,转账,扣款等原创 2022-09-13 21:45:19 · 1054 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十三)rocketmq 篇(1):整体介绍
rocketmq 篇(1):rocketmq整体介绍rocketmq 架构设计理念和目标rocketmq 各个角色介绍以及运行流程物理架构图逻辑架构图 整体流程描述rocketmq nameserver 介绍rocketmq broker 介绍原创 2022-09-22 15:51:55 · 694 阅读 · 0 评论 -
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十三)rocketmq 篇(2):路由注册,消息发送核心流程原理
路由注册,消息发送核心流程原理原创 2022-09-22 18:26:38 · 875 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十三)rocketmq 篇(3): 消息读写队列,消息存储,消息发送,消息消费关联流程和原理
rocketmq 消息独写队列,消息存储,消息发送,消息消费关联流程和原理,消息生产-存储流程,消息消费-存储流程,commitLog 数据结构,consumeQuene 数据结构,index 数据结构原创 2022-09-23 17:14:03 · 410 阅读 · 0 评论 -
【万字原创】 从0~1带大家实现微服务下 下单/秒杀场景最终一致性解决方案(rocketmq):完整流程,模型,讲解,压测,部署介绍以及完整demo源码和源码说明(1)-整体介绍
从0~1实现 微服务下 下单/秒杀场景最终一致性解决方案(rocketmq):完整流程,模型,讲解,压测,部署介绍以及完整demo源码和源码说明(1)最终一致性方案说白了就是异步方案,后台延时异步处理一些业务,这样做的好处是降低了同步处理进行的业务处理阻塞,高并发下同步处理是很容易对thread,io,db造成阻塞的,虽然好处是实时的相应处理结果,但一般实际业务上,用户是允许先迅速得到一个反馈,比如xxx完成,正常处理中。。。,然后几秒到十几秒甚至是更久的给一个明确结果的,redis+ lua秒杀场景原创 2023-01-25 13:54:27 · 649 阅读 · 0 评论 -
【万字原创】从0~1带大家实现 微服务下 下单/秒杀场景最终一致性解决方案(rocketmq):流程,模型,讲解,压测,部署以及完整demo源码(2)-goods+order服务完整源码
【万字原创】从0~1实现 微服务下 下单/秒杀场景最终一致性解决方案:流程,模型,讲解,压测,部署以及完整demo源码(2)-goods+order服务完整源码为什么要发送rocketmq 事务消息为什么要发送rocketmq 事务消息为什么要使用redis + lua 保证验证+扣除库存原子性原创 2023-01-28 18:04:27 · 440 阅读 · 7 评论 -
【万字原创从0~1带大家实现微服务下下单/秒杀场景最终一致性解决方案(rocketmq):流程,模型,讲解,压测,部署以及完整demo源码(3)-rocketmq消费者完整源码+整体运行启动+功能验证
【万字原创】从0~1实现 微服务下 下单/秒杀场景最终一致性解决方案:流程,模型,讲解,压测,部署以及完整demo源码(3)-rocketmq消费者完整源码+整体运行启动+功能验证原创 2023-01-29 22:17:44 · 307 阅读 · 0 评论 -
【万字原创】从0~1带大家实现 微服务下下单/秒杀场景最终一致性解决方案:流程,模型,讲解,压测,部署以及完整demo源码(4)-压力测试(windows10 单节点)
【万字原创】从0~1实现 微服务下下单/秒杀场景最终一致性解决方案:流程,模型,讲解,压测,部署以及完整demo源码(4)-压力测试(windows10 单节点) 本文是基于jmeter5.5下进行的压力测试,分别为100,200,500,1000并发下10s内的成功率,由于本机测试,无法测试太高并发原创 2023-01-31 21:47:03 · 396 阅读 · 0 评论 -
从0~1带大家实现 单体或微服务下 订单未支付超时取消功能 方案(1)-java delayquene + 注册中心(zookeeper/nacos)高可用方案 完整demo设计和源码
单体/微服务下从0~1 实现订单未支付超时取消功能 最常用两种方案介绍和完整demo源码(1)-java delayquene + 注册中心(zookeeper/nacos)高可用方案常用的实现方案以及优缺点 同步方式-查询时再去同时根绝订单创建时间更取消订单异步方式-定时任务轮训取消订单异步方式-redis key过期通知,需要提前防止一个订单id 对应key以及对应过期时间,过期会触发通知异步方式-java delayquene 异步方式-rocketmq 延时队列原创 2023-01-30 18:16:14 · 439 阅读 · 0 评论 -
从0~1带大家实现 单体或微服务下 实现订单未支付超时取消功能 方案(2)-rocketmq 延迟队列方案 完整demo设计和源码
单体或微服务下 实现订单未支付超时取消功能 方案(2)-rocketmq 延迟队列方案我们日常接触的电商或者票类平台等都有一些共通的功能,比如下单了,超过某时间未支付,则会自动取消该订单 开发的角度来说就是订单从创建成功状态到取消状态,这个并不能靠前端去维护,一个是安全角度不够,另一个就是性能不足和维护复杂度太高后台去处理就涉及了同步取消和异步取消两大种类方式,具体如下说明:本文基于minicloud框架下,各位可以用各自得微服务项目即可,本文主要是提供其中一种思路原创 2023-01-31 18:07:05 · 1821 阅读 · 4 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十四) 集成skywalking 全链路追踪 完整配置,使用案例及全链路追踪底层原理
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四) 集成skywalking 全链路追踪 完整集成配置,使用案例及全链路追踪底层原理原创 2023-02-10 21:18:54 · 1993 阅读 · 18 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十四)(2) spring boot/cloud +logback/log4j2 集成skywalking日志完整配置
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四)(2) spring boot/cloud +logback/log4j2 集成skywalking完整配置> 如果资源足够,我们可以使用elk+featbeat +kafka/redis 的日志收集展示模式,如果服务器充足 > 我一般是这么做的,但是实际上,并不是每个项目都会有这么优厚的资源给你,尤其是一些中小规模的项目 > 身为架构师,就要考虑换个方案了,由于本文主要基于skywalking原创 2023-02-24 13:02:19 · 1055 阅读 · 9 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十五) swagger篇 : gateway 集成swagger 与 knife4j实现在线api文档并嵌入到自己项目内
从0到1手把手搭建spring cloud alibaba 微服务大型应用框架(十五) swagger篇 : gateway 集成swagger 与 knife4j实现在线api文档并嵌入到自己项目内#### 本文就来介绍如何微服务下通过gateway集成共通的api在线文档,这样就不需要一个服务去部署一套文档#### 我们自定义注解实现swagger 自动集成到各个业务端并且通过knife4j 将swagger的文档更进一步美化并嵌入到我们自己的项目中#### 集成后效果如下:### 演示效果与介原创 2023-03-12 14:29:05 · 1463 阅读 · 4 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十六) 本地日志篇:移除logback以及 集成log4j2完整配置 以及关闭某些类的日志输出
从0到1手把手搭建spring cloud alibaba 微服务大型应用框架(十六) 本地日志篇:移除logback以及 集成log4j2完整配置 以及关闭某些类的日志输出## 完整整合过程与配置### 移除项目中的logback依赖### 添加log4j2 common module ### 集成log4j2 以及查看效果#### 添加log4j 共通依赖#### 查看效果### 关闭某类日志输出并查看效果原创 2023-03-12 22:13:31 · 911 阅读 · 0 评论 -
从0到1带大家搭建spring cloud alibaba 微服务大型应用框架(十七) saas多租户实现-后台集成篇:如何升级为saas 平台, 后台租户层集层讲解和完整源码
#### 如果我们的框架打算升级为一个平台,支持多租户,那么需要进行升级为saas 服务,升级改造是一件很麻烦的事情,所以本篇提供一个基础思路说明如何进行框架的saas 模块化升级## 整体前后台saas运行架构图### 整体运行描述#### 1.首先是登录端支持租户选择,登录端可以是web,app,小程序等任何入口端#### 2.选择了登录的租户后,提交登录,会将租户标识传递到gateway网关层,网关层会根据标识切换路由到对应的租户登录端#### 3.对应租户登录端会根据将设置的客原创 2023-03-14 12:05:59 · 1711 阅读 · 3 评论