RPC工程 supervisord系统管理服务器进程
来源:互联网 发布:超级网络编辑器 编辑:程序博客网 时间:2024/06/06 06:59
设计实现方式: 抽象工厂模式+XML+HTTP流响应方式
描述:管理服务器上的进程状态信息,进程关闭,开启,日志信息等
调用代码测试类:
200并发篱栅压测final static String api = "http://115.29.163.148:9001/RPC2"; final static String userName = "zhubo"; final static String password = "123456"; final static String namespace = "supervisor"; //初始化 static XmlRpcFactory xmlRpcFactory = null; public static void main(String[] args) throws InterruptedException { xmlRpcFactory = new SimpleXMLRpcFactory(); int size = 200; CyclicBarrier cb = new CyclicBarrier(size); ExecutorService service = Executors.newFixedThreadPool(size); System.out.println(new Date()); for(int i =0;i<size;i++){ service.execute(new rpcThread(cb)); } service.shutdown(); //调用API while(true){ if(!service.isTerminated()){ Thread.sleep(1000); }else{ System.out.println(new Date()); break; } } //监控请求成功,失败,异常记录 for(SimpleXMLPRC rpc :SimpleXMLRpcFactory.getRegistries()) { Map<String, Set<XmlRpcCount>> maprpc = rpc.getCounter(); System.out.println(maprpc.get(Constants.SUCCESS).size()); //System.out.println(JSON.toJSONString(maprpc.get(Constants.SUCCESS)));//成功 System.out.println(JSON.toJSONString(maprpc.get(Constants.FAILURE)));//失败 System.out.println(JSON.toJSONString(maprpc.get(Constants.ERROR)));//异常 AtomicInteger atomicInteger = new AtomicInteger(0); for(XmlRpcCount xmlRpcCount :maprpc.get(Constants.SUCCESS)){ atomicInteger.incrementAndGet(); System.out.println(atomicInteger.get()+"---"+JSON.toJSONString(xmlRpcCount)); } } } static class rpcThread implements Runnable{ private CyclicBarrier cb; public rpcThread( CyclicBarrier cb ){ this.cb = cb; } @Override public void run() { try { cb.await(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (BrokenBarrierException e) { // TODO Auto-generated catch block e.printStackTrace(); } // TODO Auto-generated method stub SimpleXMLPRC simpleXMLPRC =(SimpleXMLPRC) xmlRpcFactory.getXmlRpc(api, userName, password, namespace); simpleXMLPRC.getAPIVersion(); com.yuntai.yw.supervisord.tools.Process process = simpleXMLPRC.getProcessInfo("dubbo:hs-med-service-queue"); } }
JSON样板数据
{"description":"pid 31164, uptime 0:00:05","exitStatus":0,"group":"dubbo","logFile":"/tmp/supervisor/hs-med-service-queue.log","name":"hs-med-service-queue","pid":31164,"start":"1484534147","stateName":"RUNNING","stdoutFile":"/tmp/supervisor/hs-med-service-queue.log","stop":"1484534146"}
进程Process类
字段
API:
资源地址:http://download.csdn.net/detail/pajiakuo/9756525
0 0
- RPC工程 supervisord系统管理服务器进程
- Python Supervisord 进程管理工具
- 用Supervisord管理进程
- Python Supervisord 进程管理工具
- supervisord管理进程详解
- Supervisord守护Python进程
- 使用supervisord管理进程
- supervisord管理进程
- supervisord 进程异常报警
- supervisord管理进程详解
- 用Supervisord管理进程
- Python-进程管理Supervisord
- 用Supervisord管理Python进程
- 用Supervisord管理Python进程
- 用Supervisord管理Python进程
- 用Supervisord管理Python进程
- 使用supervisord管理python进程
- python使用supervisord管理进程
- C++ Primer 第一章学习(1.1)
- mysql 影响性能的配置参数
- 宅米网性能优化实践(内附小强点评)
- SDN 入门介绍
- j 数组去重
- RPC工程 supervisord系统管理服务器进程
- 程序员写博客的重要性!
- JAVA 入坑教程 | 章节三 变量类型
- 进入IT行业的第一篇博客,以此开始自己的编程之旅
- Java中的异常处理机制的简单原理和应用
- 自动化测试基础-断言(Assert)使用方法
- 谷歌反人类的gradle解剖一百遍
- DELL服务器安装redhat6.5(跳坑)
- win7 faster rcnn matlab版本配置