1.在開發高併發系統時,有不少手段來保護系統,如緩存、降級、限流等。緩存能夠提高系統的訪問速度,降級能夠暫時屏蔽掉非核心業務,使得核心業務不受影響。限流的目的是經過對併發訪問進行限速,一旦達到必定的速率就能夠拒絕服務(定向到錯誤頁或告知資源沒有了)、排隊等待(如秒殺、評論、下單等)、降級(直接返回兜底數據,如商品庫存默認有貨)。
目前主要有如下幾種限流方式:
信號量;計數器;滑動窗口;漏桶算法;令牌桶算法;分佈式限流。
2.Tomcat實際上是一個Servlet容器。當前執行線程有可能阻塞,因此Tomcat準備了一個很是大的線程池,裏面有好多線程。每過來一個請求,就給一個線程,本身玩去吧,隨便「折騰」。
3.HTTP-over-QUIC 實驗性協議將被重命名爲 HTTP/3,並有望成爲 HTTP 協議的第三個正式版本。
QUIC (Quick UDP Internet Connections)是 Google 推出的一個項目,旨在下降基於 TCP 通信的 Web 延遲。QUIC 很是相似 TCP+TLS+SPDY ,可是基於 UDP 實現的。
HTTP/3使用UDP代替了TCP,UDP是一個非鏈接的協議,傳輸數據以前源端和終端不創建鏈接。 UDP信息包的標題很短,對系統資源的要求比TCP要低。而且UDP是使用最大努力交付,即不保證可靠交付。
4.CI、DI。
持續集成(CONTINUOUS INTEGRATION),持續交付(CONTINUOUS DELIVERY),持續部署(CONTINUOUS DEPLOYMENT)。
Jenkins就是如今很流行的集成工具。
5.通常來講,經常使用的負載均衡方式有nginx和lvs兩種,分別是7層和4層的負載均衡,一個基於域名進行負載均衡,一個基於端口號作負載均衡。瞭解它們的實現原理,會讓你更好地理解這部份內容。
6.典型的工做流包括如下幾個步驟 開發、 提交、編譯、測試、發佈。
有了Jenkins的幫助,在這5步中,除了第1步,後續的4步都是自動化完成的,具體的,當你完成了提交,Jenkins會自動運行你的編譯腳本,編譯成功後,再運行你的測試腳本,這一步成功後,接着它會幫你把新程序發佈出去,特別的,在最後一步,你能夠選擇手動發佈,或自動發佈,畢竟發佈這件事情,仍是須要人爲的確認一下比較好。
簡而言之 > Jenkins能夠幫你在寫完代碼後,一鍵完成開發過程當中的一系列工做 使用Jenkins的好處顯而易見,它減小了你的重複勞動。
更重要的是,一個團隊的開發流程一開始是不一致的,不一致每每會帶來各類各樣的問題,最終體如今軟件的質量或開發效率不夠高,而Jenkins會幫你規範你們的行爲,從而避免一系列的問題。
7.Oauth2:開放受權是一個開放標準,容許用戶讓第三方應用訪問該用戶在某一網站上存儲的私密的資源,而無需將用戶名和密碼提供給第三方應用。 OAuth容許用戶提供一個令牌,而不是用戶名和密碼來訪問他們存放在特定服務提供者的數據。每個令牌受權一個特定的網站在特定的時段內訪問特定的資源。
8.即便你每天敲代碼,你的進步也如此之慢,由於你平時就缺少架構設計、代碼設計的鍛鍊,日積月累,你也只是搬磚的速度比以前更快一點而已。
9.微服務技術生態又發生了巨大變化,容器,PaaS,Cloud Native,gRPC,ServiceMesh,Serverless等新技術新理念你方唱罷我登場,不知不覺咱們又來到了微服務2.0時代。
10.微服務的安全方案:
使用支持OAuth 2.0和OpenID Connect標準協議的受權服務器(我的建議定製自研);
使用API網關做爲單一訪問入口,統一實現安全治理;
客戶在訪問微服務以前,先經過受權服務器登陸獲取access token,而後將access token和請求一塊兒發送到網關;
網關獲取access token,經過受權服務器校驗token,同時作token轉換獲取JWT token。
網關將JWT Token和請求一塊兒轉發到後臺微服務;
JWT中能夠存儲用戶會話信息,該信息能夠傳遞給後臺的微服務,也能夠在微服務之間傳遞,用做認證受權等用途;
每一個微服務包含JWT客戶端,可以解密JWT並獲取其中的用戶會話信息。
整個方案中,access token是一種by reference token,不包含用戶信息能夠直接暴露在公網上;JWT token是一種by value token,能夠包含用戶信息但不暴露在公網上。
11.控制器不該該執行業務邏輯,而是依賴委託;控制器應該處理應用程序的HTTP層,這不該該傳遞給服務。
12.Consul的服務註冊與發現與Eureka對比:
Consul固然是能夠做爲服務註冊中心的了,能夠用作微服務架構的服務註冊和發現。
同時這裏能夠先給你們說一下,Consul的服務註冊機制選擇的是基於Daft協議的強一致,沒有像Eureka那樣使用最終一致的效果。
13.分佈式計算(computation)與分佈式存儲(storage)。計算與存儲是相輔相成的,計算須要數據,要麼來自實時數據(流數據),要麼來自存儲的數據;而計算的結果也是須要存儲的。在操做系統中,對計算與存儲有很是詳盡的討論,分佈式系統只不過將這些理論推廣到多個節點罷了。
那麼分佈式系統怎麼將任務分發到這些計算機節點呢,很簡單的思想,分而治之,即分片(partition)。對於計算,那麼就是對計算任務進行切換,每一個節點算一些,最終彙總就好了,這就是MapReduce的思想;對於存儲,更好理解一下,每一個節點存一部分數據就好了。當數據規模變大的時候,Partition是惟一的選擇,同時也會帶來一些好處:
(1)提高性能和併發,操做被分發到不一樣的分片,相互獨立。
(2)提高系統的可用性,即便部分分片不能用,其餘分片不會受到影響。
理想的狀況下,有分片就好了,但事實的狀況卻不大理想。
緣由在於,分佈式系統中有大量的節點,且經過網絡通訊。單個節點的故障(進程crash、斷電、磁盤損壞)是個小几率事件,但整個系統的故障率會隨節點的增長而指數級增長,網絡通訊也可能出現斷網、高延遲的狀況。在這種必定會出現的「異常」狀況下,分佈式系統仍是須要繼續穩定的對外提供服務,即須要較強的容錯性。最簡單的辦法,就是冗餘或者複製集(Replication),即多個節點負責同一個任務,最爲常見的就是分佈式存儲中,多個節點複雜存儲同一份數據,以此加強可用性與可靠性。同時,Replication也會帶來性能的提高
14.Partition和Replication是解決分佈式系統問題的一記組合拳,不少具體的問題均可以用這個思路去解決。但這並非銀彈,每每是爲了解決一個問題,會引入更多的問題,好比爲了可用性與可靠性保證,引用了冗餘(複製集)。有了冗餘,各個副本間的一致性問題就變得很頭疼,一致性在系統的角度和用戶的角度又有不一樣的等級劃分。若是要保證強一致性,那麼會影響可用性與性能,在一些應用(好比電商、搜索)是難以接受的。若是是最終一致性,那麼就須要處理數據衝突的狀況。CAP、FLP這些理論告訴咱們,在分佈式系統中,沒有最佳的選擇,都是須要權衡,作出最合適的選擇。
15.迭代(iterate),指的是按照某種順序逐個訪問列表中的每一項。好比,for語句。迭代只能對應集合,列表,數組等。
遍歷(traversal),指的是按照必定的規則訪問樹形結構中的每一個節點,並且每一個節點都只訪問一次。
遞歸(recursion),指的是一個函數不斷調用自身的行爲。好比斐波納契數列。前端
1.平時除了鑽研技術,還要多思考行業、公司、產品、業務等。做爲開發者,要有本身的理解。
2.工做選擇上,可能涉及的因素有:(1) 行業/公司前景、(2) 薪酬福利、(3) 工做環境、(4) 工做內容、(5) 老闆/同事關係、(6) 是不是核心部門、(7) 是不是在大城市、(8) 離家遠近
我的比較看重薪酬、行業、技術。
3.行業背景很是重要;工做3年後必須肯定本身的行業背景,好比一直從事電信行業,一直從事銀行項目,一直從事ERP行業等等。
一個程序員不多是一直寫代碼的,就是寫代碼也要知道業務邏輯,知足什麼需求;俗話說隔行如隔山,每一個行業的業務都不同,甚至差異很大,好比你一直從事流媒體的研究,讓你跳槽到一家銀行項目,完了,一切從頭學吧,之前的行業經驗都用不上了;並且,一個公司公司招人,就是但願找到那些很容易上手,不須要培訓業務好久的程序員;頻繁跳槽的朋友,必定要注意這點;
一直在一個行業呆久了,就能夠成爲這個行業的專家;咱們能夠常常看到,一個項目組的某個leader,代碼寫的通常,可是卻能夠跟客戶流暢的溝通,控制着新需求的提出,bug的修正等等;而客戶也很願意跟他打交道,由於那些老的項目只有他能維護,他甚至熟悉系統的每一張表結構——-可想在這個行業呆的時間有多久啦。
4.沒去過大公司的 必定要去。學一下流程 正規作事的方式,體量大起來以後的套路,合做的模式。
若是有大公司背景,之後換公司頗有優點。小公司隨時都有倒閉裁人的風險,並且作的東西太雜。
5.苦幹加巧幹,纔是成長期的正道。越是壓力大的時候,越是應該停下來總結一下本身學習的知識 ,糾正本身犯過的錯誤,多與同時溝通了解項目狀況 ,多向項目經理請教開發時咱們遇到的問題。
苦幹是爲了積累,巧幹是爲了更快的提升。
做爲程序員,在剛進入公司,沒有獲得公司承認的狀況下,可否能用數字把本身的成績說清楚,是成功與否的關鍵。這很大程度上決定了,咱們用多久能豎立本身在公司、在項目中的地位。
隔一段就總結本身的收穫,寫了多少行代碼,記錄下來隨時備查,即爲了給領導說明問題,更重要的是能讓咱們本身感覺到成長的快樂。
6.工做明顯沒有前兩年好找,特別是移動端開發,前幾年移動端開發吃香的時候,工資比後端的還高,這兩年隨着前端技術的發展,純安卓和iOS工程師的崗位愈來愈少,身邊的移動端朋友只好轉前端去了。nginx
程成之前在一線互聯網公司拿着高薪資,寫着熟悉的代碼,工做安穩溫馨,不曾考慮過跳槽的事。
可經歷過寒冬,程成彷佛變得理智與麻木:沒有一家公司是穩定的,沒有一份工做是穩定的,只有每月到手的工資是真實的。
7.大公司的兩個問題:
權限問題,作這事沒有權限,作那事也沒有權限。
另外就是,一個流程走一個月,甚至一個通了一個月的方案會隨時被叫停,可能由於已經錯過熱點。
8.由於好的企業我不認爲愚蠢到用工做時間來先限定一我的。更推崇現在的OKR制度:以結果爲導向,過程沒那麼重要。
9.對一名程序員來講,職業生涯有3個關鍵點:一個是剛畢業入行時,一個是30歲的時候,另外一個是35歲的時候。每一個點都有本身的關鍵所在。30歲則是技術的轉折點,要麼「會當凌絕頂」,要麼泯然於衆生。(我的並非很認同,只要想學,任什麼時候候都不晚的。)
10.有的人在簡歷上寫一些rpc治理框架,好比dubbo,spring cloud這些!
面試官一看到這些,可能會下意識的去翻有沒有事務處理。由於一旦採用了微服務架構,必然會牽涉到事務。他會看有沒有體現出Tcc(補償機制),XA(柔性事務),MQ(消息隊列)等常見的事務解決方案技術!若是沒有出現,百分百是demo,妥妥的是包裝簡歷!
11.Leader的管理方式和處事原則對團隊影響很大。不管是技術,眼界,仍是人品。
12.努力成爲團隊中的技術Leader,多和他人交流討論,幫別人解決問題,對本身的成長頗有幫助。
13.工做確定會碰到不少問題,須要不斷去問別人。可是本身臉皮薄,生怕別人問煩了。後來就開始琢磨,怎麼才能讓別人不被本身問煩,總結下來,大體這樣,首先先過濾白癡問題,好比基本語法、函數使用這類基本上網一查就知道的問題;其次,每一個問題先本身想至少兩種方案,而後把問題和本身想到的方案拿過去去讓別人幫我看,是否是合適。
14.偶爾沒有達成目標也不要氣餒,由於人不是機器,都是會懈怠的。你只須要知道,你須要打敗的是昨天的本身,過去的本身,而不是其餘任何人。
職場就是長跑,跑慢點無所謂,但不表明咱們中途能夠停下來。
15.聰明點的程序員仍是會封裝的,本身就會把一些經常使用的工具類,一些方法,一些控件進行封裝,留着之後備用。在公司開發完 A 項目,而後開發 B 項目的時候,就會很簡單,把本身封裝的東西拿過來直接用
16.如何快速熟悉新項目?
頁面訪問路徑——前端項目——後臺服務——數據庫地址
前端頁面分別調用了哪些後臺接口?
項目部署都須要用到jenkins,只要查看jenkins配置的命令,就能夠把部署環境一一整理出來。
瞭解項目間的關係。
哪些是底層服務?哪些是聚合層?哪些是服務提供者,哪些服務消費者?
整理數據庫表,整理Controller層的全部接口。
找核心項目,篩選核心數據表,判斷哪些是核心表,找出表之間的關係。
運行項目,認真看日誌。
把握重點,先不用關注具體的瑣碎代碼實現。
項目的模塊太多,要結合業務去理解快一點,只看代碼很暈的。
重點是關注你要寫的模塊,其餘模塊你瞭解就好了。
小需求,改 BUG,解決客服或者客戶問題等等。
先問清楚需求,而後再開幹。
17.德雷福斯模型將人對技能的掌握水平分爲 5 個層級:
新手、高級新手、勝任者、精通者、專家
對某一項技能來說,大部分的人都處於新手或高級新手這個層級,合計比例佔到65~70% 。有大約 15% 的人是勝任者,大約10%的人是精通者,2~5%的人是專家。
18.程序員很容易被各類層出不窮的新平臺、新語言、新工具、新類庫嚇倒。你很容易產生一種恐懼心理,感受本身已經落後——那些程序員談論的技術我怎麼歷來沒有據說過?當你發現一種新技術看起來頗有用或頗有趣時,作個筆記,幾周或幾月後在回來看看它,若是人們還在談論它,那麼,你就應該進一步研究它。事實上不少熱門新技術都是曇花一現,你徹底能夠忽略它,不要讓它們浪費了你的大腦。
19.一般被打斷後重回工做狀態至少要15分鐘。
20.程序員必定不要,視野狹窄,只關注本身的一畝三分地,囿於角色。
這種狀況其實在職場中多見不只是初級程序員,甚至工做五年以上的程序員也有相似的問題,不是本身的事情漠不關心,並且危害更大。
公司項目每每大而全,若是僅僅專一本身的那個角落,那麼永遠都是隻見樹木,不見森林。
我相信沒有老闆會介意下面的程序員多承擔一些責任,多作一些事情,最後給項目組多一些產出。
既然老闆不介意,那麼就應該大膽的跳出本身的職責範圍,多看看公司的其餘項目,豐富本身的行業知識。
職責外的事情,幫的上的不要躲避,,努力承擔更多的東西。幫助別人就是提升本身,教學相長就是這個意思。何況你此次幫了別人,下次你的項目緊或者遇到技術難題了,受助之人確定投桃報李,這樣就造成了良性互助氛圍,整個項目組的產出也同步提高了。程序員
1.對終生學習的理解,不該該是讓本身陷入終生的痛苦之中,而是將學習平衡於生活之中,從學習中找尋到樂趣,反過來豐富本身的生活。只有如此的學習,才能持續,纔有可能終生。
若是你學習着,並痛苦着,請你先停下來,仔細的思考一番,是否是哪些方面出現了問題。譬如,本身所學不是本身喜歡的東西?譬如,本身投入學習的時間過多,失衡了生活? 再譬如,本身好高騖遠,學習了超出自身理解力的知識? 等等。靠毅力,能夠堅持,但終究不能持久,須要找尋到學習痛苦的根源,將其調整過來。面試
1.金融行業安全的核心,就是風控。
2.2018年以來,P2P頻現爆雷潮,光上海地區P2P違約規模已超2000億,行業一片慘淡。
(注:p2p:peer to peer,是一種將小額資金彙集起來借貸給有資金需求人羣的一種民間小額借貸模式,常見於互聯網金融公司。)
3.2018年遊戲行業版本號變少開放,致使行業慘淡。2019年版號重啓審批,行業在回升中。
4.在短短五個月內,同款機型就發生了兩起空難。中國民航局於3月11日上午發佈通知稱,鑑於兩起空難均爲新交付不久的波音737-8飛機,且均發生在起飛階段,具備必定的類似性,爲確保中國民航飛行安全,要求國內航司於3月11日18時前暫停波音737-8飛機的商業運行。
5.2018年Q4,拼多多經營虧損爲26.409億元人民幣;
不少互聯網公司在發展時,都是先瘋狂燒錢打開市場。
6.AIOT,也就是AI加上IOT。IOT,就是物聯網。
在人工智能領域,智能語音和智能機器人戰線均不示弱,但在智能語音領域,蘋果和微軟最終的產品形態都淪爲雞肋,卻讓後來者亞馬遜利用智能音箱彎道超車,直趕而上。
百箱大戰由此開打。谷歌、蘋果、京東、阿里、科大訊飛、騰訊、小米等互聯網公司紛紛發佈智能音箱,宣佈進軍 IOT。
而人工智能的背後則是強大的計算處理平臺和龐大的數據庫,二者的緊密支撐爲人工智能帶來動能。算法
1.相反那些但願不虧的投資者,每每具備以下的良好習慣:
一是喜歡蹲坑。在股市低點時,動用最多的資金買入,將購買成本降到最低。即使後來追加資金,也喜歡在下跌或者漲幅小的上面下注。這無疑爲後期的上漲積累了籌碼,也避免了買在階段性的高點。
二是喜歡趴窩。最穩健的是趴窩在績優股上,雖然牛市漲的慢,可是風險小(例如「熊指」組合,今年盈利25.22%)。依靠日積月累,盈利不在小數。最激進的是趴窩在高彈性的指數或個股上(例如「牛指」組合,今年盈利40.92%),堅持持有到目標價才起身離席。
2.牛市孕育期市場特徵是輪漲普漲、波動回撤大。可能引發市場波動的內外因素包括,國內基本面數據、金融監管、全球經濟放緩、美股下跌拖累。spring
海通策略認爲,牛市不一樣階段特徵不一樣,投資收益也不一樣。牛市第一階段孕育準備期市場上漲主要靠估值修復,缺少基本面支撐,並且投資者剛剛從熊市走出來,投資信心還沒有徹底恢復,會有必定的恐高情緒,所以市場每每會進二退一,上漲後出現較大回撤,這一階段重要的是保住收益,控制回撤,歷史看第一階段基金廣泛難以打敗指數。而牛市的第二階段是全面爆發期,此時基本面拐點出現,企業盈利觸底回升,配合估值上行造成戴維斯雙擊,牛市全面爆發,這一階段漲幅最大,並且會出現主導產業,主導產業漲幅顯著大於其餘產業,由於他們的業績更好,估值提高會更明顯,戴維斯雙擊的乘數效應很強,這期間基金差別拉開,抓住主導產業更爲重要。
着眼將來,如今須要爲牛市第二階段及全面爆發期作好準備,重點是找到主導產業。如今我國進入後工業化時代,步入信息化時代,重點發展的產業是科技類行業,而爲科技類行業提供融資服務的是券商,因此將來進入牛市全面爆發期,此次的主導產業是科技+券商。
3.中證紅利指數簡稱「中證紅利」,選擇上海、深圳交易所中現金股息率高、分成比較穩定、具備必定規模及流動性的100只股票做爲樣本,以反映A股市場高紅利股票的總體情況和走勢。
4.分析的時候,咱們會分析企業的成,也分析企業的敗,會分析商業模式,也會分析企業領導人。當一次分析不懂的時候,會屢次反覆分析,只要這個企業是值得咱們關注的。因此咱們最終手裏拿着一堆還能夠的企業,只要機會到來,就有機會買入,而不用思考不少。數據庫
1.樓下一個男人病得要死,那間壁的一家唱着留聲機;對面是弄孩子。樓上有兩人狂笑;還有打牌聲。河中的船上有女人哭着她死去的母親。人類的悲歡並不相通,我只以爲他們吵鬧。
2.在社交媒體時代,幾乎每一個人都在向世界展現「更好的本身」(誇大的自我),人們知道本身的展現有浮誇的成分,可是大多數時候卻會認爲別人曬出的幸福是真實的、值得羨慕、甚至嫉妒的。朋友圈只有「點贊」的功能,可是有多少人在禮節性地點讚的同時,內心卻有連本身都沒有覺察到的恨意呢。
3.巨嬰的意思是,一個個體,在身體上已經發育爲成年人,而在精神上還保留着嬰兒般的思想、情緒和行爲。巨嬰國則指,今日的中國國民有一大部分人的心理髮展水平仍處於巨嬰階段。後端
1.印度總理莫迪2019年面臨競選連任的大考。
莫迪在第一個任期內有兩大主要改革,一項是有點瞎折騰的貨幣改革,在限定時間內換鈔,但願打擊現金爲主的地下經濟,另外一項則是商品服務稅(GST)改革,但願打破各個州之間的稅收壁壘,把印度變成一個真正的統一市場。
印度繳納所得稅的人鳳毛菱角,相反以現金交易的地下經濟卻大爲盛行,甚至買賣二手車也願意經過中間人現金交易,爲的就是逃避政府徵稅。這也是爲何莫迪要在2016年末使出雷霆手段進行幣制改革的緣由。數組