PHP高階開發工程師面試題?

時間 2021-06-01 15:20:39

1樓:clearair

我使用了ngx_lua + syslog-ng + elk .

使用ngx_lua可以收集到請求資料與響應資料。

而且可以在最後的log階段執行記錄資料到syslog-ng裡面,這個階段nginx已經響應完資訊了,所以你處理是不會影響這次請求速度的(當然 ngx_lua執行還是有一些消耗的)。

最後就是elk收集syslog-ng的日誌了。

當然了,非常龐大的量 nginx之前也是需要做負載的吧。

2樓:架構師 Neeke

SeasLog作為PHP內建的日誌客戶端,通過配置rsyslog(TCP或UDP)埠將日誌傳送出去;rsyslog可以對接多種儲存,比如ELK。

由於SeasLog可以啟用Buffer、日誌傳送遵守RFC5424規範、重用鏈結等特性,可以使日誌傳送具備良好的效能。

這裡有完整配置手冊:

SeasLog的文件手冊:SeasX/SeasLog如何配置SeasLog的收集:SeasX/SeasLogPHP日誌規範:SeasX/SeasLog

3樓:

講講我們目前用的系統日誌方案。

目前我機器有幾百台,都是容器化(docker)的,寫本地是不行的。第一機器多,第二機器不是固定的。而且機器多應該是要關注整個集群的狀況,而不是關注兩台機器。

兩年前我們是這麼搞的,用elk,所有伺服器都通過rsyslog發到一台日誌伺服器,然後日誌伺服器通過logstash寫到es。

沒過幾個月,就一大堆問題了,日誌伺服器單點,而且logstash因為髒日誌會經常掛,而且es不能做監控。

後來有個同學引進了graylog,因為這個每天划水的他拿了季度之星。30臺graylog集群,graylog替代了日誌伺服器,替代了logstash,最終落地到es。我的服務都是非同步給graylog發訊息。

目前每秒有50000條日誌寫入,對接了幾個大業務的日誌。

當然目前還有問題,就是用來做日誌分析的es,不夠健壯,我有兩次因為查的資料不是熱資料,讓es掛了。

這個是系統日誌方案,僅供參考。

業務日誌,就是那些大資料的架構方案了,很成熟,kafka/storm/hadoop。

4樓:

每次都推送無異於自發性增大IO開銷,其實記錄在本地log就行,rsync定時同步到日誌伺服器(我這是每十分鐘)。開發人員就上這個日誌存放的伺服器去查就可以。比如每個模組有5臺機子,在日誌伺服器上就以01 02 03 這樣分好檔案存放,其餘目錄相同。

使用的技術,無非就是PHP寫入檔案操作,rsync,好像沒別的了。

5樓:卡拉迦迪斯

1. 不明白為什麼問 php高工這個…… 感覺像是架構方面的問題了。

2. 這題目很奇怪啊…… 【1.處理大量請求,2.請求日誌,3.集群自己發請求】

這還有什麼可設計的啊……

nginx接收請求唄,扛不住就上佇列唄 …… 還能咋滴???

佇列也扛不住? 按伺服器/請求劃分佇列, 推到多個佇列裡唄 ??

還扛不住?? 針對伺服器/請求劃分的佇列,再想辦法搞個計數(或者乾脆隨機數),

然後再根據這個數字,劃分到多個佇列裡……

現在有乙個web服務集群,複雜處理龐大的使用者請求,現在急需為此集群新增乙個日誌服務,web服務中的每次請求都會向此日誌服務傳送內容,現在請你設計這個服務,寫出設計思路,所使用的技術,模組劃分等。

如果只傳送一次,那就是記錄請求日誌。內容固定,型別單一。

向X服務傳送內容,說明傳送方不用管;就設計接收方即可。

乙個日誌服務,個人理解,就是接收資料,展示資料兩部分。並且資料需要儲存

儲存快取

memcache/redis

固定儲存

檔案/mongo/mysql/elasticsearch

接收端[複雜龐大]說明資料量大,接收需要考慮效能問題

提公升同時處理能力

處理完成部分後,即返回結果,後續繼續執行

先寫入快取再入庫

常規優化

降低同時處理數量

多程序佇列

多伺服器集群

展示端我的思考邏輯,大概就是這個思路了吧……

@漂洋散人 提到的 【consul集群】不太了解,看了下,好像是個微服務的管理工具。

6樓:丁敬飛

我覺得這個可能就是答案,ELK。https://

blog.csdn.net/wenlixing

110/article/details/56277603

7樓:蔡俊傑

web那邊居然主動推日誌……有必要?峰值來時等著雪崩吧。

有答案說了,用ELK。web那邊別主動推日誌,有什麼事先落地去本地日誌檔案,最靠譜,然後聚合走ELK全家桶。其實E和K跟這個問題沒太大關係,你這問題就是日誌上報聚合,看一下logstash你就理解了,跑個task非同步去做這事,日誌不是web主動推的,web把日誌打在本地檔案就好,大家互相不影響。

高併發系統設計大體都是乙個思路,如果沒有強實時需求,都是多開條task,能非同步就非同步,web請求內儘量減少一些on the fly的狀態依賴,各子系統通過訊息佇列,或者簡單的檔案,進行狀態同步。

8樓:

當下最流行的解決方案就是ELK.

量不大, 就是單純的ELK. 量大一般還會加個Kafka

ELK多種架構及優劣 - CSDN部落格

怎麼樣才算PHP工程師,PHP高階工程師?

一般上了一定規模的公司都會對員工做乙個職稱評級。你所說的phper應該算是初級或者中級,這這個級別的話一般就是一些日常的工作,說白點就是乙個coder,可能懂一點個方面的東西能做事。你說的高階我理解可能就是維護公司的架構。能為coder們指方向的。明確的標準都由公司說了算。我覺得,只要你把平常所學的...

測試工程師面試題,你都遇到過哪些呢?

刀鋒說測試 作為乙個成功指導上千名學員走上軟體測試崗位的我來說。遇到的面試題不說上萬,也至少有成千道!總結歷史輔導的題目發現 一上來就是問你,測試用例設計方法有哪些?你知道什麼是等價類劃分,什麼是邊界值,什麼是場景法?早期甚至連自動化的知識都懶得問你。為什麼?因為測試工程師早期就是簡單的寫testc...

如何評價Unity高階遊戲開發工程師認證?

完全就是笑話,乙個三天一改三年全變的軟體,你跟我說工程師認證?他們公司自己就找不出乙個每次考試都能打滿分的人出來。別的不說,就現在手機上流行的這一大坨各種gpu壓縮影象格式,今年你考了這個,沒準2年後ES4.0出來,壓縮格式統一,一大堆都扔了,有個蛋蛋用。 Light zhang 所有軟體開發方面的...