http://www.aneasystone.com/archives/2016/04/java-and-https.html
涉及到知识点:
https原理:
地址分几步:
1,客户端向服务端发起请求,服务端返回服务端证书和公共密钥.
2,客户端生成随机对称密钥,并用服务端的公共密钥加密.
3,接下来服务端和客户端通过公共密钥加密进行通信.
分库分表技术:
20171129
分布式:
A,定义:单台服务性能达到瓶颈,需要将原有服务拆成多个服务.来完成单个服务应该完成的事情.
B,代码的本质:数据结构和算法.
说白了就是 数据结构和算法的集合,就是服务,还有就是用来处理数据.
C,服务是什么?
多个代码片段+外部存储,组成服务.
D,为什么要分布式?
集群和分布式的区别?
分布式是集群中节点不能满足要求进行拆分成多个服务完成同一件事情的,
集群是多个服务节点组成的.节点之间没有状态,通过负载均衡算法完成转发.
E,如何进行分布式设计
分布式设计拆分分为:
E1, 服务的分布式
E2,数据的分布式
F,服务的分布式
服务的分布式主要是根据 功能模块进行拆分,模块之间通过RPC或http进行调用.
服务的分布式拆分尽量遵守以下原则:
F1,尽量减小网络开销
F2,拆分后的各个节点应该是无状态的
F3,每个节点应该是可以横向扩展的.
G,数据的分布式
G1,选择分片字段,然后确定分片算法,缺点:不能横向扩展,不能保证数据的最终一致性.
G2,分布式log,
我们可以把任何结构化的数据(比如数据库表,搜索索引,KV数据库)异构成Log这种标准的数据存储格式,并且最重要的是可以通过Log这种结构再次重建任何结构化数据
分库分表
1,分布式id
2,分片规则和策略
3,分库分表中间件实现原理
4,分库分表中间的优点和缺点?如何克服缺点?解决方案
5,分库分表后续 db迁移,扩容问题等等.
高可用架构原则
高并发架构原则
A,服务化:
服务拆分:按照业务模块拆分
B,消息队列
C,数据异构
D,缓存
分布式搜索引擎
https实现原理
shell编程实战
蚂蚁金服面试 总结
1,您的项目经验比较丰富,有一杆到底推进开发项目的能力。
2,对于分布式的技术栈了解不错,高并发场景的秒杀方案的
设计也能够有自己的见解,对于大数据了的分库分表设计和搜索引擎的实现原理也有一定的了解。
3,在应用架构方案的设计上,稍微局限一些,更多的关注在实现细节,
缺少对于整体架构的理解和后续扩展性的提现;一些技术点的深度上还是有些提升空间
架构问题:
QPS目前为3k,假如QPS升到3w,系统如何架构:
主要涉及系统拆分问题:
1,大系统拆小系统----->>> 垂直拆分,
2,小系统水平扩展------>>> 水平拆分.