<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kimichen123的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kimichen123</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kimichen123]]></copyright><item><title><![CDATA[三万字长文 | 以架构视角解读银行数字化转型的两份重磅指导文件]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/128162311</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/128162311</guid><author>kimichen123</author><pubDate>Sat, 03 Dec 2022 15:32:17 +0800</pubDate><description><![CDATA[2021年12月和2022年1月，两份关于银行数字化转型的重量级指导文件——中国人民银行的《金融科技发展规划（2022—2025年）》（以下简称“发展规划”）和银保监会的《关于银行业保险业数字化转型的指导意见》（以下简称“指导意见”）先后印发，这对在积极筹备数字化转型工作的各类银行而言，正是2022年开年布局的最好指导。两份文件都对银行的数字化转型提出了具体要求，二者各有侧重、相辅相成、有机融合。这两份文件不是孤立的，是国家数字化转型文件体系的一部分，因此，对这两份文件的解读，需要综合背景信息，清楚文件立足]]></description><category></category></item><item><title><![CDATA[分布式数据库在金融核心场景落地实践分享]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/126319747</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/126319747</guid><author>kimichen123</author><pubDate>Sat, 13 Aug 2022 15:52:27 +0800</pubDate><description><![CDATA[分布式数据库在金融核心场景落地实践分享，取自infoq的公开课视频。]]></description><category></category></item><item><title><![CDATA[配置中心，让微服务更『智能』]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/121071683</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/121071683</guid><author>kimichen123</author><pubDate>Sun, 31 Oct 2021 22:51:29 +0800</pubDate><description><![CDATA[目录



1. 背景介绍

2. 为什么需要配置中心？

2.1 配置即『控制』

2.2 配置需要治理

2.3 微服务的复杂性

3. 配置中心的一般模样

3.1 治理能力

3.2 可用性

3.2.1 Apollo at a glance

3.2.2 服务端高可用

3.2.3 客户端高可用

3.2.4 可用性场景举例

3.3 实时性

3.3.1 发送ReleaseMessage的实现方式

4. 如何让微服务更『智能』？

4.1 开关

4.1.1 发布开关

4.1.2 实验...]]></description><category></category></item><item><title><![CDATA[说一说Reactive、WebFlux、Mono和Flux到底是什么]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120983275</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120983275</guid><author>kimichen123</author><pubDate>Sat, 30 Oct 2021 17:28:37 +0800</pubDate><description><![CDATA[背景

最近项目中使用到了Spring Cloud Gateway,而gateway里面大量使用了Reactor、Mono、Flux，这个确实很有意思，因此准备写一篇文章详细介绍一下。
]]></description><category></category></item><item><title><![CDATA[Spring Cloud原理分析系列#Gateway#GlobalFilter vs GatewayFilter vs WebFilter]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/121028212</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/121028212</guid><author>kimichen123</author><pubDate>Fri, 29 Oct 2021 18:06:55 +0800</pubDate><description><![CDATA[背景

    最近在项目中看之前代码，发现一个网关filter模块大量使用各种Filter，但是深入分析感觉这些filter做的事情大多都是过滤、拦截、校验、转发、日志、改写等工作，所以想整理一篇文章分析分析这几个Filter背后的what、why、how。

    先看一下官网介绍Gateway的调用顺序，可以看到不管是GlobalFilter还是GatewayFilter都是在filter执行过程中执行的。





什么是GlobalFilter

GlobalFilter 接口...]]></description><category></category></item><item><title><![CDATA[SpringBoot中异步线程池AsynConfigurer配置]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120973915</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120973915</guid><author>kimichen123</author><pubDate>Tue, 26 Oct 2021 16:14:23 +0800</pubDate><description><![CDATA[什么是AsynConfigurer

AsynConfigurer的与@Async注解密不可分，在这里我们先说一下什么是@Async。@Async注解的就是通过AsyncAnnotationBeanPostProcessor这个后置处理器生成一个代理对象来实现异步的。

为什么需要AsynConfigurer

    Spring可以通过@EnableAsync和@Async两个注解实现异步操作。启动类加上:@EnableAsync注解，同时并且在service上加上@Async...]]></description><category></category></item><item><title><![CDATA[重识dubbo系列#dubbo元数据中心]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120884258</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120884258</guid><author>kimichen123</author><pubDate>Thu, 21 Oct 2021 17:59:09 +0800</pubDate><description><![CDATA[目录

为什么需要dubbo元数据中心

元数据中心的优势

降低地址推送的时延

服务测试

参考资料

    在看元数据中心之前，首先看一下官网对几个核心组件的定义。

作为一个微服务框架，Dubbo sdk 跟随着微服务组件被部署在分布式集群各个位置，为了在分布式环境下实现各个微服务组件间的协作， Dubbo 定义了一些中心化组件，这包括：


注册中心。协调 Consumer 与 Provider 之间的地址注册与发现
	配置中心。
	存储 Dubbo 启动阶段的全局配置，...]]></description><category></category></item><item><title><![CDATA[不一样的kafka系列#Topic和Partition]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120539233</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120539233</guid><author>kimichen123</author><pubDate>Wed, 29 Sep 2021 00:31:44 +0800</pubDate><description><![CDATA[主题的管理包括创建主题、查看主题信息、修改主题和删除主题等操作。可以通过Kafka提供的kafka-topics.sh 脚本来执行这些操作，这个脚本位于$KAFKA_HOME/bin/ 目录下，其核心代码仅有一行，具体如下：

exec $(dirname $0)/kafka-run - class.sh kafka.admin.Top ic Command ＂$＠＂

Topic相关

auto .create.topics .enable 设置为true会自动创建主题，和...]]></description><category></category></item><item><title><![CDATA[不一样的kafka系列#provider生产者详解]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120520080</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120520080</guid><author>kimichen123</author><pubDate>Tue, 28 Sep 2021 22:35:50 +0800</pubDate><description><![CDATA[KafkaProducer异常分类

KafkaProducer中一般会发生两种类型的异常：可重试的异常和不可重试的异常。常见的可 重试异常有：NetworkException、LeaderNotAvailableException, UnknownTopicOrPartionException、 NotEnoughReplicasException、NotCoordinatorException 等。比如NetworkException表示网络异 常， 这个有可能是由于网络瞬时故...]]></description><category></category></item><item><title><![CDATA[不一样的kafka系列#server服务端详解]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120520014</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120520014</guid><author>kimichen123</author><pubDate>Mon, 27 Sep 2021 23:55:05 +0800</pubDate><description><![CDATA[服务端参数

zookeeper.connect 该参数指明broker 要连接的ZooKeeper 集群的服务地址（包含端口号），没有默认值，且 此参数为必填工页。可以配置为localhost:2181 ，如果ZooKeeper 集群中有多个节点，则可以用逗 号将每个节点隔开，类似于localhost1 :2181,lo calhost2 :2181,l oca lhost3: 218 1 这种格式。最佳的实践方式是再加一个chroot 路径，这样既可以明确指明该chroot 路径下的节 点是为Kafka]]></description><category></category></item><item><title><![CDATA[不一样的Kafka系列#kafka初识]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120519536</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120519536</guid><author>kimichen123</author><pubDate>Mon, 27 Sep 2021 23:43:21 +0800</pubDate><description><![CDATA[每一条消息被发送到broker 之前，会根据分区规则选择存储到哪个具体的分区。如果分区 规则设定得合理，所有的消息都可以均匀地分配到不同的分区中。如果一个主题只对应一个文 件，那么这个文件所在的机器I/O 将会成为这个主题的性能瓶颈，而分区解决了这个问题。在 创建主题的时候可以通过指定的参数来设置分区的个数，当然也可以在主题创建完成之后去修 改分区的数量，通过增加分区的数量可以实现水平扩展。

 Kafka 为分区引入了多副本（ Replica ） 机制， 通过增加副本数...]]></description><category></category></item><item><title><![CDATA[深入理解Spring Cloud系列#Feign详解]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120429022</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120429022</guid><author>kimichen123</author><pubDate>Thu, 23 Sep 2021 12:34:50 +0800</pubDate><description><![CDATA[什么是Feign

Feign远程调用的思想是通过一系列的封装和处理，以JAVA注解@FeignClient的方式定义的远程调用API接口，最终转换成HTTP的请求形式，然后将HTTP的请求的响应结果，解码成JAVA Bean，返回给调用者。

主程序入口添加了@EnableFeignClients注解开启对FeignClient扫描加载处理。根据Feign Client的开发规范，定义接口并加@FeignClientd注解。

当程序启动时，会进行包扫描，扫...]]></description><category></category></item><item><title><![CDATA[（建议收藏）从开源框架理解设计模式系列#汇总篇]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120249842</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120249842</guid><author>kimichen123</author><pubDate>Sun, 12 Sep 2021 14:26:26 +0800</pubDate><description><![CDATA[之前本来是想探究一个设计模式，后面想着为什么不写一个系列呢，因此就有了这个系列。

从开源框架理解设计模式系列已经完成，从what、why、how、开源框架源码、使用场景、优缺点六个维度重新整理介绍了一遍设计模式，这里这里有自己原创，也参考了很多书籍和文章，以后继续努力，不断持续创作出更多的有价值有深度的文章系列。

创建型模式

创建型模式(Creational Pattern)对类的实例化过程进行了抽象，能够将软件模块中对象的创建和对象的使用分离。为了使...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Template模板方法]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120248864</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120248864</guid><author>kimichen123</author><pubDate>Sun, 12 Sep 2021 13:40:58 +0800</pubDate><description><![CDATA[what什么是模板方法

    Gof定义：定义一个操作中的算法的骨架，而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

why为什么需要模板方法

一个模板方法用一些抽象的操作定义一个算法，而子类将重定义这些操作以提供具体的行为。通过使用抽象操作定义的一个算法中的一些步骤，模板方法确定了它们的先后顺序，但它允许子类改变这些步骤的具体行为以满足它们各自的需求。

how如何实现模板方法

...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Strategy策略模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120233701</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120233701</guid><author>kimichen123</author><pubDate>Sat, 11 Sep 2021 14:01:57 +0800</pubDate><description><![CDATA[目录

what什么是策略模式

why为什么需要策略模式

how如何实现策略模式

开源框架经典案例

Dubbo中策略模式的使用

Dubbo中负载均衡LoadBalance策略分析

Dubbo中集群Cluster容错策略

Dubbo中使用的LoadingStrategy的使用

ShardingSphere中分片算法和分片策略的使用

ShardingAlgorithm分片算法

ShardingStrategy分片策略

JDK中ThreadPoolExecutor策略模式

使用场景
...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#State状态模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120229045</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120229045</guid><author>kimichen123</author><pubDate>Fri, 10 Sep 2021 23:35:03 +0800</pubDate><description><![CDATA[目录



what什么是状态模式

why为什么需要状态模式

how如何实现状态模式

开源框架经典案例

简化版的TCPConnection

ShardingSphere中的StateContext

使用场景

优缺点对比

优点

缺点

参考资料

what什么是状态模式

Gof定义：允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。

   在很多情况下，一个对象的行为取决于一个或多个动态变化的属性，这样的属性叫做状态，这样的对象叫做有状...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Observer观察者模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120212118</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120212118</guid><author>kimichen123</author><pubDate>Fri, 10 Sep 2021 00:01:10 +0800</pubDate><description><![CDATA[what什么是观察者模式

    Gof定义：定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。

    HeadFirst定义：定义了对象之间的一对多依赖，这样一来，当一个对象改变状态时，它的所有依赖者都会收到通知并自动更新。观察者模式定义了一系列对象之间的一对多关系。当一个对象改变状态，其他依赖者都会收到通知。依赖(Dependents), 发布- 订阅( Publish - Subscribe)

why为什么需要观察...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Memento备忘录模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120190831</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120190831</guid><author>kimichen123</author><pubDate>Wed, 08 Sep 2021 23:24:54 +0800</pubDate><description><![CDATA[目录

what什么是备忘录模式

why为什么需要备忘录模式

how如何实现备忘录模式

开源框架经典案例

Mysql的Redo日志

JDK中Corba的备忘录模式

使用场景

优缺点对比

优点

缺点

参考资料

what什么是备忘录模式

    Gof定义：在不破坏封装性的前提下，捕获一个对象的内部状态，并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。别名Token。

why为什么需要备忘录模式

    使用备忘录有两个目标。

存储系统关键...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Mediator中介者模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120189918</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120189918</guid><author>kimichen123</author><pubDate>Wed, 08 Sep 2021 22:40:06 +0800</pubDate><description><![CDATA[目录



what什么是中介者模式

why为什么需要中介者模式

how如何实现中介者模式

开源框架经典案例

Java类CorbaMessageMediator类

JDK中对中介者的使用

使用场景

优缺点对比

优点

缺点

参考资料

what什么是中介者模式

    Gof定义：用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用，从而使其耦合松散，而且可以独立地改变它们之间的交互。

    HeadFirst定义：使用中介者模式来集中相关对象...]]></description><category></category></item><item><title><![CDATA[从开源框架理解设计模式系列#Iterator迭代器模式]]></title><link>https://blog.youkuaiyun.com/kimichen123/article/details/120168849</link><guid>https://blog.youkuaiyun.com/kimichen123/article/details/120168849</guid><author>kimichen123</author><pubDate>Wed, 08 Sep 2021 00:10:29 +0800</pubDate><description><![CDATA[what什么是迭代器模式

    Gof定义：提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示。

why为什么需要迭代器模式

一个聚合对象, 如列表(list), 应该提供一种方法来让别人可以访问它的元素，而又不需暴露它的内部结构。此外，针对不同的需要，可能要以不同的方式遍历这个列表。但是即使可以预见到所需的那些遍历操作，你可能也不希望列表的接口中充斥着各种不同遍历的操作。有时还可能需要在同一个表列上同时进行多个遍历。

迭代器模式...]]></description><category></category></item></channel></rss>