發表文章

目前顯示的是有「Others」標籤的文章

Markdown

[心得]一些工作經驗回顧

圖片
第一份工作持續了兩年多,雖然所在的單位系統已經上線 N 年了,非常穩定,剩餘的工作都是維護居多。 但因為人數持續增長,也陸續面臨了各種奇怪的挑戰,常常要翻 LOG 查問題跟上面的人報告可以有哪些解法。 在找這些問題學到了不少,加上常常需要跟 DBA 還有 DC 打交道,多少增廣見聞。 礙於全部的筆記跟資料都留在公司電腦了,趁著休息的這段時間, 剛好慢慢回顧一下兩年來的一些心得,並陸續整理在這篇文章。 一些工作經驗回顧 機器選擇 Q: 如何評估新服務機器量 A: 估當前需求,評估使用次數,讀得多,寫得多,呼叫頻率為何?是否離峰時段跟尖峰差距很大。 再評估未來一到兩年需求可能會增長的量,各別壓測WEB與DB,看是否會遇到瓶頸,決定好後把服務簡單搭起來完整壓測 WEB+DB 再次評估。 單台 WEB 機器+單台 DB 機器,WEB 遇到瓶頸: 解決方案: 1.加 WEB 機器,導入利用 nginx 做 loadbalance 優點: 簡單、便宜 缺點: 未來瓶頸變成 MYSQL、擴展性低、可用性低 2.拆服務、拆機器 優點: 性能高、擴展性高,未來可以依功能拆服務依服務加機器、可用性高 缺點: 須對服務本身拆分難度高、WEB 機與 DB 數量需要較多,較昂貴 機器的 loadbalance: 有錢: 利用機器例如 F5 在Layer4(連線層)、Layer7(應用層)做掉 沒錢: Nginx NGINX 方式有幾種算法 1.round-robin(default) 2.least connected load balancing 3.weighted load balancing 4.ip_hash 其中1~3方法無法保證同個使用者用到同一台。 另外曾經遇到使用最少連線時未設定上限, 導致瞬間大流量全部灌到同一台上掛掉,故設定上要小心。 http://mysql.taobao.org/monthly/ http://nginx.org/en/docs/http/load_balancing.html https://www.ithome.com.tw/node/65773 其他: worker_connections 、 client_max_body_...

[心得] learning-regular-expressions

圖片
learning-regular-expressions REF: stackoverflow-learning-regular-expressions regexone MDN regex101 cheat sheet 實用: 查表 https://www.cheatography.com/davechild/cheat-sheets/regular-expressions/pdf/ 信箱: http://emailregex.com/ 手機: https://stackoverflow.com/questions/2113908/what-regular-expression-will-match-valid-international-phone-numbers 介紹: \ : 反斜線放在非特殊符號前面,使非特殊符號不會被逐字譯出,代表特殊作用。 例如: 'b’如果沒有 ‘’ 在前頭,功能是找出小寫b;若改為 ‘\b’ 則代表的是邊界功能,block用意。 /\bter\b/.test(“interest”) //false /\bter\b/.test(“in ter est”) //true ^ : Start of string, or start of line in multi-line pattern. 匹配輸入的開頭,如果 multiline flag 被設為 true,則會匹配換行字元後。 例如:/^A/ 不會匹配「an A」的 A,但會匹配「An E」中的 A。 註:「^」出現在字元集模式的字首中有不同的意思,代表排除特定字元。 $ : End of string, or end of line in multi-line pattern. 匹配輸入的結尾,如果 multiline flag 被設為 true,則會匹配換行字元。 例如:/t$/ 不會匹配「eater」中的 t,卻會匹配「eat」中的 t。 * : Matches the preceding expression 0 or more times. Equivalent to {0,}. 比對條件出現 0 次或是 0 次以上。 For examp...