文档章节

spring-boot 作为dubbo客户端 调用 dubbo 服务端 配置以及代码段

yizhichao
 yizhichao
发布于 2016/07/13 15:54
字数 709
阅读 235
收藏 0
点赞 0
评论 0

第一、前提:

dubbo 服务端   以及启动好(dubbo控制台  zookeeper 等)

1)dubbo服务端  BBUS

2)dubbo控制台

3)zookeeper

查看dubbo控制台

http://192.168.1.112:28080

root/root

二、配置springboot 作为dubbo客户端消费者 调用dubbo bbus提供者。

第一步:pom.xml 引入

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.5.3</version>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

<dependency>
            <groupId>com.101tec</groupId>
            <artifactId>zkclient</artifactId>
            <version>0.7</version>
        </dependency>

第二加入 dubbo.properties 和 dubbo bean 配置文件

applicationContext-dubbo.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">
	<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
	<dubbo:application name="bbus_c_uas001" />
	<dubbo:consumer timeout="15000" retries="0" />
	<!-- 使用multicast广播注册中心暴露发现服务地址 -->
	<!-- <dubbo:registry address="multicast://224.5.6.7:1234" /> -->


	<!-- 单注册中心配置 -->
	<dubbo:registry address="zookeeper://192.168.1.112:2181" />

	<!-- 多注册中心配置 -->
	<!-- <dubbo:registry id="nanjingRegistry" address="zookeeper://192.168.1.110:2181" 
		/> <dubbo:registry id="shanghaiRegistry" address="zookeeper://192.168.1.110:2182" 
		default="false" /> <dubbo:registry id="hanzhouRegistry" address="zookeeper://192.168.1.110:2183" 
		default="false" /> <dubbo:registry address="nanjingRegistry,shanghaiRegistry,hanzhouRegistry" 
		/> -->

	<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
	<dubbo:reference id="demoService"
		interface="com.allcam.modules.demo.inf.DemoService" />

	<dubbo:reference id="adsLoginService"
		interface="com.allcam.modules.login.inf.AdsLoginService" version="3.0" />

</beans>

dubbo.properties 

dubbo.application.name=yizhichao   
dubbo.application.owner=allcam
dubbo.application.logger=slf4j   
dubbo.registry.address=zookeeper://192.168.1.112:2181
dubbo.monitor.protocol=registry   
dubbo.protocol.name=dubbo   
dubbo.protocol.port=20887  
dubbo.service.loadbalance=roundrobin   
# dubbo \u8bbe\u8ba1\u7684\u65f6\u5019\u4e00\u53f0\u673a\u5668\u4e4b\u8fd0\u884c\u4e00\u4e2ajvm\uff0c\u73b0\u5728\u591a\u4e2a\u540c\u65f6\u4f7f\u7528\uff0c\u9700\u8981\u4fee\u6539\u914d\u7f6e\u9879   
#dubbo.registry.file=/ROOT/tmp/dubbo_cus/client.properties

 

第三 在Application增加dubbo的bean

 @ImportResource({"classpath:applicationContext-dubbo.xml"}) //加入spring的bean的xml文件 

package com.allcam.uas;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
import org.springframework.context.annotation.ImportResource;

/**
 * 
 * <一句话功能简述> <功能详细描述>
 * 
 * @author yizhichao
 * @version [版本号, 2016年7月12日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@SpringBootApplication
@ImportResource({"classpath:applicationContext-dubbo.xml"}) //加入spring的bean的xml文件   
// same as @Configuration @EnableAutoConfiguration
// @Configuration
// @ComponentScan
// @EnableAutoConfiguration
public class Application extends SpringBootServletInitializer {
	// private static final Logger logger =
	// LoggerFactory.getLogger(Application.class);

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(Application.class);
	}

	public static void main(String[] args) {
		// File file = new File("log4j2.xml");
		// BufferedInputStream in = null;
		// try
		// {
		// in = new BufferedInputStream(new FileInputStream(file));
		// final ConfigurationSource source = new ConfigurationSource();
		// source.setInputStream(in);
		// Configurator.initialize(null, source);
		// }
		// catch (FileNotFoundException e)
		// {
		// e.printStackTrace();
		// }
		SpringApplication.run(Application.class, args);
	}

	// @Configuration
	// static class WebMvcConfigurer extends WebMvcConfigurerAdapter {
	//
	// public void addInterceptors(InterceptorRegistry registry) {
	// registry.addInterceptor(new HandlerInterceptorAdapter() {
	//
	// @Override
	// public boolean preHandle(HttpServletRequest request, HttpServletResponse
	// response, Object handler)
	// throws Exception {
	// request.getContextPath();
	// System.out.println("11111111111
	// Application.WebMvcConfigurer.interceptor");
	// return true;
	// }
	// }).addPathPatterns("/**");
	// }
	// }

}

第四:调用测试

    @ResponseBody
    @RequestMapping(value = "/get", method = {RequestMethod.POST, RequestMethod.GET})
    public List<String> get(HttpServletRequest request, HttpServletResponse response)
    {
    	System.out.println(request.getAttribute("jsonData"));
        List<String> list = new ArrayList<String>();
        list.add("hello");
        list.add("你好");
        WebApplicationContext  context =(WebApplicationContext)SystemContextListener.applicationContext;
        DemoService demoService = (DemoService)context.getBean("demoService"); // 获取远程服务代理
        for (int i = 0; i < 1; i++)
        {
            String hello = demoService.sayHello("world"); // 执行远程方法
            System.out.println(hello + "2"  +i);
        }
        return list;
    }

查看dubbo控制台 可以查看到调用记录

http://192.168.1.112:28080/governance/applications

 

© 著作权归作者所有

共有 人打赏支持
yizhichao

yizhichao

粉丝 13
博文 382
码字总数 286227
作品 0
南京
程序员
深入 Spring Boot : 快速集成 Dubbo + Hystrix

背景 Hystrix 旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以...

小致dad
07/02
0
0
微服务选择Spring Cloud还是Dubbo?

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书。 ——异步小编 在阿里巴巴的生态中,微服务逐渐成为主要的服务形态,伴随着容器...

异步社区
04/27
0
0
深入浅出Dubbo剖析出视频教程了!!!

深入浅出Dubbo剖析出视频教程了,目前出了Dubbo剖析-基础教程,本课程作为深入浅出Dubbo课程系列的基础篇,内容如下: 第一章 初始Dubbo(免费) 第二章 使用 ZooKeeper 搭建服务治理中心 第...

阿里加多
05/04
0
0
Spring + Dubbo + zookeeper (linux) 框架搭建

dubbo简介 节点角色说明: Provider: 暴露服务的服务提供方。 Consumer: 调用远程服务的服务消费方。 Registry: 服务注册与发现的注册中心。 Monitor: 统计服务的调用次调和调用时间的监控中...

王庭
2015/10/27
0
5
使用spring boot构建的客户端项目wolf调用dubbo服务

lion:dubbo服务的提供方,即服务端 项目地址:https://github.com/BruceZhangXL/lion wolf:dubbo服务的调用方,即客户端 项目地址:https://github.com/BruceZhangXL/wolf wolf项目也是基于...

龙行天下简书
2017/12/16
0
0
dubbo client server demo

个客户端。 服务端 服务端maven父工程 首先搭建一个maven父工程,引入dubbo和spring的依赖,dubbo可以和spring无缝集成。 [html] view plaincopy <properties> <project.build.sourceEncodi...

cc-s
2015/10/29
0
0
基于开源Dubbo分布式RPC服务框架的部署整合

详细介绍请参照官方地址:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm,不再重复描述,本文主要记录了详细的开发整合步骤。 一、源码构建 这个网上很多教程,大家可以google/ba...

hanfeng
2015/11/03
0
1
Java底层架构之RPC框架Dubbo核心原理之源码分析

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单...

stars永恒
04/26
0
0
基于 dubbo 的分布式架构

前言 现在越来越多的互联网公司还是将自己公司的项目进行服务化,这确实是今后项目开发的一个趋势,就这个点再凭借之前的 SSM 项目来让第一次接触的同学能快速上手。 浅谈分布式架构 分布式架...

Java小铺
07/06
0
0
springcloud(三):服务提供与调用

文章概述 上一篇文章我们介绍了eureka服务注册中心的搭建,这篇文章介绍一下如何使用eureka服务注册中心,搭建一个简单的服务端注册服务,客户端去调用服务使用的案例。 案例中有三个角色: ...

AHUSKY
06/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

崛起于Springboot2.X之开发拦截器(21)

序言:几乎所有项目都需要拦截器,所以小伙伴们必须要掌握这门技术哦,不然只会mybaits增删改查那是实习生干的活呀。 1、创建拦截器类,implements HandlerInterceptor public class MyInce...

木九天
14分钟前
1
0
(转)SQL语句的执行顺序

(7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_type> JOIN <right_table> (2) ON <join_condition> (4) WHERE <where_condition> (5) GROUP BY <group_by_list> (......

Avner
23分钟前
0
0
1.14 救援模式

确保开机启动时连接镜像文件,如果是真机服务器,就需要:U盘或光盘镜像启动进入BIOS 不同主板进入bios按键不同,一般是F12或Esc 光标:移动到Boot(开机启动项) 减号移动:光标选中行,按-...

小丑鱼00
31分钟前
0
0
ES11-全文检索

高级别全文检索通常用于在全文本字段(如电子邮件正文)上运行全文检索。 他们了解如何分析被查询的字段,并在执行之前将每个字段的分析器(或search_analyzer)应用于查询字符串。 1.term查...

贾峰uk
34分钟前
0
0
java 复制对象有哪些方式

java 复制对象有哪些方式 Apache的 Common beanutils库 org.apache.commons.beanutils.BeanUtils.copyProperties(dest,origin); Springframework 的BeanUtil 依赖: <dependency> ......

黄威
50分钟前
2
0
jstack的简单使用

公司测试反应, 一个java应用的机器, 即使不做交易, cpu始终是30%多, 于是想到了jstack, 实践步骤记录一下: 1, 找出java应用的进程号 ps -ef|grep 应用名|grep -v grep 2, 找出pid下的cpu占用...

零二一七
56分钟前
1
0
导入CSV文件就行数据整理分析

#-*-coding:utf-8-*-import csv,os,re,mathlocalPath=input("请输入所有群文件的根目录:") #所有QQ群文件的物理根目录路径def info(): info_dic=[] dirList=os.listdi...

Kefy
今天
5
0
CoreText进阶(六)-内容大小计算和自动布局

CoreText进阶(六)-内容大小计算和自动布局 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更...

aron1992
今天
1
0
一个Unity高人的博客,涉猎范围很广,深度也很深。

https://blog.csdn.net/ecidevilin/article/list/

爽歪歪ES
今天
0
0
Spring Cloud Config-Git后端

EnvironmentRepository的默认实现使用Git后端,这对于管理升级和物理环境以及审核更改非常方便。要更改存储库的位置,可以在Config Server中设置“spring.cloud.config.server.git.uri”配置...

itcloud
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部