歡迎關注我的博客喜歡二福的滄月君的我的博客 所讀文章均來自www.infoq.cnjava
支付場景微服務改造性能優化,程超,閱讀數,,近年來微服務架構成爲分佈式架構技術公司轉型微服務架構,。 微服務框架使用主題微服務生態進行系統性講解結合工做大量實戰案例讀者讀完手應用,支付場景介紹,介紹支付場景微服務實踐微服務體現真諦理解業務深刻理解業務才能結合領域定義微服務介紹互聯網支付,互聯網支付使用場景,。 刷卡支付用戶展現微信錢包刷卡條碼二維碼商戶系統掃描完成支付適用線下收銀場景超市便利店掃線下,掃碼支付商戶系統微信支付協議生成支付二維碼用戶再用微信掃掃完成支付適用pc網站支付實體店單品場景主掃線,公衆支付用戶微信打開商戶h5頁面商戶h5頁面調用微信支付提供jsapi接口調用微信支付模塊完成支付適用公衆朋友圈聊天微信完成支付場景,wap支付公衆基礎開發微信瀏覽器支付方式須要申請支付權限知足微信手機h5頁面進行微信支付需求,。 pc手機網頁實現下單支付俗稱h5支付,app支付商戶移動端應用app集成開放sdk調用微信支付模塊完成支付,網關支付用戶須要開通網上銀行完成支付對象銀行借記卡信用卡銀行系統企業我的提供安全支付服務,支付支付指用戶購買商品時需開通網銀需提供銀行卡卡號戶名手機號碼信息銀行驗證手機號碼正確性支付發送手機動態口令用戶手機號用戶輸入手機動態口令完成支付,。 支付場景實現微服務最終目標可以單體支付系統業務進行解耦利用微服務生態實施支付系統可以保證系統可靠性併發能力建設運維體系支撐日益微服務系統,支付業務建模服務劃分,介紹領域建模相關知識知道關鍵詞領域子域限界上下文,讀者領域子域概念理解限界上下文理解關鍵詞作介紹,。 限界上下文理解系統應用服務組件存在領域,舉生活例子上班會坐地鐵出發單位須要換乘地鐵號線號線號線,地鐵理解限界上下文號線走到號線過程領域事件到達目的地換乘地鐵過程叫做上下文切換,回到支付業務業務領域相關知識劃分服務,。 業務架構示例講解圖所示,工做遇到業務場景時須要識別出一共領域領域劃分子域具備領域子域限界上下文進行歸類,識別出領域須要設計人員業務大量調研深刻了解才能識別領域,圖看到業務架構圖業務核心領域支撐子域,。 重點介紹部分領域領域包括子域,對接業務業務系統對接支付系統包括電商業務互金業務一鍵支付限界上下文,統一接入網關層功能請求入口進行加解密分流限流准入控制,圖,。 產品服務,收銀臺包括限界上下文pc收銀臺手機手銀臺,商戶包括限界上下文分帳鑑權擔保代扣,我的包括限界上下文充值提現,。 業務服務包括限界上下文交易服務支付服務退款服務計費服務風控服務,基礎服務,網關包括限界上下文支付網關鑑權支付路由,資金處理平臺包括限界上下文對帳清結算備付金會計,。 支付場景服務架構詳解分析,使用微服務核心業務沒有業務進行支撐微服務業務微服務相結合思想沒有微服務架構體系沒法服務落地重點介紹作好微服務須要完善技術架構,實際工做案例出發點分析中小公司落地微服務,圖所示部分微服務業務架構部分微服務基礎技術架構,。 圖,業務架構分析,介紹業務劃分領域看到業務架構部分完成領域劃分重點服務,服務核心域包含子域子域功能進行劃分支付中心子域包括支付服務路由系統銀行渠道限界上下文限界上下文服務系統,。 結合康威定律綜合考量團隊規模公司創業初期研發人員支付中心子域定義限界上下文包括獨立模塊支付服務模塊路由模塊銀行渠道模塊人員增長規模項目組修改支付中心限界上下文會致使影響須要支付中心上升業務領域獨立模塊拆分爲獨立系統項目組維護部署圖所示,圖,看出未拆分結構交易服務想要調用支付模塊統一調用支付系統才能調用支付模塊拆分結構交易服務調用支付服務系統路由系統銀行渠道系統任意業務流來說確定調用支付服務系統,數據業務進行數據庫拆分拆分原則應用拆分圖所示,。 圖,看到業務應用數據庫三者一體物理業務隔離應用服務數據庫不能訪問只能服務調用進行訪問,技術平臺詳解,支付業務微服務理念作合理劃分業務架構各層次起來微服務架構建設業務劃分技術平臺和運維體系支撐圖部分分爲統一平臺業務微服務基礎中間件自動化運維層,。 統一業務平臺,通用平臺業務系統包括數據分析服務商戶運營服務運維管控服務進件報備服務沒法業務歸類業務系統只能支撐域存在放到統一業務平臺供業務線使用,微服務基礎中間件,微服務生態支撐微服務體系基礎中間件進行輔助才能使微服務運行,。 筆者積累實踐經驗圖組件進行技術選型方面介紹圖組件章節進行介紹作說明,微服務框架,目前市面上流行springbootspringcloud微服務框架框架微服務集大成者涵蓋範圍廣支持動態擴展插件,公司管理者不能出技術公司核心業務技術進行更替生產上所帶來風險會,。 合理作法公司部門成立沒有作技術框架選型想公司推廣微服務嘗試使用springbootspringcloud框架節省出公司部門時間攻關業務須要精力放在進行微服務建設上來,目前互聯網公司生產過程使用微服務框架springbootspringcloud會使用dubbogrpcthriftrpc框架進行服務治理公司研發出微服務組件apm監控系統分庫分表組件統一配置中心統一任務,狀況公司自建比較完善基礎架構平臺沒總體更換springbootspringcloud代價會公司業務形成後果,公司發展策略客戶用戶優先公司技術須要嘗試公司邊緣業務使用達到承認逐步推廣循環漸進,。 筆者進行微服務改造過程原有dubbo作改進duboospringboot相結合造成服務治理框架,消息服務,談技術選型不能脫離業務空談選型消息中間件優勢場景擇優選擇筆者結合使用類型mq說選型使用場景,rabbitmq使用erlang編寫開源消息隊列支持協議amqpxmppsmtpstomp正是如此使變得適合企業級開發,。 rabbitmqamqp協議領先實現實現代理broker架構意味着消息發送到客戶端中央節點排隊,路由routing負載loadbalance數據化支持,集羣使用分區配置會腦裂現象出現支付行業rabbitmq,kafkalinkedin開發開源分佈式mq系統如今apache孵化項目高性能跨語言分佈式publishsubscribe消息隊列系統性能效率行業領先版本大量測試主備partition信息機制問題會形成數據丟失問題應用場景大數據監控領域,。 目前市面上支付公司使用rabbitmq消息中間件具備支付行業丟消息mq特色,缺點activemq使用java實現定製化想知道消息隊列剩餘消息沒有消費通道獲取消息共有條是否手動自動觸發重試監控統計信息目前作完善只能知足基本功能要求,接下來講消息隊列技術領域使用場景,作延遲設計,。 數據須要使用須要使用延遲隊列設計rabbitmq利用死信隊列實現,處理,應用多任務執行場景,應用解耦,。 微服務架構無狀態服務考慮使用mq作消息通知轉換,分佈式事務一致性,使用消息中間件隊列作分佈式事務消息補償實現一致性,流量削峯,。 秒殺團搶活動使用隊列控制秒殺人數商品緩解短期壓垮應用系統問題,日誌處理,作監控日誌採集隊列作消息傳輸暫存,統一配置中心,。 目前市面開源統一配置中心組件可供使用攜程開源apollodiamond百度disconf組件各有特色使用過程須要實際狀況綜合考量,筆者公司目前採用微服務架構springbootdubbo方式apollo架構使用springbootspringcloud方式架構方式無縫對接apollo解決同城雙活方面問題角度適合目前場景,銀行通道監控切換,銀行提供業務產品b2cb2b大額支付銀企直代收代付支付產品服務無統一接口使用產品服務支付機構只能一家家銀行進行接入對接銀行通道過多時通道穩定性支付工做重中之重涉及用戶支付是否關鍵支付機構支付成功率指標針對性進行銀行通道穩定性監控故障切換系統建設圖所示,。 圖,圖通道監控切換系統總體架構相應組件應用增長agent監控代理攔截通道請求狀況collector進行數據彙總通道評分數據發送給redis集羣支付路由系統進行通道選取會redis集羣獲取通道評分通道相應配置項進行綜合評定選取通道採集監控數據會存放influxdbgrafana進行預警展現通道不可用則自動通道關閉通知研發部門進行問題排查,代碼層面提高微服務架構性能,架構變遷演進方面文章架構方面介紹代碼級別性能優化介紹比如蓋樓樓房基礎架子搭蓋房工人不夠專業須要注意地方往裏面添磚加瓦出問題後果房子漏雨裂縫問題出現樓房塌陷樓房變成危樓,。 判斷項目是否具備設計須要代碼可用架構方面衡量圖所示,圖,代碼看程序結構是否合理程序是否存在性能問題依賴組件是否使用,可用架構看項目可用性擴展可以支持併發能力,。 說項目設計部分組成缺一不可,代碼設計角度看,實戰過程公司研發項目場景支付場景出發點代碼設計角度總結問題,數據庫發生死鎖現象,。 mysql數據庫例select,update語句手工加鎖鎖語句行級鎖,狀況使用select語句不會數據庫數據加鎖使用update語句程序層面實現數據加鎖保護update語句使用不當很是容易形成數據庫死鎖現象發生表所示,表,。 事例會話會拋出死鎖死鎖緣由會話等待出現問題項目大量事務update語句使用不當形成,mysql數據庫鎖基本鎖,recordlock記錄鎖,gaplock間隙鎖鎖定範圍包括記錄,。 gaplockrecordlockkeylock鎖定範圍鎖定記錄,update語句gaplockkeylock鎖相混合使用沒有注意用法很是容易出現死鎖狀況,數據庫事務佔用時間過長,看僞代碼,。 複製代碼,publicvoidtest,transaction事務開啓,,。 daoinsert插入記錄,httpclientqueryremoteresult請求訪問,daoupdate記錄,transactioncommit事務提交,。 catchexception,transactionrollfor事務回滾,,,。 項目相似程序相似httpclient可能形成長時間操做混事務代碼會形成事務執行時間超長會下降併發能力,使用事務遵循原則出事務代碼,僞代碼httpclient拆分出來避免事務性代碼混,濫用線程池形成堆棧溢出,。 javaexecutors提供線程可供使用,newcachedthreadpool建立緩存線程池線程池會實際須要建立線程空閒線程空閒線程會利用,newfixedthreadpool建立定長線程池控制線程併發數超出線程會隊列等待,newscheduledthreadpool建立定長線程池支持週期性任務執行,。 newsinglethreadexecutor建立化線程池會工做線程執行任務保證任務指定順序fifolifo執行,jdk提供線程池功能上替作封裝節省參數設置過程,使用不當形成堆棧溢出狀況示例代碼以下所示,複製代碼,。 privatestaticfinalexecutorserviceexecutorserviceexecutorsnewcachedthreadpool,,執行任務,paramtask,。 ,publicstaticvoidasynshorttaskrunnabletask,executorservicesubmittask,taskrun,。 ,commonutilsasynshorttasknewrunnable,override,publicvoidrun,。 stringsmssrgetsmscontent,smssmsreplaceallfinalcodeaesencrypttobase64finalcodeconstantutilsgetdbaeskey,srsetsmscontentsms,smsmanageserviceaddsmsrecordsr,。 ,,代碼場景請求過來會建立線程dump日誌導出進行分析發現項目啓動線程線程顯示狀態資源耗盡,查看代碼會發現代碼使用線程池使用代碼申請,。 複製代碼,privatestaticfinalexecutorserviceexecutorserviceexecutorsnewcachedthreadpool,併發狀況無限制申請線程資源會形成性能降低採用方式產生線程,答案integer最大值,。 查看以下源碼,複製代碼,publicstaticexecutorservicenewcachedthreadpool,returnnewthreadpoolexecutorintegermax,。 timeunitseconds,newsynchronousqueuerunnable,,使用newcachedthreadpool可能帶來棧溢出性能降低使用newfixedthreadpool設置長度是否是解決問題,。 使用方式代碼所示設置線程,複製代碼,privatestaticfinalexecutorserviceexecutorserviceexecutorsnewfixedthreadpool,修改完成併發量上升tps併發量項目gc垃圾回收能力降低分析緣由executorsnewfixedthreadpool解決產生無限線程問題採用newfixedthreadpool方式會形成大量對象堆積隊列沒法消費源碼以下,。 複製代碼,publicstaticexecutorservicenewfixedthreadpoolintnthreadsthreadfactorythreadfactory,returnnewthreadpoolexecutornthreadsnthreads,timeunitmilliseconds,。 newlinkedblockingqueuerunnable,threadfactory,,看到採用無界隊列也就是說隊列無限存放執行線程形成大量對象沒法釋放回收,。 jdk提供原生線程池threadpoolexecutor線程池基本上控制權力交給使用者使用者設置線程任務隊列拒絕策略線程空閒時間使用線程池創建精準把握前提才能使用,配置信息數據庫讀取,業務場景項目項目會遇到問題項目配置信息項目properties文件存放配置信息存放數據庫形成問題,使用properties文件修改文件須要環境修改服務器數量狀況很是容易出錯修改錯會形成生產事故,。 採集數據庫統一存放配置信息併發量狀況請求讀取數據庫配置會形成大量操做會數據庫形成壓力項目會產生性能影響,合理解決方案使用統一配置中心利用緩存配置信息進行統一管理實現方案參考深刻分佈式緩存,庫查詢數據所有取出,代碼會看到以下sql語句,。 複製代碼,selectorderstatusinit,sql語法看不出問題放在環境會產生效果數據庫狀態init數據條條sql會查詢出來返回調用端狀況項目沒有影響,數據庫狀態init數據條sql語句執行記錄所有返回調用端作會數據庫查詢形成壓力會調用內存形成影響帶來用戶體驗,。 合理解決方案使用limit關鍵字控制返回記錄數量,業務代碼研發考慮冪操做,冪用戶操做發起請求請求產生不會點擊產生,支付場景例用戶購物選擇完商品進行支付網絡緣由銀行卡錢扣網站支付系統返回支付失敗用戶訂單發起支付請求會進行扣款返回用戶查詢餘額返發現扣錢流水記錄變成場景冪,。 實際工做冪訂單進行防重防重措施記錄加鎖方式進行,問題沒有使用鎖方式進行防重數據庫形成壓力項目擴展性擴展瓶頸採用方法解決問題,使用組件作控制zookeeperredis實現分佈式鎖,使用主鍵防重法方法入口處使用防重表可以攔截訂單插入時數據庫會報錯程序返回,。 使用版本號version機制防重,注意方式設置過時時間鎖定資源可以釋放資源競爭,使用緩存不合理存在驚效應緩存穿透狀況,緩存穿透,。 項目使用緩存檢查緩存數據是否存在存在返回緩存內容存在查詢數據庫進行緩存查詢返回,查詢數據緩存存在會形成請求查詢db緩存失去意義流量可能db掛掉緩存穿透圖所示,圖,黑客利用存在緩存key攻擊應用會數據庫形成壓力會影響線業務進行,。 作法存在key預先設定值keynull,返回null值應用認爲存在key應用決定繼續等待訪問放棄操做,繼續等待訪問時間輪詢請求key取到值null認爲key有值避免透傳到數據庫大量相似請求擋在緩存,緩存併發,。 看完緩存穿透方案可能會讀者提出疑問使用緩存緩存沒有須要數據處理,場景客戶端緩存key讀取數據讀到數據流程結束沒有讀數據可能會併發沒有讀數據使用緩存系統setnx方法設置值方法相似加鎖沒有設置請求sleep一段時間設置請求讀取數據庫獲取值獲取緩存流程結束sleep請求喚醒緩存讀取數據流程結束圖所示,圖,流程漏洞數據庫沒有須要數據處理,。 處理請求會形成死循環緩存數據庫查詢結合緩存穿透思路請求null進行處理直到後臺系統數據庫插入數據null數據緩存,緩存過時致使驚效應,使用緩存組件會使用緩存過時功能釋放使用頻率緩存節省出緩存空間,緩存設置過時時間會致使一段時間內生成大量緩存一段時間大量緩存大量請求穿透數據庫致使端數據庫壓力陡增緩存過時致使效應,。 合理解決方案緩存key設置過時時間加值避免緩存,一致性,緩存一致性指當後程序數據庫數據完成緩存失敗後續利用補償機制緩存進行達到緩存數據數據庫數據狀態,方法mqbinlog方式,。 mq緩存補償方案,方案緩存組件出現故障網絡出現抖動程序mq補償緩衝隊列重試方式機制緩存圖所示,圖,說明,。 應用數據庫緩存,數據庫緩存,數據庫失敗更新過程失敗,判斷緩存是否返回,。 緩存沒有數據發到mq,應用監控mq通道收到消息繼續redis,問題,redis失敗數據發到mq應用重啓mq沒有須要數據redis數據沒有設置過時時間在讀寫少場景只能人工介入緩存,。 binlog方式實現統一緩存方案,方案應用研發人員來說須要研發人員判斷據庫redis是否作考慮使用binlog緩存方案可以減輕業務研發人員工做量有利於造成統一技術方案圖所示,圖,說明,。 應用寫數據數據庫,數據庫binlog日誌,利用canal中間件讀取binlog日誌,canal藉助於限流組件頻率數據發到mq,。 應用監控mq通道mq數據redis緩存,看到方案研發人員輕量不用關心緩存層面方案實現起來比較複雜造成統一解決方案,問題,方案弊端須要提早約定緩存數據結構使用者採用數據結構存放數據方案沒法作成通用方式增長方案複雜度,。 程序打印大量無用日誌引發性能問題,僞代碼,複製代碼,quatadtoquatadtonull,。 ,quatadtogetrisklimitpayrequestgetqueryriskinfopayrequestgetmerchantnopayrequestgetindustrycatalogcardbinresdtogetcardtypecardbinresdtogetbankcodebizname,catchexception,loggerinfo獲取風控限額,。 ,代碼發現須要注意,日誌打印loggererrorloggerwarn方式打印出來,日誌打印格式系統來源錯誤描述關鍵信息日誌信息打印出能看懂信息來龍去脈,。 方法入參出參考慮打印出來,輸入錯誤信息exceptiongetmessage方式打印出來,合理日誌打印參考以下格式,複製代碼,。 loggerwarninnersysexceptiontypedescriptionmethodname,errorcodeerrorcode,errormsgerrormsg,loggerinfoinnersys入參methodname,。 loginfoencryptutilgetlogstringarguments,loggerinfoinnersys返回methodnameloginfoencryptutilgetlogstringresult,程序大量打印日誌可以打印有用信息幫助排查問題日誌量影響磁盤會形成線程阻塞程序性能形成影響,使用log4j1設置conversionpattern使用以下格式,。 複製代碼,,項目進行壓測發現大量鎖等待圖所示,圖,。 log4j進行源碼分析發現orgapachelog4jspilocationinfo以下代碼,複製代碼,string,protectmultipleaccesssw,。 synchronizedsw,printstacktracepw,swtostring,swgetbuffersetlength,。 ,systemprintln,intibeginiend,看出方法中用synchronized鎖打印堆棧獲取行號conversionpattern格式修改線程大量阻塞問題解決極大地提升程序併發能力,。 索引優化,組合索引原則偏左原則使用須要加註意,須要添加索引數量添加考慮彙集索引輔助索引性能區別,索引不會包含null值列,。 列中包含null值不會包含索引複合索引含有null值複合索引,設計數據庫時字段默認值null,mysql索引排序,mysql查詢使用索引子句使用索引order列不會使用索引,。 數據庫默認排序符合要求狀況使用排序操做,包含列排序須要列建立複合索引,使用索引注意事項,操做符應用索引,。 等於,,,開頭,。 操做符不能應用索引,,開頭,總體架構角度看,。 採用單體集羣部署模式,團隊項目發展規模須要業務團隊人數進行拆分,使用單體項目作總體部署項目影響加上團隊人員達到規模沒有辦法進行項目維護升級,採用單機房部署方式,。 如今互聯網項目穩定性要求採用單機房部署風險性黑客惡意攻擊機房斷電網線損壞不可預知故障發生時單機房沒法提供穩定性保障須要互聯網企業建設同城雙活活確保機房穩定性,採用nginxhessian方式實現服務化,hessianremotinghttp框架採用binaryrpc協議,易用性特色直到如今企業使用hessian遠程通訊工具hessian具有微服務特色遠程通訊工具使用hessian偏重於數據打包傳輸解包須要藉助nginx作服務路由負載重試須要nginx進行配置不能動態服務進行加載卸載業務請求量狀況hessian適合微服務服務治理框架須要springclouddubbo,。 項目拆分tomcat共用應用見圖,圖,注tomcat部署應用war包彼此之間牽制併發量狀況性能下降很是明顯圖所示,圖,。 注拆分狀況認爲項目不會存在狀況事實上存在,解決方法應用war部署tomcat應用程序不會存在資源鏈接數競爭狀況性能併發能力提高,無服務降級策略,舉例子說明服務降級出門旅遊箱子想帶東西箱子塞滿發現東西沒有放只能東西所有出來作對比分類找到要帶是非必需箱子放滿必需品防止狀況再次發生下次旅遊提早準備箱子,。 服務降級相似思路資源狀況捨棄東西保證事情可以進行下去,服務降級應用場景服務架構總體負載超出預設上限閾值流量預計超過預設閾值時保證服務運行服務延遲使用,支付運營報表數據量查詢,回顧微服務數據去中心化核心要點,。 微服務數據庫,微服務只能訪問數據庫不能訪問服務數據庫,業務場景請求操做數據庫服務數據庫進行添加刪除修改操做,狀況建議訪問服務數據庫調用服務提供接口完成操做,。 數據去中心化下降微服務耦合度,核心要點看到微服務數據描述去中心化也就是說業務屬性獨立拆分數據庫使業務領域數據庫關係一一對應,支付業務場景例單體支付項目進行微服務改造業務架構圖所示,圖,。 看到單體支付項目進行微服務改造增長服務項目服務項目理解限界上下文服務項目對應數據庫數據庫適應單體支付系統大庫拆分紅獨立數據庫,問題後臺運營統計噩夢運營報表會跨業務進行統計彙總原有運營系統作報表會運營人員增長工做量須要逐庫進行統計進行彙總,凡事兩面性微服務帶來去中心化高度解耦的會帶來報表數據歷史數據沒法統一彙總查詢問題須要服務數據庫抽取數據數據平臺作數據集中化圖所示,圖,。 數據平臺會服務讀庫配合使用數據平臺存放每每大而全數據,大數據平臺理解數據倉庫存放數據研發人員數據量業務狀況合理利用服務讀庫減輕查詢數據平臺壓力,用戶查詢服務訂單狀況讀庫進行查詢查詢訂單詳細信息充分發揮讀庫做用,用戶查詢數據數據量緣由歷史數據遷移走大數據平臺進行查詢,。 運維手動打包上線,微服務架構實施須要強有力運維作支撐至關於寶馬車表面看上去裝發動機,須要devops全公司推廣自動化運維和部署成爲微服務發動機,微服務架構故障分析技巧,。 開發者自測利器hprof命令,示例程序以下所示,注測試代碼sleep方法進行延時,分析程序代碼出現延時故障,。 程序加上以下運行參數,運行程序發現工程目錄文本文件javahproftxt打開文件內容以下所示,注內容看到方法執行時間耗費cpu時間一目瞭然定位問題,hprof獨立監控工具javaagent工具監控java應用程序運行cpu信息堆內容使用javaagentlibhprof命令查看hprof使用文檔,。 例子統計cpu時間統計內存佔用dump信息,agentlibhprofheapformatfiletesthprof,junit自測代碼結合hprof解決業務bug可以程度解決發現性能問題實用,性能排查工具pidstat,。 示例代碼以下所示,示例代碼運行起來命令行輸入,複製代碼,pidstat,。 ,表明cpu使用率監控,參數表明採樣一共,監控級別細化線程,。 ,圖所示,圖,注tid線程idusr表示用戶線程使用率圖看到線程cpu佔用率,。 命令行輸入命令,複製代碼,jstacktmptestlogtxt,查看testlogtxt顯示以下所示內容,。 注關注日誌文件nid字對應說tidnidtid進製表示十進制轉換成十六進制日誌進行搜索看到以下內容,推斷出性能瓶頸問題,內容來自做者圖書做品可用伸縮微服務架構dubbospringcloudservicemesh點擊購買,做者簡介,。 程超網名程故事現任公司架構師超過java研發經驗技術管理架構經驗熟悉支付電商領域擅長微服務生態建設和運維監控dubbospringcloudgrpc微服務框架深刻研究幫助公司進行服務建設改造,做品深刻分佈式緩存雲mvp雲棲社區專家codingfly社區特聘技術專家csdn博主專家,梁桂釗現任互聯網公司開發工程師參與內容分發k12教育淘系電商項目,目前專一零售電商服務業務摸索電商服務創新實踐,。 具備java核心技術微服務分佈式併發領域實戰經驗技術方向開源框架濃厚興趣,公衆服務端思惟做者,秦金衛kimmking現任公司技術總監apachedubboppmc架構師商業銀行北京研發中心負責人,關注互聯網電商金融支付區塊領域研發管理架構經驗中間件soa微服務開源技術熱衷活躍dubbofastjsonmuleactivemq開源社區,。 我的博客httpkimmkinggithubio,方誌斌現任聯網公司研發工程師,目前專一聯網平臺架構設計開發工做,微服務分佈式集羣研究實戰經驗,。 java領域開源框架興趣喜歡深刻分析總結框架源碼,springforall社區核心成員組織社區技術專題問答活動,張逸架構編碼實踐者微服務架構設計者領域驅動設計佈道數據平臺架構師,著譯做包括軟件設計模式恰如其分軟件架構人件,。 我的微信公衆我的博客httpzhangyixyz,杜琪網名阿杜現任螞蟻金服研發工程師畢業南開大學計算機系統結構碩士,畢業接觸分佈式業務系統開發贊負責用戶中心基礎服務分佈式業務系統穩定性可靠性經驗,喜歡研究底層技術喜歡研究疑難技術問題jvm內存問題排查gc調優,。 輸出分享習慣公衆javaadu維護者,殷琦網名滌生現任美團點評技術專家畢業東華大學軟件工程碩士,加入美團點評基礎架構部接觸微服務架構從事服務框架研發工做微服務架構發展演進認識,我的喜歡研究分享技術時刻關注實踐微服務架構技術servicemeshserverless,。