当前位置: 首页 > news >正文

基于maven+dubbo+spring+zookeeper的简单项目搭建

maven下搭建dubbo小demo,供初学者学习,有不正确地方还请见谅。

先推荐一篇创建maven项目的文章,个人认为比较完整详细清楚:

http://www.cnblogs.com/leiOOlei/p/3361633.html

下面开始本篇文章的正题:

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。Dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

 

spring配置方式:

 

单机模式安装zookeeper

1.下载zookeeper注册中心,下载地址:http://www.apache.org/dyn/closer.cgi/zookeeper/  下载后解压即可,进入D:\apach-zookeeper-3.4.8\bin,在启动注册中心服务之前,我们需要做一些配置。

2.zookeeper的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将zoo_sample.cfg 改名为 zoo.cfg,因为 zookeeper在启动时会找这个文件作为默认配置文件。下面详细介绍一下,这个配置文件中各个配置项的意义。

•tickTime:这个时间是作为Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。

•dataDir:顾名思义就是 Zookeeper保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。

•dataLogDir:顾名思义就是Zookeeper 保存日志文件的目录

•clientPort:这个端口就是客户端连接Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求

 

配置好后,zookeeper会监听本机的2181端口。当这些配置项配置好后,你现在就可以启动 Zookeeper 了,进入D:\zookeeper-3.4.8\bin,双击zkServer.cmd启动注册中心服务。zkServer.sh【Linux】或zkServer.cmd【Windows】。

启动后要检查 zookeeper 是否已经在服务,可以通过 netstat - ano 命令查看是否有你配置的 clientPort 端口号在监听服务。

 

 

二:服务提供者

1.定义服务接口
2.在服务提供方实现接口:(对服务消费方隐藏实现)

 

3.用Spring配置声明暴露服务:

4.加载Spring配置,启动服务:
5.生产者的pom文件的代码如下
生产者的代码就搞定了,下面看看消费者的。
服务消费者
1.通过Spring配置引用远程服务:
 
2.加载Spring配置,并调用远程服务:
3.消费者的pom文件的代码如下,和生产者的基本一致,只是artifactId不同。
调用结果为:
这样项目就搭建完成,并成功运行了。
 
dubbo管理页面

需要下载:dubbo-admin-2.5.3的war

下载地址:http://download.csdn.net/detail/u013286716/7041185

 

操作如下:

 

1,替换掉tomcat/webapps下自带的ROOT文件夹内容(即替换tomcat的启动主页),将下载的war包解压到webapps/ROOT中,直接替换即可

 

注意:jdk不要使用1.8,本次实验使用的为1.7

 

2,启动tomcat,访问ip:8080即可或者如果是本地的话使用localhost:8080

输入用户名密码,在D:\apache-tomcat-7.0.6-dubbo\webapps\ROOT\WEB-INF下的dubbo.properties文件中即可查看到。

应用页面:

 

测试是否成功,我觉得只要看看状态是否正常,就可以了

 

案例代码下载:http://download.csdn.NET/detail/sinat_32624775/9531033

相关文章:

  • C++组合通信
  • 阿里数据库内核月报:2017年02月
  • Facebook 首席安全官建议对 Flash 设定死亡日期
  • 项目期复习:JS操作符,弹窗与调试,凝视,数据类型转换
  • 关于HEXO安装失败的解决方法
  • my sql(二)
  • pip install mysql-connector 安装出错
  • Navicat如何进行搜索筛选
  • java基础(五章)
  • JavaScript面向对象轻松入门之抽象(demo by ES5、ES6、TypeScript)
  • Asm.js的简单介绍
  • Android蓝牙基础框架使用详解
  • JDBC的异常
  • Hibernate(十六):Hibernate二级缓存
  • 函数计算-触发OSS来处理图片加水印和大小裁剪
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 〔开发系列〕一次关于小程序开发的深度总结
  • 2019年如何成为全栈工程师?
  • DOM的那些事
  • ES6--对象的扩展
  • idea + plantuml 画流程图
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • React-Native - 收藏集 - 掘金
  • Redis学习笔记 - pipline(流水线、管道)
  • Service Worker
  • Vue2 SSR 的优化之旅
  • 安装python包到指定虚拟环境
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 小程序01:wepy框架整合iview webapp UI
  • 在Mac OS X上安装 Ruby运行环境
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • 如何用纯 CSS 创作一个货车 loader
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • !$boo在php中什么意思,php前戏
  • #WEB前端(HTML属性)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (3)选择元素——(17)练习(Exercises)
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)u-boot-nand.bin的下载
  • (正则)提取页面里的img标签
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .net MySql
  • .Net Web项目创建比较不错的参考文章
  • .net网站发布-允许更新此预编译站点
  • 。Net下Windows服务程序开发疑惑
  • /var/log/cvslog 太大
  • @Autowired标签与 @Resource标签 的区别
  • [FFmpeg学习]从视频中获取图片
  • [flink总结]什么是flink背压 ,有什么危害? 如何解决flink背压?flink如何保证端到端一致性?
  • [hdu 3746] Cyclic Nacklace [kmp]
  • [HDU3710]Battle over Cities