dubbo如何使用

相关工具的概念

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包地址

        
            com.alibaba
            dubbo
            
                
                    org.springframework
                    spring
                
                
                    org.jboss.netty
                    netty
                
            
        
        
            org.apache.zookeeper
            zookeeper
        
        
            com.github.sgroschupf
            zkclient
        
2、后台服务:在service的spring配置文件中加入dubbo发布服务的内容
    
    
             //项目名称
                //zookeeper注册中心服务器的地址和端口号
    
    
    
    

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

3、前台服务:在springmvc的配置文件中加入
    
    
                   //zookeeper服务器地址和端口号
           //暴露的服务接口

二、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如何使用)