dubbo
服务调用
首先在A项目中定义一个接口,在实现类上添加
@DubboService
注解,并install
或deploy
到本地或者远端( B远程调用A)
在B项目中引入关于A项目的pom版本依赖
<dependency>
<groupId>com.huangm</groupId>
<artifactId>a-service</artifactId>
<version>1.0.4-SNAPSHOT</version>
</dependency>
在B项目的spring-dubbo.xml配置文件中添加
<dubbo:reference id="esService" registry="pc" interface="==com.huangm.a.service.EsService"/>
在B项目实现类代码中注入service
@Resource
EsService esService;
即可正常调用service中的方法。
配置说明:
dubbo:service/ 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
dubbo:reference/ 引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。 dubbo:protocol/
协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。 dubbo:application/
应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。 dubbo:module/ 模块配置,用于配置当前模块信息,可选。
dubbo:registry/ 注册中心配置,用于配置连接注册中心相关信息。 dubbo:monitor/
监控中心配置,用于配置连接监控中心相关信息,可选。 dubbo:provider/
提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
dubbo:consumer/ 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
dubbo:method/ 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
dubbo:argument/ 用于指定方法参数配置。
Dubbo接口与http接口的区别
1、协议层区别
HTTP ,HTTPS 使用的是 应用层协议 应用层协议:定义了用于在网络中进行通信和传输数据的接口 DUBBO接口使用的是
TCP/IP是传输层协议 传输层协议:管理着网络中的端到端的数据传输;因此要比 HTTP协议快2、socket 层区别 dubbo默认使用socket长连接,即首次访问建立连接以后,后续网络请求使用相同的网络通道
http1.1协议默认使用短连接,每次请求均需要进行三次握手,而http2.0协议开始将默认socket连接改为了长连接