赞
踩
看到github上一篇超炫的博文,是阿里工程师总结的《后端架构师技术图谱》,分享给大家。\
(Toc generated by simple-php-github-toc )
每个节点最多有两个叶子节点。
左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
二叉查找树(Binary Search Tree),也称有序二叉树(ordered binary tree),排序二叉树(sorted binary tree)。
MySQL是基于B+树聚集索引组织表
LSM(Log-Structured Merge-Trees)和 B+ 树相比,是牺牲了部分读的性能来换取写的性能(通过批量写入),实现读写之间的平衡。 Hbase、LevelDB、Tair(Long DB)、nessDB 采用 LSM 树的结构。LSM可以快速建立索引。
《LSM树(Log-Structured Merge Tree)存储引擎》
经常用于大规模数据的排重检查。
TODO
按照个位、十位、百位、...依次来排。
常用于大数据的排重,比如email,url 等。 核心原理:将每条数据通过计算产生一个指纹(一个字节或多个字节,但一定比原始数据要少很多),其中每一位都是通过随机计算获得,在将指纹映射到一个大的按位存储的空间中。注意:会有一定的错误率。 优点:空间和时间效率都很高。 缺点:随着存入的元素数量增加,误算率随之增加。
KMP:Knuth-Morris-Pratt算法(简称KMP) 核心原理是利用一个“部分匹配表”,跳过已经匹配过的元素。
未提交读:一个事务可以读取另一个未提交的数据,容易出现脏读的情况。
读提交:一个事务等另外一个事务提交之后才可以读取数据,但会出现不可重复读的情况(多次读取的数据不一致),读取过程中出现UPDATE操作,会多。(大多数数据库默认级别是RC,比如SQL Server,Oracle),读取的时候不可以修改。
可重复读: 同一个事务里确保每次读取的时候,获得的是同样的数据,但不保障原始数据被其他事务更新(幻读),Mysql InnoDB 就是这个级别。
序列化:所有事物串行处理(牺牲了效率)
公平锁的作用就是严格按照线程启动的顺序来执行的,不允许其他线程插队执行的;而非公平锁是允许插队的。
悲观锁如果使用不当(锁的条数过多),会引起服务大面积等待。推荐优先使用乐观锁+重试。
《Mysql查询语句使用select.. for update导致的数据库死锁分析》
由于高并发,在CAS下,更新后可能此A非彼A。通过版本号可以解决,类似于上文Mysql 中提到的的乐观锁。
可以对CopyOnWrite容器进行并发的读,而不需要加锁。CopyOnWrite并发容器用于读多写少的并发场景。比如白名单,黑名单,商品类目的访问和更新场景,不适合需要数据强一致性的场景。
《JAVA中写时复制(Copy-On-Write)Map实现》
《ReenTrantLock可重入锁(和synchronized的区别)总结》
互斥锁:同时只能有一个线程获得锁。比如,ReentrantLock 是互斥锁,ReadWriteLock 中的写锁是互斥锁。 共享锁:可以有多个线程同时或的锁。比如,Semaphore、CountDownLatch 是共享锁,ReadWriteLock 中的读锁是共享锁。
典型的 CPU 有三级缓存,距离核心越近,速度越快,空间越小。L1 一般 32k,L2 一般 256k,L3 一般12M。内存速度需要200个 CPU 周期,CPU 缓存需要1个CPU周期。
TODO
结构型模式:
创建模式:
行为模式:
TODO
命令行监控工具
APM — Application Performance Management
主要开源软件,按字母排序
开发、测试、生成环境分离。
架构原理
《JBoss vs. Tomcat: Choosing A Java Application Server》
调优方案
《memcache 中 add 、 set 、replace 的区别》
架构
回收策略
几种存储引擎:
《消息队列-推/拉模式学习 & ActiveMQ及JMS学习》
消息总线相当于在消息队列之上做了一层封装,统一入口,统一管控、简化接入成本。
支持事务,推拉模式都是支持、适合需要可靠性消息传输的场景。
Java实现,推拉模式都是支持,吞吐量逊于Kafka。可以保证消息顺序。
纯Java实现,兼容JMS,可以内嵌于Java应用中。
高吞吐量、采用拉模式。适合高IO场景,比如日志同步。
生产者、消费者模式完全是客户端行为,list 和 拉模式实现,阻塞等待采用 blpop 指令。
TODO
** SPI ** TODO
服务端可以认证加密,在外网环境下,可以保证数据安全。
servlet 3.0 异步特性可用于配置中心的客户端
主要职责:请求转发、安全认证、协议转换、容灾。
《web优化必须了解的原理之I/o的五种模型和web的三种工作模式》
《Protobuf协议的Java应用例子》 Goolge出品、占用空间和效率完胜其他序列化类库,如Hessian;需要编写 .proto 文件。
聚集索引, 非聚集索引
MyISAM 是非聚集,InnoDB 是聚集
复合索引
对于复合索引,在查询使用时,最好将条件顺序按找索引的顺序,这样效率最高; select * from table1 where col1=A AND col2=B AND col3=D 如果使用 where col2=B AND col1=A 或者 where col2=B 将不会使用索引
自适应哈希索引(AHI)
例如:
RSA、DSA、ECDSA(螺旋曲线加密算法)
和 RSA 不同的是 DSA 仅能用于数字签名,不能进行数据加密解密,其安全性和RSA相当,但其性能要比RSA快。
256位的ECC秘钥的安全性等同于3072位的RSA秘钥。
TODO
TODO
在内外环境中通过跳板机登录到线上主机。
2FA - Two-factor authentication,用于加强登录验证
常用做法是 登录密码 + 手机验证码(或者令牌Key,类似于与网银的 USB key)
MyBatis:
TODO
Spring
Spring Boot
Spring Cloud
《几种负载均衡算法》 轮寻、权重、负载、最少连接、QoS
《Haproxy+Keepalived+MySQL实现读均衡负载》
limit_req
等模块限制并发连接数。平滑重启应用思路 1.端流量(如vip层)、2. flush 数据(如果有)、3, 重启应用
《JVM安全退出(如何优雅的关闭java服务)》 推荐推出方式:System.exit,Kill SIGTERM;不推荐 kill-9;用 Runtime.addShutdownHook 注册钩子。
《常见Java应用如何优雅关闭》 Java、Spring、Dubbo 优雅关闭方式。
《DRBD+Heartbeat+Mysql高可用读写分离架构》
《SpringCloud服务注册中心比较:Consul vs Zookeeper vs Etcd vs Eureka》
PAXOS
Zab
Raft
Gossip
两阶段提交、多阶段提交
CQRS — Command Query Responsibility Seperation
《深度长文:我对CQRS/EventSourcing架构的思考》
TODO
TODO
TODO
TODO
无需过多关系服务器的服务架构理念。
制度还是制度! 另外,每个公司需要根据自己的需求和目标制定自己的 check list
SCRUM - 争球
3个角色:Product Owner(PO) 产品负责人;Scrum Master(SM),推动Scrum执行;Team 开发团队。
3个工件:Product Backlog 产品TODOLIST,含优先级;Sprint Backlog 功能开发 TODO LIST;燃尽图;
五个价值观:专注、勇气、公开、承诺、尊重。
TODO
XP - eXtreme Programming
是一种指导开发人员的方法论。
4大价值:
5个原则:快速反馈、简单性假设、逐步修改、提倡更改(小步快跑)、优质工作(保证质量的前提下保证小步快跑)。
5个工作:阶段性冲刺;冲刺计划会议;每日站立会议;冲刺后review;回顾会议。
边写码,边review。能够增强代码质量、减少bug。
P——PLAN 策划,D——DO 实施,C——CHECK 检查,A——ACT 改进
TODO
TODO
TODO
《最高人民法院、最高人民检察院关于办理侵犯公民个人信息刑事案件适用法律若干问题的解释》
- 1、对于行踪轨迹信息、通信内容、征信信息、财产信息,非法获取、出售或者提供50条以上即算“情节严重”;
- 2、对于住宿信息、通信记录、健康生理信息、交易信息等其他可能影响人身、财产安全的公民个人信息,标准则是 500条以上;
- 3、对于其他公民个人信息,标准为 5000条以上。
我国刑法第253条之一规定:
- 国家机关或者金融、电信、交通、教育、医疗等单位的工作人员,违反国家规定,将本单位在履行职责或者提供服务过程中获得的公民个人信息,出售或者非法提供给他人,情节严重的,处3年以下有期徒刑或者拘役,并处或者单处罚金。
- 窃取或者以其他方法非法获取上述信息,情节严重的,依照前款的规定处罚。
- 单位犯前两款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照各该款的规定处罚。
最高人民法院、最高人民检察院关于执行《中华人民共和国刑法》确定罪名的补充规定(四)规定:触犯刑法第253条之一第1款之规定,构成“出售、非法提供公民个人信息罪”;触犯刑法第253条之一第2款之规定,构成“非法获取公民个人信息罪”
“避风港”原则是指在发生著作权侵权案件时,当ISP(网络服务提供商)只提供空间服务,并不制作网页内容,如果ISP被告知侵权,则有删除的义务,否则就被视为侵权。如果侵权内容既不在ISP的服务器上存储,又没有被告知哪些内容应该删除,则ISP不承担侵权责任。 后来避风港原则也被应用在搜索引擎、网络存储、在线图书馆等方面。
TODO
TODO
国内:
CSDN 老牌技术社区、不必解释。
国外:
测试:
运维:
Java:
安全
大数据
其他专题网站:
更多架构方面书籍参考: awesome-java-books
开发方面
架构方面
《软件架构师的12项修炼:技术技能篇》详情
《架构之美》详情
《分布式服务架构》详情
《聊聊架构》 详情
《云原生应用架构实践》详情
《亿级流量网站架构核心技术》详情
《淘宝技术这十年》详情
《企业IT架构转型之道-中台战略思想与架构实战》 详情
《高可用架构(第1卷)》详情
技术管理方面
基础理论
工具方面
TODO
大数据方面
国内:
国外:
活动发布平台:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。