From db7549d6a9d512f08d2b224877f0f80537dc134f Mon Sep 17 00:00:00 2001 From: huanglongchao <943071074@qq.com> Date: Fri, 24 Nov 2023 18:27:49 +0800 Subject: [PATCH] Issue of high CPU usage by the meta leader, replace Jackson with Gson --- pom.xml | 6 +++++ .../metaserver/NodeServerOperateInfoTest.java | 25 +++++++++++++++++++ server/common/util/pom.xml | 4 +++ .../alipay/sofa/registry/util/JsonUtils.java | 11 ++++++++ .../provide/data/NodeOperatingService.java | 2 +- 5 files changed, 47 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 36a3c8476..cdebb2de2 100644 --- a/pom.xml +++ b/pom.xml @@ -90,6 +90,7 @@ 1.3.6-1 2.17.0 2.3.9.RELEASE + 2.10.1 ${user.dir} -Dnetwork_interface_denylist=docker0 @@ -457,6 +458,11 @@ zstd-jni ${zstd-jni.version} + + com.google.code.gson + gson + ${gson.version} + diff --git a/server/common/model/src/test/java/com/alipay/sofa/registry/common/model/metaserver/NodeServerOperateInfoTest.java b/server/common/model/src/test/java/com/alipay/sofa/registry/common/model/metaserver/NodeServerOperateInfoTest.java index 723f7af0a..72c9c4e7a 100644 --- a/server/common/model/src/test/java/com/alipay/sofa/registry/common/model/metaserver/NodeServerOperateInfoTest.java +++ b/server/common/model/src/test/java/com/alipay/sofa/registry/common/model/metaserver/NodeServerOperateInfoTest.java @@ -16,7 +16,10 @@ */ package com.alipay.sofa.registry.common.model.metaserver; +import com.alipay.sofa.registry.log.Logger; +import com.alipay.sofa.registry.log.LoggerFactory; import com.alipay.sofa.registry.util.ConcurrentUtils; +import com.alipay.sofa.registry.util.JsonUtils; import java.util.concurrent.TimeUnit; import org.junit.Assert; import org.junit.Test; @@ -29,6 +32,8 @@ public class NodeServerOperateInfoTest { private static final String CELL = "TEST_CELL"; + private static final Logger LOG = LoggerFactory.getLogger(NodeServerOperateInfoTest.class); + @Test public void test() { NodeServerOperateInfo info = new NodeServerOperateInfo(); @@ -75,4 +80,24 @@ public void test() { Assert.assertEquals(2, info.sessionSize()); Assert.assertTrue(info.sessionLastOperateTs() > timeMillis); } + + @Test + public void benchMarkJsonReadTest() { + String testData = + "{\"metas\":[],\"datas\":[{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.128.120\",\"operateTs\":1684231576626},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.72.95.58\",\"operateTs\":1680549233524},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.186.148.29\",\"operateTs\":1684302055095},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.134.12.57\",\"operateTs\":1694747512650},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.64.188.221\",\"operateTs\":1680102185863},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.255.166\",\"operateTs\":1682432970365},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.241.33\",\"operateTs\":1694958448061},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.101.32\",\"operateTs\":1679556000825},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.72.55.7\",\"operateTs\":1691614528084},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.24.128\",\"operateTs\":1679554028040},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.72.22.242\",\"operateTs\":1699894025865},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.72.28.200\",\"operateTs\":1700708828419},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.149.240\",\"operateTs\":1699102925113},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.8.114\",\"operateTs\":1665404250703},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.235.18.156\",\"operateTs\":1699128157104},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.64.127.103\",\"operateTs\":1682433354340},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.134.61\",\"operateTs\":1683548641733},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.42.169\",\"operateTs\":1665356135945},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.185.217\",\"operateTs\":1699859373576},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.229.228\",\"operateTs\":1678773931611},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.138.23.113\",\"operateTs\":1680833515398},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.10.235\",\"operateTs\":1679216349094},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.186.136.206\",\"operateTs\":1700708214857},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.69.226\",\"operateTs\":1682396360849},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.67.175.234\",\"operateTs\":1682401254094},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.72.48.156\",\"operateTs\":1682399448259},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.147.198.195\",\"operateTs\":1700708544999},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.120.43\",\"operateTs\":1678786654512},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.151.141.159\",\"operateTs\":1700709090410},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.138.17.153\",\"operateTs\":1679216077960},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.71.233.212\",\"operateTs\":1682480983281},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.187.112.243\",\"operateTs\":1681147387197},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.103.110\",\"operateTs\":1683511760881},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"11.71.122.22\",\"operateTs\":1680496772612},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.137.222.253\",\"operateTs\":1669321845534},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.138.29.70\",\"operateTs\":1680148932665},{\"nodeType\":\"DATA\",\"cell\":\"CZ50C\",\"address\":\"33.151.190.178\",\"operateTs\":1694491707297}],\"sessions\":{\"CZ50C\":[{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.6.98\",\"operateTs\":1666454852804},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.187.110.216\",\"operateTs\":1699512721207},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"11.235.16.9\",\"operateTs\":1700641126216},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"11.71.125.144\",\"operateTs\":1698394892989},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.187.56.185\",\"operateTs\":1666700789822},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.138.12.44\",\"operateTs\":1677146179560},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.187.157.30\",\"operateTs\":1681123156893},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.47.191\",\"operateTs\":1700561646792},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.27.152\",\"operateTs\":1680582927788},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.134.0.233\",\"operateTs\":1683512869487},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"11.39.39.212\",\"operateTs\":1677141808080},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.134.27.230\",\"operateTs\":1700645903401},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"11.72.87.50\",\"operateTs\":1680234067309},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.138.7.197\",\"operateTs\":1693683493636},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.186.138.105\",\"operateTs\":1693235858899},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.25.4\",\"operateTs\":1675823327791},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"11.72.45.163\",\"operateTs\":1680243128168},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.151.212.88\",\"operateTs\":1682400714705},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.155.254\",\"operateTs\":1680501633288},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.187.42.66\",\"operateTs\":1665159978380},{\"nodeType\":\"SESSION\",\"cell\":\"CZ50C\",\"address\":\"33.137.53.0\",\"operateTs\":1680233403254}],\"RZ55A\":[{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.47.210\",\"operateTs\":1700641954244},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.246.205\",\"operateTs\":1681326891063},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.114.82\",\"operateTs\":1682140010053},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.151.195.101\",\"operateTs\":1700646095778},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.184.252\",\"operateTs\":1680233343187},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.68.31.115\",\"operateTs\":1690982041621},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.72.52.58\",\"operateTs\":1680242772672},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.224.71\",\"operateTs\":1681540892918},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.244.33\",\"operateTs\":1700646300859},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.172.198\",\"operateTs\":1681393305154},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.215.126\",\"operateTs\":1667802290510},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.68.195.57\",\"operateTs\":1682568229073},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.138.42.32\",\"operateTs\":1685027318487},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.138.24.189\",\"operateTs\":1678781853346},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.0.77\",\"operateTs\":1680837828765},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.139.114\",\"operateTs\":1671023529196},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.113.145\",\"operateTs\":1676278413378},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.37.54.146\",\"operateTs\":1668579767035},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.140.189\",\"operateTs\":1688659110407},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.151.224.195\",\"operateTs\":1671680482522},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.227.143\",\"operateTs\":1681098450266},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.170.104\",\"operateTs\":1682050154941},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.151.194.9\",\"operateTs\":1669021988650},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.165.251\",\"operateTs\":1696608314348},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.150.206\",\"operateTs\":1684819943636},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.94.170\",\"operateTs\":1681192397380},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.118.98\",\"operateTs\":1681390653546},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.1.225\",\"operateTs\":1699468565936},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.93.246\",\"operateTs\":1700625791210},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.228.88\",\"operateTs\":1683875134290},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.68.198.107\",\"operateTs\":1680102117254},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.187.161.74\",\"operateTs\":1665505688885},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.149.71\",\"operateTs\":1679982802489},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.71.239.137\",\"operateTs\":1694508110999},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.137.147.50\",\"operateTs\":1684643159351},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.72.60.188\",\"operateTs\":1680851932912},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.124.209\",\"operateTs\":1681397448191},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.151.206.207\",\"operateTs\":1679982983328},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"33.151.246.166\",\"operateTs\":1679220391635},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.72.36.23\",\"operateTs\":1700709616572},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55A\",\"address\":\"11.64.151.203\",\"operateTs\":1699278064854}],\"RZ55B\":[{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.72.57.180\",\"operateTs\":1678774844176},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.100.86\",\"operateTs\":1666876361187},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.165.211\",\"operateTs\":1700739835405},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.78.217\",\"operateTs\":1680890216034},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.180.11\",\"operateTs\":1679495633220},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.209.73\",\"operateTs\":1680774773542},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.71.117.130\",\"operateTs\":1681265389591},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.64.175.95\",\"operateTs\":1676522969581},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.68.203.62\",\"operateTs\":1681204540580},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.68.194.18\",\"operateTs\":1679553932211},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.55.27\",\"operateTs\":1682396913882},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.52.55\",\"operateTs\":1681984751646},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.151.141.218\",\"operateTs\":1695794328317},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.68.192.56\",\"operateTs\":1679215760974},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.151.225.94\",\"operateTs\":1678774736134},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.219.71\",\"operateTs\":1682049496967},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.117.223\",\"operateTs\":1682290871012},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.64.189.88\",\"operateTs\":1682102529751},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.153.71.20\",\"operateTs\":1682202396681},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.193.214\",\"operateTs\":1682098791479},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.142.162\",\"operateTs\":1681237043759},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.12.80\",\"operateTs\":1682327126365},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.19.226\",\"operateTs\":1679219183239},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.64.167.74\",\"operateTs\":1678774599339},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.68.200.45\",\"operateTs\":1700641532991},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.134.125.80\",\"operateTs\":1678786556381},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.131.168\",\"operateTs\":1671319379798},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.38.109\",\"operateTs\":1695267391512},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.71.126.53\",\"operateTs\":1681272012908},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.40.50\",\"operateTs\":1677037824950},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.72.39.81\",\"operateTs\":1700641746991},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.187.27.142\",\"operateTs\":1681490881046},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.71.231.107\",\"operateTs\":1680163238947},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"11.71.94.177\",\"operateTs\":1672180528023},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.10.46\",\"operateTs\":1681098933887},{\"nodeType\":\"SESSION\",\"cell\":\"RZ55B\",\"address\":\"33.137.178.83\",\"operateTs\":1681098144308}]}}"; + int times = 100; + long start = System.currentTimeMillis(); + for (int i = 0; i < times; i++) { + JsonUtils.read(testData, NodeServerOperateInfo.class); + } + double duration = System.currentTimeMillis() - start; + LOG.info("jsonRead total: %s, per: %s\n", duration, duration / times); + + start = System.currentTimeMillis(); + for (int i = 0; i < times; i++) { + JsonUtils.gsonRead(testData, NodeServerOperateInfo.class); + } + duration = System.currentTimeMillis() - start; + LOG.info("gsonRead total: %s, per: %s\n", duration, duration / times); + } } diff --git a/server/common/util/pom.xml b/server/common/util/pom.xml index 553daa7d2..e4a24c30f 100644 --- a/server/common/util/pom.xml +++ b/server/common/util/pom.xml @@ -114,6 +114,10 @@ org.powermock powermock-api-mockito + + com.google.code.gson + gson + diff --git a/server/common/util/src/main/java/com/alipay/sofa/registry/util/JsonUtils.java b/server/common/util/src/main/java/com/alipay/sofa/registry/util/JsonUtils.java index 2ca052c39..f700bdf0e 100644 --- a/server/common/util/src/main/java/com/alipay/sofa/registry/util/JsonUtils.java +++ b/server/common/util/src/main/java/com/alipay/sofa/registry/util/JsonUtils.java @@ -18,6 +18,7 @@ import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; /** * @author yuzhi.lyz @@ -27,6 +28,8 @@ public final class JsonUtils { public static final ThreadLocal JACKSON_MAPPER = ThreadLocal.withInitial(() -> new ObjectMapper()); + public static final Gson gson = new Gson(); + private JsonUtils() {} public static ObjectMapper getJacksonObjectMapper() { @@ -50,6 +53,14 @@ public static T read(String str, TypeReference typeReference) { } } + public static T gsonRead(String str, Class clazz) { + try { + return gson.fromJson(str, clazz); + } catch (Throwable e) { + throw new RuntimeException("failed to read gson to " + clazz.toString() + ", " + str, e); + } + } + public static String writeValueAsString(Object o) { try { return JACKSON_MAPPER.get().writeValueAsString(o); diff --git a/server/server/meta/src/main/java/com/alipay/sofa/registry/server/meta/provide/data/NodeOperatingService.java b/server/server/meta/src/main/java/com/alipay/sofa/registry/server/meta/provide/data/NodeOperatingService.java index a4bcb491e..0e9e91ac0 100644 --- a/server/server/meta/src/main/java/com/alipay/sofa/registry/server/meta/provide/data/NodeOperatingService.java +++ b/server/server/meta/src/main/java/com/alipay/sofa/registry/server/meta/provide/data/NodeOperatingService.java @@ -50,7 +50,7 @@ public Tuple queryOperateInfoAndVersion() { } String entityData = PersistenceDataBuilder.getEntityData(response.getEntity()); - NodeServerOperateInfo read = JsonUtils.read(entityData, NodeServerOperateInfo.class); + NodeServerOperateInfo read = JsonUtils.gsonRead(entityData, NodeServerOperateInfo.class); return new Tuple<>(response.getEntity().getVersion(), read); }