dubbo大致分三步操作
1、搭建服务器(以后写)
2、写服务端程序并且将被调用的链接注册到dubbo(生产)
3、写客户端、链接dubbo,调用服务端程序(消费)
实际上我们可以认为写的是ejb程序,一个服务端、一个客户端。只不过他们之间不之间调用
服务端将自己的链接注册到dubbo,客户端联接dubbo,dubbo再调用服务端。
以下是网上copy的,没有测试过,但看样子是可以运行的。我们实际的代码也是类似的。
---------------------------------------------------------------------------------------------------------
上面的话是写给我自己的下面的教程是写给大家的。哈哈有想法的可以评论;
第一步在spring官网下载一个spring比较全的包。我用的还是以前的3.2
第二步新建一个web项目。将spring的包放在lib下面。
第三步在dubbo.io官网的版本库下载dubbo的jar包。
第四步在Apache的官网下载zookeeper的项目。 zookeeper的安装方法在上篇文章讲过了。拿出zookeeper根目录下面的zookeeper.jar就可以。
附加一些jar 工程下面有的可以无视。slf4j-api-1.7.5.jar,slf4j-log4j12-1.7.5.jar,netty-3.7.0.Final.jar,jetty-util-6.1.26.jar,jetty-6.1.26.jar,commons-cli-1.2.jar 这些jar在zookeeper3.5的lib下面都有。直接拷贝就可以。
还有一个就是zkclient-0.1.0.jar 一定要下载I0Itec的,这个应该不是zk开发的。这个我也忘记在哪里下载的了。不好意思。要是需要的可以在下面评论留个邮箱什么的。
-------------------------------------------------------------------------------------------------------------------------
下面新建一个接口:
--------------------------------------------------------------------------------------------------------------------------
package com.unj.dubbotest.provider;
public abstract interface DemoService {
public abstract String build(String name) throws Exception;
}
新建一个实现类
--------------------------------------------------------------------------------------------------------------------------
package com.unj.dubbotest.provider.impl;
import com.unj.dubbotest.provider.DemoService;
public class DemoServiceImpl implements DemoService {
public String build(String name) throws Exception {
System.out.println("name is === " + name);
return "你好名称是 ------------- >>>> " + name;
}
}
在src下面新建一个applicationContext.xml 内容如下:
--------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<!-- 具体的实现bean -->
<bean id="demoService" class="com.unj.dubbotest.provider.impl.DemoServiceImpl" />
<!-- 提供方应用信息,用于计算依赖关系 -->
<dubbo:application name="xixi_provider" />
<!-- 使用multicast广播注册中心暴露服务地址
<dubbo:registry address="multicast://224.5.6.7:1234" />-->
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880" />
<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.unj.dubbotest.provider.DemoService" ref="demoService" />
</beans>
--------------------------------------------------------------------------------------------------------------------------
最后写一个启动服务的类(用过cxf的都知道)
--------------------------------------------------------------------------------------------------------------------------
package com.unj.dubbotest.provider;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});
context.start();
System.out.println("新浪微博:疯狂的xxx.");
System.in.read(); // 按任意键退出
}
}
启动zookeeper。在执行启动服务的类控制台打印了如下信息
--------------------------------------------------------------------------------------------------------------------------
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
SLF4J: This version of SLF4J requires log4j version 1.2.12 or later. See also http://www.slf4j.org/codes.html#log4j_version
新浪微博:疯狂的xxx.
说明启动成功了。
--------------------------------------------------------------------------------------------------------------------------
下面在做客户端。同意新建一个web项目把服务端的jar全部拷贝到lib下面去。
新建一个接口包名和服务端一样这边接口其实要在服务器那边拿过来的。
--------------------------------------------------------------------------------------------------------------------------
package com.unj.dubbotest.provider;
public abstract interface DemoService {
public abstract String build(String name) throws Exception;
}
在src下面新建一个 applicationConsumer.xml文件。内容如下:
--------------------------------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd
">
<!-- consumer application name -->
<dubbo:application name="consumer-of-helloworld-app" />
<!-- registry address, used for consumer to discover services -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<dubbo:consumer timeout="5000" />
<!-- which service to consume? -->
<dubbo:reference id="demoService"
interface="com.unj.dubbotest.provider.DemoService" />
</beans>
--------------------------------------------------------------------------------------------------------------------------
新建一个main类来测试:
--------------------------------------------------------------------------------------------------------------------------
package com;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.unj.dubbotest.provider.DemoService;
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] { "applicationConsumer.xml" });
context.start();
DemoService demoService = (DemoService) context.getBean("demoService"); // get
// service
// invocation
// proxy
String hello = "";
try {
hello = demoService.build("新浪微博:疯狂的xxx");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // do invoke!
System.out.println(Thread.currentThread().getName() + " " + hello);
}
}
打印信息如下:
--------------------------------------------------------------------------------------------------------------------------
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
main 你好名称是 ------------- >>>> 新浪微博:疯狂的xxx
在看一下服务器端打印的信息
------------------------------------
新浪微博:疯狂的xxx
name is==xxx
name is== 新浪微博:疯狂的xxx
--------------------------------------------------------
从上午发布的安装zookeeper 遇到的第一个错误开始一直在搞dubbo 中午吃了饭睡了会觉。中间错误一个又一个慢慢的都解决了。小有成就,哈哈。算这个星期天没有白费吧。
学习的过程值得留恋。分享一下吧
只是之前听网友提过dubbo这个东西一直都没有百度和使用过。前天答应老板我们框架中留一个口出来给dubbo 。今天天气热就在宿舍研究吧。
首先是百度知道是做什么的后来就开始找教程但是大家都知道百度的教程基本都是一个模板。看了大概有20篇基本就换换字代码都是一样的。试了一下不行也不报错也不知道在哪里入口。后来想想一定是不行换一种方式吧直接用main方法启动服务的方式。百度了一推还是一样的模板就是maven 但是哥没有使用过maven。在关键的时候还要研究一下maven 比较耗时间了。后来准备放弃的时候聊会天,继续找有权威性的找到dubbo的团队提供出来的。继续发现spring的xml报错。后来浏览器访问啊 ping 啊各种尝试最后不行。再微博上看了dubbo发布的在14年的时候域名绑定就换成dubbo.io了后来在这个网上看到了一个下载。是github 然后进去看看。下载了2个demo。一个是基于http的,还有一个是基于ws也就是websevice的。看了一下都是基于maven的。有点恼火了。刚刚开始百度的时候第一步就是用zookeeper。最后官网给的例子不是zookeeper。继续看之前的例子,(总不能放弃吧)。还是没有结果。想想先一步一步来吧。于是新建了一个web项目放入spring对应的包。找到dubbo的包放了进来,然后找到zookeeper的包放进来,写一个接口写一个实现类,配置文件就用的百度过来的,开始不明白,看了很多资料自己也开始慢慢地理解过来了,于是在main里面启动服务,错误,说找不到类,好办了我想一定是我的zookeeper的client没有加,但是我是服务器这边的应该是不要的想想 先加进去试试。服务器启动再次报错。有看了一下包名不是这个开放团队的client。再找放进去试试。还是对少各种class 一个一个找放进去。还不错对了。服务启动 不抱错了,然后任何提示启动成功的标志都没有之后就学网上的人在start 后面打印一句话。打印不出来,怎么回事呢。难道还是不对,百思不得其解。后来在想想我是同时zookeeper注册的我的zookeeper没有开。打开zookeeper。再次启动对了。那叫一个兴奋。服务端就这样好了。
客户端就直接copy网上的代码,调用成功。开始聊天吹牛逼、。终于成功了。后来发现我的服务端和客户端都在一个项目上面的。然后在新建一个项目放客户端。继续报错。说找不到方法。找到对应的类下面的方法。是有的啊。难道是缓存。clear一下。还是不对。头晕了。准备放弃了。实在没有办法了。准备换http或者是ws的了。休息一下喝杯水。想到了难道是版本的问题。找到上午发布文章的zookeeper下载的连接,下载了一个3.3.6的版本的zookeeper.jar放进去,好了。测试几次真的是好了。哈哈
相关推荐
基于 DUBBO + ZOOKEEPER 的计量服务平台是互联网与传统计量检测服务业相结合的产物,平台系统设计充分考虑了计量行业特点,在此基础上 确定系统的建设目标,重点解决分布式系统集群中数据共享、数据一致性与服务...
--第05章选举模式和ZooKeeper的集群安装---第06章使用ZooKeeper原生JavaAPI进行客户端开发---第07章ApacheCurator客户端的使用---第08章Dubbo入门到重构服务---第09章分布式锁---第10章课程总结---project.zip---zk_...
基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot+Zookeeper+Dubbo打造分布式高并发商品秒杀系统.zip基于SpringBoot...
基于zookeeper的dubbo基础教程demo
课程目标:了解远程调用PRC的概念,分布式应用为什么使用RPC, 基于PRC协议的Dubbo的使用。Dubbo框架的特点,框架的组件;基于Dubbo服务提供者,消费者,注册中心...Dubbo分布式服务框架的应用入门基础。传统应用到分布
本项目是集成dubbo和zookeeper的一个练习项目,基于注解的配置形式,没有xml文件 ## 环境 #### 操作系统:ubuntu 16.04 LTS #### 开发工具:Idea ## 搭建过程 ### 一、安装zookeeper #### 1、下载zookeeper源码包 >...
Dubbo简单Demo,基于Spring和Zookeeper
本软件为基于分布式的信号算法可视化数据检测系统,使用Spring MVC + Dubbo + Zookeeper技术,实现分布式环境下算法数据可视化检测 - 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设,代码都...
本资料基于 springboot+dubbo+zookeeper 实现分布式服务提供者和消费者的开发 本资料旨在提供最单纯的 dubbo 学习和入门,摒弃了所有非必要的技术,对于dubbo 的入门和理解很有帮助,但对于 dubbo 的深入学习是没有...
基于ssm构建项目,用dubbo实现分布式开发部署,用zookeeper作为dubbo注册中心,用redis作为缓存,用solr实现搜索引擎,便于分布式整合入门教程,新手更是值得拥有,文件是百度云链接如果失效可以加我qq索取,文件内有我...
极简配置的入门dubbo源码,基于dubbo源码的demo模块。内含一个父demo、demo-api、demo-consumer和demo-provider;可使用multicast或zookeeper注册中心(后者要先安装zookeeper)。
基础教程与练习项目:从基础知识讲起,结合实际练习项目,让您轻松上手SSM开发。 进阶技术与案例分析:针对进阶开发者,提供深入的技术探讨和案例分析,助您深入理解SSM的高级特性。 实战项目与经验分享:通过实际...
FAT ,基于springboot , 使用zookeeper,redis , spring async , spring transactionManager的强一致性分布式事务解决方案 ## 框架介绍 纯编码方式,强一致性。 使用redis/zookeeper作为注册中心 ,代理事务的执行...
主要描述在SpringBoot项目的基础上怎样集成dubbo框架,实现基于RPC的分布式开发。文章中详细的给出了需要导入的依赖,以及提供者和消费者的配置文件。注册中心采用官方推荐的zookeeper,针对某些本地服务启动失败的...
集成Dubbo的服务提供者,依赖zookeeper。 #### SpringBoot-Dubbo-Consumer(基于Dubbo的服务实现者) 集成Dubbo的服务消费者。 #### SpringBoot-Elasticsearch(Java 操作Es进行CURD) ## 项目备注 1、该资源内项目...
基于Dubbo的微服务基础框架,为前端提供脚手架开发基础框架,项目代码: 项目定位: 用于从大单体应用中解耦,实施前后端分离部署、分层部署、分服务部署,可使用独立数据库,应用redis缓存,发送MQ消息 ###基础依赖...
简单实现微信小程序商城,基本功能完整。后端代码层次分明,风格统一。前端代码基于Layui,封装了工具类,使用的是H-ui Admin。不管是用于学习还是作为...使用技术:spring+spring mvc+mybatis+dubbo+zookeeper+redis
Java微信小程序商城源码 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse ...使用技术:spring+spring mvc+mybatis+dubbo+zookeeper+redis
java8 集合源码分析 项目汇总 SpringBoot开发实战 涵盖内容:基本用法,Rest,Controller,事件监听,连接数据库MySQL,jpa,redis集成,mybatis集成(声明式与xml两...Dubbo入门学习实战 构建 Zookeeper + Dubbo + Sp