手把手利用springboot+dubbo,构建分布式微服务,全程注解开发

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。

一、先来一张图
说起 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

出现如下信息,表示启动成功!
在这里插入图片描述

四、项目介绍

1.springboot版本:2.1.1.RELEASE
2.zookeeper版本:3.4.14
3.dubbo版本:2.7.3
4.mybtais-plus版本:3.0.6
5.数据库:mysql-8
6.构建工具:maven
7.服务模块:用户中心、商品中心、订单中心

五、代码实践
5.1、初始化数据库
首先在 mysql 客户端,创建3个数据库,分别是: dianshang-user 、 dianshang-platform、 dianshang-business 。

在 dianshang-user 数据库中,创建用户表 tb_user,并初始化数据在这里插入图片描述

在 dianshang-platform 数据库中,创建商品表 tb_product,并初始化数据
在这里插入图片描述
在这里插入图片描述

5.2、创建工程
数据库表设计完成之后,在 IDEA 下创建一个名称为 dianshang 的 Springboot 工程。

最终的目录如下图:
在这里插入图片描述
目录结构说明:

1.dianshang-common:主要存放一些公共工具库,所有的服务都可以依赖使用
2.dianshang-business:订单中心,其中 api 模块主要是提供dubbo服务暴露接口, provider模块是一个 springboot 项目,提供服务处理操作
3.dianshang-user:用户中心,其中 api 模块和 provider 模块,设计与之类似
4.dianshang-platform:商品中心,其中 api 模块和 provider 模块,设计与之类似
在父类 pom 文件中加入 dubbo 和 zookeeper 客户端,所有依赖的项目都可以使用。

<!-- lombok -->
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.4</version>
    <scope>provided</scope>
</dependency>

<!-- Dubbo Spring Boot Starter -->
<dependency>
    <groupId>org.apache.dubbo</groupId>
    <artifactId>dubbo-spring-boot-starter</artifactId>
    <version>2.7.3</version>
</dependency>
<!-- 因为使用的是 zookeeper 作为注册中心,所以要添加 zookeeper 依赖 -->
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.4.13</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </exclusion>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions
  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值