使用SpringBoot+Dubbo搭建微服务笔记

本文介绍了使用SpringBoot和Dubbo搭建微服务的详细步骤,包括设置Zookeeper作为注册中心,部署Dubbo Admin,创建API项目,搭建服务提供者和消费者,以及上线运行和配置容错、屏蔽、服务降级和负载均衡。文章还提供了源码分享链接。
摘要由CSDN通过智能技术生成

一、Dubbo介绍

引用官方的一段介绍

Apache Dubbo (incubating) |ˈdʌbəʊ| is a high-performance, java based RPC framework open-sourced by Alibaba. As in many RPC systems, dubbo is based around the idea of defining a service, specifying the methods that can be called remotely with their parameters and return types. On the server side, the server implements this interface and runs a dubbo server to handle client calls. On the client side, the client has a stub that provides the same methods as the server.

Dubbo是阿里出的一个高性能的分布式微服务框架,它的特点是性能高、界面友好、文档齐全(特别是中文文档),是很多中小型公司快速搭建微服务的首选技术。前段时间被阿里重新进行维护,并进入Apache孵化器。迁移到Apache后也推出了新的starter,简单试用后感觉不错,为此特地写下这一系列笔记,用以记录。(整个项目的源码在最后一章,感兴趣的童鞋可以下载自己搭建试试,也可以将其作为脚手架搭建你自己的微服务)

二、搭建注册中心

在dubbo中,每一个服务都是分布式的,消费者与提供者的关系并不是一对一的关系,而是一对多,并且服务提供者的实例位置是未知的,如果都由开发者使用静态文件去维护这个关系显示不合适的,一方面是徒增工作量,另一方面是灵活度不高,如果服务提供者更换了服务器地址,那么需要重新配置等,所以目前比较推崇的方案是所有服务提供者均主动将自己的信息注册到同个地方中,而消费者只要一律从这个地方取他需要的东西即可,这个地方就是所谓的注册中心。目前dubbo可以选择的注册中心包括zookeeper、redis等,一般建议使用zookeeper,下面演示一下在windows中如何搭建zookeeper注册中心。

1、下载zookeeper

直接在官网的镜像站下
点击下载

2、解压并配置zookeeper

为了演示,直接使用官方示例配置。把解压出来的\zookeeper-3.4.12\conf\zoo_sample.cfg 文件名改为zoo.cfg即可,如下图:
zoo.cfg

3、运行zookeeper注册中心

双击运行/zookeeper-3.4.12/bin/zkServer.cmd,出现以下窗口代表运行成功。
zookeeper注册中心

三、搭建Dubbo Admin

在Dubbo中,一大杀器就是它的可视化监控界面,在这个界面中可以查看服务者、提供者的数量、状态等,并对服务降级、容错、屏蔽等提供了可视化操作。下面演示如何搭建Dubbo Admin。

1、下载源码并解压

点击下面地址下载dubbo admin项目源码
点击下载
下载后解压出来,如下图:
这里写图片描述

2、打包

打开cmd,进入第一步解压出来的dubbo-admin文件夹中,执行mvn clean package
(ps:要是提示未存在mvn命令,就把maven文件夹的bin目录添加到系统环境变量PATH中)
打包

3、配置dubbo admin

打开上面那步打出来的war包(\incubator-dubbo-ops-master\dubbo-admin\target\dubbo-admin-2.0.0.war),编辑WEB-INF文件夹中的dubbo.properties文件,如下图
这里写图片描述
将红框处的IP地址改为你的注册中心的地址,由于我们的注册中心是在本地运行的,故此处无需做修改。
dubbo admin

4、运行Dubbo Admin

将war包改名为ROOT.war后放到tomcat的webapp目录中,然后运行tomcat。使用浏览器打开http://127.0.0.1:8080,提示输入账号密码,账号和密码默认均为root,登陆后的界面如下:
界面

四、搭建API项目

由于Dubbo是采用RPC调用方式,这也是与Spring Cloud比较大的区别之一。在Spring Cloud中,服务通过HTTP接口提供给其它服务调用,对于调用者与被调用者来说,只要双方保证满足http接口的契约即可,但是在dubbo中,是严格要求调用接口的类路径、参数等双方一致。所以需要构建一个API项目,该项目里面存放服务接口即公共实体,双方依赖这个项目完成远程调用。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.czh.dubbo</groupId>
  <artifactId>dubbo-common</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>
</project>

公共实体-People.java

package com.czh.dubbo.common.entity;

import java.io.Serializable;

public class People implements Serializable {
   
    /**
     * 
     */
    private static final long serialVersionUID = 1415852192397895853L;
    // 人员编号
    private int id;
    // 姓名
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值