乐于分享
好东西不私藏

中间件与微服务及宝塔建站学习文档

中间件与微服务及宝塔建站学习文档
一、什么是中间件

1. 定义

中间件是夹在操作系统 / 硬件和业务应用之间的通用基础软件,起到承上启下的作用,屏蔽底层系统、网络、数据库的差异,提供通用公共能力,避免开发重复造轮子。

2. 通俗比喻

操作系统相当于地基,业务系统相当于楼房,中间件就是楼房和地基之间的水电管线、楼道、物业,统一提供公共服务和协调管理。

3. 核心作用

  1. 实现不同系统、不同程序之间通信互通。
  2. 屏蔽操作系统、数据库、网络底层技术细节。
  3. 提供缓存、消息队列、服务注册发现、分库分表、任务调度等通用基础能力。

二、中间件和微服务的关系

  1. 微服务是架构思想:把一个庞大的单体系统,拆分成多个独立、可单独部署的小服务。
  2. 中间件是基础支撑工具:用来支撑、串联、治理所有微服务。
  3. 核心关系总结:
  • 微服务负责拆分系统;
  • 中间件负责服务通信、协调联动、运维治理、稳定运行;
  • 没有中间件,拆分后的微服务就是一堆孤立、无法协作的小程序。

通俗比喻

微服务:把一个大超市拆成生鲜区、收银区、仓储区等独立小店。中间件:道路、对讲机、快递柜、调度管理中心,没有这些配套,各个小店无法正常沟通和营业。

三、中间件分类及常见组件

  1. Web 应用中间件:Tomcat、Jetty
  2. 微服务治理中间件:Nacos、Eureka、Apollo
  3. API 网关中间件:Gateway、Zuul、Kong、APISIX
  4. 消息队列中间件:RabbitMQ、Kafka、RocketMQ、Pulsar
  5. 缓存中间件:Redis、Memcached
  6. 数据库中间件:Sharding-JDBC、MyCat
  7. 分布式事务中间件:Seata
  8. 定时任务调度中间件:XXL-Job、Quartz、Elastic-Job
  9. RPC 远程调用中间件:Dubbo、gRPC、Feign
  10. 日志监控链路中间件:SkyWalking、Pinpoint、ELK、Prometheus
  11. 认证授权中间件:Shiro、Spring Security、Keycloak

四、宝塔搭建网站完整步骤

1. 前期准备

  1. 准备云服务器,系统选择 CentOS 7/8 或 Ubuntu 20.04。
  2. 准备域名,国内服务器必须完成备案。
  3. 服务器安全组放行端口:80、443、8888。

2. 安装宝塔面板

  1. 使用 SSH 工具登录服务器 root 账号。
  2. 执行宝塔安装命令,等待自动安装完成。
  3. 保存安装后的面板地址、登录账号、密码。

3. 安装网站运行环境

  1. 浏览器登录宝塔面板。
  2. 一键安装 LNMP 环境:Nginx + MySQL + PHP。
  3. 根据网站程序要求选择对应 PHP 版本。

4. 创建网站站点

  1. 宝塔左侧点击【网站】-【添加站点】。
  2. 填写域名、默认网站根目录。
  3. 勾选创建 FTP、创建数据库,记录数据库账号密码。
  4. 选择对应 PHP 版本,提交创建。

5. 上传网站源码

  1. 进入网站根目录,删除默认自带的静态页面文件。
  2. 两种上传方式:
  • 宝塔文件管理器:上传源码压缩包并解压;
  • FTP 工具:配置 FTP 账号密码,直接上传整套源码。

6. 配置安装网站程序

  1. 浏览器访问域名,进入网站安装向导。
  2. 填写数据库地址、数据库名、账号、密码。
  3. 设置网站管理员账号密码,完成安装。

7. 域名解析与配置 SSL 证书

  1. 在域名服务商后台,将域名解析到服务器公网 IP。
  2. 宝塔站点设置中配置域名绑定。
  3. 一键申请免费 SSL 证书,开启 HTTPS 强制跳转。

8. 测试访问与安全维护

  1. 浏览器通过 HTTPS 访问域名,验证网站正常打开。
  2. 定期备份网站文件和数据库,开启服务器基础安全防护。

五、宝塔建站中中间件的作用

宝塔一键安装的 LNMP、Redis 都属于中间件,各自作用:

1. Nginx(Web 服务中间件)

接收用户访问请求,绑定域名、配置 SSL 证书、路由分发、负载均衡、拦截恶意访问,是网站的统一入口。

2. PHP(应用运行中间件)

负责解析并运行 PHP 网站源码,处理登录、内容展示、业务逻辑等核心功能。

3. MySQL(数据库中间件)

存储网站所有数据:账号信息、文章内容、配置参数、订单数据等。

4. Redis(缓存中间件)

缓存热点数据、提升网站访问速度、减轻数据库压力、实现分布式锁和登录会话缓存。

角色通俗比喻

Nginx = 门卫前台

PHP = 办事店员

MySQL = 数据仓库

Redis = 快捷临时货架

相关学习资料