Zookeeper和正則表示式
NGINX
1.反向代理 2.負載均衡 3.http伺服器(包含動靜分離) 4.正向代理
高併發流量的控制
1.快取 2.降級 3.限流
限流的方式:計數器,滑動視窗,漏桶,令牌
初始化例項化
1.一個例項變數在物件初始化會被賦值幾次?JVM為一個物件分配完記憶體之後,會給每一個例項變數賦予預設值,第一次;在宣告例項變數的同時進行了賦值操作,則第二次;在例項程式碼塊中又對變數初始化,則第三次;在建構函式中也初始化了,則第四次;
2.類的初始化和類的例項化過程的異同?類的初始化是指類載入過程中的初始化階段對類變數按照程式的意圖進行賦值的過程;而類的例項化是指在類完全載入到記憶體中後建立物件的過程
ZooKeeper
通用的無單點問題的分散式協調框架
設計目標是將那些複雜且容易出錯的分散式一致性服務封裝起來,構成一個原語集,並以一系列簡單易用的介面提供給使用者使用。
Zookeeper是一個典型的分散式資料一致性解決方案,分散式應用程式可以基於ZooKeeper實現諸如資料釋出/訂閱,負載均衡,命名服務,分散式協調/通知,叢集管理,Master選舉,分散式鎖和分散式佇列等功能;
常用場景: 用於擔任服務生產者和服務消費者的註冊中心;(服務生產者將提供的服務註冊到Zookeeper中心,服務的消費者在服務呼叫的時候到Zookeeper查詢服務,獲取後再去呼叫服務生產者的內容 和資料;)
為什麼使用奇數臺伺服器構成Zookeeper叢集:因為當3個和4個Server時,都同樣最多隻允許1個Server掛掉。
1.為了保證高可用:採用叢集;
高吞吐和低延遲:將資料儲存到記憶體中;
高效能:在“讀”多的應用型尤其高效能。“寫”會導致所有伺服器間同步狀態;(讀多於寫是協調服務的典型場景)
臨時節點:當建立臨時節點的客戶端會話一直保持活動,瞬時節點就一直存在;(1.管理使用者提交的資料2.為使用者程式提供資料節點的監聽服務)
Session:一個客戶端連線是指客戶端和伺服器之間的一個TCP長連線; (能向Zookeeper伺服器傳送請求並接受相應,同時接收伺服器的Watch事件通知)
Znode:資料節點(臨時節點)
Watch:(事件監聽器) 允許使用者在指定節點註冊Watcher,在事件觸發時,服務端會將事件通知到感興趣的客戶端。
特點:順序一致性:同一客戶端發起的事務請求,會按照順序被應用
原子性;單一系統映像:無論客戶端連線到哪一個Zookeeper伺服器上,其看到的服務端資料模型一致;
可靠性:一旦一次更改請求被應用,更改的結果會被持久化;
叢集角色介紹:典型模式:Master/Slave模式(主備模式)
使用:用作註冊中心;Hadoop生態系統的醫院;構建Zookeeper叢集時,使用伺服器最好是奇數臺;
正則表示式
元字元:\w:匹配一個元素 \s 匹配人員空白符 \d 匹配數字 \b 匹配單詞的開始或結束 ^ 匹配字串的開始 $ 匹配 字串的結束
匹配有abc開頭的字串:\babc ^abc
匹配8位數字的qq號碼:^\d\d\d\d\d\d\d\d$
匹配1開頭11位數字的手機號碼:^1\d\d\d\d\d\d\d\d\d\d\d\d$
重複限定符 * 重複零次或多次 + 重複一次或多次 ? 重複零次或一次 {n}重複n次 {n,}重複n次或更多次 {n,m}重複n到m次
匹配8位數字的qq號碼:^\d{8}$
匹配1開頭11位數字的手機號碼 : ^1\d{10}$
匹配銀行卡號是14-18位的數字: ^\d{14,18}$
匹配以a開頭,0個活多個b結尾的字串: ^ab*$
分組:匹配字串中包含多個0到多個ab開頭:^(ab)*
轉義:匹配以(ab)開頭: ^(\(ab\))*
條件或: 或條件處理: ^(130|131|132|1323)\d{8}$
區間: 限定0-9 [0-9] 限定A-Z 【A-Z】 限定某些數字:【165】
^((13[0-2])|(15[56])|(18[5-6])|145|176)\d{8}$