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