zoukankan      html  css  js  c++  java
  • 07 架构可扩展

    随着新需求的增加,需要开发新的模块, 开闭原则(对扩展开发,对修改关闭)

    低耦合性

    软件架构师最大的价值不在掌握多少先进的技术,而在于具有将一个大系统切分成 N 个低耦合的子模块的能力。这些子模块包含横向的业务模块,也包含纵向的基础技术模块。这种能力一部分源自于专业的技术和经验,还有一部分源于架构师对业务场景的理解,对人性的把握,甚至对世界的认知。

    利用分布式消息队列降低耦合性

    事件驱动架构

    消息队列的方式,无论是增加生产者,还是消费者,对于其他功能都是无感知的。

    分布式消息队列

    实际上 KAFKA 就是这种, 只不过架构图比这个复杂, 还有 ActiveMQ, RocketMQ 等.

    伸缩性: 比较简单,只要新增加一个消息队列服务器,并通知生产者,多了一个消息队列服务器即可.

    可用性:如果消费者进程处理缓慢,导致内存队列已满,会将消息写入磁盘,消息推送模块在将内存队列消息处理完以后,将磁盘内容加载到队列继续处理

    分布式服务打造可复用业务平台

    拆分, 将复用的业务拆分出来, 独立部署为分布式服务,新增业务只需要调用这些分布式服务,不需要依赖具体的模块代码。

    web service 与 企业级分布式服务

    分布式服务设计, 比如 阿里巴巴开源框架 Dubbo

    平台级别

    API 接口: RESTful, WebService, RPC 等

    安全: 身份识别,权限控制, 带宽限制。

    审计: 记录第三方应用的访问情况, 监控。

    路由:将开放平台的各种访问路由映射到具体的服务。

    流程:将一组离散的function组合成服务,隐藏细节,提供统一的供开发者调用的接口。

  • 相关阅读:
    曾经收藏过的好文,唯快不破
    思想上的差距,各种差距,看完再说
    GO的初始简书(一)简介安装
    php 使用composer
    微信开发~又来一拨(本人崇尚开源)
    PHP 底层的运行机制与原理 --转
    关于cgi、FastCGI、php-fpm、php-cgi
    winows 服务器环境搭建 (碰到了windows服务器,小记一下吧~)
    python方法的重写
    python继承简介
  • 原文地址:https://www.cnblogs.com/moveofgod/p/12688394.html
Copyright © 2011-2022 走看看