微服务迁移记(七):使用docker发布 springcloud应用续-发布service及web两个工程
上篇文章,发布分布式配置中心,参考《微服务迁移记(七):使用docker发布 springcloud应用》,发布以后可以通过:http://192.168.0.12:8000/actuator/health 访问服务健康状况。
今天在单位,利用中午休息时间,将服务实现层(相当于provider)和web层(相当于consumer)发布至虚拟机服务器。公司环境略有变化,每个项目下新增bootstrap-sit.yml,并设置spring.profiles.active = sit
一、环境介绍
虚拟机IP地址:192.168.202.102
consul:http://192.168.202.102:8500/
config:http://192.168.0.12:8000
redis:192.168.202.102 6379
计划将服务实现工程发布至9000端口,WEB工程发布至8080端口。
二、非发布工程发布至本地仓库
zyproject-common工程:公共类库,提供通用返回、分页类等。
zyproject-api-service工程:主要定义接口,供服务实现层和web层引用。
这两个工程平时调试时直接引用就可以了,发布出去的时候需要把jar包引用到相应的工程里。所以我们这里将两个工程先发布至本地仓库:
执行mvn clean install或点击相应的操作按钮:
成功后,会有一行日志提示发布本地仓库的位置如:
[INFO] Installing D:\xxx\zyproject-parent\zyproject-common\pom.xml to C:\Users\xx\.m2\repository\com\xxx\zyproject-common\1.0-SNAPSHOT\zyproject-common-1.0-SNAPSHOT.pom
相应目录下可以看到已生成相应的jar包。
三、服务实现工程发布
服务工程参考《微服务迁移记(四):公共层、接口层和实现层搭建》
1. pom配置
<!--docker--> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> </plugin> </plugins> </build>
2. Dockerfile
FROM java:8 ENV PROFILE prd ADD target/*.jar /home/app/system-service.jar EXPOSE 9000 ENTRYPOINT java ${JAVA_OPTS} -Djava.security.edg=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profile.active=${PROFILE} -jar /home/app/system-service.jar
3.新建发布项,点击发布后成功运行。访问:http://192.168.202.102:9000/actuator/health成功
四、WEB工程发布
1. pom配置
同服务实现层。
2. Dockerfile
FROM java:8 ADD target/*.jar /home/app/web/zy-web.jar EXPOSE 8080 ENTRYPOINT java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -Duser.timezone=Asia/Shanghai -Dfile.encoding=UTF-8 -Dspring.profile.active=${PROFILE} -jar /home/app/web/zy-web.jar
3.新建发布项,发布成功后,访问:http://192.168.202.102:8080/manage跳转至登录界面。
服务全部发布完成后,在consul可以看到三个服务都注册成功:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述