• 服务器框架设计和技术选型



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

    服务器架构整体框架


    1. 负载均衡服务器

    • 硬件类

      • F5 BIG-IP负载均衡器 基于简单的Web管理界面,具有负载均衡、应用交换、会话交换、状态监控、智能网络地址转换、通用持续性、响应错误处 理、IPv6网关、高级路由等很多功能
      • Array 新一代L4-L7应用交付控制器,Web应用加速器高性能SSL VPN,全局访问控制器
      • 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网络加速服务综合对比

  • 相关阅读:
    Mac安装LightGBM
    用于视频超分辨率的可变形三维卷积
    ORB-SLAM3 单目地图初始化(终结篇)
    重用地图的单目视觉惯导SLAM系统
    2020,我的秋招感悟!
    超详细解读ORB-SLAM3单目初始化(下篇)
    基于改进的点对特征的6D位姿估计
    深入研究自监督单目深度估计:Monodepth2
    ORB-SLAM3 细读单目初始化过程(上)
    基于视觉和惯性传感器的移动机器人手遥操作系统
  • 原文地址:https://www.cnblogs.com/dask/p/10428467.html
Copyright © 2020-2023  润新知