网站的可扩展架构
构建可扩展的网站架构
构建可扩展的网站架构
软件架构师最大的价值不在于掌握多少先进的技术,而在于具有将一个大系统切分成N个低耦合的子模块的能力,这些子模块包含横向的业务模块,也包含纵向基础技术模块,如何分解系统的各个模块、如何定义各个模块的接口、如何复用组合不同的模块构造成一个完整的系统
Tips:一个复杂度为100的系统,如果能够分解成没有耦合的两个子系统,那么每个子系统的复杂度不是50,而可能是25。
利用分布式消息队列降低系统耦合性
事件驱动架构
事件驱动架构(Event Driven Architecture):通过在低耦合的模块之间传输事件消息,以保持模块的松散耦合,并借助事件消息的通信完成模块间合作,典型的EDA架构就是生产者消费者模式。
消息发送者是消息源,在对消息进行处理后将消息发送至分布式消息队列,消息接受者从分布式消息队列获取该消息后继续进行处理
Tips:如果模块之间不存在直接调用,那么新增模块或者修改模块就对其他模块影响最小,这样系统的可扩展无疑更好一些。
分布式消息队列
队列是一种先进先出的数据结构,分布式消息队列可以看作将这种数据结构部署到独立的服务器上,应用程序可以通过远程访问接口使用分布式消息队列,进行消息存取操作,进而实现分布式的异步调用。
MySQL也可以当做分布式消息队列:消息生产者程序将消息当做数据记录写入数据库,消息消费者程序查询数据库并按记录写入时间戳排序&#x