全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 钉钉智能硬件
消息队列 MQ

创建服务接口

更新时间:2017-08-24 17:55:53

本文主要介绍如何通过消息队列的跨域中继服务开放用户的服务接口。

添加中继服务依赖

  1. <dependency>
  2. <groupId>com.aliyun.angelia</groupId>
  3. <artifactId>angelia-annotation</artifactId>
  4. <version>1.0.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>com.aliyun.angelia</groupId>
  8. <artifactId>angelia-rpc</artifactId>
  9. <version>1.0.0</version>
  10. </dependency>

目前,消息队列的中继服务提供两种接口创建方式:

  • 手动创建,具体请参考 Demo 程序中 generate 目录下的代码。

  • 自动创建,可根据中继服务提供的 Maven 插件,自动生成 Async 接口以及 Oneway 接口,具体过程请参考下文详细介绍。

  1. 在使用 Maven 插件自动生成接口时,需要在 pom 文件中添加如下依赖:

    1. <plugin>
    2. <groupId>com.aliyun.relay</groupId>
    3. <artifactId>codegen-maven-plugin</artifactId>
    4. <version>1.0.0</version>
    5. <executions>
    6. <execution>
    7. <id>generate-api</id>
    8. <phase>compile</phase>
    9. <goals>
    10. <goal>generate</goal>
    11. </goals>
    12. </execution>
    13. <execution>
    14. <id>add-api</id>
    15. <phase>generate-sources</phase>
    16. <goals>
    17. <goal>add-source</goal>
    18. </goals>
    19. </execution>
    20. </executions>
    21. </plugin>
  2. 定义服务接口。

    1. @RemoteService(name = "HelloService")
    2. public interface HelloService {
    3. @RemoteMethod
    4. String sayHello(String arg);
    5. }
  3. 运行插件。

    输入命令 mvn compile,会在 src/generated/java 目录下生成支持异步和 Oneway 调用的接口,服务调用方(consumer)可以根据需要调用相关接口。

    1. @javax.annotation.Generated(value = {"Generated By Relay CodeGen"}, date = "2017-03-22 18:51:37")
    2. @RemoteService(name = "HelloService")
    3. public interface HelloServiceGen extends HelloService {
    4. @RemoteMethod(type = Type.ASYNC)
    5. Promise<String> sayHelloAsync(String obj0);
    6. @RemoteMethod(type = Type.ONEWAY)
    7. void sayHelloOneway(String obj0);
    8. }
本文导读目录