- 博客(102)
- 收藏
- 关注
原创 dubbo 通信协议 dubbo 协议为什么采用异步单一长连接
因为服务的现状大都是服务提供者少,通常只有几台机器,而服务的消费者多,可能整个网站都在访问该服务,通过单一连接,保证单一消费者不会压死提供者,台提供者,却有上百台消费者,每天有。服务,服务提供者很容易就被压跨,长连接,减少连接握手验证等,
2024-01-05 11:38:19
415
原创 dubbo 通信协议 dubbo 协议为什么不能传大包
如果能接受,可以考虑使用,否则网络将成为瓶颈。单个消费者调用单个服务提供者的。如果每次请求的数据包大小为。协议采用单一长连接,环境可能不一样,供参考。,假设网络为千兆网卡。
2024-01-05 11:37:36
390
原创 dubbo 通信协议 dubbo 协议为什么要消费者比提供者个数多
协议采用单一长连接,假设网络为千兆网卡。根据测试经验数据每条连接最多只能压满。不同的环境可能不一样,供参考。个服务消费者才能压满网卡。
2024-01-05 11:36:46
427
原创 dubbo 服务集群配置(集群容错模式)
但重试会带来更长延迟。可通过 retries="2"来设置重试次数(不含第一次)。操作,但需要浪费更多服务资源。可通过 forks="2"来设置最大并行数。失败自动切换,当出现失败,重试其它服务器。(缺省)通常用于读操作,快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写操作,并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较高的读。失败自动恢复,后台记录失败请求,定时重发。通常用于消息通知操作。失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。提供了多种容错方案,缺省为。
2024-01-05 11:34:38
390
原创 dubbo 连接注册中心和直连的区别
服务注册中心,动态的注册和发现服务,使服务的位置透明,并通过在消费方获取服务提供方地址列表,实现软负载。注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册。中心不转发请求,服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,注册中心,服。务提供者,服务消费者三者之间均为长连接,监控中心除外,注册中心通过长连接感知服务提供者的存在,服务提供。, 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给。
2024-01-05 11:30:38
357
原创 dubbo 服务负载均衡策略?
最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。使慢的提供者收到更少请求,因为越慢的提供者的。在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比。轮循,按公约后的权重设置轮循比率。存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调。,相同参数的请求总是发到同一提供者。当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节。到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。点,平摊到其它提供者,不会引起剧烈变动。,如果要修改,请配置。
2024-01-05 11:29:33
342
原创 Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
服务提供者无状态,任一台 宕机后,不影响使用;服务提供者全部宕机,服务消费者会无法使用,并无。注册中心对等集群,任意一台宕机后,将会切换到另一台;注册中心全部宕机后,服务的提供者和消费者仍能通过本。挂掉是不要紧的,但前提是你没有增加新的服务,如果你要调用新的服务,则是不能办到的。拉取注册的生产者的地址接口等数据,缓存在本地。限次重连等待服务者恢复;地存储的地址进行调用;
2024-01-05 11:28:30
345
原创 Dubbo 和 Spring Cloud 的区别?
而 SpringCloud 是基于 Http 协议+Rest 接口调用远程过程的通信,最大的区别:Dubbo 底层是使用 Netty 这样的 NIO 框架,是基于。TCP 协议传输的,配合以 Hession 序列化完成 RPC 通信。REST 相比 RPC 更为灵活,服务提供方和调用方的依赖只依靠一纸契。相对来说,Http 请求会有更大的报文,占的带宽也会更多。约,不存在代码级别的强依赖。
2024-01-05 11:27:03
376
原创 Dubbo 和 Spring Cloud 的关系?
Spirng Boot 的优势之上,两个框架在开始目标就不一致,Dubbo。量分发、流量监控和熔断。而 Spring Cloud 诞生于微服务架构时。Dubbo 是 SOA 时代的产物,它的关注点主要在于服务的调用,流。代,考虑的是微服务治理的方方面面,另外由于依托了 Spirng、定位服务治理、Spirng Cloud 是一个生态。
2024-01-05 11:26:17
354
原创 Dubbo 和 Dubbox 之间的区别?
dubbox 基于 dubbo 上做了一些扩展,如加了服务可 restful 调。用,更新了开源组件等。
2024-01-05 11:25:43
353
原创 Dubbo 在安全机制方面是如何解决?
Dubbo 通过 Token 令牌防止用户绕过注册中心直连,然后在注册中。Dubbo 还提供服务黑白名单,来控制服务所允许的调。
2024-01-05 11:24:59
367
原创 Dubbo 超时时间怎样设置
服务提供者端设置超时时间,在 Dubbo 的用户文档中,推荐如果能。在服务端多配置就尽量多配置,因为服务提供者比消费者更清楚自己。服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消。费者端为主,即优先级更高。因为服务调用方设置超时时间控制性更。如果消费方超时,服务端线程不会定制,会产生警告。
2024-01-05 11:23:39
562
原创 Dubbo 的集群容错方案有哪些?
高的读操作,但需要浪费更多服务资源。可通过 forks="2" 来设置最。广播调用所有提供者,逐个调用,任意一台报错则报错。失败自动切换,当出现失败,重试其它服务器。快速失败,只发起一次调用,失败立即报错。通常用于非幂等性的写。失败安全,出现异常时,直接忽略。通常用于写入审计日志等操作。失败自动恢复,后台记录失败请求,定时重发。并行调用多个服务器,只要一个成功即返回。通常用于实时性要求较。知所有提供者更新缓存或日志等本地资源信息。重试会带来更长延迟。操作,比如新增记录。
2024-01-04 15:34:38
344
原创 Dubbo 集群提供了哪些负载均衡策略
总是发到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其。截面碰撞率高,调用次数越多,分布越均匀;随机选取提供者策略,有利于动态调整提供。一致性 Hash 策略,使相同参数请求。他提供者,避免引起提供者的剧烈变动;轮循选取提供者策略,平均分布,但是。最少活跃调用策略,解决慢提供者接收。缺省时为 Random 随机调用。存在请求累积的问题;
2024-01-04 15:34:08
376
原创 Dubbo 与 Spring 的关系?
API 侵入,只需用 Spring 加载 Dubbo 的配置即可,Dubbo 基于。Dubbo 采用全 Spring 配置方式,透明化接入应用,对应用没有任何。Spring 的 Schema 扩展进行加载.
2024-01-04 15:33:02
341
原创 Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
可以的,启动 dubbo 时,消费者会从 zookeeper 拉取注册的生产者。每次调用时,按照本地存储的地址进行调用。的地址接口等数据,缓存在本地。
2024-01-04 15:32:17
323
原创 Dubbo 为什么需要服务治理?
负载均衡分配节点压力过大的情况下也需要部署集群。过多服务导致性能指标分析难度较大,需要监控。过多的服务 URL 配置困难。服务依赖混乱,启动顺序不清晰。
2024-01-04 15:31:46
345
原创 Dubbo 支持哪些协议,每种协议的应用场景,优缺点
多个短连接,基于 HTTP 传输,HttpInvoke 实现。多个短连接,传输协议 HTTP,传入参数大小混。多个短连接,同步 HTTP 传输,Hessian 序列化,传入参。传输协议 TCP,异步,Hessian 序。多个短连接,TCP 协议传输,同步传输,适用常规的。基于 WebService 的远程调用协议,集成 CXF 实现,合,提供者个数多于消费者,需要给应用程序和浏览器 JS 调用;接,传输数据包大小混合,消费者和提供者个数差不多,可传文件,数较大,提供者大于消费者,提供者压力较大,可传文件;
2024-01-04 15:29:48
450
原创 Dubbo 的架构设计
为中心,扩展接口为 Protocol、Invoker 和 Exporter。:封将 RPC 调用,以 Invocation 和 Result。:对外配置接口,以 ServiceConfig 和。):服务接口透明代理,生成服务的客户端 Stub。:抽象 mina 和 netty 为统一接口,以。Request 和 Response 为中心。供方和服务消费方的业务设计对应的接口和实现。:封装服务地址的注册与发现,以服务 URL。中心,以 Invoker 为中心。:封装请求响应模式,同步转异步,以。
2024-01-04 15:27:54
394
原创 Dubbo 服务注册与发现的流程
Consumer(消费者),连接注册中心 ,并发送应用信息、所求服务信。Provider 状态变更会实时通知注册中心、在由注册中心实时推送至。Consumer 在发起远程调用时基于缓存的消费者列表择其一发起调。指供者连接注册中心,并发本机 IP、端口、应用信息和提供服务信息。注册中心根据 消费 者所求服务信息匹配对应的提供者列表发送至。注册中心对本身可做对等集群,可动态增减节点,并且任意一台宕掉。去中心化,双方不直接依懒注册中心,即使注册中心全部宕机短时间。服务提供者无状态,任意一台宕掉后,不影响使用。
2024-01-04 15:26:39
452
原创 Dubbo 的核心功能
协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群。的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少。网络通信框架,提供对多种 NIO 框架抽象封装,包括。“同步转异步”和“请求-响应”模式的信息交换方式。,提供基于接口方法的透明远程过程调用,包括多。,基于注册中心目录服务,使服务消费方能动态。
2024-01-04 15:24:10
377
原创 Dubbo 的主要应用场景
软负载均衡及容错机制,可在内网替代 F5 等硬件负载均衡器,基于接口名查询服务提供者的 IP 地址,并且能够平滑添加或删。透明化的远程方法调用,就像调用本地方法一样调用远程方法,服务自动注册与发现,不再需要写死服务提供方地址,注册中心。只需简单配置,没有任何 API 侵入。降低成本,减少单点。
2024-01-04 15:23:36
348
原创 Dubbo 集群的负载均衡有哪些策略
到同一提供者,一台机器宕机,可以基于虚拟节点,分摊至其他提供者,避。提供了常见的集群策略实现,并预扩展点予以自行实现。截面碰撞率高,调用次数越多,分布越均匀;随机选取提供者策略,有利于动态调整提供者权。轮循选取提供者策略,平均分布,但是存在请。最少活跃调用策略,解决慢提供者接收更少的。策略,使相同参数请求总是发。免引起提供者的剧烈变动;
2024-01-03 16:02:29
477
原创 Dubbo 有些哪些注册中心?
址,就能进行服务注册和发现。基于网络中组播传输实现;注册中心不需要任何中心节点,只要广播地。订阅模式通知数据变更;
2024-01-03 16:01:58
474
原创 Dubbo 超时时间怎样设置?
端多配置就尽量多配置,因为服务提供者比消费者更清楚自己提供的服务特。服务消费者端设置超时时间,如果在消费者端设置了超时时间,以消费者端。为主,即优先级更高。因为服务调用方设置超时时间控制性更灵活。费方超时,服务端线程不会定制,会产生警告。的用户文档中,推荐如果能在服务。服务提供者端设置超时时间,在。
2024-01-03 16:01:28
660
原创 Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
据包大小混合,消费者和提供者个数差不多,可传文件,传输协议。协议传输,同步传输,适用常规的远程服务调用和。异步通讯,适合大并发小数据量的服务调用,协议实现,传输参数和返回参数对象需要实现。标准序列化机制,使用阻塞式短连接,传输数。,传入参数大小混合,提供者个数多于消。消费者,提供者压力较大,可传文件;以及消费者远大于提供者。序列化,传入参数较大,提供者大于。表单提交的远程调用协议,使用。费者,需要给应用程序和浏览器。作为服务器时默认实现,提供与。多个短连接,传输协议。的远程调用协议,集成。
2024-01-03 16:00:55
381
原创 ActiveMQ 中的消息重发时间间隔和重发次数吗?
ActiveMQ:是 Apache 出品,最流行的,能力强劲的开源消息总线。(V5.5),假设首次重连间隔为 10ms,倍数为 2,那么第二次重连时间间隔为 20ms,第三次重连时间。首先,我们得大概了解下,在哪些情况下,ActiveMQ 服务器会将消息重发给消费者,这里为简单起见,端机器上,内存中都运行着一套客户端的 ActiveMQ 环境,该环境负责缓存发来的消息,负责维持着和。间隔为 40ms,当重连时间间隔大的最大重连时间间隔时,以后每次重连时间间隔都为最大重连时间间隔。
2024-01-03 15:59:49
387
原创 ActiveMQ 死信队列
消费消息有 2 种方法,一种是调用 consumer.receive()方法,该方法将阻塞直到获得并返回一条消息。在重试 6 次后,ActiveMQ 认为这条消息是“有毒”的,将会把消息丢到死信队列里。个消费者,往往在一个服务器上不能处理的消息,在另外的服务器上依然不能被处理。息才会被确认,此时只要在方法中抛出异常,该消息就不会被确认。处理,会被退回服务器重新分配,如果只有一个消费者,该消息又会重新被获取,重新抛异常。如果你想在消息处理失败后,不被服务器删除,还能被其他消费者处理或重试,可以关闭。
2024-01-03 15:59:10
400
原创 ActiveMQ 消息的不均匀消费
当消费者去获取消息时,不会一条一条去。还是可以看见这些消息的,但是不会再分配给其他消费者,此时这些消息的状态应该算作“已分配未消费”,情况是,消费这些消息非常耗时,你开了 10 个消费者去处理,结果发现只有一台机器吭哧吭哧处理,另。如果消息最后被消费,则会在服务器端被删除,如果消费者崩溃,则这些消息会被重新分配给新的消费者。解决方案:将 prefetch 设为 1,每次处理 1 条消息,处理完再去取,这样也慢不了多少。但是如果消费者既不消费确认,又不崩溃,那这些消息就永远躺在消费者的缓存区里无法处理。
2024-01-03 15:58:33
374
原创 ActiveMQ 持久化消息非常慢
息的速度是无法忍受的。但是在开启事务的情况下,消息都是异步发送的,效率会有 2 个数量级的提升。默认的情况下,非持久化的消息是异步发送的,持久化的消息是同步发送的,遇到慢一点的硬盘,发送消。所以在发送持久化消息时,请务必开启事务模式。其实发送非持久化消息时也建议开启事务,因为根本不。
2024-01-03 15:58:03
412
原创 ActiveMQ 丢消息怎么办?
跳包的设置,导致发生了 java.net.SocketException 异常,把缓存里的数据作废了,没处理的消息全部丢。不过需要注意的是,当发生 SocketException 后,原本缓存区中数据也作废了,通过抓包得知,ActiveMQ 会每隔 10 秒发送一个心跳包,这个心跳包是服务器发送给客户端的,用来判。的过程会阻塞所有动作,而且会持续 20 到 30 秒,并且随着内存的增大而增大。解决方案:用持久化消息,或者非持久化消息及时处理不要堆积,或者启动事务,启动事务后,commit()
2024-01-03 15:56:37
494
原创 ActiveMQ 服务器宕机怎么办
但是,在非持久化消息堆积。到一定程度,内存告急的时候,ActiveMQ 会将内存中的非持久化消息写入临时文件中,以腾出内存。设置 2G 左右的临时文件限制,大量生产非持久化消息并写入临时文件,在达到最大限制时,生产者阻塞,设置 2G 左右的持久化文件限制,大量生产持久化消息直到文件达到最大限制,此时生产者阻塞,但消费。然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消息会从文件中恢复,非持久化的临时。者可正常连接并消费消息,等消息消费掉一部分,文件删除又腾出空间之后,生产者又可继续发送消息,
2024-01-03 15:55:59
418
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人