目录
- 前言
- mysql容器的部署
- v1.0:三角服务之间的服务集群移植
- 1、打好三个微服务的jar包
- 2、运行并启动
- 3、测试
- v2.0:全springcloud项目的一个移植(加网关、配置中心)
- 1、服务配置中心的配置
- 2、导成jar包并上传
- 3、运行并启动
- 4、测试!
- 后记
前言
在我之前的一章中,我已经把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能否有用,
第二个版本才是大头;
那个实现配置热部署的我还没有去了解,以后有时间了才学习学习。
刚刚看了下内存,感觉还不错:[]( ̄▽ ̄)*
如果感觉本章写的还不错的话,不如。。。。。(~ ̄▽ ̄)~ ,(´▽`ʃ♡ƪ)