dubbo(三)注册中心和直连(配置文件)

一、连接dubbo注册中心:

生产者注册到注册中心,消费者从注册中心消费;

如测试环境和开发环境共用一个注册中心,测试环境服务A已经注册到注册中心,(本地)开发环境可以不启动A,只启动应用B,调用注册中心的服务A。

以下注册中心均为zk:

二、dubbo直连本地:

即生产者和消费者均绕开注册中心,消费者直接连接生产者。如测试环境和开发环境共用一个注册中心,本地调试的时候一般采取直连的方式。即有服务A,应用B,改动了A,希望B上看到效果,则把A的dubbo配置文件中register均改为false,并且B需要消费本地的服务后加上url="dubbo://127.0.0.1:端口号",在本地分别启动A、B,就是B直连A。

当然,这种调试也可以继续采用注册中心的方式,即改动了服务A,而A继续注册到注册中心,启动A,应用B从注册中心消费A。但是这种方式也是需要启动两个组件,并且在调试还没有通过的情况下,A服务在注册中心注册了两个节点,如:(第一个为本地启动的服务,第二个为测试环境机器部署的服务)

会影响正在消费A的应用(包含B)。

三、举例:

1、通过注册中心连接:

(1)生产: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://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参数设置 -->
    <dubbo:application name="my-service1"/>
    <dubbo:provider timeout="3000" retries="0"/>
    <dubbo:registry protocol="zookeeper" 
      address="192.168.xx.123:2181,192.168.xx.456:2181,192.168.xx.789:2181"
      register="true"  file="my-service1.cache" check="false"/>
    <dubbo:protocol name="dubbo" port="20885"/>
 
    <!-- 提供的服务 -->
    <dubbo:service ref="userService" interface="com.wtyy.service.UserService"/>
	<dubbo:service ref="roleService" interface="com.wtyy.service.RoleService"/>
	
    <!-- 依赖的服务 -->
    <dubbo:consumer timeout="3000" retries="0" check="false"/>
    <dubbo:reference id="schoolService" interface="com.bb.service.SchoolService" />
    <dubbo:reference id="notifyService" interface="com.aa.service.NotifyService" />
</beans>

注意这个port指注册到注册中心的端口,不是指该service部署机器的端口 。一个注册中心同一个端口不可以被不同服务组件注册。

(2)消费: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://code.alibabatech.com/schema/dubbo" xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans-3.1.xsd            http://code.alibabatech.com/schema/dubbo            http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
	<dubbo:application name="my-webservice1" />
	<dubbo:consumer timeout="3000" retries="0" check="false"/>
	<dubbo:registry protocol="zookeeper" 
      address="192.168.xx.123:2181,192.168.xx.456:2181,192.168.xx.789:2181" 
       register="true"  timeout="100000"/>
	<!-- user -->
	<dubbo:reference interface="com.wtyy.service.AreaService" id="areaService" check="false"/>
	<dubbo:reference interface="com.aa.service.SchoolService" id="schoolService"  check="false"/>
</beans>

注:上面的例子,provider也含有消费,因为生产和消费不是绝对的,生产者也可能消费某些第三方服务,不过一般情况下不会这样。

2、本地直连:

(1)首先,生产不注册到注册中心,即register="true"改成register="false";并在本地启动所有需要的生产服务;

      如启动service1项目,有个userService注册在本地20885端口;

      启动service2项目,有个schoolService注册在本地20881端口。

(2)消费,服务后加上本地的地址(注意,直连要保证同一个服务的生产和消费在同一个端口),当然,不需要本地调试的仍然可以使用注册中心的服务,如下面的foodService:

 <dubbo:reference interface="com.wtyy.service.UserService" id="userService"
                     url="dubbo://127.0.0.1:20885"/>
    <dubbo:reference interface="com.aa.service.ScoolService" id="schoolService"
                     url="dubbo://127.0.0.1:20881"/>
 <dubbo:reference interface="com.aa.service.FoodService" id="foodService"
                     />

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w_t_y_y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值