webService 与 dubbo

本文介绍了项目中使用WebService(基于JAX-WS规范)和Dubbo进行服务调用的背景及配置细节。对于WebService,重点讲解了endpoint配置、客户端调用地址以及CXF框架的应用。而在Dubbo部分,阐述了服务接口声明、服务引用以及注册中心(Zookeeper)的工作原理。文章还提及了WebService适合跨语言调用,而Dubbo更注重与Spring的集成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 使用背景

   项目为所有后端的最上游,处理前端请求,分配给其他后端,会调用下游服务,因此需要服务调用。目前项目使用webservice 与 dubbo这两种方式,对外提供本项目接口访问途径,暴露service接口。

   1.1 配置文件

      webService

       webService一共有JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS  这三种规范,本项目使用jaxws规范。

       具体配置如图:

       endpoint 为发布服务端,id即为发布的接口服务名称,调用者需要用此id,implementor具体实现类(Impl类的注解用的是@Service时,此处只需要写  # + impl的类名,注解用的是@WebService时,此处需要写全路径),implementorClass为声明服务类(service 与 impl 在同一个项目中,可能不需要写这个参数),address为该服务的地址(发布后),jaxws:inInterceptors为该服务的拦截器。

需要用到cxf框架,配置cxf路径参数(默认是/services)

           服务调发布后,访问路径为:http:// + 服务端服务器ip地址 + CXF框架地址 + 服务地址(即address) + 统一参数(即?wsdl)

                              样例http://localhost:8080/cxf/orderQueryEspService?wsdl 

                               这个wsdl文件,可以用来查看这个webservice服务的方法,入参,出参等信息。

 

       client 为客户端,address为客户端访问路径

          dubbo 版本 apache 2.7.6 

       dubbo 接口服务配置

       

       dubbo:service为提供方声明需要暴露的服务接口,ref是提供方接口实例bean的id(引用已存在的spring bean 对象) 
      dubbo:reference为引用暴露的dubbo服务,生成可以提供远程调用的service服务,id为自己定义的名称(给外界使用),registry 代理服务注册地址

    dubbo 框架配置

    dubbo注册地址:

  这里是一个xml,用来写不同环境下dubbo注册地址的形参   address 注册的服务器地址  group 注册的组名 

        registry protocol : 注册中心(Zookeeper、Redis、Simple、Multicast、Etcd3 有这几种) 本项目采用zookeeper

            consumer和provider 启动时,将自身的url注册到zookeeper的子节点中,断开连接后,子节点删除。

            dubbo 服务的注册 订阅 退订 等操作,通过 ZookeeperRegistry 这个类及其父类 来实现。    

         dubbo注册实参:

       这里只放一个环境的注册地址实参,Dubbo提供的注册中心

       

 ZookeeperRegistry源码介绍

  构造方法

    设置了根目录    recover 方法,添加了重连回调

  doRegister 注册节点,

    toUrlPath(url)  获取节点要创建在什么目录下,具体如下:{root}/{interface}/{category}/{url.toFullString()}
    url.getParameter(DYNAMIC_KEY, true) 用来判断是否要建立永久节点,默认为非永久节点,即true

 

doUnregister 删除注册的节点 

doSubscribe 订阅介绍

 

  1.2 webservice 与 dubbo 介绍

       webservice可以用于不同语言项目的互相调用,使用了http协议传输数据,xml封装数据。目前总体来说,webservice 有 三种规范,两种框架(Axis2 与 CXF,Axis2侧重多语言结合,CXF侧重与spring集成)。

参考链接:https://xinyuan.blog.youkuaiyun.com/article/details/111380202 

ZookeeperRegistry 相关源码讲解:https://www.jianshu.com/p/d89023a266be

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值