apache的源碼
『壹』 為什麼我的apache打開首頁,會出現首頁源代碼
你的apache肯定沒有載入php的模塊,編譯php時需要用--with-apxs2指定apxs的位置,如果有mysql,需要用--with-mysql指定mysql的安裝位置,寫個全的給你吧:
編譯apache前你這樣:
./configure --prefix=/etc/httpd --enable-so --enable-rewrite --enable-mole-so --enable-ssl --with-ssl=/usr/share/ssl
編譯php前你這樣:
./configure --prefix=/usr/local/php --with-apxs2=/etc/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/lib --enable-track-vars --with-xml
然後在/etc/httpd/conf/httpd.conf里加入
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php3
這樣你啟動了apache後,就可以直接支持php和mysql了。
以上的方法適合於apache2.0x和php4.x.x。
我就是這樣配置和編譯的。。。
『貳』 一文讀懂,硬核 Apache DolphinScheler3.0 源碼解析
全網最全大數據面試提升手冊!
一、DolphinScheler設計與策略
了解DolphinScheler,首先需要對調度系統有基礎的了解,本文將重點介紹流程定義、流程實例、任務定義與任務實例。DolphinScheler在設計上採用去中心化架構,集群中沒有Master與Slave之分,提高系統的穩定性和可用性。
1.1 分布式設計
分布式系統設計分為中心化與去中心化兩種模式,每種模式都有其優勢與不足。中心化設計的集群中Master與Slave角色明確,Master負責任務分發與監控Slave健康狀態,Slave執行任務。去中心化設計中,所有節點地位平等,無「管理者」角色,減少單點故障。
1.1.1 中心化設計
中心化設計包括Master與Slave角色,Master監控健康狀態,均衡任務負載。但Master的單點故障可能導致集群崩潰,且任務調度可能集中於Master,產生過載。
1.1.2 去中心化設計
去中心化設計中,所有節點地位平等,通過Zookeeper等分布式協調服務實現容錯與任務調度。這種設計降低了單點故障風險,但節點間通信增加了實現難度。
1.2 架構設計
DolphinScheler採用去中心化架構,由UI、API、MasterServer、Zookeeper、WorkServer、Alert等組成。MasterServer與WorkServer均採用分布式設計,通過Zookeeper進行集群管理和容錯。
1.3 容錯問題
容錯包括服務宕機容錯與任務重試。Master容錯依賴ZooKeeper,Worker容錯由MasterScheler監控「需要容錯」狀態的任務實例。任務失敗重試需區分任務失敗重試、流程失敗恢復與重跑。
1.4 遠程日誌訪問
Web(UI)與Worker節點可能不在同一台機器上,遠程訪問日誌需要通過RPC實現,確保系統輕量化。
二、源碼分析
2.1 工程模塊介紹與配置文件
2.1.1 工程模塊介紹
2.1.2 配置文件
配置文件包括dolphinscheler-common、API、MasterServer與WorkerServer等。
2.2 API主要任務操作介面
API介面支持流程上線、定義、查詢、修改、發布、下線、啟動、停止、暫停、恢復與執行功能。
2.3 Quaterz架構與運行流程
Quartz架構用於調度任務,Scheler啟動後執行Job與Trigger。基本流程涉及任務初始化、調度與執行。
2.4 Master啟動與執行流程
Master節點啟動與執行流程涉及Quartz框架、槽(slot)與任務分發。容錯代碼由Master節點監控並處理。
2.5 Worker啟動與執行流程
Worker節點執行流程包括注冊、接收任務、執行與狀態反饋。負載均衡策略由配置文件控制。
2.6 RPC交互
Master與Worker節點通過Netty實現RPC通信,Master負責任務分發與Worker狀態監控,Worker接收任務與反饋執行狀態。
2.7 負載均衡演算法
DolphinScheler提供多種負載均衡演算法,包括加權隨機、平滑輪詢與線性負載,通過配置文件選擇演算法。
2.8 日誌服務
日誌服務通過RPC與Master節點通信,實現日誌的遠程訪問與查詢。
2.9 報警
報警功能基於規則篩選數據,並調用相應報警服務介面,如郵件、微信與簡訊通知。
本文提供了DolphinScheler的核心設計與源碼分析,涵蓋了系統架構、容錯機制、任務調度與日誌管理等方面,希望對您的學習與應用有所幫助。