`
limingnihao
  • 浏览: 1820862 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Apache学习之二、HTTPD的负载均衡

 
阅读更多

第2章 负载均衡

(黎明你好原创作品,转载请注明)

2.1 Tomcat链接方式

        首先我们先介绍一下为什么要让http server与Tomcat之间进行连接。事实上Tomcat本身已经提供了HTTP服务,该服务默认的端口是8080,装好tomcat后通过8080端口可以直接使用Tomcat所运行的应用程序,你也可以将该端口改为80。既然Tomcat本身已经可以提供这样的服务,我们为什么还要引入Apache或者其他的一些专门的HTTP服务器呢?原因有下面几个:

        1. 提升对静态文件的处理性能。

        2. 利用Web服务器来做负载均衡以及容错。

        3. 无缝的升级应用程序。

        这三点对一个web网站来说是非常之重要的,我们希望我们的网站不仅是速度快,而且要稳定,不能因为某个Tomcat宕机或者是升级程序导致用户访问不了,而能完成这几个功能的、最好的HTTP服务器也就只有apache的http server了,它跟tomcat的结合是最紧密和可靠的。

        默认情况下,Tomcat在server.xml中配置了两种连接器:

        第一个连接器监听8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。

        第二个连接器监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

        两种端口可以同时开,也可以开一个。例如我们使用apache通过ajp进行负载均衡配置时,可以关掉tomcat的http8080端口以防止可以被单独访问。

        Web客户访问Tomcat服务器上JSP组件的两种方式如图:

 

 

        使用http方式,配置文件

<Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

        使用ajp方式,配置文件

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

 

2.2 mod_proxy

        mod_proxy_balancer是apache httpd自带的负载平衡支持。其优点可以根据实际的运行时机器的环境来决定负载均衡的策略。实现Session在node上进行共享传递。

 

2.2.1 加载so库

#mod_proxy_blancer
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so  
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so 
LoadModule proxy_http_module modules/mod_proxy_http.so 
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so

 

2.2.2 http方式

<Proxy balancer://mycluster>
    BalancerMember http://127.0.0.1:8080 loadfactor=3
    BalancerMember http://127.0.0.1:7080 loadfactor=3
    ProxySet lbmethod=byrequests
</Proxy>
ProxyRequests Off
ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse /test balancer://mycluster/  

 

        实现负载均衡的原理为:假设Apache接收到http://127.0.0.1 /test请求,由于该请求满足ProxyPass条件(其URL前缀为“/"),该请求会 被分发到后台某一个BalancerMember。譬如该请求可能会转发到http://127.0.0.1:8080/进行处理。当第二个满足条件的URL请求过来时,该请求可能会被分发到另外一台BalancerMember,譬如,可能会转发到 http://127.0.0.1:7080/如此循环反复,便实现了负载均衡的机制。

        loadfactor表示:后台服务器负载到由Apache发送请求的权值,该值默认为1,可以将该值设置为1到100之间的任何值。以上面的配置为例,进行4此请求时,则有3次连续的这样请求被负载到BalancerMember为http://127.0.0.1:8080/的服务器;有1次被负载到BalancerMember为http://127.0.0.1:7080/的服务器。

        lbmethod表示:负载载均衡策略。 

        lbmethod=byrequests 按照请求次数均衡(默认) 

        lbmethod=bytraffic 按照流量均衡 

        lbmethod=bybusyness 按照繁忙程度均衡(总是分配给活跃请求数最少的服务器)

        ProxyPass表示:所有的test请求都会重定向到balancer://mycluster/处理。balancer是内置负载。

        ProxyPassReverse表示:反向代理,也就是将所有的请求反向代理到负载均衡后的应用url路径中。

        stickysession表示:进行Session复制使用。

 

2.2.3 AJP方式

        tomcat提供了ajp协议和httpd通信。当不想tomcat的8080端口开放时,可以使用此方式,配置文件:

<Proxy balancer://mycluster>
    BalancerMember ajp://127.0.0.1:8009 loadfactor=2 route=tomcat1
    BalancerMember ajp://127.0.0.1:7009 loadfactor=2 route=tomcat2
    ProxySet lbmethod=byrequests
</Proxy>
ProxyRequests Off
ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse /test balancer://mycluster/  

 

2.2.4 热备份

        热备份的实现很简单,只需添加 status=+H 属性,就可以把某台服务器指定为备份服务器:

        此时请求总是流向 8080这个url ,一旦8080挂掉, Apache会检测到错误并把请求分流给7080。Apache会每隔几分钟检测一下8080的状况,如果8080恢复,就继续使用8080。

<Proxy balancer://mycluster>
    BalancerMember http://127.0.0.1:8080
    BalancerMember http://127.0.0.1:7080 status=+H 
    ProxySet lbmethod=byrequests
</Proxy>
ProxyRequests Off
ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID nofailover=Off
ProxyPassReverse /test balancer://mycluster/  

 

2.2.5 虚拟主机

        配置文件

<VirtualHost *:80>  
    ServerAdmin limingnihao@iteye.com
    ServerName localhost  
    ServerAlias localhost  
    <Proxy balancer://mycluster>
        BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=tomcat1
        BalancerMember ajp://127.0.0.1:7009 loadfactor=1 route=tomcat2
        ProxySet lbmethod=bytraffic
    </Proxy>
    ProxyRequests Off
    ProxyPass /test balancer://mycluster/ stickysession=JSESSIONID nofailover=Off  
    ProxyPassReverse /test balancer://mycluster/  
    ErrorLog "logs/error.log"  
    CustomLog "logs/access.log" common  
</VirtualHost>

 

2.2.6 监控功能

        可添加以下配置,可以查看监控页面。通过访问:http://127.0.0.1/balancer-manager。

配置文件

<Location /balancer-manager>   
    SetHandler balancer-manager 
    Order Allow,Deny
    Allow from all 
</Location>

 

2.3 mod_jk

        Tomcat提供了专门的JK插件来负责Tomcat和HTTP服务器的通信。应该把JK插件安置在对方的HTTP服务器上。当HTTP服务器接收到客户请求时,它会通过JK插件来过滤URL,JK插件根据预先配置好的URL映射信息,决定是否要把客户请求转发给Tomcat服务器处理。例如预先配置好所有"/*.jsp"形式的URL都由Tomcat服务器来处理

        Tomcat提供了不同的JK插件的实现模块。常用的JK插件有:

        与Apache HTTPD服务器集成:mod_jk.so

        与Windows IIS服务器集成:isapi_redirect.dll

 

2.3.1 Workers.properties

        Workers实际上属于Tomcat的链接器(Connector),代表了一个Tomcat实例,这个实例代表了由某种web服务器来执行 servelet程序。举例来说,我们可以使用某个服务器,例如apache 来把servelet请求转递Tomcat进程(worker)来进行后台处理。

        这样我们就可以通过配置多个 Worker,让不同的请求能够被不同的Worker处理,这些Worker可以提供不同的开发环境,使得所有开发者可以共享一个服务器而每个人都拥有自己的Worker。

        想要提供负载平衡,只要在同一台机器上运行多个Tomcat Worker并且能够在这些Worker之间分布Web请求。

        Tomcat Workers都定义在一个叫做workers.properties属性文件之中,并且workers的说明告诉应该如何使用它们。

 

2.3.1.1 全局配置项

指令 默认 说明
worker.list ajp13 由逗号分离开的worker名称列表.
worker.maintain 60 辅助连接池保持间隔,以秒为单位。

 

2.3.1.2 链接指令

 

可配置一个通用的,然后每个work进行继承。

指令 默认 说明
type ajp13 指定Tomcat服务器 与Apache之间的通信协议
host localhost Tomcat主机名或 IP 地址。
port 8009 Tomcat侦听端口号。AJP13的默认端口是8009.
socket_connect_timeout socket_timeout*1000 套接字超时时间(毫秒为单位)。
socket_keepalive false 在未激活的连接中发送KEEP_ALIVE信息(发送间隔时间依赖于操作系统的设置,一般为120秒)
ping_mode -

探测tomcat的状态策略。

C(content):链接模式,最后一次链接判断是否超时。connect_timeout定义时间。若未定义使用ping_timeout。

P(prepost):请求模式,通过每次请求判断是否超时。prepost_timeout定义时间。若未定义使用ping_timeout。

I(interval):间隔模式,定期检测链接是否超时。connection_ping_interval间隔时间。ping_timeout超时时间。

A:以上所有的探测策略都将开启。

connection_pool_size   JK会维护多个长连接做为一个池。它被用来设置每个WebServer(Apache)子进程的最大连接数。
connection_pool_minsize (pool+1)/2 连接池中维护最小的连接数。
connection_pool_timeout 0 在连连池中维护的非活动连接连续多少秒后被释放。如果为0,则不释放。
connection_acquire_timeout retries*retry_interval 获取接连的超时。
lbfactor 1 负载平衡器权值

 

 

2.3.1.3 负载均衡设置

指令 默认 说明
balance_workers   逗号分隔的worker列表
sticky_session true 负载喷发采用Session粘贴机制,按SessionID喷发请求。为了保障同一SessionID的请求被分发到同一台服务器上。
sticky_session_force false 如果为True, SessionID并不合法时则返回500错误,否则,丢掉Session并转发到另外的机器上。

 

 

2.3.1.4 实例

# Define two status worker:
# - jk-status for read-only use
# - jk-manager for read/write use
worker.list=jk-status
worker.jk-status.type=status
worker.jk-status.read_only=true

worker.list=jk-manager
worker.jk-manager.type=status

# We define a load balancer worker
# with name "balancer"
worker.list=balancer
worker.balancer.type=lb
worker.balancer.error_escalation_time=0
worker.balancer.max_reply_timeouts=10
worker.balancer.sticky_session=true
worker.balancer.sticky_session_force=true  

# Now we add members to the load balancer First member is "tomcat1", most attributes are inherited from the template "worker.template".
worker.balancer.balance_workers=tomcat1
worker.tomcat1.reference=worker.template
worker.tomcat1.host=127.0.0.1
worker.tomcat1.port=8009
worker.tomcat1.activation=A

# Second member is "tomcat2", most attributes are inherited from the template "worker.template".
worker.balancer.balance_workers=tomcat2
worker.tomcat2.reference=worker.template
worker.tomcat2.host=127.0.0.1
worker.tomcat2.port=7009
worker.tomcat2.activation=A

# Finally we put the parameters
worker.template.type=ajp13
worker.template.socket_connect_timeout=5000
worker.template.socket_keepalive=true
worker.template.ping_mode=A
worker.template.ping_timeout=10000
worker.template.connection_pool_minsize=0
worker.template.connection_pool_timeout=600
worker.template.reply_timeout=300000
worker.template.recovery_options=3

 

2.3.2 uriworkermap.properties

/*.do=balancer
/*.jsp=balancer

#/*.gif=balancer
#/*.jpg=balancer
#/*.png=balancer
#/*.css=balancer
#/*.js=balancer
#/*.htm=balancer
#/*.html=balancer
#/*.txt=balancer


# Optionally filter out all .jpeg files inside that context
# For no mapping the url has to start with exclamation (!)

!/servlets-examples/*.jpeg=lb

#
# Mount jkstatus to /jkmanager
# For production servers you will need to
# secure the access to the /jkmanager url
#
/jk-manager=jk-manager
/jk-status=jk-status

 

 

2.3.3 httpd.conf

        需要在中添加httpd的配置文件中加载jk的配置文件。

# 加载jk配置文件
#Include conf/mod_jk.conf

 

2.3.4 mod_jk.conf

# a versioned file name.
LoadModule jk_module modules/mod_jk_2.2_32.so
<IfModule jk_module>
    JkWorkersFile conf/workers.properties
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkShmFile logs/mod_jk.shm
    # JkOptions +RejectUnsafeURI
    # JkStripSession On
    JkWatchdogInterval 60
    <Location /jk-status>
        # Inside Location we can omit the URL in JkMount
        JkMount jk-status
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    <Location /jk-manager>
        # Inside Location we can omit the URL in JkMount
        JkMount jk-manager
        Order deny,allow
        Deny from all
        Allow from 127.0.0.1
    </Location>
    JkMountFile conf/uriworkermap.properties
JkMount /* balancer
    # JkUnMount /myapp/static/* *
    # JkUnMount /myapp/images/* balancer
    # SetEnvIf REQUEST_URI "\.(htm|html|css|gif|jpg|js)$" no-jk
    # SetEnvIf Request_URI "/transactions/" JK_REPLY_TIMEOUT=600000
    # SetEnvIf Request_URI "/reports/" JK_REPLY_TIMEOUT=0
</IfModule>

 

 

2.3.5 编译Linux版本JK

        在linux自行编译jk时,需要以下步骤:

        1.解压tomcat-connectors-1.2.37-src.tar.gz

        2.指定httpd的apxs文件。他会自动将mod_jk.do生成到httpd的modules下。

./configure --with-apxs=/opt/apache/httpd/bin/apxs

 

2.4 Session同步方式

2.4.1 sticky模式

        前端balancer可实现sticky模式的session同步功能。利用负载均衡器的sticky模式的方式把所有同一session的请求都发送到相同的Tomcat节点。这样不同用户的请求就被平均分配到集群中各个tomcat节点上,实现负载均衡的能力。这样做的缺点是没有灾难恢复的能力。一旦一个节点发生故障,这个节点上所有的session信息全部丢失;同一用户同一session只和一个webServer交互,一旦这个webserver发生故障,本次session将丢失,用户不能继续使用。

 

2.4.2 复制模式

        利用Tomcat session复制的机制使得所有session在所有Tomcat节点中保持一致。当一个节点修改一个session数据的时候,该节点会把这个 session的所有内容序列化,然后广播给所有其它节点。这样当下一个用户请求被负载均衡器分配到另外一个节点的时候,那个节点上有完备的 session信息可以用来服务该请求。这种做法的问题是对session哪怕有一点点修改,也要把整个sessions数据全部序列化 (serialize),还要广播给集群中所有节点,不管该节点到底需不需要这个session。这样很容易会造成大量的网络通信,导致网络阻塞。一般采 用这种方式,当Tomcat节点超过4个时候,整个集群的吞吐量就不能再上升了;

        此方式是通过tomcat本身提供的功能,只需要修改server.xml文件

        (1)修改Engine节点信息: <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">

        (2)去掉<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> 的注释符

        (3)web.xml中增加 <distributable/>

 

2.5 Linux部署常见问题

        1.Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??

        加载mod_slotmem_shm.so就可以了。

 

        2.BalancerMember Can't find 'byrequests' lb method

        三种模式,需要加载三个so:

        mod_lbmethod_bybusyness.so

        mod_lbmethod_byrequests.so

        mod_lbmethod_bytraffic.so

 

  • 大小: 4.3 KB
1
1
分享到:
评论
2 楼 Mybeautiful 2015-07-15  
参考博主的JK连接配置负载均衡成功
1 楼 yuanmouren1hao 2015-01-07  
学习了,,,

相关推荐

    基于Springboot + Mybatis框架实现的一个简易的商场购物系统.zip

    基于springboot的java毕业&课程设计

    用于 CNO 实验的 MATLAB 脚本.zip

    1.版本:matlab2014/2019a/2021a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于卷积神经网络的垃圾分类.zip

    卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。 全连接层(Fully Connected Layer): 在CNN的末端,通常会有几层全连接层(也称为密集层或线性层)。这些层中的每个神经元都与前一层的所有神经元连接。 全连接层通常用于对提取的特征进行分类或回归。 训练过程: CNN的训练过程与其他深度学习模型类似,通过反向传播算法和梯度下降(或其变种)来优化网络参数(如滤波器权重和偏置)。 训练数据通常被分为多个批次(mini-batches),并在每个批次上迭代更新网络参数。 应用: CNN在计算机视觉领域有着广泛的应用,包括图像分类、目标检测、图像分割、人脸识别等。 它们也已被扩展到处理其他类型的数据,如文本(通过卷积一维序列)和音频(通过卷积时间序列)。 随着深度学习技术的发展,卷积神经网络的结构和设计也在不断演变,出现了许多新的变体和改进,如残差网络(ResNet)、深度卷积生成对抗网络(DCGAN)等。

    基于 Yolov5的检测模型

    运行程序 1、测试.pt模型文件 1.在pycharm里打开下载的yolov5环境,在根目录打开runs文件,找到trains文件中的best_1.pt即为训练最优模型。 2.在根目录找到 detect.py 文件,修改代码221行默认路径至模型路径,222行路径更改至所需测试图片路径,点击运行。 2、测试.onnx模型文件 1.在pycharm里打开下载的yolov5环境,在根目录打开 export.py 文件,修改默认输出模型类型为onnx,选择best_1.pt输入模型,点击运行。 2.在根目录找到detect_onnx.py文件,修改代码221行默认路径至模型路径,222行路径更改至所需测试图片路径,点击运行。

    郁郁苍苍---基于SpringBoot的多人社区项目.zip

    基于springboot的java毕业&课程设计

    华为FusionAccess桌面云解决方案基于华为FsionCompute云平台的一款虚拟化桌面应用

    华为桌面云解决方案 桌面云架构VDI和IDV VDI:虚拟桌面架构。特点是计算和数据都在云端,集中管理,集中运行。 IDV:智能桌面虚拟化。特点是镜像集中管理,计算和数据还是在终端,集中管理,分散运行。 (从方案的主推厂商看, 业界华为、思杰、Vmware(IDC国内桌面云市场份额排名前三)都主推VDI,目前推IDV架构的只有锐捷、噢易等少数国内厂商)

    一个基于SpringBoot+Editor.md的 API接口文档.zip

    基于springboot的java毕业&课程设计

    基于OpenCV的交通路口红绿灯控制系统设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip

    基于OpenCV的交通路口红绿灯控制系统设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 基于OpenCV的交通路口红绿灯控制系统设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip基于OpenCV的交通路口红绿灯控制系统设计 python毕业设计-源码+全部数据+使用文档(高分项目).zip基于Op

    课设毕设基于SSM的知识产权管理系统源码可运行.zip

    课设毕设基于SSM的知识产权管理系统源码可运行.zip

    基于卷积神经网络的人脸识别.zip

    卷积神经网络(Convolutional Neural Networks, CNNs 或 ConvNets)是一类深度神经网络,特别擅长处理图像相关的机器学习和深度学习任务。它们的名称来源于网络中使用了一种叫做卷积的数学运算。以下是卷积神经网络的一些关键组件和特性: 卷积层(Convolutional Layer): 卷积层是CNN的核心组件。它们通过一组可学习的滤波器(或称为卷积核、卷积器)在输入图像(或上一层的输出特征图)上滑动来工作。 滤波器和图像之间的卷积操作生成输出特征图,该特征图反映了滤波器所捕捉的局部图像特性(如边缘、角点等)。 通过使用多个滤波器,卷积层可以提取输入图像中的多种特征。 激活函数(Activation Function): 在卷积操作之后,通常会应用一个激活函数(如ReLU、Sigmoid或tanh)来增加网络的非线性。 池化层(Pooling Layer): 池化层通常位于卷积层之后,用于降低特征图的维度(空间尺寸),减少计算量和参数数量,同时保持特征的空间层次结构。 常见的池化操作包括最大池化(Max Pooling)和平均池化(Average Pooling)。 全连接层(Fully Connected Layer): 在CNN的末端,通常会有几层全连接层(也称为密集层或线性层)。这些层中的每个神经元都与前一层的所有神经元连接。 全连接层通常用于对提取的特征进行分类或回归。 训练过程: CNN的训练过程与其他深度学习模型类似,通过反向传播算法和梯度下降(或其变种)来优化网络参数(如滤波器权重和偏置)。 训练数据通常被分为多个批次(mini-batches),并在每个批次上迭代更新网络参数。 应用: CNN在计算机视觉领域有着广泛的应用,包括图像分类、目标检测、图像分割、人脸识别等。 它们也已被扩展到处理其他类型的数据,如文本(通过卷积一维序列)和音频(通过卷积时间序列)。 随着深度学习技术的发展,卷积神经网络的结构和设计也在不断演变,出现了许多新的变体和改进,如残差网络(ResNet)、深度卷积生成对抗网络(DCGAN)等。

    基于springboot-mqtt的温度、湿度、六氟化硫浓度实时监控系统.zip

    基于springboot的java毕业&课程设计

    房地产企业财务风险的成因与防范对策-以万科集团为例.docx

    房地产企业财务风险的成因与防范对策-以万科集团为例.docx

    基于SpringBoot框架的中小企业完全开源的ERP.zip

    基于springboot的java毕业&课程设计

    基于springboot的动漫弹幕网站.zip

    基于springboot的java毕业&课程设计

    基于SpringBoot + Vue的电影售票及影院管理系统.zip

    基于springboot的java毕业&课程设计

    基于Python+定向爬虫的商品比价系统的实现的设计与实现+详细文档+全部资料(高分毕业设计).zip

    基于Python+定向爬虫的商品比价系统的实现的设计与实现+详细文档+全部资料(高分毕业设计).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 【备注】 1、该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。基于Python+定向爬虫的商品比价系统的实现的设计与实现+详细文档+全部资料(高分毕业设计).zip本资源中的源码都是经过本地编译过可运行的,评审分达到95分以上。资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求。

    MySQL8.4.0 LTS(mysql-8.4.0-solaris11-sparc-64bit.tar)

    MySQL8.4.0 LTS(mysql-8.4.0-solaris11-sparc-64bit.tar)适用于Oracle Solaris 11 (SPARC)

    CVE-2018-3191 反弹shell

    反弹shell

    植物保护-深度学习-YOLOv5-病虫害识别训练数据集

    植物保护-深度学习-YOLOv5-病虫害识别训练数据集是一个精心策划的数据集,旨在为农业科技领域的研究人员提供强大的工具,以改善病虫害的识别和管理工作。数据集包含了10000张高清图像,覆盖了10余种常见的植物病虫害,每一张图像都经过了专业标注,确保了数据的质量和准确性。 为了进一步提升模型的泛化能力和鲁棒性,数据集经过了数据增强处理,包括随机旋转、翻转、缩放和裁剪等多种变换,从而扩大了训练数据的多样性。这种增强处理有助于模型学习到更多的特征,提高其在实际应用中的表现。 此数据集适用于深度学习框架YOLOv5,它是一个高效的目标检测模型,能够实时地识别和定位图像中的病虫害。通过使用这个数据集,研究人员可以训练和优化YOLOv5模型,使其在病虫害的早期检测和防治中发挥关键作用。 植物保护-深度学习-YOLOv5-病虫害识别训练数据集的推出,不仅能够促进农业科技的发展,还能够帮助农业生产者更有效地管理作物健康,减少农药使用,保护环境,实现可持续农业。

    MySQL8.4.0 LTS(mysql-server-8.4.0-1ubuntu22.04-amd64.deb-bundle)

    MySQL8.4.0 LTS(mysql-server_8.4.0-1ubuntu22.04_amd64.deb-bundle.tar)适用于Ubuntu 22.04 Linux (x86, 64-bit)

Global site tag (gtag.js) - Google Analytics