worker ajp13属性详解

9 篇文章 0 订阅
8 篇文章 0 订阅
apache tomcat connector的网站老打不开,看不了官方的解释,以下应该是中文的翻译,摘自网上:

下表描述了ajp13worker接受的属性:

host:
侦听ajp13请求的Tomcat worker主机。

port:
Tomcat worker主机的侦听端口。

lbfactor:
当此Tomcat worker被用于一个负载平衡worker使用时,此属性将被使用。它定义了此worker的负载平衡权值。

cachesize:
当在多线程的web server(例如apache2.0、IIS 、Netscape)中使用JK时,此属性是有效的。如果将cachesize的值设置为较高的值,这些支持多线程的web server将获得很好的处理能力。如果此属性不被设置,则连接cache特性将失效。

cache_timeout:
本属性用于声明JK在cache中保留一个打开的socket的时间,它对减少web serer的线程数有所帮助。
使用cache_timeout的原因:
周所周知,一个身背重负的web server(例如apache)建立childs/threads来处理负载,而当负载减少时它将销毁无用的childs/threads。每个child在转发请求给Tomcat时要打开一个ajp13连接,而在Tomcat那一端也将建立一个ajp13线程与之通讯。但是问题出现在一个ajp13连接建立完成后,child没有及时的释放那个ajp13连接,由于web server1将保持它的childs/threads运行已处理高负载,即使childs/threads处理快速的静态内容,在Tomcat端也将积累很多的无用ajp13线程。

socket_keepalive:
当防火墙位于web server与Tomcat之间时,防火墙将尝试断开未激活的网络连接。此属性将告诉操作系统在未激活的连接中发送KEEP_ALIVE信息(发送间隔时间依赖于操作系统的设置,一般为120秒),这样将防止防火墙切断未激活的网络连接。
但此设置并不是万能_钥匙,它对于某些防火墙也无能为力。

socket_timeout:
此属性说明连接在未激活的状况下持续多久,web server将主动切断之。这是一个使Tomcat端的陈旧线程不致过多的好方法,但是也带来了在下一次请求到来时需要重新打开socket的开销。此属性与cache_timeout有类似的功效,但是它工作在non-cache模式。

connect_timeout:
web server在连接建立后将一个PING请求发送到ajp13协议的连接上。 此属性说明了web server等待PONG回应的时间(以ms为单位)。此属性在jk 1.2.6版本被增加进来,以求避免Tomcat的死机,Tomcat 3.3.2+, 4.1.28+ and 5.0.13+实现了对使用ajp13的 ping/pong的支持。此属性默认为失效的。

prepost_timeout:
web server在转发一个请求后将一个PING请求发送到ajp13协议的连接上。此属性说明了web server等待PONG回应的时间(以ms为单位)。此属性在jk 1.2.6版本被增加进来,以求避免Tomcat的死机,Tomcat 3.3.2+, 4.1.28+ and 5.0.13+实现了对使用ajp13的 ping/pong的支持。此属性默认为失效的。

reply_timeout:
此属性告诉web server在接到远端的Tomcat已死并实时的切换到集群中的另外一个Tomcat的回应之前等待一段时间。默认情况下web server将永远等待。属性值为web server要等待回应的时间(以ms为单位),所以如果具有运行时间较长的servlet时设置其值要小心。此属性在jk 1.2.6版本被增加进来,以求避免Tomcat的死机和在支持ajp13的servlet引擎上发生的问题。此属性默认为失效的。

recovery_options:
此属性说明了web server在检测到Tomcat失败后如何进行恢复工作。默认情况下,web server将转发请求给处于负载平衡模式中的另一个Tomcat。属性值为0,说明全部恢复;属性值为1,说明如果在Tomcat接到请求后出现失败状况,则不进行恢复;属性值为2,说明如果在Tomcat发送http头给客户端后出现失败状况,则不进行恢复;属性值为3,说明如果在Tomcat接到请求后出现失败状况或者在Tomcat发送http头给客户端后出现失败状况,则不进行恢复。此属性在jk 1.2.6版本被增加进来,以求避免Tomcat的死机和在支持ajp13的servlet引擎上发生的问题。此属性默认为全部恢复。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Python 中,`threading` 模块提供了一种实现多线程编程的方式。在使用 `threading` 模块时,可以创建多个线程并行地执行不同的任务,从而提高程序的效率和响应速度。 `threading` 模块中的 `Thread` 类是创建线程的基本单元。创建一个线程需要定义一个函数并将其作为参数传递给 `Thread` 类的构造函数。这个函数被称为线程的 `worker` 函数。`worker` 函数是运行在一个单独的线程中的函数,可以执行任意的操作,包括计算、输入输出、网络通信等等。 下面是一个例子,演示了如何使用 `threading` 模块创建一个简单的线程,其中 `worker` 函数是一个简单的计数器: ```python import threading counter = 0 def worker(): global counter counter += 1 print('Worker count:', counter) threads = [] for i in range(5): t = threading.Thread(target=worker) threads.append(t) t.start() ``` 在上面的代码中,我们首先定义了一个全局变量 `counter`,然后定义了一个 `worker` 函数,该函数会将 `counter` 的值加 1 并输出当前的计数器值。接下来,我们创建了 5 个线程,并让它们都运行 `worker` 函数。 在运行这个程序时,我们会看到输出的计数器值可能不是 1、2、3、4、5 这样的连续序列,而是一些随机的数字。这是因为多个线程同时对计数器进行了操作,而且这些操作之间是相互竞争的,所以最终的结果是不确定的。这也是多线程编程需要特别注意的地方之一。 总的来说,`worker` 函数是在一个单独的线程中运行的函数,可以执行任意的操作。在实际应用中,我们需要根据具体的需求来编写 `worker` 函数,从而实现多线程编程的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值