随笔分类 - 源码解析
摘要:1、注解TxcTransaction2、在其注解接口附近查找aop配置:TransactionAspect3、runTransaction是在执行事务业务代码时的包装逻辑4、transactionServiceExecutor.transactionRunning(info);5、获取本地分布式事务
阅读全文
摘要:在使用E版本的Spring Cloud Netflix Zuul内置的Ribbon重试功能时,发现Ribbon有一个很精妙的特性: 如果某个服务的某个实例经常需要重试,Ribbon则会在自己维护的一个缓存(serverStatsCache)里将其临时标记为不可用(isCircuitBreakerTr
阅读全文
摘要:代码使用SpringCloud版本E3 业务场景: 今天遇到一个业务场景,要求根据服务名获取当前微服务集群中所有的对应服务实例的IP和端口,通过分析源码推算出了写法。 原理简述: 如果代码中引入了spring-cloud-netflix-core(版本1.4.4.RELEASE),则在代码初始化的时
阅读全文
摘要:在包路径:org.springframework.cloud.netflix.zuul.filters 下,新建类SimpleRouteLocator,取代jar包中的类。内容如下: 其中的164-171行,让zuul支持了如下配置: 通过/vod2/two路径,可以访问到 /all/two 注意,
阅读全文
摘要:Spring Cloud 版本: Dalston.SR5 今天使用Zuul发现一个和动态刷新相关的问题,动态刷新使用的是 /bus/refresh,即我的Zuul连着一个Rabbitmq,我这里是使用的总线刷新的方式,普通的刷新/refresh应该也是可以再现这个坑的。 我一共有两个服务,服务名分别
阅读全文
摘要:只需在springboot的配置文件中添加以下内容即可: 该配置是一个eureka客户端的配置,并且该客户端使用了ribbon。 配置只是标记了该服务在注册中心的zone,当该服务调用其它服务时,ribbon默认会优先从zone相同的服务中选择被调用对象。 ————————————————以下内容都
阅读全文
摘要:项目用的是springmvc+spring+mybatis框架, 配置日志的时候非常简单,仅仅是把commons-logging、log4j,还有slf4j-log4j三个日志相关的jar包导入项目,然后在classpath中加个log4j.properties的配置文件即可。 但是你有没有想过Lo
阅读全文