dubbo Demo的实现

什么是dubbo

dubbo是阿里巴巴开源出来的一个分布式框架,是一个面向服务的框架(soa)基础框架。目前分为dubbo(版本是2.5.4)和dubbox(版本是2.8.4),dubbo这个是当当网集成了restful以及序列化之后。

double的实现

1、一切学习都是在循序渐进,MVC的项目结构是比较熟悉的,分为dao数据操作层(mybatis);业务实现层(service);控制层(包含视图显示)。然后dubbo抽离了服务层与数据操作层成服务提供者,抽离了控制层成为服务的消费者,这样传统的mvc项目就从理解上过渡到dubbo上,为什么会有这种转变,当然是需求。至于dubbo的优势,暂且不表。

2、dubbo分为:Provider服务提供方,Consumer服务消费方,Register注册中心(Monitor监控,Container服务运行容器,会使用就行,开发人员没有必要去细看)

*2.1、Provider 远程发布服务到注册中心
*2.2、Consumer 去注册中心发现服务并消费
*2.3、服务的发现与注册的注册中心、这里使用zk框架,进行服务的集群式注册暴露与发现消费
这里,使用虚拟机对安装三台桥接模式centos7进行zk集群的搭建.
*2.4、虚拟机上三台centos节点安装,网络的设置以及防火墙的关闭linux的操作,zk集群的搭建等与本次dubbo总结无关,不一一列举。

3、dubbo服务提供方的实现

*这里参考官网dubbo.io
*下载导入相关架包,建议使用maven项目,只需引入依赖,spring、dubbo、zk的。
*声明一个接口service即:具体提供的服务,实现类Impl打印hello world,及服务提供方提供了一个打印hello world的服务。
*项目启动的实现类,采用main方法启动spring提供的ClassPathXmlApplicationContext类进行加载dubbo的配置文件。
*dubbo配置文件如下:

  • 注册中心用来注册服务:<dubbo:registry address=“zookeeper://url” />
  • 暴露服务的端口号:<dubbo:protocol name=“dubbo” port=“20880” >
  • 具体暴露的服务:<dubbo:service interface=“”>

4、dubbo服务消费者的实现

  • 这里参考官网dubbo.io
  • 下载导入相关架包,建议使用maven项目,只需引入依赖,spring、dubbo、zk的。
  • 声明一个接口service即:具体引用的服务与提供方一致。用来具体消费服务时声明
  • 项目启动的实现类,采用main方法启动spring提供的ClassPathXmlApplicationContext类进行加载dubbo的配置文件,获取对应的服务服务类然后打印hello world
  • dubbo配置文件如下:
  • 注册中心用来发现已经被提供方注册服务:<dubbo:registry address=“zookeeper://url” />
  • 具体消费的服务:<dubbo:reference interface=""/>

5、dubbo的demo实现的遇到的坑点

  • 启动顺序:zk,服务提供方,服务消费方,成功打印hello world
  • 首先搭建zk集群时,忘记关闭各个节点的防火墙,vim编辑zk环境变量时,需要source一下,才能生效。

这里只写逻辑,不写具体实现细节。

对dubbo学习的补充

*dubbo一般服务提供方provider,都不在具体的配置文件中进行配置,而是在具体的服务接口中进行指定服务的路径,消费者生产者生成以及消费数据的类型,具体的服务实现类中进行服务的逻辑书写,以及指定服务的类型,以及重试机制等内容
例如:
服务接口:
1.@Path("/simpleService")
2.@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})
3.@Produces({ContentType.APPLICATION_JSON_UTF_8, ContentType.TEXT_XML_UTF_8})
服务实现类:
1.@Service(“simpleService”)
2.@com.alibaba.dubbo.config.annotation.Service(interfaceClass=bhz.service.SimpleService.class, protocol={“dubbo”}, retries=0)

服务的消费者中需要提供对应需要进行消费的服务。
dubbo是sop服务,同时也对restful协议进行了集成,只需要protocol便签中进行指定就ok了
通过浏览器的提交都是get方式进行的提交
rest时,需要对指定服务器类型,端口,上下文路径,以及最大连接数等属性。
dubbo同时集成了了性能强健的序列化框架kyro,进行高速的序列化操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值