Dubbo01

Posted quyangyang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dubbo01相关的知识,希望对你有一定的参考价值。

dubbo实质是一个jar,可通过maven引入

 

技术图片

 

服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。


服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者

监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

 

将dubbo引入项目,上传到/opt路径

apache-tomcat-8.5.24.tar.gz

dubbo-admin-2.6.0.war

centos7 192.168.239.139

 

unzip file 文件名 -c 解压路径

tar -zxvf apache-tomcat-8.5.24.tar.gz

unzip  dubbo-admin-2.6.0.war -c dubbo

配置tomcat的server.xml配置文件

server.xml 目录结构

<Server>
    <Listener />
    <GlobaNamingResources>
    </GlobaNamingResources
    <Service>
        <Connector />
        <Engine>
            <Logger />
            <Realm />
               <host>
                   <Logger />
                   <Context />
               </host>
        </Engine>
    </Service>
</Server>



<Context>元素

它由Context接口定义.是使用最频繁的元素.每个<Context元素代表了运行在虚拟主机上的单个Web应用.一个<Host>可以包含多个<Context>元素.
每个web应用有唯一的一个相对应的Context代表web应用自身.servlet容器为第一个web应用创建一个 path : 该Context的路径名是"",故该Context是该Host的默认Context docBase : 该Context的根目录是webapps/mycontext/

<Context path="/dubbo" docBase="/opt/dubbo" debug="0" privileged="true" />

  

安装zookeeper

tar -zxvf zookeeper-3.4.11

vi zoo.cfg

dataDir=/opt/zookeeper-3.4.11/data

 

启动

./zkServer.sh start

./zkServer.sh status

 

dubbo的使用分为提供端和消费端。需要替换两个注解 @Service @Reference

 

 

提供方

在实现类上增加注解     @Service     com.alibaba.dubbo.config.annotation

在application.properties添加

 1 # dubbo
 2 spring.dubbo.application=user-service
 3 # dubbo
 4 spring.dubbo.protocol.name=dubbo
 5 # zookeeper
 6 spring.dubbo.registry.address=192.168.239.139:2181
 7 # zookeeper
 8 spring.dubbo.registry.protocol=zookeeper
 9 # dubbo
10 spring.dubbo.base-package=com.xxx.xxx

其中

application.name就是服务名,不能跟别的dubbo提供端重复
registry.protocol 是指定注册中心协议
registry.address 是注册中心的地址加端口号
protocol.name 是分布式固定是dubbo,不要改。
base-package 注解方式要扫描的包
port 是服务提供端为zookeeper暴露的端口,不能跟别的dubbo提供端重复。

 

消费方

@Autowired改成@Reference  com.alibaba.dubbo.config.annotation.Reference

application.properties

 1 spring.dubbo.application=user-web
 2 # dubbo
 3 spring.dubbo.protocol.name=dubbo
 4 # zookeeper
 5 spring.dubbo.registry.address=192.168.239.139:2181
 6 # zookeeper
 7 spring.dubbo.registry.protocol=zookeeper
 8 # dubbo
 9 spring.dubbo.base-package=com.xxx.xxx
10 spring.dubbo.consumer.timeout=600000
11 spring.dubbo.consumer.check=false

consumer.timeout  是访问提供端服务的超时时间,默认是1000毫秒

consumer.check 是启动消费端时,是否检查服务端能否正常访问。如果选择true,那启动消费端时,必须保证提供端服务正常,否则接口无法注入。

 

dubbo在进行dubbo协议通讯时,需要实现序列化接口(封装的数据对象)
dubbo的consumer在三秒钟之内每间隔一秒进行一次重新访问,默认一秒钟超时,三次访问之后会直接抛超时异常,所以我们在开发阶段,可以将consumer设置的超时时间延长,方便断点调试

# 设置超时时间
spring.dubbo.consumer.timeout=600000
# 设置是否检查服务存在
spring.dubbo.consumer.check=false

 

 

 

  

 

以上是关于Dubbo01的主要内容,如果未能解决你的问题,请参考以下文章

Dubbo——初识Dubbo框架使用直连方式实现Dubbo

Dubbo——初识Dubbo框架使用直连方式实现Dubbo

Dubbo学习总结 01 简单介绍

dubbo--01--项目简单搭建

dubbo源码分析01:SPI机制

dubbo源码实践-总结