springcloud項目移植到docker中(jar導入方式)

前言

在我之前的一章中,我已經把Erueka註冊中心加到了宿主機裏面,並使用數據卷在開啓容器的時候進行了一個關聯,所以我們在那個容器中也有了Erueka項目的jar包,所以我們可以直接的開啓服務就行了,結果沒問題。

ok,
本次的一個重點就是,把一個基本的生產者和消費者一起放到裏面,

以實現
第一個
在這裏插入圖片描述
第二個
在這裏插入圖片描述
我會以兩種模式給大家來看,如何把springcloud項目都部署到docker容器中

  1. mysql容器的部署

  2. 三角服務之間的服務集羣移植

  3. 全springcloud項目的一個移植(加網關、配置中心)


mysql容器的部署

直接看步驟吧:
1、下載mysql:5.6版本

docker pull mysql:5.6

2、使用鏡像開啓服務

docker run -d -p 3308:3306 --name Mymysql -e MYSQL_ROOT_PASSWORD=123  mysql:5.6

3、使用mysql(這個時候我們就可以直接可以使用可視化工具連接,並創建數據庫)
在這裏插入圖片描述
在這裏插入圖片描述

接下來自行操作代碼即可

值得一說的是,這個也得變
在這裏插入圖片描述


v1.0:三角服務之間的服務集羣移植

1、打好三個微服務的jar包

在導微服務的jar包的時候,要講一個知識點,在導一個關係上是使用common中的entity類的子項目是(生產者的實體類),可能會出現,說什麼entity不存在之類的。

這個問題可以仔細看:maven install的時候報錯,提示程序或引用找不到,明碼寫着common類找不到

這裏稍微的提一下:
用這個原本就有的打包的Jar包可以直接運行,但是不可依賴(不可以在執行maven的時候存在)。
所以interface自始至終就沒有依賴,自然會說找程序包不存在或者找不到類

解決方法:

在這裏插入圖片描述
代碼:

 <build>
        <plugins>
            <!--添加maven插件-->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>

                <configuration>
                    <classifier>execute</classifier>
                    <!--添加自己的啓動類路徑!-->
                    <mainClass>com.liwangwang.microservicecommon.MicroserviceCommonApplication</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <!--可以把依賴的包都打包到生成的Jar包中-->
                            <goal>repackage</goal>
                        </goals>
                        <phase>none</phase>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

OK,接下來的包我們都需在pom.xml中加上這個文件即可
在這裏插入圖片描述

然後就每個項目都執行一遍maven指令即可:
在這裏插入圖片描述

然後把每個項目下的jar包隨便放到哪個地方:
在這裏插入圖片描述
在這裏插入圖片描述

最後,我們在docker 中就有了:

在這裏插入圖片描述

2、運行並啓動

運行五個容器(一個註冊中心,兩個生產者,一個消費者,一個mysql)

啓動不過多講解:(其他的容器啓動改改名字即可)
一個案例:

docker run -di --name eureka-server-peer1 --net=host --mount type=bind,source=/javawwl/apps,target=/javawwl/apps 鏡像ID 

全部的啓動爲:
1、進入容器

docker exec -it 容器ID /bin/sh

2、找到自己的一個文件夾,比如我的:

cd ../
cd apps/

在這裏插入圖片描述

3、運行容器:(僅供參考)

java -jar microservice-eureka-server.jar  --spring.profiles.active=eureka2001
java -jar microservice-eureka-server.jar  --spring.profiles.active=eureka2002
java -jar microservice-student-provider-hystrix.jar   --spring.profiles.active=provider-hystrix-1004
java -jar microservice-student-provider-hystrix.jar   --spring.profiles.active=provider-hystrix-1005
java -jar microservice-student-consumer-feign-80-1.0.jar

在這裏插入圖片描述

3、測試

最後就可以直接通過宿主機ID+端口直接訪問

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

v2.0:全springcloud項目的一個移植(加網關、配置中心)

ok,在上面的內容中我們已經知道了,一個基礎服務之間的聯繫是如何成功移植的,但是
下面這是一個重點,加網關,和配置中心

其餘的還有監控平臺,因爲其他問題就不演示了


1、服務配置中心的配置

因爲我們此次是要把所有,記住是所有!!!的服務配置文件都交給服務配置中心所管理

多餘的講解請看:springcloud的服務配置中心config-server

在這裏插入圖片描述
本次的配置文件都在這裏了,當然之後的配置都按照差不多的形式來就行

配置文件所在地https://github.com/liwangwang321/tesetconfig

在這裏插入圖片描述

這是我們的所有的注意點

在這裏插入圖片描述

被控制配置的有三個:(同時都在註冊中心進行了一個註冊)
eureka:
在這裏插入圖片描述

provider:
在這裏插入圖片描述
zuul:
在這裏插入圖片描述

2、導成jar包並上傳

導jar包跟上面一樣

在這裏插入圖片描述

然後上傳:
在這裏插入圖片描述

3、運行並啓動

因爲我們之前就有了一些容器,所以,我們只需添加一些容器就行
在這裏插入圖片描述
然後我們就有了:
在這裏插入圖片描述

注意,有些地方如果是用了自定義的域名,要改!!!

vim /etc/hosts

在這裏插入圖片描述


然後要注意的點:

//這個是eureka集羣的 (可以改)
--spring.cloud.config.profile=eureka2001
//這個是provider集羣的(可以改)
--spring.cloud.config.profile=provider-hystrix-1004

因爲服務註冊中心和微服務都是集羣,所以注意點:
在這裏插入圖片描述
在這裏插入圖片描述


4、測試!

輸入自己的域名加端口:
比如我的:

http://192.168.47.134:2001/

在這裏插入圖片描述
我的:

http://192.168.47.134:3001/javawwl/studentServer/student/hystrix?accessToken=1

在這裏插入圖片描述

ok,那麼就代表成功了!!!


後記

第一個版本是測試Mysql能否有用,

第二個版本纔是大頭;

那個實現配置熱部署的我還沒有去了解,以後有時間了才學習學習。

剛剛看了下內存,感覺還不錯:[]( ̄▽ ̄)*
在這裏插入圖片描述

如果感覺本章寫的還不錯的話,不如。。。。。(~ ̄▽ ̄)~ ,(´▽`ʃ♡ƪ)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章