TongSearch3.0.4.0安装和使用指引(by lqw)
文章目录
- 安装准备
- 手册说明
- 支持的数据类型
- 安装控制台
- 安装单节点(如需集群请跳过这一节)
- 解压和启动
- 开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
- 配置内置用户密码
- 配置ssl(先配置内置用户密码再配ssl)
- 配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
- 安装集群(节点都在不同服务器)
- 解压和启动
- 开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
- 配置内置用户密码
- 配置ssl(先配置内置用户密码再配ssl)
- 配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
- 安装集群(节点都在同一台服务器)
- 解压和启动
- 配置控制台
- 查看授权过期时间
- 更新授权
- 如何配置冷热节点
- 忘记控制台密码
- 重置内置用户密码(例如tongsearch用户)
- 索引操作
- 新增
- 方式一:控制台的开发工具
- 方式二:postman
- 方式三:控制台的新增索引
- 往已有的索引里新增数据
- 更新
- 监控索引的信息
- 全文检索
- 聚合查询
- 根据日期进行分组
- 使用 terms 聚合结合范围查询来过滤出 4 月过生日的人
- 地理空间搜索测试
- 添加别名
- 索引模版
- 索引管理功能测试
- 关闭索引的写入
- 打开索引的写入
- 集群相关
- 读取一致性校验
- 负载均衡监控测试
安装准备
1.安装和配置好jdk环境变量(本次示范使用的是jdk11,最低要求jdk11)。

也可以使用自带jdk,在tongsearch节点的jdk目录:


2.确认cpu架构(可以使用lscpu查看),上传好相关安装包和授权(请联系销售获取),本次示范x86。


3.确保端口9209,9309不被占用,并放行对应端口(可以的话最好关闭防火墙)。
firewall-cmd --permanent --zone=public --add-port=9200/tcp
firewall-cmd --permanent --zone=public --add-port=9300/tcp
firewall-cmd --reloadsystemctl disable firewalld
4.创建对应使用的普通用户(本次示范创建的是tongsearch)。
useradd tongsearch
passwd tongsearch
5.配置/etc/security/limits.conf
tongsearch hard nproc unlimited
tongsearch soft nproc unlimited
tongsearch - nofile 262144
tongsearch - memlock unlimited
重启服务器,切换用户,输入ulimit -a查看:

配置/etc/sysctl.conf
#在最下面加一行配置vm.max_map_count = 262144
#更新配置
sysctl -p
#輸出
vm.max_map_count = 262144
手册说明

支持的数据类型

备注:最终以产品手册为准。
安装控制台
su root
chown -R tongsearch:tongsearch /home/ts
su tongsearch
cd /home/ts
tar -zvxf tongsearch-console-3.0.4.0-linux-x86_64.tar.gz
如果需要修改端口,修改config.yml即可


注意检查并关闭防火墙
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)Active: active (running) since 二 2025-01-21 14:11:05 CST; 54min agoDocs: man:firewalld(1)Main PID: 736 (firewalld)CGroup: /system.slice/firewalld.service└─736 /usr/bin/python2 -Es /usr/sbin/firewalld --nofork --nopid1月 21 14:11:05 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
1月 21 14:11:05 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost ~]# systemctl stop firewalld
cd /home/ts/tongsearch-console-3.0.4.0-linux-x86_64/bin
# 后台启动
nohup ./tongsearch-console &
#启动
./tongsearch_console_service.sh start
#停止
./tongsearch_console_service.sh stop
#重启./tongsearch_console_service.sh restart
启动后访问
http://服务器ip:8090/

◦ 用户名:admin
◦ 密码:admin123.com
登录后会显示如下,咱们先不动,把tongsearch节点给安装了

安装单节点(如需集群请跳过这一节)
解压和启动
通过tongsearch用户,解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts


编辑jvm.options,配置以下配置:

这里xmx和xms配置了4g,请根据自身需求配置:

修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下
cluster.name: tongsearch-cluster
node.name: ts1
transport.tcp.port: 9300
http.port: 9200
cluster.initial_master_nodes: ["ts1"]
network.host: 0.0.0.0
path.data: /home/ts/tongsearch-3.0.4.0/data
path.logs: /home/ts/tongsearch-3.0.4.0/logs
配置后启动服务
su tongsearch
cd /home/ts/tongsearch-3.0.4.0/bin
# 启动./tongsearch -d -p pidcurl http://localhost:9200

如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid)
开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
备份好当前的tongsearch目录后,在tongserach节点目录执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil ca

之后会生成一个tongsearch-stack-ca.p12文件:

继续执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil cert --ca tongsearch-stack-ca.p12

之后会生成tongsearch-stack-ca.p12文件:

在config目录下创建certs目录,并将创建的两个p12文件拷贝过来:
cd /home/ts/tongsearch-3.0.4.0/config
mkdir certs
chmod 755 /home/ts/tongsearch-3.0.4.0/config/certs
cp ../tongsearch-certificates.p12 ./certs
cp ../tongsearch-stack-ca.p12 ./certs
在config目录下的tongsearch.yml最下面添加这一段:
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/tongsearch-certificates.p12
之后可以关掉tongsearh后启动tongsearch,测试是否正常运行:
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
配置内置用户密码
前提条件:已根据上一节开启X-Pack Security和生成p12证书,并且节点运行正常。
如果没有的话,直接配置会报错,如下图所示:

备份好当前的tongsearch目录后,在tongsearch根目录执行(需保证tongsearch节点正常运行):
cd /home/ts/tongsearch-3.0.4.0./bin/tongsearch-setup-passwords interactive
执行后如下图所示:

输入y,然后依次输入

之后执行:
curl -u tongsearch:你设置的密码 http://localhost:9200

配置ssl(先配置内置用户密码再配ssl)
前提条件:tongsearch单节点运行正常(如果没有配置内置用户密码,需要先配了内置用户密码)。
由于tongsearch-setup-passwords只能用于http,不能用于https,所以建议要是先设置了密码,再去开启ssl。
备份好当前的tongsearch目录后,在tongsearch.yml加入以下配置:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.http.ssl.truststore.path: certs/tongsearch-certificates.p12
重启tongsearch
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
然后访问https://服务器ip:9200/,在弹窗内输入tongsearch的账号和密码,得到下图所示:

也可以在服务器上执行
curl -k -u tongsearch:设置的密码 https://服务器ip:9200

配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
启动控制台,输入密码:
◦ 用户名:admin
◦ 密码:admin123.com

填写信息,测试连接(根据节点配的是http还是https来输入集群地址)

没问题后下一步:


修改密码

进去后看看当前集群,有对应节点的信息。

安装集群(节点都在不同服务器)
解压和启动

通过tongsearch用户,每台服务器上解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts


编辑jvm.options,配置以下配置:

这里xmx和xms配置了4g,请根据自身需求配置:

修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下

每个节点的tongsearch.yaml配置下述信息:
cluster.name: tongsearch-cluster
node.name: ts1
network.host: 192.168.10.113
transport.tcp.port: 9300
http.port: 9200
path.data: /home/ts/tongsearch-3.0.4.0/data
path.logs: /home/ts/tongsearch-3.0.4.0/logs
discovery.seed_hosts: ["192.168.10.113","192.168.10.114","192.168.10.115"]
cluster.initial_master_nodes: ["ts1","ts2","ts3"]
其中
node.name依次为ts1,ts2,ts3,不要重复
network.host为服务器ip,
discovery.seed_hosts为三台服务器ip,例如:
[“192.168.10.113”,“192.168.10.114”,“192.168.10.115”]
备注:
1.data和logs目录要配置好权限,最好就用tongsearch内部自带的。
2.192.168.10.113请替换为自身服务器ip
3.node.name需要改,例如是ts1,ts2,ts3
4.discovery.seed_hosts 需要写入集群ip
5.注意缩进。
编辑jvm.options,配置以下配置:

这里xmx和xms配置了4g,请根据自身需求配置:

修改后启动各个节点(记得检查防火墙有没有关)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
[root@localhost ~]# curl http://192.168.10.113:9200/_cat/nodes
192.168.10.114 11 63 1 0.00 0.07 0.05 cdfhimrstw * ts2
192.168.10.115 4 63 1 0.13 0.17 0.12 cdfhimrstw - ts3
192.168.10.113 5 63 1 0.14 0.15 0.08 cdfhimrstw - ts1
[root@localhost ~]# curl http://192.168.10.113:9200/_cluster/health?pretty
{"cluster_name" : "tongsearch-cluster","status" : "green","timed_out" : false,"number_of_nodes" : 3,"number_of_data_nodes" : 3,"active_primary_shards" : 2,"active_shards" : 4,"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.0
}
记得把192.168.10.113 替换成实际主节点的服务器ip。
如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid)
开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)
确认集群没问题后,每个节点都执行以下操作:
tongserach节点目录执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil ca

之后会生成一个tongsearch-stack-ca.p12文件:

继续执行
cd /home/ts/tongsearch-3.0.4.0
./bin/tongsearch-certutil cert --ca tongsearch-stack-ca.p12

之后会生成tongsearch-stack-ca.p12文件:

在config目录下创建certs目录,并将创建的两个p12文件拷贝过来:
cd /home/ts/tongsearch-3.0.4.0/config
mkdir certs
chmod 755 /home/ts/tongsearch-3.0.4.0/config/certs
cp ../tongsearch-certificates.p12 ./certs
cp ../tongsearch-stack-ca.p12 ./certs
配置在tongsearch.yml最下面添加这一段(这里的xpack.security.transport.ssl.verification_mode跟单节点的有点不一样):
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/tongsearch-certificates.p12
之后可以关掉tongsearh后启动tongsearch,测试是否正常运行:
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
配置内置用户密码
前提条件:已根据上一节开启X-Pack Security和生成p12证书,并且节点运行正常。
如果没有的话,直接配置会报错,如下图所示:

备份好当前的tongsearch目录后,在其中一个tongsearch根目录下执行(需保证tongsearch节点正常运行):
cd /home/ts/tongsearch-3.0.4.0./bin/tongsearch-setup-passwords interactive
执行后如下图所示:

输入y,然后依次输入

配置成功后,可以测试一下集群的指令,例如:
curl -k -u tongsearch:配置的密码 http://服务器ip:9200/_cat/nodes
可以看到,虽然只配置了一个节点的内置用户密码,但是集群里的其他节点也可以使用:

也可以在浏览器访问


还可以执行
curl -k -u tongsearch:配置的密码 http://服务器ip:9200/_cluster/health?pretty

配置ssl(先配置内置用户密码再配ssl)
前提条件:tongsearch集群运行正常(如果没有配置内置用户密码,需要先配了内置用户密码)。
由于tongsearch-setup-passwords只能用于http,不能用于https,所以建议要是先设置了密码,再去开启ssl。
备份好当前的tongsearch目录后,在tongsearch.yml加入以下配置:
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.keystore.path: certs/tongsearch-certificates.p12
xpack.security.http.ssl.truststore.path: certs/tongsearch-certificates.p12
重启tongsearch
cd /home/ts/tongsearch-3.0.4.0
kill $(cat pid)
cd /home/ts/tongsearch-3.0.4.0/bin
./tongsearch -d -p pid
然后访问https://服务器ip:9200/_cat/nodes,在弹窗内输入tongsearch的账号和密码,得到下图所示:


也可以在服务器上执行
curl -k -u tongsearch:设置的密码 https://服务器ip:9200/_cat/nodes


配置控制台连接(根据需求配完用户内置密码和ssl后进行操作)
之后可以登录控制台后,输入主节点的ip地址:9200,输入密码
◦ 用户名:admin
◦ 密码:admin123.com
填写信息,点击测试连接:

没问题后下一步:


修改密码

进去后看看当前集群,有对应集群里所有节点的信息。

安装集群(节点都在同一台服务器)
解压和启动
通过tongsearch用户,解压相关安装包并放入授权:
tar -zvxf tongsearch-3.0.4.0-linux-x86_64.tar.gz
chown -R tongsearch:tongsearch /home/ts


编辑jvm.options,配置以下配置:

这里xmx和xms配置了4g,请根据自身需求配置:

修改tongsearch.yml配置⽂件,在⽂件末尾添加信息如下

network.host: 0.0.0.0
discovery.seed_hosts: ["localhost:9300","localhost:9301","localhost:9302"]
cluster.initial_master_nodes: ["ts1","ts2","ts3"]

依次执行指令:
[tongsearch@192 tongsearch-3.0.4.0]$ cd /home/ts/tongsearch-3.0.4.0
[tongsearch@192 tongsearch-3.0.4.0-onenode]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts1 -Etransport.tcp.port=9300 -Ehttp.port=9200 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data1 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log1 -p pid1
[tongsearch@192 tongsearch-3.0.4.0]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts2 -Etransport.tcp.port=9301 -Ehttp.port=9201 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data2 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log2 -p pid2
[tongsearch@192 tongsearch-3.0.4.0]$ ./bin/tongsearch -d -Ecluster.name=tongsearch-cluster -Enode.name=ts3 -Etransport.tcp.port=9302 -Ehttp.port=9202 -Epath.data=/home/ts/tongsearch-3.0.4.0/data/data3 -Epath.logs=/home/ts/tongsearch-3.0.4.0/logs/log3 -p pid3

如需停止,在 TongSearch 根目录下,执行如下命令,
kill $(cat pid1)
kill $(cat pid2)
kill $(cat pid3)
之后执行
[tongsearch@192 tongsearch-3.0.4.0]$ curl http://192.168.10.113:9200/_cat/nodes
192.168.10.113 14 98 6 0.46 0.44 0.22 cdfhimrstw * ts1
192.168.10.113 33 98 5 0.46 0.44 0.22 cdfhimrstw - ts2
192.168.10.113 24 98 2 0.46 0.44 0.22 cdfhimrstw - ts3


备注:
1.如果需要配置内置用户密码和ssl,可以参考本帖里的其他章节内容,用法基本一致。
配置控制台
启动控制台,输入密码:
◦ 用户名:admin
◦ 密码:admin123.com

填写信息,测试连接

没问题后下一步:


修改密码

进去后看看当前集群,有对应集群里所有节点的信息。

查看授权过期时间
查看授权过期时间
第一种:没有配置ssl和内置用户:
curl http://localhost:9209/_license/tong

第二种:(配置了内置用户密码)
curl -u tongsearch:你设置的密码 http://localhost:9200/_license/tong

第三种:(配置了内置用户密码和ssl)
curl -k -u tongsearch:设置的密码https://localhost:9200/_license/tong

备注:localhost可换成服务器ip
更新授权
curl -k -v -u tongsearch:tongsearch 'http://192.168.10.113:9200/_license/tong' --header 'Content-Type: application/json' --data '"授权信息"'
其中tongsearch用户配置了密码tongsearch,如果没有配置,可以把-k -u 去掉,如果配置了ssl,则把http改成https,另外192.168.10.113:9200为服务器ip,授权信息为license.dat文件里的文本信息,该文件需要联系东方通销售进行获取。
如何配置冷热节点
tongsearch.yml配置,跟elasticsearch的配置语法一致:

忘记控制台密码

重置内置用户密码(例如tongsearch用户)
如果已经使用了./bin/tongsearch-setup-passwords interactive配置了一次内置用户的密码,再执行相同指令,会有报错提示:

这是因为这种方式只适合第一次配置内置用户密码,第二次的话,得参考以下形式:


索引操作
新增
可以通过控制台或者postman进行操作。
方式一:控制台的开发工具

PUT product_info
{"settings": {"number_of_shards": 5,"number_of_replicas": 1},"mappings": {"properties": {"productName": {"type": "text"},"annual_rate": {"type": "keyword"},"describe": {"type": "text"}}}
}
方式二:postman

方式三:控制台的新增索引


往已有的索引里新增数据
例如已在控制台创建了一个索引people,可以通过以下形式新增数据:
curl -k -u tongsearch:设置的密码 -H 'Content-Type: application/x-ndjson' -s -XPOST https://192.168.10.113:9200/people/_bulk --data-binary "@chinese_people_test_dataset2.json"
其中如果没有配置内置用户密码的,可以把-k -u tongserach:设置的密码去掉,另外json文件已绑定在该帖子里了。
执行后会有以下提示,不用管(json文件里的个别数据的问题,大概1138和1196行):


到控制台查看:

可以往下拉,看看其中一个id是多少,再去查询


更新


监控索引的信息

根据下列索引性能相关重要指标判断性能情况:
refresh.total:总刷新计数。刷新总数的计数。
refresh.total_time_in_millis:刷新总时间。汇总所有花在刷新的时间(以毫秒为
单位进行测量)。
merges.current_docs:目前的合并。合并目前正在处理中。
merges.total_docs:合并总数。合并总数的计数。
merges.total_stopped_time_in_millis。合并花费的总时间。合并段的所有时间的聚
合
全文检索

还可以增加搜索条件
GET people/_search
{"query": {"bool": { "must": [{"match": {"first_name": "马"}},{"match": {"last_name": "程"}}]}}
}

聚合查询
更多的内容可参考帖子上传的文件:009_TongSearch_V3.0聚合使用手册_3040A01,本帖只提供部分作为参考
根据日期进行分组
GET people/_search
{"size": 0,"aggs": {"birthdays_by_month": {"date_histogram": {"field": "birthday","calendar_interval": "month","format": "yyyy-MM","min_doc_count": 0}}}
}


使用 terms 聚合结合范围查询来过滤出 4 月过生日的人
GET people/_search
{"size": 0,"query": {"range": {"birthday": {"gte": "2000-04-01","lte": "2010-04-30","format": "yyyy-MM-dd"}}},"aggs": {"birth_years": {"date_histogram": {"field": "birthday","calendar_interval": "year","format": "yyyy","min_doc_count": 0}}}
}


地理空间搜索测试
PUT /museums
{"mappings": {"properties": {"location": {"type": "geo_point"}}}
}
POST /museums/_doc/_bulk?refresh
{"index":{"_id":1}}
{"location": "52.374081,4.912350", "name": "NEMO Science Museum"}
{"index":{"_id":2}}
{"location": "52.369219,4.901618", "name": "Museum Het Rembrandthuis"}
{"index":{"_id":3}}
{"location": "52.371667,4.914722", "name": "Nederlands Scheepvaartmuseum"}
{"index":{"_id":4}}
{"location": "51.222900,4.405200", "name": "Letterenhuis"}
{"index":{"_id":5}}
{"location": "48.861111,2.336389", "name": "Musée du Louvre"}
{"index":{"_id":6}}
{"location": "48.860000,2.327000", "name": "Musée d'Orsay"}
查询
POST /museums/_search?size=0
{"aggs": {"rings_around_amsterdam": {"geo_distance": {"field": "location","origin": "52.3760, 4.894","ranges": [{ "to": 100000 },{ "from": 100000, "to": 300000 },{ "from": 300000 }]}}}
}


添加别名

POST _aliases
{
"actions":[
{
"add":{
"index": "people",
"alias": "people_alias"}
}]
}

索引模版
PUT _template/my_template {"index_patterns": ["my_index_*"],"settings": {"number_of_shards": 3,"number_of_replicas": 2},"mappings": {"properties": {"title": {"type": "text"},"content": {"type": "text"},"date": {"type": "date","format": "yyyy-MM-dd"}}}
}

验证:

索引管理功能测试
关闭索引的写入

打开索引的写入

集群相关
读取一致性校验
先确认集群状态是否正常
GET _cluster/health

通过指令查看例如people这个索引里的数据,选择一条作为测试用(这里请留意id这个数值)

集群里的每个节点都执行指令查询是否有对应数据:
curl -k -u tongsearch:100879o.o -XGET https://192.168.10.113:9200/people/_doc/F1Ja2ZQBffzEZVfC0AHR
其中如果没有配内置用户密码,可以去掉-k -u tongsearch:100879o.o(100879o.o是我自己配的内置用户密码),如果没配ssl,把https改成http。



负载均衡监控测试
可以在控制台里查看,如下图所示:

可以通过 load_1m(最近 1 分钟的平均负载),load_5m(最近 5 分钟的平均负载),
load_15m(最近 15 分钟的平均负载)判断各个节点的负载是否平衡。
相关文章:
TongSearch3.0.4.0安装和使用指引(by lqw)
文章目录 安装准备手册说明支持的数据类型安装控制台安装单节点(如需集群请跳过这一节)解压和启动开启X-Pack Security和生成p12证书(之后配置内置密码和ssl要用到)配置内置用户密码配置ssl(先配置内置用户密码再配ssl)配置控制台…...
在本地顺利的部署一个al模型从零开始 windows
引言 (踩的坑,省流引言的内容没有有使模型跑起来) 最近想在本地部署一个deepseek模型,就在网上搞了3 4天终于是能够部署下来了,在部署的时候也是成功的踩了无数的坑,比如我先问al如何在本地部署一个语言模…...
【容器技术01】使用 busybox 构建 Mini Linux FS
使用 busybox 构建 Mini Linux FS 构建目标 在 Linux 文件系统下构建一个 Mini 的文件系统,构建目标如下: minilinux ├── bin │ ├── ls │ ├── top │ ├── ps │ ├── sh │ └── … ├── dev ├── etc │ ├── g…...
Nginx如何实现 TCP和UDP代理?
文章目录 前言 Nginx之TCP和UDP代理 工作原理示意图 配置文件和命令参数注释 基本命令 配置实例说明 TCP代理实例UDP代理实例 总结 前言 Nginx是一个高性能的HTTP和反向代理服务器,同时也支持TCP/UDP代理。在1.9.13版本后,Nginx已经支持端口转发&…...
基于keepalived+GTID半同步主从复制的高可用MySQL集群
文章目录 项目架构图项目名称项目环境项目描述ip地址规划项目步骤一.安装好8台全新的centos7.9的系统,关闭firewalld和selinux,配置每台主机的静态ip地址,设置每台主机对应的主机名。1、关闭firewalld2.关闭seLinux3.配置每台主机静态ip地址4…...
尝试在Excel里调用硅基流动上的免费大语言模型
我个人觉得通过api而不是直接浏览器客户端聊天调用大语言模型是使用人工智能大模型的一个相对进阶的阶段。 于是就尝试了一下。我用的是老师木 袁进辉博士新创的硅基流动云上的免费的大模型。——虽然自己获赠了不少免费token,但测试阶段用不上。 具体步骤如下&am…...
SqlSugar简单使用之Nuget包封装-Easy.SqlSugar.Core
SqlSugar官方文档 Nuget包开源地址 Nuget包是为了简化SqlSugar的使用步骤,增加一些基础的使用封装 引入分为两个版本,一个Ioc模式,另一个是注入模式,如果不想影响原本的仓储代码推荐使用Ioc模式,两者区别不到,方法通…...
Linux网络 | 理解NATPT, 数据链路层Done
前言:本节内容结束数据链路层, 本节的重要内容有两个:一个是见一个综合性面试题,另一个就是NAT技术NATPT。 那么废话不多说, 开始我们的学习吧!!! ps:最好先看一下上一篇…...
微信小程序~django Petting pets(爱抚宠物)小程序
博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
如何利用Python爬虫获取商品销量详情:应对eBay反爬策略的实战指南与代码示例
在当今数据驱动的商业环境中,获取商品销量数据对于市场分析、竞品研究和商业决策至关重要。然而,像eBay这样的大型电商平台通常会部署多种反爬虫机制来保护其数据。本文将详细介绍如何利用Python编写爬虫程序,获取eBay商品的销量详情…...
【实战篇】巧用 DeepSeek,让 Excel 数据处理更高效
一、为何选择用 DeepSeek 处理 Excel 在日常工作与生活里,Excel 是我们频繁使用的工具。不管是统计公司销售数据、分析学生成绩,还是梳理个人财务状况,Excel 凭借其强大的功能,如数据排序、筛选和简单公式计算,为我们提供了诸多便利。但当面对复杂的数据处理任务,比如从…...
UE (标识符, meta=())笔记
视频连接: [UFSH2024]UE5(标识符, meta(详解, 史上最全)) | 大钊 Epic Games 虚幻社区经理 参考文档: UE5标识符详解 | 史上最全 UnrealSpecifiers | UE5标识符详解 GitHub 老外整理的标识符文档 标识符 CPP_Default_ParamName(18:22&a…...
并发编程 引用类型 原子类 Stamped和Markable atomicMarkableReference表单Ref和标记Markable 面试题
目录 Stamped 和 Markable 的区别 示例代码 所以这个东西是一次性的 从来没听说过 从来没见过 Stamped 和 Markable 的区别 标记号 boolean 一次性的 版本号 整型数 不建议用 Markable 解决 ABA 问题 AtomicMarkableReference 是一个位于 java.util.concurrent.atomic 包中…...
绿联NAS安装cpolar内网穿透工具实现无公网IP远程访问教程
文章目录 前言1. 开启ssh服务2. ssh连接3. 安装cpolar内网穿透4. 配置绿联NAS公网地址 前言 本文主要介绍如何在绿联NAS中使用ssh远程连接后,使用一行代码快速安装cpolar内网穿透工具,轻松实现随时随地远程访问本地内网中的绿联NAS,无需公网…...
【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题
【Ubuntu】ARM交叉编译开发环境解决“没有那个文件或目录”问题 零、起因 最近在使用Ubuntu虚拟机编译ARM程序,解压ARM的GCC后想要启动,报“没有那个文件或目录”,但是文件确实存在,环境配置也检查过了没问题,本文记…...
深入浅出 NRM:加速你的 npm 包管理之旅
文章目录 前言一、NRM 是什么?二、为什么需要 NRM?三、NRM 的优势四、NRM 的安装与使用4.1 安装 NRM4.2 查看可用的 npm 源4.3 切换 npm 源4.4 测试 npm 源速度4.5 添加自定义 npm 源4.6 删除 npm 源 五、NRM 的进阶使用六、总结 前言 作为一名 JavaScr…...
微信小程序~电器维修系统小程序
博主介绍:✌程序猿徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…...
使用Python的Tabulate库优雅地格式化表格数据
使用Python的Tabulate库优雅地格式化表格数据 在数据分析和软件开发中,表格数据的展示是一个常见的需求。无论是简单的数据报告,还是复杂的数据可视化,表格都是一种直观且有效的信息展示方式。Python作为一门强大的编程语言,拥有…...
android 适配 api 35(android 15) 遇到的问题
首先升级 targetSdkVersion 和 compileSdkVersion 到 35,升级后发生的报错 一、 解决方案: 升级 gradle 和 gradle 插件版本 com.android.tools.build:gradle -> 8.3.0-alpha02 gradle-wrapper.properties : distributionUrl -> gradle-8.6-bin.zip htt…...
DeepSeek和ChatGPT的对比
最近DeepSeek大放异彩,两者之间有什么差异呢?根据了解到的信息,简单做了一个对比。 DeepSeek 和 ChatGPT 是两种不同的自然语言处理(NLP)模型架构,尽管它们都基于 Transformer 架构,但在设计目标…...
【1】高并发导出场景下,服务器性能瓶颈优化
高并发导出场景下,服务器性能瓶颈通常出现在 CPU、内存、磁盘 I/O 或网络带宽等方面。为了解决这些问题,可以从以下几个方面进行优化: 1. 优化导出逻辑 减少计算复杂度:检查导出逻辑中是否存在不必要的计算或重复操作,…...
Python Pandas(3):DataFrame
1 介绍 DataFrame 是 Pandas 中的另一个核心数据结构,类似于一个二维的表格或数据库中的数据表。它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔型值)。DataFrame 既有行索引也有列索引,它可以被看做由…...
Mac电脑上好用的压缩软件
在Mac电脑上,有许多优秀的压缩软件可供选择,这些软件不仅支持多种压缩格式,还提供了便捷的操作体验和强大的功能。以下是几款被广泛推荐的压缩软件: BetterZip 功能特点:BetterZip 是一款功能强大的压缩和解压缩工具&a…...
BUUCTF_XSS-Lab
xss XSS(Cross - Site Scripting)即跨站脚本攻击,是一种常见的 Web 安全漏洞。攻击者通过在目标网站注入恶意脚本(通常是 JavaScript),当其他用户访问该网站时,这些恶意脚本会在用户的浏览器中执…...
新能源算力战争:为什么AI大模型需要绿色数据中心?
新能源算力战争:为什么AI大模型需要绿色数据中心? 近年来,人工智能(AI)大模型的爆发式增长正在重塑全球科技产业的格局。以GPT-4、Gemini、Llama等为代表的千亿参数级模型,不仅需要海量数据训练,更依赖庞大的算力支撑。然而,这种算力的背后隐藏着一个日益严峻的挑战——…...
ASP.NET Core筛选器Filter
目录 什么是Filter? Exception Filter 实现 注意 ActionFilter 注意 案例:自动启用事务的筛选器 事务的使用 TransactionScopeFilter的使用 什么是Filter? 切面编程机制,在ASP.NET Core特定的位置执行我们自定义的代码。…...
systemverilog的program和module的区别
1. 设计目的 module 硬件建模:用于描述数字电路的结构和行为(如组合逻辑、时序逻辑、连线等)。 层次化设计:支持模块化设计,可嵌套其他模块或接口(interface)。 仿真周期内持续存在࿱…...
Redis性能优化
1.是否使用复杂度过高的命令 首先,第一步,你需要去查看一下 Redis 的慢日志(slowlog)。 Redis 提供了慢日志命令的统计功能,它记录了有哪些命令在执行时耗时比较久。 查看 Redis 慢日志之前,你需要设置慢…...
go gin配置air
一、依赖下载 安装最新,且在你工作区下进行安装,我的是D:/GO是我的工作区,所有项目都在目录下的src, go install github.com/air-verse/airlatest 如果出现类似报错: 将图中第三行 github.com/air-verse/air 替换最…...
【C语言系列】深入理解指针(5)
深入理解指针(5) 一、sizeof和strlen的对比1.1sizeof1.2strlen1.3sizeof和strlen的对比 二、数组和指针笔试题解析2.1 一维数组2.2 字符数组2.2.1代码1:2.2.2代码2:2.2.3代码3:2.2.4代码4:2.2.5代码5&#…...
