Dubbo心得

1.Dubbo

Dubbo是一个由阿里巴巴开源的、分布式的RPC和微服务框架。它主要是针对于分布式
需求的,相等于远程服务调用的分布式框架。
Dubbo提供了三个关键功能:1.基于接口的远程调用 2.容错与负载均衡 3.服务自动注册与发现

2.Dubbo优缺点

优点:
1.透明化的远程方法
2.软负载均衡及容错机制
3.服务注册中心自动注册 & 配置管理
4.服务接口监控
缺点:
1.单一的系统架构
2.不能复用
3.只支持JAVA语言

3.Dubbo的结构图:

在这里插入图片描述

4.Demo

服务提供者

1.定义服务接口

public interface ClusterServiceProvider {

    /**
     * 提供指定集群的基本信息与运行状态
     * @param clusterIds
     * @return
     */
    List<RedisClusterVO> getClusterInfo(List<String> clusterIds);

    /**
     * 返回集群当前的连接列表
     * key为实例ip:port
     * value为客户端ip列表
     * @param clusterId
     * @return
     */
    Map<String, Set<String>> getClientList(String clusterId);

}

2.Dubbo配置

<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="rabbitmq-app"/>
    <!-- 本机 伪集群 测试 -->
    <dubbo:registry address="N/A"/>

    <dubbo:consumer timeout="1000" filter="signGenFilter" sign.salt="${dubbo.sign.salt}"/>

    <dubbo:protocol name="dubbo" port="${dubbo.port}" accesslog="false" threadpool="fixed" threads="100"/>

    <!-- 提供服务 -->
    <dubbo:service interface="com.oppo.paas.pcache.provider.spi.ClusterServiceProvider" ref="clusterServiceProvider"
                   proxy="jdk"/>
    <bean id="clusterServiceProvider" class="com.oppo.paas.pcache.web.provider.impl.ClusterServiceProviderImpl"/>

</beans>

服务消费者

<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="rabbitmq-app"/>
    <!-- 本机 伪集群 测试 -->
    <dubbo:registry address="N/A"/>

    <dubbo:consumer timeout="1000" filter="signGenFilter" sign.salt="${dubbo.sign.salt}"/>

    <dubbo:protocol name="dubbo" port="${dubbo.port}" accesslog="false" threadpool="fixed" threads="100"/>

	<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
    <dubbo:reference id="clusterServiceProvider" interface="com.oppo.paas.pcache.provider.spi.ClusterServiceProvider" ref="clusterServiceProvider"
                     url="${dubbo.sysadmin.url}" check="false"/>

</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值