dubbo+zookeeper的简单例子

标准的框架模式:

1.   将parent、model、common、service、service-impl、dao、dao-impl分开打包。将功能模块化。

        其中parent只负责存放jar包,其他项目继承parent。

        common

         control依赖model与service。只需要在pom.xml中依赖即可。

        service-impl是具体处理业务的模块,依赖model、common、service、dao、dao-impl。



1. dubbo jar包依赖

    

   未使用到montior,所以未导入该包。


    由于dubbo底层使用是用netty实现,所以导入netty包。


    需要注册zookeeper,导入zookeeper包。

2.启动zookeeper

    下载zookeeper,更改zoo.cfg文件,在bin下启动服务端与客户端。启动成功如下:


3. provider端构建

    (1)提供一个service层接口并写出该实现类。

    (2) 写一个类,用来启动spring容器。

	public static void main(String[] args) throws IOException {
		ClassPathXmlApplicationContext context=new ClassPathXmlApplicationContext(
				new String[]{"provider.xml"});
		context.start();
		System.in.read();
	}

    (3)配置xml

  <!-- 提供方应用信息,用于计算依赖关系 ,-->
  <dubbo:application name="provider"/>
  <!-- 使用zookeeper注册中心暴露服务地址 -->
  <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
  <dubbo:protocol name="dubbo" port="20880"/>
  <!-- 内部注册bean -->
  <bean id="sampleProviderService" class="com.provider.service.impl.SampleProviderServiceImpl"/>
  <!-- 暴露出来,给别人调用,指向本地的bean -->
  <dubbo:service interface="com.provider.service.SampleProviderService" ref="sampleProviderService" />
	

3. consumer端构建

    (1)需要要provider的service层搬过来。

    (2)配置consumer的xml

   	<!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 -->
	<dubbo:application name="consumer" />       
    <!-- 使用zookeeper注册中心暴露服务地址 -->
	<dubbo:registry address="zookeeper://127.0.0.1:2181" />
	<!-- 表示引用一个服务,生成远程服务代理,可以像使用本地bean一样使用demoService
	 检查级联依赖关系 默认为true 当有依赖服务的时候,需要根据需求进行设置
	 check=false,表示关闭该服务启动时检查,
	 若是此时关闭掉服务提供者的服务器,此时启动客户端的服务器,可以正常启动, -->
	<dubbo:reference id="sampleProviderService" check="false" interface="com.provider.service.SampleProviderService" />
	

    (3)调用provider中的service。

public static void main(String[] args) {	
		ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
				new String[]{"consumer.xml"});
		context.start();
		SampleProviderService service = (SampleProviderService)context.getBean("sampleProviderService");
		User user = service.getUser();
		System.out.println(user.toString());
	}

    (4)调用成功,显示结果。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值