motan zookeeper

1 客户端和服务端都需要的

1.1 客户和服务端公共接口
公共接口,实现rpc

public interface FooService {
    String hello(String name);
}

1.2 注册策略配置

@Bean(name = "zookeeperRegistry")
public RegistryConfigBean registryConfig() {
        RegistryConfigBean config = new RegistryConfigBean();
        // 指定协议类型
        config.setRegProtocol("zookeeper");
        // 注册配置名称,可以随便填写
        config.setName("motanZookeeperRegistry");
        config.setAddress("127.0.0.1:2181");
        config.setConnectTimeout(300000);
        config.setRegistrySessionTimeout(30000);
        return config;
}

1.3 协议配置
其实是一个应用层协议配置

@Bean(name = "motanProtocol")
 public ProtocolConfigBean protocolConfig() {
        ProtocolConfigBean config = new ProtocolConfigBean();
        config.setDefault(true);
        // 这里一定要写motan,是它的协议,否则拿不到默认的Protocal对象
        config.setName("motan");

        config.setRequestTimeout(20000);
        return config;
}

1.4 motan注解扫描配置
主要是扫描@MotanReferer 和 @MotanService注解

@Bean
public AnnotationBean motanAnnotationBean() {
        AnnotationBean motanAnnotationBean = new AnnotationBean();
        motanAnnotationBean.setPackage("com.lala.test");
        return motanAnnotationBean;
}

2 服务端

2.1 服务端配置

@Bean("basicService")
public BasicServiceConfigBean baseServiceConfig() {
        BasicServiceConfigBean config = new BasicServiceConfigBean();
        // 协议名称:端口,协议就是motanProtocol Bean配置对象
        config.setExport("motanProtocol:8002");

        config.setAccessLog(false);
        config.setShareChannel(true);
        // 注册中心策略对象
        config.setRegistry("zookeeperRegistry");

        return config;
    }

2.2 服务端提供服务

@MotanService(basicService = "basicService", group = "testgroup")
public class FooServiceImpl implements FooService {

    @Override
    public String hello(String name) {
        return "hello  " + name;
    }
}

3 客户端

3.1 客户端配置
@Bean(name = "motantestClientBasicConfig")
public BasicRefererConfigBean baseRefererConfig() {
        BasicRefererConfigBean config = new BasicRefererConfigBean();
        // 协议配置对象 Bean name
        config.setProtocol("motanProtocol");

        // 注册策略
        config.setRegistry("zookeeperRegistry");

        config.setRequestTimeout(20000);
        config.setCheck(false);
        config.setAccessLog(true);
        config.setRetries(2);
        config.setThrowException(true);
        return config;
    }

3.2 客户端远程调用
@MotanReferer(basicReferer = "motantestClientBasicConfig", group = "testgroup")
private FooService fooService;

@RequestMapping("/name")
ResponseEntity foo(@RequestParam("name") String name){

        String res = fooService.hello(name);

        return new ResponseEntity<>(res, HttpStatus.OK);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值