在备考系统架构设计师过程积累了一些考点以及其它知识内容,本文对此简单介绍。
文档分类
计划分类如下:
- 流水账和心得总结
- 考点扩展,针对考点做一些扩展资料的收集
- 考点大纲,应试,或为应试做的资料收集。
- 考点汇总,其它的
简要记录
1、一来考证,二来积累技术(不一定是工作上能用到的)。
2、尽量docker来测试(多台虚拟机运行时电脑性能不够)。
3、总结一套自己的后台框架(不要一下子完全现实,迭代进行,也能持续保持学习)。
4、设计模式多深入一些,可能在工作中用到。
实践记录
- nginx负载均衡:自实现的转发和轮询方法算法,完成。
- nginx高可用:
- dns负载均衡:
- redis主从、集群、哨兵
- redis持久化
- redis失效
- Mysql 主从
- 数字签名:golang实现,有封装的RSA接口。
- 数字信封:golang实现。
软件架构风格
几种风格的汇总,加上个人理解。
设计模式
B站,李老师讲的视频,在github上有课件源码。在此基础上修改进行调试。结合其它资料汇总。
Nginx
3个容器。
负载均衡,均衡的几种方法。session丢失
高可用,keepalive?
测试:一个客户端正在连接其中一个容器,在进行中,断开该容器服务,观察是否切换到其它的容器。
完成情况:
Mysql
集群,主从
PostgreSQL
NoSQL
MongoDB
介于关系数据库和非关系数据库之间的产品。
面向文档的数据库
Redis
单核。
分布式锁,主从复制。哨兵,集群。
并发,秒杀实验。
据类型主要有五种:String、Hash、List、Set和Sorted Set
memcached
memcache是一个高性能的分布式的内存对象缓存系统,用于动态Web应用以减轻数据库负担。它通过在内存中缓存数据和对象,来减少读取数据库的次数。从而提高动态、数据库驱动网站速度。
memcache通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。memcache主要用于分担数据库负的压力,memcache将数据调用到内存中,然后从内存中读取,从而大大提高读取速度。
memcache是这个项目的名称,而memcached是它服务器端的主程序文件名。
其它
elasticsearch
微服务
API网关(golang实现)。
后台框架,参考kubeedge的beehive。
分布式相关
术语:脑裂 split-brain 三地五中心 依赖注入 方法注入
可伸缩 异构 并发 高可用
RMI 远程过程调用
分布式锁 乐观锁 分布式事务
一致性哈希 Consistent Hashing
场合:缓存服务器数量变化时
记录:环 数据倾斜 添加虚拟节点
雪花算法 snowflake
场合:分布式生成全局 ID
记录:64位,ID不相同(每片雪花都不相同,故名),时间戳,机器号/进程号 序号