博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springboot+Zookeeper+Dubbo入门
阅读量:4585 次
发布时间:2019-06-09

本文共 3638 字,大约阅读时间需要 12 分钟。

最近想学习dubbo,就利用周末写了一个特别简单的demo,不知道有没有用,先记录一下。

1、安装zookeeper并启动(安装看我上一篇博客https://www.cnblogs.com/huangzhang/p/9219319.html)

2、下载dubbo源码,安装dubbo-admin(安装看我之前的博客https://www.cnblogs.com/huangzhang/p/9219296.html)

这些准备工作做好之后开始写demo代码:

这里用的开发工具是Intellij IDEA,所以利用idea的智能生成一个spring boot项目,这里就不细说了。

搭建好spring boot项目之后,pom.xml文件中引入依赖

com.alibaba
dubbo
2.5.10
org.apache.zookeeper
zookeeper
3.4.6
slf4j-log4j12
org.slf4j
com.github.sgroschupf
zkclient
0.1

这里是生产者

写测试接口:

package com.example.demo01.service;/** * @description 声明服务接口 * @date 2018/06/23 * @author huangzhang */public interface DubboServiceProvider {    //声明服务方法    public String sayHello(String name);}

实现该接口:

package com.example.demo01.service.Impl;import com.example.demo01.service.DubboServiceProvider;import org.springframework.stereotype.Component;/** * @author huangzhang * @description * @date Created in 2018/6/23 18:13 */@Component("dubboServiceProvider")public class DubboServiceProviderImpl implements DubboServiceProvider { @Override public String sayHello(String name) { return "------hello " + name + "------"; } }

在resource目录下面加入一个dubbo.xml配置文件

启动类加入注解:

package com.example.demo01;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.ImportResource;@SpringBootApplication@ImportResource("classpath:/dubbo.xml") public class Demo01Application { public static void main(String[] args) { SpringApplication.run(Demo01Application.class, args); } }

编写controller:

package com.example.demo01.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;@Controllerpublic class HelloController {    @RequestMapping("/index") @ResponseBody public String index(){ return "hello world"; } }

这里项目默认端口是8080,zookeeper默认端口也是8080,所以到application.properties中配置端口

server.port: 8082

然后启动项目,Dubbo-admin管理平台中的注册列表中显示有一个生产者以注册,但是没有消费者,如下图

生产者完成了,然后就是消费者

搭建一个spring boot项目,pom.xml、启动类、service接口都跟生产这一样,在application.properties中配置端口8081

这里配置dubbo.xml的时候有点不一样,不用注入bean

编写controller

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;import javax.annotation.Resource;/** * @author huangzhang * @description * @date Created in 2018/6/23 20:13 */@Controllerpublic class HelloController { @Resource private DubboServiceProvider dubboServiceProvider; @RequestMapping("/index") @ResponseBody public String index(){return dubboServiceProvider.sayHello("tom"); } }

之后Dubbo-admin管理平台就这样了,有了一个消费者

启动消费者,访问消费者提供的index接口,浏览器直接调用就可以了http://localhost:8081/index

这样一个简单的生产者-消费者demo就搭建完成了,这里消费者通过RPC调用了生产者在Dubbo-admin管理平台注册的服务接口。

 

转载于:https://www.cnblogs.com/huangzhang/p/9226714.html

你可能感兴趣的文章
JavaScript总结(1)
查看>>
iOS 有关内存管理的一个错误分析
查看>>
JavaScript循环和数组常用操作
查看>>
re模块(正则表达式)
查看>>
IOS UIView动画(封装动画)
查看>>
Python简单的爬取网页信息并生成json文件与乱码解决小记
查看>>
雷林鹏分享:Redis 安全
查看>>
某表中字段值存在多个Gid逗号分开 取值拆分每个gid SQL多个逗号隔开的取值
查看>>
C#与vb6 com组件的互相调用方法[转]
查看>>
Python快速教程
查看>>
本地git连接github
查看>>
WebService
查看>>
AC自动机板子(from. qwer)
查看>>
codevs1958 刺激
查看>>
firefox 访问12306.cn提示有风险但没有添加例外选项
查看>>
HDOJ题目(11.22-12.22)
查看>>
Jenkins-在windows上配置自动化部署(Jenkins+Bonobo.Git.Server)
查看>>
15个来自 CodePen 的酷炫 CSS 动画效果【下篇】
查看>>
那些带给我们强烈视觉冲击的 JavaScript 特效网站
查看>>
Bitmap和Drawable相互转换方法
查看>>