CTO讲解微店的架构之道
本文将详细讲解微店的架构之道,包括微店技术演进之路、技术特点、安全防护、数据库架构、中间件架构等方面。
微店技术演进之路
----------------
微店的技术演进之路可以分为两个阶段:第一阶段“开天辟地”和第二阶段“亡羊补牢”。
### 第一阶段:开天辟地
在第一阶段,微店采用了LAMP(Linux、Apache、MySQL、PHP)架构,使用F5和Redis来提高性能和稳定性。这一阶段的技术特点包括:
* 使用LAMP架构,实现了快速开发和高效运算
* 采用F5和Redis来提高性能和稳定性
* 实现了统一的接入层,运行Lua脚本,且100%全覆盖
### 第二阶段:亡羊补牢
在第二阶段,微店面临着两个主要问题:全站性能很差和稳定性问题频发。为了解决这些问题,微店采用了DB和其他技术手段。
安全防护
--------
微店的安全防护包括:
* 统一的接入层,运行Lua脚本,且100%全覆盖
* 完善的漏洞防护,覆盖OWASP主要漏洞类型
* 实时规则防护,0day防护
* 全天候实时阻断
* 虚拟补丁,规则动态实时更新
* 覆盖OWASP Top 10主要类型安全问题,完全规避防范SQL注入问题
* 提供CC防护、爬虫拦截、限流支持
* 与安全日志分析系统联动,实时的风险感知并拦截
* 0误伤
数据库架构
------------
微店的数据库架构包括:
* 分库分表:Client端实现分库分表功能;提供JDBC规范的接口,接入时只需替换数据源
* 读写分离:根据业务的SQL确定使用主库还是从库执行SQL语句,降低主库的压力;读请求按比例分配
* 独立的账号体系:接入业务使用的是VDDS的账号,数据库用户名/密码加密且对业务隔离,保证了数据库账号的安全性
* 配置自动变更:配置改变之后,自动推送到所有机器上,不需要业务重启机器
* 灵活的Hint机制:业务可以通过Hint直接指定物理表,多运用于扫表的场景
中间件架构
-------------
微店的中间件架构包括VDDS(分库分表),其特点包括:
* 平滑下线:VDDS Proxy下线时,通过LVS心跳机制,不接受新DB请求,同时等待老连接完成请求在关闭
微店的架构之道包括微店技术演进之路、安全防护、数据库架构和中间件架构等方面,旨在提供一个高效、安全、可靠的架构解决方案。