当前位置: 首页 > news >正文

nacos 外置mysql数据库操作(docker 环境)

目录

一、外置mysql数据库原因:

二、数据库准备工作

三、构建nacos容器

四、效果展示


一、外置mysql数据库原因:

       想知道nacos如何外置mysql数据库之前,我们首先要知道为什么要外置mysql数据库,或者说这样做有什么优点和好处,我将其分为以下几点:

1、数据持久性:使⽤MySQL作为外置数据库可以确保数据被持久化存储,这对于确保服务的稳定性和数据的可靠性⾄关重要。
2、⾼可⽤性:Nacos⽀持集群部署,⽽使⽤MySQL作为共享的数据存储可以确保集群中各个节点之间的数据⼀致性。此外,MySQL⾃⾝也⽀持⾼可⽤性和故障转移,如使⽤主从复制或集群解决⽅案,从⽽进⼀步提⾼系统的可⽤性。
3、性能优化:使⽤nacos内置的数据库虽然能够简化部署,但是性能受到限制,外置的MySQL可以根据需要进⾏优化和扩展,满⾜更⾼的性能要求。
4、易于管理和维护:⾸先我们系统本⾝采⽤MySQL数据库,nacos外置数据库和我们系统采⽤同样的数据库可以保证技术使⽤的统⼀。简化了数据库的管理和维护⼯作,降低运维成本。

二、数据库准备工作

       首先在你需要作为外置数据库的mysql中,建库,建相应的表,可以使用下图我演示的sql,也可以参考官方github文档阿里巴巴nacos

create database nacos_dev;use nacos_dev;
CREATE TABLE `config_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) DEFAULT NULL COMMENT 'group_id',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) DEFAULT '' COMMENT '租⼾字段',`c_desc` varchar(256) DEFAULT NULL COMMENT 'configuration description',`c_use` varchar(64) DEFAULT NULL COMMENT 'configuration usage',`effect` varchar(64) DEFAULT NULL COMMENT '配置⽣效的描述',`type` varchar(64) DEFAULT NULL COMMENT '配置的类型',`c_schema` text COMMENT '配置的模式',`encrypted_data_key` text NOT NULL COMMENT '密钥',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfo_datagrouptenant` (`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='config_info';CREATE TABLE `config_info_aggr` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`datum_id` varchar(255) NOT NULL COMMENT 'datum_id',`content` longtext NOT NULL COMMENT '内容',`gmt_modified` datetime NOT NULL COMMENT '修改时间',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`tenant_id` varchar(128) DEFAULT '' COMMENT '租⼾字段',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfoaggr_datagrouptenantdatum`
(`data_id`,`group_id`,`tenant_id`,`datum_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='增加租⼾字段';CREATE TABLE `config_info_beta` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`beta_ips` varchar(1024) DEFAULT NULL COMMENT 'betaIps',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',`tenant_id` varchar(128) DEFAULT '' COMMENT '租⼾字段',`encrypted_data_key` text NOT NULL COMMENT '密钥',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfobeta_datagrouptenant`
(`data_id`,`group_id`,`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
COMMENT='config_info_beta';CREATE TABLE `config_info_tag` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`tag_id` varchar(128) NOT NULL COMMENT 'tag_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',PRIMARY KEY (`id`),UNIQUE KEY `uk_configinfotag_datagrouptenanttag`
(`data_id`,`group_id`,`tenant_id`,`tag_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
COMMENT='config_info_tag';CREATE TABLE `config_tags_relation` (`id` bigint(20) NOT NULL COMMENT 'id',`tag_name` varchar(128) NOT NULL COMMENT 'tag_name',`tag_type` varchar(64) DEFAULT NULL COMMENT 'tag_type',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`tenant_id` varchar(128) DEFAULT '' COMMENT 'tenant_id',`nid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'nid, ⾃增⻓标识',PRIMARY KEY (`nid`),UNIQUE KEY `uk_configtagrelation_configidtag` (`id`,`tag_name`,`tag_type`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
COMMENT='config_tag_relation';CREATE TABLE `group_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`group_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Group ID,空字符表⽰整个集
群',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表⽰使⽤默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使⽤量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置⼤⼩上限,单位
为字节,0表⽰使⽤默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合⼦配置最⼤
个数,,0表⽰使⽤默认值',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的⼦
配置⼤⼩上限,单位为字节,0表⽰使⽤默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最⼤变更历史
数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_group_id` (`group_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='集群、各Group容量
信息表';CREATE TABLE `his_config_info` (`id` bigint(20) unsigned NOT NULL COMMENT 'id',`nid` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'nid, ⾃增标识',`data_id` varchar(255) NOT NULL COMMENT 'data_id',`group_id` varchar(128) NOT NULL COMMENT 'group_id',`app_name` varchar(128) DEFAULT NULL COMMENT 'app_name',`content` longtext NOT NULL COMMENT 'content',`md5` varchar(32) DEFAULT NULL COMMENT 'md5',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',`src_user` text COMMENT 'source user',`src_ip` varchar(50) DEFAULT NULL COMMENT 'source ip',
`op_type` char(10) DEFAULT NULL COMMENT 'operation type',`tenant_id` varchar(128) DEFAULT '' COMMENT '租⼾字段',`encrypted_data_key` text NOT NULL COMMENT '密钥',PRIMARY KEY (`nid`),KEY `idx_gmt_create` (`gmt_create`),KEY `idx_gmt_modified` (`gmt_modified`),KEY `idx_did` (`data_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='多租⼾改造';CREATE TABLE `tenant_capacity` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键ID',`tenant_id` varchar(128) NOT NULL DEFAULT '' COMMENT 'Tenant ID',`quota` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '配额,0表⽰使⽤默认值',`usage` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '使⽤量',`max_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个配置⼤⼩上限,单位
为字节,0表⽰使⽤默认值',`max_aggr_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '聚合⼦配置最⼤
个数',`max_aggr_size` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '单个聚合数据的⼦
配置⼤⼩上限,单位为字节,0表⽰使⽤默认值',`max_history_count` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最⼤变更历史
数量',`gmt_create` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gmt_modified` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='租⼾容量信息表';CREATE TABLE `tenant_info` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',`kp` varchar(128) NOT NULL COMMENT 'kp',`tenant_id` varchar(128) default '' COMMENT 'tenant_id',`tenant_name` varchar(128) default '' COMMENT 'tenant_name',`tenant_desc` varchar(256) DEFAULT NULL COMMENT 'tenant_desc',`create_source` varchar(32) DEFAULT NULL COMMENT 'create_source',`gmt_create` bigint(20) NOT NULL COMMENT '创建时间',`gmt_modified` bigint(20) NOT NULL COMMENT '修改时间',PRIMARY KEY (`id`),UNIQUE KEY `uk_tenant_info_kptenantid` (`kp`,`tenant_id`),KEY `idx_tenant_id` (`tenant_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='tenant_info';CREATE TABLE `users` (`username` varchar(50) NOT NULL PRIMARY KEY COMMENT 'username',`password` varchar(500) NOT NULL COMMENT 'password',`enabled` boolean NOT NULL COMMENT 'enabled'
);
CREATE TABLE `roles` (`username` varchar(50) NOT NULL COMMENT 'username',`role` varchar(50) NOT NULL COMMENT 'role',UNIQUE INDEX `idx_user_role` (`username` ASC, `role` ASC) USING BTREE
);
CREATE TABLE `permissions` (`role` varchar(50) NOT NULL COMMENT 'role',`resource` varchar(128) NOT NULL COMMENT 'resource',`action` varchar(8) NOT NULL COMMENT 'action',UNIQUE INDEX `uk_role_permission` (`role`,`resource`,`action`) USING BTREE
);
INSERT INTO users (username, password, enabled) VALUES ('nacos',
'$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu', TRUE);
INSERT INTO roles (username, role) VALUES ('nacos', 'ROLE_ADMIN');

建好后效果如下:

三、构建nacos容器

首先需要查看docker 中 mysql的ip地址,可以通过docker inspect mysql容器名 查看,例如:

然后再通过 docker run命名来创建nacos容器并运行

docker run -d -p 8848:8848 -p 9848:9848 --name ${容器名} -e MODE=standalone -e 
JVM_XMS=256m -e JVM_XMX=256m -e SPRING_DATASOURCE_PLATFORM=mysql -e 
MYSQL_SERVICE_HOST=${mysql_ip} -e MYSQL_SERVICE_PORT=${mysql_port} -e 
MYSQL_SERVICE_DB_NAME=${nacos_db_name} -e MYSQL_SERVICE_USER=${mysql_user} -e 
MYSQL_SERVICE_PASSWORD=${mysql_password} nacos/nacos-server:v2.2.3

将容器名改为自己想要取的,mysql_ip改为刚刚查询到的ip地址,端口号为3306(注:这里不要填你宿主机映射的端口号,而是mysql本身应用启动的端口号,除非你去修改了my.cnf中配置的端口号,那你就用你改的),nacos_db_name,填刚刚我们在mysql中创建的数据库名,nacos_dev,然后就是mysql的用户名和密码,最后是镜像名,也就是你自己pull的nacos镜像。(注:填写的用户需要对刚刚创建的库有操作权限,可以使用grant命令赋权)。

四、效果展示

这里我随意添加两项配置。

然后我们来观察数据库表中是否存储有数据

可以看到我们的配置进行了持久化存储。至此我们就成功的实现了nacos外置mysql数据库!!!

感谢你能看到这,希望对你有所帮助!!!

相关文章:

nacos 外置mysql数据库操作(docker 环境)

目录 一、外置mysql数据库原因: 二、数据库准备工作 三、构建nacos容器 四、效果展示 一、外置mysql数据库原因: 想知道nacos如何外置mysql数据库之前,我们首先要知道为什么要外置mysql数据库,或者说这样做有什么优点和好处&am…...

Windows 10 ARM64平台MFC串口程序开发

Windows 10 IoT ARM64平台除了支持新的UWP框架,也兼容支持老框架MFC。使得用户在Windows 10 IoT下可以对原MFC工程进行功能升级,不用在新框架下重写整个工程。熟悉MFC开发的工程师也可以在Windows 10 IoT平台下继续使用MFC进行开发。 本文展示MFC串口程序…...

怎么使用pm2启动和暂停后端程序(后端架构nodejs+koa)

首先查看自己的pm2进程 pm2 list 或者 pm2 status 如果什么进程都没有,但是你确实有后端程序运行在服务器上,使用以下查看pm2程序的启动用户 ps aux | grep pm2就可以看到具体的用户和进行的信息 接着转换到你要操作的pm2的进程用户下 sudo su - …...

AI人工智能-Jupyter NotbookPycharm:Py开发

安装 命令: pip install jupyter 启动 命令: jupyter notebook 启动成功后,下面网址会默认自动打开当前用户的根目录。 其实这个页面显示的内容,是我们电脑目录C:\Users\当前用户\下的文件夹 我们平常做实验,希望在…...

uniapp-小程序地图展示

一、当前页面直接获取 <view class"map"><map id"myMap" style"width: 100%; height: 40vh;" :latitude"latitude":longitude"longitude" :markers"markers" :scale"scale" :show-location&qu…...

使用 Python 进行链上数据监控:让区块链数据触手可及

使用 Python 进行链上数据监控:让区块链数据触手可及 区块链技术正以前所未有的速度改变着各行各业,特别是在金融、供应链、物联网和智能合约等领域的应用,已经成为了一种新常态。然而,随着区块链网络的快速扩展和去中心化特性的不断强化,数据的可视化与监控变得愈发重要…...

CentOS 7 磁盘及分区管理笔记

一、查看磁盘信息 1. lsblk 命令 作用&#xff1a;列出系统中所有的块设备&#xff08;包括磁盘、分区等&#xff09;及其相关信息&#xff0c;如设备名称、大小、类型等。 命令格式&#xff1a;lsblk 示例&#xff1a; lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sd…...

python基础学习二(列表及字典的使用)

文章目录 列表列表的创建获取列表中的多个元素判断列表中元素是否存在列表元素的添加操作列表元素的删除操作列表元素的修改列表的排序列表生成式 字典字典的创建字典的常规操作字典的常用操作字典的视图操作字典元素的遍历字典的特点字典的生成式 列表 一个对象由id&#xff0…...

【NLP 50、损失函数 KL散度】

目录 一、定义与公式 1.核心定义 2.数学公式 3.KL散度与交叉熵的关系 二、使用场景 1.生成模型与变分推断 2.知识蒸馏 3.模型评估与优化 4.信息论与编码优化 三、原理与特性 1.信息论视角 ​2.优化目标 3.​局限性 四、代码示例 代码运行流程 核心代码解析 抵达梦想靠的不是狂热…...

macOS Jdk1.8安装(目前主流版本的jdk)

Jdk1.8安装 1、jdk安装包下载链接2、下载安装包(根据自己是什么系统进行下载)3、下载完成之后双击安装包进行安装安装好之后查看查看安装的版本需要查看JDK的安装路径(一般在/Library/Java/JavaVirtualMachines)配置环境变量1、jdk安装包下载链接 jdk8下载链接 https://www.…...

树莓派5智能家居中控:HomeAssistant全配置指南

一、硬件选型与系统架构 1.1 树莓派5的硬件优势 2023年发布的树莓派5采用Broadcom BCM2712处理器&#xff08;4核Cortex-A76架构&#xff09;&#xff0c;相比前代产品具有三大突破性改进&#xff1a; 接口升级&#xff1a;首次支持PCIe 2.0接口&#xff0c;可扩展万兆网卡或…...

Dubbo(22)如何配置Dubbo的服务提供者?

配置Dubbo的服务提供者是实现分布式服务架构的重要步骤。服务提供者负责将服务注册到注册中心&#xff0c;使得服务消费者可以发现并调用这些服务。下面以一个完整的Spring Boot项目为例&#xff0c;详细介绍如何配置Dubbo的服务提供者。 配置步骤 引入依赖&#xff1a;在项目…...

【通道注意力机制】【SENet】Squeeze-and-Excitation Networks

0.论文摘要 卷积神经网络建立在卷积操作的基础上&#xff0c;通过融合局部感受野内的空间和通道信息来提取有意义的特征。为了增强网络的表示能力&#xff0c;最近的一些方法展示了增强空间编码的好处。在本研究中&#xff0c;我们专注于通道关系&#xff0c;并提出了一种新颖…...

【SPP】蓝牙串口协议(SPP)深度解析:从 RS232 仿真到设备互联的技术实现

目录 一、SPP协议概述 1.1 SPP的定位与核心功能 1.2 协议栈层次(SPP 协议模型) 1.3 技术原理 1.4 用户需求 二、设备角色与连接模型 2.1 角色定义(DevA 与 DevB 交互) 2.2 角色动态切换 2.3 协议依赖关系 三、数据传输:从 RS232 到蓝牙的映射 3.1 控制信号仿真…...

5.Excel:从网上获取数据

一 用 Excel 数据选项卡获取数据的方法 连接。 二 要求获取实时数据 每1分钟自动更新数据。 A股市场_同花顺行情中心_同花顺财经网 用上面方法将数据加载进工作表中。 在表格内任意区域右键&#xff0c;刷新。 自动刷新&#xff1a; 三 缺点 Excel 只能爬取网页上表格类型的…...

基于RFID技术建筑物资材料智能管理解决方案

建筑行业仓库和物资材料管理面临诸多挑战&#xff0c;如工程设备重复利用的管理需求、物资出入库管理不规范、账物不符、物资丢失等问题。特别是在复杂多变的工地环境中&#xff0c;对物资进行科学规范的管理难度极大。上海岳冉基于RFID技术的建筑物资材料智能管理解决方案聚焦…...

详解CountDownLatch底层源码

大家好&#xff0c;我是此林。 今天来分享一下CountDownLatch的底层源码。 CountDownLatch 是 Java 并发包 (java.util.concurrent) 中的线程之间同步工具类&#xff0c;主要用于协调多个线程的执行顺序。其核心思想是通过计数器实现线程间的"等待-唤醒"机制&#…...

Python每日一题(9)

Python每日一题 2025.3.29 一、题目二、分析三、源代码四、deepseek答案五、源代码与ai分析 一、题目 question["""企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%,利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部…...

一阶谓词逻辑表示法、产生式表示法、框架表示法深度对比

前文我们已经深度学习了一阶谓词逻辑表示法、产生式表示法和框架表示法这三种知识表示方法,那么它们之间有什么异同点呢?接下来我们对它们进行深度对比。 首先,我得回忆这三种知识表示方法的基本概念和特点。 (1)一阶谓词逻辑(FOPL)是基于形式逻辑的,使用谓词、变量、量…...

Tomcat生产服务器性能优化

试想以下这个情景&#xff1a;你已经开发好了一个程序&#xff0c;这个程序的排版很不错&#xff0c;而且有着最前沿的功能和其他一些让你这程序增添不少色彩的元素。可惜的是&#xff0c;程序的性能不怎么地。你也十分清楚&#xff0c;若现在把这款产品退出市场&#xff0c;肯…...

【算法day25】 最长有效括号——给你一个只包含 ‘(‘ 和 ‘)‘ 的字符串,找出最长有效(格式正确且连续)括号子串的长度。

32. 最长有效括号 给你一个只包含 ‘(’ 和 ‘)’ 的字符串&#xff0c;找出最长有效&#xff08;格式正确且连续&#xff09;括号子串的长度。 https://leetcode.cn/problems/longest-valid-parentheses/ 2.方法二&#xff1a;栈 class Solution { public:int longestValid…...

Python之变量与数据类型总结

前言 一、基本数据类型 1、整数&#xff08;int&#xff09; 2、浮点数&#xff08;float&#xff09; 3、布尔值&#xff08;bool&#xff09; 4、字符串&#xff08;str&#xff09; 二、复合数据类型 1、列表&#xff08;list&#xff09; 1.1、列表基础 1.1.1、列…...

【大模型基础_毛玉仁】5.3 附加参数法:T-Patcher

目录 5.3 附加参数法&#xff1a;T-Patcher5.3.1 补丁的位置1&#xff09;键值存储体2&#xff09;补丁设计 5.3.2 补丁的形式5.3.3 补丁的实现1&#xff09;准确性2&#xff09;局部性 5.3 附加参数法&#xff1a;T-Patcher 附加参数法&#xff1a;通过引入可训练的额外参数实…...

【19期获取股票数据API接口】如何用Python、Java等五种主流语言实例演示获取股票行情api接口之沪深A股实时交易数据及接口API说明文档

​ 在量化分析领域&#xff0c;实时且准确的数据接口是成功的基石。经过多次实际测试&#xff0c;我将已确认可用的数据接口分享给正在从事量化分析的朋友们&#xff0c;希望能够对你们的研究和工作有所帮助&#xff0c;接下来我会用Python、JavaScript&#xff08;Node.js&…...

RSA 简介及 C# 和 js 实现【加密知多少系列_4】

〇、简介 谈及 RSA 加密算法&#xff0c;我们就需要先了解下这两个专业名词&#xff0c;对称加密和非对称加密。 对称加密&#xff1a;在同一密钥的加持下&#xff0c;发送方将未加密的原文&#xff0c;通过算法加密成密文&#xff1b;相对的接收方通过算法将密文解密出来原文…...

Koordinator-Metric查询

以CollectAllPodMetricsLast()举例,看看koordinator怎样使用tsdb进行查询。 CollectAllPodMetricsLast() GenerateQueryParamsLast()传入metric采集间隔2倍时间调用CollectAllPodMetrics()func CollectAllPodMetricsLast(statesInformer statesinformer.StatesInformer, metr…...

LeetCode1两数之和

**思路&#xff1a;**懒得写了&#xff0c;如代码所示 /*** Note: The returned array must be malloced, assume caller calls free().*/ struct hashTable {int key;//存值int val;//存索引UT_hash_handle hh; }; int* twoSum(int* nums, int numsSize, int target, int* re…...

AOA与TOA混合定位,MATLAB例程,三维空间下的运动轨迹,滤波使用EKF,附下载链接

本文介绍一个MATLAB代码&#xff0c;实现基于 到达角&#xff08;AOA&#xff09; 和 到达时间&#xff08;TOA&#xff09; 的混合定位算法&#xff0c;结合 扩展卡尔曼滤波&#xff08;EKF&#xff09; 对三维运动目标的轨迹进行滤波优化。代码通过模拟动态目标与基站网络&am…...

Java算法模板

合并区间 统计不同区间的元素个数 //合并区间List<Integer> result new ArrayList<>();int start intervals.get(0)[0];int end intervals.get(0)[1];for(int i1;i<intervals.size();i){int[] curr intervals.get(i);if(curr[0]>end){//不能合并&…...

软件架构设计中的软件过程模型初识

软件架构设计中的软件过程模型是指导软件开发过程的框架&#xff0c;它们定义了软件开发的不同阶段、活动、任务和角色。结合具体的使用场景&#xff0c;可以更好地理解这些模型如何在实际项目中应用。以下将详细介绍几种常见的软件过程模型&#xff0c;并结合典型场景进行讲解…...

征程 6E mipi tx 系列之方案介绍

MIPI TX 到车机显示系统设计指南 IDE 介绍 征程 6 IDE 架构图 IDE&#xff08;Image Display Engine&#xff09;包含图像显示单元&#xff08;Image Display Unit&#xff09;、图像数据输出模块&#xff08;MIPI CSI2 Device 和 MIPI DSI&#xff09;。通过 IDU 从内存中读…...

std::reference_wrapper 和 std::function的详细介绍

关于 std::reference_wrapper 和 std::function 的详细介绍及具体测试用例&#xff1a; 1. std::reference_wrapper&#xff08;引用包装器&#xff09; 核心功能 包装引用&#xff1a;将引用转换为可拷贝、可赋值的对象支持隐式转换&#xff1a;可自动转换为原始引用类型容器…...

【day4】数据结构刷题 树

6-1 二叉树的遍历 函数接口定义&#xff1a; void InorderTraversal( BinTree BT ); void PreorderTraversal( BinTree BT ); void PostorderTraversal( BinTree BT ); void LevelorderTraversal( BinTree BT ); 其中BinTree结构定义如下&#xff1a; typedef struct TNode *Po…...

基于Selenium的IEEE Xplore论文数据爬取实战指南

基于Selenium的IEEE Xplore论文数据爬取实战指南 一、项目背景与目标 IEEE Xplore作为全球知名的学术资源平台,收录了大量高质量科技文献。本教程将演示如何通过Python的Selenium库实现: 自动化获取指定领域论文列表(以"构音障碍"为例)完整提取论文标题、摘要、…...

Vue2 项目将网页内容转换为图片并保存到本地

&#x1f31f; 前言 欢迎来到我的技术小宇宙&#xff01;&#x1f30c; 这里不仅是我记录技术点滴的后花园&#xff0c;也是我分享学习心得和项目经验的乐园。&#x1f4da; 无论你是技术小白还是资深大牛&#xff0c;这里总有一些内容能触动你的好奇心。&#x1f50d; &#x…...

flutter 专题 七十一 Flutter 自定义单选控件

在Flutter 应用开发中&#xff0c;经常会遇到各种单选效果&#xff0c;虽然官方提供了Radio组件&#xff0c;但是并不能满足我们实际的开发需求&#xff0c;所以往往还需要自定义控件才能满足平时的开发需求。下面就平时开发中用到的单选进行介绍&#xff1a; 自定义SegmentBa…...

质因数个数--欧拉函数中统计纯素数

和互质数不同&#xff0c;这里统计的是纯素数部分 就是x/i那一部分 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int> PII; int n,m,k; ll eular(ll x) { ll an0;ll px;for(ll i2;i*i<x;i){if(x%i…...

RAG基建之PDF解析的“无OCR”魔法之旅

PDF文件转换成其他格式常常是个大难题,大量的信息被锁在PDF里,AI应用无法直接访问。如果能把PDF文件或其对应的图像转换成结构化或半结构化的机器可读格式,那就能大大缓解这个问题,同时也能显著增强人工智能应用的知识库。 嘿,各位AI探险家们!今天我们将踏上了一段奇妙的…...

Web开发:数据的加密和解密

一、常见通用术语解析 加盐&#xff1a;在密码中加入随机数据&#xff0c;提高安全性。摘要&#xff1a;固定长度的输出&#xff0c;用于数据完整性验证。加密&#xff1a;将数据转换为不可读形式&#xff0c;确保安全。撞库&#xff1a;通过暴力破解比对常见密码的攻击方式。…...

从零开始研发GPS接收机连载——15、使用新射频成功打卡日本地标

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 从零开始研发GPS接收机连载——15、使用新射频成功打卡日本地标 前言MAX2771配置测试MAX2771完整程序测试 前言 话说笔者花了一笔巨资买了一个指甲盖般大小的MAX2771射频板&…...

linux压缩指令

今天我们来了解一下linux压缩指令,压缩是我们文件传输的一种重要手段,对此,我们是必须学习压缩指令的,那么话不多说,来看. 1.grep过滤查找&#xff0c;管道符&#xff0c;“&#xff5c;”&#xff0c;表示将前一个命令的处理结果输出传递给后面的命令处理。 基本语法&#x…...

智能提示词生成器:助力测试工程师快速设计高质量测试用例

在软件测试中,测试用例设计方法的选择和实施是确保软件质量的重要步骤。测试工程师经常需要根据不同的测试场景、参数维度和业务需求,设计出覆盖率高且有效的测试用例。然而,设计测试用例并非易事,特别是在面对复杂的业务逻辑时。 为了帮助测试工程师高效生成测试用例提示…...

QML中使用Image显示图片和使用QQuickItem显示图片

在QML中显示图片时&#xff0c;Image元素和自定义QQuickItem有不同的特性和适用场景。以下是两者的详细对比及性能分析&#xff1a; 1. Image 元素 优点&#xff1a; 声明式语法&#xff1a;简单直观&#xff0c;适合静态图片或简单动态需求 Image {source: "image.png&…...

若依赖前端处理后端返回的错误状态码

【背景】 后端新增加了一个过滤器&#xff0c;用来处理前端请求中的session 若依赖存放过滤器的目录&#xff1a;RuoYi-Vue\ruoyi-framework\src\main\java\com\ruoyi\framework\security\filter\ 【问题】 后端返回了一个状态码为403的错误&#xff0c;现在前端需要处理这…...

C++23:现代C++的模块化革命与零成本抽象新高度

以下代码为伪代码&#xff0c;仅供参考 一、标准库的范式突破 1. std::expected&#xff1a;类型安全的错误处理 std::expected<DataPacket, ErrorCode> parsePacket(ByteStream& stream) {if (stream.header_valid()) return decode_packet(stream);elsereturn s…...

【嵌入式学习3】TCP服务器客户端 - UDP发送端接收端

目录 1、TCP TCP特点 TCP三次握手&#xff08;建立TCP连接&#xff09;&#xff1a; TCP四次握手【TCP断开链接的时候需要经过4次确认】&#xff1a; TCP网络程序开发流程 客户端开发&#xff1a;用户设备上的程序 服务器开发&#xff1a;服务器设备上的程序 2、UDP 为…...

《Spring Cloud Eureka 高可用集群实战:从零构建高可靠性的微服务注册中心》

从零构建高可用 Eureka 集群 | Spring Cloud 微服务架构深度实践指南 本文核心内容基于《Spring Cloud 微服务架构开发》第1版整理&#xff0c;结合生产级实践经验优化 实验环境&#xff1a;IntelliJ IDEA 2024 | JDK 1.8| Spring Boot 2.1.7.RELEASE | Spring Cloud Greenwich…...

Dust3r、Mast3r、Fast3r

目录 一.Dust3r 1.简述 2.PointMap与ConfidenceMap 3.模型结构 4.损失函数 5.全局对齐 二.Mast3r 1.简述 2.MASt3R matching 3.MASt3R sfm 匹配与标准点图 BA优化 三.Fast3r 1.简述 2.模型结构 3.损失函数 三维重建是计算机视觉中的一个高层任务&#xff0c;包…...

HTML5 Web SQL 数据库学习笔记

HTML5 的 Web SQL 数据库曾是一种用于在浏览器客户端存储数据的技术&#xff0c;但目前已被废弃。尽管如此&#xff0c;了解其基本概念和操作方法仍具有一定的学习价值。以下是关于 Web SQL 数据库的学习笔记。 一、Web SQL 数据库概述 1.1 状态与替代方案 Web SQL API 已被…...

Plastiform复制胶泥:高精度表面复制与测量的高效工具

在工业制造和质量检测领域&#xff0c;表面复制和测量是确保产品质量的关键环节。Plastiform复制胶泥作为一种创新材料&#xff0c;凭借其出色的性能和多样化的应用&#xff0c;为用户提供了可靠的解决方案。它能够快速捕捉复杂表面的细节&#xff0c;确保测量结果的准确性&…...