摘要:微服務(wù)的基本思想在于考慮圍繞著業(yè)務(wù)領(lǐng)域組件來(lái)創(chuàng)建應(yīng)用,這些應(yīng)用可獨(dú)立地進(jìn)行開(kāi)發(fā)管理和加速。在分散的組件中使用微服務(wù)云架構(gòu)和平臺(tái),使部署管理和服務(wù)功能交付變得更加簡(jiǎn)單。
當(dāng)下web服務(wù)端開(kāi)發(fā)中最火的名詞中絕對(duì)有微服務(wù)的一席之地,其也成為當(dāng)下互聯(lián)網(wǎng)后端服務(wù)架構(gòu)演進(jìn)歷程中最閃亮的技術(shù)之一。微服務(wù)的基本思想在于考慮圍繞著業(yè)務(wù)領(lǐng)域組件來(lái)創(chuàng)建應(yīng)用,這些應(yīng)用可獨(dú)立地進(jìn)行開(kāi)發(fā)、管理和加速。在分散的組件中使用微服務(wù)云架構(gòu)和平臺(tái),使部署、管理和服務(wù)功能交付變得更加簡(jiǎn)單。既然服務(wù)被分割和微小化了,我們很容易想到如果將其和docker結(jié)合,讓docker承載著一個(gè)個(gè)的微服務(wù)運(yùn)行,如此一來(lái)將會(huì)讓服務(wù)間耦合度降低,部署簡(jiǎn)潔,同時(shí)系統(tǒng)的架構(gòu)也更加清晰,便于長(zhǎng)期演進(jìn),基于此想法有了這篇文章的入門(mén)實(shí)踐!
注: 本文首發(fā)于 My 公眾號(hào) CodeSheep ,可 長(zhǎng)按 或 掃描 下面的 小心心 來(lái)訂閱 ↓ ↓ ↓
pom.xml中加依賴(lài):
org.springframework.boot spring-boot-starter-parent 2.0.0.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test
我們只需要在啟動(dòng)類(lèi)中添加一個(gè)簡(jiǎn)單的restful接口就行了,為了后續(xù)瀏覽器能驗(yàn)證一下,訪(fǎng)問(wèn)/hello接口,能向?yàn)g覽器返回一個(gè) Hello Docker!的問(wèn)好!
@RestController public class DockerDemoSpringApplication { public static void main(String[] args) { SpringApplication.run(DockerDemoSpringApplication.class, args); } @RequestMapping("/hello") public String hello(){ return "Hello! Docker!”; } }
我們?cè)赟pring Bt項(xiàng)目的根目錄下建立Dockerfile,用起來(lái)完成Docker鏡像構(gòu)建的編排:
FROM maven:3.3.3 ADD pom.xml /tmp/build/ RUN cd /tmp/build && mvn -q dependency:resolve ADD src /tmp/build/src #構(gòu)建應(yīng)用 RUN cd /tmp/build && mvn -q -DskipTests=true package #拷貝編譯結(jié)果到指定目錄 && mv target/*.jar /app.jar #清理編譯痕跡 && cd / && rm -rf /tmp/build VOLUME /tmp EXPOSE 8080 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar”]
0x01. 在Spring項(xiàng)目根目錄下根據(jù)Dockerfile來(lái)生成docker鏡像
docker build -t springindocker .
0x02. 從剛創(chuàng)建的鏡像來(lái)啟動(dòng)容器
docker run -d -p 8080:8080 springindocker
0x03. 打開(kāi)瀏覽器,或者使用 curl 訪(fǎng)問(wèn)http://127.0.0.1:8080就可以看到web服務(wù)器里返回的Hello Docker!!!問(wèn)好的字符了
至此就說(shuō)明你成功將一個(gè)基于 Spring Boot 的應(yīng)用 Docker 化了。
本文雖然只是以一個(gè)Demo,但一個(gè)大型的web項(xiàng)目無(wú)非也就是由諸多這種Rest服務(wù),外加各種基礎(chǔ)設(shè)施、數(shù)據(jù)庫(kù)、通信、中間件以及調(diào)度來(lái)構(gòu)成,每個(gè)子元素的開(kāi)發(fā)也依然遵循這里的基本流程。
作者更多的原創(chuàng)文章在此,歡迎觀(guān)賞
My Personal Blog
作者更多的SpringBt實(shí)踐文章在此:
Spring Boot應(yīng)用監(jiān)控實(shí)戰(zhàn)
SpringBoot應(yīng)用部署于外置Tomcat容器
ElasticSearch搜索引擎在SpringBt中的實(shí)踐
初探Kotlin+SpringBoot聯(lián)合編程
Spring Boot日志框架實(shí)踐
SpringBoot優(yōu)雅編碼之:Lombok加持
如果有興趣,也可以抽點(diǎn)時(shí)間看看作者一些關(guān)于容器化、微服務(wù)化方面的文章:
利用K8S技術(shù)棧打造個(gè)人私有云 連載文章
從一份配置清單詳解Nginx服務(wù)器配置
Docker容器可視化監(jiān)控中心搭建
利用ELK搭建Docker容器化應(yīng)用日志中心
RPC框架實(shí)踐之:Apache Thrift
RPC框架實(shí)踐之:Google gRPC
微服務(wù)調(diào)用鏈追蹤中心搭建
Docker容器跨主機(jī)通信
Docker Swarm集群初探
高效編寫(xiě)Dockerfile的幾條準(zhǔn)則
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27260.html
摘要:在年下旬開(kāi)源了一款新的工具,可以輕松地將應(yīng)用程序容器化。由于默認(rèn)訪(fǎng)問(wèn)谷歌的倉(cāng)庫(kù),而國(guó)內(nèi)訪(fǎng)問(wèn)不穩(wěn)定會(huì)經(jīng)常導(dǎo)致網(wǎng)絡(luò)超時(shí),所以筆者使用了國(guó)內(nèi)的阿里云鏡像服務(wù),那么就不需要訪(fǎng)問(wèn)谷歌的倉(cāng)庫(kù)了。執(zhí)行完成后,我們可以在阿里云鏡像倉(cāng)庫(kù)獲取鏡像。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎關(guān)注公眾號(hào):「服務(wù)端思維」。一群同頻者,一起成長(zhǎng),一起精進(jìn),打破認(rèn)知的局限性。...
摘要:在年下旬開(kāi)源了一款新的工具,可以輕松地將應(yīng)用程序容器化。由于默認(rèn)訪(fǎng)問(wèn)谷歌的倉(cāng)庫(kù),而國(guó)內(nèi)訪(fǎng)問(wèn)不穩(wěn)定會(huì)經(jīng)常導(dǎo)致網(wǎng)絡(luò)超時(shí),所以筆者使用了國(guó)內(nèi)的阿里云鏡像服務(wù),那么就不需要訪(fǎng)問(wèn)谷歌的倉(cāng)庫(kù)了。執(zhí)行完成后,我們可以在阿里云鏡像倉(cāng)庫(kù)獲取鏡像。 原文地址:梁桂釗的博客博客地址:http://blog.720ui.com 歡迎關(guān)注公眾號(hào):「服務(wù)端思維」。一群同頻者,一起成長(zhǎng),一起精進(jìn),打破認(rèn)知的局限性。...
摘要:概述應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于容器中的應(yīng)用程序的打印日志供運(yùn)維分析。 showImg(https://segmentfault.com/img/remote/1460000014146680); 概述 應(yīng)用一旦容器化以后,需要考慮的就是如何采集位于Docker容器中的應(yīng)用程序的打印日志供運(yùn)維分析。典型的比如 SpringBoot應(yīng)用的日志 收集。本文即將闡述如何利...
摘要:概述進(jìn)行的開(kāi)發(fā)過(guò)程中,我們很多時(shí)候經(jīng)常需要重啟服務(wù)器才能保證修改的源代碼文件或者一些諸如的配置文件以及一些靜態(tài)文件生效,這樣耗時(shí)又低效。 showImg(https://segmentfault.com/img/remote/1460000015363888); 概述 進(jìn)行SpringBoot的Web開(kāi)發(fā)過(guò)程中,我們很多時(shí)候經(jīng)常需要重啟Web服務(wù)器才能保證修改的 源代碼文件、或者一些...
閱讀 3315·2021-11-12 10:36
閱讀 2467·2021-11-02 14:43
閱讀 2146·2019-08-30 14:23
閱讀 3462·2019-08-30 13:08
閱讀 919·2019-08-28 18:09
閱讀 3129·2019-08-26 12:22
閱讀 3141·2019-08-23 18:24
閱讀 2017·2019-08-23 18:17