如何从客户端向Hazelcast节点部署并注册CompactSerializer
从Hazelcast客户端部署并注册CompactSerializer的解决方案
前提确认
确保客户端与服务端均已启用用户代码部署(User Code Deployment),服务端配置需允许接收客户端上传的代码(默认启用,若有修改需保证user-code-deployment.enabled=true)。
步骤1:准备CompactSerializer类
- 确保
CompactSerializer实现类为public访问权限,且包含无参构造函数(Hazelcast需实例化该类)。 - 推荐通过
@CompactSerializer注解绑定目标实体类,让Hazelcast自动识别并注册:import com.hazelcast.nio.serialization.compact.CompactSerializer; import com.hazelcast.nio.serialization.compact.annotation.CompactSerializer; @CompactSerializer(targetClass = MyEntity.class) public class MyEntityCompactSerializer implements CompactSerializer<MyEntity> { @Override public void write(CompactWriter writer, MyEntity object) { // 实现序列化逻辑 writer.writeString("field1", object.getField1()); writer.writeInt("field2", object.getField2()); } @Override public MyEntity read(CompactReader reader) { // 实现反序列化逻辑 MyEntity entity = new MyEntity(); entity.setField1(reader.readString("field1")); entity.setField2(reader.readInt("field2")); return entity; } }
步骤2:客户端配置并部署Serializer
在客户端配置中,将CompactSerializer类(或其所在JAR)加入用户代码部署列表,确保服务端能加载该类:
编程式配置示例
import com.hazelcast.client.HazelcastClient; import com.hazelcast.client.config.ClientConfig; public class HazelcastClientSetup { public static void main(String[] args) { ClientConfig config = new ClientConfig(); config.getUserCodeDeploymentConfig() .setEnabled(true) // 直接添加Serializer类 .addClass(MyEntityCompactSerializer.class) // 若Serializer在单独JAR中,可添加JAR路径 // .addJar(new File("path/to/my-serializer.jar")); HazelcastClient.newHazelcastClient(config); } }
XML配置示例(可选)
<hazelcast-client> <user-code-deployment enabled="true"> <class>com.yourpackage.MyEntityCompactSerializer</class> <!-- 或指定JAR --> <!-- <jar>path/to/my-serializer.jar</jar> --> </user-code-deployment> </hazelcast-client>
步骤3:验证部署效果
启动客户端后,服务端会自动加载部署的CompactSerializer类,并通过注解识别绑定的实体类。此时执行Entry Processor时,节点即可正常序列化/反序列化实体,不会再抛出序列化异常。
注意事项
- 确保
CompactSerializer类与实体类的版本一致,避免类加载冲突。 - 若未使用
@CompactSerializer注解,需在服务端显式注册Serializer,但通过用户代码部署时,推荐用注解方式实现自动注册,更简洁可靠。
内容的提问来源于stack exchange,提问作者Tix
相关产品推荐
相关产品推荐

