系统设计入门:从单体到微服务,架构师必知的基础概念
从单体到微服务
单体架构是最简单的部署方式,所有功能模块打包在一个进程里。优点是开发快、部署简单、调试方便,适合项目初期和中小团队(10人以下)。随着业务增长到某个体量,单体的缺点暴露——一处代码改动需要全量构建和部署,团队协作耦合度太高。微服务架构将系统按业务边界拆分成独立可部署的小服务。服务之间通过API通信各自独立开发和升级。优势是技术栈灵活、故障隔离、团队自治;代价是运维复杂度剧增——分布式事务、网络延迟、链路追踪和服务发现等问题随之而来。不要为了微服务而微服务。微服务解决的是组织架构和人之间的耦合问题,而非技术问题。当团队超过30人时才考虑开始拆微服务。
缓存策略
缓存金字塔从浏览器缓存 → CDN → 反向代理(Nginx)→ 应用层(Redis/Memcached)→ 数据库,自顶向下命中速度越快、成本越高、容量越小。Redis是最流行的分布式缓存,支持丰富的数据结构(String、Hash、List、Set、Sorted Set),能做缓存、消息队列、分布式锁和实时排行榜。缓存三大经典问题需铭记:缓存穿透(查一个不存在的数据每次都落到DB→用布隆过滤器防御)、缓存击穿(热点Key过期瞬间大量请求打到DB→热点数据永不过期加互斥锁)、缓存雪崩(大量Key同时过期→给过期时间加随机值错峰)。
消息队列
消息队列的核心价值是解耦、削峰和异步。订单系统下单后发消息给短信服务发送验证码、给积分服务增加会员积分、给物流服务通知发货——三个下游服务各自消费消息互不影响,任一服务挂了也不影响订单主流程。主流的消息队列中Kafka以高吞吐和持久化著称适合大数据和日志处理场景,RabbitMQ以功能丰富和协议标准著称适合企业应用和业务解耦,RocketMQ源于淘宝是阿里出品的金融级消息队列。
【交流与合作】微信号:abc6789122
← 返回火天使导航首页内容由网络信息整理,仅供参考