认识Dubbo

Dubbo(来自于阿里巴巴)

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的PRC远程调用服务调用方案。

Dubbo的的特点
通过spring配置的方式即可完成服务化,对于应用无入侵。(SpringCloud有一定的入侵)
通过maven的install & deploy命令把interface和Model层发布到仓库中,服务调用方只需要依赖interface和model层即可
通过zookeeper设置达到注册服务和心跳检测,通过gateWay前置网关(Clound使用Zuul实现负载均衡 将请求转向Eureka服务器)隔绝外部直接调用原子服务的风险

Dubbo 核心部件(如下图):

  • Provider: 暴露服务的提供方,可以通过jar或者容器的方式启动服务(需要启动 使用Docker容器)
  • Consumer:调用远程服务的服务消费方。
  • Registry: 服务注册中心和发现中心。(zookeeper)
  • Monitor: 统计服务和调用次数,调用时间监控中心。(dubbo的控制台页面中可以显示,目前只有一个简单版本)
  • Container:服务运行的容器。
    在这里插入图片描述

SprIng+dubbo的实现

pom.xml

<dependency>
<groundId>com.alibaba<groundId>
<artifactId>dubbo<artifactId>
<version>2.4.10<version>
</dependency>

dubbo服务提供者:服务接口和服务接口的实现和普通的一样,并不知道自己被某个RPC框架所调用。
Spring.xml

<!--接入DUBBO的应用名 -->
<dubbo:application name="ws-demo" />
<!-- 注册仓库地址:Zookeeper组件, 192.168.128:2181 -->
<dubbo:registry address="zookeeper://192.168.128:2181"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20880">
<!-- 接口实现类Bean 使用@Compent注解的当时注册 -->
<dubbo:service interface="接口" ref=“接口实现类”/>

dubbo服务消费者:只需要知道要访问的服务接口(具体实现方法 从服务提供者中获得)

<!--接入DUBBO的应用名 -->
<dubbo:application name="ws-demo-client" />
<!-- 注册仓库地址:Zookeeper组件, 192.168.128:2181 -->
<dubbo:registry address="zookeeper://192.168.128:2181"/>
<!-- 接口实现类Bean 使用@Compent注解的当时注册 -->
<dubbo:reference id="Bean名" interface="接口"/>

dubbo与Apache Thrift的区别

  • dubbo 本身是一个综合的SOA解决方案,thrift仅是一个rpc服务框架;

  • dubbo当前主要用作java, thrift可以用作目前所熟知的各种语言;

  • dubbo可以使用thrift作为rpc服务组件,dubbo也有自带的rpc组件

猜你喜欢

转载自blog.csdn.net/weixin_40990818/article/details/86531656
今日推荐