待整理知识点,备忘html
Servlet门面模式前端
github:
Android View可见性判断
重定向工具类
来电闪屏android
DBFound:git
参考资料:github,快速应用开发平台 dbfoundgithub
docker:一个相似虚拟机的技术redis
参考资料:用通俗的话说明docker是什么,docker的通俗理解算法
Raft:分布式系统的算法,相似的有Paxossql
参考资料:分布式系统的Raft算法mongodb
Dubbo:一个分布式服务框架docker
参考资料:Dubbo是什么
Hystrix熔断机制:
参考资料:Hystrix入门指南
Velocity:是一个基于Java的模板引擎。它容许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。
参考资料:Velocity入门
Storm:
参考资料:《Storm入门》中文版
TEST
参考资料:REST简介,REST,以及RESTful的讲解
JS教程
mongodb
redis
索引
主仆模式
maven深刻
看完Wiki
大学习方向
RPC
优雅降级、渐进增强
protobuf和protostuff
protostuff是一个基于protobuf实现的序列化方法,它较于protobuf最明显的好处是,在几乎不损耗性能的状况下作到了不用咱们写.proto文件来实现序列化
https://blog.csdn.net/eric520zenobia/article/details/53766571
Big Endian 和 Little Endian
负载均衡算法对比
轮询,随机,地址哈希,加权轮询,加权随机
负载均衡软件解决方案
LVS和Nginx的对比
集群间zab协议,Zookeeper举例
leader election、Atomic broadcas
zookeeper容错特性
问题,zookeeper是为了不服务路由或负载均衡服务器宕机而出现单点故障,可是,容错特性这里:zookeeper挂了怎么办?是同时將zookeeper部署在多台服务器(zookeeper集群)作容错处理吗?
服务消费者只有第一次调用服务器时须要查询服务配置中心(zookeeper),后面缓存到本地,而不须要再次请求,知道服务器的地址列表有变动?那服务消费者是怎么知道变动的?经过和zookeeper的长链接接收推送吗?
zookeeper的watcher为何设计成一次性的,也就是说,每次在处理完状态变化事件以后,须要从新注册watcher,这个特性也使得在处理事件和从新加上watcher这段时间发生的节点状态变化没法被感知。
zkclient,https://github.com/sgroschupf/zkclient.git,这个开源项目解决了watcher的一次性注册问题,还简化了zonde的二进制数据存储(ZKSerializer接口)
一致性哈希算法?page 68
负载均衡算法里的最小链接数算法(Least Connections),最小积压链接数?要是多台服务器的积压链接数是同样,怎么处理?用随机分配吗?
因为memcache使用了libevent来进行高效的网络链接处理,所以在安装memcache以前,须要先安装libevent
libevent是啥?
memcache官方提供Memcached-Java-Client工具包含了对memcache协议的Java封装,能够设置是否适用Nagle算法,什么是Nagle算法?什么是Hash算法?
CAS操做?
ACID操做?
MySQL复制(replication)策略
將一台MySQL数据库服务器中的数据复制到其余MySQL数据库服务器上。当各台数据库服务器上都包含相同的数据时,前端应用经过访问MySQL集群中任意一台服务器,都可以读取到相同的数据,这样每台MySQL服务器所须要承担的负载就会大大下降,从而提升整个系统的承载能力,达到系统扩展的目的。
要实现此功能,须要开启Master服务器端的Binary log。数据复制的过程实际上就是Slave从Master获取binary log,而后在本地的镜像执行日志中记录的操做。因为是异步操做,可能数据有延时,只能保证数据的最终一致性。
为了让SQL语句在Slave端也可以正确的执行,Master还须要记录SQL执行的上下文信息,SQL执行的上下文信息是什么?
Slave须要將Master上的sql全执行一遍,还须要执行全部查询,Master就只是作写入,怎么感受不须要Master也能够?答案:若是没有Master,若是有Slave的sql执行失败,那以哪一个Slave的数据为准?因此须要Master来保证数据一致性。另外,主从分离,要看业务场景来使用,好比银行系统,要求数据写读不能有延时,必定要即时一致性,就不能用读写分离的方案。
分表,冷热数据不均衡场景?
分表分库通常采用的对关键字段取模的方式,好比user_id%256,那么当256个表或者库也已经到达了瓶颈,这时候再次分表或分库,会致使取模不一致问题,怎么解决?仍是有别的解决办法?难道一开始就用一致性hash?可是一致性hash也会致使部分数据受影响?
垂直化搜索引擎 Lucene
倒排索引
操做系统对进程打开的文件句柄数是有限制的
ISV 英文全称是Independent Software Vendors ,意为“独立软件开发商”,特指专门从事软件的开发、生产、销售和服务的企业,如微软(Microsoft)、甲骨文(Oracle)等。
取文件魔数
经过缩放图片改变图片的二进制结构,避免恶意代码执行,ImageMagick+jmagick
常见的Web攻击手段
XSS,CRSF,SQL注入,文件上传漏洞,DDoS(SYN Flood,DNS Query Flood,CC),DNS域名劫持,CDN回源攻击,服务器权限提高,缓冲区溢出等
数字签名
经过组合数字摘要和非对称加密算法,来确认内容是否被篡改,发送者是否正确,好比MD5withRSA,SHA1withRSA
摘要认证、签名认证和Https的进化过程
摘要认证:http协议里,经过数字摘要算法,例如MD5等,对传输的数据进行摘要,为了防止彩虹表攻击等,通常会哈希加盐,盐就是约定的私钥,通讯的两端都须要保存(所以有泄露风险),两端经过这套相同处理用于断定传输的数据是否被篡改,可是没法作到对所有数据进行加密
签名认证:对全部数据进行非对称加密,用公钥私钥加解密,相对于摘要认证,能够对全部数据进行加密,更安全,可是对全部数据进行非对称加密,要消耗更多的性能和硬件资源
https:用相同密码及算法对数据进行高性能的对称加密,这个密码每次都用用签名认证的方式(非对称加密)进行传输,所以这个密码能够每次都不同,由于只对这个密码进行加密,消耗的性能和硬件资源相对小不少。这个方案简直完美!
kafka
Partition含有N个Replica,N为副本因子,其中一个为Leader,处理全部读写,其余都为Follow,按期同步Leader上的数据,为何这样设计?有什么办法解决Leader的读写瓶颈吗?
Producer根据指定的路由方法(Round-Robin、Hash等),将消息push到topic的某个partition里面。路由方法的选择?好比hash和round-robin的弊端问题怎么处理?一个broker里面是只有一个partition吗?
Spring boot
堡垒跳板机
各个技术比较,及使用sample,代码上传到github
macaca+uirecorder android 源码分析,技术原理