温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

基于javaagent如何实现zkconfigutil对程序零侵入

发布时间:2021-12-08 09:54:44 来源:亿速云 阅读:111 作者:小新 栏目:云计算

这篇文章主要介绍基于javaagent如何实现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,代表这个字段需要动态更新,即zookeeper上的值变化后F1需要做出相应修改。F4字段采用采用默认dynamicUpdate false,也就是不需要动态更新。

    如何使用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(这个字段可是动态更新的哦!)

    ok代码已经写完了,是不是对您的代码完全没有侵入呢?

    看启动:

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

    这里主要用了javaagent,在jvm参数中添加上述参数,首先-javaagent指定我们的agent的jar,这里在我的home目录下,然后=号用来指定agent的agentOps,也就是参数,格式为zk@z1,z2#class@c1,c2,c3。

    ok,带上javaagent参数后直接启动,现在我们的Demo已经实现了zookeeper化配置。

    欣赏下吧!
启动程序运行如下:基于javaagent如何实现zkconfigutil对程序零侵入

    修改zookeeper上F1字段的值为F321,运行如下:
基于javaagent如何实现zkconfigutil对程序零侵入 怎么样,使用起立是不是非常easy,并且实用,通过jvm的javaagent参数进行控制,对服务实现零侵入。与zookeeper的eclipse插件是个完美的组合!!!这是小弟发布的第一个正式版本,在osc的git仓库和github上都有完整代码及测试Demo

以上是“基于javaagent如何实现zkconfigutil对程序零侵入”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI