其他
技术架构的战略和战术原则
没有那么多人,却想干那么多活
没有那么多积累,却想一步登天
没有最新,只要最合适
无状态应用,便于水平扩展。 有状态配置可通过配置中心实现无状
系统维度:按照系统功能、业务拆分,比如购物车、结算、订单等。 功能维度:对系统功能再做细粒度拆分。 读写维度:根据读写比例特征拆分;读多,可考虑多级缓存;写多,可考虑分库分表。 AOP 维度:根据访问特征,按照 AOP 进行拆分. 模块维度:对整体代码结构划分 web、service、dao。 (3)服务化 服务化演进:进程内服务 - 单机远程服务 - 集群手动注册服务 - 自动注册和发现服务 - 服务的分组、隔离、路由 - 服务治理。 考虑服务分组、隔离、限流、黑白名单、超时、重试机制、路由、故障补偿等。
目的:服务解耦(一对多消费)、异步处理、流量削峰缓冲等。 大流量缓冲:牺牲强一致性,保障最终一致性。 数据校对:解决异步消息机制下消息丢失问题。
数据异构:通过消息队列机制接受数据变更,原子化存储。 数据闭环:屏蔽多重数据来源,将数据异构存储,形成闭环。
用户层:DNS 缓存、浏览器 DNS 缓存、操作系统 DNS 缓存、本地 DNS 服务商缓存、DNS 服务器缓存、客户端缓存、浏览器缓存、APP 客户端缓存。 代理层:CDN 缓存(一般基于 ATS、Varnish、Nginx、Squid 等构建,边缘节点 - 二级节点 - 中心节点 - 源站) 接入层:Nginx 的 Proxy_cache 代理缓存,或者 Nginx+Lua+Redis 做业务数据缓存。 应用层:页面静态化、业务数据缓存(Redis/Memcache/ 本地文件等)、消息队列 数据层:NoSQL(Redis、Memcache、SSDB 等)
降级开关集中化管理:将开关配置信息推送到各个应用。 可降级的多级读服务:如服务调用降级为只读本地缓存。 开关前置化:如 Nginx+Lua 配置降级策略,引流流量;可基于此做灰度策略。 业务降级:高并发下,保证核心功能,次要功能可由同步改为异步策略或屏蔽功能。
目的:防止恶意请求攻击或超过系统峰值 恶意请求流量只访问到 Cache 穿透后端应用的流量 Nginx 的 limit 处理 恶意 Ip 使用 Nginx Deny 策略或者 iptables 拒绝
发布版本失败时,可随时快速回退到上一个稳定版本。
防重设计 幂等设计 流程定义 状态与状态机 后台系统操作可反馈 后台系统审批化 文档注释 备份
2021-09-27
2021-09-22
2021-10-18
2021-10-11
2021-09-02
2021-08-26
2021-08-23
2021-07-15
2021-06-30
2021-10-21
2021-10-19