微服务架构系统基础汇总
一、微服务
1.1 微服务架构
漫谈何时从单体架构迁移到微服务 介绍单体架构和微服务架构的架构图、优缺点、适用场景和微服务的落地方式、条件和风险评估
1.2 微服务落地实践
参考文档:微服务的架构模式:一个服务一个数据库模式 上 中 下
微服务的基本模式
传统系统的问题和微服务系统的基本模式
微服务的最基本模式 :一个服务一个数据库,参见上
微服务划分步骤 参见中
传统业务划分步骤:1)划分功能模块,2)梳理功能模块的方法(交互),3)方法分类(内部调用、外部用户调用)4)模块映射服务,5)根据实际情况调整
考虑God类(订单Order)和领域驱动设计(子域和界限上下文,支付子域、物流子域)。
微服务治理
微服务后遇到的问题1)部署发布:自动集成、自动发布 2)日常运维:监控报警、日志管理
落地的细节:1)数据库划分,2)开发框架,3)关键技术何时引入:引入新技术需要谨慎评估,新技术带来便利性时也增加了复杂性。
二、微服务架构的数据设计模式
参考文档:微服务架构的数据设计模式 数据库相关技术
数据库(一),范式 第一、第二、第三范式;引入范式的主要目的在于:解决冗余的问题;有些查询需要用Join查多张表,数据量大时非常耗时,所以有时我们需要违反范式,做点数据冗余。
数据库(七)读写分离到CQRS CQRS适合少部分复杂查询
数据分区、读写分离、横向拆分、纵向拆分、缓存、多租户与动态数据源 动态数据源对定时任务的特殊处理 https://blog.csdn.net/Shadow_T/article/details/129079349
以下内容单独合并到服务开发
mysql常用查询
MySQL几种创建索引的方式 普通索引 idx_xxx,联合索引 idx_xxx_xx 联合索引一定要注意字段创建的先后顺序,先后顺序会影响索引的执行
MySql将一个表中的某些字段更新到另一个表中(多表联合更新)
MySQL中删除一张表或一条数据的时候[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails
postgreSQL
MybatisPlus
Mapper.xml 常用配置、单表查询(paramterType、resultType)、多表关联查询(一对多、多对多)
SpringBoot整合Mybatis-plus引入不同的jar导致不能找到Mapper的问题解决
SpringBoot Maven多模块项目 mapper.xml 文件扫描不到问题
Json
Fastson,Gson,fasterxml Jackson的比较,Demo示例
三、服务开发
四、前端开发
五、部署