第 1 页 共 32 页
JFinal Dubbo Demo
JFinal Dubbo
Demo
版 本 历 史
版本状态 作者 参与者 起止日期 备注
胡高
第 2 页 共 32 页
JFinal Dubbo Demo
目 录
1. Dubbo Demo 概述.........................................................................................................................3
1.1. JFinal Spring 插件...............................................................................................................3
1.2. 基于 jfinal_demo_for_maven.............................................................................................3
1.3. 项目依赖及感谢.................................................................................................................3
2. Demo 结构.....................................................................................................................................5
2.1. 三体结构.............................................................................................................................5
2.2. 部署结构.............................................................................................................................6
3. Demo 实现.....................................................................................................................................8
3.1. JFinalDubboDemoApi........................................................................................................8
3.2. JFinalDubboDemoConsumer..............................................................................................9
3.2.1. Dubbo Consumer 配置............................................................................................9
3.2.2. 改造 Config............................................................................................................10
3.2.3. 改造 BlogController.java.......................................................................................11
3.3. JFinalDubboDemoProvider..............................................................................................12
3.3.1. Dubbo Provider 配置.............................................................................................13
3.3.2. duboo_demo_provider_config.txt..........................................................................15
3.3.3. 改造 Config............................................................................................................15
3.3.4. BlogServiceImpl.java.............................................................................................17
3.3.5. 启动类....................................................................................................................18
4. 部署及运行..................................................................................................................................20
4.1. 部署...................................................................................................................................20
4.2. 运行...................................................................................................................................20
4.3. Druid 监控.........................................................................................................................21
4.4. 问题及解决方案...............................................................................................................21
4.4.1. Controller.getModel(class)问题............................................................................21
5. 集群..............................................................................................................................................25
5.1. 部署结构...........................................................................................................................25
5.2. 部署 Dubbo 管理控制台..................................................................................................25
5.3. 启动 Cunsumer 和多个 Provider......................................................................................26
5.4. 问题及解决方案...............................................................................................................32
5.4.1. 多网卡问题............................................................................................................32
第 3 页 共 32 页
JFinal Dubbo Demo
1. Dubbo Demo 概述
此 Demo 实际在 2014 年上半年就已经完成了,只是到最近才有时间和心情写完此文。
同时,将 JFinal 升级到了 1.9,并采用 Maven 构建项目。
另外,仔细想了想,Provider 其实可以不依托 Tomcat 之类的 Web 容器启动,并验证成
功。
1.1. JFinal Spring 插件
有很多人认为,既然有了 JFinal,为什么还要 Spring。殊不知一些基于 Spring 的很牛 X
的东东集成到 JFinal 中能够事半功倍。比如 Dubbo 这个高性能优秀的服务框架,它基于
Spring,于是 JFinal 提供的 Spring 插件就能更方便地将 Dubbo 集成进咱们的程序中,成为
高大上的程序。
1.2. 基于 jfinal_demo_for_maven
构建本 Demo 的目的只为了向读者演示如何将咱们的程序改造成基于 Dubbo 的应用,
选择 JFinal 的 Demo,使得 JFinal 读者可以快速进入状况,而且笔者也能省下开发 Demo 功
能的时间。
1.3. 项目依赖及感谢
公司 / 组织 产品 说明
JFinal JFinal 1.9
http://www.jfinal.com/
是基于 语言的极速 框
架,其核心设计目标是开发迅速、代码量少、学习
简单、功能强大、轻量级、易扩展、。 在
拥 有 语 言 所 有 优 势 的 同 时 再 拥 有
、! "#、!"! 等动态语言的开发效率!为
您节约更多时间,去陪恋人、家人和朋友 $%
JFinal 1.9 Demo for Maven
阿里巴巴
Dubbo
http://www.oschina.net/p/dubbo
&#是阿里巴巴公司开源的一个高性能优秀
的服务框架,使得应用可通过高性能的 '(实现服
务的输出和输入功能,可以和 )!*
框架无缝集
第 4 页 共 32 页
JFinal Dubbo Demo
成。
感谢 &#,使咱们不需要太多专业知识和能
力就能够很轻易地将程序转变成分布式这种高大上
的概念型产品。
Druid http://www.oschina.net/p/druid
&+ 是 语 言 中 最 好 的 数 据 库 连 接
池。&+ 能够提供强大的监控和扩展功能。
Spring
http://www.oschina.net/p/spring
Spring Framework,是 一 个 开 源
的 全功能栈(-.)的应用程
序框架,以 /!-" 许可证形式发布,也有01 平
台上的 移 植 版本 。 该 框架基于 2!#
&*+&#!3(4)0
56785 ) 一 书 中 的 代 码 , 最 初 由 #+
#"# 和 *9# 等 开 发 。 )!*
3:#.提供了一个简易的开发方式,这种开
发方式,将避免那些可能致使底层代码变得繁杂混
乱的大量的属性文件和帮助类。
其它
;
#*;
3 <-#-#
;
感谢以上项目及环境,使我们能简便快速地构建分布式应用。希望它们能越做越强,也希望更多人
从中受益。
Dubbo 相关文档已经存放在 JFinalDubboDemoApi 项目下,请读者仔细阅读。
第 5 页 共 32 页
JFinal Dubbo Demo
2. Demo 结构
2.1. 三体结构
用过 Spring 的读者都清楚 MVC 中,C 中的业务被分了层,Controller 中只看见 Service
接口即可,实现是可以随配置更换的。
典型的就是下面的接口服务结构:
在分布式应用中,你的应用部署在客户端,而业务实现被部署在服务端,如下图:
而使用 Dubbo 后,这一切就能轻易实现。本 Demo 中,按 Dubbo 的 Consumer --> Api --
> Provider 概念,原 JFinal Demo 被切割成三部分:
JFinalDubboDemoConsumer.war
此 war 包部署在 Consumer 客户端,只包含与 Web 交互有关内容,并调用接口 Api
来完成相关数据操作(不限于数据操作,只是 JFinal Demo 中只有数据操作适合提取成
api,可不能误导读者)。
JFinalDubboDemoApi.jar
将所有业务服务(数据操作)的接口提取出来,集中到一个 jar 包中,便于服务端