zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
    纷享集成API函数注意点
    纷享开发注意事项:
    Oracle操作表的常见语法
    数据库中的自连接怎么理解
    decode()和SQL语法case表达式
    浮点数之间的等值判断,基本数据类型不能用==来比较,包装数据类型不能用equals来判断
    vue-seamless-scroll 无缝滚动
    vue 实现表格无缝滚动
    echarts5 在vue3 中tooltip显示不出来
  • 原文地址:https://www.cnblogs.com/quyangyang/p/11617320.html
Copyright © 2011-2022 走看看