一、基礎運行環境
1. JDK(Java Development Kit)
定義:Java 開發工具包,包含編譯器、運行時環境(JRE)及核心類庫
作用:提供 Java 程序開發和運行的基礎環境,是所有 Java 應用的必備依賴
安裝步驟(Linux):
# 1. 下載JDK 21壓縮包并解壓
wget https://download.oracle.com/java/21/latest/jdk-21_linux-x64_bin.tar.gz
tar -zxvf jdk-21_linux-x64_bin.tar.gz -C /usr/local/# 2. 配置環境變量
echo 'export JAVA_HOME=/usr/local/jdk-21' >> /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> /etc/profile
source /etc/profile# 3. 驗證安裝
java -version # 輸出java version "21.0.1"即成功
2. Node.js
定義:基于 Chrome V8 引擎的 JavaScript 運行時環境
作用:用于開發后端 API 服務(如 Express 框架)和前端構建工具(Webpack、Vite)
安裝(Ubuntu):
sudo apt update && sudo apt install nodejs npm -y
node -v # 驗證版本,推薦v18+
二、數據存儲
3. MySQL
定義:關系型數據庫管理系統(RDBMS)
作用:存儲結構化數據,支持事務 ACID 特性,適用于業務數據存儲
安裝與配置:
# 1. 安裝MySQL Server
sudo apt install mysql-server -y# 2. 安全初始化(設置密碼、移除匿名用戶)
sudo mysql_secure_installation# 3. 啟動并設置開機自啟
sudo systemctl enable --now mysql
sudo systemctl status mysql # 確認狀態為active (running)
4. ElasticSearch
定義:分布式全文搜索引擎
作用:實現商品搜索、日志分析等全文檢索功能,支持復雜聚合查詢
Docker 快速部署:
docker run -d --name es -p 9200:9200 -e "discovery.type=single-node" elasticsearch:8.11.3
# 驗證:訪問http://localhost:9200,返回JSON包含"name":"es-node"
三、開發與構建工具
5. Git
定義:分布式版本控制系統
作用:跟蹤代碼變更,支持分支管理和多人協作開發
安裝與配置:
sudo apt install git -y
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
6. Maven
定義:Java 項目構建和依賴管理工具
作用:自動下載依賴、管理項目生命周期(編譯、測試、打包)
核心配置(pom.xml):
<dependencies><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.15.2</version></dependency>
</dependencies>
安裝:
wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz
tar -zxvf apache-maven-3.9.6-bin.tar.gz -C /usr/local/
echo 'export PATH=/usr/local/apache-maven-3.9.6/bin:$PATH' >> /etc/profile
四、服務器與中間件
7. Tomcat
定義:Java Web 應用服務器,支持 Servlet/JSP 規范
作用:部署 Java Web 項目(如 Spring Boot WAR 包)
安裝:
wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.16/bin/apache-tomcat-10.1.16.tar.gz
tar -zxvf apache-tomcat-10.1.16.tar.gz -C /usr/local/
/usr/local/apache-tomcat-10.1.16/bin/startup.sh # 啟動
8. Nginx
定義:高性能 HTTP 服務器與反向代理
作用:負載均衡、靜態資源服務、SSL 終結、API 網關
安裝與配置:
sudo apt install nginx -y
# 配置反向代理(/etc/nginx/conf.d/app.conf)
server {listen 80;server_name api.example.com;location / {proxy_pass http://localhost:8080;proxy_set_header Host $host;}
}
sudo systemctl restart nginx
9. RabbitMQ
定義:基于 AMQP 協議的消息隊列
作用:服務解耦、異步通信(如訂單通知、日志收集)
安裝與管理:
sudo apt install rabbitmq-server -y
sudo rabbitmq-plugins enable rabbitmq_management # 啟用Web管理界面
# 訪問http://localhost:15672,默認賬號guest/guest
10. Kafka
定義:分布式流處理平臺
作用:高吞吐日志收集、實時數據管道(如 ELK 日志棧)
單節點部署:
# 1. 啟動ZooKeeper
wget https://dlcdn.apache.org/kafka/3.6.1/kafka_2.13-3.6.1.tgz
tar -zxvf kafka_2.13-3.6.1.tgz
cd kafka_2.13-3.6.1
bin/zookeeper-server-start.sh config/zookeeper.properties &
# 2. 啟動Kafka Broker
bin/kafka-server-start.sh config/server.properties &
11. ZooKeeper
定義:分布式協調服務
作用:集群配置管理、服務注冊與發現(Kafka/ElasticSearch 依賴)
集群配置(zoo.cfg):
tickTime=2000
dataDir=/var/lib/zookeeper
clientPort=2181
server.1=zk1:2888:3888 # 節點1
server.2=zk2:2888:3888 # 節點2
server.3=zk3:2888:3888 # 節點3
五、緩存與性能優化
12. Redis
定義:內存數據庫,支持多種數據結構(字符串、哈希、列表等)
作用:緩存熱點數據、分布式鎖、計數器、消息隊列
安裝與啟動:
sudo apt install redis-server -y
# 修改配置文件/etc/redis/redis.conf
bind 0.0.0.0 # 允許遠程訪問
sudo systemctl restart redis-server
redis-cli ping # 驗證返回PONG
六、容器與編排
13. Docker
定義:容器化平臺,打包應用及依賴為標準化容器
作用:環境一致性、快速部署、資源隔離
安裝(Ubuntu):
sudo apt install docker.io -y
sudo systemctl enable --now docker
sudo usermod -aG docker $USER # 當前用戶免sudo操作Docker
14. Kubernetes (K8s)
定義:容器編排平臺
作用:自動化容器部署、擴展和管理(多節點容器集群)
Minikube 快速體驗:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start # 啟動單節點集群
kubectl get nodes # 驗證節點狀態
七、操作系統
15. Linux
定義:開源類 Unix 操作系統
作用:服務器主流操作系統,提供穩定、安全的運行環境
常用發行版:Ubuntu Server、CentOS Stream、Debian
基礎優化:
# 關閉Swap(K8s要求)
sudo swapoff -a && sudo sed -i '/ swap / s/^/#/' /etc/fstab
# 配置防火墻開放端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
八、關鍵工具對比與選型建議
工具 | 核心優勢 | 典型應用場景 |
---|---|---|
MySQL | 事務支持、成熟穩定 | 業務數據存儲(用戶、訂單) |
Redis | 內存級性能、多數據結構 | 緩存、分布式鎖 |
RabbitMQ | 消息可靠投遞、靈活路由 | 訂單通知、異步任務 |
Kafka | 高吞吐、持久化日志 | 日志收集、實時數據流 |
Docker/K8s | 環境一致性、彈性伸縮 | 微服務部署、DevOps 自動化 |
安裝驗證通用方法
- 服務狀態檢查:
systemctl status <服務名>
- 端口監聽檢查:
netstat -tuln | grep <端口>
(如grep 3306
檢查 MySQL) - 命令行驗證:
<命令> --version
(如java -version
) - 日志排查:
journalctl -u <服務名>
(如journalctl -u nginx
)