dubbo接口demo开发
Dubbo是一款高性能、轻量级的开源Java RPC框架。
很多朋友想学习测试dubbo接口,但是苦于没有可练习的dubbo接口而放弃,下面我就带大家开发一个简单的dubbo接口。
接口需求
客户端输入uncleyong(当然,也可以输入其它字符串),服务端返回hello uncleyong
开发环境
jdk + idea + maven + zookeeper
jdk安装:https://www.cnblogs.com/uncleyong/p/10732951.html
idea安装:https://www.cnblogs.com/uncleyong/p/10971923.html
maven安装:https://www.cnblogs.com/uncleyong/p/10743181.html
zookeeper安装:https://www.cnblogs.com/uncleyong/p/10737119.html
common开发
idea中创建模块dubbo-common
存放公共的实体类、接口
package com.uncleyong.dubbotest.service; public interface SayHelloToClient {
public String sayHello(String name);
}
然后mvn install打包,供provider及consumer在pom文件中引包
provider开发
idea中创建模块dubbo_provider
创建实现类
package com.uncleyong.dubbotest.service.impl; import com.uncleyong.dubbotest.service.SayHelloToClient; public class SayHelloToClientImpl implements SayHelloToClient { public String sayHello(String name){
System.out.println("from client :" + name);
return "hello, " + name;
}
}
配置文件,provider.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://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <dubbo:application name="dubbo-provider"/> <!-- 使用zookeeper广播注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/> <!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20888"/> <!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.uncleyong.dubbotest.service.SayHelloToClient" ref="sayhellotoclient"/> <!-- 和本地bean一样实现服务 -->
<bean id="sayhellotoclient" class="com.uncleyong.dubbotest.service.impl.SayHelloToClientImpl"/> </beans>
创建主运行文件,ProviderMain
package com.uncleyong.dubbotest.main; import org.springframework.context.support.ClassPathXmlApplicationContext; public class ProviderMain {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"provider.xml"});
context.start();
System.out.println("注册成功,如想退出,按任意键退出");
System.in.read(); // 按任意键退出
}
}
consumer开发
idea中创建模块dubbo_consumer
主运行文件
package com.uncleyong.dubbotest.main; import com.uncleyong.dubbotest.service.SayHelloToClient;
import org.springframework.context.support.ClassPathXmlApplicationContext; import java.util.Scanner; public class ConsumerMain {
public static void main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
new String[] {"consumer.xml"});
context.start();
// 获取远程服务代理
SayHelloToClient say = (SayHelloToClient) context.getBean("sayhellotoclient");
// 执行远程方法
String res = say.sayHello("UncleYong");
// 显示调用结果
System.out.println(res);
new Scanner(System.in).next();
}
}
配置文件,consumer.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://dubbo.apache.org/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <dubbo:application name="dubbo-consumer"/> <!-- 使用zookeeper广播注册中心暴露发现服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181"/> <!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<dubbo:reference id="sayhellotoclient" interface="com.uncleyong.dubbotest.service.SayHelloToClient"/> </beans>
运行结果
先启动zookeeper,进入zookeeper的bin目录,点击【zkServer.cmd】
启动provider
服务注册成功
启动consumer,可以看到输出了结果
在provider端,也可以看到客户端发过来的消息
至此,开发完成。
dubbo接口demo开发的更多相关文章
- jmeter测试dubbo接口
本文讲解jmeter测试dubbo接口的实现方式,文章以一个dubbo的接口为例子进行讲解,该dubbo接口实现的功能为: 一:首先我们看服务端代码 代码架构为: 1:新建一个maven工程,pom文 ...
- 排查dubbo接口重复注销问题,我发现了一个巧妙的设计
背景 我在公司内负责自研的dubbo注册中心相关工作,群里经常接到业务方反馈dubbo接口注销报错.经排查,确定是同一个接口调用了两次注销接口导致,由于我们的注册中心注销接口不能重复调用,调用第二次会 ...
- Win10 FaceAPI小demo开发问题汇总
Win10 FaceAPI小demo开发问题汇总 最近使用微软牛津计划做一个小demo,使用FaceAPI做一个小应用,实现刷脸的功能.开发的过程中用到几个问题,具体如下: Stream 与IRand ...
- Jmeter实现dubbo接口压测案例
当前项目中重构了消息服务,需要对消息服务接口做性能压测,评估消息服务的性能情况 通过和开发对接,目前消息服务是通过dubbo接口对内提供服务,所以才有了这边文章的记录 最初的压测这个dubbo接口有三 ...
- jmeter5.1测试dubbo接口
dubbo接口功能介绍 客户端输入uncleyong(当然,也可以是其他字符串),服务端返回hello uncleyong 开发dubbo服务jmeter客户端 idea中创建模块dubbo_jmet ...
- 【Dubbo&&Zookeeper】6、 给dubbo接口添加白名单——dubbo Filter的使用
在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用,Spring的拦截器可以拦截Web接口的调用:而对于dubbo接口,Spring的拦截器就不管用了. dubbo提供了 ...
- 给dubbo接口添加白名单——dubbo Filter的使用
本文转自:http://blog.csdn.net/mj158518/article/details/47379799 在开发中,有时候需要限制访问的权限,白名单就是一种方法.对于Java Web应用 ...
- 使用Jmeter测试Dubbo接口(参数设置篇)
WebSocket接口需要下载dubbo插件才能使用 本次下载的版本为jmeter-plugins-dubbo-1.3.6,下载完成后jar文件放到\lib\ext目录下 由于工作需要,最近需要对du ...
- python、java大作战,python测试dubbo接口
很多小伙伴都反映公司要求测dubbo(dubbo是一个java的分布式开源框架)接口,不会写java代码,怎么测,能不能用python来调dubbo接口.当然是可以的了,最近研究了一下,很简单,分享给 ...
随机推荐
- CentOS7 设置yum源
1.关闭防火墙 临时关闭防火墙 systemctl stop firewalld 永久防火墙开机自关闭 systemctl disable firewalld 临时打开防火墙 systemctl st ...
- SQL Server 数据库部分常用语句小结(二)
9. 查询备份还原数据库的进度. select command ,percent_complete ,est_time_to_go=convert(varchar,(estimated_complet ...
- java中split特殊符号
关于点的问题是用string.split("[.]") 解决. 关于竖线的问题用 string.split("\\|")解决. 关于星号的问题用 string. ...
- ASP.NET Zero--开发指南
ASP.NET Zero--开发指南(Lyhcee 译) 01. 前期介绍 02. 前期要求 03. 解决方案结构(层) 04. 前端应用程序 05. 后端应用程序 06.WEB.HOST应用程序 0 ...
- Java 环境部署之Idea :解决Idea 中gradle编译 war 包编码不对
IDE进行Gradle操作,那么还需要设置IDE的参数.例如在IDEA中,需要打开File->Other Settings->Default Settings->Gradle,在Gr ...
- iOS UITextField 响应键盘的return 事件
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(, , , )] textField.returnKeyT ...
- 创建你的第一个Composer/Packagist包
今天我们要介绍一下如何通过Composer和Packagist向PHP社区贡献代码包.首先,如果你是一个PHP开发者但是还不知道什么是Composer,请先参考了一下这篇文章http://docs.p ...
- springMVC使用HandlerMethodArgumentResolver 自定义解析器实现请求参数绑定方法参数
http://blog.csdn.net/truong/article/details/30971317 http://blog.csdn.net/fytain/article/details/439 ...
- Linux下禁止使用swap及防止OOM机制导致进程被kill掉
首先解释两个概念: swap:在linux里面,当物理内存不够用了,而又有新的程序请求分配内存,那么linux就会选择将其他程序暂时不用的数据交换到物理磁盘上(swap out),等程序要用的时候再读 ...
- shell杀死指定端口的进程
杀死端口代码如下: lsof -i: kill - PID 上面的与下面的代码作用相同. 命令如下所示(这种方式更自动化): kill - $(netstat -nlp | grep : | awk ...