EN
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

C端开发

如下所示,对于C端开发,需要使用注解@HafCall标记所调用的远端函数。
public class Client {

    private String ip;
    public Client(String ip) {
        this.ip = ip;
    }

    @HafCall(ip = "ip", method = "TestMain.testService", exception = ClientException.class, timeout = "300")
    public void testCSAdd(int a, int b) throws ClientException {
        int res = TestMain.testService(a, b);
        System.out.println(res);
    }
}

@HafCall注解支持如下字段:

  • ip表示卸载节点IP地址,函数将被下推到指定IP的节点上运行,必填。该注解字段支持一个IP地址或一个类型为String的成员变量名,用户需保证该成员变量的值是一个合法IP地址。
  • method表示访问的S端函数,由类名和函数名组成,必填。
  • exception表示下推失败抛出的异常,必填。
  • timeout表示函数下推运行的超时时间,默认1800s。

CS下推模式,C端和S端都使用FST序列化工具序列化对象,如果存在不可直接序列化的对象,参考3,为C端和S端指定序列化器。

public class Client {
    @HafSerializer(clazz = Page.class, serializer = PageSerializer.class)
    @HafCall(ip = "ip", method = "NoMainService.getPageTest", exception = Exception.class)
    public Page getPage() throws Exception {
        Page page = NoMainService.getPageTest();
        return page;
    }
}

public class NoMainService {
    @HafSerializer(clazz = Page.class, serializer = PageSerializer.class)
    @HafService
    public static Page getPageTest() {
        Page page = new Page("testPage", 10);
        System.out.println(page);
        return page;
    }
}