1. 添加部署文档

dev_1.0.0
xueqingkun 4 months ago
parent 6eb2f5f7e1
commit 830b769334

@ -1,3 +1,47 @@
# know_sub
知识报送后端服务
## 服务组件介绍
| 服务名称 | docker 镜像名称 | 服务描述 |
|------|-------------|------------|
| 前端服务 | know-sub-nginx:1.0.0 | 提供前端服务 |
| 后端服务 | know-sub-web:1.0.0 | 提供展示报送后端服务 |
| 数据库 | mysql:5.7 | 提供数据库服务 |
### 安装包结构说明
| 文件/文件夹 | 说明 |
| - |---------------|
| know-sub-nginx/ | 存放nginx静态文件 |
| know-sub-web/ | 存放后端服务程序 |
| mysql | 数据库持久化数据 |
| .env | 应用的环境配置 |
| docker-compose.yml | docker-compose 配置文件 |
| images-all-one.tar.gz | 镜像文件 |
## 快速启动
### 要求
- CPU >= 8 核
- RAM >= 16 GB
- Disk >= 500 GB
- Docker >= 24.0.6 & Docker Compose >= v2.27.0
### 步骤
1. 下载安装包,解压到~/install/know-sub目录
2. 进入~/install/know-sub目录执行加载镜像命令
```bash
docker load -i images-all-one.tar.gz
```
3. 执行如下命令启动服务
```bash
docker-compose up -d
```
4. 查看启动的服务状态
```bash
docker-compose ps
Name Command State Ports
```
5. 访问地址
http://192.168.10.138:1180/#/login admin/qgYXFnT1

@ -0,0 +1,13 @@
# mysql相关配置内容
MYSQL_PASSWORD=llm@984573~!eda
MYSQL_PORT=42415
# 知识报送后台服务相关配置内容
WEB_HTTP_PORT=9201
SPRING_PROFILES_ACTIVE=prod
# nginx相关配置内容
NGINX_HTTP_PORT=1180
KNOW_SUB_SERVERS=know-sub-web:9201
TIMEZONE='Asia/Shanghai'

@ -0,0 +1,65 @@
services:
mysql:
image: mysql:5.7
container_name: know-sub-mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD}
- TZ=${TIMEZONE}
command:
--max_connections=100
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--default-authentication-plugin=mysql_native_password
--tls_version="TLSv1.2,TLSv1.3"
ports:
- ${MYSQL_PORT}:3306
volumes:
- ./mysql/data:/var/lib/mysql
- ./know_sub_init.sql:/docker-entrypoint-initdb.d/know_sub_init.sql
networks:
- know-sub-network
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-uroot", "-p${MYSQL_PASSWORD}" ]
interval: 10s
timeout: 10s
retries: 3
start_period: 40s
restart: always
know-sub-web:
depends_on:
mysql:
condition: service_started
image: know-sub-web:1.0.0
container_name: know-sub-web
ports:
- ${WEB_HTTP_PORT}:9201
volumes:
- ./know-sub-web/:/data/know_sub/web/
command:
--spring.profiles.active=${SPRING_PROFILES_ACTIVE}
--datasource.password=${MYSQL_PASSWORD}
environment:
- TZ=${TIMEZONE}
networks:
- know-sub-network
restart: always
know-sub-nginx:
depends_on:
know-sub-web:
condition: service_started
image: know-sub-nginx:1.0.0
container_name: know-sub-nginx
ports:
- ${NGINX_HTTP_PORT}:80
volumes:
- ./know-sub-nginx/html/:/usr/share/nginx/html/
environment:
- TZ=${TIMEZONE}
- KNOW_SUB_SERVERS=${KNOW_SUB_SERVERS}
networks:
- know-sub-network
restart: always
networks:
know-sub-network:
driver: bridge

File diff suppressed because one or more lines are too long

@ -45,11 +45,11 @@
<scope>provided</scope>
</dependency>
<dependency>
<!-- <dependency>
<groupId>com.supervision</groupId>
<artifactId>know_sub_rag</artifactId>
<version>1.0.0</version>
</dependency>
</dependency>-->
</dependencies>

@ -0,0 +1,77 @@
server:
port: 9201
servlet:
context-path: /know-sub
undertow:
# HTTP post内容的最大大小。当值为-1时默认值为大小是无限的
max-http-post-size: -1
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
# 每块buffer的空间大小,越小的空间被利用越充分
buffer-size: 512
# 是否分配的直接内存
direct-buffers: true
spring:
main:
allow-bean-definition-overriding: true
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
## 数据源配置
datasource:
type: com.alibaba.druid.pool.DruidDataSource
druid:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://know-sub-mysql:3306/know_sub?useUnicode=true&characterEncoding=utf-8&useSSL=true&nullCatalogMeansCurrent=true&serverTimezone=GMT%2B8
username: root
password: ${datasource.password}
initial-size: 5 # 初始化大小
min-idle: 10 # 最小连接数
max-active: 20 # 最大连接数
max-wait: 60000 # 获取连接时的最大等待时间
min-evictable-idle-time-millis: 300000 # 一个连接在池中最小生存的时间,单位是毫秒
time-between-eviction-runs-millis: 60000 # 多久才进行一次检测需要关闭的空闲连接,单位是毫秒
filters: stat,wall # 配置扩展插件stat-监控统计log4j-日志wall-防火墙防止SQL注入去掉后监控界面的sql无法统计
validation-query: SELECT 1 # 检测连接是否有效的 SQL语句为空时以下三个配置均无效
test-on-borrow: true # 申请连接时执行validationQuery检测连接是否有效默认true开启后会降低性能
test-on-return: true # 归还连接时执行validationQuery检测连接是否有效默认false开启后会降低性能
test-while-idle: true # 申请连接时如果空闲时间大于timeBetweenEvictionRunsMillis执行validationQuery检测连接是否有效默认false建议开启不影响性能
stat-view-servlet:
enabled: true # 是否开启 StatViewServlet
loginUsername: admin
loginPassword: 123456
filter:
stat:
enabled: true # 是否开启 FilterStat默认true
log-slow-sql: true # 是否开启 慢SQL 记录默认false
slow-sql-millis: 5000 # 慢 SQL 的标准,默认 3000单位毫秒
merge-sql: false # 合并多个连接池的监控数据默认false
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
# springdoc-openapi项目配置
springdoc:
# 默认是false需要设置为true 解决GET请求时,用自定义对象接受现实错误的问题
default-flat-param-object: true
swagger-ui:
path: /swagger-ui.html
tags-sorter: alpha
operations-sorter: alpha
api-docs:
path: /v3/api-docs
group-configs:
- group: 'default'
paths-to-match: '/**'
packages-to-scan: com.supervision
# knife4j的增强配置不需要增强可以不配
knife4j:
enable: true
setting:
language: zh_cn
user:
# 默认密码
default:
password: 123456

@ -2,6 +2,7 @@ package com.supervision.knowsub.config;
import org.elasticsearch.client.RestClient;
import org.springframework.ai.vectorstore.ElasticsearchVectorStore;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
@ -12,6 +13,8 @@ import org.springframework.util.Assert;
@EnableConfigurationProperties(EmbeddingProperties.class)
public class ElasticsearchVectorStoreConfig {
@Value("${embedding.url}")
private String url;
@Bean
// @ConditionalOnProperty(prefix = "embedding", name = "url")
public VectorEmbeddingClient vectorEmbeddingClient(EmbeddingProperties embeddingProperties) {

@ -19,7 +19,7 @@
<module>know_sub_common</module>
<module>know_sub_business</module>
<module>know_sub_model</module>
<module>know_sub_rag</module>
<!-- <module>know_sub_rag</module>-->
</modules>

Loading…
Cancel
Save