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