初识Dubbo架构与基本配置

一 Dubbo架构概述

dubbo 是阿里开源的一个SOA服务治理框架,从目前来看把它称作是一个RCP远程调用框架更为贴切。单从RPC框架来说,功能较完善,支持多种传输和序列化方案。其核心功能自然就是远程调用。
在这里插入图片描述
dubbo架构图示
在这里插入图片描述
dubbo执行流程:

  1. Provider(提供者)绑定指定端口并启动服务
  2. 指供者连接注册中心,并发本机IP、端口、应用信息和提供服务信息发送至注册中心存储
  3. Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信息至注册中心
  4. 注册中心根据 消费 者所求服务信息匹配对应的提供者列表发送至Consumer 应用缓存。
  5. Consumer 在发起远程调用时基于缓存的消费者列表择其一发起调用。
  6. Provider 状态变更会实时通知注册中心、在由注册中心实时推送至Consumer

设计的意义:

  1. Consumer 与Provider 解偶,双方都可以横向增减节点数。
  2. 注册中心对本身可做对等集群,可动态增减节点,并且任意一台宕掉后,将自动切换到另一台
  3. 去中心化,双方不直接依懒注册中心,即使注册中心全部宕机短时间内也不会影响服务的调用
  4. 服务提供者无状态,任意一台宕掉后,不影响使用

二 基础配置

最基本的是配置两个xml文件,一个服务于Consumer(消费者);一个服务于Provider(提供者)。
提供端:---------------------------

<?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="demo-provider"/>
<dubbo:registry protocol="redis" address="192.168.1.66:6379" check="true"/>
<dubbo:protocol name="dubbo" port="20880"/>
<dubbo:provider group="snowman"
		threadpool="fixed"
		threads="500"
		timeout="5000"
		retries="2"
/>
<dubbo:service interface="com.snowman.service.DemoService"
		timeout="5000"
		retries="1"
		version="3.0.0"
		ref="demoService"/>
<bean id="demoService" class="com.snowman.serviceImpl.DemoServiceImpl"/>

消费端:--------------------

<?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="demo-consumer"/>
<dubbo:registry protocol="redis" address="192.168.1.66:6379" check="true"/>
<dubbo:consumer timeout="5000"
		retries="2"
		group="snowman"
		version="1.0.0"/>
<dubbo:reference timeout="3000" 
		retries="1"
		id="demoService"
		version="*"
		interface="com.snowman.service.DemoService"/>

配置详解
参数说明:

标签 属性 描述 必填
application name 应用名称
registry protocol 注册中心协议
address 注册中心地址
provider threadpool 线程模型fixed/cache
threads
service interface
ref
group
version 和消费端一致才能匹配调用
timeout 重试次数,是给消费端使用的(没有配的情况下)
retries 重试次数,(同上)
consumer timeout
retries
reference id
interface
version
check
retries 重试次数

配置分布图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/snow____man/article/details/83896773