<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CoderChronicle的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/CoderChronicle</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; CoderChronicle]]></copyright><item><title><![CDATA[SpringBoot自动装配原理分析]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/137261908</link><guid>https://blog.csdn.net/CoderChronicle/article/details/137261908</guid><author>CoderChronicle</author><pubDate>Tue, 02 Apr 2024 10:41:01 +0800</pubDate><description><![CDATA[定义的格式转换的接口，并且定义两个实现类/*** 定义一个格式化的方法* @return*/@Override@Override首先定义格式化加载的Java配置类@Bean@Primary // 优先加载@Bean定义一个模板工具类再就是整合到SpringBoot中去的Java配置类@Bean。]]></description><category></category></item><item><title><![CDATA[JDK 19 新特性]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136671923</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136671923</guid><author>CoderChronicle</author><pubDate>Wed, 13 Mar 2024 10:06:09 +0800</pubDate><description><![CDATA[在 2022 年 9 月 20 日正式发布，Java 19 不是一个长期支持版本，直到 2023 年 3 月它将被 JDK 20 取代，这次更新共带来 7 个新功能。]]></description><category></category></item><item><title><![CDATA[JDK 18 新特性]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136615386</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136615386</guid><author>CoderChronicle</author><pubDate>Mon, 11 Mar 2024 09:47:30 +0800</pubDate><description><![CDATA[在 2022 年 3 月 22 日正式发布，Java 18 不是一个长期支持版本，这次更新共带来 9 个新功能。]]></description><category></category></item><item><title><![CDATA[JDK 17 新特性]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136552284</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136552284</guid><author>CoderChronicle</author><pubDate>Fri, 08 Mar 2024 09:08:46 +0800</pubDate><description><![CDATA[Java 17 发布于 2021 年 9 月 14 日。Java 17 版本是切换到新的 6 个月发布周期以来的第二个（LTS）版本（第一个是 Java 11） [。]]></description><category></category></item><item><title><![CDATA[JDK 16 新特性]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136546767</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136546767</guid><author>CoderChronicle</author><pubDate>Thu, 07 Mar 2024 21:35:58 +0800</pubDate><description><![CDATA[Java 16 在 2021 年 3 月 16 日正式发布，不是长久支持版本，这次更新没有带来很多语法上的改动，但是也带来了不少新的实用功能。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (七) & PostgreSQL SQL入门]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136190845</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136190845</guid><author>CoderChronicle</author><pubDate>Tue, 20 Feb 2024 15:08:06 +0800</pubDate><description><![CDATA[SQL命令一般分为DQL、DML、DDL三类。DQL：数据查询语句，基本就是SELECT查询命令，用于数据查询。DML：Data Manipulation Language，即数据操纵语言，主要用于插入、更新、 删除数据，所以也分为INSERT、UPDATE、DELETE三种语句。DDL：Data Definition Language，即数据定义语言，简单来说，是用于创建、删除、修改表、索引等数据库对象的语言。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (六) & PostgreSQL psql工具]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136178629</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136178629</guid><author>CoderChronicle</author><pubDate>Mon, 19 Feb 2024 21:29:26 +0800</pubDate><description><![CDATA[SQL命令一般分为DQL、DML、DDL三类。DQL：数据查询语句，基本就是SELECT查询命令，用于数据查询。DML：Data Manipulation Language，即数据操纵语言，主要用于插入、更新、 删除数据，所以也分为INSERT、UPDATE、DELETE三种语句。DDL：Data Definition Language，即数据定义语言，简单来说，是用于创建、删除、修改表、索引等数据库对象的语言。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (五) & Windows 安装PostgreSQL]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/136172167</link><guid>https://blog.csdn.net/CoderChronicle/article/details/136172167</guid><author>CoderChronicle</author><pubDate>Mon, 19 Feb 2024 15:49:52 +0800</pubDate><description><![CDATA[下载地址：https://www.enterprisedb.com/downloads/postgres-postgresql-downloads。初次进入这个界面的时候，会提示输入数据库密码，输入我们之前设置的密码即可。安装过程，需要一会儿时间，请耐心等待程序安装完成。3、选择您要安装的组件；1、搜索pgAdmin4，打开可视化面板程序。根据自身需要进行选择，一般情况下默认。7、选择新数据库集群使用的区域设置。2、数据数据库密码进入面板。8、预安装Sanary。4、选择数据存放目录。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (四) & Linux 源码编译安装 PostgreSQL]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135666113</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135666113</guid><author>CoderChronicle</author><pubDate>Thu, 18 Jan 2024 09:39:16 +0800</pubDate><description><![CDATA[在许多系统上，GSSAPI 系统（通常是 Kerberos 安装的一部分） 并未安装在默认搜索的位置（例如，/usr/include、 /usr/lib)，因此除此选项外，您还必须使用选项 --with-includes和–with-libraries。这样做显著增大了最后安装的可执行文件的大小，并且在非 GCC 的编译器上，这么做通常还要关闭编译器优化， 这些都导致速度的下降。：这是一个目录，包含一些附加模块、插件或扩展，它们不是核心PostgreSQL系统的一部分，但可以添加到系统中以提供额外的功能。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (三) & Linux RPM安装PostgreSQL]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135611846</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135611846</guid><author>CoderChronicle</author><pubDate>Mon, 15 Jan 2024 21:42:19 +0800</pubDate><description><![CDATA[rpm离线安装本质就是通过yum进行安装，只不过是在网络条件的限制下、无法联通互联网环境。可以用此处方式来进行替换，从而达到安装postgresql数据库的目的。]]></description><category></category></item><item><title><![CDATA[从零开始学PostgreSQL (二) & Linux Yum安装PostgreSQL]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135590420</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135590420</guid><author>CoderChronicle</author><pubDate>Sun, 14 Jan 2024 22:49:10 +0800</pubDate><description><![CDATA[本篇文章还未写完…当前，MessageQueue 和 Broker 耦合在一起，意味着 Broker 数量变化之后，消息队列的数量也会发生变化，这会造成所有的队列都需要一个重新平衡的过程，这个过程可能需要数分钟才能恢复。增加逻辑队列之后，Broker 数量的变化不会影响逻辑队列数量的变化，二者可以独立变化。]]></description><category></category></item><item><title><![CDATA[RocketMQ 逻辑队列]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135576363</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135576363</guid><author>CoderChronicle</author><pubDate>Sat, 13 Jan 2024 21:36:50 +0800</pubDate><description><![CDATA[本篇文章还未写完…当前，MessageQueue 和 Broker 耦合在一起，意味着 Broker 数量变化之后，消息队列的数量也会发生变化，这会造成所有的队列都需要一个重新平衡的过程，这个过程可能需要数分钟才能恢复。增加逻辑队列之后，Broker 数量的变化不会影响逻辑队列数量的变化，二者可以独立变化。]]></description><category></category></item><item><title><![CDATA[「源码解读」网络操作抽象类_ Channel]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135538912</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135538912</guid><author>CoderChronicle</author><pubDate>Thu, 11 Jan 2024 21:04:31 +0800</pubDate><description><![CDATA[我们只要摸清楚了 fireChannelRegistered() 方法，以后碰到其他像 fireChannelActive()、fireXxx() 等就知道怎么回事了，它们都是类似的。经过前面的铺垫，我们已经具备一定的基础了，我们开始来把前面学到的内容揉在一起。实例，它用于保存 channel 的配置信息，这里没有我们现在需要关心的内容，直接跳过。操作，这一步其实是非常关键的，对于我们源码分析非常重要。这个方法，所以我们上面说的那些，对于两者都是通用的。操作是非常重要的，要知道这一步大概做了哪些事情，]]></description><category></category></item><item><title><![CDATA[「源码解读」消息处理器链表：ChannelPipeline]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135538902</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135538902</guid><author>CoderChronicle</author><pubDate>Thu, 11 Jan 2024 21:03:56 +0800</pubDate><description><![CDATA[是消息的具体处理器，主要负责处理客户端/服务端接收和发送的数据。则是包含了一个或多个的链表。]]></description><category></category></item><item><title><![CDATA[「源码解读」异步操作：Future 和 Promise]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135513794</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135513794</guid><author>CoderChronicle</author><pubDate>Wed, 10 Jan 2024 21:37:21 +0800</pubDate><description><![CDATA[别急，我们后面会碰到另一个类 DefaultChannelPromise 的使用，这个类是综合了 ChannelFuture 和 Promise 的，但是它的实现其实大部分都是继承自这里的 DefaultPromise 类的。的回调函数（当然，回调的具体内容不一定要由执行任务的线程自己来执行，它可以创建新的线程来执行，也可以将回调任务提交到某个线程池来执行）。接下来，我们需要来一个实现类，这样才能比较直观地看出它们是怎么使用的，因为上面的这些都是接口定义，具体还得看实现类是怎么工作的。]]></description><category></category></item><item><title><![CDATA[「源码解读」线程池：EventLoopGroup]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135513777</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135513777</guid><author>CoderChronicle</author><pubDate>Wed, 10 Jan 2024 21:36:45 +0800</pubDate><description><![CDATA[接下来，我们来分析 Netty 中的线程池。Netty 中的线程池比较不好理解，因为它的类比较多，而且它们之间的关系错综复杂。看下图，感受下类和类的继承结构：这张图我按照继承关系整理而来，大家仔细看一下就会发现，涉及到的类确实挺多的。本节来给大家理理清楚这部分内容。首先，我们说的 Netty 的线程池，指的就是的实例；线程池中的单个线程，指的是右边的实例。回顾下我们第一节介绍的 Echo 例子，客户端和服务端的启动代码中，最开始我们总是先实例化下面，我们就从的源码开始进行分析。]]></description><category></category></item><item><title><![CDATA[「源码解读」服务调用过程]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135465028</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135465028</guid><author>CoderChronicle</author><pubDate>Mon, 08 Jan 2024 19:48:49 +0800</pubDate><description><![CDATA[在前面的文章中，我们分析了 Dubbo SPI、服务导出与引入、以及集群容错方面的代码。经过前文的铺垫，本篇文章我们终于可以分析服务调用过程了。Dubbo 服务调用过程比较复杂，包含众多步骤，比如发送请求、编解码、服务降级、过滤器链处理、序列化、线程派发以及响应请求等步骤。限于篇幅原因，本篇文章无法对所有的步骤一一进行分析。本篇文章将会重点分析请求的发送与接收、编解码、线程派发以及响应的发送与接收等过程，至于服务降级、过滤器链和序列化大家自行进行分析，也可以将其当成一个黑盒，暂时忽略也没关系。]]></description><category></category></item><item><title><![CDATA[「源码解读」服务引用]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135465017</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135465017</guid><author>CoderChronicle</author><pubDate>Mon, 08 Jan 2024 19:48:15 +0800</pubDate><description><![CDATA[上一篇文章详细分析了服务导出的过程，本篇文章我们趁热打铁，继续分析服务引用过程。在 Dubbo 中，我们可以通过两种方式引用远程服务。第一种是使用服务直连的方式引用服务，第二种方式是基于注册中心进行引用。服务直连的方式仅适合在调试或测试服务的场景下使用，不适合在线上环境使用。因此，本文我将重点分析通过注册中心引用服务的过程。从注册中心中获取服务配置只是服务引用过程中的一环，除此之外，服务消费者还需要经历 Invoker 创建、代理类创建等步骤。这些步骤，将在后续章节中一一进行分析。]]></description><category></category></item><item><title><![CDATA[「源码解读」服务导出]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135465006</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135465006</guid><author>CoderChronicle</author><pubDate>Mon, 08 Jan 2024 19:47:43 +0800</pubDate><description><![CDATA[本篇文章，我们来研究一下 Dubbo 导出服务的过程。Dubbo 服务导出过程始于 Spring 容器发布刷新事件，Dubbo 在接收到事件后，会立即执行服务导出逻辑。整个逻辑大致可分为三个部分，第一部分是前置工作，主要用于检查参数，组装 URL。第二部分是导出服务，包含导出服务到本地 (JVM)，和导出服务到远程两个过程。第三部分是向注册中心注册服务，用于服务发现。本篇文章将会对这三个部分代码进行详细的分析。]]></description><category></category></item><item><title><![CDATA[「源码解读」负载均衡]]></title><link>https://blog.csdn.net/CoderChronicle/article/details/135438679</link><guid>https://blog.csdn.net/CoderChronicle/article/details/135438679</guid><author>CoderChronicle</author><pubDate>Sun, 07 Jan 2024 13:19:33 +0800</pubDate><description><![CDATA[LoadBalance 中文意思为负载均衡，它的职责是将网络请求，或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大，而另一些服务器比较空闲的情况。通过负载均衡，可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时，还可以避免资源浪费，一举两得。负载均衡可分为软件负载均衡和硬件负载均衡。在我们日常开发中，一般很难接触到硬件负载均衡。但软件负载均衡还是可以接触到的，比如 Nginx。在 Dubbo 中，也有负载均衡的概念和相应的实现。]]></description><category></category></item></channel></rss>