【腾讯云 TDSQL-C Serverless 产品测评】- 云数据库之旅

news2024/11/16 4:23:57

“腾讯云 TDSQL-C 产品测评活动”是由腾讯云联合 CSDN 推出的针对数据库产品测评及产品体验活动,本次活动主要面向 TDSQL-C Serverless版。

本次参与活动可以涵盖不同技术层面的用户,可以针对TDSQL-C产品的自动弹性能力、自动启停能力、兼容性、安全、并发、可靠性等多方面进行产品的体验和测评,参与活动的同时既可以收获相关技术领域的实战经验同时也可获得丰厚的活动激励。

在这里插入图片描述


一、前言:

本人接触并从事互联网开发工作有近7年了,从最开始的PHP和Swoole,到后面逐渐接触到的语言,如java、go、python、Node等,一直是与数据库(如:Mysql、MariaDB、PostgreSQL)进行打交道,从事的行业最多的是与电商项目系统开发。

在这里插入图片描述

如上是公司从0到1电商系统的迭代演进过程,在考量自身的业务特性,以及所拥有或可调配的资源。只有明确了这些之后才能适度设计合适的架构,以确保可以为应用提供稳定的服务。从单机架构、动静分离架构、应用与数据分离架构、数据库主从架构、负载均衡架构都会大量使用到MySQL,无论是多复杂的架构,基本都会用到MySQL。

在一定程序上,SQL相关的知识储备和运用、优化,是衡量一个后端开发人员的重要指标。如果您现在还只是停留在CURD,只是觉得往数据库存点数据,修改、更新、删除一些数据。那可能需要更多学习一下SQL相关的知识、多接触一下更大、更广的场景。当然,这也是相对于某个阶段来讲,当然,本人也是在不断的保持学习,从而不断的总结与提升中。

在这里插入图片描述

最近通过CSDN的活动接触腾讯云的很多好用的产品,之前在工作中,一直是使用自搭数据库体系或者使用云数据库(如阿里云)进行系统开发,现在让我们来了解并动手实践腾讯云的TDSQL-C MySQL Serverless版本数据库。


二、TDSQL-C 简介:

因篇幅与精力有限,本文只对TDSQL-C MySQL Serverless版本数据库进行评测。

2.1 TDSQL-C 简介:

TDSQL是腾讯云企业级分布式数据库,旗下涵盖金融级分布式、云原生、分析型等多引擎融合的完整数据库产品体系,提供业界领先的金融级高可用、计算存储分离、数据仓库、企业级安全等能力,同时具备智能运维平台、Serverless版本等完善的产品服务体系。

云原生数据库 TDSQL-C(Cloud Native Database TDSQL-C)简称 TDSQL-C。TDSQL-C 是腾讯云自研的新一代高性能高可用的企业级分布式云数据库。融合了传统数据库、云计算与新硬件技术的优势,100%兼容 MySQL 和 PostgreSQL,实现超百万级QPS的高吞吐,128TB海量分布式智能存储,保障数据安全可靠。

TDSQL-C MySQL Serverless版(TDSQL-C for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。

上述,对TDSQL-C MySQL从大到小的层面进行了一些介绍,下面来做一个简单的总结,先对TDSQL-C MySQL有一个大致的了解。

在这里插入图片描述

三、参加评测活动:

有幸有机会进行了数据库评测活动,活动的要求是各种手段消耗数据库的性能、存储等。

3.1 采购TDSQL-C MySQL数据库:

打开(TDSQL-C)[ https://cloud.tencent.com/product/cynosdb]产品链接,在“实例形态”一定要选择Serverless的版本,非常关键,“算力配置”选择的范围是32-64。

在这里插入图片描述
在这里插入图片描述

购买完数据库实例后,需要够买“存储资源包”,选择10TB的存储量。

在这里插入图片描述

在TDSQL-C MySQL Serverless数据库实例中的选项卡“资源包”中,进行刚刚购买的“存储资源包”即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 使用mysql2扩展 + PM2进行Node服务多个进程写入数据:

const mysql = require('mysql2/promise');

// 初始化数据库连接
let connection = null
async function initDb () {
  connection = await mysql.createConnection({
    host: 'gz-xxxxx.sql.tencentcdb.com',  // TDSQL外网网址
    user: 'root',   // 数据库用户名
    password: 'Mysql123..',  // 数据库密码
    database: 'test_db',  // 数据库名称
    port: 22395,  // 数据库端口
  });
}

async function Run () {
  await initDb()
  for (let i = 0; i < 99999; i++) {
    let sql = "INSERT INTO `use` (name, age) VALUES (?, ?)";
    connection.execute(sql, ['11111', 22]).then(result => {
      console.log("插入数据成功,插入ID值为", result[0].insertId)
    })
  }
}

Run()

在服务器上运行脚本进行检测,以下为脚本插入数据成功的提示。

在这里插入图片描述

使用PM2开启5个进程使用Node服务异步插入10w条数据,先尝试一下效果。

在这里插入图片描述
从费用明细来看,效果不明显,存储也只写了50M左右的数据,要达到消耗的目的,明显远远不够。

在这里插入图片描述

修改脚本插入100w数据,脚本直接断掉,而且PM2开启多个进程经常会掉线。

在这里插入图片描述

在这里插入图片描述

3.3. 使用Gin + Gorm V2协程进行写入数据:

CREATE TABLE `use` (
  `id` bigint(1) NOT NULL AUTO_INCREMENT,
  `name` longtext,
  `age` int,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
dns := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=%s&parseTime=True&loc=Local", "root", "Ddb123..", "gz-xxxxxxxxx.com:22395", "test_db", "utf8")
db, _ := gorm.Open(mysql.Open(dns), &gorm.Config{
Logger: logger.Default.LogMode(logger.Silent),    # 关闭Sql在控制台显示日志
})
func insertDB(db *gorm.DB, text string) {
	var users = []DataScores {
		{ Name: "xxxx", Score: "11", },
		{ Name: "xxxx", Score: "11", },
	}
	db.Create(&users)
}

在这里插入图片描述
在这里插入图片描述

上图,可以分析到,近40G的存储空间,存储的费用还是比较低,而且插入的数据还是较慢,但是多出一个CCU的结算清单,是一个算力相关的消耗参数。

首先分析一下,使用的表插入语句中,name我用了一个大段文本,这样的话,我插入的数据量就会比较大,否则在进行MySQL连接、网络传输中也会浪费掉一些性能。其中,也发现服务器的带宽流量也比较高,因为开的也是弹性带宽,也是需要费用的。

在这里插入图片描述

尝试再提升插入的效率方案,通过发现Gorm Create批量函数添加,还是存在效率问题,换成Exec方法,直接执行原生的SQL,发现效率增长了不少。

CREATE TABLE `tests` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `name1` longtext,
  `name2` longtext,
  `name3` longtext,
  `name4` longtext,
  `name5` longtext,
  `name6` longtext,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4
func selectDb(db *gorm.DB) {
	for {
		result := db.Exec("INSERT INTO `tests` (`name1`, `name2`, `name3`, `name4`, `name5`, `name6`) VALUES ('大段文本', '大段文本', '大段文本', '大段文本', '大段文本', '大段文本')")
		fmt.Println("插入name表成功", result.RowsAffected)
	}
}

在这里插入图片描述

在TDSQL-C自带的DMC数据库管理控制台中,执行以下语句,模拟CPU消耗,看到等待超时,猜测可能的原因是连接进程数在等待,导致超时。

在这里插入图片描述

马上查看TDSQL-C实例中,在“参数设置”中,找到“max_connections”修改为100000。这里也比较方便,不用在mysql.conf或mysql.ini配置文件中去修改,再重启,都是支持热重载,不用停机重启,防止对生产上造成影响,同时,配置化也大大的简化专业运维能力,降低了门槛。

在这里插入图片描述

并且,我们通过设置Gorm DB的数据库的最大连接数,来提高插入脚本的效果。

dns := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=%s&parseTime=True&loc=Local", "root", "Ddb123..", "gz-cynosdbmysql-grp-3awgm0zf.sql.tencentcdb.com:22395", "test_db", "utf8")
db, _ := gorm.Open(mysql.Open(dns), &gorm.Config{
	Logger: logger.Default.LogMode(logger.Silent), 
})

# 设置数据库的最大连接数
sqlDB, _ := db.DB()
// SetMaxIdleConns sets the maximum number of connections in the idle connection pool.
sqlDB.SetMaxIdleConns(1000)
// SetMaxOpenConns sets the maximum number of open connections to the database.
sqlDB.SetMaxOpenConns(10000)

同时,也在脚本中执行上面查询的语句,可以看到CPU由之前的0逐渐提升到9左右。SQL语句,主要是通过自己查自己,产生一些临时表的聚合,因为也没有对字段进行加索引,基本上是全表扫描,同时,like也破坏了左原则查询策略,导致需要在很多的数据中进行查询,CPU就会逐渐的提高,此时,对应的CCU也完全提升上来了。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再回过头来看,费用明细也起来了。

在这里插入图片描述

这里有一个注意点,一定要去关联存储资源包,关联后,存储就不会去按量计费了,直接走流量包计费了。

在这里插入图片描述
在这里插入图片描述

其中,带宽流量实在抗不住,切换到朋友的公司测试环境,3天左右时间,服务器消耗了近108G带宽。

在这里插入图片描述
在这里插入图片描述

3.4 测试服务器配置相关参数信息:

主要的服务器为2核4G,弹性带宽为5Mbps峰值,CPU消耗的很少,主要是带宽跟不上。

在这里插入图片描述
在这里插入图片描述

3.5 总结:

到此,对TDSQL-C MySQL Serverless从0到1体验初步体验就完成了,在没有任何的学习的基础上,就能很快使用TDSQL-C MySQL Serverless进行开发,100%兼容MySQL的基本用法。

在这里插入图片描述

以前也只是对接口进行过压测,对数据库并没有实际的压测经验,也让我进一步巩固了数据库相关的知识体系。写的Go程序在服务器使用top命令查看CPU和内存也比较小,TDSQL-C MySQL Serverless也支持大数量的业务场景,以前是MySQL是项目中的瓶颈,现在变成了带宽是瓶颈。

3.6 测试的注意点:

因为计费是有一定的延迟的,并非实时的,所以,在费用消耗比较低的时候,因为使用了朋友的服务器,大晚上也不好叫他起来停止服务,所以,采用了以下几个自认为的方式来停止数据库,都还是产生了费用,最后把数据库实例进行销毁才没有继续产生费用了。

在这里插入图片描述

3.7 延伸 - 后续可以研究一下如何进行内网通信?

因为测试产生的带宽比较大,所以,购买了一台腾讯云服务器,看看能不能进行内网连接,但是没测试成功,服务器的内网IP段是10,而数据库实例的内网IP段是172的。

在这里插入图片描述


四、TDSQL -C MySQL 的优势:

(DB-Engines Ranking)[https://db-engines.com/en/ranking] 会根据受欢迎程度对数据库管理系统进行排名。

在这里插入图片描述

这份榜单分析旨在为数据库相关从业人员提供一个技术方向的参考,其中涉及到的排名情况并非基于产品的技术先进程度或市场占有率等因素。可以看出MySQL在使用中还是非常受欢迎的,不过,无论排名先后,选择适合与企业业务需求相比配的技术才是最重要的。

面对这么版本的MySQL,那么TDSQL -C MySQL 具备什么样的优势呢?

云数据库TDSQL -C MySQL Serverless是腾讯云PaaS产品线核心产品,在企业级内核、企业级扩展性、企业级高可用、高可靠、数据安全、智能运维上进行发力,将它打造为一个具备企业级能力的数据库,而不仅仅是开源的MySQL。

4.1 优点:

-(1)支持SQL语法,100%兼容,易于使用;
-(2)支持批量数据操作,提高了数据处理效率;
-(3)支持分布式架构,可方便地进行扩展(在第五节理论讲解)。

4.2 SQL语法支持:

使用某个项目的SQL语句,包括建表语句、插入语句,都能完全执行,在程序上操作输出了日志,也是可以的,暂时没有发现问题。
在这里插入图片描述
通过对项目的运行与实操,也没有发现有问题SQL运行报错的问题,如下为打印的日志:
在这里插入图片描述

4.3 对标一下批量数据操作效果:

在这里插入图片描述

使用上面的建表语句,用Gin协程插入大段文本1分钟,TDSQL-C MySQL插入了1095条记录,而自建的MySQL 5.7是701记录,TDSQL-C MySQL的效率是自建MySQL 5.7的1.57倍,效率比较高。

当然,这也只是一个简单的测试,并没有考虑带宽、服务器配置、数据库实例配置等所有参数严格的比较。

4.4 总结:

在这里插入图片描述


五、数据库管理工具:

5.1 第三方数据库连接工具:

在平时的工作开发中,连接和管理数据库是一个至关重要的任务。MySQL 是一种非常流行的开源关系型数据库,因此,也出现了许多用于连接和管理 MySQL 数据库,平时工作中用的最多的就是Navicat for MySQL。

  • Host:为TDSQL-C MySQL Serverless上面开通的外网地址
  • Port:需要注意一下并非是3306端口,具体需要看开通时给的端口
  • Test Connection:点击测试是否能连接成功

在这里插入图片描述

但是我们在团队管理中,会存在一个比较大的问题,就是数据库权限的控制。

在这里插入图片描述

5.2 数据库管理(DMC):

数据库管理(DMC)是一个高效、可靠的一站式数据库管理平台,为用户提供库表级操作、实时监控、实例会话管理、SQL 窗口、数据管理为一体的数据库管理服务,帮您更加便捷、规范地管理多种数据库实例。

  • 新建库表、视图、存储过程等
  • 数据导入导出
  • SQL 执行及安全审计
  • 权限管控、数据变更审批

在这里插入图片描述

除了满足上面Navicat for MySQL常规的功能以外,还有其它比较实用的功能,比如,查看一些非法连接,会话等信息,体验了一下,基本上满足实际开发的需求。

在这里插入图片描述

提供了参数模板,可以自定义的设置符合自己业务需求的参数模板,如果下次再有需要购买数据库实例,可以直接使用新建好的模板。

在这里插入图片描述

5.3 数据库智能管理DBbrain:

数据库智能管家(TencentDB for DBbrain,DBbrain)是腾讯云推出的一款为用户提供数据库性能、安全、管理等功能的数据库自治云服务。DBbrain 利用机器学习、大数据手段、专家经验引擎快速复制资深数据库管理员的成熟经验,将大量传统人工的数据库运维工作智能化,服务于云上和云下企业,有效保障数据库服务的安全、稳定及高效运行。

目前体验比较好的功能是“诊断优化”,可以看到CPU、内存、存储、流量的情况,特别说明的是有“健康得分”,可以看看有没有异常。
在这里插入图片描述

性能趋势可以根据一些指标进行查看,可以随时关注一下项目的TPS、QPS,数据库的设计是否符合要求,哪些指标会有瓶颈的风险。

在这里插入图片描述

慢SQL分析是也是平时开发需要关注的指标之一,当执行时间超过设置的long_query_time时,就会被记录到慢SQL日志中,这样可以及时去关注项目有哪些语句不符合要求,是不是需要加索引?
在这里插入图片描述

SQL优化是一个很牛的功能,可以帮助开发人员进行SQL的优化,尤其是对于复杂的SQL查询,从语句来看,就是将EXPLAIN的结果进行了可视化分析,可以非常直观的看出问题,将之间英文的原回值,可以以中文的形式的展示,非常利于非DBA专业人士来快速分析与改进。
在这里插入图片描述

点击会出现比较详细的参数说明:
在这里插入图片描述

5.4 遇到的错误:

在这里插入图片描述

5.5 总结:

在日常使用和运维中,用户关心的可能就是数据库状态、网关状态、各个节点状态、Zookeeper、OSS状态等。但是之前的数据库产品中,这些信息很多是无法直接得到的,需要找运维或者更高权限的账号来获得相关信息。但在TDSQL 平台中,可以通过一些DMC和数据库智能管理DBbrain来直接获得。

DMC和数据库智能管理DBbrain可以帮助用户快速使用、管理、运维TDSQL集群。通过不同的角色设置,如平台管理员、实例管理员、租户管理员等,赋予不同的权限,帮助用户进行实例管理、集群管理、资源管理、监控管理、告警管理、日志管理、性能分析等全方位运维管理功能。

在这里插入图片描述


六、TDSQL -C MySQL的原理分析:

6.1 TDSQL -C MySQL的分类:

把数据库类型按照关系型和NoSQL来分的话,TDSQL-C for MySQL Serverless版的类型会归到NewSQL的类型中。

在这里插入图片描述

6.2 TDSQL -C MySQL Serverless的架构:

NewSQL从传统数据库到云原生数据库的演进,也是数据库在架构上不断随着业务和技术的迭代创新的过程。TDSQL-C MySQL Serverless整体架构其实是把计算层和存储层进行了完全分离,实现了计算节点无状态方式,100%兼容MySQL协议。

在这里插入图片描述

6.3 与MySQL的对比:

在这里插入图片描述

不同用户在不同规格和业务情况下,它们的参数是否都能适应好自己数据库所运行的最大状态。TDSQL -C MySQL Serverless通过深度学习算法对于业务进行优先分析,来给用户推荐当前数据库应该将哪些参数调整至什么样的值,能够获得多少的性能提升,给用户提出智能调优方案。

6.4 总结:

TDSQL -C MySQL Serverless在灵活性、成本上提供了更多的选择、更灵活的配置、更低成本架构,如支持单节点,在性能不需要这么强的情况下,写日志历史库或者合并库,另外的场景,如需要很大容量,并不需要很高的性能,都可以通过这个方式来解决问题。


七、适用场景:

TDSQL-C MySQL Serverless是腾讯研发的一款兼容MySQL协议的分布式数据库,适用于大并发、高性能、大容量的OLTP类场景。TDSQL分为集中式和分布式版本,分布式版可支持分布式事务,但性能不如单机事务,性能会有一定的损耗,如需使用,需要进行实际测试结果来决定是否使用。

在这里插入图片描述

-(1)工业互联网、IoT、安全监控等领域;
-(2)需要处理大量时序数据的场景;
-(3)需要高效处理实时数据采集的应用场景。


八、公司业务场景考量:

8.1 分库分表:

由于TDSQL-C MySQL Serverless在存储上,使用云原生存散分离架构优势比较大的,最大规格存储支持到TB、PB级别,对于海量存储业务来说,不用在频繁进行的分库分表拆分数据表,单库单表的容量也可以完全满足用户的业务需求。

8.2 存储容量:

同上,使用云原生存散分离架构,可以无限扩展,对容量没有限制,以往使用MySQL之前会进行一个数据量的预估容量,到了容量预警点后再进行扩容。但是,在TDSQL-C MySQL Serverless中,存储是按量计费,提供用户按使用多少算多少的方式。

8.3 性能:

上面体验中,也看到了TDSQL-C MySQL Serverless的不少有优势的方面,比如数据库实例停用,当有数据通信时,也会迅速启用。插入数据也比MySQL要快的多。

8.4添加列效率:

如果之前在MySQL一张大表中,增加一列,需要去掉索引,再添加列,再加索引的方式,否则操作几十T,几百T的数据,一旦遇到这种表需要增加一个列,DDL操作时间是不可控的,有可能存储空间就爆了。而TDSQL-C MySQL提供了一个Instant DDL的功能,能够解决用户快速加列的问题,加列时间基本上是秒级完成。

在这里插入图片描述

8.5 案例可用性分析:

在这里插入图片描述

TDSQL-C产品经过近几年的不断迭代,腾讯云TDSQL-C产品对外服务了微众银行、张家港农商行、富途证券,以及华夏银行等多家股份制银行,多家大型互联网创新保险公司等超过600家金融及政企客户。有这多领域的实际落地经验,足以应对公司的业务开发。


九、总结:

通过TDSQL-C for MySQL Serverless架构云数据库,可以体现云原生架构所带来的核心价值,如一些海量存储场景,存储数据、文件,并且性能也得到了很大的提升,如支持并行计算的能力,提升SQL性能,包括并行扫描,并行的多表连接、排序、分组、聚合等并行能力。

同时,在简单易用上面,也提供了很多参数模板,监控指标优化、备份和日志方面等可视化操作,极大降低了运维成本。

在这里插入图片描述

通过从0到1的了解与学习,TDSQL-C MySQL Serverless构建了一个产品全景能力图,并不仅仅是平时认知的数据库,通过控制台、客户端,通过凭证管理、审计能够进行一切监控,来给用户提供非常安全的访问环境。再通过参数的调优去辅助、协助用户更好的使用数据库,更优的使用数据库,让业务运行的更快,而不是将数据库不行的时候升配。再到整体架构,支持物理机、云服务器架构,支持异地的灾备,搭建符合公司企业级的业务需求,为公司带来降本提效。

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

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

相关文章

EasyExcel自定义字段对象转换器支持转换实体和集合实体

文章目录 1. 实现ObjectConverter2. 使用3. 测试3.2 导出excel3.1 导入excel 1. 实现ObjectConverter package com.tophant.cloud.common.excel.converters;import cn.hutool.json.JSONUtil; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.…

CSS中如何实现多列布局?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 多列布局&#xff08;Multi-column Layout&#xff09;⭐ column-count⭐ column-width⭐ column-gap⭐ column-rule⭐ column-span⭐ 示例⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧…

多线程与高并发——并发编程(2)

文章目录 二、并发编程的三大特性1 原子性1.1 什么是原子性1.2 怎么保证原子性1.2.1 synchronized1.2.2 CAS1.2.3 Lock 锁1.2.4 ThreadLocal 2 可见性2.1 什么是可见性2.2 解决可见性的方式2.2.1 volatile2.2.2 synchronized2.2.3 Lock2.2.4 final 3 有序性3.1 什么是有序性3.2…

iOS HealthKit 介绍

文章目录 一、简介二、权限配置1. 在开发者账号中勾选HealthKit2. 在targets的capabilities中添加HealthKit。3. infoPlist需要配置权限 三、创建健康数据管理类1. 引入头文件2. 健康数据读写权限3. 检查权限4. 读取步数数据5. 写入健康数据 四、运行获取权限页面 一、简介 He…

Linux 下 Mysql 的使用(Ubuntu20.04)

文章目录 一、安装二、使用2.1 登录2.2 数据库操作2.2.1 创建数据库2.2.2 删除数据库2.2.3 创建数据表 参考文档 一、安装 Linux 下 Mysql 的安装非常简单&#xff0c;一个命令即可&#xff1a; sudo apt install mysql-server检查安装是否成功&#xff0c;输入&#xff1a; …

【KingSCADA】问题处理:记录KS历史报警查询异常

哈喽&#xff0c;大家好&#xff01;我是雷工。 本篇记录KingSCADA的历史报警应用中的一个问题&#xff0c;及处理过程。 一、问题描述 最近客户遇到这么一个问题&#xff1a;当打开历史报警窗界面&#xff0c;自动加载的报警信息中有显示最近几天的报警信息&#xff0c;但当…

基于亚马逊云科技无服务器服务快速搭建电商平台——部署篇

受疫情影响消费者习惯发生改变&#xff0c;刺激了全球电商行业的快速发展。除了依托第三方电商平台将产品销售给消费者之外&#xff0c;企业通过品牌官网或者自有电商平台销售商品也是近几年电商领域快速发展的商业模式。独立站电商模式可以进行多方面、全渠道的互联网市场拓展…

【UniApp开发小程序】私聊功能uniapp界面实现 (买家、卖家 沟通商品信息)【后端基于若依管理系统开发】

文章目录 效果显示WebSocket连接使用全局变量WebSocket连接细节 最近和自己聊天的用户信息界面效果界面代码最近的聊天内容太长日期时间显示未读消息数量显示 私聊界面界面展示代码实现英文长串不换行问题聊天区域自动滑动到底部键盘呼出&#xff0c;聊天区域收缩&#xff0c;聊…

软考A计划-系统集成项目管理工程师-知识产权管理

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

基于黏菌算法优化的BP神经网络(预测应用) - 附代码

基于黏菌算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码 文章目录 基于黏菌算法优化的BP神经网络&#xff08;预测应用&#xff09; - 附代码1.数据介绍2.黏菌优化BP神经网络2.1 BP神经网络参数设置2.2 黏菌算法应用 4.测试结果&#xff1a;5.Matlab代码 摘要…

分布式 - 服务器Nginx:一小时入门系列之 HTTPS协议配置

文章目录 1. HTTPS 协议2. 生成 SSL 证书和私钥文件3. 配置 SSL 证书和私钥文件4. HTTPS 协议优化 1. HTTPS 协议 HTTPS 是一种通过计算机网络进行安全通信的协议。它是HTTP的安全版本&#xff0c;通过使用 SSL 或 TLS 协议来加密和保护数据传输。HTTPS的主要目的是确保在客户…

AI夏令营第三期用户新增挑战赛学习笔记

1、数据可视化 1.数据探索和理解&#xff1a;数据可视化可以帮助我们更好地理解数据集的特征、分布和关系。通过可视化数据&#xff0c;我们可以发现数据中的模式、异常值、缺失值等信息&#xff0c;从而更好地了解数据的特点和结构。2.特征工程&#xff1a;数据可视化可以帮助…

[Linux]文件IO

文章目录 1. 文件描述符1.1 虚拟地址空间1.1.1 存在的意义1.1.2 分区 1.2 文件描述符1.2.1 文件描述符1.2.2 文件描述符表 2. Linux系统文件IO2.1 open/close2.1.1 函数原型2.1.2 close函数原型2.1.3 打开已存在文件2.1.4 创建新文件2.1.5 文件状态判断 2.2 read/write2.2.1 re…

论文解读 | ScanNet:室内场景的丰富注释3D重建

原创 | 文 BFT机器人 大型的、有标记的数据集的可用性是为了利用做有监督的深度学习方法的一个关键要求。但是在RGB-D场景理解的背景下&#xff0c;可用的数据非常少,通常是当前的数据集覆盖了一小范围的场景视图&#xff0c;并且具有有限的语义注释。 为了解决这个问题&#…

C++学习记录——이십오 C++11(1)

文章目录 1、列表初始化2、声明decltype 3、STL新容器小总结 4、右值引用1、概念2、使用场景&#xff08;包含移动构造&#xff09;3、完美转发4、移动赋值5、C98的const引用延长生命周期 1、列表初始化 大括号{}来代替初始化&#xff0c;并且是所有类型。 struct ZZ {int _x…

RabbitMQ---订阅模型-Fanout

1、 订阅模型-Fanout Fanout&#xff0c;也称为广播。 流程图&#xff1a; 在广播模式下&#xff0c;消息发送流程是这样的&#xff1a; 1&#xff09; 可以有多个消费者 2&#xff09; 每个消费者有自己的queue&#xff08;队列&#xff09; 3&#xff09; 每个队列都要绑定…

记录 JSONObject.parseObject json对象转换 对象字段为null

1.业务背景 使用websocket 接收消息都是String类型&#xff0c;没办法自定义实体类接收&#xff0c;所以接发都必须将json 转 对象 对象转 json。 这是我最开始的实体类&#xff0c;也就是转换的类型 package com.trinity.system.domain;import lombok.AllArgsConstructor; im…

浏览器跨域

生活中的事跟跨域有什么关系&#xff0c;那必须有。 跨域的产生是浏览器的安全机制引起的&#xff0c;只有在使用Ajax时才会发生。简单来说就是你可以通过ajax发送请求&#xff0c;但要看远程服务器脸色&#xff0c;他没授权&#xff0c;浏览器这个老六就给拦截了&#xff0c;不…

Java之ApI之Math类详解

1 Math类 1.1 概述 tips&#xff1a;了解内容 查看API文档&#xff0c;我们可以看到API文档中关于Math类的定义如下&#xff1a; Math类所在包为java.lang包&#xff0c;因此在使用的时候不需要进行导包。并且Math类被final修饰了&#xff0c;因此该类是不能被继承的。 Math类…

6.基于二阶锥规划的主动配电网最优潮流求解

matlab代码&#xff1a; 6.基于二阶锥规划的主动配电网最优潮流求解 参考文献&#xff1a;主动配电网多源协同运行优化研究_乔珊 摘要&#xff1a;最优潮流研究在配 电网规划运行 中不可或缺 &#xff0c; 且在大量分布式能源接入 的主动配 电网环境下尤 为重要 。传统的启发…