DBAPI安装教程

2023-09-21 11:58:19

安装教程

请先下载安装包。默认账户admin/admin

为了便于您理解安装的时候需要配置的参数,请您先学习日志监控相关的功能设计

本地部署单机版

  • 依赖java环境,先自行在服务器安装jdk8+,并配置环境变量
  • 下载安装包解压到需要安装的目录
  • 修改conf/application.properties文件中的以下配置
# api访问路径的统一根路径,example: http://192.168.xx.xx:8520/api/xxx
# api context
dbapi.api.context=api

# 如果不修改数据库地址将默认使用自带的内嵌元数据库sqlite
# 元数据库地址,可以使用mysql或者自带的sqlite
spring.datasource.dynamic.datasource.meta-db.driver-class-name=org.sqlite.JDBC
spring.datasource.dynamic.datasource.meta-db.url=jdbc:sqlite::resource:sqlite.db
spring.datasource.dynamic.datasource.meta-db.username=
spring.datasource.dynamic.datasource.meta-db.password=

# 将API访问日志写入日志数据库(推荐clickhouse)的方式,值只能是db/kafka/null
# db代表dbapi直连日志数据库,直接将API访问日志写入日志数据库
# kafka代表dbapi将API访问日志写入kafka,用户需要自行从kafka收集日志写入日志数据库
# null代表dbapi只会将API访问日志写入本地磁盘文件(logs/dbapi-access.log),用户需要自行从磁盘文件收集日志写入日志数据库
access.log.writer=null

# 日志数据库地址,推荐使用clickhouse,如果您不需要使用页面上的监控功能,可以不配置日志数据库地址
spring.datasource.dynamic.datasource.access-log-db.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
spring.datasource.dynamic.datasource.access-log-db.url=jdbc:clickhouse://127.0.0.1:8123/default
spring.datasource.dynamic.datasource.access-log-db.username=default
spring.datasource.dynamic.datasource.access-log-db.password=123456

# 如果配置了access.log.writer=kafka,那么还需要配置kafka地址和日志写入的topic
access.log.kafka.topic=dbapi_access_log
spring.kafka.bootstrap-servers=127.0.0.1:9092

如果配置了mysql作为元数据库,请先在mysql执行初始化脚本sql/ddl_mysql.sql
如果配置了日志数据库地址,请先在日志数据库执行初始化脚本,DBAPI提供了clickhouse和mysql的脚本:sql/access_log_clickhouse.sqlsql/access_log_mysql.sql

  • Linux一键启停
sh bin/dbapi-daemon.sh start standalone
sh bin/dbapi-daemon.sh stop standalone
  • 如果是windows操作系统请右键点击bin/dbapi.ps1文件,选择使用PowerShell运行

注意windows系统只支持standalone模式运行,不支持集群模式

  • 第一次启动系统会自动退出,需要激活,激活后重启即可使用

  • 浏览器访问http://192.168.xx.xx:8520进入UI

本地部署集群版

  • 集群部署依赖nacosmysqlredis,请先自行安装nacos(推荐1.4.2版本)、mysqlredis
  • 准备多台机器,每台安装jdk8+并配置java环境变量
  • 选一台机器host1作为部署机,配置host1到其他每台机器的ssh免密登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

for ip in host2 host3;     # 请将此处 host2 host3 替换为自己要部署的机器的 hostname
do
  ssh-copy-id  $ip   # 该操作执行过程中需要手动输入部署用户的密码
done
  • 下载安装包并解压到部署机host1需要安装的目录

  • 在mysql创建新的数据库,并执行初始化脚本sql/ddl_mysql.sql

  • 修改conf/application.properties文件中的以下配置

#################################### please config properties below #####################################
# api访问路径的统一根路径,example: http://192.168.xx.xx:8520/api/xxx
# api context
dbapi.api.context=api

# 元数据库地址,集群版只能使用mysql
spring.datasource.dynamic.datasource.meta-db.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.dynamic.datasource.meta-db.url=jdbc:mysql://127.0.0.1:3306/dbapi?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.dynamic.datasource.meta-db.username=root
spring.datasource.dynamic.datasource.meta-db.password=root

# 将API访问日志写入日志数据库(推荐clickhouse)的方式,值只能是db/kafka/null
# db代表dbapi直连日志数据库,直接将API访问日志写入日志数据库
# kafka代表dbapi将API访问日志写入kafka,用户需要自行从kafka收集日志写入日志数据库
# null代表dbapi只会将API访问日志写入本地磁盘文件(logs/dbapi-access.log),用户需要自行从磁盘文件收集日志写入日志数据库
access.log.writer=null

# 日志数据库地址,推荐使用clickhouse,如果您不需要使用页面上的监控功能,可以不配置日志数据库地址
spring.datasource.dynamic.datasource.access-log-db.driver-class-name=ru.yandex.clickhouse.ClickHouseDriver
spring.datasource.dynamic.datasource.access-log-db.url=jdbc:clickhouse://127.0.0.1:8123/default
spring.datasource.dynamic.datasource.access-log-db.username=default
spring.datasource.dynamic.datasource.access-log-db.password=123456

# 如果配置了access.log.writer=kafka,那么还需要配置kafka地址和日志写入的topic
access.log.kafka.topic=dbapi_access_log
spring.kafka.bootstrap-servers=127.0.0.1:9092

############################## if cluster, please config properties below ##############################

# nacos address, needed if cluster mode
spring.cloud.nacos.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.username=nacos
spring.cloud.nacos.discovery.password=nacos
spring.cloud.nacos.discovery.namespace=public

# redis address, needed if cluster mode
spring.redis.host=localhost
spring.redis.port=6379
spring.redis.database=0
spring.redis.password=

如果配置了日志数据库地址,请先在日志数据库执行初始化脚本,DBAPI提供了clickhouse和mysql的脚本:sql/access_log_clickhouse.sqlsql/access_log_mysql.sql

  • 修改conf/install_config.conf文件,配置要安装的机器节点
# 所有要安装DBApi的主机ip或hostname,用逗号分隔
ips=host1,host2,host3

sshPort=22

# 要安装gateway的主机
gateway=host1

# 要安装apiServer的主机,多个用逗号分隔
apiServers=host1,host2,host3

# 要安装manager的主机
manager=host2
  • 拷贝host1中的安装文件到其他每台机器的相同目录,可使用脚本一键拷贝
sh bin/scp-host.sh
  • 集群操作脚本
# 一键启动集群
sh bin/start-all.sh

# 一键停止集群
sh bin/stop-all.sh

# 手动启停单个服务
sh bin/dbapi-daemon.sh start gateway
sh bin/dbapi-daemon.sh start manager
sh bin/dbapi-daemon.sh start apiServer

sh bin/dbapi-daemon.sh stop gateway
sh bin/dbapi-daemon.sh stop manager
sh bin/dbapi-daemon.sh stop apiServer

  • 第一次启动系统会自动退出,需要激活,激活后重启即可使用

  • 浏览器访问http://192.168.xx.xx:8523进入UI; API通过gateway来访问http://192.168.xx.xx:8525/api/xx

总结

更多推荐

归并排序的思想

归并排序是一种基于分治思想的经典排序算法。它将待排序的数组分成两个部分,然后递归地对这两个部分进行排序,最后再将排序好的两个部分归并成一个有序的数组。具体实现过程如下:1.将待排序数组不断二分,直到只剩下一个元素,此时该元素就是有序的。2.将相邻的两个有序数组合并成一个有序数组。合并时,对于两个数组中首位元素进行比较,

SpringBoot中Filter和Interceptor快速入门

一、Filter1.定义说明:filter文件里面DemoFilter类实现Filter接口。packagecom.itheima.filter;importjavax.servlet.*;importjavax.servlet.annotation.WebFilter;importjava.io.IOExceptio

计算机二级python基础题刷题笔记(三)

hello,看到三的小伙伴们你们已经超过30%的对手啦!接下来也要加油呀代码没有最好,只有更好,如果你有更好的想法答案欢迎在评论区里发表呀1、将程序里定义好的std列表里的姓名和成绩与已经定义好的模板拼成一段话,显示在屏幕里。std=[['张三',90,87,95],['李四',83,80,87],['王五',73,5

临沂ITSS认证流程,认证条件

ITSS认证流程,认证条件一、ITSS的意义ITSS认证——信息技术服务标准,是在工业和信息化部、国家标准化委的领导和支持下,由ITSS工作组研制的一套IT服务领域的标准库和一套提供IT服务的方法论。ITSS认证-信息技术服务标准是一套成体系和综合配套的信息技术服务标准库,全面规范了IT服务产品及其组成要素,用于指导实

进阶JS-reduce用法

reduce()reduce()方法为循环遍历数组,将其结果汇总为单个返回值,最常用的场景有数组求和、数组求积、数组中元素出现的次数、数组去重等等。语法:arr.reduce(function(prev,cur,index,arr){...},init);参数:prev必需。累计器累计回调的返回值;表示上一次调用回调时

攻防世界-web-ics-05

ics-05GFSJ0332积分3金币377最佳Writeup由darkless提供收藏反馈难度:3方向:Web题解数:35解出人数:6403题目来源:XCTF题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统题目场景:http://61.147.171.105:53619100%倒计时:3时59分0秒

代码随想录训练营第四十八天|198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

198.打家劫舍力扣题目链接(opensnewwindow)你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你不触动警报装置的情况下,一

ChatGPT:Java中的try-catch-finally及return语句的执行顺序解析

ChatGPT:Java中的try-catch-finally及return语句的执行顺序解析Java中的try-catch-finally,为什么try里面有return语句,finally里面的语句还能执行ChatGPT:在Java中,当在try块中存在return语句时,finally块中的语句仍然会执行。这是因

深入理解Ansible:简化服务器管理和自动化任务的利器

导言:在现代IT环境中,管理和维护服务器和应用程序变得愈发复杂,而自动化工具如Ansible成为了解决这些挑战的关键。本文将详细介绍什么是Ansible,以及如何使用它来简化服务器管理和自动化任务。第一部分:什么是Ansible?Ansible是一款开源的自动化工具,用于配置管理、应用程序部署和任务自动化。它基于SSH

docker中已创建容器的修改方法

环境信息以CentOS8为例停止容器#dockerstop容器名或iddockerstopmysql停止docker服务systemctlstopdocker修改docker配置文件配置文件在:/var/lib/docker/containers/{容器id}如:/var/lib/docker/containers/9

玫瑰代码||逐字打印字体||中秋快乐

关注微信公众号「ClassmateJie」更多惊喜等待你的发掘直接看实现效果电脑端手机端使用场景发给女神告白~提供一些文案“自从遇见你,我的世界变得不一样了。每一天都因为你而变得特别。我想告诉你,我喜欢你,不仅仅是因为你的美丽,还因为你温暖的心灵和聪明的头脑。"“我一直在寻找那个能让我心动的人,而现在我知道,那个人就是

热文推荐