spring boot + docker 微服務(wù)架構(gòu)

本文旨在建立一個docker化的基于spring boot完成的服務(wù)端锌畸,其功能是計算a和b兩個數(shù)的和榜掌。

創(chuàng)建服務(wù)

1 打開IDEA Java編輯器 Create New Project

2 左側(cè)選擇Spring Initializr,右側(cè)指定JDK和默認的項目生成服務(wù)地址.-->Next


spring initializr.png

3 填寫項目基礎(chǔ)信息养筒,然后-->Next


product info.png

4 指定項目依賴軟件版本盟迟,Next
指定項目依賴軟件版本.png

5 默認就好不用修改产禾,F(xiàn)inish


默認就好不用修改.png

6 做完以上的事情,我們創(chuàng)建的項目就打開了乡革,刪除圖中選中的五個文件(夾):
項目概覽.png

7 現(xiàn)在項目已經(jīng)可以啟動了寇僧,但是我們還沒有任務(wù)服務(wù)代碼摊腋,新建Java類,talk is cheap,show you the code(自已創(chuàng)建com.example.demo.web包吧嘁傀,我截圖快累死了):

pom.xml 添加fastjson依賴

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.35</version>
        </dependency>

MyController.java

package com.example.demo.web;

import com.alibaba.fastjson.JSONObject;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.Map;

@RestController
@EnableAutoConfiguration
public class MyController {
    @RequestMapping("/")
    @ResponseBody
    Map<String, Object> home(@RequestBody JSONObject json) {
        Map<String, Object> resp = new HashMap<>();
        Integer a = json.getInteger("a");
        Integer b = json.getInteger("b");
        if (a == null || b == null) {
            resp.put("code", -1);
            resp.put("msg", "參數(shù)錯誤");
            return resp;
        }
        int result = a + b;
        resp.put("code", 1);
        resp.put("result", result);
        return resp;
    }
}

7 啟動程序兴蒸,使用接口測試工具Advanced REST client測試一下吧,ps:這里截了兩張圖细办,一張截不全


request.png

response.png

可以看到橙凳,請求a與b相加的結(jié)果為3,到這里我們程序就準備好了,下面的事情就是docker化了...

Docker化

打包程序

mvn clean package

安裝配置docker

sudo apt -y install docker.io  # 安裝docker
sudo gpasswd -a ${USER} docker  #當前用戶加入docker用戶組
sudo service docker restart      # 重啟docker服務(wù)
注銷用戶重新登錄
docker version    # 驗證docker安裝配置是否成功笑撞,輸出格式如下圖所示即為成功
驗證docker安裝配置.png

創(chuàng)建構(gòu)建docker鏡像的工作目錄

mkdir -p ~/docker/demo
cd ~/docker/demo

將程序拷貝到~/docker/demo目錄岛啸,供構(gòu)建使用

 cp ~/IdeaProjects/demo/target/demo-0.0.1-SNAPSHOT.jar ~/docker/demo/demo.jar

創(chuàng)建Dockerfile文件vim Dockerfile

FROM ubuntu:16.04
COPY ./demo.jar /work/
RUN apt-get update \
    && apt-get install -y openjdk-8-jre
ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-adm64/jre
CMD ["java","-jar","/work/demo.jar"]

構(gòu)建鏡像

 docker build -t myservice:v1.0 .

運行

docker run --rm --name myservice -p 8080:8080 myservice:v1.0

再次用Advanced REST client測試一下:

request.png
response.png

結(jié)束黔龟!

參考:

  1. https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html
  2. http://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/
    PS:
    創(chuàng)建spring boot工程也可以通過在線(https://start.spring.io)創(chuàng)建护昧,創(chuàng)建完下載下來用IDEA或eclipse打開就可以coding了,更多docker的知識參考上面的git book.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市毡惜,隨后出現(xiàn)的幾起案子瓤狐,更是在濱河造成了極大的恐慌瞬铸,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芬首,死亡現(xiàn)場離奇詭異赴捞,居然都是意外死亡,警方通過查閱死者的電腦和手機郁稍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來胜宇,“玉大人耀怜,你說我怎么就攤上這事⊥┯洌” “怎么了财破?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長从诲。 經(jīng)常有香客問我左痢,道長,這世上最難降的妖魔是什么系洛? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任俊性,我火速辦了婚禮,結(jié)果婚禮上描扯,老公的妹妹穿的比我還像新娘定页。我一直安慰自己,他們只是感情好绽诚,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布典徊。 她就那樣靜靜地躺著杭煎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卒落。 梳的紋絲不亂的頭發(fā)上羡铲,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天,我揣著相機與錄音儡毕,去河邊找鬼犀勒。 笑死,一個胖子當著我的面吹牛妥曲,可吹牛的內(nèi)容都是我干的贾费。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼檐盟,長吁一口氣:“原來是場噩夢啊……” “哼褂萧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起葵萎,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤导犹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后羡忘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谎痢,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年卷雕,在試婚紗的時候發(fā)現(xiàn)自己被綠了节猿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡漫雕,死狀恐怖滨嘱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情浸间,我是刑警寧澤太雨,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站魁蒜,受9級特大地震影響囊扳,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜兜看,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一锥咸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧铣减,春花似錦她君、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽球涛。三九已至,卻和暖如春校镐,著一層夾襖步出監(jiān)牢的瞬間亿扁,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工鸟廓, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留从祝,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓引谜,卻偏偏與公主長得像牍陌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子员咽,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容