乐于分享
好东西不私藏

信息系统的软件分层架构

信息系统的软件分层架构

客户端 → 接入/Web → 应用 → 中间件 → 数据库 → 运维监控

一、Web / 应用服务器(接入层)

软件

常见用途

为什么用

Nginx

Web 服务器、反向代理、负载均衡、静态资源

高性能、低资源消耗、支持七层负载均衡、SSL 终止、易集成

Tomcat/Jetty

Java Servlet / Spring Boot 应用容器

Tomcat 最通用,Jetty 轻量

IIS

.NET / ASP.NET

应用Windows 生态、与 AD / .NET Framework 深度集成

二、应用开发与运行环境

软件

用途

为什么用

JDK / OpenJDK

Java 应用运行环境

企业级生态成熟(Spring、微服务)

Node.js

前端构建 / Node 服务 / BFF

高并发 I/O、适合接口聚合、前后端同技术栈

Python(CPython)

Django / Flask / 数据处理

快速开发、AI / 脚本 / 运维友好

Docker

应用容器化

环境一致性、快速部署、微服务隔离

Kubernetes (K8s)

容器编排

自动扩缩容、自愈、服务发现、滚动发布

三、缓存(Cache / 会话)

软件

用途

为什么用

Redis

热点数据缓存、Session、分布式锁、排行榜

内存 KV、高性能、丰富数据结构(String/Hash/List/Set/SortedSet)、主从/集群成熟

Memcached

简单 KV 缓存

更轻量、多线程,但功能少于 Redis(无持久化、无复杂结构)

四、消息队列 / 异步解耦

软件

用途

为什么用

RabbitMQ

业务解耦、延迟队列

AMQP 标准、可靠消息、灵活路由

Apache Kafka

高吞吐日志/事件流、削峰填谷

超高吞吐、水平扩展、适合大数据/审计/埋点

RocketMQ

金融/电商事务消息

阿里开源,支持事务消息、顺序消息、低延迟

ActiveMQ

传统 JMS 场景

老牌 JMS 实现,逐渐被 RabbitMQ/Kafka 替代

五、数据库(持久化)

1、关系型数据库(RDBMS)

软件

用途

为什么用

MySQL / MariaDB

互联网/ERP/CRM 主流 DB

开源、成熟、主从/集群(MGR)、生态好

Oracle

核心交易/银行/电信

强一致性、PL/SQL、RAC、高可用、商业支持

PostgreSQL

复杂业务/分析/JSON/GIS

标准 SQL 严格、扩展性强、支持 JSONB、事务完整

SQL Server

.NET + Windows 企业系统

与微软生态集成、GUI 管理友好

2、NoSQL

软件

用途

为什么用

MongoDB

文档型、半结构化数据

Schema-less,适合内容/日志/配置

Elasticsearch

全文检索 + 日志分析

倒排索引,近实时搜索(ELK 核心)

HBase / Cassandra

海量列式存储

写多读少、水平扩展(大数据场景)

六、高可用 / 负载均衡 / IP 漂移

软件

用途

为什么用

Keepalived + VIP

主备 IP 漂移

VRRP 协议,秒级 VIP 切换,防止单点故障

HAProxy

四/七层负载均衡

TCP/HTTP 负载均衡、健康检查、适合 DB/Redis/MQ 代理

LVS (IPVS)

四层高性能负载均衡

内核级转发,超高性能,通常配合 Keepalived

七、配置中心 / 注册发现(微服务)

软件

用途

为什么用

Nacos

注册中心 + 配置中心

支持 CP/AP,Spring Cloud Alibaba 生态

Consul

服务发现 + KV 配置

多数据中心、健康检查

Eureka

Spring Cloud 服务发现

AP 模型,适合内网微服务(现渐被 Nacos 替代

Apollo

分布式配置管理

灰度发布、权限管理、配置历史

八、文件 / 对象存储

软件

用途

为什么用

MinIO

私有对象存储

轻量、分布式、适合图片/附件

FastDFS

小文件分布式存储

国内常用,适合海量小文件

NFS / SMB

共享文件系统

简单、低成本,但不是高并发首选

九、安全 / 认证

软件

用途

为什么用

Keycloak

SSO / OAuth2 / OIDC

开源 IAM,支持 LDAP、SSO

OpenLDAP

统一账号目录

企业统一认证(AD 替代)

十、运维 / 监控 / 日志

软件

用途

为什么用

Prometheus + Grafana

指标监控 / 告警

拉模型、多维标签、云原生标配

Zabbix

传统 IT 监控

成熟、Agent 多、适合物理机/虚拟机

Ansible

自动化运维

无 Agent,批量配置/部署

相关学习资料