Elasticsearch 集群部署
Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我们将通过三个节点(node1、node2、node3)来搭建一个高可用的 Elasticsearch 集群,以确保您的数据能够在多个节点之间高效地存储和检索。
中文文档:Elastic — 搜索 AI 公司 | Elastic
英文文档:Documentation
1. 准备工作
1. 配置多台 Linux 虚拟机参考如何准备多台虚拟机并配置集群化软件_多台服务器虚拟化集群-CSDN博客文章浏览阅读978次,点赞8次,收藏11次。在搭建集群化软件的过程中,首先需要准备好多台Linux服务器。本文将详细介绍如何使用VMware提供的克隆功能来准备多台虚拟机,并进行必要的配置以实现集群化软件的部署。_多台服务器虚拟化集群https://blog.csdn.net/kersixy/article/details/142205834?spm=1001.2014.3001.5501
2. 【node1、2、3】创建工作目录
以部署到 /export/server 目录为例:
mkdir -p /export/server
3. 【node1、2、3】开放必要端口
确保以下端口在防火墙中开放:
- 9200:HTTP REST API 端口,用于与 Elasticsearch 集群进行交互。
- 9300:节点间通信端口,用于 Elasticsearch 节点之间的内部通信。
- 5601(可选):Kibana 端口,用于访问 Kibana 界面。
sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent
sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5601/tcp --permanent
sudo firewall-cmd --reload
2. 下载和安装 Elasticsearch
1. 下载 Elasticsearch
方式一:在线下载
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.26-linux-x86_64.tar.gz
方式二:浏览器下载
Past Releases of Elastic Stack Software | ElasticLooking for a past release of Elasticsearch, Logstash, Kibana, es-hadoop, Shield, Marvel, or our language clients? You're in the right place....https://www.elastic.co/cn/downloads/past-releases#elasticsearch
选择所需的版本,点击下载:
点击 LINUX X86_64,下载 tar.gz 文件,上传到虚拟机。
2. 【node1】解压 Elasticsearch,并创建数据目录
tar -zxvf elasticsearch-7.17.26-linux-x86_64.tar.gz
mv elasticsearch-7.17.26 /export/server/elasticsearch
mkdir -p /export/server/elasticsearch/data
3. 配置 Elasticsearch
1. 【node1】配置 elasticsearch.yml :
sudo vi /export/server/elasticsearch/config/elasticsearch.yml
i 编辑文件,在文件中追加一下内容:
cluster.name: es-cluster
node.name: node-1
node.master: true
node.data: true
path.data: /export/server/elasticsearch/data
path.logs: /export/server/elasticsearch/logs
network.host: 0.0.0.0
discovery.seed_hosts: ["node2", "node3"]
network.tcp.keep_alive: true
network.tcp.no_delay: true
action.destructive_requires_name: true
gateway.recover_after_nodes: 2
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
http.port: 9200
cluster.routing.allocation.cluster_concurrent_rebalance: 16
cluster.routing.allocation.node_concurrent_recoveries: 16
cluster.routing.allocation.node_initial_primaries_recoveries: 16
ESC 退出编辑,:wq 保存并退出。
配置说明:
- cluster.name:集群名称。同一个集群的所有节点必须使用相同的集群名称。
- node.name:节点名称。同一个集群内的每个节点名称必须唯一。
- node.master:是否可以被选举为主节点。设置为 true 表示该节点有资格成为主节点。
- node.data:该节点是否可以存储数据。设置为 true 表示该节点可以存储数据。
- node.roles:是否有主节点资格;master使其有资格被选为控制集群的主节点;data此节点同时为数据节点,7.x版本以后支持,同node.master + node.data。配置示例:node.roles: [master,data]
- path.data:数据目录的位置。Elasticsearch 将在此目录下存储索引数据。
- path.logs:日志目录的位置。Elasticsearch 将在此目录下存储日志文件。
- network.host:设置节点绑定的 IP 地址或主机名。默认情况下,Elasticsearch 只允许本机访问。设置为 0.0.0.0 表示允许任何 IP 地址访问。
- discovery.seed_hosts:发现其他节点的初始列表。这里填写其他节点的 IP 地址或主机名,不包括当前节点。
- network.tcp.keep_alive:是否启用 TCP 保活机制。设置为 true 可以防止长时间空闲的连接被关闭。
- network.tcp.no_delay:是否禁用 Nagle 算法。设置为 true 可以减少延迟,提高响应速度。
- action.destructive_requires_name:控制是否需要在执行破坏性操作时明确指定索引名称。破坏性操作包括删除索引、清空索引等。启用此配置可以增加安全性,防止误操作导致数据丢失。
- gateway.recover_after_nodes:在集群恢复过程中,至少需要多少个节点在线后才开始恢复索引。通常,这个值应该小于或等于集群中的总节点数。
- cluster.initial_master_nodes:用于指定在集群启动时哪些节点可以作为初始主节点候选。填写全部节点名称。
- http.port:HTTP REST API 端口。默认端口为 9200。
- cluster.routing.allocation.cluster_concurrent_rebalance:集群内同时启动的数据任务个数。默认是 2 个。
- cluster.routing.allocation.node_concurrent_recoveries:添加或删除节点及负载均衡时并发恢复线程个数。默认是 4 个。
- cluster.routing.allocation.node_initial_primaries_recoveries:初始化数据恢复时,并发恢复线程的个数。默认是 4 个。
2. 【node1】配置 JVM 选项
sudo vi /export/server/elasticsearch/config/jvm.options
G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:
-Xms4g
-Xmx4g
ESC 退出编辑,:wq 保存并退出。
3. 【node1】将 elasticsearch 录递归复制到 node2、node3 主机的 /export/server/ 目录下
cd /export/server
scp -r elasticsearch node2:`pwd`/
scp -r elasticsearch node3:`pwd`/
4. 【node2】修改 node2 的 elasticsearch.yml
sudo vi /export/server/elasticsearch/config/elasticsearch.yml
i 编辑文件,文件内容修改为:
cluster.name: es-cluster
node.name: node-2
node.master: true
node.data: true
path.data: /export/server/elasticsearch/data
path.logs: /export/server/elasticsearch/logs
network.host: 0.0.0.0
discovery.seed_hosts: ["node1", "node3"]
network.tcp.keep_alive: true
network.tcp.no_delay: true
action.destructive_requires_name: true
gateway.recover_after_nodes: 2
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
http.port: 9200
cluster.routing.allocation.cluster_concurrent_rebalance: 16
cluster.routing.allocation.node_concurrent_recoveries: 16
cluster.routing.allocation.node_initial_primaries_recoveries: 16
ESC 退出编辑,:wq 保存并退出。
5. 【node3】修改 node3 的 elasticsearch.yml
sudo vi /export/server/elasticsearch/config/elasticsearch.yml
i 编辑文件,文件内容修改为:
cluster.name: es-cluster
node.name: node-3
node.master: true
node.data: true
path.data: /export/server/elasticsearch/data
path.logs: /export/server/elasticsearch/logs
network.host: 0.0.0.0
discovery.seed_hosts: ["node1", "node2"]
network.tcp.keep_alive: true
network.tcp.no_delay: true
action.destructive_requires_name: true
gateway.recover_after_nodes: 2
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
http.port: 9200
cluster.routing.allocation.cluster_concurrent_rebalance: 16
cluster.routing.allocation.node_concurrent_recoveries: 16
cluster.routing.allocation.node_initial_primaries_recoveries: 16
ESC 退出编辑,:wq 保存并退出。
4. 【node1、2、3】系统配置
1. 创建 Elasticsearch 用户
groupadd es
useradd es -g es
cd /export/server
sudo chown es:es -R elasticsearch/
查看赋权情况:
ll
2. 设置系统资源限制
sudo vi /etc/security/limits.conf
G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:
* soft nofile 65536
* hard nofile 65536
ESC 退出编辑,:wq 保存并退出。
3. 设置虚拟内存限制
sudo vi /etc/sysctl.conf
G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:
vm.max_map_count=262145
ESC 退出编辑,:wq 保存并退出。加载并应用 /etc/sysctl.conf 文件中的系统参数设置:
sysctl -p
4. 设置环境变量
sudo vi /etc/profile
G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:
export ES_JAVA_HOME=/export/server/elasticsearch/jdk
export PATH=$ES_JAVA_HOME/bin:$PATH
注意:
如果同时配置过 JAVA_HOME 和 ES_JAVA_HOME ,PATH 会优先使用先配置的环境变量,即 java -version 的版本为先配置的 PATH,如想优先使用 JAVA_HOME,则需要将
export PATH=$ES_JAVA_HOME/bin:$PATH export PATH=$JAVA_HOME/bin:$PATH
合并为:
export PATH=$JAVA_HOME/bin:$ES_JAVA_HOME/bin:$PATH
ESC 退出编辑,:wq 保存并退出。重新加载 /etc/profile 文件中的环境变量设置,使新的设置立即生效:
source /etc/profile
5. 创建 Systemd 服务(可选)
vi /etc/systemd/system/elasticsearch.service
i 编辑文件,文件内容为:
[Unit]
Description=Elasticsearch
After=network.target[Service]
User=es
Group=es
Environment="ES_JAVA_OPTS=-Xms512m -Xmx512m"
Environment="ES_JAVA_HOME=/export/server/elasticsearch/jdk"
Environment="JAVA_HOME=/export/server/jdk"
ExecStart=/export/server/elasticsearch/bin/elasticsearch
ExecReload=/bin/kill -HUP $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
Restart=on-failure
LimitMEMLOCK=infinity
LimitNOFILE=65536[Install]
WantedBy=multi-user.target
5. 【node1、2、3】启动 Elasticsearch
5.1 方式一:手动启动
su es
cd /export/server/elasticsearch/bin
./elasticsearch -d
5.2 方式二:使用 Systemd 服务
# 启动elasticsearch
systemctl start elasticsearch
# 查看elasticsearch状态
systemctl status elasticsearch
# 设置开机自启动
systemctl enable elasticsearch
Systemd 服务其他命令:
# 重启elasticsearch systemctl restart elasticsearch # 停止elasticsearch服务 systemctl stop elasticsearch
6. 查看服务状态
1. 查看启动是否成功
项目启动大约需要2-4 分钟时间,要确保项目完全启动后再执行,否则会出现拒绝访问:
curl http://内网ip:9200
2. 检查 Elasticsearch 集群的健康状态
curl -X GET "内网ip:9200/_cat/health?v"
说明:
status: 集群状态,常见的状态有:
- green: 所有主分片和副本分片都可用。
- yellow: 所有主分片可用,但某些副本分片不可用。
- red: 一些主分片不可用。
3. 分析 Elasticsearch 集群的状态和各个节点的信息
curl -X GET "http://内网ip:9200/_cat/nodes?v"
说明:
- ip: 节点的 IP 地址。
- heap.percent: 堆内存使用百分比。
- ram.percent: 物理内存使用百分比。
- cpu: CPU 使用率。
- load_1m: 最近 1 分钟的系统负载平均值。
- load_5m: 最近 5 分钟的系统负载平均值。
- load_15m: 最近 15 分钟的系统负载平均值。
- node.role: 节点的角色,常见的角色包括:
- c: 集群管理节点。
- d: 数据节点。
- f: 冻结节点。
- h: 主节点。
- i: 协调节点。
- l: 日志节点。
- m: 主节点。
- r: 远程集群客户端节点。
- s: 存储节点。
- t: 传输节点。
- w: 写节点。
- master: 是否为主节点,* 表示是主节点,- 表示不是主节点。
- name: 节点名称。
到此为止,无安全配置的 Elasticsearch 集群配置完成。
7. 安全配置
7.1 生成证书
1. 【node1】生成 CA 证书
cd /export/server/elasticsearch/bin
./elasticsearch-certutil ca
- 输入 CA 证书文件名。接受默认文件名 elastic-stack-ca.p12,亦可换成其他文件名;
- 设置 CA 密钥库的密码。
2. 【node1】生成节点证书
./elasticsearch-certutil cert --ca /export/server/elasticsearch/elastic-stack-ca.p12
- 输入CA 密钥库的密码。输入上一步的CA 密钥库的密码;
- 输入节点证书文件名。接受默认文件名 elastic-certificates.p12 ,亦可输入文件名修改;
- 最后提示输入节点证书密钥库密码。可以直接回车,跳过输入密码。
3. 【node1】移动和赋权证书
cd /export/server/elasticsearch
mv elastic-certificates.p12 config/
mv elastic-stack-ca.p12 config/
cd config/
scp -r elastic-certificates.p12 node2:`pwd`/
scp -r elastic-stack-ca.p12 node2:`pwd`/
scp -r elastic-certificates.p12 node3:`pwd`/
scp -r elastic-stack-ca.p12 node3:`pwd`/
4. 【node1、2、3】配置安全设置
cd /export/server/elasticsearch/config/
sudo chown es:es -R ./*
sudo vi elasticsearch.yml
G 跳转到文件尾行,$ 跳转到当前行末尾,i 编辑文件。在文件末尾新建一行添加:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /export/server/elasticsearch/config/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /export/server/elasticsearch/config/elastic-certificates.p12
ESC 退出编辑,:wq 保存并退出。
5. 【node1、2、3】重启 Elasticsearch
- 如果是手动启动的,则按以下方法重启:
# 查看进程
ps -ef | grep elasticsearch
# 强制停止进程
kill -9 对应进程
# 启动Elasticsearch
# 如果是root用户下,需要su es切换用户,es用户下无需切换
su es
cd /export/server/elasticsearch/bin
./elasticsearch -d
- 如果使用 Systemd 服务,则按以下方法重启:
# 重启Elasticsearch,elasticsearch.service可写为elasticsearch
systemctl restart elasticsearch.service
7.2 【node1】设置用户密码
1. 交互式设置密码
cd /export/server/elasticsearch/bin
./elasticsearch-setup-passwords interactive
- 请确认您是否要继续:y
- 为 elastic 用户(超级用户,具有所有权限)输入密码;
- 为 elastic 用户(超级用户,具有所有权限)确认密码;
- 为 apm_system 用户(APM 服务器使用的用户)输入密码;
- 为 apm_system 用户(APM 服务器使用的用户)确认密码;
- 为 kibana 用户(Kibana 服务器使用的用户)输入密码;
- 为 kibana 用户(Kibana 服务器使用的用户)确认密码;
- 为 logstash_system 用户(Logstash 服务器使用的用户)输入密码;
- 为 logstash_system 用户(Logstash 服务器使用的用户)确认密码;
- 为 beats_system 用户(Filebeat 和其他 Beats 采集器使用的用户)输入密码;
- 为 beats_system 用户(Filebeat 和其他 Beats 采集器使用的用户)确认密码;
- 为 remote_monitoring_user 用户(用于远程监控的用户)输入密码;
- 为 remote_monitoring_user 用户(用于远程监控的用户)确认密码。
2. 测试连接
- 虚拟机访问测试:
curl -u elastic:elastic用户密码 http://内网ip:9200
- 浏览器访问测试:
访问 http://外网ip:9200/ ,访问结果如下图:
相关文章:

Elasticsearch 集群部署
Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我…...

微信小程序5-图片实现点击动作和动态加载同类数据
搜索 微信小程序 “动物觅踪” 观看效果 感谢阅读,初学小白,有错指正。 一、功能描述 a. 原本想通过按钮加载背景图片,来实现一个可以点击的搜索button,但是遇到两个难点,一是按钮大小调整不方便(网上搜索…...
策略梯度定理公式的详细推导
策略梯度定理公式的详细推导 以下是策略梯度定理公式从基础概率公式到最终形式的完整推导,帮助更清晰地理解推导过程中的每一个步骤。 1. 策略梯度的目标 我们希望最大化期望累积奖励 ( J ( θ ) J(\theta) J(θ) ),其定义为: J ( θ ) E…...

力扣-图论-10【算法学习day.60】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…...
《Python WEB安全 库全解析》
《Python WEB安全 库全解析》 一、Python WEB安全 库概述二、常见的 Python WEB安全 库介绍1. Jiasule2. Awesome Python Security3. Flask-Security4. Flask-SeaSurf 三、Python WEB 安全库的优缺点1. 优点2. 缺点 四、Python WEB 安全库的使用场景1. 开发 Web 应用2. 处理敏感…...
Linux yum-config-manager命令异常
错误信息 使用 yum-config-manager命令时错误信息如下 sudo yum-config-manager \ > --add-repo \ > https://download.docker.com/linux/centos/docker-ce.repo sudo: yum-config-manager: command not found 解决办法 第一步: sudo yum -y install yum-u…...
ios 开发配置蓝牙
如果使用了蓝牙功能, 又没有配置, 会出现以下错误: This app has crashed because it attempted to access privacy-sensitive data without a usage description. The apps Info.plist must contain an NSBluetoothAlwaysUsageDescription key with a string value explaini…...

geoserver(1) 发布sql 图层 支持自定义参数
前提使用postgis 数据库支持关联 join 支持 in,not in,like,及其他sql原生函数 新增sql图层 编写自定义sql 编辑sql语句必须输出带有geom数据 正则表达式去除 设置id以及坐标参考系 预览sql图层效果 拼接sql参数 http://xxx.com/geoserver/weather/wms?SERVICEWMS&VERSI…...
Linux:network:添加ip的时候自动添加一个本地路由
文章目录 问题问题 最近在看一个路由的问题,顺便看内核代码,发现在添加IP的时候,内核会自动添加一个local route。 net/ipv4/devinet.c inet_rtm_newaddr->__inet_insert_ifa /* Send message first, then call notifier.Notifier will trigger FIB update, so thatlis…...
go 集成nacos注册中心、配置中心
使用限制 Go>v1.15 Nacos>2.x 安装 使用go get安装SDK: go get -u github.com/nacos-group/nacos-sdk-go/v2 快速使用 初始化客户端配置ClientConfig constant.ClientConfig{TimeoutMs uint64 // 请求Nacos服务端的超时时间,默…...

ssd202d-badblock-坏块检测
这边文章讲述的是坏快检测功能 思路: 1.第一次烧录固件会实现跳坏块,但是后续使用会导致坏块的产生; 于是我在uboot环境变量添加了两个变量来控制坏快 lb_badnum //坏块个数 lb_badoff //坏块所在位置 2.第一次开机会根据lb_badnum是否…...

MySQL-练习-数据介绍
文章目录 一. 数据介绍1. 数据结构2. 创建数据库,数据表3. 员工表(employees)练习1 4. 顾客表(customers)练习2 5. 商品(products)和商品类别(categories)表练习3 6. 供应商表(suppliers)练习4 7. 订单和订单明细表练习5 二. 数据汇总三. 使用CASE WHEN …...
React框架:解锁现代化Web开发的新维度
在当今前端开发领域,React 无疑是一颗璀璨的明星。React 是由 Facebook 开发的用于构建用户界面的 JavaScript 库,它在前端开发中占据着重要的地位,为开发者提供了一种高效、灵活且可维护的方式来构建复杂的用户界面。 一、React 的背景与开…...

电阻功率,限流,等效电阻
1 电阻额定功率 2 电阻限流作用 3 电阻并联等效电阻...

Qt | 开发工具(top1)
Qt Creator 跨平台、完整的集成开发环境(IDE),供应用程序开发者创建用于多个桌面、嵌入式和移动设备平台的应用程序。 Qt Linguist 一套将Qt C和Qt Quick应用程序翻译成本地语言的工具。 qmake Qt自动化构建工具,简化了不同平台的构建过程。…...

Node.js express
1. express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架,官方网址:https://www.expressjs.com.cn/简单来说,express 是一个封装好的工具包,封装了很多功能,便于我们开发 WEB 应用ÿ…...
ios h5中在fixed元素中的input被focus时,键盘遮挡input (van-popup、van-feild)
问题描述: 前提:我使用的是vant组件库,其中一个页面中有一个van-popup组件,van-popup组件中又嵌套了一个van-field组件预期结果:当点击van-feild输入框时,键盘弹起,输入框显示在键盘上方实际结…...

springboot整合lua脚本在Redis实现商品库存扣减
1、目的 使用lua脚本,可以保证多条命令的操作原子性;同时可以减少操作IO(比如说判断redis对应数据是否小于0,小于0就重置为100,这个场景一般是取出来再判断,再存放进行,就至少存在2次IO,用lua脚…...

MySQL ON DUPLICATE KEY UPDATE影响行数
目录 分析为什么Updates返回7 总结 数据库更新日志如下 insertOrUpdateList|> Preparing: INSERT INTO clue_user_tag (vuid, tag_id, tag_type, content) VALUES (?, ?, ?, ?) , (?, ?, ?, ?) , (?, ?, ?, ?) , (?, ?, ?, ?) ON DUPLICATE KEY UPDATE …...
uniapp小程序 slot中无法传递外部参数的解决方案
最近在封装一个List组件,外部传给我数据,我循环后将每个Item部分slot到外部,由调用者自己去写item布局,类似ElementUI、iView的Tabe列表。 List: <view v-if"list.length > 0" class"list-scroll__item&quo…...

树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...

【第二十一章 SDIO接口(SDIO)】
第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

HBuilderX安装(uni-app和小程序开发)
下载HBuilderX 访问官方网站:https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本: Windows版(推荐下载标准版) Windows系统安装步骤 运行安装程序: 双击下载的.exe安装文件 如果出现安全提示&…...
管理学院权限管理系统开发总结
文章目录 🎓 管理学院权限管理系统开发总结 - 现代化Web应用实践之路📝 项目概述🏗️ 技术架构设计后端技术栈前端技术栈 💡 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 🗄️ 数据库设…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
Java编程之桥接模式
定义 桥接模式(Bridge Pattern)属于结构型设计模式,它的核心意图是将抽象部分与实现部分分离,使它们可以独立地变化。这种模式通过组合关系来替代继承关系,从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

Golang——7、包与接口详解
包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...
学习一下用鸿蒙DevEco Studio HarmonyOS5实现百度地图
在鸿蒙(HarmonyOS5)中集成百度地图,可以通过以下步骤和技术方案实现。结合鸿蒙的分布式能力和百度地图的API,可以构建跨设备的定位、导航和地图展示功能。 1. 鸿蒙环境准备 开发工具:下载安装 De…...