SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点
最近为了熟悉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最简单的入门应用了吧。
讲一下我在使用过程中遇到的一些问题:
要将dubbo-common中的实体模型,查询模型等实现序列化接口(就是在服务消费方和服务提供方之间传递或使用的对象)
com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response...
简单地说就是dubbo服务超时
dubbo默认的时间是500ms,超过这个时间它会重新访问service层,最多尝试三次所以就发生了下面的一个很奇怪的现象:
我第一次在浏览器访问服务消费方的接口,报500这个com.alibaba.dubbo.remoting.TimeoutException: Waiting server-side response...
异常(连接服务提供方超时)
但是第二次回车,居然就访问成功了(访问服务提供方没有超时)设置超时时间:
规则:
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简单项目实战以及易错注意点相关推荐
- Maven+SpringMVC+Dubbo+zookeeper 简单的入门demo配置
参考:http://blog.csdn.net/aixiaoyang168/article/details/51362675 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调 ...
- ssm分布式+dubbo+zookeeper
注:由于是学习阶段搭建的项目,命名和代码很多不规范 基本准备 创建maven的父项目 注意:父项目为maven project,直接创建一个简单工程 将ssm项目中的模块抽出分别创建maven的子项目 ...
- Spring+Dubbo+Zookeeper简单框架与使用
为什么80%的码农都做不了架构师?>>> 例子参考地址:http://www.cnblogs.com/Javame/p/3632473.html 一.实例搭建 1.搭建框架前先 ...
- SSM+bootstrap4+mysql+redis原创项目实战:搭建校园二手交易网
项目已部署到阿里云:hbxytrade.top 本文更新时间:2020/3/7,更新内容:redis缓存中间件(涉及多条件查询).物品管理界面(更新.上架.下架等操作).阿里云部署项目 代码地址: h ...
- ajax ssm 页面跳转_ssm项目实战实现页面的局部刷新功能
好的各位小伙伴 继续学习知识了 ajax_json 咱们之前用SSM三大框架整合,实现了用户的增删改查功能.今天主要是将之前实现的用户功能,修改成 ajax 的方式,实现页面的局部刷新功能. 首先来实 ...
- SSM整合练手简单项目
用户注册登录页面编写 过程 1.创建一个数据库 CREATE DATABASE `ssmmyself`;USE `ssmmyself`;DROP TABLE IF EXISTS `user`;CREA ...
- ssm互联网金融 高级进阶 项目实战(完整)
|____log4j.properties |____atcrowdfunding课件.rar |____apache-maven-3.2.2-bin.zip |____项目课件 ...
- SpringBoot+Dubbo+Zookeeper分布式项目打包时子模块依赖找不到解决方案
我的个人网站:等不见天亮等时光 问题描述:子模块打包依赖其他的子模块,打包显示找不到jar包 解决方案:由于springboot打包和maven打包最后出来的jar包不同需要在pom中新增以下插件 & ...
- phpstudy简单项目实战——留言板之第一弹
跟着PHP中文网学做留言板-- 一.数据库的创建 1.首先打开你电脑中已经下载完成的phpstudy(没有下载的可自行去下载) 2.点击MySQL管理器->phpMyAdmin->执行(用 ...
最新文章
- Android LruCache 压缩图片 有效避免程序OOM
- CentOS常用环境配置(MySQL、jdk、Redis、Nginx)
- Ubuntu16.04通过wine环境安装微信与QQ等软件
- [译] 如何学习 CSS
- python3中map的用法_python3内置函数map
- ASP.NET留言板 文字加表情
- c语言void nzp,二级C语言考试辅导教程第五章:函数[5]
- lnmp一键安装包 mysql_mysql - LNMP一键安装包
- 如何清除计算机搜索框内的搜索历史记录,如何清除搜索框关键字记录
- 设置广告类型的html小窗口,网页两边悬浮窗广告代码
- 微信小程序跳转公众号图文内容
- 苏宁回应股权质押给淘宝;日本政府用 AI 帮民众找对象;魅族回应 “暗中给手机植入木马” | EA周报...
- 利用 Eclipse Visual Editor 项目构建 GUI 应用程序
- Android主流HOOK框架介绍与应用--游戏破解游戏外挂的必杀技
- python3GUI--仿做一个网易云音乐By:PyQt5(附下载地址)
- vue获取焦点、失去焦点
- 生产排程系统_APS生产排程系统应用-缩短产品生产周期
- 新产品Digi XBee RR无线模块迁移指南
- 阿里云注销备案流程及注销备案常见问题与解答
- 小学计算机教案模板范文,小学信息技术教案模板锦集5篇范本
热门文章
- 云盾idaas登陆_移动端扫码登录IDaaS平台
- js console 输出到文件_Node.js核心入门
- Linux允许61440端口,释放对某端口的占用
- java 标准输入流 关闭 打开_java输出流关流疑问,以下这个程序的in和out是否要关闭?...
- 关于二手交易用户指南怎么写_让用户拍案叫绝文案怎么写?试试这3个方法
- inventor扳手制作视频_弱电工程视频监控系统施工方案,可作施工组织设计
- java uuid静态方法_Java UUID version()方法与示例
- kotlin 编译时常量_Kotlin程序| 编译时常量示例
- python中assert_在Python中带有示例的assert关键字
- 颜值爆表!Redis 官方可视化工具来啦,功能真心强大!