Dubbo从入门到“放弃”

一、Dubbo技术点

在这里插入图片描述
(1)Dubbo是阿里开源的远程服务调用(RPC)的分布式框架,提供了SOA服务治理方案

  • RPC:(Remto Procedure Call Protocol),通俗的说,就是两台服务器A、B。应用A部署在A服务器上, 应用B部署在B服务器上面,A应用如果调用B服务上面B应用,由于不在一个内存空间,不能直接调用,需要通过网路通讯、协议、寻址的方式来表达调用的语义和传达调用的数据。PRC就是一种解决方案,它将远程调用的细节隐藏起来,调用远程服务就像调用本地服务一样简单
  • SOA:(Service Oriented Architecture),面向服务的架构,可以以理解为资源调度和治理中心。
    (2)核心组件:Container(容器)、Provider(服务提供者)、Registry(注册中心)、Consumer(服务消费方)、Monitor(监控中心)
  • Container(容器):主要负责启动、加载、运行服务提供者
  • Provider(服务提供者):在启动时,向注册中心注册自己提供的服务
  • Consumer(服务消费者):向注册中心订阅自己的服务
  • Registry(注册中心):返回服务提供者给我i消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
  • Monitor(监控中心):服务消费者和提供者,在内存中累计调用次数与调用时间,定时发送统计。

(3)Dubbo负载均衡策略

  • 随机均衡算法:默认随机算法,按权重设置随机概率
  • 权重轮询均衡算法:按照公约后的权重,设置轮询比例,能考虑到每台服务器的性能。实际应用比较常见。
  • 最少活跃调用均衡算法:指的是当请求调用来临,有多个实例提供服务的时候,选择其中被调用活跃次数最少的实例来提供服务。通俗一点讲就是,当前有 3 个实例在提供服务,A 当前被 2 个服务调用,B 当前被 3 个服务调用,C 当前被 1 个服务调用,一个新的调用请求过来,会选择调用到 C 实例。
  • 一致性hash均衡算法:相同参数的请求总是发到用一个提供者
二、Dubbo知识点

(1)注册中心

  • 注册中心只负责地址的注册和查找,相当于我们的目录服务,只有在容器启动的时候,服务提供者和消费者在注册中心交互,整个过程中,注册中心不参与数据传输,不转发请求,压力较小
  • 注册中心会部署集群,如果集群中的任意一台宕机,将自动i求耳环到另外一台,不会影响已经运行的提供者和消费者。如果集群中的所有注册中心全部宕机,服务提供者和消费者仍然能通过本地缓存通讯,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务

(2)监控中心

  • 监控中心宕机不影响使用,值是丢失部分采样数据
  • dubbo-admin可以通过监控中心的可视化界面,进行禁止服务和截止消费者(大量恶意昂问的IP)

(3)服务提供者

  • 服务提供者出现宕机,如果任意一台宕机,由于服务提供者没有状态,不影响使用,如果所有的服务提供者都宕机之后,消费者应用将无法使用,并且无限次重连等待服务提供者恢复
  • 服务提供者出现变更,如新增加新的机器,注册中心基于长连接将推送服务提供者信息给消费者
三、Dubbo的使用

(1)、添加pom依赖

			<dependency>//dubbo的jar包
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>2.6.0</version>
            </dependency>

            <dependency>//zookeeper客户端
                <groupId>com.101tec</groupId>
                <artifactId>zkclient</artifactId>
                <version>0.10</version>
            </dependency>
            <dependency>
                <groupId>com.gitee.reger</groupId>
                <artifactId>spring-boot-starter-dubbo</artifactId>
                <version>1.0.10</version>
            </dependency>

(2)服务提供端配置

#application.name就是服务名,不能跟别的dubbo消费端重复
spring.dubbo.application.name=usermanage
#registry.protocol 是指定注册中心协议
spring.dubbo.registry.protocol=zookeeper
#registry.address 是注册中心的地址加端口号
spring.dubbo.registry.address=39.98.33.76:2181
#base-package  注解方式要扫描的包
spring.dubbo.base-package=com.zxj.commerce
#protocol.name 是指定dubbo使用协议,默认是dubbo协议。
spring.dubbo.protocol.name=dubbo

(3)消费端配置

spring.dubbo.application.name=order-web
spring.dubbo.registry.protocol=zookeeper
spring.dubbo.registry.address=39.98.33.76:2181
spring.dubbo.base-package=com.zxj.commerce
spring.dubbo.protocol.name=dubbo
#consumer.timeout  是访问提供端服务的超时时间,默认是1000毫秒
spring.dubbo.consumer.timeout=10000
#consumer.check 是启动消费端时,是否检查服务端能否正常访问。如果选择true,那启动消费端时,必须保证提供端服务正常,否则接口无法注入。
spring.dubbo.consumer.check=false

(4)注解

@Service 服务提供端
public class UserManageServiceImpl implements UserManageService

@Reference 服务消费端

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值