在互联网快速发展的趋势下,分布式开发已经非常普遍,分布式系统是若干个系统的集合,使用分布式开发极大地减低了服务器压力。而Dubbo是一个高性能rpc框架,解决了分布式中相互调用的问题。接下来是基于Dubbo框架开发的流程。
服务是 Dubbo 中的核心概念,一个服务代表一组 RPC 方法的集合,服务是面向用户编程、服务发现机制等的基本单位。Dubbo 开发的基本流程是:用户定义 RPC 服务,通过约定的配置 方式将 RPC 声明为 Dubbo 服务,然后就可以基于服务 API 进行编程了。对服务提供者来说是提供 RPC 服务的具体实现,而对服务消费者来说则是使用特定数据发起服务调用。
-----摘自Dubbo官网[ ](https://dubbo.apache.org/)
第一种方式:直连方式
Dubbo使用直连的方式,一端暴露接口,一端使用接口。
实例源码:
思路:写服务提供者、写服务消费者
一、服务提供者
1、写接口:编写接口,用于步骤 一-2 实现并暴露。
创建一个工程,添加依赖(spring依赖,springmvc依赖,dubbo依赖)、写实体类、写业务层接口。
依赖如下:
实体类如下:(这里用到两个实体类,Serializable使类序列化)
接口如下:(接口最终将会被暴露)
来到这一步后,可以使用maven进行install操作。
2、暴露接口:实现 一-1 的接口,并且暴露接口,用于步骤 二-1 使用。
创建一个工程,添加依赖(spring依赖、springmvc依赖、dubbo依赖、接口提供者依赖)、写接口实现类、写dubbo配置文件(声明服务提供者、设置协议、端口、暴露接口)、注册监听器读取spring配置文件(dubbo配置文件)
依赖如下:
接口实现类如下:
dubbo配置文件:
注册监听器:
完成之后通过tomcat进行部署,如果是在同一台电脑上,为了模拟两台电脑,端口号不能和服务消费者一致。
二、服务消费者
1、使用接口:通过调用步骤 一-2 的接口,来进行消费。
创建一个工程,添加依赖(spring依赖、springmvc依赖、dubbo依赖、接口提供者依赖)、写springmvc配置文件、写dubbo配置文件(声明服务消费者、写访问地址)、写控制器类、写中央调度器(读取springmvc配置文件,dubbo配置文件可以通过中央调度器或者监听器读取)
依赖如下:
springmvc配置文件:
dubbo配置文件:
控制器类:
中央调度器:
jsp文件:
最终效果:
===============================================================
第二种方式:使用注册中心(zookeeper,可以在官网下载安装,这里用了3.7版本)
Dubbo使用注册中心的方式,通过注册中心,可以记录接口,方便消费者使用。
实例源码:https://github.com/Yuqn/zookeeperPro.git
思路:写服务提供者、写服务消费者
一、服务提供者
1、写接口:编写接口,用于步骤 一-2 实现并暴露。
创建一个工程,添加依赖(spring依赖,springmvc依赖,dubbo依赖)、写实体类、写业务层接口。
依赖如下:(springmvc覆盖了spring,可以不加spring依赖)
实体类如下:(这里用到两个实体类,Serializable使类序列化)
接口如下:(接口最终将会被暴露)
来到这一步后,可以使用maven进行install操作。
2、暴露接口:实现 一-1 的接口,并且暴露接口,用于步骤 二-1 使用。
创建一个工程,添加依赖(spring依赖、springmvc依赖、dubbo依赖、接口层依赖、zookeeper依赖)、写接口实现类、写dubbo配置文件(声明dubbo、设置协议和端口、声明注册中心、暴露接口)、注册监听器读取spring配置文件(dubbo配置文件)
依赖如下:
接口实现类如下:(这里为了方便,不与数据库打交道)
dubbo配置文件如下:
配置监听器:
完成之后通过tomcat进行部署,如果是在同一台电脑上,为了模拟两台电脑,端口号不能和服务消费者一致。
二、服务消费者
1、使用接口:通过调用步骤 一-2 的接口,来进行消费。
创建一个工程,添加依赖(spring依赖、springmvc依赖、dubbo依赖、接口层依赖、zookeeper依赖)、写springmvc配置文件、写dubbo配置文件(声明消费者、声明注册中心、引用接口服务)、写控制器类、写中央调度器(读取springmvc配置文件,dubbo配置文件可以通过中央调度器或者监听器读取)
依赖如下:
dubbo配置文件:
springmvc配置文件:
控制器类如下:
注册中央调度器:
写jsp文件:
完成之后通过tomcat进行部署,如果是在同一台电脑上,为了模拟两台电脑,端口号不能和服务提供者一样。
最终效果:(需先执行zkserver.cmd脚本文件)
这就是Dubbo的一些基本用法,希望能够帮到你们。除了Dubbo框架外,还有其他高性能rpc框架,比如springcloud等,后续会继续分享。
以上内容可能存在不足或错误,如有发现请指出来。