根據(jù)SpringBoot實(shí)現(xiàn)分布式微服務(wù)項(xiàng)目近兩年的開發(fā)經(jīng)驗(yàn)香到,今天決定開始做SpringBoot實(shí)現(xiàn)分布式微服務(wù)項(xiàng)目的系列文章冠息,幫助其他正在使用或計(jì)劃使用SringBoot開發(fā)的小伙伴們吼驶。本次系列文章以電商項(xiàng)目的分布式實(shí)現(xiàn)展開炼鞠,希望喜歡的小伙伴們關(guān)注戈擒。
SpringBoot簡介
Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架捂敌,其設(shè)計(jì)目的是用來簡化新Spring應(yīng)用的初始搭建以及開發(fā)過程艾扮。該框架使用了特定的方式來進(jìn)行配置,從而使開發(fā)人員不再需要定義樣板化的配置占婉。通過這種方式泡嘴,Spring Boot致力于在蓬勃發(fā)展的快速應(yīng)用開發(fā)領(lǐng)域(rapid application development)成為領(lǐng)導(dǎo)者。
Spring Boot 是 Spring 開源組織下的子項(xiàng)目逆济,是 Spring 組件一站式解決方案酌予,主要是簡化了使用 Spring 的難度,簡省了繁重的配置奖慌,提供了各種啟動器抛虫,開發(fā)者能快速上手。
Spring Boot 優(yōu)點(diǎn)****:
1简僧,起步依賴
SpringBoot能夠快速構(gòu)建項(xiàng)目的魔力之一就是起步依賴建椰。spring-boot-starter-xxx就是SpringBoot的起步依賴具體實(shí)現(xiàn)。例如我們要實(shí)現(xiàn)一個Web項(xiàng)目岛马,那就只要依賴spring-boot-starter-web即可棉姐⊥懒校基于不同的功能,官方為我們整合了大量的起步依賴伞矩,簡化了我們搭建項(xiàng)目的工作脸哀。同時,起步依賴提供了可靠的依賴管理扭吁,降低了項(xiàng)目引入問題版本和依賴沖突的風(fēng)險撞蜂。
2,自動配置
SpringBoot使用@EnableAutoConfiguration 或者@SpringBootApplication注解 開啟組件掃描和自動配置侥袜。 通過@SpringBootApplication的exclude參數(shù)關(guān)閉特定 的自動配置蝌诡。@SpringBootApplication(exclude = XAutoConfiguration.class)
3,應(yīng)用監(jiān)控
Spring Boot 監(jiān)控核心是 spring-boot-starter-actuator 依賴枫吧,增加依賴后浦旱, Spring Boot 會默認(rèn)配置一些通用的監(jiān)控,比如 jvm 監(jiān)控九杂、類加載颁湖、健康監(jiān)控等。Actuator插件是SpringBoot原生提供的一個服務(wù)例隆,可以通過暴露端點(diǎn)路由甥捺,用來輸出應(yīng)用中的諸多端點(diǎn)信息。
4镀层,獨(dú)立運(yùn)行
SpringBoot內(nèi)置了Tomcat容器镰禾,可以直接執(zhí)行 main 方法運(yùn)行。項(xiàng)目部署可以打成jar的文件在服務(wù)器上通過執(zhí)行java -jar 命令來運(yùn)行服務(wù)唱逢。
看完前面這4大優(yōu)點(diǎn)吴侦,大家應(yīng)該也就有一些了解了,SpringBoot把復(fù)雜的配置和容易出錯的依賴統(tǒng)統(tǒng)都幫我們解決了坞古,就連開發(fā)時本地的項(xiàng)目的啟動备韧,只需要執(zhí)行一下main方法就可搞定,這使得使用Springboot開發(fā)更容易上手痪枫。
開發(fā)環(huán)境及使用技術(shù)
軟件環(huán)境:JDK1.8织堂,IntelliJ IDEA 2018, Mysql 5.6
分布式治理:Dubbo, Zookeeper
分布式緩存:Redis
消息隊(duì)列:Kafka
SpringBoot項(xiàng)目搭建
先創(chuàng)建一個項(xiàng)目
點(diǎn)擊“Create New Project”,進(jìn)入以下界面
注意選擇JDK,然后點(diǎn)擊“Next”
填好Group, Artiface等信息听怕,點(diǎn)擊“Next”
如果你要開發(fā)一個Web項(xiàng)目捧挺,選擇Web,再選擇依賴尿瞭,點(diǎn)擊“Next”
然后設(shè)置好項(xiàng)目目錄,點(diǎn)擊“Finish”翅睛。此刻項(xiàng)目創(chuàng)建就完成了声搁。
由于本次要創(chuàng)建分布式微服務(wù)項(xiàng)目黑竞,那么當(dāng)前創(chuàng)建的只是一個父級工程的依賴,實(shí)際的(分布式模塊)項(xiàng)目是在這個父級工程下疏旨。那么我們先修改父級工程的POM文件很魂,添加<packaging>pom</packaging>。此刻檐涝,選擇父級工程遏匆,鼠標(biāo)右擊,選擇“Open Modules Settings”
在打開的頁面谁榜,點(diǎn)擊上面的+號幅聘,添加一個Modules子項(xiàng)目。
點(diǎn)擊“Next”
在此頁面選擇剛創(chuàng)建的項(xiàng)目作為Parent窃植,在為此子模塊設(shè)置GroupId和Artifactid帝蒿,Version屬性,然后點(diǎn)擊“Next”巷怜。
點(diǎn)擊“Finish”葛超。
現(xiàn)在我們在剛創(chuàng)建的Web項(xiàng)目中寫一個Controller和一個Application啟動類,并配置application.prepoties延塑。
Controller里寫了一個get的api測試接口(/api/lyn/test)
application.properties
項(xiàng)目啟動類:
這時绣张,我們可以啟動測試了。在啟動類右擊執(zhí)行“Run”
項(xiàng)目啟動成功后关带,打開瀏覽器測試一下剛下的api接口胖替。
從頭到尾,大家沒看到我手動去添加Maven依賴和配置吧豫缨。僅僅配了一個服務(wù)端口號(實(shí)際這個可以不配独令,默認(rèn)是8080)。這也正是前面說的Springboot的優(yōu)點(diǎn)好芭,真是太容易上手燃箭。
下期文章:分布式開發(fā)環(huán)境下分模塊及提供者、消費(fèi)者搭建舍败,Dubbo服務(wù)提供及訂閱消費(fèi)招狸、Zookeeper實(shí)現(xiàn)服務(wù)注冊、單點(diǎn)登錄及分布式緩存處理邻薯。
如果你想獲取更多的資料或?qū)崙?zhàn)知識裙戏,請關(guān)注公眾號,查閱相關(guān)文章厕诡,或通過公眾號發(fā)送關(guān)鍵字獲取資料累榜,也可通過公眾號 “關(guān)于我” >>> "聯(lián)系我" 私聊獲取信息或幫助