摘要:
你能做到每周、每天甚至每个钟头向客户发布新特性吗?新加入的开发者能够在他们工作的第一天甚至面试阶段就能部署代码吗?部署新员工的代码后,你能因为确信应用程序运行正常而安然入睡吗?建立快速发布机制,包括支持cloud-native应用的安全与可靠的运维的流程、工具和文化,已经成为软件驱动组织的关键战略因 阅读全文
随笔分类 - SE
系统架构设计的原则和模式
2018-03-02 17:35 by Loull, 3215 阅读, 收藏, 编辑
摘要:
1 分层架构 分层架构是最常见的架构,也被称为n层架构。多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师、开发者和软件设计者所熟知。 分层架构中的层次和组件是水平方向的分层,每层扮演应用程序中特定的角色。根据需求和软件复杂度,我们可以设计N层,但大多数 阅读全文
【翻译】可能是CAP理论的最好解释
2018-01-04 11:36 by Loull, 357 阅读, 收藏, 编辑
摘要:
一篇非常精彩的解释CAP理论的文章,翻译水平有限,不准确之处请参考原文,还请见谅。 Chapter 1: “Remembrance Inc” Your new venture : Last night when your spouse appreciated you on remembering h 阅读全文
常用限流方案的设计和实现
2017-10-24 21:44 by Loull, 2254 阅读, 收藏, 编辑
摘要:
为了保证在业务高峰期,线上系统也能保证一定的弹性和稳定性,最有效的方案就是进行服务降级了,而限流就是降级系统最常采用的方案之一。 限流即流量限制,或者高大上一点,叫做流量整形,限流的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,把流量速率限制在系统所能接受的合理范围之内,不至于让系统被高流量击垮 阅读全文
SPI
2017-05-02 15:48 by Loull, 198 阅读, 收藏, 编辑
摘要:
从面向接口编程说起 我们在“调用方”和“实现方”之间引入了“接口”,上图没有给出“接口”应该位于哪个“包”中,从纯粹的可能性上考虑,我们有三种选择: 下面让我们依次分析这三种可能性,如果现实中确实有这种可能性,不如我们就为其起个名字以方便交流。 API SPI 系统里抽象的各个模块,往往有很多不同的 阅读全文
一致性哈希虚拟节点
2017-03-24 11:58 by Loull, 2120 阅读, 收藏, 编辑
摘要:
采用固定哈希算法平衡负载 在大规模的缓存应用中,应运而生了分布式缓存系统。key-value如何均匀的分散到集群中?最常规的方式莫过于hash取模的方式。比如集群中可用机器适量为N,那么key值为K的的数据请求很简单的应该路由到hash(K) mod N对应的机器。但是在一些高速发展的web系统中, 阅读全文
删除N天前的log日志文件:RollingFileAppender,DailyRollingFileAppender,/etc/cron
2017-02-13 21:26 by Loull, 2067 阅读, 收藏, 编辑
摘要:
1. 如果您使用的是Log4j,且采用的RollingFileAppender方式, 通过设置maxBackupIndex属性来指定要保留的日志文件数的最大值可以间接实现删除N天前的日志文件。 2. 如果您使用的是Log4j,且采用的DailyRollingFileAppender方式,由于该方式不 阅读全文
分布式系统原理
2016-02-12 21:21 by Loull, 364 阅读, 收藏, 编辑
摘要:
一、分布式系统基础重要要点: 对外提供无状态节点,内部实现具体有状态或者无状态节点逻辑,节点即可以是提供服务,也可以是存储数据。 拜占庭问题,在分布式系统中的使用,目的是保证服务可用,而不是找出错误的节点,如果。 异常常见情况,机器宕机、网络异常、消息丢失、消息乱序、数据错误、不可靠的TCP。可能是 阅读全文
【转】如何实现一个配置中心
2016-02-12 20:28 by Loull, 2443 阅读, 收藏, 编辑
摘要:
问题 服务一般有很多依赖配置,例如访问数据库有连接字符串配置,连接池大小和连接超时配置,这些配置在不同环境(开发/测试/生产)一般不同,比如生产环境需要配连接池,而开发测试环境可能不配,另外有些参数配置在运行期可能还要动态调整,例如,运行时根据流量状况动态调整限流和熔断阀值。 传统配置文件方式虽然把 阅读全文
分布式系统常用思想和技术总结
2016-02-12 19:35 by Loull, 1264 阅读, 收藏, 编辑
摘要:
一、分布式系统的难点 分布式系统比起单机系统存在哪些难点呢? 1. 网络因素 由于服务和数据分布在不同的机器上,每次交互都需要跨机器运行,这带来如下几个问题: 1. 网络延迟:性能、超时 同机房的网络IO还是比较块的,但是跨机房,尤其是跨IDC,网络IO就成为不可忽视的性能瓶颈了。并且,延迟不是带宽 阅读全文
分布式CAP理论介绍:一致性(Consistency),可用性(Availability),容忍网络分区(Partition tolerance)
2016-02-12 18:22 by Loull, 4718 阅读, 收藏, 编辑
摘要:
在理论计算机科学中,CAP定理(CAP theorem),又被称作布鲁尔定理(Brewer's theorem),它指出对于一个分布式计算系统来说,不可能同时满足以下三点: 一致性(Consistency)(等同于所有节点访问同一份最新的数据副本) 可用性(Availability)(对数据更新具备 阅读全文
Thinking In SE
2016-02-11 21:35 by Loull, 225 阅读, 收藏, 编辑
摘要:
各种编程范式的区别 并发模型 并行架构: 位级(bit-level)并行 指令级(instruction-level)并行 数据级(data)并行 数据级并行 任务级(task-level)并行 -- 多处理器,按内存模型分类:共享内存模型,分布式内存模型 并发模型: 线程与锁 函数式编程消除了可变 阅读全文
浅谈SOA面向服务化编程架构(dubbo)
2015-12-30 17:40 by Loull, 5626 阅读, 收藏, 编辑
摘要:
dubbo 是阿里系的技术。并非淘宝系的技术啦,淘宝系的分布式服务治理框架式HSF啦,只闻其声,不能见其物。而dubbo是阿里开源的一个SOA服务治理解决方案,dubbo本身集成了监控中心,注册中心,负载集群...等等。代码和整体的框架还是很优雅滴呀! github地址 https:... 阅读全文
可扩展架构设计的三个维度
2015-12-30 17:37 by Loull, 6215 阅读, 收藏, 编辑
摘要:
业界对于可扩展的系统架构设计有一个朴素的理念,就是:通过加机器就可以解决容量和可用性问题这一理念在“云计算”概念疯狂流行的今天,得到了广泛的认可!对于一个规模迅速增长的系统而言,容量和性能问题当然是首当其冲的。但是随着时间的向前,系统规模的增长,除了面对性能与容量的问题外,还需要面对功能与模块数量上... 阅读全文
浅谈服务化架构
2015-12-30 16:58 by Loull, 869 阅读, 收藏, 编辑
摘要:
这两年来,在服务化架构设计上的实践比较多,在此对关于服务化设计一些经验稍作总结,知识经验水平有限,如有欠缺和不准确的地方,还请指出修正!我在《可扩展架构设计的三个维度》一文里(回复“06”可阅读此文),谈到服务化架构(SOA)在保证系统扩展性上,是一个比较好的架构设计实践。也谈到了通过服务网关... 阅读全文
六大Web负载均衡原理与实现
2015-12-22 19:24 by Loull, 2360 阅读, 收藏, 编辑
摘要:
一、http重定向当http代理(比如浏览器)向web服务器请求某个URL后,web服务器可以通过http响应头信息中的Location标记来返回一个新的URL。这意味着HTTP代理需要继续请求这个新的URL,完成自动跳转。性能缺陷:1、吞吐率限制主站点服务器的吞吐率平均分配到了被转移的服务器。现假... 阅读全文
单机到分布式集群
2015-09-25 11:46 by Loull, 397 阅读, 收藏, 编辑
摘要:
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题。为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制。在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决。 ... 阅读全文
再谈CAP
2015-06-05 15:24 by Loull, 203 阅读, 收藏, 编辑
摘要:
CAP定理设计者Eric Brewer作为Google基础设施副总裁在时隔二十年后重谈CAP定律。Eric Brewer目前正在推动Kubernetes和容器建设,在这篇采访中:Google systems guru explains why containers are th,他认为容器是云计算的... 阅读全文
Cookie和Session原理
2015-04-28 14:50 by Loull, 420 阅读, 收藏, 编辑
摘要:
由于HTTP是无状态的协议,客户程序每次都去web页面,都打开到web服务器的单独的连接,并且不维护客户的上下文信息。如果需要维护上下文信息,比如用户登录系统后,每次都能够知道操作的是此登录用户,而不是其他用户。对于这个问题,存在三种解决方案:cookie,url重写和隐藏表单域。1、cookie ... 阅读全文
session机制,浏览器禁用cookie后,怎么使用session
2015-04-28 14:33 by Loull, 1140 阅读, 收藏, 编辑
摘要:
sessionid是存储在cookie中的,解决方案如下:Session URL重写,保证在客户端禁用或不支持COOKIE时,仍然可以使用Sessionsession机制。session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息。当程序需要为某个客户... 阅读全文