自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(103)
  • 收藏
  • 关注

原创 架构师面试(二十七):单链表

这是数据结构中一个非常典型的小型算法,有栈实现方案、队列实现方案和双指针实现方案等。

2025-04-06 18:00:00 237

原创 架构师面试(二十六):系统拆分

从 Logic 中拆分出 Extlogic,解决运营活动影响核心业务逻辑的问题;从 Logic 中拆分出 SpamLogic、AdLogic、MarketingLogic、OrderLogic、TradeLogic 等,解决业务单元之间互相影响的问题;业务单元中台化,解决业务复用问题,助力前端业务发展。

2025-04-06 09:33:33 403

原创 架构师面试(二十五):分布式存储 Leader 设计

在分布式存储系统中,往往会有一个负责数据写入的【Leader】角色,这样设计的原因包括:避免多节点写入的数据冲突;避免多节点写入时副本同步的网络拥堵;单节点写入可以降低系统复杂度;单节点写入更容易实现顺序一致性等等。

2025-04-02 23:40:37 333

原创 架构师面试(二十四):RPC 与 MQ

如果没有 RPC,微服务系统中所有的服务节点全部通过 MQ 进行消息通讯,设想一下这样的架构存在什么问题呢?MQ 就变成了整个微服务系统中一个中心化的组件,当这个组件出现任何问题时,整个微服务系统就会面临瘫痪的风险。

2025-03-31 06:00:00 124

原创 架构师面试(二十三):负载均衡

微服务系统中,负载均衡的实现,有两种常用方式,即 前置组件 和 VIP + keepalive。

2025-03-30 23:11:39 343

原创 架构师面试(二十二):TCP 协议

TCP 协议是如何做到【可靠】数据传输的?通过【序列号和确认号机制】和【校验和机制】,辅助手段是 【超时重传】【滑动窗口】【拥塞窗口】;既然 TCP 协议非常可靠,那为什么在应用层还需要 ACK 确认机制呢?TCP 传输数据是可靠的,但不能保证 TCP 缓冲区的数据一定能到应用层。

2025-03-28 00:11:08 590

原创 架构师面试(二十一):双边网络效应

作者制作了一个高质量非常吸引流量的短视频,该短视频会短时间内(一般3~7天)获得大量的“点赞”、“收藏”、“转发”、“评论”等,作者也会获得大量的用户关注(吸粉),在此激励下,作者会继续努力不断创作出更多高质量作品,更多的读者会继续被吸引

2025-03-25 06:00:00 407

原创 架构师面试(二十):CAP 定理

在对分布式系统进行读写操作时,只能保证C、A、P三者中的两个,另外一个必须被牺牲。

2025-03-23 10:01:40 863

原创 架构师面试(十九):IM 架构

IM 系统从架构模式上包括 【介绍人模式】和 【代理人模式】。介绍人模式也叫直连模式,消息收发不需要服务端的参与,即客户端之间直连的方式;代理人模式也叫中转模式,消息收发需要服务端进行中转。

2025-03-21 07:39:03 538

原创 架构师面试(十八):I/O 原理

【阻塞IO 和 非阻塞IO】描述的是 “应用程序” 调用 “系统内核”的操作方式,【同步IO 和 异步IO】描述的是 “应用程序”和“系统内核”的交互方式。

2025-03-19 13:01:31 481

原创 架构师面试(十七):总体架构

单体架构也可以在【技术】和【业务】双重驱动之下,同时进行水平和垂直拆分,直接演变成【微服务架构】;不管是水平拆分还是垂直拆分,拆分的目的都是一样的: 解耦。

2025-03-17 12:57:01 395

原创 架构师面试(十六):TCP Socket 编程

TCP Socket 编程问题:建立TCP连接、对 TCP 连接读写问题、多线程读写 TCP 连接问题、关闭 TCP 连接问题。

2025-03-15 06:00:00 333

原创 架构师面试(十五):熔断设计

【服务管控系统】是大脑,储存着用于决策的大量信息;【注册中心】是神经系统,用于传导大脑发出的指令;【服务】是功能器官,负责业务功能。

2025-03-14 20:42:01 320

原创 架构师面试(十四):注册中心设计

设计一个分布式的注册中心系统,需要考虑存储模型实现、订阅模型实现和数据节点同步这样三个最关键的问题。

2025-03-11 23:30:35 1008

原创 架构师面试(十三):未读数模型

整体上来说 IM 的未读数模型包括【离线消息计算】和【计数器计算】两种方式。

2025-03-09 06:00:00 930

原创 架构师面试(十二):优雅下线

服务节点接收到“重启”指令后,不再执行业务逻辑处理,直接对请求队列中的所有的请求生成“reboot”回复包,直接发送给对应的上游节点,

2025-03-08 06:00:00 306

原创 架构师面试(十一):消息收发

客户端X发消息给客户端Y,通常会经过三个阶段:生产消息阶段(客户端X发送消息到服务端,服务端经过一系列逻辑处理后发送回复包到客户端X),推送消息阶段(服务端经过一系列逻辑处理后推送消息到客户端Y),消息确认阶段(服务端等待客户端Y发送ACK数据包并进行逻辑处理)

2025-03-07 06:00:00 207

原创 架构师面试(十):消息存储设计

写扩散方式进行消息存储,可以方便消息的定制化需求的实现,也可以方便分库分表后同一用户的所有消息能落到一张表中。

2025-03-03 23:05:53 342

原创 架构师面试(九):缓存一致性

插入操作:只写数据库即可;查询操作:先查询 缓存,如果为空则查询 数据库,然后将查询到的数据写入缓存;删除操作:先删除数据库,再删除缓存;更新操作:先更新数据库,再删除缓存。

2025-03-01 11:48:51 485

原创 架构师面试(八):RPC

前端通常基于【短连接】访问后端;在后端集群中,服务之间通常基于【全双工通信的长连接】进行 RPC 调用;在服务对数据库或缓存进行访问时,会基于【半双工通信的长连接】进行 RPC 调用。

2025-02-27 06:00:00 321

原创 架构师面试(七):评论消息

信箱模型的定时拉取方案,实时性低,实现简单;电话模型的主动推送方案,实时性高,但实现复杂;BP机模型的通知回调和拉取方案,实时性高,实现也简单。

2025-02-25 06:00:00 247

原创 架构师面试(六):熔断和降级

商品列表服务调用广告服务有98%调用是超时的,如果继续调用,大概率仍得不到正常结果,熔断是最好的选择,否则容易导致大面积的服务雪崩。

2025-02-23 09:31:58 250

原创 架构师面试(五):理解协程

协程是轻量级的用户级线程,轻量级和用户级是其核心和关键。

2025-02-21 06:00:00 121

原创 架构师面试(四):服务治理模型

注册中心作为微服务系统架构的核心,能触达到所有的微服务实例,这为服务治理提供了基础,可以非常方便的下发指令到各个微服务实例;注册中心提供的是下发指令的通道,而非采集数据的通道。

2025-02-19 06:00:00 295

原创 架构师面试(三):订阅模型

信箱模型,即客户端定时对服务端进行轮询,实现简单,但实时性不高;电话模型,由服务端触发,客户端被动响应,消息实时性比较高,但是落地相对复杂很多;BP 机模型,包括三次交互,首先是服务端主动推送 “通知” 到客户端,然后触发客户端的 “信箱模型” 动作。

2025-02-17 22:53:27 423

原创 架构师面试(二):计算机编程基础

协程是轻量级的用户级线程;操作系统用于进程治理和为应用提供访问硬件的能力;epoll 是同步非阻塞IO模型,IOCP 是纯异步IO模型;TCP 网络编程需要注意粘包和分包问题。

2025-02-15 11:54:43 221

原创 架构师面试(一):主从模式

分布式存储系统中 “主” 的存在是为了解决 “写冲突” 和简化 “同步逻辑” 的问题。

2025-02-13 06:00:00 255

原创 架构技能 专题文章合集

架构技能文章系列合集,包括软件架构、需求分析、软件设计、软件分层、代码解耦、扩展性、订阅模型、互联网三高、服务治理、CAP等。

2025-02-11 06:00:00 219

原创 架构技能(十二):订阅模型

什么是订阅?订阅模型需要解决什么问题?订阅模型有哪些常见落地方式?BP 机模型典型应用有哪些?

2025-02-09 11:18:33 1065

原创 架构技能(十一):CAP(下)

作为分布式系统大部分时间里 CA 模型的常态,有哪些常见的实现方案? AP 模型通常使用什么技术方便恢复 CA 状态?

2025-02-07 06:00:00 877

原创 架构技能(十):CAP(上)

CAP 定理应用在怎样的场景中?如何从工程实践角度准确理解 CAP 定理中C、A、P?什么是 CA 模型、CP 模型、 AP 模型?

2025-02-05 06:00:00 1267

原创 架构技能(九):服务治理

服务治理解决了什么样的问题?服务治理有哪些内容?普适性的服务治理模型是怎样的?

2025-02-03 06:00:00 1446

原创 架构技能(八):互联网三高

什么是互联网三高?互联网三高问题有什么通用的方案模型?主备模式和代理模式如何应用在互联网后端集群中?

2025-02-01 06:00:00 1151

原创 架构技能(七):软件分层

软件分层有什么好处?软件分层放之四海而行之有效的标准或原则是什么?一个普适性的逻辑分层架构是什么样的?

2025-01-31 06:00:00 903

原创 架构技能(六):软件设计(下)

模块详细设计的重点是什么?类之间有哪些常用的关系?怎样进行类内部的分析和设计?

2025-01-29 21:42:56 1363

原创 架构技能(五):软件设计(上)

软件的关键需求如何决定了软件的整体架构设计?什么是软件的三态五架构视图?软件的五类架构需要重点考虑哪些信息?

2025-01-29 06:00:00 776

原创 架构技能(四):需求分析

关键需求决定了架构设计,什么是关键需求?如何识别关键需求?普适性的需求分析模型是怎样的?百万直播答题案例中的关键需求有哪些?

2025-01-27 06:00:00 1428

原创 架构技能(三):扩展性

软件开发的扩展性的核心是什么?冯诺依曼体系结构有怎样的扩展性?计算机的启动过程有怎样的扩展性?电商系统中各类状态转换需要怎样的扩展性解决方案?

2025-01-25 06:00:00 1212

原创 架构技能(二):代码解耦

工程应用中代码结构有哪些模式?如何通过“拆”与“合”实现彻底的代码解耦?业务解耦后的三层逻辑分层架构是一种怎样的结构?

2025-01-23 06:00:00 595

原创 架构技能(一):软件架构

软件架构,到底在谈什么呢?软件架构的本质是什么?软件架构有哪些核心要素?

2025-01-21 06:00:00 878

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除