dubbox在企业中的应用

我们摒弃其它教程粗陋的思路,当你看到这篇文章之时,代表已经做出选择;这里只是做细微讲解,demo请到
dubbo github:https://github.com/alibaba/dubbo
dubbox github:https://github.com/dangdangdotcom/dubbox
下载详细代码,查看事例

大纲

  • 官方文档
  • 项目结构
  • 环境配置
    • 提供者
    • 消费者
  • dubbo协议
    • 默认Hessian序列化
    • kyro序列化

一、官方文档

dubbo:http://dubbo.io/


二、项目结构

dubbox在企业中的应用_第1张图片
项目结构图
  • ems-***-api:包含model数据对象、service层接口
  • ems-***-provider:是对service接口的实现和dao层
  • ems--rest:restful协议实现层,引用了ems--api
为什么会是这样的结构?

项目中项目让其它消费端使用该接口,但是不想让对方了解业务的具体实现;当项目发布部署后,我们只需要把ems-***-api给消费端使用,dubbo即可调用远程实现层;

项目架构说明:dubbo进入到我的项目


二、环境配置

提供者

ems-cic-provider的pom.xml中加和ems-cic-api的包


dubbox在企业中的应用_第2张图片
提供者结构
  • src/main/java:java代码
  • src/main/assembly:
    assembly.xml打包配置文件
    conf包含数据库连接、dubbo、redis等相关参数(properties)文件
  • src/main/resources
    META-INF/spring/dubbo-provider.xml:dubbo配置文件
//dubbo-provider.xml


    
    
    

    

    

    

    

    
    
    
    
    
     
     


//dubbo.properties
dubbo.application.name=ems-uic-provider
dubbo.protocol.host=127.0.0.1
dubbo.protocol.port=20810
dubbo.protocol.timeout=2000000
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.log4j.file=logs/dubbo.log
dubbo.log4j.level=WARN

这个地方我需要唠叨一下,

  • dubbo.provider timeout:当提供者没有在指定时间内返回数据就会报错,当数据源查询数据比较慢就会出现此类问题
  • dubbo.provider retries:当因指定时间内未返回数据,是否重复调用此接口,当插入数据时,重复执行会造成数据重复
  • dubbo.protocol host:在这里指定内部ip在内网才可以使用,最开始我们没有指定此项,跨服务器消费者启动会出现接口无法访问

此处无法列举出所有问题,有其它问题可以评论

消费者


    
    
    
    
    

    

    
    
    
    
     
    
    
     
     
    
    
    
    
     
    

三、dubbo协议

  • 默认Hessian序列化
//默认是Hessian不指定即可

  • kyro序列化
//serialization="kryo"

接下来,会涉及到dubbox restful、mycat、jstorm、redis、mongodb、react+redux


很高兴认识你,我们都一样,有过迷茫却从未放弃;害怕孤独可从不寂寞。

你可能感兴趣的:(dubbox在企业中的应用)