最近为了熟悉Dubbo远程过程调用架构的使用,并结合SSM+Maven整合了简单的一套项目实战

直接看项目结构图

各模块介绍
dubbo-common:存放项目需要的公众类,像查询模型、数据库实体模型等
dubbo-config:存放项目所需的公众配置文件,像日志、数据库连接信息配置文件等
dubbo-customer:Dubbo框架的服务消费方,也是http请求的入手
dubbo-interface:存放连接服务消费方和服务提供方的公共接口
dubbo-parent:存放整个项目所需的依赖,是其他模块的父类
dubbo-provide:Dubbo框架的服务提供方,负责处理业务逻辑和数据库请求

一般也有人把数据库操作单独整合成一个模块(dubbo-dao),其实都一样…

前置工作:安装注册中心Zookeeper,我选择的是在linux系统下安装,安装步骤详情网上有很多教程
注意:安装配置完之后记得打开该linux系统2181端口的防火墙

具体代码实现细节这里就不过多介绍了,这算是Dubbo最简单的入门应用了吧。

讲一下我在使用过程中遇到的一些问题:

  1. 要将dubbo-common中的实体模型,查询模型等实现序列化接口(就是在服务消费方和服务提供方之间传递或使用的对象)

  2. com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response...
    简单地说就是dubbo服务超时
    dubbo默认的时间是500ms,超过这个时间它会重新访问service层,最多尝试三次

    所以就发生了下面的一个很奇怪的现象:
    我第一次在浏览器访问服务消费方的接口,报500这个 com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response...异常(连接服务提供方超时)
    但是第二次回车,居然就访问成功了(访问服务提供方没有超时)

  3. 设置超时时间:
    规则:
    1.Consumer端配置优于Provider配置,优于全局配置;
    2.方法级配置别优于接口级别优于全局配置;
    根据规则1,纵使消费端配置优于服务端配置,但消费端配置超时时间不能随心所欲,需要根据业 务实际情况来设定。如果超时时间设置得太短,复杂业务本来就需要很长时间完成,服务端无法在设 定的超时时间内完成业务处理;如果超时时间设置太长,会由于服务端或者网络问题导致客户端资源大量线程挂起

Dubbo服务消费端,全局超时配置

<dubbo:consumer timeout=“5000” />

Dubbo服务消费端指定接口或者接口中方法配置超时

<dubbo:reference interface=“com.fei.CustomerrService” timeout=“3000”><dubbo:method name=“sayHello” timeout=“5000” />
</dubbo:reference>

Dubbo服务提供端,全局超时配置

  <dubbo:provide timeout=“5000” />

Dubbo服务提供端指定接口或者接口中方法配置超时

<dubbo:service interface=“com.fei.CustometService” timeout=“3000”><dubbo:method name=“sayHello” timeout=“5000” />
</dubbo:service>

SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点相关推荐

  1. Maven+SpringMVC+Dubbo+zookeeper 简单的入门demo配置

    参考:http://blog.csdn.net/aixiaoyang168/article/details/51362675 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调 ...

  2. ssm分布式+dubbo+zookeeper

    注:由于是学习阶段搭建的项目,命名和代码很多不规范 基本准备 创建maven的父项目 注意:父项目为maven project,直接创建一个简单工程 将ssm项目中的模块抽出分别创建maven的子项目 ...

  3. Spring+Dubbo+Zookeeper简单框架与使用

    为什么80%的码农都做不了架构师?>>>    例子参考地址:http://www.cnblogs.com/Javame/p/3632473.html 一.实例搭建 1.搭建框架前先 ...

  4. SSM+bootstrap4+mysql+redis原创项目实战:搭建校园二手交易网

    项目已部署到阿里云:hbxytrade.top 本文更新时间:2020/3/7,更新内容:redis缓存中间件(涉及多条件查询).物品管理界面(更新.上架.下架等操作).阿里云部署项目 代码地址: h ...

  5. ajax ssm 页面跳转_ssm项目实战实现页面的局部刷新功能

    好的各位小伙伴 继续学习知识了 ajax_json 咱们之前用SSM三大框架整合,实现了用户的增删改查功能.今天主要是将之前实现的用户功能,修改成 ajax 的方式,实现页面的局部刷新功能. 首先来实 ...

  6. SSM整合练手简单项目

    用户注册登录页面编写 过程 1.创建一个数据库 CREATE DATABASE `ssmmyself`;USE `ssmmyself`;DROP TABLE IF EXISTS `user`;CREA ...

  7. ssm互联网金融 高级进阶 项目实战(完整)

    |____log4j.properties |____atcrowdfunding课件.rar |____apache-maven-3.2.2-bin.zip |____项目课件           ...

  8. SpringBoot+Dubbo+Zookeeper分布式项目打包时子模块依赖找不到解决方案

    我的个人网站:等不见天亮等时光 问题描述:子模块打包依赖其他的子模块,打包显示找不到jar包 解决方案:由于springboot打包和maven打包最后出来的jar包不同需要在pom中新增以下插件 & ...

  9. phpstudy简单项目实战——留言板之第一弹

    跟着PHP中文网学做留言板-- 一.数据库的创建 1.首先打开你电脑中已经下载完成的phpstudy(没有下载的可自行去下载) 2.点击MySQL管理器->phpMyAdmin->执行(用 ...

最新文章

  1. Android LruCache 压缩图片 有效避免程序OOM
  2. CentOS常用环境配置(MySQL、jdk、Redis、Nginx)
  3. Ubuntu16.04通过wine环境安装微信与QQ等软件
  4. [译] 如何学习 CSS
  5. python3中map的用法_python3内置函数map
  6. ASP.NET留言板 文字加表情
  7. c语言void nzp,二级C语言考试辅导教程第五章:函数[5]
  8. lnmp一键安装包 mysql_mysql - LNMP一键安装包
  9. 如何清除计算机搜索框内的搜索历史记录,如何清除搜索框关键字记录
  10. 设置广告类型的html小窗口,网页两边悬浮窗广告代码
  11. 微信小程序跳转公众号图文内容
  12. 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
  13. 利用 Eclipse Visual Editor 项目构建 GUI 应用程序
  14. Android主流HOOK框架介绍与应用--游戏破解游戏外挂的必杀技
  15. python3GUI--仿做一个网易云音乐By:PyQt5(附下载地址)
  16. vue获取焦点、失去焦点
  17. 生产排程系统_APS生产排程系统应用-缩短产品生产周期
  18. 新产品Digi XBee RR无线模块迁移指南
  19. 阿里云注销备案流程及注销备案常见问题与解答
  20. 小学计算机教案模板范文,小学信息技术教案模板锦集5篇范本

热门文章

  1. 云盾idaas登陆_移动端扫码登录IDaaS平台
  2. js console 输出到文件_Node.js核心入门
  3. Linux允许61440端口,释放对某端口的占用
  4. java 标准输入流 关闭 打开_java输出流关流疑问,以下这个程序的in和out是否要关闭?...
  5. 关于二手交易用户指南怎么写_让用户拍案叫绝文案怎么写?试试这3个方法
  6. inventor扳手制作视频_弱电工程视频监控系统施工方案,可作施工组织设计
  7. java uuid静态方法_Java UUID version()方法与示例
  8. kotlin 编译时常量_Kotlin程序| 编译时常量示例
  9. python中assert_在Python中带有示例的assert关键字
  10. 颜值爆表!Redis 官方可视化工具来啦,功能真心强大!