一、需求说明
编写一个springboot + redis 的微服务项目,并提供 hello接口,每访问一次接口,计数器+1
二、效果图
三、项目结构
目录说明
docker-compose.yml :项目的启动文件,配置编排等
dockerfile:项目上线所需要的依赖,以及启动方式
四、核心源码
♻️java依赖与接口
依赖文件
pom.xml
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <parent> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-parent</artifactid> <version>2.5.5</version> <relativepath/> <!-- lookup parent from repository --> </parent> <groupid>org.example</groupid> <artifactid>demo</artifactid> <version>1.0-snapshot</version> <dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-redis</artifactid> <exclusions> <exclusion> <groupid>io.lettuce</groupid> <artifactid>lettuce-core</artifactid> </exclusion> </exclusions> </dependency> <dependency> <groupid>redis.clients</groupid> <artifactid>jedis</artifactid> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-maven-plugin</artifactid> </plugin> </plugins> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> <filtering>false</filtering> </resource> <resource> <directory>src/main/resources</directory> </resource> <resource> <directory>libs/</directory> <targetpath>libs</targetpath> <includes> <include>**/*.jar</include> </includes> </resource> </resources> </build> </project>
接口
hellocontroller
package com.wanshi.controller; import org.springframework.beans.factory.annotation.autowired; import org.springframework.data.redis.core.stringredistemplate; import org.springframework.web.bind.annotation.getmapping; import org.springframework.web.bind.annotation.restcontroller; /** * @author whc * @date 2022/6/9 10:06 */ @restcontroller public class hellocontroller { @autowired private stringredistemplate redistemplate; @getmapping("/hello") public string hello() { long views = redistemplate.opsforvalue().increment("views"); return "hello, xiaowang, views:" + views; } }
配置文件
application.yml
server: port: 8080 spring: redis: host: redis
♨️docker相关源码
dockerfile
from java:8 copy *.jar /app.jar cmd ["--server.port=8080"] expose 8080 entrypoint ["java", "-jar", "/app.jar"]
docker-compose.yml
version: '3.8' services: xiwoangapp: build: . image: xiaowangapp depends_on: - redis ports: - "8080:8080" redis: image: "redis:3.0.7"
五、部署项目
打包后端项目通过命令
mvn clean package
jar包与配置文件上传至linux服务器,新建指定文件夹(通过filezilla上传文件)
执行命令启动
docker-compose up
部署成功后我们查看服务是否启动
docker ps
本机进行访问
curl localhost:8080/hello
⛵小结
以上就是【bug 终结者】对 【云原生】docker compose 进阶 – 部署微服务项目上线 的简单介绍 ,compose 部署项目,实战练习,进阶!
发表评论