博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微服务SpringCloud容器化案例
阅读量:5900 次
发布时间:2019-06-19

本文共 1529 字,大约阅读时间需要 5 分钟。

前言

当我们在使用微服务的时候,那么有一个问题一定会困扰我们,那就是项目的测试和部署。因为在单体应用下,部署项目很简单,直接打包启动就可以了,而对于微服务来说,因为有各个组件的存在所以让测试和部署都变得很麻烦,而容器化是微服务的部署一把利剑。

PS:本文不介绍具体docker使用的各种基础,以及微服务的各种基础,就是给出相应的案例,你可以根据这样的案例快速学会如何将你的微服务容器化。

 

实际案例

让我们先来看看,实现之后如果本地要进行测试,是多么方便。

只需要一个命令,就能将我们的服务都启动起来,包括注册中心,网关,服务都启动了,你不需要三四台服务器,也不需要安装配置各种复杂的环境。
当我们要停止所有服务的时候呢?

实际案例:

 

微服务容器化的步骤

  1. 编写Dockerfile构建单个镜像
  2. 编写docker-compose.yml进行容器编排
  3. 修改各个应用中的application.yml的一些访问地址

 

容器化相关命令

单独部署:

进入某个应用的目录(目录下有Dockerfile)
使用命令:docker build -t mic-eureka .

 

整体编排部署:

进入根目录(目录下有docker-compose.yml)
使用命令:docker-compose up -d

 

容器化说明

在所有module每个目录下面都存在一个Dockerfile,类似如下:

# 基础镜像FROM java:openjdk-8u111# 作者MAINTAINER LinkinStar linkinstar@foxmail.com# 将build/libs下的jar包拷贝到容器中的根目录,并命名为app.jarCOPY build/libs/*.jar /app.jar# 声明开放端口EXPOSE 8761# 启动应用ENTRYPOINT ["java", "-jar", "app.jar"]

容器编排:

在根目录下有docker-compose.yml文件,用于进行容器编排:

# 声明版本version: '3'# 声明各个服务servicesservices:  # 服务名称  mic-eureka:    # 构建当前服务的Dockerfile位置    build:      context: eureka    # 镜像名称    image: mic-eureka:latest    # 映射的开放端口    ports:      - 8761:8761    mic-gateway:    build:      context: gateway    image: mic-gateway:latest    # 需要关联的应用,这些关联的应用可以通过下面的名称来访问,类似域名的概念    links:      - mic-eureka      - mic-pay      - mic-order    ports:      - 8769:8769        mic-pay:    build:      context: pay    image: mic-pay:latest    mic-order:    build:      context: order    image: mic-order:latest  

总结

对于jar包,我们还是需要手动用gradle的bootJar进行打包,其实可以编写相应的shell脚本来完成,这样更加的自动方便一些。 针对实际项目中,还有数据库,redis,mq这些都可以交由容器去进行部署和编排,这里只是抛砖引玉,对于这些的部署和实现就交给你来完成啦。

转载地址:http://qlhsx.baihongyu.com/

你可能感兴趣的文章
minio 并发数_MinIO 参数解析与限制
查看>>
flash back mysql_mysqlbinlog flashback 使用最佳实践
查看>>
mysql存储引擎模式_MySQL存储引擎
查看>>
python类 del_全面了解Python类的内置方法
查看>>
java jni 原理_使用JNI技术实现Java和C++的交互
查看>>
java 重写system.out_重写System.out.println(String x)方法
查看>>
配置ORACLE 11g绿色版客户端和PLSQL远程连接环境
查看>>
ASP.NET中 DataList(数据列表)的使用前台绑定
查看>>
Linux学习之CentOS(八)--Linux系统的分区概念
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
ubuntu下安装libxml2
查看>>
nginx_lua_waf安装测试
查看>>
WinForm窗体缩放动画
查看>>
JQuery入门(2)
查看>>