TODO LIST

待整理知识点,备忘

  • SDK:单项目多插件架构

  • Android:关键知识梳理

  • Linux

  • JVM

  • 源码解析

  • Servlet门面模式

  • github:
    Android View可见性判断
    重定向工具类
    来电闪屏

  • DBFound:

参考资料:github快速应用开发平台 dbfound

  • docker:一个类似虚拟机的技术

参考资料:用通俗的话说明docker是什么docker的通俗理解

  • Raft:分布式系统的算法,类似的有Paxos

参考资料:分布式系统的Raft算法

  • Dubbo:一个分布式服务框架

参考资料:Dubbo是什么

  • Hystrix熔断机制:

参考资料:Hystrix入门指南

  • Velocity:是一个基于Java的模板引擎。它允许任何人使用简单而强大的模板语言来引用Java代码中定义的对象。

参考资料:Velocity入门

  • Storm:

参考资料:《Storm入门》中文版

  • TEST

参考资料:REST简介REST,以及RESTful的讲解

  • JS教程

廖雪峰的官方网站

  • mongodb

mongodb的几种启动方式以及关闭方式

  • redis

redis做缓存优势

  • 索引

数据库索引到底是什么,是怎样工作的?
数据库索引的通俗理解

  • 主仆模式

理解主从设备模式(Master-Slave)

  • maven深入
  • 看完Wiki

  • 大学习方向

参考:实战解析—论三年内快速成长为一名技术专家
参考:年薪50w+的阿里p7专家,顶尖的技术人才,只因做到了这几点

  • RPC

什么是 RPC 框架

  • 优雅降级、渐进加强

  • protobuf和protostuff

protostuff是一个基于protobuf实现的序列化方法,它较于protobuf最明显的好处是,在几乎不损耗性能的情况下做到了不用我们写.proto文件来实现序列化
https://blog.csdn.net/eric520zenobia/article/details/53766571

  • Big Endian 和 Little Endian

https://www.cnblogs.com/tk55/p/6592673.html

  • 负载均衡算法对比

轮询,随机,地址哈希,加权轮询,加权随机

  • 负载均衡软件解决方案

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

https://www.cnblogs.com/ityouknow/category/914493.html

  • 堡垒跳板机

  • 各个技术比较,及使用sample,代码上传到github

  • macaca+uirecorder android 源码分析,技术原理

posted @   这个人在加班  阅读(297)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示