客户端开发

介绍web端如何调用服务端bus开发的接口,源代码在BusController中。

引入客户端工具

推荐使用motan版本

<dependency>
    <groupId>com.wueasy</groupId>
    <artifactId>wueasy-bus-client-motan</artifactId>
    <version>最新版本</version>
</dependency>

也可以使用dubbo版本

<dependency>
    <groupId>com.wueasy</groupId>
    <artifactId>wueasy-bus-client-dubbo</artifactId>
    <version>最新版本</version>
</dependency>

或者使用sofa-rpc版本

<dependency>
    <groupId>com.wueasy</groupId>
    <artifactId>wueasy-bus-client-sofa</artifactId>
    <version>最新版本</version>
</dependency>

restful接口通用调用

自定义一个通用调用bus的BusController接口,通过调用/servlet/功能编号,直接请求服务端接口。

客户端连接配置:

wueasy :
  bus :
    #客户端配置
    client :
      base : #默认客户端配置
        group : wueasy-demo
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)

java调用demo:

/**
 * 调用bus
 * @author: fallsea
 * @version 1.0
 */
@RestController
@RequestMapping("/servlet")
public class BusController
{

    @RequestMapping(value = "/{funcNo}")
    public String invoke(@PathVariable String funcNo,@RequestParam HashMap<String,String> paramMap)
    {
        DataMap dataMap = new DataMap();
        dataMap.putAll(paramMap);
        Result result = new Client().invoke(funcNo, dataMap);
        return JsonHelper.toJSONString(result);
    }


}

普通调用bus服务

  • 通过new Client()实例化一个调用的客户端,调用默认客户端

客户端连接配置:

wueasy :
  bus :
    #客户端配置
    client :
      base : #默认客户端配置
        group : wueasy-demo
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)

java调用demo:

Client client = new Client();//实例化一个客户端

DataMap dataMap = new DataMap();//请求参数对象
dataMap.put("name","wueasy");
Result result = client.invoke("D1000", dataMap);//调用服务获取调用结果

result.getErrorNo();//错误码,0 调用成功,其它值调用失败
result.getErrorInfo();//获取执行消息/错误消息

多个客户端调用说明

客户端同时存在多个,需要调用不同的服务。

提供两种方式调用

实例化方式调用

  • 通过new Client()实例化一个默认的客户端,调用默认客户端
  • 通过new Client("demo2")实例化第二个客户端,通过实例化的参数控制调用的客户端

多个客户端连接配置:

wueasy :
  bus :
    #客户端配置
    client :
      base : #默认客户端配置
        group : wueasy-demo
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)
      demo2: #客户端2
        group : wueasy-demo2
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)

java调用demo:

Client client = new Client();//实例化一个默认的客户端(base)

client = new Client("demo2");//实例化第二个客户端(demo2)

DataMap dataMap = new DataMap();//请求参数对象
dataMap.put("name","wueasy");
Result result = client.invoke("D1000", dataMap);//调用服务获取调用结果

result.getErrorNo();//错误码,0 调用成功,其它值调用失败
result.getErrorInfo();//获取执行消息/错误消息

正则表达式方式调用

通过正则表达式匹配功能号,调用不同的微服务。

  • 配置客户端调用规则route,可以配置多个规则
  • 配置客户端clientId,客户端的key,例如下面:demo2base,由于base是默认的,所以不用配置
  • 配置路由规则rule,正则表达式,如果满足此正则表达式,那么new Client()会自动找到demo2的实例。

通过new Client()匹配路由规则,自动调用不同的微服务。

多个客户端连接配置:

wueasy :
  bus :
    route: #客户端路由配置规则
    - clientId: demo2 #客户端id
      rule: ^[D][0-9]{4}$ #路由规则,正则表达式
    #客户端配置
    client :
      base : #默认客户端配置
        group : wueasy-demo
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)
      demo2: #客户端2
        group : wueasy-demo2
        minClientConnection : 5 #client最小连接数
        maxClientConnection : 20 #client最大连接数
        requestTimeout : 60000 #请求超时时间(毫秒)

java调用demo:

Client client = new Client();//实例化一个默认的客户端


DataMap dataMap = new DataMap();//请求参数对象
dataMap.put("name","wueasy");
Result result = client.invoke("D1000", dataMap);//调用服务获取调用结果

result.getErrorNo();//错误码,0 调用成功,其它值调用失败
result.getErrorInfo();//获取执行消息/错误消息
Copyright © wueasy.com 2017-2020 all right reserved,powered by Gitbook未经允许,禁止以任何形式传播 修订时间: 2019-11-18

results matching ""

    No results matching ""