本篇总结内容是作者2018年截至2022年的学习总结,后续将持续更新。作者将大部分业余的时间贡献给了代码实属不易,如果文章对你有帮助记得点赞收藏支持一下作者,你们的鼓励是作者最大的动力。

微服务

注册中心

常用注册中心对比

特性NacosEtcdConsulEurekaZookeeper
公司AlibabaCoreOSHashiCorpNetflixApache
活跃度非常活跃活跃较活跃较活跃一般
开发语言JavaGOGOJavaJava
CAPAP/CPCPCPAPCP
一致性算法RaftRaftRaftPaxos中ZAB
暴露接口HTTP/DNSHTTP/grpcHTTP/DNSHTTP客户端

注册中心的产生背景:

注册中心是微服务架构的核心,在传统架构中url繁多不方便管理,通过注册中心可以方便管理服务的和健康情况、负载均衡、服务保护。

中间件:

分布式配置中心

负载均衡

服务网关

服务保护

在用户并发量比较大的情况下,服务会发生雪崩效应:用户同时请求堆积在一个接口,导致其它的接口服务无法访问,这种效果给到用户体验不好。

保护策略:对服务限流(熔断),在高并发场景客户端请求达到阈值,直接调用服务降级方法,给到友好提示如:当前访问人数过多,稍后重试。

分布式事务

分布式事务理论:

CAP理论、BASE理论。2PC提交、TCC。

两阶段提交(2PC):类似tcp的三次握手,分为协调者(领导)、参与者(下属)、用户(客户端),当用户会先跟领导沟通,领导再询问下属有没有准备好,如果半数以上准备好了,那么领导再将数据发给下属。

三阶段提交(3PC):2PC有一个缺陷:就是第一次询问下属需要等待说有都回应,这个时候都会进入阻塞状态。

3PC是在2PC的基础上解决参与者超时问题和多加了一层询问。

常用的分布式事务解决方案:

  • Alibaba Seata

  • LCN

分布式锁

  • Redis(Redission、RedisLock + Lua脚本)

  • ETCD

  • Zookeeper

  • MySQL

服务链路追踪

  • SkyWalking
  • Sleuth + zipkin

微服务中间件汇总

Consul

1.Consul 简介和安装

2.SpringBoot整合Consul搭建服务注册与发现

3.SpringBoot整合Consul搭建配置中心

Zookeeper

【Zookeeper教程】1.Zookeeper简介和安装

【Zookeeper教程】2.Zookeeper数据模型以及与Java整合

【Zookeeper教程】3.SpringBoot整合Zookeeper搭建服务注册与发现

SpringCloud

1.SpringCloud Eureka搭建服务注册与发现

2.SpringCloud 负载均衡Loadbalancer和OpenFeign

SpringCloud Alibaba

1.SpringCloud Alibaba Nacos安装与服务注册

2.SpringCloud Alibaba Nacos分布式配置中心

3.SpringCloud Aibaba Nacos 服务消费和负载均衡

Etcd

1.Etcd的安装

2.SpringBoot整合Jetcd搭建服务注册与发现

Spring

IOC容器

【SpringIOC教程】1.Bean的生命周期

【SpringIOC教程】2.依赖注入

【SpringIOC教程】3.属性赋值和读取配置文件

AOP

【Spring教程】AOP的使用

MVC

【SpringMVC教程】SpringMVC的使用

异常

【Spring 异常教程】异常捕获

异步

Spring中@Async的使用和不生效的原因

SpringBoot基础篇

【SpringBoot教程】1.配置文件和默认配置

【SpringBoot教程】2.自定义Banner

【SpringBoot教程】3.自定义starter

数据库篇

【Spring Data教程】1.SpringBoot整合MySQL和JdbcTemplate的使用

【Spring Data教程】2.整合Mybatis

【Spring Data教程】3.整合Mybatis Plus

【Spring Data教程】4.整合Alibaba Druid

【Spring Data教程】5.JdbcTemplate自定义多数据源实现

【Spring Data教程】6.dynamic-datasource多数据源实现

【Spring Data教程】7.分布式ID设计

【Spring Data教程】8.整合ShardingSphere Jdbc 读写分离

【Spring Data教程】9.整合ShardingSphere Jdbc 单数据库分表

【Spring Data教程】10.Canal数据库同步神器

事务

【Spring事务教程】1.@Transactional的使用

【Spring事务教程】2.@Transactional不生效的原因

【Spring事务教程】3.整合dynamic-datasource解决多数据源事务

Web

【Spring Web教程】1.SpringBoot 整合SpringFox-SwaggerUI 3

【Spring Web教程】2.整合WebSocket

【Spring Web教程】3.整合OkHttp

【Spring Web教程】4.自定义配置https

缓存

【Spring 缓存教程】1.缓存注解@Cache的使用

【Spring 缓存教程】2.SpringBoot整合Java轻量级缓存ehcache

【Spring 缓存教程】3.SpringBoot整合Redis

消息队列

【Spring RabbitMQ教程】01.Docker安装RabbitMQ

【Spring RabbitMQ教程】01.Windows安装RabbitMQ

【Spring RabbitMQ教程】02.SpringBoot整合RabbitMQ和P2P例子

【Spring RabbitMQ教程】03.SpringBoot整合RabbitMQ的Fanout(发布订阅模式)

【Spring RabbitMQ教程】04.SpringBoot整合RabbitMQ的Routing

【Spring RabbitMQ教程】05.SpringBoot整合RabbitMQ的TOPIC

【Spring RabbitMQ教程】06.RabbitMQ重试机制

【Spring RabbitMQ教程】07.RabbitMQ处理幂等性

【Spring RabbitMQ教程】08.RabbitMQ自动响应和手动响应

【Spring MQ教程】2.整合ActiveMQ

【Spring MQ教程】3.整合RocketMQ

【Spring MQ教程】4.整合Kafka

搜索

【SpringBoot教程】整合ElasticSearch

日志

【SpringBoot教程】Log的使用

【SpringBoot教程】整合ELK + Kafka

安全

【SpringSecurity教程】1.权限

【SpringSecurity教程】2.OAuth单点登录

【SpringSecurity教程】3.XSS、CSRF控制

文件上传

【SpringBoot教程】1.整合阿里云OSS

【SpringBoot教程】2.整合七牛云

其它第三方

【SpringBoot教程】1.整合百度AI

【SpringBoot教程】2.整合阿里云短信

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐