溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于javaagent如何實現(xiàn)zkconfigutil對程序零侵入

發(fā)布時間:2021-12-08 09:54:44 來源:億速云 閱讀:129 作者:小新 欄目:云計算

這篇文章主要介紹基于javaagent如何實現(xiàn)zkconfigutil對程序零侵入,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

    先來效果:

    我的工程中有個Demo是整個工程的配置項,如下:

@TypeZkConfigurable
public final class Demo {

	@FieldZkConfigurable(dynamicUpdate = true)
	public static String F1 = "F1";

	@FieldZkConfigurable(dynamicUpdate = true)
	public static String F2 = "F2";

	@FieldZkConfigurable(dynamicUpdate = true)
	public static Boolean F3 = false;

	@FieldZkConfigurable
	public static Boolean F4 = true;
}

    這個配置項F1字段dynamicUpdate = true,代表這個字段需要動態(tài)更新,即zookeeper上的值變化后F1需要做出相應修改。F4字段采用采用默認dynamicUpdate false,也就是不需要動態(tài)更新。

    如何使用Demo:

public static void main(String[] args) throws InterruptedException {
		while (true) {
			System.out.println("Demo.F1 = " + Demo.F1);
			loop();
		}
	}

	public static void loop() throws InterruptedException {
		Thread.sleep(2000L);
	}

    這段代碼不需多解釋,2s打印一次F1(這個字段可是動態(tài)更新的哦?。?/p>

    ok代碼已經(jīng)寫完了,是不是對您的代碼完全沒有侵入呢?

    看啟動:

-javaagent:/home/jerry/ZKCUAgent.jar=zk@10.31.44.38:2181#class@com.jerry.zkconfigutil.Demo

    這里主要用了javaagent,在jvm參數(shù)中添加上述參數(shù),首先-javaagent指定我們的agent的jar,這里在我的home目錄下,然后=號用來指定agent的agentOps,也就是參數(shù),格式為zk@z1,z2#class@c1,c2,c3。

    ok,帶上javaagent參數(shù)后直接啟動,現(xiàn)在我們的Demo已經(jīng)實現(xiàn)了zookeeper化配置。

    欣賞下吧!
啟動程序運行如下:基于javaagent如何實現(xiàn)zkconfigutil對程序零侵入

    修改zookeeper上F1字段的值為F321,運行如下:
基于javaagent如何實現(xiàn)zkconfigutil對程序零侵入 怎么樣,使用起立是不是非常easy,并且實用,通過jvm的javaagent參數(shù)進行控制,對服務實現(xiàn)零侵入。與zookeeper的eclipse插件是個完美的組合!?。?/h7>這是小弟發(fā)布的第一個正式版本,在osc的git倉庫和github上都有完整代碼及測試Demo

以上是“基于javaagent如何實現(xiàn)zkconfigutil對程序零侵入”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI