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
