javascript
微服务 前台调用后台的慢的原因_20年IT农民工分享SpringCloud微服务架构实战文档...
前言
越來(lái)越多的企業(yè)使用 SpringCloud 實(shí)現(xiàn)微服務(wù)架構(gòu)設(shè)計(jì)。我們可以看到這樣一種現(xiàn)象:不管是全新開(kāi)發(fā),還是系統(tǒng)重構(gòu),大家似乎都在爭(zhēng)先恐后地使用微服務(wù)。對(duì)于一個(gè)Java開(kāi)發(fā)人員來(lái)說(shuō),學(xué)習(xí)微服務(wù)相關(guān)知識(shí)大有裨益。
本文將從架構(gòu)設(shè)計(jì)、程序開(kāi)發(fā)和運(yùn)維部署三個(gè)層面,深入淺出地介紹如何開(kāi)發(fā)一個(gè)大型電商平臺(tái),希望能夠讓大家學(xué)到自己想要學(xué)習(xí)的知識(shí),不斷提升自己的技術(shù)深度和廣度,也希望能夠得到大家的喜歡!!
目錄
主要內(nèi)容
第1章微服務(wù)架構(gòu)與Spring Cloud;本章介紹了微服務(wù)架構(gòu)的來(lái)龍去脈,說(shuō)明了基于微服務(wù)的設(shè)計(jì)和開(kāi)發(fā),已經(jīng)得到越來(lái)越多的企業(yè)和個(gè)人的認(rèn)可,而以微服務(wù)架構(gòu)為主流的技術(shù)也已迅速發(fā)展起來(lái)。
SpringCloud ,因?yàn)槠湄S富的工具套件、全面的設(shè)計(jì),以及很好的兼容性,使它成為眾多開(kāi)發(fā)人員喜歡和熱愛(ài)的一種開(kāi)發(fā)工具,所以也將在更大的范圍中流行起來(lái)。
所以,作為一個(gè) Java 開(kāi)發(fā)者,學(xué)習(xí)和掌握 Spring Cloud 的開(kāi)發(fā)方法,不僅僅是一種“時(shí)尚”,更有可能成為一項(xiàng)優(yōu)秀的看家本領(lǐng)。
朋友們,讓我們一起努力吧,一起來(lái)學(xué)習(xí) Spring Cloud !
第2章高并發(fā)微服務(wù)架構(gòu)設(shè)計(jì);微服務(wù)架構(gòu)設(shè)計(jì)風(fēng)格本身就是一種高并發(fā)的機(jī)制。依靠云服務(wù)環(huán)境,我們可以把微服務(wù)使用的基礎(chǔ)資源,通過(guò)自動(dòng)化基礎(chǔ)設(shè)施建設(shè),提供成一種可伸縮、高并發(fā)、高可用的環(huán)境。同時(shí),通過(guò)使用 Spring Cloud 工具套件和第三方庫(kù),充分保證微服務(wù)的高度可擴(kuò)展性。不管是哪一種架構(gòu)設(shè)計(jì),系統(tǒng)的穩(wěn)定性、健壯性和可靠性都缺一不可。
第3章大型電商平臺(tái)設(shè)計(jì)實(shí)例;本章使用微服務(wù)架構(gòu)設(shè)計(jì)的方法,構(gòu)建了一個(gè)大型的電商服務(wù)應(yīng)用平臺(tái)。這個(gè)平臺(tái)大體上由提供接口服務(wù)的 RESTAPI 微服務(wù)和提供人機(jī)交互操作界面的 WebUI 微服務(wù)兩部分組成,并在此基礎(chǔ)上,構(gòu)建了商家管理后臺(tái)、運(yùn)營(yíng)商管理后臺(tái)和移動(dòng)商城前臺(tái)。
在后續(xù)章節(jié)中,我們將詳細(xì)介紹各個(gè)實(shí)例項(xiàng)目的開(kāi)發(fā)方法,以及相關(guān)微服務(wù)應(yīng)用的使用演示。
第4章開(kāi)發(fā)環(huán)境準(zhǔn)備;本章我們?yōu)檫M(jìn)行 Spring Cloud 的開(kāi)發(fā)做了一些開(kāi)發(fā)環(huán)境的準(zhǔn)備工作和說(shuō)明,并且使用 IDEA開(kāi)發(fā)工具創(chuàng)建了第 pring Cloud 項(xiàng)目 。雖然這個(gè)項(xiàng)目很簡(jiǎn)單,但作為 個(gè)入門(mén)的指引己經(jīng)足夠了 在后續(xù)的章節(jié)中,我 將在這個(gè)項(xiàng)目的 礎(chǔ)上, 添加更加復(fù)雜的設(shè)計(jì)和開(kāi)發(fā)。
第5章微服務(wù)治理;本章首先講述了注冊(cè)中心的創(chuàng)建,以及做服務(wù)的注冊(cè)與配置。然后,以注冊(cè)中 為基礎(chǔ),通過(guò)健康監(jiān)控、服務(wù)告警、斷路器儀表盤(pán)和鏈路跟蹤等功能的實(shí)施,說(shuō)明如何對(duì)微服務(wù)進(jìn)行有效監(jiān)控。同時(shí),結(jié)合日志分析平臺(tái)的使用,對(duì)所有運(yùn)行的微服務(wù)應(yīng)用進(jìn)行全面而有效的泊理。
后續(xù)的微服務(wù)的開(kāi)發(fā)和實(shí)施將在這個(gè)微服務(wù)治理環(huán)境的基礎(chǔ)上進(jìn)行,而涉及有關(guān)服務(wù)治理的引用和配置將不再做特別說(shuō)明
第6章類(lèi)目管理微服務(wù)開(kāi)發(fā);本章介紹了電商平臺(tái)的類(lèi)目管理接口和 Web 類(lèi)目管理后臺(tái)兩個(gè)微服務(wù)的開(kāi)發(fā)實(shí)例,通過(guò)這個(gè)項(xiàng)目的開(kāi)發(fā)和演示,我們清楚了微服務(wù)之間快速通信和相互調(diào)用的方法。在類(lèi)目管理接口開(kāi)發(fā)中,我們通過(guò) Spring Data JPA 開(kāi)發(fā)工具,了解了 DDD 開(kāi)發(fā)方法在 Spring 開(kāi)發(fā)框架中的工作原理和實(shí)現(xiàn)方法。通過(guò)類(lèi)目管理接口的實(shí)現(xiàn),我們將有狀態(tài)的數(shù)據(jù)訪問(wèn)行為,轉(zhuǎn)變成沒(méi)有狀態(tài)的接口服務(wù)。
下一章,我們將介紹另一種數(shù)據(jù)庫(kù)開(kāi)發(fā)工具 MyBa巾,體驗(yàn)不同的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具在 Spring項(xiàng)目工程中的應(yīng)用方法。
第7章庫(kù)存管理與分布式文件系統(tǒng);本章介紹了庫(kù)存管理的微服務(wù)接口和一個(gè)相關(guān)的 Web 應(yīng)用微服務(wù)的開(kāi)發(fā)。在這個(gè)項(xiàng)目的開(kāi)發(fā)過(guò)程中,我們使用了半自動(dòng)的數(shù)據(jù)庫(kù)開(kāi)發(fā)框架 MyBatis ,體驗(yàn)了與使用 JPA 不同的開(kāi)發(fā)實(shí)踐。在生產(chǎn)應(yīng)用中,讀者可以根據(jù)實(shí)際情況選擇使用。
同時(shí),本章的 Web 應(yīng)用開(kāi)發(fā)也演示了使用分布式文件系統(tǒng)的方法,不管是使用 DFS ,還是使用 oss ,其設(shè)計(jì)思路和實(shí)現(xiàn)方法基本一致,所以我們只需掌握一種開(kāi)發(fā)方法,就能夠在實(shí)際應(yīng)用中應(yīng)用自如。
第8章海量訂單系統(tǒng)微服務(wù)開(kāi)發(fā);本章我們使用 MongoDB 開(kāi)發(fā)了一個(gè)可以支持海量數(shù)據(jù)的訂單系統(tǒng),并且使用 Spring5的反應(yīng)式編程設(shè)計(jì),實(shí)現(xiàn)了支持非阻塞異步調(diào)用的高并發(fā)微服務(wù)訂單接口,所以這是一個(gè)高性能的訂單微服務(wù)應(yīng)用系統(tǒng)。有關(guān)反應(yīng)式編程設(shè)計(jì),由于其異步調(diào)用的特性,使得其只能支持無(wú)事務(wù)管理的數(shù)據(jù)庫(kù)設(shè)計(jì)。而對(duì)于微服務(wù)設(shè)計(jì)來(lái)說(shuō),其本身就是一種分布式的應(yīng)用,所以有關(guān)事務(wù)管理的設(shè)計(jì),只能使用分布式的事務(wù)管理來(lái)實(shí)現(xiàn)。在本章訂單狀態(tài)變更所引起的事務(wù)管理實(shí)例中,我們使用消息隊(duì)列實(shí)現(xiàn)了分布式事務(wù)管理中數(shù)據(jù)最終一致性的設(shè)計(jì)。
第9章移動(dòng)商城的設(shè)計(jì)和開(kāi)發(fā);本章使用前面章節(jié)設(shè)計(jì)的各種接口服務(wù),設(shè)計(jì)并開(kāi)發(fā)了 個(gè)移動(dòng)端的商城。在這個(gè)設(shè)計(jì)中,演示了微服務(wù)接口的調(diào)用方法,同時(shí),針對(duì)移動(dòng)設(shè)備進(jìn)行了 HS 的單頁(yè)設(shè)計(jì)實(shí)踐。在整個(gè)開(kāi)發(fā)過(guò)程中,讀者可以更加深刻地體會(huì)到微服務(wù)之間的接口調(diào)用是非常方便的 而使用 pringCloud 工具套件進(jìn)行移動(dòng)端應(yīng)用的開(kāi)發(fā),同樣是輕 級(jí)且令人感到愉快的。
第10章商家管理后臺(tái)與SSO設(shè)計(jì);本章通過(guò)商家權(quán)限體系和 sso 設(shè)計(jì),構(gòu)造了一個(gè)安全可靠的商家管理后臺(tái)。在商家管理后臺(tái)中,商家用戶通過(guò)統(tǒng)一權(quán)限管理,可以使用在分布式環(huán)境中任何其他已經(jīng)接入 sso 的微服務(wù)應(yīng)用。商家管理后臺(tái)設(shè)計(jì)以一種更加完善的方式,將各個(gè)分散開(kāi)發(fā)的微服務(wù)應(yīng)用組合成一個(gè)功能豐富的整體,充分體現(xiàn)了微服務(wù)架構(gòu)設(shè)計(jì)的強(qiáng)大優(yōu)勢(shì)。
其中,商家權(quán)限體系設(shè)計(jì),以訪問(wèn)資源為基礎(chǔ)建立了三級(jí)菜單體系,并通過(guò)角色與資源的關(guān)系,將用戶權(quán)限與菜單組成一個(gè)有機(jī)的整體。
商家的角色及其菜單的管理配置,必須由平臺(tái)運(yùn)營(yíng)方進(jìn)行操作。在 11 章的平臺(tái)管理后臺(tái)的開(kāi)發(fā)中,將實(shí)現(xiàn)管理商家的權(quán)限配置的功能。
第11章平臺(tái)管理后臺(tái)與商家菜單資源管理;本章主要實(shí)現(xiàn)了平臺(tái)管理后臺(tái)的訪問(wèn)控制設(shè)計(jì)、商家注冊(cè)及其權(quán)限,以及菜單的配置和管理等方面的功能。其中,商家注冊(cè)及其權(quán)限、菜單的配置和管理,都是通過(guò)調(diào)用商家服務(wù)的ST API 微服務(wù)實(shí)現(xiàn)的。實(shí)際上,在我們的微服務(wù)架構(gòu)設(shè)計(jì)中, Web 微服務(wù)的開(kāi)發(fā)都是通過(guò)調(diào)用 RestAPI 微服務(wù)實(shí)現(xiàn)的,當(dāng)需要在平臺(tái)管理后臺(tái)中對(duì)電商平臺(tái)的各個(gè)服務(wù)功能進(jìn)行管理時(shí),都可以通過(guò)調(diào)用各種微服務(wù)接口來(lái)實(shí)現(xiàn)。
有關(guān)微服務(wù)的開(kāi)發(fā)至此告一段落,從第 12 章開(kāi)始,我們將從運(yùn)維的角度探討微服務(wù)的部署及微服務(wù)運(yùn)行環(huán)境的構(gòu)建等方面的內(nèi)容。
第12章云服務(wù)環(huán)境與Docker部署工具;本章介紹了微服務(wù)應(yīng)用發(fā)布環(huán)境的組建,以及基于 Docker 管理工具的應(yīng)用部署的管理方法。從云服務(wù)環(huán)境的組建和應(yīng)用部署的方法來(lái)看,我們可以有很多選擇,前提是必須保證微服務(wù)運(yùn)行環(huán)境 安全可靠性,然后再根據(jù)系統(tǒng)平臺(tái)的規(guī)模選擇 種切合實(shí)際的部署工具。一般來(lái)說(shuō),對(duì)于 個(gè)小型系統(tǒng),使用 docker-compose 工具就可以了;如果是 個(gè)大型系統(tǒng)平臺(tái),則建議使用 ubemetes 管理工具。
第13章可擴(kuò)展分布式數(shù)據(jù)庫(kù)集群的搭建;本章介紹了在 CentOS 中安裝 MySQL 的簡(jiǎn)易方法,并使用主從設(shè)計(jì)構(gòu)建了分布式的數(shù)據(jù)庫(kù)集群,搭建了一個(gè)高性能、可擴(kuò)展的數(shù)據(jù)庫(kù)集群體系,同時(shí),使用分組的方式實(shí)現(xiàn)了高可用集群的設(shè)計(jì)。在數(shù)據(jù)庫(kù)訪問(wèn)設(shè)計(jì)中,使用 OneProxy 中間件實(shí)現(xiàn)了可配置的讀寫(xiě)分離調(diào)用方法,并結(jié)合分庫(kù)分表功能提高了數(shù)據(jù)庫(kù)的訪問(wèn)效率。最后,使用雙機(jī)熱備設(shè)計(jì),為數(shù)據(jù)庫(kù)代理中間件及其集群的使用提供更加安全可靠的有力保障。
通過(guò)本章對(duì)數(shù)據(jù)庫(kù)集群設(shè)計(jì)的介紹,讀者可深入地理解數(shù)據(jù)庫(kù)集群的工作原理。如果使用云服務(wù)的數(shù)據(jù)庫(kù),則建議使用云服務(wù)供應(yīng)商提供的分布式數(shù)據(jù)庫(kù),這樣可以使性?xún)r(jià)比更高。
第14章高可用分布式文件系統(tǒng)的組建;本章使用開(kāi)源的 FastDFS 搭建了一個(gè)高可用的分布式文件系統(tǒng),并通過(guò) Nginx 為文件的訪問(wèn)設(shè)置了負(fù)載均衡服務(wù),從而為微服務(wù)應(yīng)用提供一個(gè)高性能的文件服務(wù)器。
在完成安裝并測(cè)試正常之后,即可在庫(kù)存管理項(xiàng)目中配置分布式文件系統(tǒng)的鏈接地址,使用微服務(wù)與分布式文件系統(tǒng)進(jìn)行聯(lián)調(diào)。
第15章使用Jenkins實(shí)現(xiàn)自動(dòng)化構(gòu)建;本章介紹了如何使用自動(dòng)化構(gòu)建工具 Jenkins 設(shè)計(jì)持續(xù)交付的工作流程,并以一個(gè)簡(jiǎn)單的實(shí)例演示了自動(dòng)部署的實(shí)現(xiàn)過(guò)程。在該實(shí)例中,我們使用 Git 進(jìn)行代碼拉取、使用 Maven 進(jìn)行程序打包、使用 Docker 進(jìn)行鏡像的創(chuàng)建和應(yīng)用的更新與部署。從這個(gè)實(shí)例中可以看出 Jenkins強(qiáng)大的可擴(kuò)展性。
通過(guò)對(duì)本章的學(xué)習(xí),相信讀者能夠根據(jù)實(shí)際情況,建立 個(gè)完善的自動(dòng)化基礎(chǔ)設(shè)施,從而實(shí)現(xiàn)在微服務(wù)發(fā)布中集成測(cè)試和持續(xù)部署的自動(dòng)化構(gòu)建流程。
這份【SpringCloud微服務(wù)架構(gòu)實(shí)戰(zhàn)】文檔共有330頁(yè),需要完整版的朋友,可以轉(zhuǎn)發(fā)此文關(guān)注小編,私信小編【技術(shù)】二字來(lái)獲取!!
總結(jié)
本文不僅詳細(xì)介紹了如何使用 Spring Cloud 工具套件進(jìn)行微服務(wù)應(yīng)用的開(kāi)發(fā),還介紹了如何與 ConsulDocker Kubemetes Jenkins 等結(jié)合使用 將開(kāi)發(fā)的微服務(wù)應(yīng)用以可擴(kuò)展的方式在云端發(fā)布。
通過(guò)對(duì)本文的系統(tǒng)學(xué)習(xí),讀者可快速將所掌握的知識(shí)應(yīng)用于實(shí)際工作中,提高自身的職業(yè)競(jìng)爭(zhēng)力
本文的讀者對(duì)象為廣大 Java 開(kāi)發(fā)者、系統(tǒng)架構(gòu)師和系統(tǒng)運(yùn)維人員。本文特別適合使用過(guò) Spring 開(kāi)源框架或具有一定 Spring 框架基礎(chǔ)知識(shí)的讀者閱讀。
總結(jié)
以上是生活随笔為你收集整理的微服务 前台调用后台的慢的原因_20年IT农民工分享SpringCloud微服务架构实战文档...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 等高线转dem
- 下一篇: idea修改代码后没有重新编译_Spri