赞
踩
原文链接: https://github.com/xingshaocheng/architect-awesome
(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 是聚集
例如:
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、Srping、Dubbo 优雅关闭方式。
《DRBD+Heartbeat+Mysql高可用读写分离架构》
《SpringCloud服务注册中心比较:Consul vs Zookeeper vs Etcd vs Eureka》
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
TODO
我国刑法第253条之一规定:
- 国家机关或者金融、电信、交通、教育、医疗等单位的工作人员,违反国家规定,将本单位在履行职责或者提供服务过程中获得的公民个人信息,出售或者非法提供给他人,情节严重的,处3年以下有期徒刑或者拘役,并处或者单处罚金。
- 窃取或者以其他方法非法获取上述信息,情节严重的,依照前款的规定处罚。
- 单位犯前两款罪的,对单位判处罚金,并对其直接负责的主管人员和其他直接责任人员,依照各该款的规定处罚。
最高人民法院、最高人民检察院关于执行《中华人民共和国刑法》确定罪名的补充规定(四)规定:触犯刑法第253条之一第1款之规定,构成“出售、非法提供公民个人信息罪”;触犯刑法第253条之一第2款之规定,构成“非法获取公民个人信息罪”
TODO
TODO
国内:
CSDN老牌技术社区、不必解释。
国外:
测试:
运维:
Java:
安全
大数据
其他专题网站:
TODO
国内:
国外:
活动发布平台:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。