Tonghttpserver6.0.1.3 使用整理(by lqw)
文章目录
- 1.声明
- 2.关于单机版控制台和集中管理控制台
- 3.单机版控制台
- 3.1安装,启动和查看授权信息
- 3.2一些常见的使用问题(单机控制台)
- 3.3之前使用的是nginx,现在要配nginx.conf上的配置,在THS上如何配置
- 3.4如何配置密码过期时间
- 3.5关于高可用(单机版控制台)
- 3.6重置密码
- 3.7日志切割
- 4.集中管理控制台
- 安装和启动集中管控台
- 通过集中管理安装THS节点
- 手动安装并识别THS节点
- 重置集中管理控制台密码
- 5.手动部署(不使用控制台)
- 6.容器版安装
- 方式一:使用已有的镜像包
- 方式二 使用k8s安装包里的脚本
- 安装准备
- 安装
- 7.各种常用配置和用法(仅供参考)
- 动静分离
- 跨域
- 配置https
- 强转https
- 传真实ip到后端
- THS节点配置为普通用户启动(不包含控制台)
- THS节点配置开机自启动
1.声明
本帖主要使用的是Tonghttpserver6.0.1.3,以及THSManager6.0.1.2(集中管理控制台)。实际以最新的产品手册为准。
2.关于单机版控制台和集中管理控制台
6013版本的每个THS的安装包里都自带了单机版控制台,如果只是使用单个THS节点,直接使用单机版控制台,如果要用多个THS节点并建立集群,建议使用集中管理控制台。
如果本身不允许使用web页面(也就是控制台的),也有手动部署环节。
之后的章节,会以单机版控制台和集中管理控制台的章节进行介绍,建议根据需求,在开始的安装环节选择好是用单机版控制台,集中管理控制台还是手动部署。
3.单机版控制台
3.1安装,启动和查看授权信息
首先确认cpu,确认是x86还是arrch64:
lscpu
x86的使用TongHttpServer_6.0.1.3_x86_64.tar.gz,arrch64的使用TongHttpServer_6.0.1.3_aarch64.tar.gz:
确认好安装包后,直接解压,例如:
tar -zvxf TongHttpServer_6.0.1.3_x86_64.tar.gz
解压后目录:
放入授权(找销售要)
cd 到bin目录,执行./start.sh -L,查看过期时间(临时授权一般三个月,永久为-1):
然后配置一下控制台(找到conf目录下的ths-console.conf):
确认没问题后,执行指令先启动单机版控制台:
./startConsole.sh
检查防火墙和本地网络,以及进程和端口是否起来了(本次示范直接关闭了防火墙):
访问服务器ip:8000/admin,初始账号admin,初始密码Ths#123.com。
初次进入需要修改密码:
点击这里直接启动:
点击这里停止:
也可以自己通过执行脚本进行启动和停止:
[root@localhost bin]# ./start.sh
Software version: TongHttpServer/6.0.1.3
Build at Nov 25 2024 03:06:35
httpserver start success
[root@localhost bin]# ./start.sh stop
httpserver stop success
3.2一些常见的使用问题(单机控制台)
3.3之前使用的是nginx,现在要配nginx.conf上的配置,在THS上如何配置
实际配置文件在conf目录下,cat一下可以看到,这个httpserver.conf文件跟nginx.conf的配置语法很像:
如果使用单机版控制台的话,在这里可以编辑:
一些常见的配置可以点这里来看:
也可以备份和切换备份:
另外把鼠标放置在对应配置上,会有提示:
更多配置细节,可参考安装包里的002_TongHttpServer_V6.0监控配置手册_6013A01.pdf。
3.4如何配置密码过期时间
3.5关于高可用(单机版控制台)
一般高可用ha是搭配一主一从来使用的,这种情况下建议直接用集中管理控制台,尽量别用单机版控制台了。
其次可能会遇到这种提示:
这是因为控制台限制,只能用root操作,所以遇到这种提示,多数是因为文件权限和属主都是普通用户,并非报错。
3.6重置密码
如果没有忘记密码且可以通过控制台登录,则直接在控制台上操作:
也可以执行指令,例如:
./startConsole.sh -passwd=THS#123.com
3.7日志切割
找到这个脚本,把里面的路径改成自己的ths的logs目录:
定时任务常用指令参考:
# 查看定时任务
crontab -l
# 编辑定时任务
crontab -e
# 启动定时任务
systemctl start crond
# 关闭定时任务
systemctl stop crond
# 重启定时任务
systemctl restart crond
把日志切片脚本加入定时任务:
crontab -e
# 每天凌晨23:59进行日志切片
59 23 * * * /opt/THS/tools/scripts/logrotate.sh
systemctl restart crond
4.集中管理控制台
安装和启动集中管控台
集中管理控制台目前用的是6.0.1.2版本,请根据lscpu查询结果确认使用哪个安装包
直接解压:
conf目录下配置一下grpc.yaml:
然后确认下是采用http还是https的形式来访问控制台,下面会分开说。
先是http的,配置conf目录下的http.yaml:
之后去bin目录执行./startManager.sh init进行数据库初始化:
执行./startManager.sh start启动控制台:
通过集中管理安装THS节点
参考Tonghttpserver6.0.1.0部署指引优化版+基本操作指引+部分问题收集持续更新(by lqw)
手动安装并识别THS节点
参考Tonghttpserver6.0.1.0部署指引优化版+基本操作指引+部分问题收集持续更新(by lqw)
重置集中管理控制台密码
5.手动部署(不使用控制台)
这种分两种情况,分别是单机和集群高可用的。
两种情况的区别只在于是否配置conf目录下的httpserverHA.conf(里面要配网卡信息,浮动ip信息等),本质都是直接解压THS的安装包(例如x86环境下的TongHttpServer_6.0.1.3_x86_64.tar.gz),解压后放入授权文件,执行脚本启动(单机版和集群高可用都需要执行./start.sh 进行启动 ,高可用的还需要执行./startHA.sh)。
配置高可用,可参考
参考Tonghttpserver6.0.1.0部署指引优化版+基本操作指引+部分问题收集持续更新(by lqw)
备注:
如果是配置高可用(linux下),请留意httpserverHA.conf是否有remote_ip 这个配置,有的删掉,这个是window下用的。
6.容器版安装
方式一:使用已有的镜像包
请联系东方通的销售或者技术人员提供对应的镜像包,如下图所示:
备注:
1.已有镜像包是x86的,如果对操作系统有要求的,建议跳过这个方式,参考方式二。
2.这两个包的区别在于是否带了Agent程序,Agent程序跟集中管理控制台有关,一般情况下,没有用到集中管理控制台,可以不用。
3.需要在本地测试并验证license.dat有效(这个可以自行解压一个6013的THS的安装包,把license.dat 丢在解压目录下,cd到bin目录执行./start.sh -L)。
下载并上传对应的tar.gz到服务器,然后cd到这个安装包的目录,执行docker load -i指令,例如:
docker load -i TongHttpServer_Instance_Image_6.0.1.3_alpine_x86_64.tar
docker load 指令执行完,使用docker images看看是否有对应镜像:
然后执行以下指令测试是否能跑起来(记得自己在本地解压好对应的THS安装目录并放入授权):
docker run -d -v /opt/THS/license.dat:/opt/THS/license.dat -v /opt/THS/conf:/opt/THS/conf -p 8999:8080 IMAGE_ID
CONTAINER ID可通过docker images查看:
之后执行docker ps -a确认是否创建成功:
另外可以执行docker exec -it CONTAINER ID /bin/bash 查看容器内部结构(CONTAINER ID用docker ps -a来查看):
方式二 使用k8s安装包里的脚本
详细可参考TongHttpServer_V6.0K8s 部署手册_6011A01.pdf
安装准备
1.有docker环境,并且已经拉取对应操作系统的镜像。
2.将对应安装包上传到服务器上:
安装
解压TongHttpServer_Kubernetes_6.0.1.1.tar.gz
tar -zvxf TongHttpServer_Kubernetes_6.0.1.1.tar.gz
解压后在解压目录的THS/install-package放入对应的安装包(这里演示的是x86的):
找到该脚本
脚本里修改你放入的tar.gz的名字
然后到这个目录找到dockerfile(这里不需要用到agent,所以选择该的是withoutAgent这个)
除了要安装的系统,其他的全部不要动(系统镜像需要提前pull下来或者load到docker里,能用docker images查看到):
cd 到这个build.sh所在目录
这里输入的是:
tongtech.com/images/ths-instance:v6.0.1.3
继续用docker run测试一下:
docker run -d -v /opt/THS/license.dat:/opt/THS/license.dat -v /opt/THS/conf:/opt/THS/conf -p 8998:8080 IMAGE_ID
另外可以执行docker exec -it CONTAINER ID /bin/bash 查看容器内部结构(CONTAINER ID用docker ps -a来查看):
7.各种常用配置和用法(仅供参考)
动静分离
http {upstream backend {server 127.0.0.1:8082;server 127.0.0.1:8083;}server {listen 8080;server_name localhost;access_log logs/access.log main;location / { root html;try_files $uri $uri/ /index.html;}location /api {proxy_pass http://backend;}}
}
跨域
server {listen 80;server_name example.com;location /api/ {# 允许所有域名跨域add_header 'Access-Control-Allow-Origin' '*';# 允许的 HTTP 方法add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, DELETE';# 允许的请求头add_header 'Access-Control-Allow-Headers' 'Origin, Authorization, Content-Type, Accept';# OPTIONS 预检请求直接返回成功if ($request_method = 'OPTIONS') {return 204;}proxy_pass http://backend_server;}
}
配置https
http {server {listen 8443 ssl;server_name localhost;access_log logs/access.log main;ssl_protocols TLSv1.3;ssl_gmtls on;ssl_certificate tools/crt_demo/SS.pem tools/crt_demo/SE.pem;ssl_certificate_key tools/crt_demo/SS.key.pem tools/crt_demo/SE.key.pem;ssl_certificate tools/crt_demo/server.crt;ssl_certificate_key tools/crt_demo/server.key;#ssl_session_cache shared:SSL:1m;#ssl_session_timeout 5m;ssl_ciphers HIGH:!aNULL:!MD5;#ssl_prefer_server_ciphers on;location / {root html;index index.html;}}
}
强转https
# HTTP 配置(80端口),将所有 HTTP 请求重定向到 HTTPS
server {listen 80; # HTTP端口server_name tmail.tepon.com.cn; # 绑定域名# 永久重定向到 HTTPSreturn 302 https://tmail.tepon.com.cn$request_uri;
}# HTTPS 配置(443端口),处理加密请求
server {listen 443 ssl; # HTTPS端口server_name tmail.tepon.com.cn; # 绑定域名# 配置 SSL 证书和密钥ssl_certificate crts/tebon2024.pem;ssl_certificate_key crts/tebon2024.key;# 启用最新的 TLS 协议,增强安全性ssl_protocols TLSv1.2 TLSv1.3;# IP透传,保留原始客户端IPproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;# 处理来自 HTTPS 的请求location / {proxy_pass http://backend_servers; # 将请求转发到后端服务器# 确保后端知道请求是通过 HTTPS 传输#proxy_set_header X-Forwarded-Proto https; }
}
容易遇到的问题:
使用nginx设置http跳转https,报错:ERR_TOO_MANY_REDIRECTS
传真实ip到后端
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
备注:
如果应用那边同时使用了Tongweb,Tongweb部分配置可参考以下帖子:
负载场景下TongWeb如何获取真实的客户端IP地址
THS节点配置为普通用户启动(不包含控制台)
之所以单独写这一节,是参考
普通用户权限使用tongTHS的解决方案的时候,发现了以下问题:
1./var/run 这个目录,只要重启了服务器,就需要重新赋权777,否则就会在THS节点的error.log里报can not open file /var/run/xxx (在现场遇到的)。
2.很多人不知道setcap 这个有什么作用,怎么执行,在哪里执行。(这个要在THS节点安装目录的bin目录执行)。
首先我们要知道,THS节点的启动主要是这两个指令(/opt/THStest/THS是我示范用哪个的THS的安装目录):
cd /opt/THStest/THS/bin
./start.sh
./startHA.sh
所以可以根据自己的情况,在THS的bin目录创建一个脚本Tonghttpserver.sh,脚本内容如下:
#!/bin/bash
#!赋权777到/var/run
sudo chmod 777 /var/run
#!启动THS节点,/opt/THStest/THS为THS节点安装目录
nohup /opt/THStest/THS/bin/httpserver -p /opt/THStest/THS -c /opt/THStest/THS/conf/httpserver.conf
#!启动THS高可用,/opt/THStest/THS为THS节点安装目录
/bin/bash /opt/THStest/THS/bin/startHA.sh
#!/opt/THStest/THS为THS 安装目录
echo $! > /opt/THStest/THS/bin/web.pid
同时新建一个TonghttpserverStop.sh
#!/bin/bash
pkill httpserver
接下来执行以下操作(/opt/THStest/THS是THS安装节点目录,yehuorufeng是演示创建的普通用户):
[root@localhost THStest]# chmod 755 /opt/THStest/THS/bin/Tonghttpserver.sh
[root@localhost THStest]# chmod 755 /opt/THStest/THS/bin/TonghttpserverStop.sh
[root@localhost ~]# chmod 755 /opt/THStest/THS/conf
[root@localhost ~]# chmod 644 /opt/THStest/THS/conf/*
[root@localhost THStest]# chown -R yehuorufeng:yehuorufeng /opt/THStest/THS
[root@localhost THStest]# chmod 644 /opt/THStest/THS/conf
[root@localhost THStest]# chmod 755 $(find /opt/THStest/THS/html -type d)
[root@localhost THStest]# chmod 644 $(find /opt/THStest/THS/html -type f)
## 配置后普通用户能用sudo指令,方便后面执行setcap
[root@localhost bin]# usermod -aG wheel yehuorufeng
[root@localhost bin]# su yehuorufeng
[yehuorufeng@@localhost bin]# cd /opt/THStest/THS/bin/
## 必须在普通用户下操作
[yehuorufeng@@localhost bin]# sudo setcap cap_net_bind_service=+ep ./httpserver
## 必须在普通用户下操作
[yehuorufeng@@localhost bin]# sudo setcap cap_net_raw,cap_net_admin=+ep ./httpserverHA
如果遇到sudo 需要输入用户密码的,可以用root用户这样配置操作(目的是设置该普通用户使用sudo指令不需要输入用户密码,其中yehuorufeng替换为你的普通用户名):
sudo visudo#在该文件最末尾配置
yehuorufeng ALL=(ALL) NOPASSWD: ALL
输入ip a看看是否有浮动ip(没配的不用看这里):
如果有报错,请根据报错信息进行处理,例如:
THS节点配置开机自启动
THS节点的tools目录的service下有各种开机脚本的参考(包括THS节点,HA,agent)。
本次示范的是配置了上一节普通用户的情况下,配置开机自启动(请根据自身情况进行调整),参考了httpserver.service:
在/usr/lib/systemd/system下新建一个tonghttpserver.service,并赋权644
[Unit]
Description=tonghttpserver
StartLimitIntervalSec=0
After=network.target[Service]
Type=forking
Restart=always
RestartSec=30
User=yehuorufeng
Group=yehuorufeng
LimitNOFILE=102400
LimitNPROC=102400
LimitMEMLOCK=infinity
WorkingDirectory=/opt/THStest/THS/bin
ExecStart=/opt/THStest/THS/bin/Tonghttpserver.sh
ExecStop=/opt/THStest/THS/bin/TonghttpserverStop.sh[Install]
WantedBy=multi-user.target
接下来执行以下指令(用root)
[root@localhost system]# systemctl daemon-reload
[root@localhost system]# systemctl start tonghttpserver.service
[root@localhost system]# systemctl status tonghttpserver
[root@localhost system]# systemctl enable tonghttpserver
Created symlink from /etc/systemd/system/multi-user.target.wants/tonghttpserver.service to /usr/lib/systemd/system/tonghttpserver.service.
重启服务器,重新输入以下指令确认是否启动成功:
[root@localhost ~]# systemctl status tonghttpserver
● tonghttpserver.service - tonghttpserverLoaded: loaded (/usr/lib/systemd/system/tonghttpserver.service; enabled; vendor preset: disabled)Active: active (running) since 一 2024-12-30 12:42:45 CST; 1min 11s agoProcess: 1013 ExecStart=/opt/THStest/THS/bin/Tonghttpserver.sh (code=exited, status=0/SUCCESS)CGroup: /system.slice/tonghttpserver.service├─1146 httpserver: master process /opt/THStest/THS/bin/httpserver -p /opt/THStest/THS -c /opt/THStest/THS/conf/httpserver.conf├─1148 httpserver: worker process├─1150 httpserver: worker process├─1151 httpserver: worker process├─1152 httpserver: worker process├─1191 /opt/THStest/THS/bin/httpserverHA -f /opt/THStest/THS/conf/httpserverHA.conf /opt/THStest/THS/logs/ha_run_log└─1193 /opt/THStest/THS/bin/httpserverHA -f /opt/THStest/THS/conf/httpserverHA.conf /opt/THStest/THS/logs/ha_run_log12月 30 12:42:42 localhost.localdomain systemd[1]: Starting tonghttpserver...
12月 30 12:42:42 localhost.localdomain sudo[1017]: yehuorufeng : TTY=unknown ; PWD=/opt/THStest/THS/bin ; USER=root ; COMMAND=/bin/chmod 777 /var/run
12月 30 12:42:42 localhost.localdomain Tonghttpserver.sh[1013]: Software version: TongHttpServer/6.0.1.3
12月 30 12:42:42 localhost.localdomain Tonghttpserver.sh[1013]: Build at Nov 25 2024 03:06:35
12月 30 12:42:42 localhost.localdomain Tonghttpserver.sh[1013]: httpserverHA is startting...
12月 30 12:42:45 localhost.localdomain Tonghttpserver.sh[1013]: httpserverHA start success!
12月 30 12:42:45 localhost.localdomain systemd[1]: Started tonghttpserver.
[root@localhost ~]# ps -ef |grep httpserver
yehuoru+ 1146 1 0 12:42 ? 00:00:00 httpserver: master process /opt/THStest/THS/bin/httpserver -p /opt/THStest/THS -c /opt/THStest/THS/conf/httpserver.conf
yehuoru+ 1148 1146 0 12:42 ? 00:00:00 httpserver: worker process
yehuoru+ 1150 1146 0 12:42 ? 00:00:00 httpserver: worker process
yehuoru+ 1151 1146 0 12:42 ? 00:00:00 httpserver: worker process
yehuoru+ 1152 1146 0 12:42 ? 00:00:00 httpserver: worker process
yehuoru+ 1191 1 0 12:42 ? 00:00:00 /opt/THStest/THS/bin/httpserverHA -f /opt/THStest/THS/conf/httpserverHA.conf /opt/THStest/THS/logs/ha_run_log
yehuoru+ 1193 1191 0 12:42 ? 00:00:00 /opt/THStest/THS/bin/httpserverHA -f /opt/THStest/THS/conf/httpserverHA.conf /opt/THStest/THS/logs/ha_run_log
root 2489 1549 0 12:44 pts/0 00:00:00 grep --color=auto httpserver
相关文章:
Tonghttpserver6.0.1.3 使用整理(by lqw)
文章目录 1.声明2.关于单机版控制台和集中管理控制台3.单机版控制台3.1安装,启动和查看授权信息3.2一些常见的使用问题(单机控制台)3.3之前使用的是nginx,现在要配nginx.conf上的配置,在THS上如何配置3.4如何配置密码过…...
图像坐标导数的表达式 Expression for Image Coordinate Derivate
Title: 图像坐标导数的表达式 Expression for Image Coordinate Derivate 文章目录 I. 图像坐标 Image CoordinatesII. 关于 x \mathbf{x} x 的导数 Derivative wrt x \mathbf{x} x1. 第一部分2. 第二部分3. 两部分合并 III. 关于 H H H 的导数 Derivative wrt H H H1. 第一…...
Jenkins 中自动化部署 Spring Boot 项目
👨🏻💻 热爱摄影的程序员 👨🏻🎨 喜欢编码的设计师 🧕🏻 擅长设计的剪辑师 🧑🏻🏫 一位高冷无情的全栈工程师 欢迎分享 / 收藏 / 赞 / 在看…...
Live555、FFmpeg、GStreamer介绍
Live555、FFmpeg 和 GStreamer 都是处理流媒体和视频数据的强大开源框架和工具,它们广泛应用于实时视频流的推送、接收、处理和播放。每个框架有不同的设计理念、功能特性以及适用场景。下面将详细分析这三个框架的作用、解决的问题、适用场景、优缺点,并…...
西门子DBX DBD DBB DBW的关系
DB10.DBD0 DB10.DBW0DB10.DBW2 DB10.DBB0DB10.DBB1DB10.DBB2DB10.DBB3 DB10.DBX0.00.7DB10.DBX1.01.7DB10.DBX2.02.7DB10.DBX3.03.7 使用之前需要在DB10中先定义,如果你仅在DB10中定义了一个DBD0,那么原则上你是可以使用上述所有地址的,但…...
语言模型在时间序列预测中的作用
语言模型在时间序列预测中的作用 从目前相关的研究情况来看,大语言模型在时间序列预测中的作用存在争议。 质疑其有用性的方面 消融研究结果:在对一些流行的基于语言模型(LLM)的时间序列预测方法进行消融研究时发现,去除LLM组件或将其替换为基本注意力层,在大多数情况下…...
【centos8 镜像修改】centos8 镜像修改阿里云
要将 CentOS 8 的镜像源修改为阿里云镜像,你需要编辑 /etc/yum.repos.d/ 目录下的 .repo 文件。以下是具体的步骤: 备份原始的 .repo 文件: 在编辑之前,建议备份原始的 .repo 文件,以便在出现问题时可以恢复。 sudo cp…...
2024年12月个人工作生活总结
本文为 2024年12月工作生活总结。 研发编码 Golang语言byte数组赋值 假定有如下变量: var strCode string var bCode [9]byte现需将string类型转换成byte类型,如下: bCode []byte(strCode)无法转换,提示: cannot…...
[cg] android studio 无法调试cpp问题
折腾了好久,native cpp库无法调试问题,原因 下面的Deploy 需要选Apk from app bundle!! 另外就是指定Debug type为Dual,并在Symbol Directories 指定native cpp的so路径 UE项目调试: 使用Android Studio调试虚幻引擎Android项目…...
vulnhub靶场【warzone】之2
前言 靶机:warzone-1,IP地址192.168.1.71 攻击:kali,IP地址192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 因为都是同一局域网下,相当于内网环境,所以使用下面的工具,若想…...
MySQL什么情况下会加间隙锁?
目录 一、使用范围条件查询 二、唯一索引的范围查询 三、普通索引的查询 四、间隙锁的锁定规则 五、间隙锁的影响 间隙锁(Gap Lock)是MySQL中的一种锁机制,主要用于防止幻读现象。在MySQL的InnoDB存储引擎中,当事务隔离级别设置为可重复读(Repeatable Read)时,间隙…...
REDIS2.0
string list hash set 无序集合 声明一个key,键里面的值是元素,元素的类型是string 元素的值是唯一的,不能重复 多个集合类型之间可以进行并集,交集,集查的运算 sadd test1 a b c c d :添加5个元素&am…...
Java方法使用详解:从基本概念到进阶技巧
1. 方法介绍 方法是执行特定功能的代码块,可以被多次调用。方法由方法头和方法体组成,方法头包括方法名、参数列表和返回类型。方法体包含实际执行的代码。 2. 无参无返回值方法使用 这种方法没有参数,也不返回任何值。常用于执行一些不需…...
RT-Thread中堆和栈怎么跟单片机内存相联系
现在RT-ThreadMCU的应用方式越来越普遍,RT-Thread需要配置MCU中的RAM到的系统中,进入系统内存管理,才能提供给基于实时系统的应用程序使用,比如给应用程序提供malloc、free等函数调用功能。在嵌入式软件开发中,我们经常…...
对jenkins的rpm进行处理
下载Jenkins RPM包 首先,你需要从Jenkins官方网站(https://pkg.jenkins.io/redhat - stable/)下载合适的RPM包。通常,对于CentOS等基于RPM的系统,可以选择jenkins - <version>.noarch.rpm这种格式的包࿰…...
从Huggingface中下载数据集、模型
报错: 可能原因: 1. 服务器网络连接 这样就显示没有问题 2.访问权限问题 3.连接超时 4.使用镜像 使用镜像的方法在autodl上是可以成功的,但是在一些服务器却不能成功,那么就需要我们下载到本地,然后再把本地的打包…...
设计模式的分类
根据概念性动机分3类设计模式 创建型模式:管理对象的创建。 常用的有单例模式,简单工厂模式,工厂方法模式,另外还有原型模式,抽象工厂模式,建造者模式 结构型模式:将已有对象加入到设计中时…...
【图像去噪】论文精读:DualDn: Dual-domain Denoising via Differentiable ISP
请先看【专栏介绍文章】:【图像去噪(Image Denoising)】关于【图像去噪】专栏的相关说明,包含适配人群、专栏简介、专栏亮点、阅读方法、定价理由、品质承诺、关于更新、去噪概述、文章目录、资料汇总、问题汇总(更新中) 文章目录 前言Abstract1 Introduction2 Related W…...
张量与数据类型
Pytorch最基本的操作对象——张量(tensor),张量是Pytorch中重要的数据结构,可认为是一个高维数组。一般的,标量(scalar)是只有大小没有方向的量,如1、2、3等;向量&#x…...
JavaScript概述
Web网页的三要素:HTML结构、CSS表现、JavaScript行为。 一、JavaScript语言的组成 JS的全称叫JavaScript,它一门面向对象的解释型弱类型语言。 JavaScript也是由3个部分来组成的:ECMAScript、DOM、BOM。 ECMAScript——它是JS的核心部分&a…...
tarjan算法——割边
今天也是小小的学了一个tarjan算法中的割边的一个应用 他和割点很像,都是用来处理无向图的,只不过是不能走反向边罢了 我们首先来说一个割边的定义 割边 当我们在无向图中删除一个边,无向图被分成不联通的两部分,那么这条边就…...
ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础
文章目录 简介为什么需要I2S?关于音频信号采样率分辨率音频声道 怎样使用I2S传输音频?位时钟BCLK字时钟WS串行数据SD I2S传输模型I2S通信格式I2S格式左对齐格式右对齐格式 i2s基本配置i2s 底层API加载I2S驱动设置I2S使用的引脚I2S读取数据I2S发送数据卸载…...
Mybatisplus-IService
IService 是 MyBatis-Plus 提供的一个通用 Service 层接口,它封装了常见的 CRUD 操作,包括插入、删除、查询和分页等。通过继承 IService 接口,可以快速实现对数据库的基本操作,同时保持代码的简洁性和可维护性。 IService 接口中…...
深入浅出 Beam Search:自然语言处理中的高效搜索利器
Beam Search 技术详解 1. 引言 Beam Search 是一种广泛应用于自然语言处理(NLP)、机器翻译、语音识别等序列生成任务中的启发式搜索方法。本文将详细探讨 Beam Search 的原理、实现步骤、应用场景及其优缺点,并通过具体例子帮助读者更好地理…...
MySQL 可重复读隔离级别,完全解决幻读了吗?
什么是事务隔离级别? 事务隔离级别是数据库用来控制多个并发事务之间如何交互的机制。不同的隔离级别提供了不同程度的保护,以防止并发事务之间的相互干扰。MySQL 支持四种隔离级别: 读未提交(Read Uncommitted)&…...
Nginx知识详解(理论+实战更易懂)
目录 一、Nginx架构和安装 1.1 Nginx 概述 1.1.1 nginx介绍 1.1.2?Nginx 功能介绍 1.1.3?基础特性 1.1.4?Web 服务相关的功能 1.2?Nginx 架构和进程 1.2.1?Nginx 进程结构 1.2.2?Nginx 进程间通信 1.2.3?Nginx 启动和 HTTP 连接建立 1.2.4?HTTP 处理过程 1…...
VScode怎么重启
原文链接:【vscode】vscode重新启动 键盘按下 Ctrl Shift p 打开命令行,如下图: 输入Reload Window,如下图:...
华夏ERP系统部署
JDK安装及环境变量配置 数据库安装 Redis安装部署 Nginx安装部署 后端程序前端程序部署...
实际部署Dify可能遇到的问题:忘记密码、开启HTTPS、知识库文档上传的大小限制和数量限制
背景 前面我们以 docker compose 容器化的方式本地部署了 Dify 社区版,并快速体验了其聊天助手、工作量编排以及智能体(Agent)功能。不过后续实际生产环境使用时遇到了忘记密码、如何开启SSL以支持HTTPS、如何突破知识库文档上传的大小限制和…...
【C语言】库函数常见的陷阱与缺陷(三):内存分配函数[4]--free
C语言中的free函数用于释放之前通过malloc、calloc或realloc动态分配的内存。然而,在使用free函数时,开发者可能会遇到一些陷阱和缺陷。 一、功能与用法 free 函数是 C 语言中用于释放动态分配内存的关键函数。在程序使用 malloc、calloc 或 realloc 等函数在堆上分配了内存…...
【TypeScript篇】TypeScript命令行编译和自动化编译
目录 1. 命令行编译 步骤一:创建一个demo.ts文件 步骤二:全局安装TypeScript 步骤三:使用命令编译.ts文件 2. 自动化编译 步骤一:生成编译控制文件 步骤二:开启监视 3. 自动化编译的一些其它问题 1. 命令行编译…...
电子应用设计方案78:智能窗户系统设计
智能窗户系统设计 一、引言 智能窗户系统旨在为用户提供更便捷、舒适和节能的窗户控制体验,同时增强家居的安全性和智能化程度。 二、系统概述 1. 系统目标 - 实现窗户的自动开关控制,根据环境条件和用户设定进行操作。 - 具备风雨感应功能,…...
数据挖掘笔记 | 插值 | 拉格朗日插值 | 龙格现象 | 埃尔米特插值 | 分段三次埃尔米特插值
Interpolation插值 对于缺失值的处理,比较常见的是数值分析中的插值和拟合这两种方法。插值指的是在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点;拟合则是找到一条“最优”的曲线,尽可能地贴近平…...
Ubuntu网络配置(桥接模式, nat模式, host主机模式)
windows上安装了vmware虚拟机, vmware虚拟机上运行着ubuntu系统。windows与虚拟机可以通过三种方式进行通信。分别是桥接模式;nat模式;host模式 一、桥接模式 所谓桥接模式,也就是虚拟机与宿主机处于同一个网段, 宿主机…...
【Linux网络编程】第十七弹---深入理解以太网与ARP协议:从帧格式到数据报解析
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、认识以太网 1.1、以太网帧格式 1.2、认识 MAC 地址 1.3、对比理解 MAC 地址和 IP 地址 1.4、认识 MT…...
AVL 树
1.AVL树的概念 AVL树是最先发明的自平衡二叉查找树,AVL树可以是一棵空树,或者具有以下性质的树:左右子树都是AVL树。且左右子树的高度差的绝对值不超过1。 AVL树是一颗高度平衡搜索二叉树,通过控制高度去控制平衡。 AVL树的发明…...
PHP关键字Self、Static和parent的区别
简介 在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。 在我第一次作为开发人员开始工作后的很长一段时间…...
Vscode左大括号不另起一行、注释自动换行
参考大佬的博客VSCode 格式化 cpp 文件时配置左大括号不换行_vscode大括号不换行-CSDN博客 Clang_format_style {BasedOnStyle: Chromium, IndentWidth: 4}...
golang标准库archive/tar实现打包压缩及解压
文章目录 前言一、单个文件操作1.单个文件打包示例2.单个文件解包示例 二、目录示例1.打包压缩2.解包 补充 前言 这个包就是将文件进行打包和解包,通俗理解就是Linux 下的 tar 命令。 主要是通过 tar.Reader 读取 tar 包,通过 tar.Writer 写入 tar包&am…...
模方匀色功能中,加载的模板文件从哪里来
使用 DasViewerV3.1.2及以上版本导出的颜色调整文件 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.2新增内置“自动UV展开”功能,新增局部调色功能和DOM匀色功能等。同时可与…...
maya 删除 Ctrl + Delete vs Delete
在 Autodesk Maya 中删除选定顶点的步骤: 1. 选择顶点: 进入顶点选择模式: 按 F9 键(切换到顶点选择模式)。 或者,在工具栏中点击顶点选择图标(顶点模式)。 在视图中选择您想要删…...
为何String不可变,String的运算符重载
1.为何String不可变 java9之前,String的源码中是用字符数组实现的,同时使用了final和private修饰,被final修饰的结果就是变量不可修改、类不可继承、方法不可重写,被private修饰就无法对外暴露,这就是为何String不可变…...
WebRTC :原理、协议和应用场景
WebRTC(Web Real-Time Communication)是一种用于在Web浏览器和移动应用程序之间进行实时通信的开放标准。它通过将音频、视频和数据传输集成到Web浏览器中,使得实时通信变得简单且无需任何插件或第三方软件。 一、WebRTC 的原理 WebRTC的实…...
Windows FTP服务器搭建指南
在Windows上搭建FTP服务器可以通过以下步骤完成。这里以Windows 10为例,使用系统自带的IIS(Internet Information Services)来搭建FTP服务器。 步骤1:安装IIS和FTP服务器组件 打开“控制面板”: 按 Win R,…...
DP协议:Link层(二)
书接上文,内容多了难免会有一种知识点零碎感,但是坚持学下去,有一天你会发现已经不知不觉可以链接成一张知识网络了。 AUX提供的services 前面咱刚刚简单的认识了AUX CH的状态和仲裁,这次咱们接着聊聊AUX提供的services。 管理连接和设备:AUX CH就像是一个管家,负责找到…...
HAL 库 HAL_UARTEx_ReceiveToIdle_IT 函数解析
一、存在位置:stm32f1xx_hal_uart.c 二、具体代码 二、返回值:HAL_StatusTypeDef 通过查看返回值HAL_StatusTypeDef在stm32f1xx_hal_edf.h文件中定义为结构体类型。 status:(进展的)状况,情形 三、函数名…...
C++ 设计模式:职责链模式(Chain of Responsibility)
链接:C 设计模式 链接:C 设计模式 - 组合模式 职责链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合。这些对象通过…...
数据库约束和查询
一 约束意义 这个后面的字段是什么意思呢? 先前说数据类型是一种约束,约束我们只能放该类型的数据,还有其它的约束来保证数据的合法性,下面的字段就和约束有关。 编译器的编译就是一个约束,保证我们的代码一定是语法合格的。我们…...
【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)
****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 3.1.2 基于注意力的解释(Attention-Based Explanation) 注意力机制可以揭示输入数据中各个部分之间的关系&#…...
AI大模型-提示工程学笔记1
卷首语:我所知的是我自己非常无知,所以我要不断学习。 写给AI入行比较晚的小白们(比如我自己)看的,大神可以直接路过无视了。 几个基本概念 1. 给LLM提示 用户可以通过简单的提示词(Prompts)…...