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

一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)

一、Nginx反向代理(七层代理)
实验要求
使用Nginx实现Web反向代理功能,实现如下功能: 后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为2,失败超时时间为30秒
实验环境
以下机器全部已经存在,无须再次配置主机名	IP地址	角色
server1(已存在)	eth0:192.168.99.254/24	客户端
proxy(已存在)	eth1:192.168.99.5/24	代理服务器
web1(已存在)	eth1:192.168.99.100/24	web服务器
web2(已存在)	eth1:192.168.99.200/24	web服务器
image-202410082130582811)部署后端Web服务器
1)部署后端Web1服务器
后端Web服务器可以简单使用yum方式安装httpd实现Web服务,为了可以看出后端服务器的不同,可以将两台后端服务器的首页文档内容设置为不同的内容
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "web1" > /var/www/html/index.html
[root@web1 ~]# systemctl enable --now httpd2)部署后端Web2服务器
[root@web2 ~]# yum -y install  httpd
[root@web2 ~]# echo "web2" > /var/www/html/index.html
[root@web2 ~]# systemctl enable --now httpd3)使用proxy主机测试
[root@proxy ~]# curl 192.168.99.100
web1
[root@proxy ~]# curl 192.168.99.200
web2
2)配置Nginx代理服务器
添加服务器池,实现反向代理功能之前proxy主机安装的nginx已经改过很多配置,避免实验冲突,先还原proxy主机的nginx,重新安装nginx
[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s stop    #如果之前没有启动,可以不用执行停止的命令
[root@proxy ~]# rm -rf /usr/local/nginx/
[root@proxy ~]# cd /root/lnmp_soft/
[root@proxy lnmp_soft]# rm -rf nginx-1.22.1
[root@proxy lnmp_soft]# tar -xf nginx-1.22.1.tar.gz
[root@proxy lnmp_soft]# cd nginx-1.22.1/
[root@proxy nginx-1.22.1]# yum -y install gcc make pcre-devel openssl-devel
[root@proxy nginx-1.22.1]# ./configure 
[root@proxy nginx-1.22.1]# make && make  install    1)修改nginx的配置文件
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...
http {
...
#使用upstream定义后端服务器集群,集群名称任意(如webserver)
#使用server定义集群中的具体服务器和端口upstream webserver {server 192.168.99.100:80;server 192.168.99.200:80;}server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;index  index.html index.htm;proxy_pass http://webserver;  #通过proxy_pass将用户的请求转发给webserver集群}...2)启动nginx
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx3)使用真机浏览器做测试192.168.99.5,刷新可以看到网站的轮询效果,出现结果为 web1 或者 web2
3)配置upstream服务器集群池属性
1)设置权重
weight可以设置后台服务器的权重,权重越大任务的分配量就越大
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
.. ..upstream webserver {server 192.168.99.100:80 weight=2;server 192.168.99.200:80;}server {.. ..2)重新加载配置并访问,可以看到web1的任务量增加
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload真机浏览器测试http://192.168.99.5,不太明显
可以使用命令行测试
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web2
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web13)设置健康检查max_fails可以设置后台服务器连不上的失败次数,fail_timeout可以设置后台服务器的失败超时时间,等待多长时间再次尝试连接
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...upstream webserver {server 192.168.99.100:80;server 192.168.99.200:80 max_fails=2 fail_timeout=30;}server {...4)重新加载配置并访问
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload测试时,先将web2的httpd服务关闭
[root@web2 ~]# systemctl stop  httpd使用真机命令行访问集群页面curl 192.168.99.5,只会显示web1的页面
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1此时即使将web2的httpd服务开启也无效,因为要等待30秒
[root@web2 ~]# systemctl start  httpd
[root@server1 ~]# curl 192.168.99.5 #30秒之后再访问,web2会出现
web2
4)配置upstream服务器集群的调度算法
测试ip_hash
1)设置相同客户端访问相同Web服务器
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...upstream webserver {ip_hash;server 192.168.99.100:80;server 192.168.99.200:80;}server {
...
2)重新加载配置
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload3)测试只会见到一个页面
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1
添加down标记
down标记可以让集群主机暂时不参与集群活动
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...upstream webserver {server 192.168.99.100:80;server 192.168.99.200:80 down;}server {...
重新加载配置
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload测试,只会见到web1
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1二、Nginx的TCP/UDP调度器(四层代理)实验要求
使用Nginx实现TCP/UDP调度器功能,实现如下功能: 后端SSH服务器两台Nginx编译安装时需要使用--with-stream,开启ngx_stream_core_module模块Nginx采用轮询的方式调用后端SSH服务器
实验环境
以下机器全部已经存在,无须再次配置主机名	IP地址	角色
server1(已存在)	eth0:192.168.99.254/24	客户端
proxy(已存在)	eth1:192.168.99.5/24	代理服务器
web1(已存在)	eth1:192.168.99.100/24	ssh服务器
web2(已存在)	eth1:192.168.99.200/24	ssh服务器
image-202410082133113331)部署nginx服务
支持4层TCP/UDP代理的Nginx服务器 1)部署nginx服务器
编译安装必须要使用--with-stream参数开启4层代理模块
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s stop
[root@proxy nginx-1.22.1]# rm -rf /usr/local/nginx/
[root@proxy nginx-1.22.1]# cd /root/lnmp_soft/nginx-1.22.1/
[root@proxy nginx-1.22.1]# yum -y install gcc make pcre-devel openssl-devel
[root@proxy nginx-1.22.1]# ./configure --with-stream                    #开启4层代理功能
[root@proxy nginx-1.22.1]# make && make install
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -V           #查看安装模块情况
nginx version: nginx/1.22.1
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-10) (GCC) 
configure arguments: --with-stream
2)配置Nginx服务
添加服务器池,实现四层代理功能1)修改nginx配置文件[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf    #配置写到http的上方即可
...stream {upstream backend {             #创建集群,名称为backendserver 192.168.99.100:22;  #后端SSH服务器IP和端口server 192.168.99.200:22;}server {               #调用集群listen 12345;       #Nginx代理监听的端口,可以自己定义proxy_pass backend; #调用backend集群}}
http {
.. ..
}
2)启动nginx
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx 3)客户端使用访问代理服务器测试轮询效果
[root@server1 ~]# ssh 192.168.99.5 -p 12345     #使用该命令多次访问查看轮询效果
[root@web1 ~]# exit
[root@server1 ~]# ssh 192.168.99.5 -p 12345
[root@web2 ~]#

一、Nginx反向代理(七层代理)


实验要求
使用Nginx实现Web反向代理功能,实现如下功能: 
    后端Web服务器两台,可以使用httpd实现
    Nginx采用轮询的方式调用后端Web服务器
    两台Web服务器的权重要求设置为不同的值
    最大失败次数为2,失败超时时间为30秒
实验环境
以下机器全部已经存在,无须再次配置

主机名    IP地址    角色
server1(已存在)    eth0:192.168.99.254/24    客户端
proxy(已存在)    eth1:192.168.99.5/24    代理服务器
web1(已存在)    eth1:192.168.99.100/24    web服务器
web2(已存在)    eth1:192.168.99.200/24    web服务器
image-20241008213058281

1)部署后端Web服务器
1)部署后端Web1服务器
后端Web服务器可以简单使用yum方式安装httpd实现Web服务,为了可以看出后端服务器的不同,可以将两台后端服务器的首页文档内容设置为不同的内容
[root@web1 ~]# yum -y install httpd
[root@web1 ~]# echo "web1" > /var/www/html/index.html
[root@web1 ~]# systemctl enable --now httpd

2)部署后端Web2服务器
[root@web2 ~]# yum -y install  httpd
[root@web2 ~]# echo "web2" > /var/www/html/index.html
[root@web2 ~]# systemctl enable --now httpd

3)使用proxy主机测试
[root@proxy ~]# curl 192.168.99.100
web1
[root@proxy ~]# curl 192.168.99.200
web2
2)配置Nginx代理服务器
添加服务器池,实现反向代理功能

之前proxy主机安装的nginx已经改过很多配置,避免实验冲突,先还原proxy主机的nginx,重新安装nginx
[root@proxy ~]# /usr/local/nginx/sbin/nginx  -s stop    #如果之前没有启动,可以不用执行停止的命令
[root@proxy ~]# rm -rf /usr/local/nginx/
[root@proxy ~]# cd /root/lnmp_soft/
[root@proxy lnmp_soft]# rm -rf nginx-1.22.1
[root@proxy lnmp_soft]# tar -xf nginx-1.22.1.tar.gz
[root@proxy lnmp_soft]# cd nginx-1.22.1/
[root@proxy nginx-1.22.1]# yum -y install gcc make pcre-devel openssl-devel
[root@proxy nginx-1.22.1]# ./configure 
[root@proxy nginx-1.22.1]# make && make  install    

1)修改nginx的配置文件
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...
http {
...
#使用upstream定义后端服务器集群,集群名称任意(如webserver)
#使用server定义集群中的具体服务器和端口
      upstream webserver {
         server 192.168.99.100:80;
         server 192.168.99.200:80;
        }
      server {
          listen       80;
          server_name  localhost;
          
          #charset koi8-r;
          
          #access_log  logs/host.access.log  main;
  
          location / {
              root   html;
              index  index.html index.htm;
              proxy_pass http://webserver;  #通过proxy_pass将用户的请求转发给webserver集群
          }
 ...
 
2)启动nginx
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx

3)使用真机浏览器做测试192.168.99.5,刷新可以看到网站的轮询效果,出现结果为 web1 或者 web2
3)配置upstream服务器集群池属性
1)设置权重
weight可以设置后台服务器的权重,权重越大任务的分配量就越大
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
.. ..
      upstream webserver {
         server 192.168.99.100:80 weight=2;
         server 192.168.99.200:80;
        }
      server {
 .. ..

2)重新加载配置并访问,可以看到web1的任务量增加
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload

真机浏览器测试http://192.168.99.5,不太明显
可以使用命令行测试
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web2
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1

3)设置健康检查max_fails可以设置后台服务器连不上的失败次数,fail_timeout可以设置后台服务器的失败超时时间,等待多长时间再次尝试连接
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...
      upstream webserver {
         server 192.168.99.100:80;
         server 192.168.99.200:80 max_fails=2 fail_timeout=30;
        }
      server {
 ...

4)重新加载配置并访问
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload

测试时,先将web2的httpd服务关闭
[root@web2 ~]# systemctl stop  httpd

使用真机命令行访问集群页面curl 192.168.99.5,只会显示web1的页面
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1

此时即使将web2的httpd服务开启也无效,因为要等待30秒
[root@web2 ~]# systemctl start  httpd
[root@server1 ~]# curl 192.168.99.5 #30秒之后再访问,web2会出现
web2
4)配置upstream服务器集群的调度算法
测试ip_hash
1)设置相同客户端访问相同Web服务器
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...
      upstream webserver {
         ip_hash;
         server 192.168.99.100:80;
         server 192.168.99.200:80;
        }
      server {
...
2)重新加载配置
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload

3)测试只会见到一个页面
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1
添加down标记
down标记可以让集群主机暂时不参与集群活动
[root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf
...
      upstream webserver {
         server 192.168.99.100:80;
         server 192.168.99.200:80 down;
        }
      server {
 ...
重新加载配置
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s reload

测试,只会见到web1
[root@server1 ~]# curl 192.168.99.5
web1
[root@server1 ~]# curl 192.168.99.5
web1

二、Nginx的TCP/UDP调度器(四层代理)


实验要求
使用Nginx实现TCP/UDP调度器功能,实现如下功能: 
    后端SSH服务器两台
    Nginx编译安装时需要使用--with-stream,开启ngx_stream_core_module模块
    Nginx采用轮询的方式调用后端SSH服务器
实验环境
以下机器全部已经存在,无须再次配置

主机名    IP地址    角色
server1(已存在)    eth0:192.168.99.254/24    客户端
proxy(已存在)    eth1:192.168.99.5/24    代理服务器
web1(已存在)    eth1:192.168.99.100/24    ssh服务器
web2(已存在)    eth1:192.168.99.200/24    ssh服务器
image-20241008213311333

1)部署nginx服务
支持4层TCP/UDP代理的Nginx服务器 

1)部署nginx服务器
编译安装必须要使用--with-stream参数开启4层代理模块
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -s stop
[root@proxy nginx-1.22.1]# rm -rf /usr/local/nginx/
[root@proxy nginx-1.22.1]# cd /root/lnmp_soft/nginx-1.22.1/
[root@proxy nginx-1.22.1]# yum -y install gcc make pcre-devel openssl-devel
[root@proxy nginx-1.22.1]# ./configure --with-stream                    #开启4层代理功能
[root@proxy nginx-1.22.1]# make && make install
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx -V           #查看安装模块情况
nginx version: nginx/1.22.1
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-10) (GCC) 
configure arguments: --with-stream
2)配置Nginx服务
添加服务器池,实现四层代理功能

 1)修改nginx配置文件
 [root@proxy nginx-1.22.1]# vim /usr/local/nginx/conf/nginx.conf    #配置写到http的上方即可
...
      stream {
        upstream backend {             #创建集群,名称为backend
            server 192.168.99.100:22;  #后端SSH服务器IP和端口
            server 192.168.99.200:22;
          }
         server {               #调用集群
            listen 12345;       #Nginx代理监听的端口,可以自己定义
            proxy_pass backend; #调用backend集群
          }
     }
http {
.. ..
}
2)启动nginx
[root@proxy nginx-1.22.1]# /usr/local/nginx/sbin/nginx 

3)客户端使用访问代理服务器测试轮询效果
[root@server1 ~]# ssh 192.168.99.5 -p 12345     #使用该命令多次访问查看轮询效果
[root@web1 ~]# exit
[root@server1 ~]# ssh 192.168.99.5 -p 12345
[root@web2 ~]#

相关文章:

一、Nginx反向代理(七层代理)二、Nginx的TCP/UDP调度器(四层代理)

一、Nginx反向代理(七层代理) 实验要求 使用Nginx实现Web反向代理功能,实现如下功能: 后端Web服务器两台,可以使用httpd实现Nginx采用轮询的方式调用后端Web服务器两台Web服务器的权重要求设置为不同的值最大失败次数为…...

CSS+JQuery 实现弹力球效果,碰到屏幕边框弹回

实现弹力球效果&#xff0c;碰到屏幕边框弹回&#xff0c;效果如下 代码如下&#xff1a; <img src"../image/ball.png" alt"" class"ball"> <style>.ball {position: fixed;top: 50vh;left: 50vw;width: 15vw;height: 15vw;border…...

shell编程规范和脚本变量

什么是shell 人和计算机内核之间的中介&#xff1a; 计算机的语言是二进制&#xff0c;把人类的语言翻译成计算机能够识别的语言&#xff0c;然后让内核来处理 内核完成之后要把结果反馈给用户&#xff0c;要把计算机的翻译成人类能够识别的语言 命令解释器&#xff0c;pyc…...

jspm美容院管理系统

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计…...

Prometheus结合K8s(二)使用

上一篇介绍了如何搭建 Prometheus结合K8s&#xff08;一&#xff09;搭建-CSDN博客&#xff0c;这章介绍使用 页面访问 kubectl get svc -n prom 看promeheus和granfana的端口访问页面 Prometheus 点击status—target&#xff0c;可以看到metrics的数据来源&#xff0c;即各…...

【虚幻引擎】UE5数字人开发实战教程

本套课程将会交大家如何去开发属于自己的数字人&#xff0c;包含大模型接入&#xff0c;流式输出&#xff0c;语音识别&#xff0c;语音合成&#xff0c;口型驱动&#xff0c;动画蓝图&#xff0c;语音唤醒等功能。 课程介绍视频如下&#xff1a; 【虚幻引擎】UE5 历时一个多月…...

深入分析:固定参考框架在RViz中的作用与对数据可视化的影响 ros ubuntu20.04

深入分析&#xff1a;固定参考框架在RViz中的作用与对数据可视化的影响 RViz (Robot Visualization) 是 ROS (Robot Operating System) 中一种重要的三维可视化工具&#xff0c;主要用于实时观察和分析传感器数据、机器人状态信息以及环境模型。RViz的核心功能之一是固定参考框…...

Android:时间选择器(最下面有效果图)

1.创建DateUtil类 /*** Created by wangshuai on 2024/11/19.*/ public class DateUtil {public final static String PATTERN_ALL"yyyy-MM-dd HH:mm:ss";public final static String PATTERN_DEFAULT"yyyy-MM-dd";/*** 获取当前时间* return yyyy-MM-dd*…...

第十六届蓝桥杯模拟赛(第一期)-c++/c

c/c蓝桥杯模拟赛题解&#xff0c;非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数&#xff0c;同时又是整数 a 的约数&#xff0c;则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题&#xff0c;你只需要算出结果后提…...

如何挑选路由器?需要看哪些参数?

挑选路由器时&#xff0c;选择合适的型号和参数对于确保家庭或办公网络的速度、稳定性和覆盖范围至关重要。以下是挑选路由器时需要考虑的关键参数和因素&#xff1a; 1. 无线标准 (Wi-Fi标准) 无线标准是衡量路由器性能的核心指标。不同的无线标准提供不同的速率、范围和技术…...

mysql-备份(二)

前章介绍了MySQL的内部数据结构btree&#xff0c;这章讲述mysql的备份 1&#xff1a;环境 ubuntu22.04 LST mysql5.7.42 or win10 mysql5.7.44 (这里图简单直接windows部署) download:https://downloads.mysql.com/archives/community/ 2:install 1> unzip mysql-5.7.44-w…...

Tailwind CSS 和 UnoCSS简单比较

UnoCSS 和 Tailwind CSS 都是流行的原子化 CSS 框架&#xff0c;但它们在设计理念、性能和使用方式上有一些重要的区别。下面是对它们的详细对比&#xff1a; 1. 概述 Tailwind CSS&#xff1a;Tailwind 是一个原子化的 CSS 框架&#xff0c;提供了大量的预定义类&#xff08;…...

unity3d————范围检测

目录 知识点一&#xff1a;什么是范围检测 知识点二&#xff1a;如何进行范围检测 问题&#xff1a; Physics.queriesHitTriggers 怎么查看是不是true&#xff1f; QueryTriggerInteraction.UseGlobal 参数意味着是否检测触发器将依据全局设置 Physics.queriesHitTrigge…...

修改this.$confirm的按钮位置、图标、文字及标题

在Vue.js项目中&#xff0c;this.$confirm 通常是基于某些UI库&#xff08;如Element UI或Ant Design Vue&#xff09;的对话框确认方法。 以下是基于Element UI的this.$confirm的用法示例。 在此之前&#xff0c;你的项目要已经安装了Element UI&#xff0c;如果没安装话就打…...

SQL MID() 函数详解

SQL MID() 函数详解 SQL 中的 MID() 函数是一个非常有用的字符串处理工具&#xff0c;它允许用户从字符串中提取特定位置的子字符串。这个函数在数据库查询和报告中特别有用&#xff0c;尤其是在需要从较长的文本字段中提取特定信息时。本文将详细介绍 MID() 函数的用法、参数…...

【蓝桥杯备赛】123(前缀和的复杂应用)

5. 前缀和的复杂应用 5.1. 123&#xff08;4 星&#xff09; 5.1.1. 题目解析 这道题仍然是求一段区间的和&#xff0c;很容易能够想到前缀和找规律&#xff1a; 1------------------1 号块 1 2----------------2 号块 1 2 3--------------3 号块 1 2 3 4------------4 号…...

MINES

MINES (m)6A (I)dentification Using (N)anopor(E) (S)equencing Tombo(v1.4) 命令在 MINES 之前执行&#xff1a; &#xff08;仅在 fast5 文件中尚未包含 fastq 时需要&#xff09; tombo preprocess annotate_raw_with_fastqs --fast5-basedir /fast5_dir/ --fastq-file…...

H.265流媒体播放器EasyPlayer.js H5流媒体播放器关于如何查看手机端的日志信息并保存下来

现今流媒体播放器的发展趋势将更加多元化和个性化。人工智能的应用将深入内容创作、用户体验优化等多个方面&#xff0c;带来前所未有的个性化体验。 EasyPlayer.js H.265流媒体播放器属于一款高效、精炼、稳定且免费的流媒体播放器&#xff0c;可支持多种流媒体协议播放&#…...

uni-app快速入门(十一)--常用JS API(上)

在前面学习了uni-app的布局、组件、路由等知识点以后&#xff0c;还要掌握uni-app的JS API ,也可以理解为基于uni-app的java script。本节介绍uni-app的request请求、文件上传、数据缓存、获取位置、获取系统信息、获取手机的网络状态、拨打电话API。 一、request请求 使用uni…...

Flink任务提交到yarn上slot数量为0的问题

现象&#xff1a;Flink提交到yarn上slot数量为0的问题 解决方法&#xff1a; 参考论坛上的方案&#xff0c;修改flink-conf.yaml文件都不管用 最终解决方法&#xff1a; $FLINK_HOME/lib 路径下有2个非.jar结尾的文件&#xff0c;把这几个文件移走之后&#xff0c;再启就可…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

微信小程序云开发平台MySQL的连接方式

注&#xff1a;微信小程序云开发平台指的是腾讯云开发 先给结论&#xff1a;微信小程序云开发平台的MySQL&#xff0c;无法通过获取数据库连接信息的方式进行连接&#xff0c;连接只能通过云开发的SDK连接&#xff0c;具体要参考官方文档&#xff1a; 为什么&#xff1f; 因为…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...