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能否有用,

第二个版本才是大头;

那个实现配置热部署的我还没有去了解,以后有时间了才学习学习。

刚刚看了下内存,感觉还不错:[]( ̄▽ ̄)*
在这里插入图片描述

如果感觉本章写的还不错的话,不如。。。。。(~ ̄▽ ̄)~ ,(´▽`ʃ♡ƪ)

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