架构与思维

架构与思维:再聊缓存击穿,面试是一场博弈

1 介绍 在之前的一篇文章《一次缓存雪崩的灾难复盘》中,我们比较清晰的描述了缓存雪崩、穿透、击穿的各自特征和解决方案,想详细了解的可以移步。 最近在配合HR筛选候选人,作为大厂的业务方向负责人,招人主要也是我们自己团队在用,而缓存是必不可少的面试选项之一。下面我们就来聊一聊在特定业务场景下缓存击穿和 ... »

微服务12:系统服务熔断、限流

微服务1:微服务及其演进史微服务2:微服务全景架构微服务3:微服务拆分策略微服务4:服务注册与发现微服务5:服务注册与发现(实践篇)微服务6:通信之网关微服务7:通信之RPC微服务8:通信之RPC实践篇(附源码)微服务9:服务治理来保证高可用 1 为什么熔断限流 分布式系统环境下,服务间类似依赖非常 ... »

MQ系列6:消息的消费

MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 MQ系列3:RocketMQ 架构分析 MQ系列4:NameServer 原理解析 MQ系列5:RocketMQ消息的发送模式 在之前的文章中,我们学习了RocketMQ的原理;RocketMQ中 命名服务 ServiceName 的 ... »

MQ系列3:RocketMQ 架构分析

MQ系列1:消息中间件执行原理 MQ系列2:消息中间件的技术选型 1 背景 我们前面两篇对主流消息队列的基本构成和技术选型做了详细的分析。从本篇开始,我们会专注当下主流MQ之一的RocketMQ。 从他的如下的几个方面去讨论: 基础能力(如 组织构成、消息发送、消息存储(持久化)、消息通信、消息消费 ... »

架构与思维:互联网高性能Web架构

1 什么是高性能Web架构 在互联网业务中,我们经常会面临流量巨大的复杂的分布式场景。这就要求我们在设计系统的时候保证系统具有承载高并发(High Concurrency)的能力,同时能够保证系统的高可用性(High Availability)。 所以,具备高性能Web架构通常是指,通过稳健的系统设 ... »

工业制造行业的低代码开发平台思维架构图

前言: 1、本思维架构图是基于:受限于某现实场景下的最优规划。 2、本思维架构图是基于:工业制造行业的低代码开发平台。 工业制造业的特点: 这个行业比较简单,基本要求都是: 1、对生产的设备进行数据采集与设置,并进行监控或告警。 2、要求有自定义看板,适合根据图表监控特定的设备数据。 3、功能不多, ... »

MQ系列2:消息中间件的技术选型

1 背景 在高并发、高消息吞吐的互联网场景中,我们经常会使用消息队列(Message Queue)作为基础设施,在服务端架构中担当消息中转、消息削峰、事务异步处理 等职能。 对于那些不需要实时响应的的业务,我们都可以放在消息队列中进行传输。下面是用户在进行系统注册的时候场景,充分体现MQ的作用 可以 ... »

Redis系列3:高可用之主从架构

Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 1 主从复制介绍 上一篇《Redis系列2:数据持久化提高可用性》中,我们介绍了Redis中的数据持久化技术,包括 RDB快照 和 AOF日志 。有了这两个利器,我们再也不用担心机器宕机,数据丢失了。 但是持久 ... »

Redis系列2:数据持久化提高可用性

1 介绍 从上一篇的 《深刻理解高性能Redis的本质》 中可以知道, 我们经常在数据库层上加一层缓存(如Redis),来保证数据的访问效率。 这样性能确实也有了大幅度的提升,但是本身Redis也是一层服务,也存在宕机、故障的可能性。 一旦服务挂起,可能生产的后果包括如下几方面: 1、Redis的数 ... »

数据库系列:高并发下的数据字段变更

1 背景 经常会遇到这种情况,我们的业务已经稳定地运行一段时间了,并且流量渐渐已经上去了。这时候,却因为某些原因(比如功能调整或者业务扩展),你需要对数据表进行调整,加字段 or 修改表结构。 可能很多人说 alter table add column ... / alter table modif ... »

架构本质:从规划、思维到设计,构建可靠的架构根基

一、什么是架构  关于什么是架构,业界从来没有一个统一的定义。Martin Fowler在《企业应用架构模式》中也没有对其给出定义,只是提到能够统一的内容有两点: 最高层次的系统分解; 系统中不易改变的决定。   《软件架构设计》一书则将架构定义总结为组成派和决策派: 组成派:架构=组件+交互:软件系统的架构将系统描述为计算组件及组件之间的交互。 决策派:架构=重要决策集:软件架构是在一些重要方面 »

微服务9:服务治理来保证高可用

★微服务系列 微服务1:微服务及其演进史 微服务2:微服务全景架构 微服务3:微服务拆分策略 微服务4:服务注册与发现 微服务5:服务注册与发现(实践篇) 微服务6:通信之网关 微服务7:通信之RPC 微服务8:通信之RPC实践篇(附源码) 微服务9:服务治理来保证高可用 1 微服务带来的挑战 在第 ... »

现在物价虽然高得离谱,但是内存条都白菜价格了,需要调整程序架构的思维“与时俱进” --- 改进系列之二

   当系统有100个人同时用,每天8小时,每一分钟点2个页面,每个页面有20条记录,若程序处理得不好,这个数据库的I/O压力也是很大。若这个服务器上原本就跑着一个非常复杂的系统,本来系统的性能,数据库的压力就很大了,再加一个应用上去,那就很可能服务器更容易崩溃了。接着服务器可能会进入恶性循环每个服务都超时,程序的稳定性也面临一大堆性能导致的严峻问题。    100 * 8 * 60 * 2 * »

模块化思维和模板引擎 使用模块化思维和模板引擎搭建前端架构(require+underscore)

使用模块化思维和模板引擎搭建前端架构(require+underscore) require.js 介绍: 是一个非常小巧的JavaScript模块载入框架,是AMD规范最好的实现者之一。最新版本的RequireJS压缩后只有14K,堪称非常轻量。 官网:http://www.requirejs.cn/    (PS:如果没接触过,刚开始看都是一头蒙蔽的,建议看下菜鸟教程) 新手教程:htt »

MQ系列:消息中间件执行原理

1 关于消息中间件 1.1 什么是消息中间件? 消息中间件是指在分布式系统中完成消息的发送和接收的基础软件。 消息中间件也可以称消息队列(Message Queue / MQ),用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型,可 ... »

一个实战系统的权限架构思维推导过程

一个系统的权限架构思维推导过程     权限实际应该有四个部分:        1)顶部菜单权限        2)左侧导航菜单权限        3)模块操作项操作权限        4)数据浏览权限        首先他们都要能够通过统一的角色进行管理,那么一个角色可以设置4个不同部分的权限,也可以将4个部分部分整合成一个部分        其次顶部菜单和左侧导航菜单是有隶属关系的,那么可以 »

敏捷思维-架构设计中的方法学(8)

八、架构愿景   从这一篇开始,我们将会进入另一个不同的主题,和前面所讨论的模式专注于组织、过程、方法不同,以后介绍的模式更偏重于设计。但是过程、方法的影子依然在我们的讨论中隐约可见。   架构愿景是一个很简单的模式,在软件开发中所占的时间也很短。但是这并不意味着架构愿景不重要。相反,它会是设计过程不可或缺的一环。   Context   在单次的迭代开始阶段,我们已经收集好了单次迭代的需求。   »

敏捷思维: 架构设计中的方法学(8)--架构愿景

简介: 从这一篇开始,我们将会进入另一个不同的主题,和前面所讨论的模式专注于组织、过程、方法不同,以后介 绍的模式更偏重于设计。但是过程、方法的影子依然在我们的讨论中隐约可见。架构愿景是一个很简单的模式,在软件开发中所占的时间也很短。但是这并不意味着 架构愿景不重要。相反,它会是设计过程不可或缺的一环。 Context 在单次的迭代开始阶段,我们已经收集好了单次迭代的需求。 Problem »

敏捷思维-架构设计中的方法学(7)

七、组合使用模式   我们已经讨论了敏捷架构设计的4种过程模式,在这一章中,我们对这四种过程模式做一个小结,并讨论4者间的关系以及体现在模式中的敏捷方法论特色。通过这一章的描述,大家能够对前面的内容有更进一步的了解。   四种模式的着重点   我把源自需求、团队设计、简单设计、迭代设计这4种过程模式归类为架构设计的第一层次,这4种模式能够确定架构设计过程的框架。这里需要对框架的含义进行 »