博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
分布式服务治理框架dubbo
阅读量:4320 次
发布时间:2019-06-06

本文共 2459 字,大约阅读时间需要 8 分钟。

 

Dubbo最主要功能有两个

 1 RPC调用  

 2 SOA服务治理方案

Dubbo的架构

Dubbo常见的注册中心有2中,zookeeper以及redis

这篇文章讲解的是采用的zookeeper,要求读者对zookeeper有一定的认识。

 zookeeper相关知识看这里

服务的提供者Provider将服务注册到Registry

消费者Consumer需要从Registry中发现、监听到服务的变动

Provider需要运行在Container容器中

Monitor(监控中心) 主要是用来对服务的调用次数统计等。

 

以下主要是一个快速入门,怎么使用dubbo

我们需要创建多个项目

Provider (服务提供者) 包括实现类 一个项目,接口定义为一个项目

Consumer (服务消费者) 一个项目

 

这里我定义一个公用的pom项目来对maven依赖做一个统一的管理

 

整体项目采用maven构建,使用dubbox (2.8.4) ,并提供源码下载

 ======================================================================

test-parent (pom项目)主要定义jar版本信息

 

======================================================================

服务提供者接口定义(所谓的发布服务,就是将接口对外暴露,生产者和消费者都是需要引用接口的,所以在这里接口将在test-facade中提供)

 

这个项目主要是定义接口

主要代码如下

@Path("/userTestService")@Consumes({ MediaType.APPLICATION_JSON, MediaType.TEXT_XML })@Produces({ ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8 })public interface IUserTestService {	@GET	User getUserTest();	@GET	@Path("/testGet")	public void testget();}

  

注解代码说明:

  @Path:代表服务的访问路径,如“user”,则访问路径为domain:port/context/user,在方法上注解是相对类上面的。依次展开路径即可。

  @POST:服务请求的方式,支持POST、GET等。

  @Consumes:表示将接收到的数据自动转换为什么格式的,支持json和xml。

  @Produces:表示将结果返回时候输出为什么格式的,支持json和xml。

======================================================================

服务接口实现(一般来说,服务提供者我们使用注解开发)

 

部分代码如下

@Service@com.alibaba.dubbo.config.annotation.Service(interfaceClass = com.cc.facade.IUserTestService.class, protocol = { "rest",		"dubbo" })public class UserServImpl implements IUserTestService {	@Override	public User getUserTest() {		User user = new User();		user.setId(1);		user.setName("cc");		return user;	}	@Override	public void testGet() {		System.out.println("test=get");	}}

  

解释:

@com.alibaba.dubbo.config.annotation.Service 表示将该服务注册到dubbo

 

dubbo-provider.xml 文件内容如下 ,

 

 

 

======================================================================

服务消费者(一般使用xml配置

dubbo-provider.xml配置文件如下

  

最后,我们先运行

test-service/src/test/java/ProviderTest.java   main方法,注册服务到zookeeper

 

接着运行

test-consumer/src/test/java/ConsumerTest.java main方法

可以看到控制台打印

源码下载:https://pan.baidu.com/s/1KdUDjJZdmftsdXW4iQoGZA

注意:

1导入源码的时候注意修改zookeeper地址

 

2 dubbox并没有发布到maven中央仓库的包,目前代码在github上,需要自己down下来编译,基于maven开发的。

 

   项目GitHub地址:https://github.com/dangdangdotcom/dubbox

 

 

好了,快速入门到这里就结束了,更多细节请看 dubbo官方用户手册。

 

 

转载于:https://www.cnblogs.com/javabigdata/p/7565241.html

你可能感兴趣的文章
<Using parquet with impala>
查看>>
07-Java 中的IO操作
查看>>
通过镜像下载Android系统源码
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>
Kaldi中的Chain模型
查看>>
spring中的ResourceBundleMessageSource使用和测试示例
查看>>