石臻臻的杂货铺
优快云博客之星Top5 ,石臻臻《Kafka运维与实战宝典》电子书作者(可找我:szzdzhp001下载)、 Kafka Contributor 、 KnowStreaming PMC、Nacos Contributor、华为云 MVP 。 滴滴Kafka技术专家 、
展开
-
【Log日志】logback.xml动态配置属性值(包括接入的第三方配置)
我们在开发过程中,会使用到logback.xml 配置来管理日志文件;比如 <appender name="common" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/common.log</file> <append>true</append> <encoder> <pattern>%d{yyyy原创 2020-10-20 17:51:32 · 3252 阅读 · 3 评论 -
【Nacos源码之配置管理 十一】服务端LongPollingService推送变更数据到客户端
前言上一篇 【Nacos源码之配置管理 十】客户端长轮询监听服务端变更数据 介绍了客户端会像服务端发起长轮询来获取变更数据, 其实在客户端发起长轮询的请求相当于向服务端发起了一个订阅; 因为服务端接受到客户端的请求之后如果没有查询到变更数据是不会返回的;而是会等待29.5s(当然时间可配),在这个29.5s时间内,服务端如果检测到有数据变更,会立马像客户端发起响应请求,因为这个时间内服务端还是...原创 2019-09-14 11:48:22 · 12362 阅读 · 3 评论 -
【Nacos源码之配置管理 十】客户端长轮询监听服务端变更数据
前言还记得我们在 服务端增删改配置数据之后如何通知集群中的其他机器 中分析了服务端之间的相互通知修改数据, 当时结尾的时候,留下了以下问题,我们将在这篇文章中来给解析一下; 客户端是如何订阅服务端的? 服务端又是怎么通知到客户端数据变更的? 客户端与服务端直接是长连接还是短连接? 客户端与服务端是推还是拉?ConfigService.addListener 订阅配置消息在【N...原创 2019-09-12 16:34:33 · 17816 阅读 · 12 评论 -
【Nacos源码之配置管理 九】客户端获取配置数据的流程
前言上一篇文章讲了 【Nacos源码之配置管理 八】客户端怎么获取服务端集群列表 ,客户端获取到集群列表缓存在内存中,是在获取配置的时候需要使用的; 因为要去服务端发起http请求获取数据; 那么我们今天来分析一下,客户端是如何获取服务端数据的阅读完本文,您将会了解以下问题: 客户端如何获取配置数据 客户端如何配置本地配置数据(开发的时候,开发者可以配置自己的配置数据) 如果服务端全...原创 2019-09-09 11:01:07 · 7675 阅读 · 12 评论 -
【Nacos源码之配置管理 八】客户端怎么获取服务端集群列表
前言在前面第六篇文章中,我们介绍了配置管服务端模块的ServerListService类;这个类作用是持有服务端集群列表信息,并且每隔一段时间就会去检查集群中的机器是否正常; ServerListService类获取集群列表方式是先获取本地文件配置,如果没有配置则检查是否配置了远程服务器配置列表;具体详细可以查看文章 【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的 ;...原创 2019-09-05 17:28:18 · 15208 阅读 · 5 评论 -
【Nacos源码之配置管理 七】服务端增删改配置数据之后如何通知集群中的其他机器
在后台管理界面可以直接增删改查所有的配置数据,那么问题来了 增删改数据这个操作,除了落库,还做了哪些操作?新增配置数据打开后台新建一个配置如果是新增先访问Http请求ConfigController.getConfig()检验dataId,group等等是否已经存在,已经存在提示不让新增不存在可以新增,则访问 ConfigController.publishConfig方法发布配...原创 2019-09-03 22:42:23 · 6979 阅读 · 17 评论 -
【Nacos源码之配置管理 六】集群模式下服务器之间是如何互相感知的
前言我们用Nacos当配置中心的时候,上一篇文章中【Nacos源码之配置管理 五】为什么把配置文件Dump到磁盘中 知道了,所有的配置文件都会Dump到服务器的本地磁盘中,那么集群模式下: 服务器之间如何彼此感知发现的? 当某一台机器宕机挂掉之后怎么处理的? 如何获取本地Ip 获取服务器列表 服务器列表健康检查阅读完本文,会带你对上面的问题有个很清晰的认知;集群模式...原创 2019-09-02 09:24:08 · 6554 阅读 · 4 评论 -
【Nacos源码之配置管理 五】为什么把配置文件Dump到磁盘中
前言上一篇文章 【Nacos源码之配置管理 四】DumpService如何将配置文件全部Dump到磁盘中 分析了Nacos将配置文件Dump的磁盘中,那我为什么要Dump到磁盘中呢?这样做有什么好处?哪些地方读取了磁盘中的文件?带着这些问题,我们去源码中一探究竟;1.快速启动,将数据库中的数据与磁盘对比MD5判断是否修改// Dump 修改过的配置文件 static public bo...原创 2019-08-27 17:00:54 · 1385 阅读 · 2 评论 -
【Nacos源码之配置管理 四】DumpService如何将配置文件全部Dump到磁盘中
本文分析一下,Nacos在启动的时候是怎么将所有的配置文件信息 Dump到磁盘上的;Dump文件的类在 DumpService 中,所以我们主要分析这个类DumpService初始化Spring启动加载时,会执行带有@PostConstruct 注解的初始化方法; @PostConstruct public void init() { DumpAllProcess...原创 2019-08-27 14:14:13 · 6964 阅读 · 1 评论 -
【Nacos源码之配置管理 三】TaskManager 任务管理的使用
任务管理类因为Nacos中有很多地方使用了这个TaskManager,所以我们得先了解一下这个类是干啥用的,方便后面阅读源码时候不会吃力;先说结论:TaskManager 可以看成是一个待执行的任务集合,用于处理一定要执行成功的任务 单线程的方式处理任务,保证任务一定被成功处理; 如果执行失败了,任务会被重新放入集合中等待下一次被消费;AbstractTaskAbstractTask是个...原创 2019-08-27 14:18:13 · 1280 阅读 · 6 评论 -
【Nacos源码之配置管理 二】Nacos中的事件发布与订阅--观察者模式
EventDispatcherEventDispatcher在Nacos中是一个事件发布与订阅的类,也就是我们经常使用的Java设计模式——事件驱动模式(观察者模式)一般发布与订阅主要有三个角色事件: 表示某些类型的事件动作,例如Nacos中的 本地数据发生变更事件 LocalDataChangeEvent事件源 : 事件源可以看成是一个动作,某个事件发生的动作,例如Naco...原创 2019-08-26 17:09:36 · 11164 阅读 · 3 评论 -
【Nacos源码之配置管理 一】阅读源码第一步,本地启动Nacos
前言在我们去阅读Nacos源码之前,我们得先了解Nacos是干嘛的,以及怎么用,这样有利于我们更容易去理解源码;查看Nacos的官方文档,我们知道Naocs主要有一下特性:配置中心服务注册与发现…Nacos有给我们提供管理界面,用来方便配置数据;我们先把整个Nacos源码克隆下来,本地启动;熟悉一下如何使用它启动Nacos项目1.克隆Nacos源码git clone http...原创 2019-08-23 09:11:42 · 13067 阅读 · 10 评论 -
【Nacos配置管理】一文带你搞懂Nacos配置管理模块
总结Nacos配置管理操作流程可以 做 ip hash定位使用哪台机器;每次都访问同一台机器 ,或者做共享session;集群列表的配置文件,第3步通知的时候就是读取这里获取集群所有服务器列表给配置文件中的集群列表发送给一个http请求,通知有配置修改了本地磁盘中的文件,在服务端启动的时候就会将配置全部dunmp到本地磁盘, 这里修改了,也会修改对应的磁盘中的配置,服务端内存中存的只...原创 2019-10-10 09:22:54 · 8665 阅读 · 25 评论