在这篇文章中,我们将为您详细介绍mod_jk1.2.32的JK状态pipe理器的内容,并且讨论关于statusworker在Web界面上没有显示worker的正确状态的相关问题。此外,我们还会涉及一些
在这篇文章中,我们将为您详细介绍mod_jk1.2.32的JK状态pipe理器的内容,并且讨论关于status worker在Web界面上没有显示worker的正确状态的相关问题。此外,我们还会涉及一些关于01 workerman之GatewayWorker框架简单使用、02 workerman之GatewayWorker简单的demo 实现两端发送消息、android-无法在WorkManager的Worker类中注入单例类、Apache httpd 2.2.x + mod_jk 1.2.30 + tomcat 6错误:在uri地图后处理中找不到名字为“XXXXX”的worker的知识,以帮助您更全面地了解这个主题。
本文目录一览:- mod_jk1.2.32的JK状态pipe理器(status worker)在Web界面上没有显示worker的正确状态
- 01 workerman之GatewayWorker框架简单使用
- 02 workerman之GatewayWorker简单的demo 实现两端发送消息
- android-无法在WorkManager的Worker类中注入单例类
- Apache httpd 2.2.x + mod_jk 1.2.30 + tomcat 6错误:在uri地图后处理中找不到名字为“XXXXX”的worker
mod_jk1.2.32的JK状态pipe理器(status worker)在Web界面上没有显示worker的正确状态
我的应用程序使用Apache , mod-jk和Tomcat进行负载均衡,这对于此工作正常工作。 work.properties :
worker.list=workerlist # Set properties for worker3 worker.worker3.type=ajp13 worker.worker3.host=xxxx worker.worker3.port=xx worker.worker3.lbfactor=4 worker.worker4.ping_mode=A worker.worker3.socket_timeout=30 worker.worker3.reply_timeout=30000 # Set properties for worker4 worker.worker4.type=ajp13 worker.worker4.host=xxxx worker.worker4.port=xx worker.worker4.lbfactor=4 worker.worker4.ping_mode=A worker.worker4.socket_timeout=30 worker.worker4.reply_timeout=30000 # Set properties for workerlist(lb) worker.workerlist.type=lb worker.workerlist.balance_workers=worker4,worker3 worker.workerlist.sticky_session=1 worker.list=jkstatus worker.jkstatus.type=status
会发生什么是当closuresworker4 (Tomcat)时, JK Status Manager ( http:// apachehost / jkstatus )的Web界面仍然显示worker4处于ACT和OK/IDLE状态,这是没有意义的,因为worker4是不再可用。 我没有看到在mod-jk.log中的任何错误消息。
但是,当我更改worker.properties只有不可用的worker4并再次尝试访问时,页面显示ERR Satte:
mod-jk.log显示:
如何使用Digital Ocean DNS和Nginx设置全局负载均衡?
负载平衡器中的自定义路由
Nginx或LVS的Node.js负载均衡?
Nginx加载barencer
避免Nginx解码proxy_pass上的查询参数(相当于AllowEncodedSlashes NoDecode)
[error] ajp_service::jk_ajp_common.c (2626): (worker4) connecting to tomcat Failed. [info] service::jk_lb_worker.c (1400): service Failed,worker worker4 is in error state [info] service::jk_lb_worker.c (1480): All tomcat instances are busy or in error state [error] service::jk_lb_worker.c (1485): All tomcat instances Failed,no more workers left
我的问题是:
根据Tomcat网站上的服务可用性评级 ,它说:“ OK(空闲):这名工作人员自上一次平衡器维护以来没有收到任何请求,默认情况下,平衡器维护每60秒运行一次,工作人员应该没问题,这个状态在1.2.24版本之前被称为N / A,我们不能确定 。 我所理解的是,mod-jk本身会自动保持连接。 那么为什么JK Status Manager在工作人员瘫痪的时候会提醒我呢? 维护不起作用或JK Status Manager网站无法正常工作?
除了JK Status Manager ,还有其他方法来实时监控工作人员的状态吗? 我的意思是如果一台服务器停机,我想马上知道。
是否必须显式设置ping_mode ?它是默认的“A”? 日志说: [warn] jk_map_handle_duplicates::jk_map.c (446): Duplicate key ''worker.worker4.ping_mode'' detected - prevIoUs value ''A'' will be overwritten with ''A''.
在ServiceMix集群4
在Nginx.conf.erb中使用Heroku服务器URL进行负载平衡
使用Nginx进行UDP转发
如何将Nginx用作Bluemix上的dynamic负载平衡代理服务器?
机架空间负载平衡器上的间歇性ssl证书错误
1)如果一名Tomcat工作人员失败,则直到下一次检查您的平衡器时才会发生任何事情。 因此显示OK / Idle。 60秒后应该变成Err状态。
2)有确定的其他工具,该页面只是一个信息,而不是形式管理。 最简单的方法是设置一个响应HTTP_200状态的servlet。 您可以从外部程序检查其可用性,即使用URL对象。
3)显示该消息,因为你在第7行(worker4而不是worker3)中的配置中有一个错字:
worker.worker4.ping_mode=A
总结
以上是小编为你收集整理的mod_jk1.2.32的JK状态pipe理器(status worker)在Web界面上没有显示worker的正确状态全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
01 workerman之GatewayWorker框架简单使用
1.GatewayWorker框架是什么?
GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端、即时IM服务端、游戏服务端、物联网、智能家居等等
GatewayWorker使用经典的Gateway和Worker进程模型。Gateway进程负责维持客户端连接,并转发客户端的数据给BusinessWorker进程处理,
BusinessWorker进程负责处理实际的业务逻辑(默认调用Events.php处理业务),并将结果推送给对应的客户端。
Gateway服务和BusinessWorker服务可以分开部署在不同的服务器上,实现分布式集群。GatewayWorker提供非常方便的API,
可以全局广播数据、可以向某个群体广播数据、也可以向某个特定客户端推送数据。配合Workerman的定时器,也可以定时推送数据。
总之就是一个基于workerman的socket框架
2.怎么下载使用?
3.基本环境搭建
点它进行启动 前提是你已经配置过PHP的环境变量 不然会启动失败应该 如果不会配置环境变量 请自行百度吧
启动后是这样的界面
4.如何在页面上连接这个socket服务
这里以js中的websocket为例
红线填服务器的地址和端口号 这个在GatewayWorker里看
然后刷新页面控制台中出现下面信息说明连接配置成功
02 workerman之GatewayWorker简单的demo 实现两端发送消息
前端代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
内容:<input type="text" name="msg" id="msg" value="" />
<button onclick="sendMsg()">发送</button>
<script src="http://libs.baidu.com/jquery/1.11.3/jquery.min.js"></script>
<script>
//创建websocket 对象
var ws = new WebSocket("ws://127.0.0.1:8282");
//当连接准备好时,则触发
ws.onopen = function(e) {
//绑定id
var fromid=getUrlParam(''fromid'');
var toid=getUrlParam(''toid'');
var message = ''{"type":"bind","fromid":"''+fromid+''","toid":"''+toid+''"}'';
ws.send(message);
};
//从服务器收到消息时,该监听器将被调用
ws.onmessage = function(e){
var message = JSON.parse(e.data);
console.log(message);
if(message.type == "say"){
alert(message.msg);
}
}
//当连接关闭时,则触发
ws.onclose = function(e) {
console.log(e);
};
//发送数据
function sendMsg(){
var fromid=getUrlParam(''fromid'');
var toid=getUrlParam(''toid'');
var msg=$("#msg").val();
var message = ''{"type":"say","fromid":"''+fromid+''","toid":"''+toid+''","msg":"''+msg+''"}'';
ws.send(message);
}
/**
* GET取值,用于接受?传值 可接收汉字 推荐使用
*/
function getUrlParam(name){
// 用该属性获取页面 URL 地址从问号 (?) 开始的 URL(查询部分)
var url = window.location.search;
// 正则筛选地址栏
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
// 匹配目标参数
var result = url.substr(1).match(reg);
//返回参数值
return result ? decodeURIComponent(result[2]) : null;
}
</script>
</body>
</html>
后端代码:
ps:修改后端代码后请重启服务端 wind上重启cmd窗口
<?php
/**
* This file is part of workerman.
*
* Licensed under The MIT License
* For full copyright and license information, please see the MIT-LICENSE.txt
* Redistributions of files must retain the above copyright notice.
*
* @author walkor<walkor@workerman.net>
* @copyright walkor<walkor@workerman.net>
* @link http://www.workerman.net/
* @license http://www.opensource.org/licenses/mit-license.php MIT License
*/
/**
* 用于检测业务代码死循环或者长时间阻塞等问题
* 如果发现业务卡死,可以将下面declare打开(去掉//注释),并执行php start.php reload
* 然后观察一段时间workerman.log看是否有process_timeout异常
*/
//declare(ticks=1);
use \GatewayWorker\Lib\Gateway;
/**
* 主逻辑
* 主要是处理 onConnect onMessage onClose 三个方法
* onConnect 和 onClose 如果不需要可以不用实现并删除
*/
class Events
{
/**
* 当客户端连接时触发
* 如果业务不需此回调可以删除onConnect
*
* @param int $client_id 连接id
*/
public static function onConnect($client_id)
{
// 向当前client_id发送数据
//Gateway::sendToClient($client_id, "Hello $client_id\r\n");
// 向所有人发送
//Gateway::sendToAll("$client_id login\r\n");
}
/**
* 当客户端发来消息时触发
* @param int $client_id 连接id
* @param mixed $message 具体消息
*/
public static function onMessage($client_id, $message)
{
$req_data = json_decode($message, true);
//绑定id
if($req_data[''type''] == ''bind''){
Gateway::bindUid($client_id, $req_data[''fromid'']);
$msg=''{"type":"say","fromid":"''.$req_data[''fromid''].''","toid":"''.$req_data[''fromid''].''","msg":"''+msg+''"}'';
$message=[
''type''=>''bind'',
''fromid''=>$req_data[''fromid''],
''toid''=>$req_data[''toid''],
''msg''=>''绑定成功''
];
Gateway::sendToUid($req_data[''fromid''], json_encode($message,JSON_UNESCAPED_UNICODE));
}
//发送消息
if($req_data[''type''] == ''say''){
$message=[
''type''=>''say'',
''fromid''=>$req_data[''fromid''],
''toid''=>$req_data[''toid''],
''msg''=>$req_data[''msg'']
];
Gateway::sendToUid($req_data[''toid''], json_encode($message,JSON_UNESCAPED_UNICODE));
}
}
/**
* 当用户断开连接时触发
* @param int $client_id 连接id
*/
public static function onClose($client_id)
{
// 向所有人发送
//GateWay::sendToAll("$client_id logout\r\n");
}
}
效果:
android-无法在WorkManager的Worker类中注入单例类
我正在研究MVVM体系结构,并且正在使用Dagger2进行数据注入.我面临的问题是,在Activity / Fragments中,@ Inject工作正常,但是在WorkManager的Worker类中,@ Inject在运行时给出空指针异常.我该如何解决?
以下是Worker类代码:
public class MySyncManager extends Worker {
@Inject
DataManager dataManager;
@Inject
SchedulerProvider schedulerProvider;
@NonNull
@Override
public WorkerResult doWork() {
CommonUtils.Log("usm_work_manager_1", "Work is Started.");
if(dataManager==null)
CommonUtils.Log("usm_work_manager", "Injector is NULL");
}
}
方法:
private void startTestSyncRequest() {
Constraints myConstraints = new Constraints.Builder()
.setrequiredNetworkType(NetworkType.CONNECTED)
.build();
OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(MySyncManager.class)
.setConstraints(myConstraints)
.setinitialDelay(1, TimeUnit.SECONDS) // wait for n seconds before starting service
.build();
WorkManager.getInstance()
.beginUniqueWork(Tags.TEST_WORK_NAME, ExistingWorkPolicy.REPLACE, workRequest)
.enqueue();
}
解决方法:
在工人阶级中注入领域
首先,您需要将您的worker类注入AppComponent内:
fun inject(syncItemWorker: SyncItemWorker)
然后在worker的doWork()中,您需要调用inject:
if(applicationContext is MyApp){
var daggerAppComponent= DaggerAppComponent.builder().application(applicationContext as MyApp).build()
daggerAppComponent.inject(this)
}
Apache httpd 2.2.x + mod_jk 1.2.30 + tomcat 6错误:在uri地图后处理中找不到名字为“XXXXX”的worker
使用两个Tomcat实例设置负载均衡器时出现以下错误:
[info] mod_jk.c(3189):mod_jk / 1.2.30 initialized [error] jk_uri_worker_map.c(506):在uri地图后期处理中找不到名字为“loadmanager”的工人。
以下是我的configuration设置:
httpd.conf更改
我如何不断地通知用户Perl CGI脚本的进度?
虚拟主机不能使用WAMP服务器
openssl_encrypt不被PHP识别
我如何使用Apache POI在Word文档中添加图像作为我的标题
渲染时/ Caught IOError处的TemplateSyntaxError:(13,''Permission denied'')
# Include mod_jk configuration file Include conf/mod_jk.conf
mod_jk.conf
LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile logs/mod_jk.log JkLogLevel info JkLogStampformat "[%a %b %d %H:%M:%s %Y]" JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories JkRequestLogFormat "%w %V %T" JkMount /TestLB1/ loadmanager JkMount /TestLB1/* loadmanager JkShmFile logs/jk.shm
workers.properties
worker.list=loadmanager worker.tomcat1.port=18081 worker.tomcat1.host=localhost worker.tomcat1.type=ajp13 worker.tomcat1.lbfactor=1 worker.tomcat2.port=28081 worker.tomcat2.host=localhost worker.tomcat2.type=ajp13 worker.tomcat2.lbfactor=1 worker.loadmanager.type=lb worker.loadmanager.balance_workers=tomcat1,tomcat2 worker.loadmanager.sticky_session=True
在Tomcat的server.xml中,我也将jvmRoute属性设置为Engine
<Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat1"> <Engine defaultHost="localhost" name="Catalina" jvmRoute="tomcat2">
两个Tomcat实例都可以正常运行,分别使用AJP端口18081和28081。
但是,启动Apache httpd.exe时,mod_jk日志文件总是显示上述错误,当我尝试通过http:// localhost / TestLB1访问我的Web应用程序时,什么都没有出现。
任何解决scheme
Nginx不会将Cookie传递给代理
包org.apache.cordova不存在android studio
内部服务器错误(500)在简单的CGI脚本
使用.htaccess将所有非www都redirect到www和http
试图修改标识列“ID”
得到了问题….问题是在我编辑我的worker.properties文件的文本编辑器,它增加了一些特殊的字符文件。 我发现他们,当我只在笔记本中打开文件。 删除所有不需要的字符后,完美的作品。
总结
以上是小编为你收集整理的Apache httpd 2.2.x + mod_jk 1.2.30 + tomcat 6错误:在uri地图后处理中找不到名字为“XXXXX”的worker全部内容。
如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。
今天关于mod_jk1.2.32的JK状态pipe理器和status worker在Web界面上没有显示worker的正确状态的讲解已经结束,谢谢您的阅读,如果想了解更多关于01 workerman之GatewayWorker框架简单使用、02 workerman之GatewayWorker简单的demo 实现两端发送消息、android-无法在WorkManager的Worker类中注入单例类、Apache httpd 2.2.x + mod_jk 1.2.30 + tomcat 6错误:在uri地图后处理中找不到名字为“XXXXX”的worker的相关知识,请在本站搜索。
本文标签: