dubbo

1.基础知识

分布式

理解:分布式系统是若干独立计算机的集合,这些计算机对与用户来说像是单个相关系统。
解决问题:随着网站应用规模的不断扩大,常规的垂直应用架构已经无法应对。
为什么使用dubbo:由于分布式之间各个模块或应用之间有着相互调用的关系,需要用Dubbo进行RPC通信(远程过程调用协议 Remote Procedure Call Protocol)。

RPC基本原理

服务调用过程
在这里插入图片描述

过程简述:
1.客户端服务想要调用服务端的服务方法;
2.通知一个助手去调用
3.客户端小助手通过Sockets通信去连接服务器端;传输信息给服务端端,(如方法名,参数等)
4.服务端小助手收到客户端的消息,将消息传送给服务端进行方法调用
5.方法调用完成,返回参数值,按返回路程传送给客户端。

影响RPC性能的因素《待深挖》

1.《序列化》 序列化机制和反序列化机制
2. 《通信 》能否快速建立起RPC连接

2.dubbo

Apache Dubbo
Dubbo结构图

主要组件:
Container容器
Provider服务提供者
Registry注册中心
Consumer服务消费者
Monitor监控中心

dubbo执行流程

  1. Container启动
  2. Provider将自身的服务注册到注册中心《后期的Zookeeper》
  3. Consumer启动向注册中心发布自己要订阅的服务
  4. Consumer同步调用Provider提供的服务
  5. Consumer根据负载均衡算法,去调用Provider服务。
  6. 运行状态可以在Monitor去查看

dubbo配置

dubbo-xml配置
dubbo-注解配置

SpringBoot整合

服务端配置

dubbo.application.name=user-service
dubbo.registry.address=127.0.0.1:2181
dubbo.zookeeper=zookeeper
dubbo.protpcol.name dubbo
dubbo.protocol.name=dubbo
dubbo.protocol.port =20880
dubbo.registy.monitor=registry


<!--SpringApplication启动项-->
主程序类
@SpringBootApplication
@EnableDubbo
<!--Service端-->
@Service 注解

消费端配置

dubbo.application.name=user-consumer
dubbo.registry.address=127.0.0.1:2181
dubbo.moniter.protocol=registry

实现类
@Service
public class xxx implements xxxService{
   //@Autowired 改为Reference
   @Reference
   UserService userService;
}

超时

<!--超时默认是1秒-->
<!--单个服务设置超时-->
<dubbo:reference interface=“com.awin.xxx.UserService” id="UserService" timeout="4000"></dubbo:reference>

<!--配置全部-->
<dubbo:consumer check=“false” timeout=“4000”></dubbo:consumer>

配置覆盖

以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:

方法级优先,接口级次之,全局配置再次之。
如果级别一样,则消费方优先,提供方次之。
其中,服务提供方配置,通过 URL 经由注册中心传递给消费方。在这里插入图片描述

重试次数

retries

<dubbo:consumer timeout="5000" retries="3"/>
<!--幂等(设置重试次数)【查询,删除,修改】,重试过程对结果不发生改变-->
<!--非幂等(不能设置重试次数)【新增】-->

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值