目錄
前言
在我之前的一章中,我已經把Erueka註冊中心加到了宿主機裏面,並使用數據卷在開啓容器的時候進行了一個關聯,所以我們在那個容器中也有了Erueka項目的jar包,所以我們可以直接的開啓服務就行了,結果沒問題。
ok,
本次的一個重點就是,把一個基本的生產者和消費者一起放到裏面,
以實現
第一個
第二個
我會以兩種模式給大家來看,如何把springcloud項目都部署到docker容器中
-
mysql容器的部署
-
三角服務之間的服務集羣移植
-
全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能否有用,
第二個版本纔是大頭;
那個實現配置熱部署的我還沒有去了解,以後有時間了才學習學習。
剛剛看了下內存,感覺還不錯:[]( ̄▽ ̄)*
如果感覺本章寫的還不錯的話,不如。。。。。(~ ̄▽ ̄)~ ,(´▽`ʃ♡ƪ)