java - 配置 Hazelcast java 客户端以使用用户定义服务需要什么?

标签 java xml hazelcast

我有一个用户定义的服务,是按照 Hazelcast 文档第 24 章创建的,但他们从未提及让客户端能够使用 Hazelcast 客户端实例的 getDistributedObject 方法访问分布式对象所需的内容。我的 xml 配置只是添加了序列化的默认(非常空白)xml。这是我使用 hazelcast 节点配置的服务的配置:

<services enable-defaults="true">
    <service enabled="true">
        <name>MapManagerService</name>
        <class-name>com.ctl.hzl.service.MapManagerService</class-name>
    </service>
</services>

我正在使用 Hazelcast-client-3.10.1 和 Java 1.8。除了 xsi 文档之外,我找不到任何格式指南,该文档很有用,但并没有真正告诉我需要包含哪些内容来支持我的服务。我在一次尝试中收到一条错误消息,其中提到了某种服务工厂,我认为这一定是我所需要的,但我一直无法找出它需要什么。这是架构位置(如果有帮助的话)。提前致谢。

xsi:schemaLocation="http://www.hazelcast.com/schema/client-config
              http://www.hazelcast.com/schema/config/hazelcast-client-config-3.10.xsd">

最佳答案

TLDR; 目前无法从客户端访问用户定义的类。这个领域需要做更多的工作来使这个过程变得用户友好。

这是在这里回答的补充: How to write client proxy for SPI and what the difference between client and server proxies?

如何通过xml配置服务:

<hazelcast-client>
<proxy-factories>
        <proxy-factory class-name="com.hazelcast.examples.ProxyXYZ1" service="sampleService1"/>
        <proxy-factory class-name="com.hazelcast.examples.ProxyXYZ2" service="sampleService1"/>
        <proxy-factory class-name="com.hazelcast.examples.ProxyXYZ3" service="sampleService3"/>
    </proxy-factories>
</hazelcast-client>

请求和响应(称为编解码器)类是通过称为 hazelcast 客户端协议(protocol)的不同项目生成的。客户端协议(protocol)项目中的 Readme.md 应该可以帮助您创建自己的协议(protocol)。 https://github.com/hazelcast/hazelcast-client-protocol

还有一个更重要的部分是在服务器上实现并注册消息任务。消息任务处理来自客户端的请求。不幸的是,这部分还不够完善,不足以使其对 SPI 用户友好。消息任务示例如下: https://github.com/hazelcast/hazelcast/blob/master/hazelcast/src/main/java/com/hazelcast/client/impl/protocol/task/map/MapPutMessageTask.java

关于java - 配置 Hazelcast java 客户端以使用用户定义服务需要什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217975/

相关文章:

android - 如何在edittext中设置不可编辑的文本

xml - 使用 powershell 将文件夹结构转换为 XML 文件

xml - 如何使用 XSLT 2.0 替换地址字符串中的多个地址缩写

java - Hazelcast 日志级别标志

java - 在 Android 的 XML 中创建整数列表

java - 为什么setLayout方法不能与JPanel的ArrayList一起使用

java - 如何用 "\\"分割字符串

java - 在主函数中使用超出范围的变量

java - Hazelcast 初始化集群分区表

sonarqube - 当前线程不是锁的所有者!淡褐色