美文网首页
dubbo如何使用

dubbo如何使用

作者: a86e8e27fc21 | 来源:发表于2019-04-23 23:17 被阅读0次

    相关工具的概念

    1. dubbo:

    是管理中间层的工具,在业务层到数据仓库间有非常多服务的接入和服务提供者需要调度,dubbo提供一个框架解决这个问题。注意这里的dubbo只是一个框架,至于你架子上放什么是完全取决于你的,就像一个汽车骨架,你需要配你的轮子引擎。这个框架中要完成调度必须要有一个分布式的注册中心,储存所有服务的元数据,你可以用zk,也可以用别的,只是大家都用zk。

    2、Zookeeper的作用:

    zookeeper用来注册服务和进行负载均衡,哪一个服务由哪一个机器来提供必需让调用者知道,简单来说就是ip地址和服务名称的对应关系。zookeeper通过心跳机制可以检测挂掉的机器并将挂掉机器的ip和服务对应关系从列表中删除。至于支持高并发,简单来说就是横向扩展,在不更改代码 的情况通过添加机器来提高运算能力。通过添加新的机器向zookeeper注册服务,服务的提供者多了能服务的客户就多了。

    3. zookeeper和dubbo的关系:

    Dubbo的将注册中心进行抽象,是得它可以外接不同的存储媒介给注册中心提供服务,有ZooKeeper,Memcached,Redis等。
    引入了ZooKeeper作为存储媒介,也就把ZooKeeper的特性引进来。首先是负载均衡,单注册中心的承载能力是有限的,在流量达到一定程度的时 候就需要分流,负载均衡就是为了分流而存在的,一个ZooKeeper群配合相应的Web应用就可以很容易达到负载均衡;资源同步,单单有负载均衡还不 够,节点之间的数据和资源需要同步,ZooKeeper集群就天然具备有这样的功能;命名服务,将树状结构用于维护全局的服务地址列表,服务提供者在启动 的时候,向ZK上的指定节点/dubbo/${serviceName}/providers目录下写入自己的URL地址,这个操作就完成了服务的发布。 其他特性还有Mast选举,分布式锁等。

    一、在maven项目中加入dubbo相关的配置文件

    1、在项目(包含发布和引用dubbo的项目)中pom.xml文件中加入duboo相关的jar包地址
    <!-- dubbo相关 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <exclusions>
                    <exclusion>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jboss.netty</groupId>
                        <artifactId>netty</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
            </dependency>
            <dependency>
                <groupId>com.github.sgroschupf</groupId>
                <artifactId>zkclient</artifactId>
            </dependency>
    
    2、后台服务:在service的spring配置文件中加入dubbo发布服务的内容
        <!-- 使用dubbo发布服务 -->
        <!-- 提供方应用信息,用于计算依赖关系 -->
        <dubbo:application name="e3-manager" />         //项目名称
        <dubbo:registry protocol="zookeeper"                  
            address="192.168.241.128:2181" />            //zookeeper注册中心服务器的地址和端口号
        <!-- 用dubbo协议在20880端口暴露服务 -->
        <dubbo:protocol name="dubbo" port="20880" />
        <!-- 声明需要暴露的服务接口 -->
        <dubbo:service interface="cn.e3mall.service.ItemService" ref="itemServiceImpl" timeout="600000"/>
    

    友情提醒:所有的pojo类必须实现序列化接口" Serializable ",因为通过网络传输必须经历以下步骤:
    java对象—>序列化—>io流网路传输—>反序列化—>java对象

    3、前台服务:在springmvc的配置文件中加入
        <!-- 引用dubbo服务 -->
        <dubbo:application name="e3-manager-web"/>
        <dubbo:registry protocol="zookeeper" address="192.168.241.128:2181" />               //zookeeper服务器地址和端口号
        <dubbo:reference interface="cn.e3mall.service.ItemService" id="itemService" />       //暴露的服务接口
    

    二、zookeeper注册中心的安装

    1、Zookeeper的运行环境是需要java的,建议安装oracle的java8.

    可去官网下载一个稳定的版本,然后进行安装:http://zookeeper.apache.org/

    2、解压后在zookeeper的conf目录下创建配置文件zoo.cfg,里面的配置信息可参考统计目录下的zoo_sample.cfg文件,我们这里配置为:
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/opt/zookeeper-data/
    clientPort=2181
    

    tickTime:指定了ZooKeeper的基本时间单位(以毫秒为单位);
    initLimit:指定了启动zookeeper时,zookeeper实例中的随从实例同步到领导实例的初始化连接时间限制,超出时间限制则连接失败(以tickTime为时间单位);
    syncLimit:指定了zookeeper正常运行时,主从节点之间同步数据的时间限制,若超过这个时间限制,那么随从实例将会被丢弃;
    dataDir:zookeeper存放数据的目录;
    clientPort:用于连接客户端的端口。
    启动一个本地的ZooKeeper实例

    cd /usr/zookeeper/zookeeper-3.4.6/bin
    ./zkServer.sh start
    

    检查ZooKeeper是否正在运行

    echo ruok | nc localhost 2181
    

    若是正常运行的话会打印“imok”。

    常用的其他命令:

    ./zkServer.sh stop //停止服务
    ./zkServer.sh status //查看服务状态

    三、dubbo监控中心的安装

    1、启动监控中心

    1、先下载dubbo-admin.war包
    2、下载apache-tomcat容器,放到合适的位置
    3、将dubbo-admin.war拷到容器的webapp的文件夹下
    4、启动tomcat容器:./startup.sh

    2、配置监控中心

    如果dubbo监控中心和zookeeper注册中心在一个服务器上则不用配置,如果不在一台服务器上的话,就需要修改相关配置文件:

    cd /usr/apache-tomcat-8.5.40/webapps/dubbo-admin/WEB-INF
    vim dubbo.properties
    //文件内容
    dubbo.registry.address=zookeeper://127.0.0.1:2181             //将前面的ip地址改成zookeeper服务器的地址
    dubbo.admin.root.password=root                                          //设置监控中心的密码
    dubbo.admin.guest.password=guest
    

    四、启动项目测试

    1、发现前台项目可以轻松的调用到暴露接口中的数据
    2、访问 http://192.168.241.128:8080/dubbo-admin/ 地址可以进入监控中心的管理页面

    用户名和密码默认为:root

    image.png

    可以查看各个项目之间的调用关系

    相关文章

      网友评论

          本文标题:dubbo如何使用

          本文链接:https://www.haomeiwen.com/subject/rhfigqtx.html