ThingsBoard初始化数据库Postgres+Cassandra

本章将介绍ThingsBoard初始化数据Postgres+Cassandra,两种数据库结合使用,以及源码的编译安装。本机环境:Centos7、Docker、Postgres、Cassandra

环境安装

开发环境要求:

  1. docker ;
  2. Docker;
  3. Postgres:
  4. Cassandra

 Postgres数据库的安装以及使用,可查看👇文章

https://xulushi.blog.csdn.net/article/details/136784786?spm=1001.2014.3001.5502icon-default.png?t=N7T8https://xulushi.blog.csdn.net/article/details/136784786?spm=1001.2014.3001.5502

1、使用Docker创建Cassandra容器化创建
docker run -p 9042:9042 --name cassandra  -e CASSANDRA_USERNAME=cassandra -e CASSANDRA_PASSWORD=cassandra  -d cassandra:lastest

docker run  :运行容器

name :容器到名称为cassandra

-e CASSANDRA_USERNAME=cassandra  :数据库账号

-e CASSANDRA_PASSWORD=cassandra :数据库密码
9042:9042 :将容器的9042端口映射到主机9042上
-d :程序后台执行

cassandra:lastest cassandra最新版本号

docker logs postgres
 2、使用DBeaverEE链接数据库,(你们也可以用你们自己的根据自己情况)
填入:服务器地址+端口+账号+密码

测试连接是否正常

3、将初始化数据库工程,移动到对应的目录下

4、打开application目录下的thingsboard.yml,更改datasource链接地址 

localhost:修改成你们自己的地址以及数据库名称

username:Cassandra数据库用户名

password:Cassandra数据库密码

cassandra:# Thingsboard cluster namecluster_name: "${CASSANDRA_CLUSTER_NAME:Thingsboard Cluster}"# Thingsboard keyspace namekeyspace_name: "${CASSANDRA_KEYSPACE_NAME:thingsboard}"# Specify node listurl: "${CASSANDRA_URL:47.104.235.15:9042}"# Specify the local data center namelocal_datacenter: "${CASSANDRA_LOCAL_DATACENTER:datacenter1}"ssl:# Enable/disable secure connectionenabled: "${CASSANDRA_USE_SSL:false}"# Enable/disable validation of Cassandra server hostname# If enabled, the hostname of the Cassandra server must match the CN of the server certificatehostname_validation: "${CASSANDRA_SSL_HOSTNAME_VALIDATION:true}"# Set trust store for client authentication of the server (optional, uses trust store from default SSLContext if not set)trust_store: "${CASSANDRA_SSL_TRUST_STORE:}"# The password for Cassandra trust store keytrust_store_password: "${CASSANDRA_SSL_TRUST_STORE_PASSWORD:}"# Set key store for server authentication of the client (optional, uses key store from default SSLContext if not set)# A key store is only needed if the Cassandra server requires client authenticationkey_store: "${CASSANDRA_SSL_KEY_STORE:}"# The password for the Cassandra key storekey_store_password: "${CASSANDRA_SSL_KEY_STORE_PASSWORD:}"# Comma-separated list of cipher suites (optional, uses Java default cipher suites if not set)cipher_suites: "${CASSANDRA_SSL_CIPHER_SUITES:}"# Enable/disable JMXjmx: "${CASSANDRA_USE_JMX:false}"# Enable/disable metrics collection.metrics: "${CASSANDRA_USE_METRICS:false}"# NONE SNAPPY LZ4compression: "${CASSANDRA_COMPRESSION:none}"# Specify cassandra cluster initialization timeout in milliseconds (if no hosts are available during startup)init_timeout_ms: "${CASSANDRA_CLUSTER_INIT_TIMEOUT_MS:300000}"# Specify cassandra cluster initialization retry interval (if no hosts available during startup)init_retry_interval_ms: "${CASSANDRA_CLUSTER_INIT_RETRY_INTERVAL_MS:3000}"# Cassandra max local requests per connectionmax_requests_per_connection_local: "${CASSANDRA_MAX_REQUESTS_PER_CONNECTION_LOCAL:32768}"# Cassandra max remote requests per connectionmax_requests_per_connection_remote: "${CASSANDRA_MAX_REQUESTS_PER_CONNECTION_REMOTE:32768}"# Credential parameterscredentials: "${CASSANDRA_USE_CREDENTIALS:false}"# Specify your usernameusername: "${CASSANDRA_USERNAME:cassandra}"# Specify your passwordpassword: "${CASSANDRA_PASSWORD:cassandra}"# Astra DB connect https://astra.datastax.com/

将遥测数据以及最新数据存放入cassandra中,来较少DB数据库的压力,当在生产环境的情况下,如果说遥测数据未存放到cassandra中,就会给DB造成巨大的压力

# Database telemetry parameters
database:ts_max_intervals: "${DATABASE_TS_MAX_INTERVALS:700}" # Max number of DB queries generated by a single API call to fetch telemetry recordsts:type: "${DATABASE_TS_TYPE:cassandra}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)ts_latest:type: "${DATABASE_TS_LATEST_TYPE:cassandra}" # cassandra, sql, or timescale (for hybrid mode, DATABASE_TS_TYPE value should be cassandra, or timescale)
5、 初始化数据库

完成后分别查看cassandra和postgres数据库的表结构是否都创建成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/763980.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qwen及Qwen-audio大模型微调项目汇总

Qwen及Qwen-audio可微调项目调研 可用来微调方法/项目汇总ps.大语言模型基础资料 可用来微调方法/项目汇总 Qwen github 项目自带的finetune脚本 可以参考https://blog.csdn.net/qq_45156060/article/details/135153920PAI-DSW中微调千问大模型(阿里云的一个产品&a…

maven archetype 和普通的maven有啥区别

Maven是一个项目管理和构建自动化工具,主要用于Java项目,它基于项目对象模型(POM)。Maven可以通过其POM文件管理项目的构建、报告和文档。 而Maven Archetype是Maven的一个插件,主要用于为用户创建基于某个模版的新项…

Django日志(一)

一、概念与配置 1.1、概述 日志是程序员经常在代码中使用快速和方便的调试工具。它在调试方面比print更加的优雅和灵活 而且日志记录对于调试很有用,可以提供更多,更好的结构化,有关应用程序的状态和运行状况的信息 Django框架的日志通过python内置的logging模块实现的,可…

TCP TLS

TCP(传输控制协议)是一种面向连接的协议,用于在网络上可靠地传输数据。它提供了数据分段、重传、流量控制和拥塞控制等功能,以确保数据的可靠传输。TCP在传输层上工作,它使用IP(Internet协议)作…

LeetCode2671. Frequency Tracker

文章目录 一、题目二、题解 一、题目 Design a data structure that keeps track of the values in it and answers some queries regarding their frequencies. Implement the FrequencyTracker class. FrequencyTracker(): Initializes the FrequencyTracker object with …

前端视角如何理解“时间复杂度O(n)”

定义 时间复杂度是O(n) 意味着算法的执行时间与输入数据的大小成正比。 这里的n表示输入数据的数量。 假设有一个数组,需要遍历这个数组并打印出每个元素的值。 这个操作的时间复杂度就是O(n),因为你需要执行n次操作,其中n是数组的长度。 …

力扣由浅至深 每日一题.11 加一

少年气,是历经千帆举重若轻地沉淀,也是乐观淡然笑对生活的豁达 —— 24.3.22 加一 给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以…

IPC通信--socket

1.windows环境 在C中,Windows环境下实现socket通信的客户端与服务端的流程如下: 创建套接字:使用socket()函数创建一个套接字。绑定套接字:使用bind()函数将套接字与一个地址(IP和端口)绑定在一起。监听连…

基于Gabor滤波器的指纹图像识别,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

2024年【山东省安全员C证】考试试卷及山东省安全员C证复审模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 山东省安全员C证考试试卷是安全生产模拟考试一点通生成的,山东省安全员C证证模拟考试题库是根据山东省安全员C证最新版教材汇编出山东省安全员C证仿真模拟考试。2024年【山东省安全员C证】考试试卷及山东省…

一个线程可以有几个Handler,几个Looper,几个MessageQueue对象?

一个线程可以有多个Handler,但是只有一个Looper对象,只有一个MessageQueue对象。 在Looper的prepare方法中创建了Looper对象,并放入到ThreadLocal中,并通过ThreadLocal来获取looper的对象, ThreadLocal的内部维护了一个ThreadLocalMap类, 里…

【Linux】信号的处理{信号处理的时机/了解寄存器/内核态与用户态/信号操作函数}

文章目录 0.对于信号捕捉的理解1.信号处理的时机1.1 何时处理信号?1.2 内核态和用户态1.3 内核态和用户态的切换 2.了解寄存器3.信号捕捉的原理4.信号操作函数4.1sighandler_t signal(int signum, sighandler_t handler);4.2int sigaction(int signum, const struct…

express+mysql+vue,从零搭建一个商城管理系统15--快递查询(对接快递100)

提示:学习express,搭建管理系统 文章目录 前言一、安装md5,axios二、新建config/logistics.js三、修改routes/order.js四、查询物流信息五、试错与误区总结 前言 需求:主要学习express,所以先写service部分 快递100API…

工业项目中你连DCS系统都没见过?

什么是DCS DCS,即分散控制系统,是一种用于监控和控制工业过程的系统。它通过连接多个控制器、传感器和执行器实现自动化控制,提高生产效率和安全性。在中国,随着工业化和自动化水平的提高,DCS技术得到了广泛应用和快速…

创建Message对象的方式及区别?Message.obtain()怎么维护消息池 ?Handler 有哪些发送消息的方法?

Message对象创建的方式有哪些, 区别? 直接new一个obtain()方法获取handler.obtainMessage()方法获取。 下面两个方式是从对象池中获取,可以避免message对象重复的创建。 Message.obtain()怎么维护消息池的Handler &…

外包干了10天,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

推免保研夏令营/预推免面试记录—北大软微

0x00简述 0x01 面试经历 0x02 相关资料下载 0x00简述 0x01 面试经历 0x02 相关资料下载 挖坑待写

SpringMVC 简介及入门级的快速搭建详细步骤

MVC 回顾 MVC,即Model-View-Controller(模型-视图-控制器)设计模式,是一种广泛应用于软件工程中,特别是Web应用开发中的架构模式。它将应用程序分为三个核心组件: Model(模型)&#…

面试问答示范

文章目录 请做个自我介绍您的学历是统招吗?可以在学信网查询吗是全日制吗是双证吗?请介绍一下你上家公司的情况。介绍一下你们公司的服务器架构(网络架构)。说说你在工作中处理过的最棘手的技术问题讲一讲上家公司做过的项目为什么…

网络安全作业4

title: 文件上传/文件包含漏洞学习 date: 2016-04-25 21:52:19 categories: 安全 tags: Web安全 ** 文件上传漏洞 ** 在Web程序中,经常需要用到文件上传的功能。如用户或者管理员上传图片,或者其它文件。如果没有限制上传类型或者限制不严格被绕过&…