zookeeper
1、入门概述:工作机制
数据结构:ZNode 树型文件系统
统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下
线、软负载均衡等
2、安装3、集群选举机制:
第一次启动
非第一次启动:任期id——事务id——id
节点类型:
持久、短暂、有序号、无序号
监听器
写数据原理:
发给leader
发给follower
4、案例服务器动态上下线
分布式锁
Curator框架实现分布式锁
5、源码选举机制:第一次、非第一次
分布式一致性:
Paxos算法
ZAB协议:消息广播、崩溃恢复
异常发生——leader选举 + 数据恢复
数据恢复——一个follower所有事务提交之后才变为follower
CAP理论:保证CP
持久化源码
序列化源码
服务端初始化源码-启动脚本
初始化-解析参数
初始化-过期快照删除
初始化-通信初始化
服务端加载数据源码
选举-选举准备
选举-选举执行
Follower 和 Leader 状态同步源码
状态同步细节
Leader启动
Follower启动
客户端启动
选举
dubbo
1、概念分布式系统演变
RPC原理
dubbo核心原理
监控中心
2、dubbo配置3、高可用zookeeper
集群负载均衡
hystrix、服务熔断、服务降级
4、原理RPC原理:一次完整的RPC调用流程(同步调用,异步另说)如下:
1)服务消费方(client)调用以本地调用方式调用服务;
2)client stub接收到调用后负责将方法、参数等组装成能够进行网络传输的消息体;
3)client stub找到服务地址,并将消息发送到服务端;
4)server stub收到消息后进行解码;
5)server stub根据解码结果调用本地的服务;
6)本地服务执行并将结果返回给server stub;
7)server stub将返回结果打包成消息并发送至消费方;
8)client stub接收到消息,并进行解码;
9)服务消费方得到最终结果。
RPC框架的目标就是要2~8这些步骤都封装起来,这些细节对用户来说是透明的,不可见的。
netty通信原理BIO
NIO
dubbo原理
框架设计
启动解析、加载配置信息
服务暴露
服务引用
服务调用
elasticsearch
入门-HTTP入门-JavaAPI环境进阶进阶:文档、字段、映射、分片、副本、分配
系统架构:
选举主节点,master调度管理集群
P1P2P3分片、R2R0R1副本,不在一个机器上
每一个分片就是底层的LUCENE的索引
分布式集群:
故障转移、水平扩容、应对故障
路由计算 & 分片控制
数据写流程
数据读流程
更新流程 & 批量操作流程
倒排索引
文档搜索
文档刷新 & 文档刷写 & 文档合并
文档分析
文档处理
文档展示-Kibana
框架集成SpringData-整体介绍
文档搜索
Spark streaming
Flink
优化硬件选择
分片策略
路由选择
写入速度优化
重要配置
面试题为什么使用elasticsearch
Master选举
集群脑裂
索引文档的流程
更新和删除文档
搜索流程
Linux设置部署优化
GC方面,注意
上亿数据的聚合实现
并发情况下,如何保证读写—致
监控
字典树
集群、节点、索引、文档、类型
倒排索引
总结:为什么使用es
概念:集群、节点、索引、文档、类型
基本操作:索引、更新、删除、搜索
集群:master ...
redis
nosqlMemcache
Redis
MongoDB
redis简介单线程+多路IO复用
应用场景:
缓存、session共享、持久化
五大常用数据类型String
List
Set
Hash
Zset
三大新数据类型redis配置文件网络连接:心跳检测、连接时长
通用:日志级别、库
存储策略
reids的发布和订阅Bitmaps:统计
HyperLogLog:基数计算:不重复数据个数的计算
Geographic:地理
Jedis、RedisTemplate事务、锁机制、秒杀事务:
Multi、Exec、discard
悲观锁、乐观锁
监视key
特点:单独的隔离操作、没有隔离级别的概念、不保证原子性
秒杀:
乐观锁 + 连接池 + LUA脚本(原子化) 解决库存遗留问题
持久化RDB、AOFRDB:临时文件 –> 覆盖
AOF:只记录写的操作,只能追加,redis读取这些操作重写构建数据
写操作追加到缓存区,根据策略进行持久化同步,根据重写策略进行重写压缩
主从复制一主二仆
薪火相传:分组传递
宕机上位
连接时:全量复制
同步时:增量复制
主从复制原理
哨兵模式:
Ma ...
SpringCloud + SpringCloud Alibaba分布式集群总结
eureka:单机eureka、集群eureka
resttemplate + @loadbalance 负载均衡 调用
zookeeper:linux docker部署zookeeper,配置注册地址
resttemplate + @loadbalance 负载均衡 调用
consul:命令本地启动consul,8500端口页面
resttemplate + @loadbalance 负载均衡 调用
Ribbon:Irule配置或自定义负载均衡算法,@Ribbonclient配置调用的服务和算法
手写轮询算法,CAS锁
Openfeign:接口注解调用,默认支持ribbon自带负载均衡
ribbon超时控制,日志显示
Hystrix:服务降级:@HystrixCommand,调用中出现错误、超时、宕机等,启用兜底方法,fallback方法分离
服务熔断:配置熔断情况,时间窗口,请求阈值,错误百分比阈值等,half open
hystrixDashboard可视化监控,监控服务访问
Zuul、Gataway:路由转发、断言匹配、执行过滤器链,支持负载均衡
作为中转站进行路由映射,过滤器 ...