elasticsearch8.15 高可用集群搭建(含认证Kibana)
文章目录
- 1.资源配置
- 2.系统参数优化
- 3.JDK17安装
- 4.下载&安装ES 8.15
- 5.生成ES的证书(用于ES节点之间进行安全数据传输)
- 6.修改ES 相关配置文件
- 7.创建es用户并启动
- 8.配置ES的账号和密码(用于ES服务端和客户端)
- 9.下载和安装Kibana
- 10.编辑Kibana配置文件
- 11.启动Kiabana
- 12.访问Kiaban
- 13.通过Kibana验证ES集群
1.资源配置
主机名称 | IP | cpu | 内存 | es角色 | es集群名称 | es节点名称 |
---|---|---|---|---|---|---|
es-1 | 192.168.25.31 | 1.5G | 1 | master、data | es-cluster | node-1 |
es-2 | 192.168.25.32 | 1.5G | 1 | master、data | es-cluster | node-2 |
es-3 | 192.168.25.33 | 1.5G | 1 | master、data | es-cluster | node-3 |
注:默认每个节点都是协调节点,故而不用特定当前节点为协调节点
ES角色说明:
- 主节点(Master Node)
活跃主节点(active master node):集群中只允许有一个活跃的主节点,负责轻量级集群范围的操作,例如创建或删除索引、跟踪集群成员以及决定分片的分配。拥有一个稳定的主节点对于集群健康很重要。(也就是如果你配置了多个主节点,实际活跃的主节点只有一个,其他为候选主节点)- 数据节点(Data Node)
数据节点主要负责数据的存储和处理,包括数据的增删改查、搜索和聚合等操作。这些操作是I/O密集型、内存密集型和CPU密集型的,因此监控这些资源并在它们过载时添加更多数据节点非常重要。- 协调节点(Coordinating Node)
协调节点主要负责协调客户端的请求,将接收到的请求分发给合适的节点,并把结果汇集到一起返回给客户端。每个节点都默认起到了协调节点的职责。(默认每个节点都是协调节点,故而不用特定当前节点为协调节点)
2.系统参数优化
注:所有ES节点都需要执行
# 修改系统参数
cat >> /etc/security/limits.conf << 'EOF'
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
EOF#用于限制一个进程可以拥有的最大内存映射区域数量。
echo "vm.max_map_count=655360" >> /etc/sysctl.conf#让配置生效
sysctl -p#
soft nofile 65536:表示软性限制下,一个进程最多能打开的文件描述符(或句柄)数量为65536。软性限制是一个警告阈值,当达到或超过这个限制时,系统会给出警告,但进程仍然可以继续运行(取决于系统配置和策略)。
hard nofile 131072:表示硬性限制下,一个进程最多能打开的文件描述符数量为131072。硬性限制是一个严格的阈值,当达到或超过这个限制时,系统会拒绝进程打开更多的文件,并可能导致进程出错。
soft nproc 2048:表示软性限制下,一个用户最多能创建的进程数量为2048。同样,这是一个警告阈值。
hard nproc 4096:表示硬性限制下,一个用户最多能创建的进程数量为4096。这是一个严格的阈值,当达到或超过这个限制时,系统会拒绝用户创建更多的进程。
3.JDK17安装
注:所有ES节点都需要执行
JDK17 下载地址:https://download.oracle.com/java/17/archive/jdk-17.0.1_linux-x64_bin.tar.gz
下载后上传至服务器。
#创建存放软件的目录
mkdir /opt/software# 解压jdk到指定目录
tar -zxvf jdk-17.0.1_linux-x64_bin.tar.gz -C /opt/software/#添加JDK环境变量配置
cat >> /etc/profile << 'EOF'
export JAVA_HOME=/opt/software/jdk-17.0.1
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
EOF#让配置生效
source /etc/profile#查看jdk17是否安装成功
java -version
4.下载&安装ES 8.15
ES8.15 下载地址:https://www.elastic.co/downloads/past-releases/elasticsearch-8-15-0
下载后将压缩包上传至服务器。
#将ES解压至特定目录
tar -zxvf elasticsearch-8.15.0-linux-x86_64.tar.gz -C /opt/software/#切到es目录
cd /opt/software/elasticsearch-8.15.0/
5.生成ES的证书(用于ES节点之间进行安全数据传输)
注:其中一个ES节点执行,生成证书后拷贝到其他服务器的ES节点上。
ES证书工具类用法说明:
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil --help
Simplifies certificate creation for use with the Elastic StackCommands
--------
csr - generate certificate signing requests
cert - generate X.509 certificates and keys
ca - generate a new local certificate authority
http - generate a new certificate (or certificate request) for the Elasticsearch HTTP interface
生成CA证书和节点证书
#生成CA根证书(注:执行命令后会提示你输入密码之类的,一直回车即可)
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil ca#生成节点证书并指定CA根证书(注:执行命令后会提示你输入密码之类的,一直回车即可)
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
将证书移动到ES的config目录或config子目录之下!!!(不然后续ES会启动报错)
[root@es8-1 elasticsearch-8.15.0]# mkdir /opt/software/elasticsearch-8.15.0/config/cert
[root@es8-1 elasticsearch-8.15.0]# mv elastic-stack-ca.p12 ./config/cert/
[root@es8-1 elasticsearch-8.15.0]# mv elastic-certificates.p12 ./config/cert/
注1:执行生成证书命令后会提示你输入密码之类的,一直回车即可
注2:生成证书后,看到当前目录下多了两个证书文件,elastic-stack-ca.p12(CA根证书)、elastic-certificates.p12(节点证书)
注3:在其中一个es节点中生成好证书后,将证书下载并上传到其他几台ES服务器上的es的配置目录下。
“注4”:一定要把生成的SSL证书放到ES的config目录之下,不然后续启动会报错!!
6.修改ES 相关配置文件
注:所有ES节点都需要执行
修改jvm.options文件
#编辑jvm文件,修改jvm的堆大小(根据实际情况来)
[root@es8-1 elasticsearch-8.15.0]# vim config/jvm.options
-Xms512m
-Xmx512m
修改elasticsearch.yml文件
[root@es8-1 elasticsearch-8.15.0]# vim config/elasticsearch.yml
主要修改的参数如下:
#集群名称
cluster.name: es-cluster
#节点名称(集群中不同实例的节点名称要求唯一)
node.name: node-1
#节点角色注意至少有两个具有选举master资格的节点
node.roles: [master,data]
#es的数据目录
path.data: /opt/software/elasticsearch-8.15.0/data
#es的日志目录
path.logs: /opt/software/elasticsearch-8.15.0/logs
#es节点绑定的网卡。0.0.0.0即绑定所有网卡
network.host: 0.0.0.0
#http端口(es服务端和客户端的通讯端口)
http.port: 9200
#用于指定集群自动发现所需的初始主机节点列表(不要求一定是主节点)。这些主机节点用于引导新加入的节点发现和加入集群。
discovery.seed_hosts: [“192.168.25.31:9300”, “192.168.25.32:9300”, “192.168.25.33:9300”]
#用于指定集群的初始主节点列表。这些节点在集群启动时负责选举出主节点,并承担集群的管理和协调工作。
cluster.initial_master_nodes: [“node-1”, “node-2”, “node-3”]
#是否支持模糊方式(如_all 或 *)删除索引(不要开启,怕误删风险)
action.destructive_requires_name: false
#跨域配置。避免前端网站访问es出现跨域
http.cors.enabled: true
http.cors.allow-origin: “*”
#证书配置
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.client_authentication: required
xpack.security.transport.ssl.keystore.path: /opt/software/elasticsearch-8.15.0/config/cert/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /opt/software/elasticsearch-8.15.0/config/cert/elastic-certificates.p12
注1:有些参数是配置文件上没有的,没有的就在配置文件上补上
注2:上面用的9300端口是ES实例内部之间进行通讯的TCP端口
注3:不同ES节点修改的内容基本一样,除了node.name,其它都一样
7.创建es用户并启动
注:所有ES节点都需要执行
由于es不支持root用户启动,故而需要添加一个普通用户来启动es
# 创建普通用户用于es
useradd -s /bin/bash elastic#将es相关目录授权给es用户
chown -R elastic:elastic /opt/software/elasticsearch-8.15.0
注:需要把es所有相关目录都授权给elastic用户,尤其是 数据目录和日志目录放在其他路径下的,都要注意下,否则可能会因为无权限而导致启动失败。
自定义Systemctl来控制ES的启停:
#自定义sytemctl来控制ES的启停
cat > /etc/systemd/system/elasticsearch.service << 'EOF'
[Unit]
Description=Elastic Search
Documentation=https://www.elastic.co/docs
After=network.target[Service]
Type=forking
#运行elasticsearch使用的用户
User=elastic
Group=elastic
ExecStart=/opt/software/elasticsearch-8.15.0/bin/elasticsearch -d
Restart=always
#注:启动超时时间需要设长一点。因为我1核cpu启动需要很久,如果超时时间短,会导致启动超时,然后又会触发systemctl 进行es服务重启,导致es永远都没有启动成功。
TimeoutStartSec=600s
RestartSec=650s
#设置进程的系统参数
LimitNOFILE=65536
LimitNPROC=4096[Install]
WantedBy=multi-user.targetEOF#让配置生效
systemctl daemon-reload
启动ES
#启动es
systemctl start elasticsearch
#开机自启动
systemctl enable elasticsearch
8.配置ES的账号和密码(用于ES服务端和客户端)
注:集群中的其中一个ES节点进行即可
可以看到在访问的时候要求我们输入账号和密码。故而我们需要配置ES的用户和密码。
ES给我们内置了很多不同业务场景使用的账号,故而可以通过命令给这些账号进行密码设置,如下所示:
[root@es8-1 elasticsearch-8.15.0]# ./bin/elasticsearch-setup-passwords interactive
warning: ignoring JAVA_HOME=/opt/software/jdk-17.0.1; using bundled JDK
******************************************************************************
Note: The 'elasticsearch-setup-passwords' tool has been deprecated. This command will be removed in a future release.
******************************************************************************Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y# 下面内置的账号中,你可以根据你的需求设置对应的密码
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
[root@es8-1 elasticsearch-8.15.0]#
密码设置完毕之后,把上一步设置好的账号(用elastic账号)和密码输入进去,然后就可以登陆成功了,登陆成功后的界面如下所示:
9.下载和安装Kibana
注:其中一个ES节点执行 或者 其他服务器上执行都可以
Kibana下载地址:https://www.elastic.co/downloads/past-releases/kibana-8-15-0
#解压并安装到指定目录
tar -zxvf kibana-8.15.0-linux-x86_64.tar.gz -C /opt/software/
cd /opt/software/kibana-8.15.0/
10.编辑Kibana配置文件
vim /opt/software/kibana-8.15.0/config/kibana.yml
#绑定所有网卡(让外部能访问到)
server.host: “0.0.0.0”
#指定es集群的地址
elasticsearch.hosts: [“http://192.168.25.31:9200”,“http://192.168.25.32:9200”,“http://192.168.25.33:9200”]
#指定kibana连接es使用的账号(kibana_system)和密码。该密码上文设置过了
elasticsearch.username: “kibana_system”
elasticsearch.password: “123456”
#设置网站文字为中文
i18n.locale: “zh-CN”
#指定kibana日志输出格式和输出路径
logging.appenders.default:type: rolling-filefileName: /opt/software/kibana-8.15.0/logs/kibana.logpolicy:type: size-limitsize: 256mbstrategy:type: numericmax: 2layout:type: patternpattern: "[%date][%level][%logger] %message"
11.启动Kiabana
kibana安装目录授权给elastic用户
chown -R elastic:elastic /opt/software/kibana-8.15.0/
自定义Systemctl来控制Kibana的启停:
#自定义sytemctl来控制Kibana的启停
cat > /etc/systemd/system/kibana.service << 'EOF'
[Unit]
Description=Kibana
Documentation=https://www.elastic.co/docs
After=network.target[Service]
#运行Kibana使用的用户
User=elastic
Group=elastic
ExecStart=/opt/software/kibana-8.15.0/bin/kibana[Install]
WantedBy=multi-user.targetEOF#让配置生效
systemctl daemon-reload
启动kibana
#启动kibana
systemctl start kibana
#开机自启动
systemctl enable kibana
注:可以通过上面配置的日志路径找到对应日志文件来查看kibana是否启动成功。
12.访问Kiaban
访问地址:http://Kibana所在服务器IP:5601/。
我这里对应的地址是:http://192.168.25.31:5601/
网站进入登陆界面后,通过elastic账号进行登陆。
登陆成功后:
13.通过Kibana验证ES集群
通过“菜单”-“开发工具”-“控制台” 来执行我们的ES客户端命令。
执行集群查看命令
GET /_cluster/health
返回结果如下:
{"cluster_name": "es-cluster", # 集群名称"status": "green", #集群状态,绿色代表健康"timed_out": false,"number_of_nodes": 3, #三个集群节点"number_of_data_nodes": 3, #三个集群数据节点"active_primary_shards": 31,"active_shards": 62,"relocating_shards": 0,"initializing_shards": 0,"unassigned_shards": 0,"delayed_unassigned_shards": 0,"number_of_pending_tasks": 0,"number_of_in_flight_fetch": 0,"task_max_waiting_in_queue_millis": 0,"active_shards_percent_as_number": 100
}
至此,ES集群的搭建大功告成~~~~
相关文章:
elasticsearch8.15 高可用集群搭建(含认证Kibana)
文章目录 1.资源配置2.系统参数优化3.JDK17安装4.下载&安装ES 8.155.生成ES的证书(用于ES节点之间进行安全数据传输)6.修改ES 相关配置文件7.创建es用户并启动8.配置ES的账号和密码(用于ES服务端和客户端)9.下载和安装Kibana10.编辑Kibana配置文件11.启动Kiabana12.访问Kia…...
如何实现滑动网格的功能
文章目录 1 概念介绍2 使用方法3 示例代码 我们在上一章回中介绍了SliverList组件相关的内容,本章回中将介绍SliverGrid组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的SliverGrid组件是一种网格类组件,主要用来…...
DBASE DBF数据库文件解析
基于Java实现DBase DBF文件的解析和显示 JDK19编译运行,实现了数据库字段和数据解析显示。 首先解析数据库文件头代码 byte bytes[] Files.readAllBytes(Paths.get(file));BinaryBufferArray bis new BinaryBufferArray(bytes);DBF dbf new DBF();dbf.VersionN…...
linux中统计文件中特定单词或字符串的出现次数
在 Linux 中,可以使用 grep 和 wc 命令组合来统计一个文件中特定单词或字符串的个数。假设想统计文件 example.txt 中字符串 “example_string” 出现的次数,可以使用以下命令: grep -o -w example_string example.txt | wc -l这里是每个选项…...
视觉状态空间模型(VMamba)的解读
在计算机视觉领域,设计计算高效的网络架构一直是研究的热点。今天,我想和大家分享一篇发表在 NIPS 2024 上的论文——VMamba:Visual State Space Model,这篇论文提出了一种新的视觉骨干网络,具有线性时间复杂度&#x…...
几种K8s运维管理平台对比说明
目录 深入体验**结论**对比分析表格**1. 功能对比****2. 用户界面****3. 多租户支持****4. DevOps支持** 细对比分析1. **Kuboard**2. **xkube**3. **KubeSphere**4. **Dashboard****对比总结** 深入体验 KuboardxkubeKubeSphereDashboard 结论 如果您需要一个功能全面且适合…...
nodejs:js-mdict 的下载、安装、测试、build
js-mdict 项目的目录结构:js-mdict 项目教程 js-mdict 下载地址: js-mdict-master.zip 先解压到 D:\Source\ js-mdict 6.0.2 用了 ts (TypeScript) 和 Jest,增加了应用开发的难度,因为先要了解 ts 和 Jest。 参阅:测试与开发&a…...
Vue3 表单:全面解析与最佳实践
Vue3 表单:全面解析与最佳实践 引言 随着前端技术的发展,Vue.js 已经成为最受欢迎的前端框架之一。Vue3 作为 Vue.js 的最新版本,带来了许多改进和新的特性。其中,表单处理是 Vue 应用中不可或缺的一部分。本文将全面解析 Vue3 …...
JavaWeb入门-请求响应(Day3)
(一)请求响应概述 请求(HttpServletRequest):获取请求数据 响应(HttpServletResponse):设置响应数据 BS架构:Browser/Server,浏览器/服务器架构模式。客户端只需要浏览器就可访问,应用程序的逻辑和数据都存储在服务端(维护方便,响应速度一般) CS架构:Client/ser…...
【单层神经网络】基于MXNet库简化实现线性回归
写在前面 同最开始的两篇文章 完整程序及注释 导入使用的库# 基本 from mxnet import autograd, nd, gluon # 模型、网络 from mxnet.gluon import nn from mxnet import init # 学习 from mxnet.gluon import loss as gloss # 数据集 from mxnet.gluon…...
一元函数微积分的几何应用:二维平面光滑曲线的曲率公式
文章目录 前言曲率和曲率半径的定义曲率计算公式参数方程形式直角坐标显式方程形式极坐标形式向量形式 前言 本文将介绍二维平面光滑曲线的曲率定义以及不同形式的曲率及曲率半径公式的推导。 曲率和曲率半径的定义 (关于二维平面光滑曲线的定义以及弧长公式请参…...
编程题-最接近的三数之和
题目: 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 解法一(排序双指针): 题目要求找…...
【LLM-agent】(task4)搜索引擎Agent
note 新增工具:搜索引擎Agent 文章目录 note一、搜索引擎AgentReference 一、搜索引擎Agent import os from dotenv import load_dotenv# 加载环境变量 load_dotenv() # 初始化变量 base_url None chat_model None api_key None# 使用with语句打开文件…...
string类详解
为什么学习string类? 1.1 C语言中的字符串 C语言中,字符串是以\0结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想…...
【含文档+PPT+源码】基于微信小程序农家乐美食餐厅预约推广系统
项目介绍 本课程演示的是一款基于微信小程序农家乐美食餐厅预约推广系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统 …...
享元模式——C++实现
目录 1. 享元模式简介 2. 代码示例 1. 享元模式简介 享元模式是一种结构型模式。 享元模式用于缓存共享对象,降低内存消耗。共享对象相同的部分,避免创建大量相同的对象,减少内存占用。 享元模式需要将对象分成内部状态和外部状态两个部分…...
《苍穹外卖》项目学习记录-Day11订单统计
根据起始时间和结束时间,先把begin放入集合中用while循环当begin不等于end的时候,让begin加一天,这样酒吧把这个区间内的时间放到List集合。 查询每天的订单总数也就是查询的时间段是大于当天的开始时间(0点0分0秒)小…...
Python3 OS模块中的文件/目录方法说明十六
一. 简介 前面文章简单学习了 Python3 中 OS模块中的文件/目录的部分函数。 本文继续来学习 OS 模块中文件、目录的操作方法:os.unlink() 方法、os.utime()方法。 二. Python3 OS模块中的文件/目录方法 1. os.unlink() 方法 os.unlink() 方法用于删除文件,如果文…...
(二)QT——按钮小程序
目录 前言 按钮小程序 1、步骤 2、代码示例 3、多个按钮 ①信号与槽的一对一 ②多对一(多个信号连接到同一个槽) ③一对多(一个信号连接到多个槽) 结论 前言 按钮小程序 Qt 按钮程序通常包含 三个核心文件: m…...
图论——spfa判负环
负环 图 G G G中存在一个回路,该回路边权之和为负数,称之为负环。 spfa求负环 方法1:统计每个点入队次数, 如果某个点入队n次, 说明存在负环。 证明:一个点入队n次,即被更新了n次。一个点每次被更新时所对应最短路的边数一定是…...
96,【4】 buuctf web [BJDCTF2020]EzPHP
进入靶场 查看源代码 GFXEIM3YFZYGQ4A 一看就是编码后的 1nD3x.php 访问 得到源代码 <?php // 高亮显示当前 PHP 文件的源代码,用于调试或展示代码结构 highlight_file(__FILE__); // 关闭所有 PHP 错误报告,防止错误信息泄露可能的安全漏洞 erro…...
Rust 的基本类型有哪些,他们存在堆上还是栈上,是否可以COPY?
Rust 的基本类型主要包括以下几类: 1. 整数类型(Integer) Rust 提供了有符号和无符号的整数类型: 有符号整数(i8, i16, i32, i64, i128, isize)无符号整数(u8, u16, u32, u64, u128, usize&a…...
函数与递归
函数与递归 声明或者定义应该在使用之前(不单单针对于函数) 函数对全局变量做出的改变还是不会随着函数结束而消失的 函数声明在main函数里面也是可以的 引用变量和引用实体的变化是一样的 传址调用比传值调用效率高 重载函数->编译器会根据传递…...
UE5 蓝图学习计划 - Day 11:材质与特效
在游戏开发中,材质(Material)与特效(VFX) 是提升视觉体验的关键元素。Unreal Engine 5 提供了强大的 材质系统 和 粒子系统(Niagara),让开发者可以通过蓝图控制 动态材质、光效变化、…...
DeepSeek 详细使用教程
1. 简介 DeepSeek 是一款基于人工智能技术的多功能工具,旨在帮助用户高效处理和分析数据、生成内容、解答问题、进行语言翻译等。无论是学术研究、商业分析还是日常使用,DeepSeek 都能提供强大的支持。本教程将详细介绍 DeepSeek 的各项功能及使用方法。…...
低代码系统-产品架构案例介绍、炎黄盈动-易鲸云(十二)
易鲸云作为炎黄盈动新推出的产品,在定位上为低零代码产品。 开发层 表单引擎 表单设计器,包括设计和渲染 流程引擎 流程设计,包括设计和渲染,需要说明的是:采用国际标准BPMN2.0,可以全球通用 视图引擎 视图…...
【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】1.27 线性代数王国:矩阵分解实战指南
1.27 线性代数王国:矩阵分解实战指南 #mermaid-svg-JWrp2JAP9qkdS2A7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-JWrp2JAP9qkdS2A7 .error-icon{fill:#552222;}#mermaid-svg-JWrp2JAP9qkdS2A7 .erro…...
【C语言】动态内存管理
1、为什么存在动态内存分配?2、动态内存管理函数介绍(1)malloc(2)free(3)calloc(4)realloc 3、常见动态内存错误(1)使用free释放动态内存开辟的一…...
Cocoa和Cocoa Touch是什么语言写成的?什么是Cocoa?编程语言中什么是框架?为什么苹果公司Cocoa类库有不少NS前缀?Swift编程语言?
Cocoa和Cocoa Touch是什么语言写成的? 二者主要都是用Objective-C语言编写而成的。 什么是Cocoa? Cocoa是苹果操作系统macOS和iOS上的应用程序开发框架集合,核心语言是Objective-C编程语言,在移动平台被称为Cocoa Touch,Cocoa包含多个子框架…...
Qt Creator 中使用 vcpkg
Qt Creator 中使用 vcpkg Qt Creator 是一个跨平台的轻量级 IDE,做 Qt 程序开发的同学们肯定对这个 IDE 都比较属于。这个 IDE 虽然没有 Visual Stdio 功能那么强,但是由于和 Qt 集成的比较深,用来开发 Qt 程序还是很顺手的。 早期…...
Python GUI 开发 | PySide6 PyQt6 学习手册
本文是个 Python GUI 开发的目录,方便读者系统性学习的,笔者后续会满满填充此目录中的内容,感兴趣的小伙伴可以关注一手。(主要是偏向 PySide6 方向的) 0x01:PySide6 & PyQt6 基础入门 0x0101ÿ…...
Xposed-Hook
配置 Xposed 模块的 AndroidManifest.xml: <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"your.package.name"><applicationandr…...
鸿蒙物流项目之基础结构
目录: 1、项目结构2、三种包的区别和使用场景3、静态资源的导入4、颜色样式设置5、修改项目名称和图标6、静态包基础目录7、组件的抽离8、在功能模块包里面引用静态资源包的组件 1、项目结构 2、三种包的区别和使用场景 3、静态资源的导入 放在har包中,那…...
CSS 中调整元素大小的全面指南
CSS 中调整元素大小的全面指南 1. 原始尺寸(固有尺寸)示例代码:图像的固有尺寸 2. 设置具体的尺寸示例代码:设置固定宽度和高度 3. 使用百分比示例代码:使用百分比设置宽度 4. 使用百分比作为外边距和内边距示例代码&a…...
文字投影效果
大家好,我是喝西瓜汁的兔叽,今天给大家分享一个常见的文字投影效果。 效果展示 我们来实现一个这样的文字效果。 思路分析 这样的效果如何实现的呢? 实际上是两组相同的文字,叠合在一块,只不过对应的css不同罢了。 首先&…...
【Redis】set 和 zset 类型的介绍和常用命令
1. set 1.1 介绍 set 类型和 list 不同的是,存储的元素是无序的,并且元素不允许重复,Redis 除了支持集合内的增删查改操作,还支持多个集合取交集,并集,差集 1.2 常用命令 命令 介绍 时间复杂度 sadd …...
Clion开发STM32时使用stlink下载程序与Debug调试
一、下载程序 先创建一个文件夹: 命名:stlink.cfg 写入以下代码: # choose st-link/j-link/dap-link etc. #adapter driver cmsis-dap #transport select swdsource [find interface/stlink.cfg]transport select hla_swdsource [find target/stm32f4x.…...
HarmonyOS:给您的应用添加通知
一、通知介绍 通知旨在让用户以合适的方式及时获得有用的新消息,帮助用户高效地处理任务。应用可以通过通知接口发送通知消息,用户可以通过通知栏查看通知内容,也可以点击通知来打开应用,通知主要有以下使用场景: 显示…...
scrape登录(js逆向)
url:链接 首先登录抓包 可以 看到token进行了加密 可以直接去全局搜索token 可以看到在这里进行了加密 进入encode,处理from后进行加密 首先这一段复制js,缺什么补什么, code cb_utob function(e) {if (e.length < 2) {var r e.cha…...
后台管理系统通用页面抽离=>高阶组件+配置文件+hooks
目录结构 配置文件和通用页面组件 content.config.ts const contentConfig {pageName: "role",header: {title: "角色列表",btnText: "新建角色"},propsList: [{ type: "selection", label: "选择", width: "80px&q…...
RDP协议详解
以下内容包含对 RDP(Remote Desktop Protocol,远程桌面协议)及其开源实现 FreeRDP 的较为系统、深入的讲解,涵盖协议概要、历史沿革、核心原理、安全机制、安装与使用方法、扩展与未来发展趋势等方面, --- ## 一、引…...
Spring Boot - 数据库集成06 - 集成ElasticSearch
Spring boot 集成 ElasticSearch 文章目录 Spring boot 集成 ElasticSearch一:前置工作1:项目搭建和依赖导入2:客户端连接相关构建3:实体类相关注解配置说明 二:客户端client相关操作说明1:检索流程1.1&…...
虚幻UE5手机安卓Android Studio开发设置2025
一、下载Android Studio历史版本 步骤1:虚幻4.27、5.0、5.1、5.2官方要求Andrd Studio 4.0版本; 5.3、5.4、5.5官方要求的版本为Android Studio Flamingo | 2022.2.1 Patch 2 May 24, 2023 虚幻官网查看对应Andrd Studiob下载版本: https:/…...
Flutter开发环境配置
下载 Flutter SDK 下载地址:https://docs.flutter.cn/get-started/install M1/M2芯片选择带arm64字样的Flutter SDK。 解压 cd /Applications unzip ~/Downloads/flutter_macos_arm64_3.27.3-stable.zip执行 /Applications/flutter/bin/flutterManage your Flut…...
[免费]微信小程序智能商城系统(uniapp+Springboot后端+vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序智能商城系统(uniappSpringboot后端vue管理端),分享下哈。 项目视频演示 【免费】微信小程序智能商城系统(uniappSpringboot后端vue管理端) Java毕业设计_哔哩哔哩_bilibili 项目介绍…...
rust操作pgsql、mysql和sqlite
rust中,有很多技术可以操作pgsql、mysql和sqlite,以sqlx为主流技术。我们以sqlx操作sqlite为示例,操作pgsql和mysql的办法是一样的。 Cargo.toml: [package] name "test" version "0.1.0" edition "2021"…...
5. 【Vue实战--孢子记账--Web 版开发】-- 主页UI
我们在实现个人中心的时候简单的搭建了一个主页UI,但是这个主页并不是我们需要的,在这一节我们将一起实现主页UI的搭建。 一、功能 主页UI的原型如下: 首页UI原型包括左侧菜单和顶部header,左侧菜单包含多个功能模块的链接:首页…...
RabbitMQ5-死信队列
目录 死信的概念 死信的来源 死信实战 死信之TTl 死信之最大长度 死信之消息被拒 死信的概念 死信,顾名思义就是无法被消费的消息,一般来说,producer 将消息投递到 broker 或直接到queue 里了,consumer 从 queue 取出消息进…...
使用 PyTorch 实现逻辑回归并评估模型性能
1. 逻辑回归简介 逻辑回归是一种用于解决二分类问题的算法。它通过一个逻辑函数(Sigmoid 函数)将线性回归的输出映射到 [0, 1] 区间内,从而将问题转化为概率预测问题。如果预测概率大于 0.5,则将样本分类为正类;否则分…...
Rust 函数使用详解
Rust 函数使用详解 函数是 Rust 程序的基本构建块之一。通过函数,我们可以将代码组织成可重用的模块。本文将从函数签名语法、函数参数、语句与表达式、函数返回值等角度详细介绍 Rust 函数的使用,并通过综合示例展示这些知识点的实际应用。 1. 函数签名…...