架构设计
Mr_木頭
我喜欢程序员,他们单纯、固执、容易体会到成就感;面对压力,能够挑灯夜战不眠不休;面对困难,能够迎难而上挑战自我。 他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想“用智慧开创属于自己的事业”。我想说的是, 其实我是一个程序员。
展开
-
设计模式系列-01-简单工厂模式
1 工厂模式简介1.1 定义 ***简单工厂模式属于创建型模式又叫做静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单来说,提供创建实例的功能,而无需关心具体实现。本质:选择实现。1.2 解决的问题 *****将“类实例化的操作”与“使用对象的操作”分...原创 2020-01-23 14:35:17 · 197 阅读 · 0 评论 -
程序员遇到祖传代码:技术债是推翻还是维护?
前言:做开发多年,对于技术债的问题也深有体会。此文描述了一般情况,值得记录。方案:紧急重要、紧急不重要、重要不紧急、不重要不紧急的划分。随着业务的推进不断偿还债务。价值收益角度:“继续维护的收益”和“重写的收益”哪个更大?---------------------------------------------------------------------------------...转载 2019-08-12 18:08:21 · 347 阅读 · 0 评论 -
高并发系统限流
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,...转载 2019-07-25 10:40:01 · 299 阅读 · 0 评论 -
高并发系统的限流算法与实现
开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存:缓存的目的是提升系统访问速度和增大系统处理容量。降级:降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降级,以此释放服务器资源以保证核心任务的正常运行。限流:限流的目的是通过对并发请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以进行拒绝服务、排队或等待、降级等...转载 2019-07-25 10:38:59 · 255 阅读 · 0 评论 -
到底多大才算高并发?
定义:高并发(High Concurrency)是使用技术手段使系统可以并行处理很多请求。关键指标:-响应时间(Response Time)-吞吐量(Throughput)-每秒查询率QPS(Query Per Second)-每秒事务处理量TPS(Transaction Per Second)-同时在线用户数量关键指标的维度:-平均,如:小...转载 2019-05-17 09:19:22 · 1944 阅读 · 0 评论 -
高并发核心技术 - 库存
高并发核心技术 - 订单与库存 问题: 一件商品只有100个库存,现在有1000或者更多的用户来购买,每个用户计划同时购买1个到几个不等商品。如何保证库存在高并发的场景下是安全的。 1.不多发 2.不少发 下单涉及的一些步骤 1.下单 2.下单同时预占库存 3.支付 4.支付成功真正减扣库存 5.取消订单 6.回退预占库存 什么时候进行预占库存 方案一:...转载 2019-04-22 14:43:24 · 184 阅读 · 0 评论 -
常见的数据一致性级别
数据一致性是分布式系统,特别是分布式存储系统设计实现中需要重点考虑的问题之一。根据CAP理论:在分布式数据系统中,一致性(Consistency )、可用性(Availability)、分区容忍性(Partition tolerance)这3个要素最多只能同时实现2点,而不可能3者兼顾。对于分布式数据系统,分区容忍性是基本要求。因此设计分布式数据系统,就是在一致性和可用性之间做平衡。对于大多数...转载 2018-12-20 11:32:56 · 1888 阅读 · 0 评论 -
每个程序员要注意的 9 种反模式
涵盖的反模式清单:1过早优化 2 Bikeshedding 3分析瘫痪 4上帝阶级 5害怕添加类 6内平台效应 7个魔术数字和字符串 8按数字管理 9无用(恶作剧)类 有一个健康的自我批评对于专业和个人成长是很重要的。对于编程而言,自我批评的意义就是需要能查明设计中、代码中、开发中和行为中的无效或反效果的模式。这就是为什么反面模式对任何程序员都很有用的原因。基于我遇到它们...转载 2018-11-22 20:52:34 · 1568 阅读 · 0 评论 -
设计模式和反模式简单介绍
摘要:本文主要讲的是反模式, 反模式(英文:Anti-patterns或pitfalls), 是指用来解决问题的带有共同性的不良方法。它们已经经过研究并分类,以防止日后重蹈覆辙,并能在研发尚未投产的系统时辨认出来。 作为一个资深开发人员,大家都应该听说过设计模式(design pattern),但是不是所有的人都听说过反模式(anti-pattern)。今天我们就来谈谈后者,何为反模式。...转载 2018-11-22 20:34:31 · 5910 阅读 · 0 评论 -
(转)一张图告诉你什么是系统架构师
这张图从架构师的综合能力、岗位认识、岗位职责等方面,清楚的画出了作为一个架构的基本准则。人人都想成为架构师,可作为架构你达到了上面的要求了吗?系统架构师是个神奇的岗位。为什么这么说,在一个人数不多的小公司,你可能什么都需要做,身体力行,做总监兼架构师或者是主管/高级开发兼架构师;在大公司,你可能只负责某个平台的架构,某些中间件的架构,你就是某一类的架构师。无论怎么分,作为一个架构师,你...转载 2018-10-23 14:47:24 · 332 阅读 · 0 评论 -
(转)微服务架构理论-扩展立方体篇
很久很久以前的程序员都很牛逼一不开心就自己写个操作系统自己玩,玩着玩着最后就剩下了几个,比如我们熟知的windows,linux,苹果OS,这是我们使用最底层的操作系统,在操作系统上面我们还要运行我们的应用软件,这个运行的应用软件就是我们今天重点讲解的,然而这个软件一般指企业级软件。 企业级软件最初只想把那些纸质的数据进行电子化,但是不断的发展,不断的发展,不过也就几十年的时间就出现了如下的...转载 2018-10-25 16:50:24 · 566 阅读 · 0 评论 -
日常小记1
盲人摸象从前,有四个盲人很想知道大象是什么样子,可他们看不见,只好用手摸。胖盲人先摸到了大象的牙齿。他就说:“我知道了,大象就像一个又大、又粗、又光滑的大萝卜。”高个子盲人摸到的是大象的耳朵。“不对,不对,大象明明是一把大蒲扇嘛!”他大叫起来。“你们净瞎说,大象只是根大柱子。”原来矮个子盲人摸到了大象的腿。而那位年老的盲人呢,却嘟嚷:“唉,大象哪有那么大,它只不过是一根草绳。”原来他摸到的是大...原创 2018-10-17 21:33:27 · 260 阅读 · 0 评论 -
上线小记
1、上线的操作要按照日常标准来,是对习惯的训练。2、上线的业务相关,要明确需要的参考指标有哪些,要在上线过程中进行监控。3、上线的基础指标,不要放过机器的新能指标。4、节奏要把控,因为有些信息未必很快显现。5、上线前的准备要做充分,每一次都当做新的来对待,这样会给你省去很多麻烦。你懂得。6、上线后的收尾工作,要做到位,至少要在持续观察一会儿。这是一个态度。7、上线如果遇到风...原创 2018-08-30 20:53:12 · 110 阅读 · 0 评论 -
什么是微服务架构?
一、微服务架构介绍 微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的类上应用很多SOLID原则。微服务架构是个很有趣的概念,它的主要作用是将功能分解到离散的各个服务当中,从而降低系统的耦合性,并提供更加灵活的服务支持。概念:把一个大型的单个应用程序和服务拆分为数个甚...转载 2018-06-11 16:05:58 · 303 阅读 · 0 评论