随笔分类 - 架构设计
摘要:采用依赖倒置原则可以减少类间的耦合性,提高系统的稳定性,减少并行开发引起的风险,提高代码的可读性和可维护性。高层次的模块不应该依赖于低层次的模块,他们都应该依赖于抽象。抽象不应该依赖于具体,具体应该依赖于抽象。
阅读全文
摘要:安全无小事,成败在细节,网络有风险,灾难弹指间。安全一般情况下看不见,在你周围漂浮着,显现出来后,往往会刻骨铭心。正因为安全看不见,所以往往不受重视,因为感知到的概率真的太低,用户的第一感知是他看得见、摸得着、嗅得到、品得出的东西,实实在在的东西,而不是那种虚无缥缈的东西,我们对概率低的东西往往默认选择忽略。
阅读全文
摘要:每个网站,必有一个登录认证授权模块,常见的登录授权方式有哪些呢?又该如何实现呢?下面我们将来讲解SSO、OAuth等相关知识,并在实践中的应用姿势。
阅读全文
摘要:What 可扩展性指系统为了应对将来需求变化而提供的一种扩展能力,当有新的需求出现时,系统不需要或者仅需要少量修改就可以支持,无须整个系统重构或者重建。 Why 伴随着业务的发展,能够快速响应业务变化,并最大程度降低对现有系统的影响,是设计可扩展性好架构的主要目的。 Theory 设计具备良好可扩展
阅读全文
摘要:常见问题 有时由于硬件设备的限制,单纯软件上的性能优化已经无法提升系统性能? 这时需要改造系统的架构体系,提升系统的扩展能力,组合多个只具备低处理能力的硬件设备,从而达到一个具有高处理能力的系统。 可伸缩性 当增加计算机资源时(例如CPU、内存、存储容量或I/O带宽),程序的吞吐量或者处理能力能相应
阅读全文
摘要:ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-x.x.x\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
ZooKeeper是可以集群复制的,集群间通过Zab(ZooKeeper Atomic Broadcast)协议来保持数据的一致性。
ZooKeeper安装;在Java中的使用;org.I0Itec.zkclient.ZkClient的使用;Watcher的监听是一次性的;
阅读全文
摘要:说明:以下内容来自李智慧的《大型网站技术架构:核心原理与案例分析》这本书的目录,虽然是目录,但能从中学到的东西还是不少的。 第1篇 概述 1 大型网站架构演化 1.1 大型网站软件系统的特点 1.2 大型网站架构演化发展历程 1.2.1 初始阶段的网站架构 1.2.2 应用服务和数据服务分离 1.2
阅读全文