You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
9.0 KiB
9.0 KiB
AG服务安装
1、基础环境(以debian为例)
1.1、基本能力安装
# 安装curl,下面也有安装
sudo apt install curl
# 可选
sudo apt install lrzsz
# 安装 https curl等工具、库
sudo apt install apt-transport-https ca-certificates curl software-properties-common gnupg2
1.2、docker
- 安装docker
# 1、添加 Docker 的官方 GPG 密钥
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
# 或是以下这个
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# 2、设置 Docker 的 APT 仓库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
# 或是使用这个
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 3、更新索引
sudo apt-get update
# 4、安装 Docker
sudo apt-get install docker-ce
- 配置及启动docker
# 添加当前用户到docker组中
sudo usermod -aG docker xxx
# 启动docker
systemctl start docker
# 开机启动
systemctl enable docker
# 验证
docker --version
-
镜像仓库
-
默认的仓库Docker Hub,如果有需要配置自己或加速的镜像仓库地址可通过以下操作配置,目前国外的无需配置
sudo nano /etc/docker/daemon.json
-
内容:
{ #本地私有镜像仓库 "insecure-registries":["harbor.jiagutech.com"], #公有仓库 "registry-mirrors": ["https://a8gtbrrd.mirror.aliyuncs.com"] }
-
-
创建桥接网络,后续docker-compose进行容器编排部署时需要使用此网络,同一个网络中的容器可以通过容器名称进行访问,而不需写死ip
docker network create --driver=bridge jiagu
1.3、docker-compose
-
安装软件,通过以下命令下载docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
或wget https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-$(uname -s)-$(uname -m)
如果以上命令下载失败,需要手动去下载,然后放到/usr/local/bin目录下
-
验证是否成功
docker-compose --version
-
docker-compose的配置
2、中间件
2.1、mysql
- init脚本,需要挂载到/docker-entrypoint-initdb.d的目录下,这样mysql容器启动时会执行脚本,可能有语句执行不成功,需要自己手动去执行
CREATE USER 'jiagu'@'%' IDENTIFIED BY 'jiagu@1058';
CREATE USER 'canal'@'%' IDENTIFIED BY 'canal';
GRANT ALL PRIVILEGES ON *.* TO 'jiagu'@'%';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';
FLUSH PRIVILEGES;
CREATE DATABASE main_drone_jiagu ;
CREATE DATABASE framework_db ;
- 设置my.conf,允许主从同步
[mysqld]
# 开启binlog
log-bin=mysql-bin
# 选择ROW(行)模式
binlog-format=ROW
# 配置MySQL replaction需要定义,不要和canal的slaveId重复
server_id=1
- 数据库数据导入
2.2、redis
- 批量删除key
redis-cli -n 15 -a Jiagu0158 keys 'fight*'|xargs redis-cli -n 15 -a Jiagu0158 del
2.3、tdengine
- 创建用户
create user jiagu pass 'jiagu2058' ; show users;
- 创建数据库
create database track_db;
create database track_hot_db_xxxx_xx_xx; #xxxx_xx_xx为当天日期
- 创建超级表
CREATE STABLE
track(
tsTIMESTAMP,
latDOUBLE,
lngDOUBLE,
altINT,
heightINT,
hvelINT,
vvelINT,
satelliteINT,
loctypeINT,
yawINT,
pitchINT,
rollINT,
onairBOOL,
ftimeINT,
areaFLOAT,
flowINT,
doseINT,
warningINT,
pumpINT) TAGS (
droneidVARCHAR(50))
2.4、rabbitmq
2.5、meilisearch
2.6、canal
3、Framework
4、Center
4.1、udp服务
- 增加对应环境的yml文件
# 1.需要悠mysql的地址及用户名密码
# 2.修改tdengine的地址及用户名密码
# 3.redis的地址及密码
# 4.rabbitmq的地址及密码
# 5.framework服务的地址及密码
- pom中添加对应的profile节点
- logback-spring.xml添加对应的springProfile节点
5、AG服务
6、附录
6.1、middleware的docker-compose.yml
version: '3'
services:
mysql:
image: mysql/mysql-server:8.0.22
container_name: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: Jiagu*2058
MYSQL_DATABASE: main_drone_jiagu
ports:
- "3306:3306"
command:
--default-authentication-plugin=mysql_native_password
--lower_case_table_names=1
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
volumes:
- /home/azureuser/data/mysql/data:/var/lib/mysql
- /home/azureuser/data/mysql/conf/my.cnf:/etc/mysql/my.cnf
- /home/azureuser/data/mysql/logs:/var/log/mysql
- /home/azureuser/data/mysql/mysql-files:/var/lib/mysql-files
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
redis:
image: redis:6.2.14
container_name: redis
ports:
- 6379:6379
environment:
TZ: Asia/Shanghai
volumes:
- /home/azureuser/data/redis/data:/data:rw
command: "redis-server --requirepass Jiagu0158 --appendonly yes"
privileged: true
restart: always
rabbitmq:
restart: always
image: rabbitmq:management
container_name: rabbitmq
hostname: rabbit
ports:
- 5672:5672
- 15672:15672
environment:
TZ: Asia/Shanghai
RABBITMQ_DEFAULT_USER: jiagu
RABBITMQ_DEFAULT_PASS: jiagu2058
volumes:
- /home/azureuser/data/rabbitmq/data:/var/lib/rabbitmq
tdengine:
restart: always
image: tdengine/tdengine:3.2.2.0
container_name: tdengine
hostname: tdengine
ports:
- 6030-6041:6030-6041
- 6030-6041:6030-6041/udp
environment:
TZ: Asia/Shanghai
volumes:
- /home/azureuser/data/tdengine/data:/var/lib/taos
- /home/azureuser/data/tdengine/log:/var/log/taos
- /home/azureuser/data/tdengine/client:/tmp/
meilisearch:
restart: always
image: getmeili/meilisearch:v1.5.1
container_name: meilisearch
ports:
- 7700:7700
environment:
TZ: Asia/Shanghai
MEILI_MASTER_KEY:
volumes:
- /home/azureuser/data/meilisearch/data:/meili_data
canal-server:
image: canal/canal-server
container_name: canal-server
privileged: true
restart: always
depends_on:
- mysql
ports:
- 11111:11111
volumes:
- /home/azureuser/data/canal/example/instance.properties:/home/admin/canal-server/conf/example/instance.properties
- /home/azureuser/data/canal/log/:/home/admin/canal-server/log/canal/
networks:
default:
external: true
name: jiagu
6.2、AG相关服务的docker-compose.yml
version: '3'
services:
drone:
build:
context: ./ag/drone
dockerfile: Dockerfile
container_name: drone
hostname: drone
restart: always
ports:
- "8083:8083"
volumes:
- /home/azureuser/service/logs/drone:/app/log
tftz:
build:
context: ./ag/tftz
dockerfile: Dockerfile
container_name: tftz
hostname: tftz
restart: always
ports:
- "8085:8085"
volumes:
- /home/azureuser/service/logs/tftz:/app/log
oper:
build:
context: ./ag/oper
dockerfile: Dockerfile
container_name: oper
hostname: oper
restart: always
ports:
- "8084:8084"
volumes:
- /home/azureuser/service/logs/oper:/app/log
user:
build:
context: ./ag/user
dockerfile: Dockerfile
container_name: user
hostname: user
restart: always
ports:
- "8082:8082"
volumes:
- /home/azureuser/service/logs/user:/app/log
route:
build:
context: ./ag/route
dockerfile: Dockerfile
container_name: route
hostname: route
restart: always
ports:
- "8088:8088"
volumes:
- /home/azureuser/service/logs/route:/app/log
canal:
build:
context: ./ag/canal
dockerfile: Dockerfile
container_name: canal
hostname: canal
restart: always
ports:
- "8012:8012"
volumes:
- /home/azureuser/service/logs/canal:/app/log
udp:
build:
context: ./center/udp
dockerfile: Dockerfile
container_name: centerudp
restart: always
ports:
- "5003:5003"
- "9527:9527/udp"
volumes:
- /home/azureuser/service/logs/udp:/app/log
framework:
build:
context: ./framework/framework
dockerfile: Dockerfile
container_name: framework
hostname: framework
restart: always
ports:
- "9002:9002"
volumes:
- /home/azureuser/service/logs/framework:/app/log