当前位置: 首页 > news >正文

开源 Linux 服务器与中间件(一)基本介绍

     文章的目的为了记录使用C语言进行linux 开发学习的经历。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。

推荐链接:

linux C 语言开发 (一) Window下用gcc编译和gdb调试

linux C 语言开发 (二) VsCode远程开发 linux

linux C 语言开发 (三) 建立云服务器

linux C 语言开发 (四) linux系统常用命令

linux C 语言开发 (五) linux系统目录结构

linux C 语言开发 (六) 程序的编辑和编译(vim、gcc)

linux C 语言开发 (七) 文件 IO 和标准 IO

linux C 语言开发 (八) 进程基础

linux C 语言开发 (九) 进程间通讯--管道

linux C 语言开发 (十) 进程间通讯--信号

linux C 语言开发 (十一) 进程间通讯--共享内存

linux C 语言开发 (十二) 进程间通讯--消息队列

Linux C到Android App开发推荐链接(入门十二章):

开源 java android app 开发(一)开发环境的搭建_csdn 开源 java android app-CSDN博客

开源 java android app 开发(一)开发环境的搭建-CSDN博客

开源 java android app 开发(二)工程文件结构-CSDN博客

开源 java android app 开发(三)GUI界面布局和常用组件-CSDN博客

开源 java android app 开发(四)GUI界面重要组件-CSDN博客

开源 java android app 开发(五)文件和数据库存储-CSDN博客

开源 java android app 开发(六)多媒体使用-CSDN博客

开源 java android app 开发(七)通讯之Tcp和Http-CSDN博客

开源 java android app 开发(八)通讯之Mqtt和Ble-CSDN博客

开源 java android app 开发(九)后台之线程和服务-CSDN博客

开源 java android app 开发(十)广播机制-CSDN博客

开源 java android app 开发(十一)调试、发布-CSDN博客

开源 java android app 开发(十二)封库.aar-CSDN博客

linux C到.net mvc开发推荐链接:

开源C# .net mvc 开发(一)WEB搭建_c#部署web程序-CSDN博客

开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-CSDN博客

开源 C# .net mvc 开发(三)WEB内外网访问(VS发布、IIS配置网站、花生壳外网穿刺访问)_c# mvc 域名下不可訪問內網,內網下可以訪問域名-CSDN博客

开源 C# .net mvc 开发(四)工程结构、页面提交以及显示_c#工程结构-CSDN博客

开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-CSDN博客、

内容:linux服务器和中间件的功能和应用场景介绍。

核心概念区分

  • 服务器:通常指一个软件程序,运行在操作系统之上,为客户端(如浏览器、App)提供特定的服务。例如,Web服务器提供网页,数据库服务器存储数据。

  • 中间件:位于操作系统、数据库和应用软件之间的基础软件。它不直接提供最终服务,而是为应用程序提供运行和开发的环境,帮助不同组件之间进行通信、数据交换和集成。可以把它看作应用的“胶水”和“平台”。

一、Web 服务器

主要负责处理HTTP/HTTPS请求,返回静态内容(如HTML、图片、CSS、JS文件),或将动态请求转发给应用服务器。

1. Nginx
  • 功能类型:高性能的HTTP和反向代理服务器,也可作为邮件代理服务器、负载均衡器。

  • 特点

    • 事件驱动、异步非阻塞架构:能够处理海量并发连接,且资源占用极低。

    • 静态内容处理能力强:直接返回静态文件的速度非常快。

    • 强大的反向代理功能:可以作为流量入口,将请求分发到后端的多个应用服务器。

  • 应用场景

    • 作为静态内容服务器。

    • 作为负载均衡器,分发请求到Tomcat、Node.js等后端应用集群。

    • 作为反向代理,实现请求路由、缓存、SSL终结等。

    • 构建高并发网站的首选。

2. Apache HTTP Server
  • 功能类型:老牌、功能全面的Web服务器。

  • 特点

    • 模块化设计:通过加载不同的模块(如mod_phpmod_ssl)来扩展功能。

    • 多种处理模型:如Prefork(多进程)、Worker(多进程多线程),兼容性和稳定性好。

    • .htaccess 分布式配置:非常灵活,尤其在虚拟主机共享环境中。

  • 应用场景

    • 传统LAMP(Linux + Apache + MySQL + PHP)架构的核心。

    • 需要高度自定义和模块化功能的场景。

    • 共享主机托管服务。

Nginx vs. Apache 简单对比

  • 高并发:Nginx在处理大量静态并发请求时通常性能更好,资源更省。

  • 动态内容:Apache通过模块(如mod_php)在内部处理动态语言,而Nginx通常需要转发给后端处理器。

  • 配置:Apache的.htaccess更灵活,Nginx的配置更集中、语法更简洁。


二、应用服务器 / 运行时环境

负责执行应用程序的业务逻辑,处理动态内容。

1. Tomcat
  • 功能类型:轻量级的Java Servlet容器和JSP服务器。

  • 特点:开源、免费,是Java EE(现Jakarta EE)规范的经典实现。

  • 应用场景

    • 运行基于Servlet、JSP的Java Web应用程序。

    • 中小型Java项目的首选应用服务器。

2. Spring Boot (内嵌Tomcat/Netty)
  • 功能类型:Java应用框架,但内置了Web服务器。

  • 特点:开箱即用,简化了基于Spring的应用程序的开发和部署。

  • 应用场景

    • 现代微服务架构中的Java服务。

    • 快速开发RESTful API。

3. Node.js
  • 功能类型:JavaScript运行时环境,基于Chrome V8引擎。

  • 特点:事件驱动、非阻塞I/O模型,适合I/O密集型应用。

  • 应用场景

    • 实时应用(如聊天室、在线游戏)。

    • I/O密集型的前后端分离架构(BFF - Backend for Frontend)。

    • 全栈JavaScript开发。

4. uWSGI / Gunicorn
  • 功能类型:WSGI(Web Server Gateway Interface)服务器,用于运行Python Web应用。

  • 特点:作为应用服务器,桥接Nginx/Apache和Python框架(如Django, Flask)。

  • 应用场景

    • 在Nginx后运行Django或Flask应用。

    • 典型的部署栈:Nginx + uWSGI/Gunicorn + Django


三、数据库服务器

负责数据的存储、管理和查询。

1. MySQL / MariaDB
  • 功能类型:关系型数据库。

  • 特点:开源、流行、社区活跃、性能稳定。MariaDB是MySQL的一个分支,完全兼容并增加了新特性。

  • 应用场景

    • 绝大多数Web应用的数据存储,是LAMP/LEMP栈的核心。

    • 需要事务支持、结构化数据的场景。

2. PostgreSQL
  • 功能类型:功能强大的开源关系型数据库。

  • 特点:支持更复杂的SQL查询、窗口函数、JSON支持好,被誉为“最先进的开源关系数据库”。

  • 应用场景

    • 对数据完整性、复杂查询、GIS(地理信息系统)有高要求的应用。

    • 替代Oracle等商业数据库。

3. Redis
  • 功能类型:内存中的数据结构存储,常用作数据库、缓存和消息中间件。

  • 特点:数据存储在内存中,读写速度极快,支持丰富的数据结构(字符串、哈希、列表、集合等)。

  • 应用场景

    • 缓存:缓存数据库查询结果、会话(Session)存储。

    • 排行榜/计数器:利用其原子操作。

    • 消息队列:使用Pub/Sub或List结构。

    • 分布式锁

4. MongoDB
  • 功能类型:文档型NoSQL数据库。

  • 特点:以类JSON的BSON格式存储数据,模式自由,易于扩展。

  • 应用场景

    • 存储非结构化或半结构化数据。

    • 快速迭代开发的业务,因为模式可变。

    • 日志分析、内容管理系统。


四、消息队列 / 消息中间件

用于在应用之间进行异步通信、解耦服务和削峰填谷。

1. RabbitMQ
  • 功能类型:实现了AMQP(高级消息队列协议)的开源消息代理软件。

  • 特点:支持多种消息协议,消息可靠性强,功能全面(如消息确认、持久化、路由灵活)。

  • 应用场景

    • 对消息可靠性要求高的场景,如金融、订单系统。

    • 复杂的消息路由需求。

2. Apache Kafka
  • 功能类型:分布式流处理平台。

  • 特点:高吞吐量、持久化日志、水平扩展能力强。它更像一个“事件流平台”。

  • 应用场景

    • 实时数据流处理:如用户行为追踪、日志聚合。

    • 微服务间的异步通信

    • 构建数据管道,将数据从源系统移动到数据湖或数据仓库。


五、其他关键中间件

1. Elasticsearch
  • 功能类型:分布式、RESTful风格的搜索和分析引擎。

  • 特点:基于Lucene,可以近乎实时地存储、搜索和分析大量数据。

  • 应用场景

    • 网站或App的搜索功能(如电商商品搜索)。

    • 日志和指标分析(常与Logstash、Kibana组成ELK栈)。

2. Etcd / Consul
  • 功能类型:分布式、高可用的键值存储,用于服务发现和配置管理。

  • 特点:提供强一致性的数据存储,常用于集群环境中。

  • 应用场景

    • 微服务架构中的服务注册与发现

    • 分布式系统的配置中心

    • Kubernetes使用Etcd作为其后台存储所有集群数据。

六、典型架构组合示例

  1. 经典Web应用 (LEMP/LAMP)

    • Linux + Nginx/Apache + MySQL/MariaDB + PHP/Python

    • 场景:传统企业官网、内容管理系统(如WordPress)。

  2. Java Web应用

    • Linux + Nginx + Tomcat + MySQL + Redis

    • 流程:Nginx处理静态请求并做反向代理,将动态请求转发给Tomcat集群,Tomcat从MySQL读数据,用Redis做缓存。

  3. 微服务架构

    • Linux + Nginx (API Gateway) + Spring Boot (微服务) + MySQL/PostgreSQL (数据存储) + Redis (缓存/会话) + RabbitMQ/Kafka (服务通信) + Etcd (服务发现)

    • 场景:大型互联网平台,如电商、社交网络。

  4. 实时数据平台

    • Linux + Kafka (数据流) + Flink/Spark (流计算) + Elasticsearch (搜索分析)

    • 场景:实时推荐系统、监控告警平台。

http://www.dtcms.com/a/486367.html

相关文章:

  • 开源 Linux 服务器与中间件(二)嵌入式Linux服务器和中间件
  • 公司建设一个网站有什么好处国外网站建设现状图分析
  • 绿色 网站 源码个人建网站怎么赚钱
  • 定时器的学习(二)
  • SpringBoot模特兼职网站zu3n3(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • windows开发中使用flutter开发鸿蒙
  • calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
  • 向RAGFlow中上传文档到对应的知识库
  • 网站后台发邮件建设网站都需要哪些内容
  • 惠州网站建设 英语外贸论坛有哪些?
  • 【学习笔记10】C++模板编程深度学习(下):可变参数模板与完美转发核心技术
  • 华为盘古 Ultra-MoE-718B-V1.1 正式开放下载!
  • 【OpenHarmony】AI引擎模块架构
  • 为什么选php语言做网站江苏网站建设网络推广
  • 数据结构算法学习:LeetCode热题100-链表篇(上)(相交链表、反转链表、回文链表、环形链表、环形链表 II)
  • STC亮相欧洲区块链大会,碳资产RWA全球化战略迈出关键一步
  • 使用Electron创建helloworld程序
  • 建设校园网站国外研究现状2020网络公司排名
  • DataEase v2 连接 MongoDB 数据源操作说明-MongoDB BI Connector用户创建
  • PHP 8.0+ 编译器级优化与语言运行时演进
  • 网站运营培训网站被百度收录吗
  • 升级到webpack5
  • 【MySQL】MySQL `JSON` 数据类型介绍
  • 通过hutool生成xml
  • vue.config.js 文件功能介绍,使用说明,对应完整示例演示
  • 无极分期网站临沂做网络优化的公司
  • Vue3的路由Router【7】
  • DOM 实例
  • 网站安全建设需求分析报告重庆有哪些科技骗子公司
  • Springboot AOP Aspect 拦截中 获取HttpServletResponse response