一、先来一张图
说起 Dubbo,相信大家都不会陌生!阿里巴巴公司开源的一个高性能优秀的服务框架,可以使得应用可通过高性能的 RPC 实现服务的输出和输入功能,同时可以和 Spring 框架无缝集成。
节点角色说明:
- Provider:暴露服务的服务提供方
- Consumer:调用远程服务的服务消费方
- Registry:服务注册与发现的注册中心
- Monitor:统计服务的调用次数和调用时间的监控中心
- Container:服务运行容器
二、实现思路
今天,我们以一个用户选择商品下订单这个流程,将其拆分成3个业务服务:用户中心、商品中心、订单中心,使用 Springboot + Dubbo 来实现一个小 Demo!
服务交互流程如下:
本文主要是介绍 Springboot 与 Dubbo 的框架整合以及开发实践,而真实的业务服务拆分是一个非常复杂的过程,比我们介绍的这个要复杂的多,上文提到的三个服务只是为了项目演示,不必过于纠结为什么要这样拆分!
好了,废话也不多说了,下面我们开撸!
- 1.在虚拟机创建 4 台 centos7,任意选择一台安装 zookeeper
- 2.构建微服务项目并编写代码
- 3.在 centos7 上部署微服务
- 4.远程服务调用测试
三、zookeeper安装
在使用 Dubbo 之前,我们需要一个注册中心,目前 Dubbo 可以选择的注册中心有 zookeeper、Nacos 等,一般建议使用 zookeeper!
首先在安装 Zookeeper 之前,需要安装并配置好 JDK,本机采用的是Oracle Java8 SE。
- 安装JDK(已经安装可以忽略)
yum -y install java-1.8.0-openjdk
- 查看java安装情况
java -version
JDK安装完成之后,下载安装Zookeeper
#创建一个zookeeper文件夹 cd /usr mkdir zookeeper #下载zookeeper-3.4.14版本 wget http://mirrors.hust.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz #解压 tar -zxvf zookeeper-3.4.14.tar.gz
创建数据、日志目录
#创建数据和日志存放目录 cd /usr/zookeeper/ mkdir data mkdir log #把conf下的zoo_sample.cfg备份一份,然后重命名为zoo.cfg cd conf/ cp zoo_sample.cfg zoo.cfg
配置zookeeper
#编辑zoo.cfg文件 vim zoo.cfg
启动Zookeeper
#进入Zookeeper的bin目录 cd zookeeper/zookeeper-3.4.14/bin #启动Zookeeper ./zkServer.sh start #查询Zookeeper状态 ./zkServer.sh status #关闭Zookeeper状态 ./zkServer.sh stop
出现如下信息,表示启动成功!