dubbo第一次配置学习记载一

开发环境:JDK 1.6  tomcat 6.0

jar包 :spring3.1 dubbo-2.5.3 netty-3.10.5

开发

服务接口类 定义接口

服务实现类 定义实现接口的服务类

package com.yjm.provider;
// 接口服务类
public interface SearchInfo {
	public String searchTest(String str);
	public String searchService(String str);
}

package com.yjm.providerimp;

import com.yjm.provider.SearchInfo;
//具体实现的服务
public class SearchInfoImp implements SearchInfo {

	public String searchService(String str) {
		return "dubbo test1 str" + str;
	}

	public String searchTest(String str) {
		return "dubbo test2 str" + str;
	}

}

package com.yjm.provider;
// 接口服务类
public interface ServiceInfo {

	public String test1(String str2);

	public String helloDubbo(String str1);
}

package com.yjm.providerimp;

import com.yjm.provider.ServiceInfo;
//具体实现的服务
public class ServiceInfoImp implements ServiceInfo {
	public String helloDubbo(String str1) {
		System.out.println(str1);
		return "dubbo:modify" + str1;
	}

	public String test1(String str1) {
		System.out.println(str1);
		return ("dubbo  test方法..modify") + str1;
	}
}

启动服务类

package com.yjm.main;

import java.io.IOException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class StartService {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				"dubbo-provider.xml");
		context.start();
		try {
			System.in.read();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

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">

	<!-- 使用multicast广播注册中心暴露服务地址 -->
	<!--<dubbo:registry address="multicast://192.168.101.243:1234" />-->
	<!-- 使用zookeeper注册中心暴露服务地址 -->
	<!--<dubbo:registry address="zookeeper://192.168.101.243:2181" />-->
	<!-- 用dubbo协议在20880端口暴露服务-->

	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:application name="test-app" />
	<dubbo:protocol name="dubbo" host="192.168.101.243"
		port="20880" />
	<!-- 声明需要暴露的服务接口 -->
	<dubbo:service interface="com.yjm.provider.ServiceInfo"
		ref="serviceinfo" registry="N/A">
	</dubbo:service>
	<dubbo:service interface="com.yjm.provider.SearchInfo"
		ref="searchinfoimp" registry="N/A"></dubbo:service>
	<!-- 和本地bean一样实现服务 -->
	<bean id="serviceinfo" class="com.yjm.providerimp.ServiceInfoImp"></bean>
	<bean id="searchinfoimp" class="com.yjm.providerimp.SearchInfoImp"></bean>
</beans>

客户端调用类

package com.yjm.main;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.yjm.provider.SearchInfo;
import com.yjm.provider.ServiceInfo;

public class ProCustomerTest {
	public static void main(String[] args) {
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				"dubbocustomer.xml");
		ServiceInfo si = (ServiceInfo) context.getBean("serviceinfo");
		String str = si.helloDubbo("hello");
		String str1 = si.test1("tewt..sfsda");
		System.out.println(str);
		System.out.println(str1);

		SearchInfo sei = (SearchInfo) context.getBean("searchinfo");
		String str2 = sei.searchService("searchservice");
		String str3 = sei.searchTest("test");
		System.out.println(str2);
		System.out.println(str3);

	}
}

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">

	<!-- 使用zookeeper注册中心暴露服务地址 -->
	<!--<dubbo:registry address="zookeeper://115.28.189.59:2181" />-->

	<!-- 提供方应用信息,用于计算依赖关系 -->
	<dubbo:application name="test-app-customer" />
	<dubbo:reference id="serviceinfo" interface="com.yjm.provider.ServiceInfo"
		url="dubbo://192.168.101.243:20880/">
	</dubbo:reference>
	<dubbo:reference id="searchinfo" interface="com.yjm.provider.SearchInfo"
		url="dubbo://192.168.101.243:20880/"></dubbo:reference>

</beans>

输出结果:

Feb 17, 2016 10:35:19 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
信息: Refreshing org[email protected]ab50cd: startup date [Wed Feb 17 10:35:19 CST 2016]; root of context hierarchy
Feb 17, 2016 10:35:19 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
信息: Loading XML bean definitions from class path resource [dubbocustomer.xml]
Feb 17, 2016 10:35:19 AM com.alibaba.dubbo.common.logger.jcl.JclLogger info
信息: using logger: com.alibaba.dubbo.common.logger.jcl.JclLoggerAdapter
Feb 17, 2016 10:35:19 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
信息: Pre-instantiating singletons in org.s[email protected]1d6776d: defining beans [test-app-customer,serviceinfo,searchinfo]; root of factory hierarchy
Feb 17, 2016 10:35:21 AM com.alibaba.dubbo.common.logger.jcl.JclLogger info
信息:  [DUBBO] Successed connect to server /192.168.101.243:20880 from NettyClient 192.168.101.243 using dubbo version 2.5.3, channel is NettyChannel [channel=[id: 0x83325a91, /192.168.101.243:3713 => /192.168.101.243:20880]], dubbo version: 2.5.3, current host: 192.168.101.243
Feb 17, 2016 10:35:21 AM com.alibaba.dubbo.common.logger.jcl.JclLogger info
信息:  [DUBBO] Start NettyClient lxm-PC/192.168.101.243 connect to the server /192.168.101.243:20880, dubbo version: 2.5.3, current host: 192.168.101.243
Feb 17, 2016 10:35:21 AM com.alibaba.dubbo.common.logger.jcl.JclLogger info
信息:  [DUBBO] Refer dubbo service com.yjm.provider.ServiceInfo from url dubbo://192.168.101.243:20880/com.yjm.provider.ServiceInfo?application=test-app-customer&dubbo=2.5.3&interface=com.yjm.provider.ServiceInfo&methods=test1,helloDubbo&pid=6288&side=consumer&timestamp=1455676520551, dubbo version: 2.5.3, current host: 192.168.101.243
dubbo:modifyhello
dubbo  test方法..modifytewt..sfsda
Feb 17, 2016 10:35:21 AM com.alibaba.dubbo.common.logger.jcl.JclLogger info
信息:  [DUBBO] Refer dubbo service com.yjm.provider.SearchInfo from url dubbo://192.168.101.243:20880/com.yjm.provider.SearchInfo?application=test-app-customer&dubbo=2.5.3&interface=com.yjm.provider.SearchInfo&methods=searchService,searchTest&pid=6288&side=consumer&timestamp=1455676521541, dubbo version: 2.5.3, current host: 192.168.101.243
dubbo test1 strsearchservice
dubbo test2 strtest
时间: 2024-10-29 19:10:54

dubbo第一次配置学习记载一的相关文章

Dubbo源码学习(二)

@Adaptive注解 在上一篇ExtensionLoader的博客中记录了,有两种扩展点,一种是普通的扩展实现,另一种就是自适应的扩展点,即@Adaptive注解的实现类. @Documented @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) public @interface Adaptive { String[] value() default {}; } @Adapt

Dubbo源码学习--优雅停机原理及在SpringBoot中遇到的问题

相关文章: Dubbo源码学习文章目录 前言 主要是前一阵子换了工作,第一个任务就是解决目前团队在 Dubbo 停机时产生的问题,同时最近又看了一下 Dubbo 的源码,想重新写一下 Dubbo 相关的文章. 优雅停机原理 对于一个 java 应用,如果想在关闭应用时,执行一些释放资源的操作一般是通过注册一个 ShutDownHook ,当关闭应用时,不是调用 kill -9 命令来直接终止应用,而是通过调用 kill -15 命令来触发这个 ShutDownHook 进行停机前的释放资源操作.

Dubbo源码学习之-服务导出

前言 忙的时候,会埋怨学习的时间太少,缺少个人的空间,于是会争分夺秒的工作.学习.而一旦繁忙的时候过去,有时间了之后,整个人又会不自觉的陷入一种懒散的状态中,时间也显得不那么重要了,随便就可以浪费掉几个小时.可见普通人的学习之路要主动地去克服掉很多阻碍,最主要的阻碍还是来自于自身,周期性的不想学习.不自觉的懒散.浅尝辄止的态度.好高骛远贪多的盲目...哎,学习之路,还是要时刻提醒自己,需勤勉致知. 闲话少叙,今天的学习目标是要尽量的了解清楚Dubbo框架中的服务导出功能,先附上Dubbo官网上的

redis 安装配置学习笔记

redis 安装配置学习笔记 //wget http://download.redis.io/releases/redis-2.8.17.tar.gz 下载最新版本 wget http://download.redis.io/redis-stable.tar.gz 首先必须要有 gcc 与 make apt-get install gcc apt-get install make 1.解压 [email protected]:~# tar -xvf redis-stable.tar.gz 2.测

转载 Tomcat集群配置学习篇-----分布式应用

Tomcat集群配置学习篇-----分布式应用 现目前基于javaWeb开发的应用系统已经比比皆是,尤其是电子商务网站,要想网站发展壮大,那么必然就得能够承受住庞大的网站访问量:大家知道如果服务器访问量过大,就会出现服应用务器崩溃的情况,这个时候怎么办,难道就只能去重启服务器吗?好,如果是一般的小型公益网站到也无所谓,但如果是比如像大型航空公司售票等电子商务网站,每天每小时都有大量的订单业务,如果这些售票系统一旦崩溃后,再去重启,这些时间和客户的损失就直接会影响到航空公司的利益,这些损失如何去避

Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二

准备工作:新建第一个JavaWeb项目 step3 给第一次配置tomcat的家伙们再说一遍如何配置tomcat 3.1 [Run]-[Edit Configurations] 3.2 [Default] 3.4[TomEE Server/Local]-[Server]-[Configuration] 3.5 [1]-[2tomcat解压后的第一级根目录就好,它的下一级有bin/conf等] 3.6 配置好tomcat目录后是酱了滴~忽略那个Warning~ 3.7 [Deployment]-[

Chapter 2. OpenSSL的安装和配置学习笔记

Chapter 2. OpenSSL的安装和配置学习笔记 2.1 在linux上面安装OpenSSL我还是做点No paper事情比较在行,正好和老师的课程接轨一下.以前尝试过在Windows上面安装过openSSL,这次正好在Linux上面实现一下. 希望各位园友门纠错,征求意见中. 2.1.1 安装OpenSSL的系统环境和编译环境 测试环境:Linux MINT 16 Petra ? 1 2 3 4 5 6 $ lsb_release -a #查看linux发行版本系统信息 No LSB

【基础配置】Dubbo的配置及使用

1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了Dubbo就是个远程服务调用的分布式框架(告别Web Service模式中的WSdl,以服务者与消费者的方式在dubbo上注册) 其核心部分包含:1. 远程通讯: 提供对多种基于长连接的NIO框

基于注解的Dubbo服务配置

基于注解的Dubbo服务配置可以大大减少dubbo xml配置文件中的Service配置量,主要步骤如下: 一.服务提供方 1. Dubbo配置文件中增加Dubbo注解扫描 <!-- 开启dubbo注解支持 --> <!-- 扫描注解包路径,多个包用逗号分隔,不填pacakge表示扫描当前ApplicationContext中所有的类 --> <dubbo:annotation package="com.bounter" /> 2.Service实现