Docker 下的 Spring Cloud 三部曲之二:细说 Spring Cloud 开发
欢迎访问我的 GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
本篇概览
本文是《Docker 下的 Spring Cloud 三部曲》系列的第二篇,详细讲解上一篇实例中用到的 eureka、provider、consumer 等三个应用的开发过程;
环境信息
回顾一下实战环境,如下图:
源码地址
上图的 eureka、provider、consumer 是三个 spring boot 的 web 工程,源码可以在 GitHub 下载,地址和链接信息如下表所示:
这个 git 项目中有多个工程,本次实战的工程是 springcloudscaledemo,如下图红框所示:
如何将 spring boot 工程构建成 docker 镜像
如果您想了解如何将 spring boot 工程构建 docker 镜像,欢迎访问以下三篇实战文章:
本次实战用到的知识点主要集中在上面的第二部;
开发环境
本次实战开发环境的具体信息如下:
操作系统:Ubuntu16;
Docker 版本:17.03.2-ce;
JDK:1.8.0_151;
maven:3.3.3;
接下来我们依次开发 eureka、provider、consumer 等三个应用;
eureka-server 应用的 pom.xml
新建一个名为 eureka-server 的 spring boot 应用,pom.xml 内容如下:
pom.xml 中的几个关键点如下:
spring cloud 的版本是 Edgware.SR1;
添加 spring-cloud-starter-eureka-server 的依赖;
添加 spring-cloud-dependencies 的依赖(pom 的形式);
添加插件 docker-maven-plugin,用于将当前工程制作成本地 docker 镜像;
eureka-server 应用的源码
eureka-server 应用只有一个 java 文件,内容如下:
注意要添加**@EnableEurekaServer**注解;
eureka-server 的配置信息
配置信息 application.properties 的内容如下:
构建 eureka-server 应用的 docker 镜像
在 pom.xml 文件所在目录下,执行如下命令可以构建 docker 镜像:
构建成功后,执行命令 docker images 可见新构建的镜像,如下:
eureka-server 的镜像 OK 后,我们接下来构建 provide 的镜像;
provider 应用的 pom.xml
新建一个名为 service-provider 的 spring boot 应用,pom.xml 内容如下:
provider 应用的源码
入口类 ServiceProviderApplication 的源码如下:
注意要添加**@EnableDiscoveryClient**注解;
只有一个 controller 类 UserController ,对外提供 http 服务:
上面的 controller 提供两个 http 服务,getUserInfoWithRequestParam 服务会返回应用所在机器的 IP 地址;
provider 的配置信息
provider 的配置信息存放在 application.yml 文件中,内容如下:
注意上面配置的注册中心地址为 http://eurekahost:8080/eureka/,eurekahost 在 docker-compose 中会作为 link 参数对应 eureka server;
构建 provider 应用的 docker 镜像
在 pom.xml 文件所在目录下,执行如下命令可以构建 docker 镜像:
构建成功后,执行命令 docker images 可见新构建的镜像,如下:
provider 已经 OK,接下来是 consumer 工程;
consumer 应用的 pom.xml
新建一个名为 service-consumer 的 spring boot 应用,pom.xml 内容如下:
和前面两个应用相比,这里要引入 spring-cloud-starter-feign;
consumer 的源码
入口类 ServiceConsumerApplication 源码如下:
注意要增加**@EnableDiscoveryClient 和 @SpringBootApplication**这两个注解;
增加一个带注解**@FeignClient**的接口,用于在 spring cloud 环境中声明远程调用信息:
增加一个 controller 类 UserFacadeController,为浏览器访问提供 http 服务,并且在响应请求的时候会通过 UserFeignClient 接口的实现远程调用 provider 应用的服务:
consumer 的配置信息
provider 的配置信息存放在 application.yml 文件中,内容如下:
注意上面配置的注册中心地址为 http://eurekahost:8080/eureka/,eurekahost 在 docker-compose 中会作为 link 参数对应 eureka server;
构建 provider 应用的 docker 镜像
在 pom.xml 文件所在目录下,执行如下命令可以构建 docker 镜像:
构建成功后,执行命令 docker images 可见新构建的镜像,如下:
至此,本次实战所需的所有镜像都制作完毕,相关的 demo 工程的开发过程我们也一起过了一遍,上一章中的实战您已经可以独立做出来了,接下来的实战中,我们一起来尝试服务横向扩容;
欢迎关注 InfoQ:程序员欣宸
版权声明: 本文为 InfoQ 作者【程序员欣宸】的原创文章。
原文链接:【http://xie.infoq.cn/article/1252e052e16adf6dde58682ff】。文章转载请联系作者。
评论