传统的简单磁盘存储存在大量的缺陷,而且各大互联网公司都有自己的文件系统,google的GFS,淘宝的TFS,其他中小型的网站,会采用类似于mogileFS这样开源的文件系统。所以利用开源的文件系统来搭建我们自己的文件系统、文件服务器以及文件的存取服务。
Session应该是web开发独有的,必须要面对的。Session让web程序的会话保持变得如此的简单,但是也带来了很多问题,比如:有很多开发人员享受了session的便利,把大部分东西往session中放,滥用session,造成服务器资源的浪费;跨域session丢失的问题等等。
今天就谈一下session在集群环境下的问题。
网站攻击最常用的两种手段是:SQL注入和webshell攻击。大家对SQL注入防范的意识已经很强了,现在程序中很难再出现这样的漏洞,但是对webshell的攻击方式防范意识很弱,突出表现在网站功能的架构上。
分布式领域CAP理论,
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
忠告:架构师不要将精力浪费在如何设计能满足三者的完美分布式系统,而是应该进行取舍。
1、CAP理论2、Eventual Consistency(最终一致性)3、BASE理论4、I/O五分钟法则5、Amdahl定律和Gustafson定律6、摩尔定律
DYR 更多的是一种架构设计思想,在的软件开发过程中的万事万物均可能重复,
大到标准、框架、开发流程;中到组件、接口;小到功能、代码均纯存在自我重复。而DYR 提倡的就是在软
件开发过程中应消除所有这些自我重复。
基于插件,把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。插件式架构设计中主要包括:插件框架、插件契约(服务)以及插件组件三部分组成。
设计不足,则意味着系统复用性扩展性和灵活性差,系统僵化,不能应对将来的需求变化,或者将来修改和维护的代价和成本会很高,这当然是设计错误;
过度设计,则意味着为了实现这个设计要付出的额外代价,例如成本上升,缺陷可能性加大,提升维护成本,甚至降低系统性能。而可维护性和系统的高性能都是系统的隐性需求,这些需求没实现好,当然也是设计错误。
通过OECP社区的实践进行基于MongoDB文档型数据库进行社交网络服务的关注、动态服务设计,并初步进行非关系数据库的架构、实现的应用。
有些人认为在构建应用程序的时候不需要考虑可伸缩性问题,因为那会在必要的时候得到强调。 但是如果我们想要从开始就考虑可伸缩性,你还有什么好的建议呢?