2022持续学习-架构相关

    计划2022工作日每天一题(我是从2月16日开始的),周六、周日更新到csdn。更为了自身技术的提升和理解,大杂烩把自己涉及到的问题罗列下来有的是面试题+自己的理解,有的是之前写的ppt稍加整理。

1 CAP理论和Base理论(m)

CAP是分布式领域重要的一个理论,很多分布式中间件在实现上都遵守这个理论,其中:

C表示一致性:分布式系统中的数据一致性。

A表示可用性:表示分布式系统中的系统是否正常可用。

P表示的分区容错性:表示分布式系统出现网络问题时的容错性。

CAP理论是指在分布式系统中不能同时保证C和A,也就是说分布式系统中要么保证CP,要么保证AP。一致性和可用性取其一,如果要数据一致性,那么需要损失系统可用性。如果需要系统高可用,就要损失数据一致性(特指强一致性)。

CAB理论太过严格,在实际的生产环境中更多的使用Base理论,Base是指在分布式系统中不需要保证数据的强一致性、只要最终一致性,也不需要保证一直可用,保证基本可用即可。

基于 ZooKeeper 的服务发现(CP)、而基于 Eureka 的服务发现(AP)

2 谈谈架构演进过程,说说你所在行业处于那个阶段。(ppt)

        我理解系统架构演进大概分如下几个阶段:V1第一阶段单机运行,应用单节点,DB点节点且部署到一台PCServer或工控机上。(目前看很多小型企业的mis系统处于此阶段)并发不大、安全要求不高。一旦机器故障数据或应用将无法运行,定期数据备份来保证系统可用行。V2数据与服务分离:应用一台服务器、数据库部署一台服务器。互为备份机,较第一阶段有所提升但也只适用于中小企业,业务量和并发不大。V3高可用阶段,应用通过负载均衡(硬件F5\A10软件Nginx等我就知道这两个其他不清楚也没查阅)应用机器部署(多节点、多server)、数据库(集群或者主、备库),此阶段能满足绝大多数的中、稍大型企业。随着系统的演进增加了缓存提高系统的高可用。后续发现数据库是瓶颈调整位读写分离、读库无法满足需求又增加了搜索引擎(Lucene集群)、引入CDN加速、发现业务系统庞大又开始了数据拆分、服务拆分。最后V4演进为微服务时代。

        我是从V1到V4都经历过,目前创业干回到了V1 阶段。

3七层负载与四层负载的区别是什么 
        七层负载是基于WEB请求,URL等应用信息的负载均衡。Nginx四层负载是基于IP+端口的负责均衡。LVS、haproxy(haproxy也支持7层不如nginx强大)
4 谈谈SpringMVC、SpringBoot、SpringCloud的应用?
    SpringMVC 与 struts2 同为解决web 单体应用典型的框架,实现原理主要是基于同一的servlet进行分发,比如配置同一的*.dox *.action 等。
    前端配合 标签 即taglib 来使用,为一大批开发人员提高的效率,而且目前市场占有率非常高。(被java系广泛使用。)
    SpringBoot 是简化springmvc的一个版本,毕竟springmvc 配置、版本升级都需要匹配上否则会有些配置引起的问题。 Springboot 在一定范围内解决了此问题,它简化的配置、升级比较简单。我个人认为是 springmvc的升级简化版本。
    Springcloud实际是包含springboot、netflex的一些组件,组成了cloud。
Zuul、eureka、ribbon、hystrix、config 配合容器化docker、k8s是目前比较流行的架构。尤其目前去ioe(ibm、oracle、EMC存储)
5 安全架构都包含哪些?谈谈你对安全的理解?
    应用安全、数据安全、主机安全、网络安全。
    当前是信息安全是互联网企业的重中之中如果忽略的安全会对企业带来巨大的经济损失,比如重要客户信息泄露、重要数据被恶意篡改都对企业有着巨大的影响。应用安全,在设计的时候必须考虑敏感数据的加密传输、审计日志、身份鉴别(考虑防止重放攻击)、代码安全等。
    数据安全主要考虑数据完整性 、保密性、数据的备份与恢复
    主机安全考虑主机访问控制、身份鉴别、入侵防范
    网络安全也需要考虑审计、鉴权、入侵防范

持续完善中......

你可能感兴趣的:(笔记,学习,系统架构,面试)