LaneBlog

蝼蚁虽小,也有梦想

PHP Socket服务 | PHP微信开发框架 | 开源博客

架构系列-可扩展架构模式

Clicks: 235 Date: 2020-04-03 17:08:07 Power By 李轩Lane

架构

    

一、基本思想和模式

  1. 基本思想:拆。按流程、按服务、按功能。按流程拆难理解,固化的内核,移动的数据,如接口层 - 业务层 - 数据层 - 存储层。

  2. 扩展方式:拆了以后修改和扩展不影响其他模块。按流程拆有分层架构、按服务拆有微服务架构和SOA、面向功能拆有微内核架构。

二、分层架构和SOA

  1. 分层架构:如B/S、C/S、MVC、MVP等。

  2. SOA:可以说某企业使用SOA架构了IT系统,而不是某独立系统采用SOA架构。主要对传统企业IT部门。组织架构、员工信息、请假管理等子系统+企业服务总线ESB,组成一个SOA架构的系统。SOA复杂难学,ESB是性能瓶颈。

三、微服务

1、方法:

  1. 关键点:small、lightweight、automated。

  2. 每三个人一个服务,根据团队规模来持续拆,而不是上来就拆的很细  

  3. 拆分方式;按业务拆、按稳定功能和可变功能拆、按可靠性拆(保证核心功能更可靠)、按性能拆(以免血崩)。不是四选一,而是自由组合。

  4. 基础服务完善,包括不限于发现注册、容错、路由第一优先,API网关、接口框架第二优先,自动化测试、部署、配置中心第三优先,监控、跟踪、安全第四优先。技术服务不足,微服务就成了焦油坑。根据团队规模和需要,不一定每一项都有。

2、基础服务:

  1. 自动化测试、自动化部署、配置中心:是为了将放人力。

  2. 接口框架:提供统一http服务和json格式

  3. 接口网关:外部系统不应该调多个服务在组装,而是一个接口搞定。另外权限控制、流量控制、传输加密。

  4. 注册发现:自理式是每个服务统一注册自己做发现。代理式是注册发现有独立服务,但是独立服务需要关注可靠性。

  5. 路由:服务节点的挑选

  6. 容错:故障时剔除节点和服务熔断。

  7. 监控、跟踪:排查方便。

  8. 安全:数据安全、传输安全、接入安全。可继承到配置中心实现。

四、微内核

微内核指插件化架构,分稳定不动的核心模块和跟随业务发展的插件模块。如手淘的atlas。

  1. 设计关键点:插件管理:核心模块可用代码数据库配置中心等配置各插件信息和加载时机。插件链接:插件如何连接到核心模块。插件通信:解耦的插件因业务需要必然会彼此调用。

  2. OSGI:如eclips。

  3. 规则引擎:常见于保险和促销,满多少减多少,打几折各种规则组合。如Drools 


Add Comment
©2014 www.lanecn.com , All rights reserved. Power By Li Xuan.  京ICP备14005030号