一、需求说明
编写一个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 部署项目,实战练习,进阶!
发表评论