From 7d4cd7ebcba747d0d190d947b17edaf05b9b391b Mon Sep 17 00:00:00 2001
From: bunny <1319900154@qq.com>
Date: Tue, 20 May 2025 21:29:12 +0800
Subject: [PATCH] =?UTF-8?q?:tada:=20=E5=BE=AE=E6=9C=8D=E5=8A=A1=E9=A1=B9?=
=?UTF-8?q?=E7=9B=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
cloud-demo/ReadMe.md | 239 ++++++++++++++++++
cloud-demo/pom.xml | 119 +++++++++
cloud-demo/services/pom.xml | 57 +++++
cloud-demo/services/service-order/pom.xml | 23 ++
.../service/OrderServiceApplication.java | 11 +
.../src/main/resources/application-dev.yaml | 6 +
.../src/main/resources/application.yaml | 10 +
.../src/main/resources/banner.txt | 10 +
.../src/main/resources/logback.xml | 69 +++++
cloud-demo/services/service-product/pom.xml | 23 ++
.../service/ProductServiceApplication.java | 11 +
.../src/main/resources/application-dev.yaml | 5 +
.../src/main/resources/application.yaml | 10 +
.../src/main/resources/banner.txt | 10 +
.../src/main/resources/logback.xml | 69 +++++
15 files changed, 672 insertions(+)
create mode 100644 cloud-demo/ReadMe.md
create mode 100644 cloud-demo/pom.xml
create mode 100644 cloud-demo/services/pom.xml
create mode 100644 cloud-demo/services/service-order/pom.xml
create mode 100644 cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java
create mode 100644 cloud-demo/services/service-order/src/main/resources/application-dev.yaml
create mode 100644 cloud-demo/services/service-order/src/main/resources/application.yaml
create mode 100644 cloud-demo/services/service-order/src/main/resources/banner.txt
create mode 100644 cloud-demo/services/service-order/src/main/resources/logback.xml
create mode 100644 cloud-demo/services/service-product/pom.xml
create mode 100644 cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java
create mode 100644 cloud-demo/services/service-product/src/main/resources/application-dev.yaml
create mode 100644 cloud-demo/services/service-product/src/main/resources/application.yaml
create mode 100644 cloud-demo/services/service-product/src/main/resources/banner.txt
create mode 100644 cloud-demo/services/service-product/src/main/resources/logback.xml
diff --git a/cloud-demo/ReadMe.md b/cloud-demo/ReadMe.md
new file mode 100644
index 0000000..40c529f
--- /dev/null
+++ b/cloud-demo/ReadMe.md
@@ -0,0 +1,239 @@
+# 微服务
+
+## 环境搭建
+
+### Docker镜像源设置
+
+```bash
+# 创建目录
+sudo mkdir -p /etc/docker
+# 写入配置文件
+sudo tee /etc/docker/daemon.json <<-'EOF'
+{
+ "registry-mirrors": [
+ "https://docker-0.unsee.tech",
+ "https://docker-cf.registry.cyou",
+ "https://docker.1panel.live"
+ ]
+}
+EOF
+
+# 重启docker服务
+sudo systemctl daemon-reload && sudo systemctl restart docker
+```
+
+使用docker-compose有的时候会因为版本不同,但是配置文件主要内容就是这些。需要注意版本问题
+
+### 配置相关
+
+#### MySQL配置问题
+
+| **特性** | `**my.cnf**` | `**conf.d**` **目录** |
+| ------------ | ---------------------------- | -------------------------- |
+| **文件类型** | 单个文件 | 目录,包含多个 `.cnf` 文件 |
+| **配置方式** | 集中式配置 | 分布式配置 |
+| **优先级** | 高(覆盖 `conf.d` 中的配置) | 低(被 `my.cnf` 覆盖) |
+| **适用场景** | 全局配置,核心配置 | 模块化配置,便于扩展和维护 |
+
+#### MongoDB配置
+
+```bash
+sudo mkdir -p ~/docker/docker_data/mongo/conf
+sudo mkdir -p ~/docker/docker_data/mongo/logs
+sudo chmod 777 ~/docker/docker_data/mongo/logs
+sudo chmod 777 ~/docker/docker_data/mongo/conf
+
+cd ~/docker/docker_data/mongo/logs
+sudo touch mongod.log
+sudo chmod 777 mongod.log
+
+cd ~/docker/docker_data/mongo/conf
+sudo vim mongod.conf
+
+cd ~
+```
+
+##### 配置文件
+
+```bash
+# 数据库文件存储位置
+dbpath = /data/db
+# log文件存储位置
+logpath = /data/log/mongod.log
+# 使用追加的方式写日志
+logappend = true
+# 是否以守护进程方式运行
+# fork = true
+# 全部ip可以访问
+bind_ip = 0.0.0.0
+# 端口号
+port = 27017
+# 是否启用认证
+auth = true
+# 设置oplog的大小(MB)
+oplogSize=2048
+```
+
+##### 设置账户密码
+
+```shell
+#进入容器
+docker exec -it mongodb /bin/bash
+
+#进入mongodb shell
+mongosh --port 27017
+
+#切换到admin库
+use admin
+
+#创建账号/密码
+db.createUser({ user: 'admin', pwd: '02120212', roles: [ { role: "root", db: "admin" } ] });
+# db.createUser({ user: 'admin', pwd: '123456', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] });
+```
+
+### docker-compose.yml
+
+如果休要所有的微服务环境,可以直接复制下面的内容,看清楚目录是否和自己需要的一样。
+
+| 功能 | 旧版 (docker-compose) | 新版 (docker compose) |
+| -------------------- | ----------------------- | ----------------------- |
+| **启动服务** | docker-compose up -d | docker compose up -d |
+| **停止服务** | docker-compose down | docker compose down |
+| **查看日志** | docker-compose logs -f | docker compose logs -f |
+| **列出容器** | docker-compose ps | docker compose ps |
+| **停止不删除容器** | docker-compose stop | docker compose stop |
+| **启动已停止的容器** | docker-compose start | docker compose start |
+| **重启服务** | docker-compose restart | docker compose restart |
+| **构建镜像** | docker-compose build | docker compose build |
+
+```yaml
+name: cloud-services
+services:
+ mysql:
+ container_name: mysql_master
+ image: mysql:8.0.33
+ ports:
+ - "3306:3306"
+ environment:
+ - MYSQL_ROOT_PASSWORD=123456
+ - TZ=Asia/Shanghai
+ volumes:
+ # - ~/docker/docker_data/mysql/mysql_master/etc/my.cnf:/etc/my.cnf # 如果需要创建配置文件
+ - ~/docker/docker_data/mysql/mysql_master/etc/mysql:/etc/mysql/conf.d
+ - ~/docker/docker_data/mysql/mysql_master/data:/var/lib/mysql
+ - ~/docker/docker_data/mysql/mysql_master/backup:/backup
+ command:
+ - "--log-bin=mysql-bin"
+ - "--server-id=1"
+ - "--collation-server=utf8mb4_unicode_ci"
+ - "--character-set-server=utf8mb4"
+ - "--lower-case-table-names=1"
+ restart: always
+ privileged: true
+ networks:
+ - cloud
+
+ redis:
+ container_name: redis_master
+ image: redis:7.0.10
+ ports:
+ - "6379:6379"
+ volumes:
+ # - ~/docker/docker_data/redis_master/redis.conf:/etc/redis/redis.conf # 需要创建配置文件
+ - ~/docker/docker_data/redis_master:/etc/redis # 之后要配置文件可以直接在这里创建 redis.conf
+ - ~/docker/docker_data/redis_master/data:/data
+ command:
+ - "--appendonly yes"
+ - "--daemonize no"
+ - "--requirepass 123456"
+ - "--tcp-keepalive 300"
+ restart: always
+ networks:
+ - cloud
+
+ minio:
+ image: minio/minio
+ container_name: minio_master
+ ports:
+ - "9000:9000"
+ - "9090:9090"
+ volumes:
+ - ~/docker/docker_data/minio/data:/data
+ environment:
+ - MINIO_ROOT_USER=bunny
+ - MINIO_ROOT_PASSWORD=02120212
+ command: "server /data --console-address :9090"
+ restart: always
+ networks:
+ - cloud
+
+ mongodb:
+ image: mongo:latest
+ container_name: mongodb
+ restart: always
+ privileged: true
+ ports:
+ - "27017:27017"
+ volumes:
+ - ~/docker/docker_data/mongo/data:/data/db
+ - ~/docker/docker_data/mongo/conf:/data/configdb
+ - ~/docker/docker_data/mongo/logs:/data/log
+ command: "mongod --config /data/configdb/mongod.conf"
+ networks:
+ - cloud
+
+ rabbitmq:
+ image: rabbitmq:management
+ container_name: rabbitmq
+ restart: unless-stopped
+ ports:
+ - "5672:5672"
+ - "15672:15672"
+ volumes:
+ - ~/docker/docker_data/rabbitmq/data:/var/lib/rabbitmq
+ - ~/docker/docker_data/rabbitmq/conf:/etc/rabbitmq
+ - ~/docker/docker_data/rabbitmq/log:/var/log/rabbitmq
+ environment:
+ - RABBITMQ_DEFAULT_USER=admin
+ - RABBITMQ_DEFAULT_PASS=admin
+ - RABBITMQ_DEFAULT_VHOST=/
+ networks:
+ - cloud
+
+ nacos:
+ image: nacos/nacos-server:v2.4.3
+ container_name: nacos
+ ports:
+ - "8848:8848"
+ - "9848:9848"
+ environment:
+ - MODE=standalone
+ restart: always
+ networks:
+ - cloud
+
+ sentinel:
+ image: bladex/sentinel-dashboard:1.8.8
+ container_name: sentinel
+ ports:
+ - "8858:8858"
+ privileged: true
+ restart: always
+ networks:
+ - cloud
+
+ seata-server:
+ image: apache/seata-server:2.3.0.jdk21
+ container_name: seata-server
+ ports:
+ - "8091:8091"
+ restart: always
+ networks:
+ - cloud
+
+networks: # 定义网络
+ cloud: # 定义名为 auth 的网络
+ name: cloud # 网络名称为 auth
+ driver: bridge # 使用 bridge 驱动(默认)
+```
+
diff --git a/cloud-demo/pom.xml b/cloud-demo/pom.xml
new file mode 100644
index 0000000..37d08ff
--- /dev/null
+++ b/cloud-demo/pom.xml
@@ -0,0 +1,119 @@
+
+
+ 4.0.0
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 3.3.2
+
+
+
+ cn.bunny.mq
+ cloud-demo
+ 0.0.1-SNAPSHOT
+ cloud-demo
+ cloud-demo
+
+ services
+
+ pom
+
+
+ 17
+ 3.8.1
+ 4.5.0
+ 2.0.47
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+ junit
+ junit
+ ${junit.version}
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-alibaba-dependencies
+ 2023.0.3.2
+ pom
+ import
+
+
+ org.springframework.cloud
+ spring-cloud-dependencies
+ 2023.0.3
+ pom
+ import
+
+
+
+
+ com.alibaba.fastjson2
+ fastjson2
+ ${fastjson2.version}
+
+
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-jakarta-spring-boot-starter
+ ${knife4j.version}
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.projectlombok
+ lombok
+
+
+
+
+
+
+
+
diff --git a/cloud-demo/services/pom.xml b/cloud-demo/services/pom.xml
new file mode 100644
index 0000000..da83074
--- /dev/null
+++ b/cloud-demo/services/pom.xml
@@ -0,0 +1,57 @@
+
+ 4.0.0
+
+ cn.bunny.mq
+ cloud-demo
+ 0.0.1-SNAPSHOT
+
+
+ services
+ pom
+
+ services
+ https://maven.apache.org
+
+ service-product
+ service-order
+
+
+
+ UTF-8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
+
+ junit
+ junit
+ test
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ org.springframework.cloud
+ spring-cloud-starter-openfeign
+
+
+
+
diff --git a/cloud-demo/services/service-order/pom.xml b/cloud-demo/services/service-order/pom.xml
new file mode 100644
index 0000000..e852a82
--- /dev/null
+++ b/cloud-demo/services/service-order/pom.xml
@@ -0,0 +1,23 @@
+
+ 4.0.0
+
+ cn.bunny.mq
+ services
+ 0.0.1-SNAPSHOT
+
+
+ service-order
+ jar
+
+ service-order
+ https://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+
+
diff --git a/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java
new file mode 100644
index 0000000..5022a12
--- /dev/null
+++ b/cloud-demo/services/service-order/src/main/java/cn/bunny/service/OrderServiceApplication.java
@@ -0,0 +1,11 @@
+package cn.bunny.service;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class OrderServiceApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(OrderServiceApplication.class, args);
+ }
+}
diff --git a/cloud-demo/services/service-order/src/main/resources/application-dev.yaml b/cloud-demo/services/service-order/src/main/resources/application-dev.yaml
new file mode 100644
index 0000000..d0b170d
--- /dev/null
+++ b/cloud-demo/services/service-order/src/main/resources/application-dev.yaml
@@ -0,0 +1,6 @@
+server:
+ port: 8000
+
+
+nacos:
+ server-addr: 192.168.95.135:8848
diff --git a/cloud-demo/services/service-order/src/main/resources/application.yaml b/cloud-demo/services/service-order/src/main/resources/application.yaml
new file mode 100644
index 0000000..2715228
--- /dev/null
+++ b/cloud-demo/services/service-order/src/main/resources/application.yaml
@@ -0,0 +1,10 @@
+server:
+ port: 8000
+spring:
+ application:
+ name: service-order
+ profiles:
+ active: dev
+ cloud:
+ nacos:
+ server-addr: ${nacos.server-addr}
diff --git a/cloud-demo/services/service-order/src/main/resources/banner.txt b/cloud-demo/services/service-order/src/main/resources/banner.txt
new file mode 100644
index 0000000..f8a20fa
--- /dev/null
+++ b/cloud-demo/services/service-order/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+ _ _
+| |__ _ _ _ __ _ __ _ _ (_) __ ___ ____ _
+| '_ \| | | | '_ \| '_ \| | | | | |/ _` \ \ / / _` |
+| |_) | |_| | | | | | | | |_| | | | (_| |\ V | (_| |
+|_.__/ \__,_|_| |_|_| |_|\__, | _/ |\__,_| \_/ \__,_|
+ |___/ |__/
+
+Service Name${spring.application.name}
+SpringBoot Version: ${spring-boot.version}${spring-boot.formatted-version}
+SpringActive:${spring.profiles.active}
diff --git a/cloud-demo/services/service-order/src/main/resources/logback.xml b/cloud-demo/services/service-order/src/main/resources/logback.xml
new file mode 100644
index 0000000..fe0a953
--- /dev/null
+++ b/cloud-demo/services/service-order/src/main/resources/logback.xml
@@ -0,0 +1,69 @@
+
+
+ logback
+
+
+
+
+
+
+
+
+
+
+
+ INFO
+
+
+ %cyan([%thread %d{yyyy-MM-dd HH:mm:ss}]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)-%blue(%msg%n)
+
+ ${ENCODING}
+
+
+
+
+
+ logs/${datetime}/financial-server.log
+ true
+
+ %date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n
+ ${ENCODING}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/cloud-demo/services/service-product/pom.xml b/cloud-demo/services/service-product/pom.xml
new file mode 100644
index 0000000..4213254
--- /dev/null
+++ b/cloud-demo/services/service-product/pom.xml
@@ -0,0 +1,23 @@
+
+ 4.0.0
+
+ cn.bunny.mq
+ services
+ 0.0.1-SNAPSHOT
+
+
+ service-product
+ jar
+
+ service-product
+ https://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+
+
diff --git a/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java b/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java
new file mode 100644
index 0000000..689905a
--- /dev/null
+++ b/cloud-demo/services/service-product/src/main/java/cn/bunny/service/ProductServiceApplication.java
@@ -0,0 +1,11 @@
+package cn.bunny.service;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class ProductServiceApplication {
+ public static void main(String[] args) {
+ SpringApplication.run(ProductServiceApplication.class, args);
+ }
+}
diff --git a/cloud-demo/services/service-product/src/main/resources/application-dev.yaml b/cloud-demo/services/service-product/src/main/resources/application-dev.yaml
new file mode 100644
index 0000000..7cd2945
--- /dev/null
+++ b/cloud-demo/services/service-product/src/main/resources/application-dev.yaml
@@ -0,0 +1,5 @@
+server:
+ port: 8001
+
+nacos:
+ server-addr: 192.168.95.135:8848
diff --git a/cloud-demo/services/service-product/src/main/resources/application.yaml b/cloud-demo/services/service-product/src/main/resources/application.yaml
new file mode 100644
index 0000000..b858b01
--- /dev/null
+++ b/cloud-demo/services/service-product/src/main/resources/application.yaml
@@ -0,0 +1,10 @@
+server:
+ port: 8001
+spring:
+ application:
+ name: service-product
+ profiles:
+ active: dev
+ cloud:
+ nacos:
+ server-addr: ${nacos.server-addr}
diff --git a/cloud-demo/services/service-product/src/main/resources/banner.txt b/cloud-demo/services/service-product/src/main/resources/banner.txt
new file mode 100644
index 0000000..f8a20fa
--- /dev/null
+++ b/cloud-demo/services/service-product/src/main/resources/banner.txt
@@ -0,0 +1,10 @@
+ _ _
+| |__ _ _ _ __ _ __ _ _ (_) __ ___ ____ _
+| '_ \| | | | '_ \| '_ \| | | | | |/ _` \ \ / / _` |
+| |_) | |_| | | | | | | | |_| | | | (_| |\ V | (_| |
+|_.__/ \__,_|_| |_|_| |_|\__, | _/ |\__,_| \_/ \__,_|
+ |___/ |__/
+
+Service Name${spring.application.name}
+SpringBoot Version: ${spring-boot.version}${spring-boot.formatted-version}
+SpringActive:${spring.profiles.active}
diff --git a/cloud-demo/services/service-product/src/main/resources/logback.xml b/cloud-demo/services/service-product/src/main/resources/logback.xml
new file mode 100644
index 0000000..fe0a953
--- /dev/null
+++ b/cloud-demo/services/service-product/src/main/resources/logback.xml
@@ -0,0 +1,69 @@
+
+
+ logback
+
+
+
+
+
+
+
+
+
+
+
+ INFO
+
+
+ %cyan([%thread %d{yyyy-MM-dd HH:mm:ss}]) %yellow(%-5level) %green(%logger{100}).%boldRed(%method)-%boldMagenta(%line)-%blue(%msg%n)
+
+ ${ENCODING}
+
+
+
+
+
+ logs/${datetime}/financial-server.log
+ true
+
+ %date{yyyy-MM-dd HH:mm:ss} [%-5level] %thread %file:%line %logger %msg%n
+ ${ENCODING}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file