摘要:
接着上一篇幅说,上次说到list这个请求nacos服务端时,在nacos的源码中InstanceController这个类中,有个list接口接收到这个请求;在nacos收到请求后其实按上篇幅的讲解应该知道,他应该根据serviceid,namespace,groupName,cluster这四个元 阅读全文
摘要:
Prometheus Prometheus是一个开源的监控系统,起源于SoundCloud。它由以下几个核心组件构成: 数据爬虫:根据配置的时间定期的通过HTTP抓去metrics数据。 time-series 数据库:存储所有的metrics数据。 简单的用户交互接口:可视化、查询和监控所有的me 阅读全文
摘要:
在Dubbo中,有很多地方涉及到服务失败重试,比如之前说的服务注册失败时,会调用一个方法把失败的请求保存起来进行重试。那Dubbo中是怎么来实现失败重试的呢?这里有个很有意思的设计,就是采用时间轮机制 出现失败重试采用时间轮的代码 注册中心失败重试 private void addFailedReg 阅读全文
摘要:
在上面,已经写过服务消费者在启动时被注入一个动态代理类的实现过程,再来回顾一下服务消费者启动过程中做了什么事情: 服务启动过程中,主要会构建一个动态代理类,并且在构建动态代理之前,会从注册中心上获取服务提供者的地址,并且会订阅服务提供者的状态。然后,采用DubboProtocol协议,和服务端建立一 阅读全文
摘要:
一、服务消费应具备的逻辑 如果要实现服务的消费,大致分以下几个步骤 通过@DubboReference注解生成远程服务的代理 获得目标服务的url地址 实现远程网络通信 实现负载均衡 实现集群容错 二、服务消费端流程 上图中可以看到,服务消费的流程与服务暴露的流程有点类似逆向的。同样,Dubbo 服 阅读全文
摘要:
了解了服务的发布之后,我们继续来看一下服务是如何发起注册的。服务注册实际上就是把dubbo的协议url地址保存到第三方注册中心上。 final Registry registry = getRegistry(originInvoker); getRegistry 1. 把url转化为对应配置的注册中 阅读全文
摘要:
在说dubbo的发布源码中插入了五、六两章节的扩展点说明,下面接着第四篇幅的doExportUrlsFor1Protocol()方法说明; 1、doExportUrlsFor1Protocol根据不同协议暴露服务 private void doExportUrlsFor1Protocol(Proto 阅读全文
摘要:
一、问题的引入 前文实现了一个简单的SPI机制,但是还有一些不完善的地方,比如在使用扩展点时,如何动态的确定使用的是哪个扩展点实现。 举个例子: 比如一个扩展点SimpleExt: @SPI("impl1") public interface SimpleExt { @Adaptive String 阅读全文
摘要:
一、简介 广播消费指的是:一条消息被多个consumer消费,即使这些consumer属于同一个ConsumerGroup,消息也会被ConsumerGroup中的每个Consumer都消费一次,广播消费中ConsumerGroup概念可以认为在消息划分方面无意义。 二、代码 /** * 发布订阅消 阅读全文
摘要:
opic的有序消息已经成为mq的标配。而RocketMQ中是这样区分消息类型的, 普通消息也叫做无序消息,简单来说就是没有顺序的消息,而有序消息就是按照一定的先后顺序的消息类型。举个例子,producer 依次发送 order id 为 1、2、3 的消息到 broker,consumer 接到的消 阅读全文