赞
踩
本篇总结内容是作者2018年截至2022年的学习总结,后续将持续更新。作者将大部分业余的时间贡献给了代码实属不易,如果文章对你有帮助记得点赞收藏支持一下作者,你们的鼓励是作者最大的动力。
常用注册中心对比
特性 | Nacos | Etcd | Consul | Eureka | Zookeeper |
---|---|---|---|---|---|
公司 | Alibaba | CoreOS | HashiCorp | Netflix | Apache |
活跃度 | 非常活跃 | 活跃 | 较活跃 | 较活跃 | 一般 |
开发语言 | Java | GO | GO | Java | Java |
CAP | AP/CP | CP | CP | AP | CP |
一致性算法 | Raft | Raft | Raft | 无 | Paxos中ZAB |
暴露接口 | HTTP/DNS | HTTP/grpc | HTTP/DNS | HTTP | 客户端 |
注册中心的产生背景:
注册中心是微服务架构的核心,在传统架构中url繁多不方便管理,通过注册中心可以方便管理服务的和健康情况、负载均衡、服务保护。
中间件:
Consul:SpringBoot整合Consul搭建配置中心
SpringCloud Config:SpringCloud Config搭建配置中心
Apollo:SpringBoot整合Apollo搭建配置中心
Zookeeper:SpringBoot整合Zookeeper搭建配置中心
在用户并发量比较大的情况下,服务会发生雪崩效应:用户同时请求堆积在一个接口,导致其它的接口服务无法访问,这种效果给到用户体验不好。
保护策略:对服务限流(熔断),在高并发场景客户端请求达到阈值,直接调用服务降级方法,给到友好提示如:当前访问人数过多,稍后重试。
SpringCloud Alibaba服务保护Sentinel整合Gateway
SpringCloud Alibaba服务保护Sentinel整合Nacos 持久化数据
SpringCloud Alibaba服务保护Sentinel 秒杀解决方案热词控制
SpringCloud Hytrix
分布式事务理论:
CAP理论、BASE理论。2PC提交、TCC。
两阶段提交(2PC):类似tcp的三次握手,分为协调者(领导)、参与者(下属)、用户(客户端),当用户会先跟领导沟通,领导再询问下属有没有准备好,如果半数以上准备好了,那么领导再将数据发给下属。
三阶段提交(3PC):2PC有一个缺陷:就是第一次询问下属需要等待说有都回应,这个时候都会进入阻塞状态。
3PC是在2PC的基础上解决参与者超时问题和多加了一层询问。
常用的分布式事务解决方案:
Alibaba Seata
LCN
Redis(Redission、RedisLock + Lua脚本)
ETCD
Zookeeper
MySQL
【Zookeeper教程】2.Zookeeper数据模型以及与Java整合
【Zookeeper教程】3.SpringBoot整合Zookeeper搭建服务注册与发现
2.SpringCloud 负载均衡Loadbalancer和OpenFeign
1.SpringCloud Alibaba Nacos安装与服务注册
2.SpringCloud Alibaba Nacos分布式配置中心
3.SpringCloud Aibaba Nacos 服务消费和负载均衡
1.Etcd的安装
2.SpringBoot整合Jetcd搭建服务注册与发现
【Spring教程】AOP的使用
【SpringMVC教程】SpringMVC的使用
【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解决多数据源事务
【Spring Web教程】1.SpringBoot 整合SpringFox-SwaggerUI 3
【Spring Web教程】2.整合WebSocket
【Spring Web教程】3.整合OkHttp
【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.整合阿里云短信
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。