我很难理解Hazelcast中DistributedTask实现的行为。对我来说--根据定义,分布式任务是“调用者想要处理的某种逻辑(主要是执行量),通过网络传递给分布式服务”。理论上,这些网络上的分布式处理器不需要预先知道任务逻辑。调用方应该提供对这些分布式服务的执行逻辑和数据点引用,一旦任务完成,调用方就会得到结果。
现在,从哈泽尔广播的角度来看,似乎危险广播服务器节点本身需要提前知道逻辑( DistributedTask)。我的理解正确吗?
我假设Caller (指向任何hazlecast服务器实例的纯香草hazlecast连接)应该能够将带有序列化对象的分布式功能体传递给服务器,并请求远程执行该函数,而不会让hazlecast节点知道任何关于函数体的信息?
发布于 2019-03-13 07:43:42
简单的答案-您需要一个类定义来反序列化一个序列化的字节数组。对于Hazelcast,分布式执行器任务需要在服务器节点的类路径中出现执行代码,因为服务器需要类定义来反序列化调用者调用的任务代码的序列化字节数组。
这与服务器使用内存中的对象格式以Java对象的形式存储数据是一样的。默认情况下,数据以字节数组的序列化形式存储。
https://stackoverflow.com/questions/55136476
复制相似问题