GVKun编程网logo

mod_jk1.2.32的JK状态pipe理器(status worker)在Web界面上没有显示worker的正确状态

26

在这篇文章中,我们将为您详细介绍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的正确状态

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框架简单使用

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 实现两端发送消息

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类中注入单例类

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

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的相关知识,请在本站搜索。

本文标签: