启动后端(集群模式)
大约 8 分钟quickstartcode
一、准备工作
- 导入git私服的 BladeX-Links 工程并点击
maven刷新按钮下载依赖- 后端核心依赖工程:blade-tool
- 如需拓展开发核心依赖工程,开发完毕后在
blade-tool工程根目录执行mvn clean install命令便可刷新依赖 - 物联网平台基于 SpringBlade 底座开发,环境要求见环境要求
- 特别详细的步骤,请看框架手册
二、启动后端系统服务 blade-server
- 前往
BladeX-Links工程下的blade-server模块的application.yml配置文件,修改密钥保持与blade-broker一致- 具体路径如下:
BladeX-Links/blade-service/blade-server/src/main/resources/application.yml - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的签名):
#blade配置 blade: auth: #使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2验签,需和前端保持一致 public-key: 041cb889cccf335fcde7******************************3f5ac2b3542bbb903d84c07636550e8fe599aae4aef53a91cb77cbb1 #使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2解密,前端无需配置 private-key: 73e345f2edfdf84b6***************88be564defa94c18515a7ccde602463 token: #注意需要和blade-broker服务的sign-key保持一致 #使用 @org.springblade.test.SignKeyGenerator 获取 sign-key: 6klRvnw*************0TB4m51ZSh- 具体路径如下:
BladeX-Links-UI/src/config/website.ts - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的签名):
auth: { // 使用 @org.springblade.test.Sm2KeyGenerator 获取,用于国密sm2验签,需和后端保持一致 publicKey: '041cb889cccf335fcde7******************************3f5ac2b3542bbb903d84c07636550e8fe599aae4aef53a91cb77cbb1', } - 具体路径如下:
- 前往
BladeX-Links工程下的blade-server模块的application-dev.yml配置文件,修改数据库、redis、influxdb、minio等配置- 具体路径如下:
BladeX-Links/blade-service/blade-server/src/main/resources/application-dev.yml - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的ip、端口、用户名、密码等配置):
#数据源配置 spring: data: redis: ##redis 单机环境配置 host: 127.0.0.1 port: 6379 password: database: 0 ssl: enabled: false ##redis 集群环境配置 #cluster: # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 # commandTimeout: 5000 datasource: url: jdbc:mysql://localhost:3306/bladex_iot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8 username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver #时序数据库配置 tdengine: enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库 username: root password: taosdata database: links # 库名,会自动建库 jdbc-url: jdbc:TAOS-RS://127.0.0.1:6041?useSSL=false # 数据精度,默认:毫秒 precision: ms # 数据保存的天数,默认:10年 keep: 3650 # 批量写入相关配置 enable-batch: true # 开启批量写,默认:开 batch-size: 1000 # 批次大小,默认:1000 flush-duration: 1s # 批次写入时间,默认:1s 写入一次 # 连接池相关配置,可按需求进行配置,建议改大一些 initial-size: 8 # 初始化的连接数,默认:8 max-active: 32 # 最大活跃连接数,默认:32 min-idle: 8 # 最小活跃连接数,默认:8 max-wait: -1 # 最大等待时间,默认:-1 不限制 #oss配置 oss: enabled: true name: minio tenant-mode: true endpoint: http://127.0.0.1:9000 access-key: bladexadmin secret-key: bladexadmin bucket-name: bladex #iot配置 blade: iot: # 外网ip或者域名 mqtt-ip: 127.0.0.1 # 外网可用的端口 mqtt-port: 1883 # broker服务ip或域名 broker-ip: ${blade.iot.mqtt-ip} # broker服务端口 broker-port: 8888 - 具体路径如下:
- 启动
BladeX-Links工程下的blade-server模块的ServerApplication启动类,日志出现Started ServerApplication即表示服务启动完成。
三、启动消息服务 kafka
- 本地开发为迅速跑通集群模式,可直接docker快速启动命令如下
docker run -d \
--name kafka \
-p 9092:9092 \
-e KAFKA_CFG_NODE_ID=1 \
-e KAFKA_CFG_PROCESS_ROLES=controller,broker \
-e KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093 \
-e KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://localhost:9092 \
-e KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT \
-e KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 \
-e KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER \
-e ALLOW_PLAINTEXT_LISTENER=yes \
-v /docker/data/kafka:/data \
bitnami/kafka:3.9.0- 若使用部署包安装需先通过官网下载:点击下载
- 解压后进入对应目录执行如下操作
1). 生成集群ID
bin/kafka-storage.sh random-uuid2). 生成配置
bin/kafka-storage.sh format -t ${集群ID} -c config/kraft/server.properties3). 启动
bin/kafka-server-start.sh config/kraft/server.properties4). 配置 linux 服务 vim /etc/systemd/system/kafka.service 注意:更改 kafka 目录和 jvm 内存配置。
[Unit]
Description=Apache Kafka server (broker)
Documentation=http://kafka.apache.org/documentation.html
Requires=network.target
After=network.target kafka-zookeeper.service
[Service]
Type=simple
Environment="KAFKA_HEAP_OPTS=-Xmx6G -Xms6G"
WorkingDirectory=/data/soft/kafka
ExecStart=/bin/bash /data/soft/kafka/bin/kafka-server-start.sh /data/soft/kafka/config/kraft/server.properties
ExecStop=/bin/bash /data/soft/kafka/bin/kafka-server-stop.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target## 开机启动
systemctl enable kafka.service
## 启动
systemctl start kafka.service
## 停止
systemctl stop kafka.service
## 重启
systemctl restart kafka.service- kafka 桌面端: 下载地址
四、启动MQTT服务 blade-broker
- 修改
blade-broker的pom.xml文件,将依赖修改为集群版本并且刷新工程重新加载maven依赖<dependencies> <!-- broker 单机 --> <!--<dependency> <groupId>org.springblade</groupId> <artifactId>blade-broker-local</artifactId> </dependency>--> <!-- broker 集群 使用 kafka --> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-broker-cluster</artifactId> </dependency> <dependency> <groupId>org.springblade</groupId> <artifactId>blade-mq-kafka</artifactId> </dependency> </dependencies> - 前往
BladeX-Links工程下的blade-broker模块的application.yml配置文件,修改密钥保持与blade-server一致- 具体路径如下:
BladeX-Links/blade-service/blade-broker/src/main/resources/application.yml - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的签名):
#blade配置 blade: token: #使用 @org.springblade.test.SignKeyGenerator 获取 #需要将blade-server与blade-broker服务对应的sign-key配置保持一致 sign-key: 6klRvnw*************0TB4m51ZSh - 具体路径如下:
- 前往
BladeX-Links工程下的blade-broker模块的application-dev.yml配置文件,修改kafka配置,若集群有多个节点则以逗号分隔#kafka配置 spring: kafka: bootstrap-servers: 127.0.0.1:9092 - 前往
BladeX-Links工程下的blade-broker模块的application-dev.yml配置文件,修改mqtt、database、redis、influxdb、minio等配置- 具体路径如下:
BladeX-Links/blade-service/blade-broker/src/main/resources/application-dev.yml - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的ip、端口、用户名、密码等配置):
#数据源配置 spring: data: redis: ##redis 单机环境配置 host: 127.0.0.1 port: 6379 password: database: 0 ssl: enabled: false ##redis 集群环境配置 #cluster: # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 # commandTimeout: 5000 datasource: url: jdbc:mysql://localhost:3306/bladex_iot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8 username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver kafka: bootstrap-servers: 127.0.0.1:9092 #时序数据库配置 tdengine: enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库 username: root password: taosdata database: links # 库名,会自动建库 jdbc-url: jdbc:TAOS-RS://127.0.0.1:6041?useSSL=false # 数据精度,默认:毫秒 precision: ms # 数据保存的天数,默认:10年 keep: 3650 # 批量写入相关配置 enable-batch: true # 开启批量写,默认:开 batch-size: 1000 # 批次大小,默认:1000 flush-duration: 1s # 批次写入时间,默认:1s 写入一次 # 连接池相关配置,可按需求进行配置,建议改大一些 initial-size: 8 # 初始化的连接数,默认:8 max-active: 32 # 最大活跃连接数,默认:32 min-idle: 8 # 最小活跃连接数,默认:8 max-wait: -1 # 最大等待时间,默认:-1 不限制 # MQTT 服务端配置 mqtt: server: enabled: true name: BladeX-Mqtt-Server heartbeat-timeout: 120000 read-buffer-size: 8KB max-bytes-in-message: 10MB debug: false stat-enable: true mqtt-listener: enable: true port: 1883 ws-listener: enable: true port: 8083 mqtt-ssl-listener: enable: false port: 8883 ssl: keystore-path: # 启用 TLS 时填写证书路径 keystore-pass: # 证书密码 truststore-path: truststore-pass: client-auth: NONE wss-listener: enable: false port: 8084 http-listener: enable: false #blade配置 blade: iot: # 外网ip或者域名 mqtt-ip: 127.0.0.1 # 外网可用的端口 mqtt-port: 1883 - 具体路径如下:
- 启动
BladeX-Links工程下的blade-broker模块的BrokerApplication启动类,日志出现Started BrokerApplication即表示服务启动完成。
五、启动数据流转服务 blade-data
- 由于
blade-data为数据流转服务,暂时不对外公开API接口,所以无需配置sign-key - 前往
BladeX-Links工程下的blade-data模块的application-dev.yml配置文件,修改kafka配置,若集群有多个节点则以逗号分隔#kafka配置 spring: kafka: bootstrap-servers: 127.0.0.1:9092 - 前往
BladeX-Links工程下的blade-data模块的application-dev.yml配置文件,database、redis、influxdb等配置- 具体路径如下:
BladeX-Links/blade-service/blade-data/src/main/resources/application-dev.yml - 需要修改的配置如下
(展示的为默认配置,实际情况请修改为自行设置的ip、端口、用户名、密码等配置):
#数据源配置 spring: data: redis: ##redis 单机环境配置 host: 127.0.0.1 port: 6379 password: database: 0 ssl: enabled: false ##redis 集群环境配置 #cluster: # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 # commandTimeout: 5000 datasource: url: jdbc:mysql://localhost:3306/bladex_iot?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&allowPublicKeyRetrieval=true&serverTimezone=GMT%2B8 username: root password: root driver-class-name: com.mysql.cj.jdbc.Driver kafka: bootstrap-servers: 127.0.0.1:9092 #时序数据库配置 tdengine: enabled: true # 是否开启,多个时序库插件依赖同时导入可采用此参数配置,开启的时序库 username: root password: taosdata database: links # 库名,会自动建库 jdbc-url: jdbc:TAOS-RS://127.0.0.1:6041?useSSL=false # 数据精度,默认:毫秒 precision: ms # 数据保存的天数,默认:10年 keep: 3650 # 批量写入相关配置 enable-batch: true # 开启批量写,默认:开 batch-size: 1000 # 批次大小,默认:1000 flush-duration: 1s # 批次写入时间,默认:1s 写入一次 # 连接池相关配置,可按需求进行配置,建议改大一些 initial-size: 8 # 初始化的连接数,默认:8 max-active: 32 # 最大活跃连接数,默认:32 min-idle: 8 # 最小活跃连接数,默认:8 max-wait: -1 # 最大等待时间,默认:-1 不限制 - 具体路径如下:
- 启动
BladeX-Links工程下的blade-data模块的DataApplication启动类,日志出现Started DataApplication即表示服务启动完成。
六、注意事项
生产安全必看
- 上线后必须修改admin密码,防止被人恶意登录影响系统安全。
- 必须修改各数据库、redis的端口密码,防止被恶意程序扫描到。
- 熟读Blade安全手册,解决系统的安全隐患:点击查看
