Dubbo剖析-搭建一个简单的分布式系统(2)

一、前言

前面时间基于Spring的xml配置的方式搭建了一个简单的包含服务提供(Provider),服务注册中心(Registry),服务消费(Consumer)的分布式系统。本节我们不使用Spring配置方式,使用DUBBO提供的API来做。

二、服务注册中心

服务注册中心内容不变使用zookeeper实现服务注册中心。

  • 首先你需要在 http://zookeeper.apache.org/releases.html 下载一个zk的包,并解压,本文作者使用的是zookeeper-3.4.11这个版本
  • 然后修改zookeeper-3.4.11/conf文件夹里面的zoo.cfg文件里面的dataDir为一个存在的以data结尾的文 件

image.png

  • 然后在zookeeper-3.4.11/bin 下运行sh zkServer.sh start-foreground 就会启动zk,会有下面输出

image.png 可知zk在端口2181进行监听。

至此服务注册中心搭建完毕

三、服务提供与消费

本demo使用maven聚合功能,demo目录如下

image.png

  • 其中Consumer模块为服务消费者
  • 其中Provider模块为服务提供者
  • 其中SDK模块是一个二方包,用来存放服务提供者所有的接口,是为了代码复用使用。

3.1 SDK模块

里面就定义了一个接口,代码如下:

image.png

在该模块执行mvn clean install 命令会按照该模块的jar到本地仓库。

3.2 服务提供模块

在该模块引入SDK模块,其实是为了使用UserServiceBo这个接口。 然后UserServiceImpl实现代码如下:

image.png

测试类TestProvider代码如下:

image.png

运行上面代码,在控制台会输出如下:

image.png

说明该服务已经注册到了zk.

3.2 服务消费模块

首先引入SDK 二方包 测试类代码如下:

image.png

执行代码输出如下:

image.png

说明已经消费到了服务提供者的服务了。

四、总结

本节使用API的方式搭建了一个服务提供(Provider),服务注册中心(Registry),服务消费(Consumer)的分布式系统。在非Spring环境下,可以尝试使用这种方式。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏守望轩

Visual Studio 2008 每日提示(三十三)

#331、让在文件标签里后移的文件标签保留到最近使用的位置 原文链接:You can keep recently-used files from fallin...

33540
来自专栏云计算教程系列

如何在CentOS 7上使用Postgres,Nginx和Gunicorn设置Django

Django是一个功能强大的Web框架,可以帮助您启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何与生...

18830
来自专栏C/C++基础

Linux命令(5)——shutdown命令

使用shutdown命令时,在系统关机前,可以通知所有登录者系统将要关闭。此时login指令会被冻结,新用户将不能再登录,这是推荐使用的安全关机方式。关机之前,...

12440
来自专栏华章科技

收藏 | Linux常用156个命令汇总!

linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的...

21720
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Apache和mod_wsgi为Django应用程序提供服务

Django是一个功能强大的Web框架,可以帮助您快速启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何...

17700
来自专栏Java架构沉思录

每天学点Linux命令之umask

在进入今天的主题之前,我们先来回顾一下Linux文件权限的相关知识点。Linux里的文件权限可分为3组,分别是文件拥有者、同个群组的其他用户、不同群组的其他用户...

12010
来自专栏云计算教程系列

如何在Debian 9上安装Apache Tomcat 9

Apache Tomcat是一个Web服务器和servlet容器,用于为Java应用程序提供服务。Tomcat是Apache Software Foundati...

61740
来自专栏云计算教程系列

如何使用Apache驱动Django

Django是一个功能强大的Web框架,可以帮助您快速启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码。但是其也需要...

33050
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38840
来自专栏北京马哥教育

CentOS系统启动流程你懂否

一、Linux内核的组成 相关概念: Linux系统的组成部分:内核+根文件系统 内核:进程管理、内存管理、网络协议栈、文件系统、驱动程序。 ...

38450

扫码关注云+社区

领取腾讯云代金券