非同步社群的乙個專訪記錄

2022-09-15 09:06:12 字數 3820 閱讀 5085

本文出自方志朋的部落格

非同步社群:請您向非同步社群的讀者做乙個簡單的介紹吧。

非同步社群:是什麼初衷讓您開始創作《深入理解spring cloud與微服務構建》?這本書有哪些特色?學習這本書有哪些知識要點不可錯過,可以分享一下嗎?

我從2023年4月份開始,寫了一系列spring cloud教程,取名為《史上最簡單的spring cloud教程》,我的寫作初衷就是化繁為簡、化整為零,讓讀者輕鬆愉快的上手spring cloud這一套微服務框架。我完全從乙個新手的角度,或者說是乙個新手的心理去寫這樣一系列的文章,盡量寫的簡單明瞭,讓讀者快速上手,讓學習技術不再是一件痛苦的事。這一系列文章發表完之後,閱讀量呈指數增長,超出了我的想象,獲得大量的讀者的認可。在之後非同步社群的張爽編輯聯絡我,問我是否願意寫一本關於spring cloud 這樣一本書,我就想部落格終究是部落格,或多或少有一些缺陷,書籍由出版社嚴格把控,更能寫出一些乾貨,讓讀者有更多的選擇,這樣更能推進spring cloud技術的發展。

這本書最大的特色就是沿襲了我部落格的寫作風格,力求做到簡單,讓讀者輕鬆愉快的學習,另外本書中對spring cloud核心元件進行了乙個原始碼的跟蹤,讓讀者能夠深入的理解spring cloud這一體系,或者說微服務這一體系的實現的原理,然後,我花費了大量時間研究了spring cloud oauth2這一元件,這是乙個安全元件,有著舉足輕重的作用,最後,在本書的最後一章有乙個綜合案例,是我在工作和學習中對spring cloud的乙個提煉,有著非常大的參考價值。

對於新手來說,這本書幹活滿滿,所有的內容都不能錯過;對高手而言,spring cloud核心元件原始碼不容錯過,spring cloud oauth2元件的目前的資料較少,所以也不容錯過,而本書最後的綜合案例更是我本人實戰一年工作的提煉,有著非常大的參考價值。

非同步社群:微服務,是著名的oo專家martin fowler提出來的,在最近兩年各種演講、文章、書籍上出現的頻率之高,讓人們逐漸意識到它對於軟體領域所帶來的影響,spring cloud 作為微服務的踐行者,您認為有哪些優勢?

這要軟體架構的演進來講起。單體架構,可能最為大家所熟悉,在軟體的初始階段最適合使用這一架構,這一架構在軟體的初始階段有著非常大的優勢,有這開發速度快、成本低的優點,這一架構只適合業務較簡單、併發量較小的應用。隨著業務越來越複雜,這一架構會帶來**的可讀性越來越差,可持續交付能力差。

應用伺服器集群的架構,隨著業務的發展,大多數公司會將單體應用進行集群部署,並增加負載均衡伺服器(例如nginx等)。另外,還需要增加集群部署的快取伺服器和檔案伺服器,並將資料庫讀寫分離,以應對使用者量的增加而帶來的高併發訪問量。用負載均衡伺服器分發高併發的網路請求,使用者的訪問被分派到不同的應用伺服器,應用伺服器的負載不再成為瓶頸,使用者量增加時,新增應用伺服器即可,這時雖然有一定的併發能力,但應用仍為單體架構,**的可讀性、持續的交付能力仍舊很差。

面向服務的架構即soa,應用伺服器集群架構能夠有一定的併發能力,但是如果業務持續發展,垂直子系統越來越多,系統與系統之間的呼叫也非常頻繁,這時最好的做法是將系統服務治理化。服務化架構,最常見的就是面向服務soa架構,這種架構是根據不同的職責,劃分不同的模組,不同的模組採用某種通訊協議相互呼叫。目前最常見的soa架構為阿里的dubbo架構,這種架構通過新增應用伺服器、熔斷、負載均衡,具有很強的橫向擴充套件能力和彈性伸縮能力。

微服務架構是對soa架構的乙個擴充套件,顯得更加輕便,不依賴於任何的平台。業務足夠複雜,垂直的業務子系統越來越多,這時可以考慮使用微服務架構。當前,網際網路技術飛速發展,隨著網際網路技術滲透到各行各業,越來越多的使用者參與到網際網路,應用場景也越來越複雜。雲計算、大資料、人工智慧、區塊鏈、物聯網等技術大行其道,對系統的架構提出了越來越高的要求。微服務架構不僅能夠滿足越來越複雜的業務,也能支撐越來越高的併發量,所以微服務架構是網際網路技術推進發展的產物,當乙個公司的業務足夠複雜,參與的使用者(手機端、瀏覽器端、物聯網裝置)足夠多時,可以用微服務架構。

所以,微服務架構是系統架構演進的乙個產物,是在其他架構的不斷演進,不斷改善的產物,它能夠解決高併發問題,系統解耦問題,持續交付的問題,敏捷開發等諸多問題。

非同步社群:作為spring cloud中國社群核心負責人,每天面對最棘手的問題是什麼?可以跟我們說說嗎?

職場小白想進入這個行業,最基本的職業素養是持續的學習能力和對技術的敬畏之心。學習能力是基本要求,因為在it這個領域是乙個日新月異的領域,發展速度非常的快。所以必須必須要持續學習的能力,才能不不落後。另外,就是要有乙個對技術的敬畏之心,程式設計師使用搜尋引擎的技藝特別的高超,複製貼上的技術無人能比,所以程式設計師一旦上路之後,就容易覺得技術就那麼回事,就是不斷的使用別人的建立好的輪子。所以,程式設計師必須都技術有敬畏之心,不斷的探索技術的深度,才能夠使自己不斷的進步,不斷的提公升。我還有乙個建議不知道對不對,就是建議剛畢業的童鞋去北上廣深杭等城市,去最發達城市,最發達的區域,做最前沿的事情,做時代的弄潮兒。

推薦一款叫macdown工具吧,它是寫部落格和文章的神器。之所以推薦這個工具,一是它特別的好用,介面友好,使用起來舒服,二是,推薦它是因為希望讀者有寫部落格和文章的習慣,持續的寫,它真的有可能改變乙個人很多。另外推薦,網易雲筆記,作為文章、部落格的備份。注意,這不是打廣告哦!

當使用一件新技術的時候,一定是要問的問題就是為什麼要使用這項技術,這項技術解決了什麼問題,這項技術有什麼優點,有什麼難點,成本有多高?那我所在的公司的業務的主系統採用dubbo框架,開發人員眾多、開發時間也足夠長,帶來的最直接的問題,就是**的可讀性非常差,大多數**是很難看的懂的,另外方面就是工程過於龐大,持續交付能力差。那我使用微服務這一新技術,就是為了解決這樣的問題。微服務的優點無需多描述,它的難點有三個,一是分布式事務,二是服務的劃分,三是服務的自動化部署。採用spring cloud這一框架構建微服務系統的成本是比較低的,因為大多數j**a程式設計師都會使用spring,所以成本是可以接受的。

非同步社群:我們該如何使用spring cloud來更好地服務於我們的客戶群體呢?

這個問題看起來很複雜,其實很簡單。萬變不離其宗,只需要弄懂spring cloud各大元件,深入理解spring cloud元件的原理,深入理解spring cloud這一套元件所構建系統的原理,就可以了。而《深入理解spring cloud與微服務構建》這本書正好講解了這些內容,所以這本書值得你擁有。

非同步社群:寫部落格和寫書最大的不同是什麼?

首先我來說一下寫部落格和寫書最大相同點,相同點就是盡量讓所寫內容簡單,寫出的東西是對讀者負責,人非聖賢,錯誤在所難免,所以還請各位讀者海涵。寫部落格和寫書最大不同在於,寫部落格可以自由發揮,不在乎一些表述上的細節,可以很輕鬆的寫出一系列的文章;而寫書在於需要承受一些壓力,盡可能的做到精益求精,盡可能的把事情做的完美。當然,寫書的過程中,出版社是可以給予非常多的幫助和建議的,在這裡感謝非同步社群的童鞋們。

非同步社群:2023年微服務領域將有哪些大的發展和挑戰,可以**一下嗎?

2023年,微服務是飛速發展的一年,從我的部落格的訪問量從2023年的四月的幾千到至今的460萬,足見spring cloud技術的火爆程度。目前,國內很多中大型網際網路公司都在使用spring cloud技術。 評估一家企業是否需要上微服務,主要考察這五大關鍵要素:資料量和業務複雜度,團隊規模,應對業務流量變化,是否需要足夠的容錯容災,以及功能重複度和差錯成本。

所以,2023年仍是微服務飛速發展的一年,目前它仍處於發展期。複雜的業務場景、高併發的業務場景,雲技術、大資料等仍是微服務大行其道的幾個關鍵領域,它面臨的挑戰在於各行各業具體怎麼去合理的使用微服務,這需要具體行業的開發人員對業務有足夠深的認識和理解。

非同步社群:您理想中的生活是什麼樣子的?

可以說「錢多活少離家近,老婆孩子熱炕頭嗎?」[捂臉]。

對於我個人言,我需要保證自己能夠持續不斷的學習,做乙個終身學習者、終身學習受益者。同時對這個世界充滿敬畏之心、好奇之心、善良之心,成為能夠讓世界變美好的乙份子。我的理想生活的樣子是乙個普通人生活的樣子,有乙份體面的工作,有乙個不錯的收入,維持自己的一些愛好,與相愛的人悠悠信步,與父母相互理解、保護,與志同道合的朋友共事,與有趣之人共話語,過的是豐富且有質感的生命體驗。

如何運營好乙個社群?

乙個社群有大有小,社群就是將相同興趣愛好或者說價值觀的人群聚集在一起,形成乙個較為緊密的社會關係的集合。要建設社群,先要明確群社群運營的三個方法 有態度的內容 圈層化互動 共享中互利。第一,有態度的內容指內容必須有價值,才能把人聚合在一起的,人不是因為認識在一起,而是因為興趣 因為認同感才在一起的 ...

HandlerThread 建立乙個非同步的後台執行緒

使用handlerthread幾大優點 1 製作乙個後台非同步執行緒,需要的時候就可以丟乙個任務給它,使用比較靈活 2 android系統提供的,使用簡單方便,內部自己封裝了looper handler機制 3 可以代替thread looper handler的寫法 4 可以避免專案中隨處可見的 ...

乙個非同步任務的梳理

開篇語略 下圖來引出話題 場景 個人使用者投遞簡歷,由於繁多的業務邏輯判斷和資料庫的不斷讀取 這裡就不用多說了吧 當個人使用者單個 批量投遞簡歷的時候,點選投遞按鈕之後會很長一段時間等待返回結果。需求 提公升使用者體驗,解決點選投遞按鈕之後的漫長等待,給人一種流暢感,當然不能去掉哪些業務邏輯判斷。設...