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

微服务即时通信系统---(四)框架学习

目录

ElasticSearch

介绍

安装

安装kibana

ES客户端安装

 头文件包含和编译时链接库

ES核心概念

索引(Index)

类型(Type)

字段(Field)

映射(mapping)

文档(document)

ES对比MySQL

Kibana访问ES测试

创建索引库

新增数据

查看并搜索数据

删除索引

ES客户端接口介绍

ES二次封装(elasticSearch.hpp)

Json序列化

Json反序列化

创建索引(库)

插入数据

删除数据

数据搜索(查询)

二次封装测试

ES客户端操作句柄获取封装

cpp-httplib

介绍

安装

头文件和链接库

类于接口介绍

HTTP请求类

HTTP应答类

HTTP服务器类

HTTP客户端类

使用样例

websocketpp

Websocket协议介绍

Websocketpp介绍

WebSocketpp安装

类与接口

日志等级

状态码

数据帧类型

消息缓冲区

HTTP请求解析

connect连接后的相关操作(对请求进行响应)

服务器

endpoint(服务端/客户端的管理)

redis

介绍

安装

头文件包含和编译时链接库

接口介绍

Redis++客户端操作句柄获取封装


本章主要是学习和使用本项目中所需使用到的一些框架。

ElasticSearch

介绍

ElasticSearch,简称ES,是一个开源分布式搜索引擎。

它的特点有:分布式、零配置、自动发现、索引自动分片、索引副本机制、restful风格接口、多数据源、自动搜索负载等。

ES是面向文档的,意味着它可以存储整个对象或文档。

它不仅仅是存储,还会索引每个文档的内容,使之可以被搜索。

在ES中,可以对文档进行索引、搜索、排序、过滤。

安装

# 添加仓库秘钥 
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -# 添加镜像源仓库 
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elasticsearch.list # 更新软件包列表 
sudo apt update # 安装es 
sudo apt-get install elasticsearch=7.17.21 # 启动es 
sudo systemctl start elasticsearch # 安装ik分词器插件 
sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install 
https://get.infini.cloud/elasticsearch/analysis-ik/7.17.21

启动ES报错:

解决办法:

调整ES虚拟内存,虚拟内存默认最大映射数为65530,无法满足ES系统要求, 需要调整为262144以上。

sudo sysctl -w vm.max_map_count=262144

在 /etc/elasticsearch/jvm.options中新增:

再次启动ES:成功。

但是我自己重新弄的时候,一直启动失败,后续查看日志发现:

sudo vim /var/log/elasticsearch/elasticsearch.log

前面下载的分词器,和当前版本不兼容(我的ES升级了,所以不兼容),于是寻找解决方案:删除旧版本分词器,下载与当前elasticsearch匹配的分词器:

sudo rm -rf /usr/share/elasticsearch/plugins/analysis-iksudo /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.17.25/elasticsearch-analysis-ik-7.17.25.zipsudo systemctl restart elasticsearch.service

此时才完美解决。

验证ES是否安装启动成功:

 curl -X GET "http://localhost:9200/"

设置外网访问,如果新配置完成的话,默认只能在本机进行访问:

 sudo vim /etc/elasticsearch/elasticsearch.yml

此时用浏览器访问 "localhost:9200":

安装kibana

 Kibana 是一个开源的数据可视化工具,专门为 Elasticsearch 设计。它提供了一个用户友好的界面,用于搜索、查看和分析存储在 Elasticsearch 中的数据。Kibana 通常与 Elasticsearch 一起使用,是 Elastic Stack(以前称为 ELK Stack,包括 Elasticsearch、Logstash 和 Kibana)的核心组件之一。

在浏览器上访问:"localhost:5601"

命令安装:

sudo apt install kibana配置 Kibana(可选): 
根据需要配置 Kibana。配置文件通常位于 /etc/kibana/kibana.yml。可能需要
设置如服务器地址、端口、Elasticsearch URL 等。 
sudo vim /etc/kibana/kibana.yml  
例如,你可能需要设置 Elasticsearch 服务的 URL: 大概32行左右 
elasticsearch.host: "http://localhost:9200"

ES客户端安装

sudo apt-get install libmicrohttpd-dev # 克隆代码 
git clone https://github.com/seznam/elasticlient # 切换目录 
cd elasticlient # 更新子模块 
git submodule update --init --recursive # 编译代码 
mkdir build 
cd build 
cmake .. 
make # 安装 
make install # make的时候编译出错,这是子模块googletest没有编译安装 
# 解决: 手动安装子模块
cd ../external/googletest/ 
mkdir cmake && cd cmake/ 
cmake -DCMAKE_INSTALL_PREFIX=/usr .. 
make && sudo make install # 安装好了 再次 cmake即可

 头文件包含和编译时链接库

头文件

#include <cpr/response.h> 
#include <elasticlient/client.h>

库:

-lcpr -lelasticlient

ES核心概念

索引(Index)

一个索引就是一个拥有几分相似特征的文档的集合。

比如说,你可以有一个客户数据 的索引,一个产品目录的索引,还有一个订单数据的索引。

一个索引由一个名字来标 识(必须全部是小写字母的),并且当我们要对应于这个索引中的文档进行索引、搜索、 更新和删除的时候,都要使用到这个名字。

类型(Type)

在一个索引中,你可以定义一种或多种类型。

一个类型是你的索引的一个逻辑上的分 类/分区,其语义完全由你来定。

通常,会为具有一组共同字段的文档定义一个类型。

比如说,我们假设你运营一个博客平台并且将你所有的数据存储到一个索引中。在这 个索引中,你可以为用户数据定义一个类型,为博客数据定义另一个类型,为评论数 据定义另一个类型......

字段(Field)

分类类型备注

字符串

text、keyword

text会被分词生成索引。

keyword不会被分词生成索引,只能精确搜索。

整形integer、long、short、byte
浮点double、float
逻辑booleantrue 或者 false
日期date、date_nanos“2018-01-13” 或 “2018-01-13 12:10:30” 或者时间戳,即1970到现在的秒数/毫秒数
二进制binary二进制通常只存储,不索引。
范围range

映射(mapping)

映射是在处理数据的方式和规则方面做一些限制,如某个字段的数据类型、默认值、 分析器、是否被索引等等。

其它就是处理es里面数据 的一些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射,并且需要思考如何建立映射才能对性能更好。

名称数值备注
enabledtrue(默认)、false是否仅作存储,不做搜索和分析。
indextrue(默认)、false是否构建倒排锁芯(决定了是否分词,是否被索引)。
index_option
dynamictrue(默认)、false控制mapping的自动更新。
doc_valuetrue(默认)、false是否开启doc_value,用户聚合和排序分析,分词字段不能使用。
fielddata"fielddata" :  {"format" : "disabled"}

是否为text类型启动fielddata,实现排序和 聚合分析。

针对分词字段,参与排序或聚合时能提高性 能。

不分词字段统一建议使用doc_value。

storetrue、false(默认)

是否单独设置此字段的是否存储,储而从 _source 字段中分离。

只能搜索,不能获取值。

coercetrue(默认)、false

是否开启自动数据类型转换功能。

比如:字符串转数字,浮点转整型

analyzer"analyzer" : "ik"指定分词器,默认分词器是standard analyzer
boost"boost" : 1.23字段级别的分数加权,默认值是1.0
fields

"fields" : {

        "raw" : {

                "type":

                "text",

                "index":

              "not_analyzed",

        }

}

对一个字段提供多种索引模式。

同一个字段的值,一个分词,一个不分词。

data_detectiontrue(默认)、false是否自动识别日期类型

文档(document)

一个文档是一个可被索引的基础信息单元。

比如,你可以拥有某一个客户的文档,某 一个产品的一个文档或者某个订单的一个文档。

文档以JSON(Javascript Object Notation)格式来表示,而JSON是一个到处存在的互联网数据交互格式。

在一个 index/type 里面,你可以存储任意多的文档。

一个文档必须被索引或者赋予一个索引 的type。

ES对比MySQL

MySQLES说明
DatabaseIndex最顶层的逻辑容器。
TableType (ES 7.x之后)存储结构化数据的单元。
RowDocument一条记录。
ColumnField数据字段。
SchemaMapping定义数据结构。
Index(索引)Inverted Index加速查询的数据结构。
SQLQuery DSL查询语言。
Primary Key_id唯一标识符。
分库分表Shard数据分片。
主从复制Replica Shard数据复制和高可用性。
事务版本控制数据一致性机制。
全文搜索核心功能ES 专为全文搜索设计,功能更强大。

Kibana访问ES测试

创建索引库

POST /user/_doc 
{ "settings" : { "analysis" : { "analyzer" : { "ik" : { "tokenizer" : "ik_max_word" } } } }, "mappings" : { "dynamic" : true, "properties" : { "nickname" : { "type" : "text","analyzer" : "ik_max_word" }, "user_id" : { "type" : "keyword", "analyzer" : "standard" }, "phone" : { "type" : "keyword", "analyzer" : "standard" }, "description" : { "type" : "text", "enabled" : false }, "avatar_id" : { "type" : "keyword" ,"enabled" : false } } } 
}

新增数据

POST /user/_doc/_bulk 
{"index":{"_id":"1"}} 
{"user_id" : "USER4b862aaa-2df8654a-7eb4bb65e3507f66","nickname" : "昵称1","phone" : "手机号1","description" : "签名1","avatar_id" : "头像1"} 
{"index":{"_id":"2"}} 
{"user_id" : "USER14eeeaa5-442771b9-0262e455e4663d1d","nickname" : "昵称2","phone" : "手机号2","description" : "签名2","avatar_id" : "头像2"} 
{"index":{"_id":"3"}} 
{"user_id" : "USER484a6734-03a124f0-996c169dd05c1869","nickname" : "昵称3","phone" : "手机号3","description" : "签名3","avatar_id" : "头像3"} 
{"index":{"_id":"4"}} 
{"user_id" : "USER186ade83-4460d4a6-8c08068f83127b5d","nickname" : "昵称4","phone" : "手机号4","des

相关文章:

微服务即时通信系统---(四)框架学习

目录 ElasticSearch 介绍 安装 安装kibana ES客户端安装 头文件包含和编译时链接库 ES核心概念 索引(Index) 类型(Type) 字段(Field) 映射(mapping) 文档(document) ES对比MySQL Kibana访问ES测试 创建索引库 新增数据 查看并搜索数据 删除索引 ES…...

日常记录-CentOS 9安装java17

文章目录 前言一、手动安装 Oracle JDK 17 或 OpenJDK 17&#xff08;适合自定义路径&#xff09;二、使用 CentOS 9 系统包安装 OpenJDK 17&#xff08;简单稳定&#xff09;三、使用 SDKMAN&#xff08;管理多个版本&#xff09;总结 前言 CentOS 9安装java17 一、手动安装 …...

Python 导出 PDF(ReportLab )

文章目录 1. ReportLab 使用1.1. 安装 ReportLab1.2. 创建 PDF 文件1.3. 使用文档模板 DocTemplate1.4. 使用页面模板 PageTemplate1.5. 继承 BaseDocTemplate1.6. 使用 SimpleDocTemplate1.7. 继承Canvas1.8. 直接使用Canvas 2. 字体与编码3. PLATYPUS - 页面布局和排版3.1. 设…...

私域运营的底层逻辑:从流量到留存的进阶之路

私域流量已成为企业营销的新战场&#xff0c;但盲目跟风只会事倍功半。 接下来&#xff0c;我将深入剖析私域运营的底层逻辑&#xff0c;从几个关键环节&#xff0c;助你构建高效稳定的私域体系。 一、价值优先&#xff1a;以用户需求为核心 私域运营并非简单的粉丝积累&…...

【数据结构 · 初阶】- 带头双向循环链表

目录 1.尾插 2.初始化 3.尾删、头插、头删 4.查找&#xff0c;返回 pos 指针 5.pos 前插入 优化头插&#xff0c;直接复用 优化尾插&#xff0c;直接复用 6.pos 位删除 头删尾删简化 7.销毁 整体代码 List.h List.c Test.c 循环&#xff1a;1.尾 next 指向哨兵位…...

Cube IDE常用快捷键

STM32CubeIDE常用快捷键 STM32CubeIDE快捷键很多&#xff0c;可以通过 Help > Show Active Keybindings… 查看当前可用快捷键&#xff1b;也可以在 Window > Preferences > General > Keys 中查看修改快捷键 快捷键快捷键说明Ctrl/注释行/取消注释行CtrlD删除行…...

C++开发中的DUMP文件:解决崩溃与性能问题的利器(全文字数2w+)

[外链图片转存中…(img-mf6LznjF-1744717065188)] 文章目录 前言为什么需要了解DUMPDUMP在C开发中的重要性 一、DUMP基础概念1. 什么是DUMP文件2. DUMP文件的类型3. DUMP文件的作用&#xff08;1&#xff09;调试程序崩溃&#xff08;2&#xff09;分析程序性能&#xff08;3&a…...

Golang|接口并发测试和压力测试

文章目录 这里出现某些奖品和数据库中库存量不一致的问题原因就是在并发的情况下&#xff0c;sync.Map仍然会出现脏写问题&#xff0c;就是在同时操作下的操作覆盖问题可以先把数据放到channel里&#xff0c;然后用一个单一的协程负责读取channel并写入map...

解决 Maven 500 错误:无法传输 maven-metadata.xml 文件

在使用 Maven 构建和管理 Java 项目时&#xff0c;可能会遇到类似以下的错误信息&#xff1a; [WARNING] Could not transfer metadata com.ha:xxx-model:2025.0.1.SNAPSHOT/maven-metadata.xml from/to public (http://xxx.xx.xx.xx/repository/maven-public): status code: …...

鸿蒙应用开发—鸿蒙app一键安装脚本

背景 当鸿蒙App开发完后需要提测&#xff0c;如何将App文件发给QA安装测试&#xff0c;是一件麻烦事&#xff0c;因为鸿蒙App并不能像Android Apk那样可以直接安装到设备中&#xff0c;能想到的方式有&#xff1a; 直接叫测试拿手机过来安装让测试安装DevEco Studio 拉代码编…...

opencv二值化实验

二值化实验 1二值化说明2 阈值法&#xff08;THRESH_BINARY&#xff09;3.反阈值法&#xff08;THRESH_BINARY_INV&#xff09;4截断阈值法&#xff08;THRESH_TRUNC&#xff09;5 低阈值零处理&#xff08;THRESH_TOZERO&#xff09;6 超阈值零处理&#xff08;THRESH_TOZERO_…...

3DGS之渲染管线

渲染管线&#xff08;Rendering Pipeline&#xff09;是计算机图形学中将三维场景转换为二维屏幕图像的核心流程&#xff0c;涉及CPU与GPU的分工协作。计算机图形学把渲染管线分为三个阶段&#xff1a;应用程序阶段、几何阶段、光栅化阶段。渲染管线的一般流程是&#xff1a;顶…...

C#设计模式-状态模式

状态模式案例解析&#xff1a;三态循环灯的实现 案例概述 本案例使用 状态模式&#xff08;State Pattern&#xff09; 实现了一个 三态循环灯 的功能。每点击一次按钮&#xff0c;灯的状态会按顺序切换&#xff08;状态1 → 状态2 → 状态3 → 状态1...&#xff09;&#xff…...

泛微相关文档以及相关安装包下载

泛微相关文档以及相关安装包下载 泛微相关安装包下载泛微相关安装包下载 泛微E10登录网址:https://www.e-cology.com.cn/login?service=https%3A%2F%2Fwww.e-cology.com.cn%2F Ecode使用说明:https://e-cloudstore.com/doc.html 泛微组件库:https://cloudstore.e-cology…...

软件包安装管理Gitlab

官方提供了非常详尽的系统及自动化脚本安装教程 Gitlab官网下载地址&#xff1a;https://gitlab.cn/install/ 1、安装配置 今天我们说一下包安装管理&#xff0c;这样方便我们自己更精确的制定符合我们自己需要的Gitlab仓库 配置&#xff1a;ubuntu2004(focal) 4C8G 下载程…...

在Java使用rest Client操作ES

1. 导入restClient依赖 <dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><version>7.12.1</version></dependency> 2. 了解ES核心客户端API 核心区别…...

深入解析Linux软件包管理:apt/yum源配置与Vim编辑器高效使用指南

一、Linux软件包管理与开发工具 1.软件包管理器与Linux软件生态 软件包管理器的作用与分类 什么是软件包&#xff1f; 在Linux下安装软件&#xff0c;一个通常的办法是下载到程序的源代码&#xff0c;并进行编译&#xff0c;得到可执行程序。但是这样太麻烦了&#xff0c;于…...

小程序css实现容器内 数据滚动 无缝衔接 点击暂停

<view class"gundongBox"><!-- 滚动展示信息的模块 --><image class"imgWid" :src"imgurlgundong.png" mode"widthFix"></image><view class"gundongView"><view class"container&qu…...

记录 | Pycharm中如何调用Anaconda的虚拟环境

目录 前言一、步骤Step1 查看anaconda 环境名Step2 Python项目编译器更改 更新时间 前言 参考文章&#xff1a; 参考视频&#xff1a;如何在pycharm中使用Anaconda创建的python环境 自己的感想 这里使用的Pycharm 2024专业版的。我所使用的Pycharm专业版位置&#xff1a;【仅用…...

静态站点生成

以下是关于 静态站点生成(SSG) 的系统知识梳理,涵盖核心概念、核心实现、数据管理与优化等内容: 一、核心概念与优势 定义 静态站点生成(SSG)是在构建阶段预生成所有静态HTML文件的技术,用户访问时直接获取预渲染内容,无需服务器动态生成。 核心优势 性能卓越:CDN缓存…...

Android Jni(二)加载调用第三方 so 库

文章目录 Android Jni&#xff08;二&#xff09;加载调用第三方 so 库前置知识CPU架构 ABI 基本步骤1、将第三方 SO 库文件放入项目中的正确位置&#xff1a;2. 创建 JNI 接口3. 实现 JNI 层代码4、配置 CMake 常见问题解决1、UnsatisfiedLinkError&#xff1a;2、函数找不到&…...

解锁元生代:ComfyUI工作流与云原生后端的深度融合

目录 蓝耘元生代&#xff1a;智算新势力崛起​ ComfyUI 工作流创建详解​ ComfyUI 初印象​ 蓝耘平台上搭建 ComfyUI 工作流​ 构建基础工作流实操​ 代码示例与原理剖析​ 云原生后端技术全景 云原生后端概念解析​ 核心技术深度解读​ 蓝耘元生代中两者的紧密联系​…...

LeetCode算法题(Go语言实现)_47

题目 给你一个 m x n 的迷宫矩阵 maze &#xff08;下标从 0 开始&#xff09;&#xff0c;矩阵中有空格子&#xff08;用 ‘.’ 表示&#xff09;和墙&#xff08;用 ‘’ 表示&#xff09;。同时给你迷宫的入口 entrance &#xff0c;用 entrance [entrancerow, entrancecol…...

树莓派_利用Ubuntu搭建gitlab

树莓派_利用Ubuntu搭建gitlab 一、给树莓派3A搭建基本系统 1、下载系统镜像 https://cdimage.ubuntu.com/ubuntu/releases/18.04/release/ 2、准备系统SD卡 二、给树莓派设备联网 1、串口后台登录 使用串口登录后台是最便捷的&#xff0c;因为前期网络可能不好直接成功 默…...

vi(vim)编辑器和root用户与普通用户之间的转换

vim编辑器是vi编辑器的加强版&#xff0c;以vi为例&#xff1a; vi编辑器&#xff1a; vi编辑器可以编辑文件内容 如何进入vi编辑器&#xff1f; 语法&#xff1a; vi 文件路径 如何退出&#xff1f; 语法&#xff1a; wq&#xff1a;保存退出 w&#xff1a;保存 q&…...

【vscode】vscode链接关联github/gitlab

一、windows下载安装git Git - Downloading Package 二、配置Git的用户名和邮箱 Git Bash运行以下命令来配置Git的用户名和邮箱&#xff1a; git config --global user.name "你的用户名" git config --global user.email "你的邮箱地址" 生成本机秘钥…...

Redis面试问题缓存相关详解

Redis面试问题缓存相关详解 一、缓存三兄弟&#xff08;穿透、击穿、雪崩&#xff09; 1. 穿透 问题描述&#xff1a; 缓存穿透是指查询一个数据库中不存在的数据&#xff0c;由于缓存不会保存这样的数据&#xff0c;每次都会穿透到数据库&#xff0c;导致数据库压力增大。例…...

Web三漏洞学习(其一:文件上传漏洞)

靶场:云曦历年考核题 一、文件上传 在此之前先准备一个一句话木马 将其命名为muma.txt 23年秋期末考 来给师兄上个马 打开环境以后直接上传muma.txt&#xff0c;出现js弹窗&#xff0c;说明有前端验证 提示只能上传.png .jpg 和 .gif文件&#xff0c;那就把muma.txt的后缀…...

冲刺高分!挑战7天一篇nhanes机器学习SCI!DAY1-7

医学生集合啦&#xff0c;继续挑战 7天一篇nhanes机器学习SCI&#xff01; Day 1 进展&#xff1a;确定选题、期刊、文献 前面挑战了一期NHANES机器学习&#xff0c;大家使用NHANES的发文章的热情&#xff0c;火爆程度远超想象&#xff01;我在下面的评论区看到大家的学习欲…...

高并发三剑客-本地缓存之王Caffeine-01缓存应用

1 分布式缓存使用及导致的问题 1.1 hotkey典型业务场景 常规性hotkey&#xff1a;可以提前评估出hotkey的场景&#xff0c;比如&#xff1a;重要节假日、促销活动等 突发性hotkey&#xff1a;没法提前评估&#xff0c;突发性行为&#xff0c;比如&#xff1a;突然新闻、爆炸信息…...

基于Java,SpringBoot,Vue,HTML家政服务预约系统设计

摘要 本文聚焦于基于Java、SpringBoot、Vue和HTML技术的家政服务预约系统的设计与实现。该系统旨在为家政服务的供需双方搭建一个便捷、高效的在线交互平台。后端采用Java语言结合SpringBoot框架&#xff0c;充分利用SpringBoot的自动配置和快速开发特性&#xff0c;实现系统业…...

系统架构设计师:系统架构概述知识体系、考点详解、高效记忆要点、练习题并提供答案与解析

一、系统架构概述知识体系、考点详解 系统架构概述、定义与作用 1. 系统架构的定义与核心要素 系统架构是复杂系统的高层次组织结构&#xff0c;包含硬件/软件组件、交互关系、设计原则及演进策略。其核心要素包括&#xff1a; 构件与模式&#xff1a;现代架构三要素为构件…...

汽配快车道解决chrome backgroud.js(Service Worker) XMLHttpRequest is not defined问题

Chrome 扩展开发&#xff1a;Service Worker 中如何优雅地发送 HTTP 请求 在 Chrome 扩展开发中&#xff0c;Service Worker 是一个非常重要的部分&#xff0c;它可以帮助我们实现很多强大的功能。然而&#xff0c;如果你在 Service Worker 中尝试使用 XMLHttpRequest 来发送 …...

VMware Ubuntu挂载Windows机器的共享文件

https://www.dong-blog.fun/post/2029 在VMware Ubuntu中访问Windows共享文件夹&#xff1a;完整指南 在使用VMware运行Ubuntu虚拟机时&#xff0c;访问Windows主机上的文件是常见需求。本文将详细介绍如何通过网络共享方式&#xff0c;让Ubuntu虚拟机直接访问Windows主机的文…...

LeNet神经网络

一、LeNet概述 1. 历史地位 开创性模型&#xff1a;首个成功应用的卷积神经网络&#xff08;1998年&#xff09;应用场景&#xff1a;手写数字识别&#xff08;MNIST数据集&#xff09;、银行支票识别提出者&#xff1a;Yann LeCun团队&#xff08;论文《Gradient-Based Lear…...

Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]

Visio绘图工具全面科普&#xff1a;解锁专业图表绘制新境界&#x1f31f; 在信息爆炸的时代&#xff0c;清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图&#x1f4ca;、组织结构图&#x1f465;&#xff0c;还是规划网络拓扑&#x1f5a7;&#xff0c;一款强大的绘图…...

ECharts散点图-散点图3,附视频讲解与代码下载

引言&#xff1a; ECharts散点图是一种常见的数据可视化图表类型&#xff0c;它通过在二维坐标系或其它坐标系中绘制散乱的点来展示数据之间的关系。本文将详细介绍如何使用ECharts库实现一个散点图&#xff0c;包括图表效果预览、视频讲解及代码下载&#xff0c;让你轻松掌握…...

D3路网图技术文档

在本文档中&#xff0c;我们将探讨如何使用 D3.js&#xff0c;结合 SVG&#xff08;可缩放矢量图形&#xff09;和 Canvas&#xff0c;来实现高效、交互性强的路网图效果。D3.js 是一个强大的 JavaScript 数据可视化库&#xff0c;可以基于数据驱动文档对象模型&#xff08;DOM…...

Unity 一些小功能(屏幕画画,)

利用 Line Renderer 实现屏幕画画并保存图片 // 当前正在绘制的 LineRendererprivate LineRenderer currentLineRenderer;// 用于保存所有笔触的列表private List<LineRenderer> allLineRenderers new List<LineRenderer>();// 当前笔触顶点计数器private int ve…...

列表、字符串、heapq堆对列算法

1、列表 1.1 访问最后一个元素 list [1, 2, 3, 4, 5, 6] print(list[-1]) # 61.2 访问列表指定范围&#xff0c;例如第1-4个元素 print(list[0, 4]) # [1, 2, 3, 4]1.3 将字符列表以字符串形式输出 list [h, e, l, l, o] ls "".join(list) print(ls) # "…...

实战指南:封装Whisper为FastAPI接口并实现高并发处理

下面给出一个详细的示例&#xff0c;说明如何使用 FastAPI 封装 OpenAI 的 Whisper 模型&#xff0c;提供一个对外的 REST API 接口&#xff0c;并支持一定的并发请求。 下面是主要步骤和示例代码。 1. 环境准备 Python 环境&#xff1a; 建议使用 Python 3.8。依赖库&#x…...

Arm系统ubuntu20.04中自带的火狐浏览器打开网页B站视频和百度网盘网页视频,视频无法打开,并且没有声音——(本质上解决)

自己工作过程中有一台Orin nx arm设备&#xff0c;所以希望能够用这台设备看视频学习&#xff0c;发现自带的firefox打开网页版百度网盘和B站的时候无法打开视频&#xff0c;而且用有线耳机发现没有声音&#xff0c;最后换掉浏览器&#xff0c;用Chromium。 1、如果还想继续用…...

Qt 自定义控件

在 Qt 中&#xff0c;自定义控件是通过继承现有的 Qt 控件类&#xff08;如 QWidget、QPushButton、QLabel 等&#xff09;并重载相关的事件处理函数或绘制函数来实现的。自定义控件允许你根据需求添加特定的功能或样式。 自定义控件的基本步骤 1. 继承 Qt 控件类&#xff1a…...

Java使用WebSocket视频拆帧进度处理与拆帧图片推送,结合Apipost进行调试

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>Configuration public class WebSocketConfig {/*** 启动 WebSocket 服务器*/Beanpublic ServerEndpointE…...

Java项目之基于ssm的QQ村旅游网站的设计(源码+文档)

项目简介 QQ村旅游网站实现了以下功能&#xff1a; 管理员权限操作的功能包括管理景点路线&#xff0c;板块信息&#xff0c;留言板信息&#xff0c;旅游景点信息&#xff0c;酒店信息&#xff0c;对景点留言&#xff0c;景点路线留言以及酒店留言信息等进行回复&#xff0c;…...

《 Reinforcement Learning for Education: Opportunities and Challenges》全文阅读

Reinforcement Learning for Education: Opportunities and Challenges 面向教育的强化学习&#xff1a;机遇与挑战 摘要 本综述文章源自作者在 Educational Data Mining (EDM) 2021 会议期间组织的 RL4ED 研讨会。我们组织了这一研讨会&#xff0c;作为一项社区建设工作的组…...

Apache Kafka UI :一款功能丰富且美观的 Kafka 开源管理平台!!

Apache Kafka UI 是一个免费的开源 Web UI&#xff0c;用于监控和管理 Apache Kafka 集群&#xff0c;可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况&#xff0c;支持多集群管理、性能监控、访问控制等功能。 1 特征 多集群管理&#xff1a; 在一个地方监控和管理…...

无参数RCE

无参数RCE&#xff08;Remote Code Execution&#xff0c;远程代码执行&#xff09; 是一种通过利用目标系统中的漏洞&#xff0c;在不直接传递用户可控参数的情况下&#xff0c;实现远程执行任意代码的攻击技术。与传统的RCE攻击不同&#xff0c;无参数RCE不依赖外部输入参数…...

设计模式之状态模式:优雅管理对象行为变化

引言 状态模式&#xff08;State Pattern&#xff09;是一种行为型设计模式&#xff0c;它允许对象在其内部状态改变时改变它的行为&#xff0c;使对象看起来似乎修改了它的类。状态模式将状态转移逻辑和状态相关行为封装在独立的状态类中&#xff0c;完美解决了复杂条件判断问…...

拖动滑块 代替验证码,识别机器人的方式,实验原理

拖动滑块验证是一种常见的人机验证技术&#xff0c;用于区分真实用户和自动化程序&#xff08;如机器人&#xff09;。其核心原理不仅在于用户是否能将滑块移动到正确位置&#xff0c;还包括对拖动行为的轨迹、速度、加速度等特征的分析。以下是其实现原理及识别机器人的方式&a…...