服务器架构框架


注:以下是一些服务器开发时常见框架的汇总,其中的排名是根据本人熟悉程度排序,不代表任何官方排名,详细性能比较请参考所提供的博客通道。

服务器架构整体框架


1. 负载均衡服务器

  • 硬件类

    • F5 BIG-IP负载均衡器 基于简单的Web管理界面,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处 理、IPv6网关、高级路由等很多功能
    • Array 新一代L4-L7应用交付控制器,Web应用加速器高性能SSL v*n,全局访问控制器
    • Radware 可以做到本地的服务器负载均衡(AD)和广域的全局服务器负载均衡(AD -Global)
    • NetScaler 优化Web 应用交付的综合解决方案
    • 思科 思科几乎每个IOS路由器都具有负载均衡功能
    • 梭子鱼负载均衡 0最大特点是包含了网络安全功能
      附:软/硬件负载均衡产品 你知多少?
  • 软件类

2. 反向代理服务器

  • Nginx 一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务
  • HAProxy 一款应对客户端10000以上的同时连接的高性能的TCP和HTTP负载均衡器
  • Squid 一个高性能的代理缓存服务器,Squid支持FTP、gopher、HTTPS和HTTP协议
  • Varnish 一款高性能的开源HTTP加速器
  • Apache TS 一个高性能的、模块化的HTTP代理和缓存服务器

附:几种反向代理 服务器比较

3. 消息队列系统(MQ)

  • RabbitMQ 一款实现了高级消息队列协议(AMQP)的开源消息代理软件
  • Apache kafka 一个开源消息系统项目,由Scala写成。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。
  • zeroMQ 一种基于消息队列的多线程网络库,其对套接字类型、连接处理、帧、甚至路由的底层细节进行抽象,提供跨越多种传输协议的套接字
  • Apache ActiveMQ Apache软件基金会所研发的开放源代码消息中间件,是一个纯Java程序

整体上看RabbitMQ的综合性能会更佳一些
附:MQ框架的比较

4. Web服务器

  • Apache 世界排名第一的web服务器
  • Tomcat 一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器
  • Nginx 一个高性能的HTTP和反向代理服务器
  • IIS 由微软公司提供的基于运行Microsoft Windows的互联网基本服务
  • Zeus Web Server 在国外的技术媒体当中将这种服务器看成具有极高的稳定性、适应性并具备很高的可配置性的服务器软件
  • Lighttpd 个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点的服务器

附:三大WEB服务器对比分析(Apache ,Lighttpd,Nginx)

5. 分布式缓存系统

  • Redis 一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库
  • Memcached 一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载
  • Tair(阿里巴巴) 淘宝的一个开源项目,它是一个分布式的key/value结构数据的解决方案

附:常用的分布式缓存的对比

6. 分布式文件系统

  • MooseFS(MFS) 一个高可用的故障容错分布式文件系统
  • Ceph 一个可靠地、自动重均衡、自动恢复的分布式存储系统
  • GlusterFS 一款自由软件,文档也比较齐全,不难上手
  • Hadoop HDFS 一个分布式文件系统,适用于商用硬件上高数据吞吐量对大数据集的访问的需求
  • FastDFS 一个开源的轻量级分布式文件系统
  • Lustre 一种平行分布式文件系统,通常用于大型计算机集群和超级电脑
  • 除此以外,很多公司提供的对象存储OSS也是很不错的选择

附:分布式文件系统MFS、Ceph、GlusterFS、Lustre的对比

7. 搜索服务器

  • Elasticsearch 一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
  • Solr 提供了较为完备的搜索引擎解决方案,实现站内搜索扩展性较好并且可以减少程序员的工作量

附:分布式搜索和分析引擎对比

8. SQL数据库

  • Mysql 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS
  • Oracle DB 目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境
  • SQL Server 由Microsoft开发和推广的关系数据库管理系统(DBMS)
  • DB2 主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境

附:常见主流SQL数据库对比介绍

9. NoSQL数据库

  • MongoDB 由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案
  • Memcache 一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著
  • Redis 一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
  • HBase 一个分布式的、面向列的开源数据库
  • LevelDB 一个google实现的非常高效的kv数据库
  • Couchbase 是MemBase与couchDb这两个NoSQL数据库的合并的产物,是一个分布式的面向文档的NoSQL数据库管理系统

附:几款主流 NoSql 数据库的对比&&Couchbase vs Redis,究竟哪个更胜一筹?

10. 应用服务器

  • Apache
    • Tomcat 一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器
  • IBM
    • Websphere 包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
  • Macromedia
    • Wildfly(原名JBoss ApplicaTIon Server) 一个开源的基于JavaEE的轻量级应用服务器,
    • NEC WebOTX ApplicaTIon Server 运行更稳定,支持最新的开放技术,提高开发效率
    • JRun 它是Micromedia的一个应用服务器
  • BEA
    • WebLogic 一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器
  • Caucho Technology
    • Resin 一个非常流行的支持servlets和jsp的引擎,速度非常快

搞不清Web服务器和应用服务器区别的看这里:浅谈Web服务器和应用服务器的区别

11. CDN网络加速服务

附:腾讯云、百度云、阿里云CDN网络加速服务综合对比