一、創(chuàng)建數(shù)據(jù)庫
創(chuàng)建FastBee數(shù)據(jù)庫,字符集使用utf8或utf8mb4,導(dǎo)入項(xiàng)目中的 springboot/sql/fastbee.sql
數(shù)據(jù)庫腳本。
提示
Linux中安裝mysql,配置大小寫敏感,在 /etc/my.cnf
添加 lower_case_table_names=1
重啟MYSQL服務(wù)。
二、打開項(xiàng)目
開發(fā)工具IDEA打開項(xiàng)目中的 springboot
文件夾,會(huì)自動(dòng)安裝Maven依賴,等待安裝完成,速度取決于網(wǎng)絡(luò)。
三、修改主配置文件
文件位于: springboot/fastbee-admin/src/main/resources/application.yml
,具體配置項(xiàng)目可以參考里面的注釋內(nèi)容。
fastbee:
name: fastbee # 名稱
profile: /uploadPath # 文件路徑,以uploadPath結(jié)尾 示例( Windows配置 D:/uploadPath,Linux配置 /uploadPath)
addressEnabled: true # 獲取ip地址開關(guān)
captchaType: math # 驗(yàn)證碼類型 math 數(shù)組計(jì)算 char 字符驗(yàn)證
server:
port: 8080 # 服務(wù)器的HTTP端口,默認(rèn)為8080
servlet:
context-path: / # 應(yīng)用的訪問路徑
tomcat:
uri-encoding: UTF-8 # tomcat的URI編碼
accept-count: 1000 # 連接數(shù)滿后的排隊(duì)數(shù),默認(rèn)為100
threads:
max: 800 # tomcat最大線程數(shù),默認(rèn)為200
min-spare: 100 # Tomcat啟動(dòng)初始化的線程數(shù),默認(rèn)值10
# 基于netty的服務(wù)器
broker:
enabled: false # mqttBroker類型選擇, true: 基于netty的mqttBroker和webSocket false: emq的mqttBroker
broker-node: node1 # 服務(wù)器集群節(jié)點(diǎn)
port: 1883
openws: false # 控制webSocket是否開啟
websocket-port: 8083
websocket-path: /mqtt
keep-alive: 70 # 默認(rèn)的全部客戶端心跳上傳時(shí)間
#TCP服務(wù)端口
tcp:
enabled: true # 控制tcp端口是否開啟
port: 8888
keep-alive: 70
delimiter: 0x7e
spring:
profiles:
active: prod # 環(huán)境配置,dev=開發(fā)環(huán)境,prod=生產(chǎn)環(huán)境
提示
注意配置文件的格式,縮進(jìn)一定要對齊,重點(diǎn)關(guān)注下面內(nèi)容:
- 文件上傳路徑,win和linux系統(tǒng)下配置不同
- mqtt消息服務(wù)器選擇,后端內(nèi)置了netty-mqtt服務(wù),也可以選擇使用emqx作為mqtt消息服務(wù)器
- 環(huán)境配置,開發(fā)環(huán)境和生產(chǎn)環(huán)境對應(yīng)不同的子配置文件,prod對應(yīng)使用application-prod.yml配置文件
常見錯(cuò)誤
后端內(nèi)置了Mqtt服務(wù),商業(yè)版本也可以選擇使用emqx作為mqtt消息服務(wù)器,兩個(gè)只能使用一個(gè)。
注意一下配置:
# 內(nèi)容位于application.yml文件中
broker:
enabled: false # mqtt服務(wù)端選擇, true: 基于netty的mqttBroker和webSocket false: emq的mqttBroker
port: 1883
websocket-port: 8083
websocket-path: /mqtt
keep-alive: 70 # 系統(tǒng)?;顣r(shí)間,需要大于設(shè)備端包活時(shí)間10秒以上,系統(tǒng)配置70秒,則設(shè)備端60秒以內(nèi)
# 內(nèi)容位于application-dev.yml和application-prod.yml文件中
mqtt:
username: fastbee
password: fastbee
host-url: tcp://localhost:1883 # mqtt連接tcp地址 (使用emqx則設(shè)置為emqx安裝地址)
client-id: ${random.int}
default-topic: test
timeout: 30
keepalive: 30
clearSession: true
四、修改子配置文件
文件位于:springboot/fastbee-admin/src/main/resources/application-dev.yml
,開發(fā)環(huán)境使用,生成環(huán)境可以使用 application-prod
。
spring:
datasource:
dynamic:
druid:
initial-size: 5
min-idle: 10
max-wait: 60000
max-active: 20
timeBetweenEvictionRunsMillis: 60000 # 配置間隔多久才進(jìn)行一次檢測,檢測需要關(guān)閉的空閑連接,單位是毫秒
minEvictableIdleTimeMillis: 300000 # 配置一個(gè)連接在池中最小生存的時(shí)間,單位是毫秒
maxEvictableIdleTimeMillis: 900000 # 配置一個(gè)連接在池中最大生存的時(shí)間,單位是毫秒
validation-query: 'SELECT 1'
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
datasource:
master: # 主庫數(shù)據(jù)源
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/fastbee?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: fastbee
druid:
filters: stat,wall
stat:
# 慢SQL記錄
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
none-base-statement-allow: true
taos: # 配置 taos 數(shù)據(jù)源
enabled: false # 默認(rèn)不啟用TDengine,true=啟用,false=不啟用
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.taosdata.jdbc.TSDBDriver
url: jdbc:TAOS://fastbee:6030/fastbee_log?timezone=UTC-8&charset=utf-8
username: root
password: taosdata
dbName: fastbee_log
redis: # redis 配置
host: localhost # 地址
port: 6379 # 端口,默認(rèn)為6379
database: 0 # 數(shù)據(jù)庫索引
password: fastbee # 密碼
timeout: 10s # 連接超時(shí)時(shí)間
lettuce:
pool:
min-idle: 0 # 連接池中的最小空閑連接
max-idle: 8 # 連接池中的最大空閑連接
max-active: 8 # 連接池的最大數(shù)據(jù)庫連接數(shù)
max-wait: -1ms # 連接池最大阻塞等待時(shí)間(使用負(fù)值表示沒有限制)
mqtt: # mqtt 配置
username: fastbee # 賬號
password: fastbee # 密碼
host-url: tcp://localhost:1883 # mqtt連接tcp地址(指向后端或者emqx的地址)
client-id: ${random.int} # 客戶端Id,不能相同,采用隨機(jī)數(shù) ${random.value}
default-topic: test # 默認(rèn)主題
timeout: 30 # 超時(shí)時(shí)間
keepalive: 30 # 保持連接
clearSession: true # 清除會(huì)話(設(shè)置為false,斷開連接,重連后使用原來的會(huì)話 保留訂閱的主題,能接收離線期間的消息)
提示
重點(diǎn)關(guān)注一下內(nèi)容:
- mysql、tdengine、redis、mqtt的連接地址,以及賬號和密碼
- 使用tdengine需要正確安裝和配置,服務(wù)端、客戶端、驅(qū)動(dòng)保持版本一致
- mqtt的連接地址根據(jù)主配置文件的選擇分別指向后端和emqx的部署地址
五、修改日志配置
日志路徑配置,文件位于:springboot/fastbee-admin/src/main/resources/logback.xml
# 示例( Windows配置D:/logs,Linux配置 /var/data/java/logs)
<property name="log.path" value="/var/data/java/logs" />
六、運(yùn)行項(xiàng)目
運(yùn)行項(xiàng)目 FastBeeApplication.java
,出現(xiàn)下圖表示啟動(dòng)成功。
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* _?_?_ ______ _ ____ *
* | / \ | | ____| | | | _ \ *
* | | | ● | | | | |__ __ _ ___| |_ | |_) | ___ ___ *
* | \ / | | __/ _` / __| __| | _ < / _ \/ _ \ *
* \ / | | | (_| \__ \ |_ | |_) | __/ __/ *
* V |_| \__,_|___/\__| |____/ \___|\___| *
* *
* * * * * * * * * * * * FastBee物聯(lián)網(wǎng)平臺[?啟動(dòng)成功] * * * * * * * * * * *