2019.06 - 至今上海華爲開發工程師php
實習部門:5G開發部
項目:網站開發、運維開發、數據處理
2019.06至今華爲實習
Python+Django+Javascript+Nginx+rabbitMQ+ELK
基於 Django 框架使用 Python 開發網站基礎進程監控系統,實現進程異常記錄、進程異常自動恢復、發送告警郵件,而且用 Web 界面進行展現和管理。整個框架由本人獨立設計完成並上線,保證了部門 Web 的穩定。
使用Python對文件裏面的數據進行處理分析,並完成web展現。html
2019.06 - 至今網站基礎進程監控系統開發工程師前端
1,基於 Django 框架使用 Python 開發網站基礎進程監控系統;
2,使用pymysql實現進程異常記錄、利用subprocess+ssh鏈接機器檢查進程狀態、異常自動恢復、使用rabbitMQ做消息隊列發送告警郵件和短信通知;
3,使用JavaScript、Jquery、echarts等開發 Web 界面進行展現和管理進程。4,整個框架由本人獨立設計完成並上線,保證了部門 Web 的穩定。java2018.12 - 2019.03華爲雲意見反饋系統開發工程師node
1,基於Spring boot框架+Mybatis+Redis+Restful等技術的一個意見反饋系統。2,本人在項目裏面負責後端部分,使用IDEA開發工具,Git協同開發
3,實現了登陸校驗,發佈,刪除,評論等功能。python
IT技能:熟悉Python、Java,有紮實的數據結構算法基礎,熟悉Linux操做,熟悉JavaScript頁面開發;
職位相關技能:瞭解Hadoop,瞭解redis,瞭解機器學習、深度學習。
CET6:520 有良好的英語閱讀能力mysql
生產服務依靠不少關鍵性進程的運行來維持。好比rabbit_mq消費者,數據分析的腳本,網站響應速度,數據庫健康情況等等。這些進程分佈在不一樣機器上,並且數量巨大。爲了把這些進程監控起來,就開發了一個簡單的監控系統。經過前端界面進行配置服務相關信息,全部進程的狀態均可以經過前端進行查看。一旦有異常會根據郵件分組進行發送,若是配置了異常自動恢復功能,會自動恢復服務。nginx
底層原理:ssh,ping,connect,urlopen,rabbit_mq消息隊列git
不足:雖然功能簡單,可是能穩定運行。其中也有不少不足的地方,若是機器數量特別大,那麼這個監控系統可能管理起來就會很麻煩。程序員
優化:能夠借鑑開源框架的C/S模式,客戶端上報機器信息,服務端進行彙總監控。
對5G一些模塊生成的文件,進行分析統計一些高頻函數。
都是消息隊列:
[x] Nginx 相關負載均衡算法
[x] 原理
[x] Nginx如何作到高併發下的高效處理?
上文已經說起Nginx的worker進程個數與CPU綁定、worker進程內部包含一個線程高效迴環處理請求,這的確有助於效率,但這是不夠的。
做爲專業的程序員,咱們能夠開一下腦洞:BIO/NIO/AIO、異步/同步、阻塞/非阻塞...
要同時處理那麼多的請求,要知道,有的請求須要發生IO,可能須要很長時間,若是等着它,就會拖慢worker的處理速度。
Nginx採用了Linux的epoll模型,epoll模型基於事件驅動機制,它能夠監控多個事件是否準備完畢,若是OK,那麼放入epoll隊列中,這個過程是異步的。worker只須要從epoll隊列循環處理
[x] Java IO(序列化、BIO、NIO、AIO)
spring boot基礎
reference:
reference:
[ ] zk 高可用的實現原理是什麼
reference:
二叉樹中序遍歷 非遞歸
冒泡排序
最長公共子串
微信掃碼登陸設計原理 https://www.jianshu.com/p/047acc4190cb
01揹包
二叉樹序列化與反序列化
二叉樹前序遍歷中序遍歷構造還原
LRU算法實現
單鏈表奇數位遞增,偶數位遞減進行排序
矩陣中的二分查找(一個二維矩陣,從左到右是升序,從上到下是降序,找一個數是否存在於矩陣中(相似於二叉查找樹))
數組內部重複,求重複部分(1,2,3,1,2,3 求 1,2,3)
二叉樹是否存在和位N的路徑
求二叉樹最長路徑
歸併排序
快速排序
經過內存計數器實現限流器
名人問題:
連接:https://www.nowcoder.com/discuss/115824 全部人都認識TA,可是TA不認識任何其餘人 a [i] [j] = 1, i 認識 j a [i] [j] = 0, i 不認識 j a [i] [i] 置空 給定n*n的二維數組,有多少個名人?具體都是誰?
刪除鏈表中全部重複元素
輸入一個字符串String str,求重複次數最多的字符的第一個索引值
例如
輸入:"aabcbcbc"
輸出:2(b和c都出現了3次,但b在c前面)
self:
場景題:
索引:
平衡樹,b樹 和 b+樹 http://www.javashuo.com/article/p-ckwxkowl-eh.html
彙集索引(根據主鍵生成平衡樹,而後進行查找),通常的查找步驟是,根據字段查找對應的id,而後根據id再查到具體的信息。 創建索引的目的就是加快id查找,根據多字段創建索引也能夠省略根據id查找具體信息的目的。 好比:我要查name 小王 的 score成績,根據這兩個字段創建索引:<這種方式叫覆蓋索引>
create index name_and_score on student(name, score); select score from student where name='小王';
b樹 和 b+樹的區別
數據庫事務隔離級別
mysql 和 hbase對比
mysql數據庫默認存儲引擎,有什麼優勢
數據庫引擎結構、區別
索引底層結構,插入數據索引結構的變化等
索引的優化方法,以及爲何(就是優化底層是怎麼實現)
索引使用(優化器如何界定)
數據庫幾種日誌,以及如何刷新,區別
數據庫三個線程用處
數據庫事務詳細(不是指ACID幾個性質,就是事務究竟是基於什麼實現的)
• 關係型和非關係型數據庫的區別(各自優勢)
• 經常使用SQL語句(DDL,DML,DCL,TCL)
• 數據庫中join的類型與區別(inner join, outer join, cross join, natural join, self join),注意適用場景和sql語句的編寫
• 數據庫的索引類型
• 彙集索引和非彙集索引的區別(葉節點存儲內容)
• 惟一性索引和主碼索引的區別
• 索引的優缺點,何時使用索引,何時不能使用索引(重點)
• 索引的底層實現(B+樹,爲什麼不採用紅黑樹,B樹)
• B樹和B+樹具體實現
• 索引最左前綴問題
• Mysql的優化(高頻,索引優化,性能優化)
• 數據庫引擎介紹,Innodb和Myisam的特色與區別
• 數據庫中事務的ACID(四大特性都要可以舉例說明,理解透徹,好比原子性和一致性的關聯,隔離性很差會出現的問題)
• 數據庫隔離性設置不一樣會出現的問題(髒讀、不可重複讀、丟失修改、幻讀)
• 數據庫的隔離級別,Mysql和Oracle的隔離級別分別是什麼
• 數據庫鏈接池的做用
• Mysql的表空間方式,各自特色
• 分佈式事務
• 數據庫的範式
• 數據的鎖的種類,加鎖的方式
• 視圖的做用與使用方法(如何刪除等)
• 分庫分表,主從複製,讀寫分離。(我不會,也沒碰到過)
• 項目中哪裏用到了數據庫,怎麼用的
• Memcache和Redis瞭解
大數據和分佈式
• Hadoop框架下,各個組件的構成及做用
• BASE原則,CAP原則
• 一致性算法Raft的過程
• TIDB原理
• HBase的存儲原理
• HDFS運行原理
• Hive的瞭解
• Spark的瞭解
• 介紹熟悉的設計模式(單例,簡單工廠,觀察者模式等等)
• 寫單例模式(餓漢模式和懶漢模式),線程安全版本
• MVC設計模式
others: