Dubbox入门配置


# Dubbox框架学习
Dubbox是一个分布式服务框架,前身是阿里巴巴的开源项目Dubbo,后来阿里不再维护此框架;进而当当网进行了进一步维护,为了和Dubbo区分就取名为Dubbox。

简单而言,在Dubbox中主要存在三种角色:注册中心(Registry)、 提供者(Provider)、消费者(Customer)。
而作为分布式框架之一的Dubbox就能够实现消费方和提供方之间的远程调用,即对分别部署在不同服务器端的服务提供了一个相互交互的平台。

<!--more-->
图解Dubbox框架:


**节点角色说明**
* Provider: 暴露服务的提供方
* Consumer: 调用远程服务的服务消费方
* Registry: 服务注册与发现的注册中心
* Monitor: 统计服务调用次数和调用时间的监控中心
* Container: 服务运行容器

**调用关系说明**
1. 服务容器负责启动、加载,运行服务提供者
2. 服务提供者在启动时,向注册中心注册自己提供的服务
3. 服务消费者在启动时,向注册中心订阅自己所需的服务
4. 注册中心返回返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台
6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

## 注册中心zookeeper
### 安装
#### 安装zookeeper
我们首先要将本地的zookeeper安装包发送到centos虚拟机上。(因为实际开发中服务器是不存在界面的,所以要学会使用命令行操作),这里就用SecureCRT软件操纵我们的CentOS服务器。

1. 在本机上安装SecureCRT软件(这里我使用的是MacOS系统,服务器使用的是`Centos`系统)。
2. 使用SecureCRT连接自己虚拟机上的服务器。
  * 首先我们要配置CentOS服务器是联网状态,否则无法连接。
  * 在centos的终端中输入`ifconfig`命令就能显示出来自己服务器的ip地址。
  * 使用SecureCRT新建一个连接,输入ip地址以及用户名、密码就能连接上。
3. 图解
  **创建新连接**

 
 
  **填写连接信息**
 
 
 
  **连接成功(服务器必须是联网状态)**
 
 

3. 使用SecureCRT上传文件到服务器
  * 服务器连接成功后,我们便可以将本地的zookeeper安装包上传到服务器上。在SecureCRT的命令窗口中输入命令`rz`,即会弹出来窗口选择要上传到服务器上的文件。详细请看 [博文](https://www.cnblogs.com/zhengyihan1216/p/6260667.html))
  * 上传完毕我们继续在SecureCRT窗口中输入`ll`命令可以看到自己上传的`zookeeper-xx.tar.gz`安装包。

4. 配置
  * 首先需要明白:因为在安装CentOS虚拟机是输入了用户名和密码,且没有其他配置,所以默认登录的用户就是偶同用户身份,那么上传的文件其实是在`/home/用户名/zookeeper-xx.tar.gz`。
  * 为了方便操作。本人进行了以下配置:
    > 解压缩文件:输入`tar zxvf zookeeper-xx.tar.gz`
    > 重命名文件夹:`mv zookeeper-xx zookeeper`
    > 获得root权限:`su -`输入密码即可获得root权限
    > 移动文件夹:`mv zookeeper /root/`,那么此时zookeeper文件夹的位置是:`/root/zookeeper`


### 启动
经过以上步骤,我们已经将zookeeper成功上传到了服务器并做了一些准备工作。下面我们开始部署并启动zookeeper。
1. 在`/root/zookeeper/`根目录下输入命令`mkdir data`,创建data文件夹。
2. 输入命令:`cd /root/zookeeper/conf/`,再输入命令`ll`可以查看此目录下的文件。
3. 重命名`zoo_sample.cfg`:输入命令`mv zoo_sample.cfg zoo.cfg`,则文件将命名为`zoo.cfg`。
4. 修改`zoo.cfg`:输入命令`vim zoo.cfg`,在vim下找到并修改为如下:`dataDir=/root/zookeeper/data`(注意路径),退出并保存。


5. 启动zookeeper:进入bin目录,输入`cd bin`;启动zookeeper,输入`./zkServer.sh start`,正常情况加便可以启动。


6. 停止zookeeper: `./zkServer.sh stop`;查看zookeeper状态: `./zkServer.sh status`


## Dubbox本地jar的部署和安装
这个特别需要**注意**,由于阿里不在维护此项目后,由当当网维护Dubbox,但是其并没有将jar提交到maven仓库中。因此我们去maven仓库中看到dubbo的最新版是2.5.3,
但其实最新版本的Dubbox的版本是2.8.x,如果我们直接使用maven仓库中的版本,会遇到各种连接不上远程服务器的问题。

这里我给出来自己中的Dubbox.jar,大家直接放到自己本地maven仓库中即可:[百度云链接](https://pan.baidu.com/s/1GGay2yaQszfIue3BtQRXkg)  密码:nq1l

pom中的坐标:
```
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>dubbo</artifactId>
    <version>2.8.4</version>            
</dependency>
```

## Dubbo-admin的部署
dubbo-admin是dubbo的管理工具,Github项目地址:https://github.com/alibaba/dubbo

但是我发现这个GitHub地址其实被重置了,真正访问的项目中并没有显示`dubbo-admin`,所以这里找了一个现成的war包`dubbo-admin.war`,传送门:[百度云连接](https://pan.baidu.com/s/17l9Bmlxz7vnni96T3rq0LQ)  密码:k8qs

### 安装过程
实际就是部署简单的war包到Tomcat下,至于Linux怎么安装Tomcat请参看百度,主要是以下几点:
1. 在服务器端安装Tomcat。
2. 将下载的`dubbo-admin.war`包部署到服务器上Tomcat的webapps目录下。
3. `cd tomcat/bin`进入bin目录中,输入`./startup.sh`即启动了Tomcat服务器。
4. 在本地浏览器上输入`服务器Ip:8080/dubbo-admin/`,会弹出来登录框,**注意:** 用户名:`root`;密码:`root`。

如图所示:



登录后:







<br/>

# 交流

如果大家有兴趣,欢迎大家加入我的Java交流群:671017003 ,一起交流学习Java技术。博主目前一直在自学JAVA中,技术有限,如果可以,会尽力给大家提供一些帮助,或是一些学习方法,当然群里的大佬都会积极给新手答疑的。所以,别犹豫,快来加入我们吧!

<br/>

# 联系

If you have some questions after you see this article, you can contact me or you can find some info by clicking these links.

- [Blog@TyCoding's blog](http://www.tycoding.cn)
- [GitHub@TyCoding](https://github.com/TyCoding)
- [ZhiHu@TyCoding](https://www.zhihu.com/people/tomo-83-82/activities)

猜你喜欢

转载自blog.csdn.net/TyCoding/article/details/80922727