<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cdy1996的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cdy1996</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cdy1996]]></copyright><item><title><![CDATA[SpringCloud gateway原理分析]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/107688064</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/107688064</guid><author>cdy1996</author><pubDate>Thu, 30 Jul 2020 17:27:20 +0800</pubDate><description><![CDATA[SpringCloud gateway原理分析前置说明使用说明原理介绍配置的加载路由的获取流程的执行总结
前置说明
本文源码基于 springcloud Finchley 版本.  以下分析仅代表个人的理解, 如有错误, 欢迎探讨.
使用说明
以spring一贯的作风,  用户使用的模式都是约定俗成的, 也就是引入spring-cloud-starter-gateway 依赖, 然后就可以愉快的自动配置了. 但是这里有一个要说的点, springcloud gateway是只能使用在 webflux上面, ]]></description><category></category></item><item><title><![CDATA[SpringCloud Hystrix原理分析]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/105414821</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/105414821</guid><author>cdy1996</author><pubDate>Fri, 10 Apr 2020 10:12:45 +0800</pubDate><description><![CDATA[10分钟弄懂 Hystrix源码前置说明hystrix中用到的rxjava方法(会的请跳过) --2分钟hystrix原理 --8分钟总结
前置说明
本文源码基于 hystrix1.5.18
hystrix中用到的rxjava方法(会的请跳过) --2分钟
首先rxjava是响应式流的编程模型, 所有的角色分为Observable(观察对象), Observer(观察者, Subscription...]]></description><category></category></item><item><title><![CDATA[SpringCloud.Honxton 版本 OpenFeign原理 下篇]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/104995119</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/104995119</guid><author>cdy1996</author><pubDate>Sun, 29 Mar 2020 17:22:33 +0800</pubDate><description><![CDATA[SpringCloud.Honxton 版本 OpenFeign原理前置说明如何使用springcloud 和 openfeign 整合原理总结
前置说明
上篇介绍了openfeign的使用和原理, 那么这篇将介绍和springcloud 的整合部分. 有了上一篇的基础, 那么在分析原理的时候就简单很多了, 更多的将关注于springcloud 的整合部分.
使用的依赖
  &lt;depende...]]></description><category></category></item><item><title><![CDATA[SpringCloud.Honxton 版本 OpenFeign原理上篇]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/104990332</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/104990332</guid><author>cdy1996</author><pubDate>Fri, 20 Mar 2020 17:05:56 +0800</pubDate><description><![CDATA[SpringCloud.Honxton 版本 OpenFeign原理前置说明如何使用openfeign原理总结
前置说明
好久没写博客了， 突然想起自己的springcloud系列文章就讲了配置中心，注册中心，负载均衡和熔断。那么今天就来分析一下openfegin 的原理，后续会分析gateway的原理。
我个人的习惯，在使用springcloud 的组件时，会先去用一下原生依赖的使用方法，因为在...]]></description><category></category></item><item><title><![CDATA[SpringCloud.Hoxton 版本, 全新熔断器CircuitBreaker]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/103761320</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/103761320</guid><author>cdy1996</author><pubDate>Mon, 30 Dec 2019 11:29:57 +0800</pubDate><description><![CDATA[SpringCloud.Honxton 版本, 全新熔断器CircuitBreakerSpringCloud.Honxton 版本, 全新熔断器CircuitBreaker前置说明如何使用自动装配总结
SpringCloud.Honxton 版本, 全新熔断器CircuitBreaker
前置说明
上文讲到了Honxton 版本的新的负载均衡器, 这次准备讲一下新的熔断器. 其实也不是新的熔断器,...]]></description><category></category></item><item><title><![CDATA[SpringCloud.Hoxton 版本, 全新负载均衡器Loadbalancer]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/103456675</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/103456675</guid><author>cdy1996</author><pubDate>Mon, 09 Dec 2019 17:00:33 +0800</pubDate><description><![CDATA[SpringCloud.Honxton 版本, 全新负载均衡器LoadbalancerSpringCloud.Honxton 版本, 全新负载均衡器Loadbalancer前置说明初步分析负载均衡器的自动装配服务列表的获取以及负载均衡的实现
SpringCloud.Honxton 版本, 全新负载均衡器Loadbalancer
前置说明
源码分析的版本为Honxton.Release. 为什么选这...]]></description><category></category></item><item><title><![CDATA[SpringCloud eureka 注册中心原理]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/103321919</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/103321919</guid><author>cdy1996</author><pubDate>Sat, 30 Nov 2019 22:17:08 +0800</pubDate><description><![CDATA[SpringCloud Netflix eureka 原理分析SpringCloud Netflix eureka 原理分析前置说明SpringCloud eurekaeureka 服务端的启动springcloud ServiceRegistryspringcloud DiscoveryClient结束语
SpringCloud Netflix eureka 原理分析
前置说明
源码来自spri...]]></description><category></category></item><item><title><![CDATA[SpringCloud config 原理分析]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/103225208</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/103225208</guid><author>cdy1996</author><pubDate>Sun, 24 Nov 2019 20:05:47 +0800</pubDate><description><![CDATA[springcloud config 原理分析前置说明springcloud config服务端加载配置客户端加载配置客户端配置刷新结尾
前置说明
源码来自springcloud.G版本
以下说明是个人观点,如有错误,欢迎评论处进行讨论
springcloud config
springcloud 提供了分布式配置中心, 支持git, svn, native(文件配置).jdbc等. 现在就spr...]]></description><category></category></item><item><title><![CDATA[JDK动态代理的简单实现]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/99693781</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/99693781</guid><author>cdy1996</author><pubDate>Sat, 17 Aug 2019 17:03:51 +0800</pubDate><description><![CDATA[目录JDK动态代理的简单实现前置说明动手实现实现方式一实现方式二最后
JDK动态代理的简单实现
前置说明
首先说明一下就是, jdk动态代理,为什么是动态,是因为其在运行时帮你生成了代理类,这里其实本质上还是生成一个静态代理类, 然后通过InvocationHandler的invoke(反射的方式)来调用真正的对象, 所以我的理解动态代理就是运行时生成+反射调用.(其实不局限于运行时生成,也可以是...]]></description><category></category></item><item><title><![CDATA[Java AOP的实现原理和手写实现,支持JDK动态代理,Javassist代理,Cglib代理]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/95761505</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/95761505</guid><author>cdy1996</author><pubDate>Sat, 13 Jul 2019 17:07:10 +0800</pubDate><description><![CDATA[Java AOP的实现原理和手写实现,支持JDK动态代理和Cglib代理
概述
面向切面编程已经在我们的平常工作中经常会用到, 平常我们在使用的都是使用spring封装的aop模块, 使用的时候只要配置几个注解就能实现逻辑了,非常的方便. 但是使用的方便也就意味着其封装的复杂, 另外spring的aop也是有其的演进,从最早的只能通过实现接口+xml配置,到现在@Aspect的支持来实现声明式的变...]]></description><category></category></item><item><title><![CDATA[SpringCloud2.x 的权重路由和灰度控制,以及gateway的路由持久化]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/94316726</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/94316726</guid><author>cdy1996</author><pubDate>Sun, 30 Jun 2019 16:44:48 +0800</pubDate><description><![CDATA[SpringCloud2.x 的权重路由和灰度控制



前言

在学习istio的过程中,发现istio的权重控制和灰度控制实在太好用了,虽然istio现在用在生产中还是不太成熟,但是可以吸取相关的优点来整合到现有的springcloud中.

springcloud已经是个成熟的框架了,其有ribbon组件负责提供负载均衡,还有gateway组件进行路由转发,但是使用的时候还是有不方便的地方...]]></description><category></category></item><item><title><![CDATA[Springboot Actuator的组件编写]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/90314361</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/90314361</guid><author>cdy1996</author><pubDate>Sat, 18 May 2019 13:37:39 +0800</pubDate><description><![CDATA[springboot actuator的组件编写
前置说明
因为之前编写了redis-starter以及cache-starter, 然后最近有学习了springboot的actuator相关的知识,了解到springboot自己的spring-boot-starter-data-redis是有redis的健康状态监测的,然后spring-boot-starter-cache也有关于缓存命中的相关...]]></description><category></category></item><item><title><![CDATA[Spring Cloud Nacos 作为注册和配置中心 + Spring Cloud Gateway作为网关 + Sentinel 作为熔断服务]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/87391609</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/87391609</guid><author>cdy1996</author><pubDate>Fri, 15 Feb 2019 22:25:00 +0800</pubDate><description><![CDATA[依赖

因为要整合gateway所以(版本的选择为spring官方的推荐搭配)

springcloud 的版本选择  Finchley.SR2

springboot 的版本选择   2.0.6.RELEASE

这里nacos的starter选择用以下版本


&amp;lt;nacos.version&amp;gt;0.2.1.RELEASE&amp;lt;/nacos.version&amp;gt;

 

NACOS启...]]></description><category></category></item><item><title><![CDATA[springboot中使用redis实现异步消息通知]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/83933366</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/83933366</guid><author>cdy1996</author><pubDate>Sat, 10 Nov 2018 21:40:05 +0800</pubDate><description><![CDATA[为什么我要用redis来完成异步消息,而不是消息队列mq之类的?

因为很多的单体项目可能只需要需要一个略微简单的消息通知,而不需要如kafka那种完善的消息队列,
	而且redis在正常的项目中基本都会引入而mq可能较少会引入,所以使用redis来实现消息通知可以减少不必要的中间件引入和维护.
 

设计思路的来源

主要借鉴了spring对jms的封装,比如使用注解@JmsListener来完...]]></description><category></category></item><item><title><![CDATA[springboot+quartz 实现任务的动态部署和持久化]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/83051883</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/83051883</guid><author>cdy1996</author><pubDate>Sun, 14 Oct 2018 22:43:21 +0800</pubDate><description><![CDATA[项目搭建

主要集成springboot+quartz+mysql

因为springboot搭建比较简单添加@EnableScheduling注解即可，其他的按照quartz和spring的正常整合即可。

另外quartz本身支持持久化和集群部署，需要配置相应的文件和建立官方指定数据库表（具体参考https://blog.youkuaiyun.com/u012768459/article/details/...]]></description><category></category></item><item><title><![CDATA[搭建springboot自动配置,基于自己的RedisUtil]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/81837233</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/81837233</guid><author>cdy1996</author><pubDate>Sun, 19 Aug 2018 13:26:18 +0800</pubDate><description><![CDATA[1.创建项目如下



 

2.加入一下pom依赖


//这个是之前的博客例子,对jedis连接操作的简单分装
&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.cdy&amp;lt;/groupId&amp;gt;
    &amp;lt;artifactId&amp;gt;common-util&amp;lt;/artifactId&amp;gt;
    &amp;lt;version&amp;gt;1.0-SNAP...]]></description><category></category></item><item><title><![CDATA[静态资源配置解析从Servlet到springmvc到springboot的源码理解]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/81257940</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/81257940</guid><author>cdy1996</author><pubDate>Sat, 28 Jul 2018 10:21:21 +0800</pubDate><description><![CDATA[Servlet 静态资源配置原理

最早的servlet使用servlet容器提供defaultServlet来处理静态资源

&amp;lt;servlet-mapping&amp;gt;

    &amp;lt;servlet-name&amp;gt;default&amp;lt;/servlet-name&amp;gt;

    &amp;lt;url-pattern&amp;gt;*.jpg&amp;lt;/url-pattern&amp;gt;

&amp;lt;/se...]]></description><category></category></item><item><title><![CDATA[jdbc的事务自动提交和手动提交，以及mybatis开启自动提交后是否会复用一个连接的验证]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/81088623</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/81088623</guid><author>cdy1996</author><pubDate>Tue, 17 Jul 2018 21:24:06 +0800</pubDate><description><![CDATA[jdbc的sql执行默认是自动提交事务

默认时自动提交，当我手动提交时会报错，不过数据还是会插入到数据库中，因为执行完executeupdate后数据库会自动commit



 

开启手动提交

手动提交则需要手动调用commit才能提交事务



 

 

mybatis未开启自动提交事务

手动提交两次，当然数据库是提交一条才能看到一条，另外可以看到connect是使用的同一个



...]]></description><category></category></item><item><title><![CDATA[zuul的动态路由 + zuul简单认证]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/80960215</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/80960215</guid><author>cdy1996</author><pubDate>Sun, 08 Jul 2018 16:45:18 +0800</pubDate><description><![CDATA[zuul的动态路由主要继承以下的类，重写locateRoutes方法在方法中加入自己的获取路由的方式 ，我这里是基于数据库配置写完后注册到springioc容器中，这样zuul就会从数据库中获取路由的配置信息，手动刷新的需要调用zuul内部的事件通知机制来让zuul刷新配置数据库中的路由设定请求ccc/hello 转发到了client服务的hello上调用刷新方法，会直接刷新配置zuul简单认证首...]]></description><category></category></item><item><title><![CDATA[springcloud + zookeeper]]></title><link>https://blog.youkuaiyun.com/cdy1996/article/details/80867062</link><guid>https://blog.youkuaiyun.com/cdy1996/article/details/80867062</guid><author>cdy1996</author><pubDate>Sat, 30 Jun 2018 15:54:42 +0800</pubDate><description><![CDATA[上次搭建了一个比较简单的springcloud脚手架，是使用eureka作为脚手架，但是最近发现eureka2.0之后不开源，也就是springcloud之后的版本可能不会使用eureka作为注册中心，而且继续使用eureka2.0后的版本是有版权问题的，所以今天花了几个小时重新搭建了一个由zookeeper作为注册中心的springcloud脚手架，其结构如下因为注册中心换成zookeeper，...]]></description><category></category></item></channel></rss>