通過Java程式碼獲取Zookeeper伺服器狀態
有的時候,我們想知道Zookeeper叢集中哪些伺服器屬於Leader,哪些屬於Follower,哪些屬於Observer。
通過命令,可以很容易的獲取到Zookeeper伺服器的狀態:
[[email protected] bin]$ ./zkServer.sh status
JMX enabled by default
Using config: /home/hadoop/apache/zookeeper-3.4.5/bin/../conf/zoo.cfg
Mode: follower
下面我們用Java程式碼來獲取Zookeeper伺服器的狀態:
public class ServerStatus { @Test public void serverStatus() throws IOException { String host = "10.0.1.84"; int port = 2181; String cmd = "stat"; Socket sock = new Socket(host, port); BufferedReader reader = null; try { OutputStream outstream = sock.getOutputStream(); // 通過Zookeeper的四字命令獲取伺服器的狀態 outstream.write(cmd.getBytes()); outstream.flush(); sock.shutdownOutput(); reader = new BufferedReader(new InputStreamReader(sock.getInputStream())); String line; while ((line = reader.readLine()) != null) { if (line.indexOf("Mode: ") != -1) { System.out.println(line.replaceAll("Mode: ", "").trim()); } } } finally { sock.close(); if (reader != null) { reader.close(); } } } }
輸出結果:
follower
上面的程式碼可以改改,通過其他四字命令獲取zookeeper叢集的狀態。
相關推薦
通過Java程式碼獲取Zookeeper伺服器狀態
有的時候,我們想知道Zookeeper叢集中哪些伺服器屬於Leader,哪些屬於Follower,哪些屬於Observer。 通過命令,可以很容易的獲取到Zookeeper伺服器的狀態: [[emai
如何通過Java程式碼獲取tomcat伺服器的絕對路徑
有時候我們可能會有這樣的需求:獲取tomcat的絕對路徑,以便於進行一些其他的操作,看過很多老哥的方式大多都類似於這種: ①: Test.class.getResource("/") ②: Sy
zookeeper - 通過java程式碼連線zookeeper(2)
首先建立一個Maven專案 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www
通過java程式碼獲取jvm資訊和系統資訊
轉載自LOC_Thomas的部落格 前言 隨著微服務的概念逐漸流行,監控成了必不可少的模組,本篇文章主要介紹一下如何通過java程式碼獲得一些核心的資料,方便從各個方面對應用進行監控 獲取jvm資料 jvm資料是監控應用很重要的一系列引數,一般本地開發的時候可以通過jcons
微信公眾號開發-開發環境搭建並通過java程式碼獲取微信access_token
進入開發文件: 獲取access token access_token是公眾號的全域性唯一票據,公眾號呼叫各介面時都需使用access_token。開發者需要進行妥善儲存。access_token的儲存至少要保留512個字元空間。access_token的有效期目前為2
通過java程式碼使用zookeeper
Zookeeper的使用主要是通過建立其jar包下的Zookeeper例項,並且呼叫其介面方法進行的,主要的操作就是對znode的增刪改操作,監聽znode的變化以及處理。 以下為主要的API使用和解釋 /建立一個Zookeeper例項,第一個引數為目標伺服器地址和埠,第
通過java程式碼 測試高併發、伺服器
話不多少 上程式碼Maven 座標 <!-- http球球 --> <dependency> <groupId>org.apache.httpcomponents</groupId> <art
java 程式碼獲取真實IP
在開發工作中,我們常常需要獲取客戶端的IP。一般獲取客戶端的IP地址的方法是:request.getRemoteAddr();但是在通過了Apache,Squid等反向代理軟體就不能獲取到客戶端的真實IP地址了。 原因:由於在客戶端和服務之間增加了中間代理,因此伺服器無法直接拿到客戶端的IP,伺
ETL-kettle通過java程式碼傳遞引數,呼叫job呼叫轉換
定義變數,以表輸入為例,定義變數名稱為${變數名},這裡用test為變數名。並且勾選sql語句變數 package demo; import org.pentaho.di.core.KettleEnvironment; import org.pentaho.di.core.datab
Spring. 通過Java程式碼裝配bean
儘管在很多情況下通過元件掃描和自動裝配來實現 Spring 的自動化配置是更為推薦的方式,但有時候自動化配置的方案行不通,因此需要明確配置 Spring。比如說你想要將第三方庫中的元件裝配到你的應用中,在這種情況下,是沒辦法在它的類上新增 @Component 和 @Autowired 註解的,
解決linux下java程式碼獲取不到本機ip地址
今天在部署完預生產環境的時候發現一個問題,在linux下面java程式碼獲取本機ip地址獲取不到。但是我在測試環境上面是能夠獲取到的。先粘下獲取本機ip的程式碼: try{ Enumeration<NetworkInter
SprinvAction學習一、裝配bean:通過Java程式碼裝配bean
具體步驟 (1)普通的介面 (2)實現介面的類,該類為需要裝配到spring bean中 (3)配置類,由該類定義bean 示例程式碼: 介面1:(普通的介面) package com.sp
通過java程式碼執行shell命令的小案列
一 需求描述: 通常我們操作linux伺服器都是通過遠端連線工具,比如:SecureCRT,Xmanager等工具,在其上輸入命令來完成一些工作,但是在實際工作中,有些時候需要我們通過java程式碼遠端連線到linux伺服器執行一些shell命令,包括叢集的狀
java程式碼獲取jenkins資料,構建歷史等資訊
本篇文章主要介紹如何獲取jenkins構建歷史資料等資訊,不包含java構建等操作。 1.jenkins所需jar,後續如有缺少可百度自行補齊。 <!--jenkins所需jar包開始--> <!-- https://mvnreposit
jdbc 中通過Java程式碼連線資料庫
示例程式碼 1.通過建立一個類 寫出連線資料庫的相關屬性 username,password,URL,Connection Statement . Resultset 物件 2.載入並註冊MySQL的驅動——在Java程式中,可以通過 “Class.forName(“
通過Java程式碼自動釋出Geoserver的地圖服務WMS
import org.apache.tools.zip.ZipEntry; import org.apache.tools.zip.ZipFile; import org.apache.tools.zip.ZipOutputStream; import java.io.*; import java.n
linux上面java程式碼獲取不到本機ip地址
今天在部署完預生產環境的時候發現一個問題,在linux下面java程式碼獲取本機地址獲取不到。但是我在測試環境上面是能夠獲取到的。先粘下獲取獲取本機ip的程式碼: try{ Enumeration<NetworkInterface>
Java程式碼獲取當前類名和方法名
1、獲取類名 非靜態方法:this.getClass().getName(); 靜態方法:Thread.currentThread().getStackTrace()[1].getClassName(); private static void getString() {
MongoDB 通過 Java 程式碼 CRUD 資料庫與集合
本文導讀 相比 Java 操作 關係型資料庫(如 Mysql) 而言,Java 操作 noSql 更加簡單,因為沒有事務這些操作 Java 操作 Mysql 資料庫需要 Mysql 的連線驅動包,同理 Java 操作 MongoDB 也需要連線驅動包,叫 mongo-j
通過java反射獲取任意物件的欄位名及欄位值
import java.lang.reflect.Field; /** * * @author EX-QINCIDONG001 * */ public class ReflectClass { /** * @param args */ public