Hi community,

Based on the issue mentioned in earlier mail, I’d like to fix it using plane 
byte without magic header, which will make it easy for other clients to 
register to ShenYu. But please pay attention that after this change, customers 
who are using zookeeper as register center or data sync center need to 
re-register to zookeeper.

I also plan to take this change to replace current zk client 
(com.101tec.zkclient) with Curator 5.2.1. But Curator 5.2.1 is not compatible 
with zookeeper 3.4.x version and before. Please let me know if any concern. 
Thanks a lot!

Related issue:
https://github.com/apache/incubator-shenyu/issues/3362

Thanks,
Han


From: Han G <[email protected]>
Date: Thursday, April 28, 2022 at 17:45
To: dev <[email protected]>
Subject: [Question] The data saved in zookeeper looks strange, it has strange 
number because of serialization method.
Hi folks,

I also created an ISSUE for this question, see 
https://github.com/apache/incubator-shenyu/issues/3360.

I'm working on the zookeeper client registration for dotnet client, and I found 
the serialization for zkClient looks strange, see below.
[Pasted image 
20220428170506]<https://user-images.githubusercontent.com/11908658/165719204-df04cfc5-80a6-4bc5-b602-6a62d0f3dfab.png>

And admin also use the same serializer which is default one 
SerializableSerializer in package org.I0Itec.zkclient, which makes the format 
below cannot be deserialized correctly.
[image]<https://user-images.githubusercontent.com/11908658/165719634-c5b8d3ea-7ffd-4e03-a09a-26e9abffe6bf.png>

And will cause below exception.
[Pasted image 
20220428170748]<https://user-images.githubusercontent.com/11908658/165719822-27e7992c-3132-44c5-843d-438812301432.png>
org.I0Itec.zkclient also has a byte serializer, and I've tested that it works 
well and has no strange number when writing in zookeeper.

I'm wondering if it's by design or a bug. Because I can't find the similar 
serializer in zookeeper official package or sdks in other language.
If it's a bug, I can have a try to fix it and using the byte serializer 
instead. It will change all the places where ZkClient was used. The changes 
mainly looks like below, and also including some other small changes.

-this.zkClient = new ZkClient(config.getServerLists(), sessionTimeout, 
connectionTimeout);
+this.zkClient = new ZkClient(config.getServerLists(), sessionTimeout, 
connectionTimeout, new BytesPushThroughSerializer());

If it's by design, I will try to investigate if any mitigation to solve this 
strange number issue.

Thanks,
Han

Reply via email to