
框架
文章平均质量分 81
Redick01
Dromara开源社区Committer,开源项目Apache Shenyu贡献者,致力于后端,分布式,微服务,Service Mesh等技术!
展开
-
基于Zookeeper实现分布式分片算法
基于Zookeeper和简单的平均分配算法实现了一个简单的分布式分片服务,该分片服务目前满足公司需求,因为其简单,所以不一定满足其他场景,针对其他场景还需考虑其他因素,该示例供参考。原创 2023-01-05 16:05:41 · 617 阅读 · 0 评论 -
Java日志链路追踪工具LogHelper在ELK系统上的效果
🔥🔥🔥轻量级日志链路追踪工具,结合logstash-logback-encoder实现日志输出json格式化;支持Sykwalking traceId,支持Apache Dubbo,Alibaba Dubbo,SpringCloud微服务框架日志链路追踪;支持异步线程日志链路追踪;支持OkHttp,HttpClient,RestTemplate Http客户端工具日志链路追踪;提供分布式消息队列日志链路追中解决方案;支持简单的敏感字段脱敏打印项目地址:https://githu原创 2022-04-02 12:34:40 · 961 阅读 · 0 评论 -
基于Spring AOP + logstash-logback-encoder实现日志链路追踪工具LogHelper
🔥🔥🔥轻量级日志链路追踪工具,结合logstash-logback-encoder实现日志输出json格式化;支持Sykwalking traceId,支持Apache Dubbo,Alibaba Dubbo,SpringCloud微服务框架日志链路追踪;支持异步线程日志链路追踪;支持OkHttp,HttpClient,RestTemplate Http客户端工具日志链路追踪;提供分布式消息队列日志链路追中解决方案;支持简单的敏感字段脱敏打印。原创 2022-04-01 16:05:55 · 3092 阅读 · 0 评论 -
动态线程池dynamic-tp接入Consul配置中心
前言 自从笔者给dynamic-tp接入了Zookeeper配置中心,就想着再扩展其他的配置中心,恰好笔者近期也在调研Consul配置中心,所以就想着将Consul配置中心接入到dynamic-tp。dynamic-tp快速接入:dynamic-tp官网:接入Consul配置中心具体实现 Consul配置中心是通过定时任务做的配置变更,为了屏蔽底层实现,这里我选择对SpringBoot程序和SpringCloud应用进行接入,使用的包是sprin原创 2022-03-24 19:12:02 · 2294 阅读 · 0 评论 -
开源动态线程池dynamic-tp支持zookeeper配置中心
前言 dynamic-tp是一个轻量级的动态线程池插件,它是一个基于配置中心的动态线程池,线程池的参数可以通过配置中心配置进行动态的修改,在配置中心的支持上最开始的时候支持Nacos和Apollo,由于笔者公司用的配置中心是Zookeeper,所以就想着扩展支持Zookeeper,在了解源码支持发现dynamic-tp的扩展能力做的很好,提供了扩展接口,只要我开发对应的配置中心模块即可,最终笔者实现了Zookeeper的支持并贡献到社区。接下来我通过源码解析方式介绍下Zookee原创 2022-03-17 15:18:51 · 2682 阅读 · 0 评论 -
实现一个简单的SPI
实现一个自定义的SPI机制其核心的逻辑就是扩展的加载,本篇是参考Dubbo等开源项目简单实现了一个SPI机制的核心代码,核心逻辑就是从SPI扩展的配置文件中加载扩展实现的流程原创 2022-01-10 15:10:37 · 837 阅读 · 0 评论 -
老生常谈 - 引起Spring事务失效的几种情况总结
文章目录前言常见的Spring事务失效原因没有被Spring管理发生自调用方法不是public的数据源未配置事务管理器数据库引擎不支持事务事务传播机制设置以不支持事务运行异常被catch掉了异常类型错误总结前言 在使用Spring的事务管理时,有时候就会莫名其妙的发现事务没生效,其实并非Spring事务管理本身的问题,而是开发人员在使用时使用方式不对,Spring事务管理的底层机制没搞懂,又或者数据库层的问题导致,今天总结下Spring事务是失效的集中场景。常见的Spring原创 2021-12-01 21:05:57 · 633 阅读 · 0 评论 -
Dubbo远程调用 - invoke
文章目录例子执行invoker.invoke处理流程**MockClusterInvoker:** 首先会走到这个类中,因为没有mock,所以直接向下走。**AbstractCluster:** 这里会添加一个ClusterInterceptor拦截器,在调用前后做一些处理,这个不细说。**ClusterInterceptor:** 调用拦截器,在拦截器的`intercept`方法中会执行`AbstractClusterInvoker#invoke`方法。**AbstractClusterInvoker**原创 2021-11-28 21:13:46 · 1835 阅读 · 0 评论 -
Dubbo服务启动-Dubbo Consumer引用服务
文章目录Consumer消费者Demo示例ReferenceConfig#getObject()获取应用BeanReferenceConfig#createProxy()创建服务代理RegistryProtocol#refer引用服务RegistryProtocol#doRefer引用服务RegistryDirectory#subscribe订阅服务DubboProtocol#protocolBindingRefer创建Invoker总结Consumer消费者Demo示例<?xml version原创 2021-11-26 17:42:37 · 2857 阅读 · 0 评论 -
Dubbo服务启动-底层通信
文章目录Dubbo协议打开服务器打开服务器流程建立连接流程总结Dubbo协议打开服务器 书接上回Dubbo Provider发布服务Provider会通过RegistryProtocol#export注册服务,通过DubboProtocol发布服务吗,DubboProtocol发布服务时会打开服务器,DubboProtocol中有一个serviceMap,存储ip:port和ExchangeServer的映射关系,刚开始创建的时候会检查serviceMap,如果key对应的Ex原创 2021-11-23 20:01:48 · 682 阅读 · 0 评论 -
Dubbo服务启动-Dubbo Provider发布服务
文章目录DubboBootstrap#exportServices();发布dubbo服务ServiceConfig#export发布服务ServiceConfig#doExport();ServiceConfig#doExportUrls();ServiceConfig#doExportUrlsFor1Protocol发布服务生成Invoker发布InvokerServiceConfig#exportLocal发布服务到本地发布到远程总结 Dubbo ServiceBean加载原创 2021-11-23 19:59:36 · 2253 阅读 · 0 评论 -
Redisson分布式锁开门狗
目标Redisson分布式锁看门狗机制源码分析Redisson分布式锁看门狗机制 我们在上篇文章中分析了Redisson加锁和解锁的流程,总体看逻辑还算清晰,主要是使用异步执行lua脚本进行加锁,但是其中有些细节,之前并没有细说,比如RedissonLock中的internalLockLeaseTime,该变量默认初始值30000毫秒,并且Config类中默认值变量的命名也很有意思lockWatchdogTimeout,字面上的意思监视锁的狗,这就引入了Redisson原创 2021-03-23 00:45:28 · 333 阅读 · 0 评论 -
soul网关源码分析之spingwebflux-subscribeOn设计细节分析
目标soul网关应用spingwebfluxsoul网关使用subscribeOn巧妙设计分析总结起因 起因是群里一个小伙伴问到soul网关在webHandler中配置Scheduler是为啥,我想这位小伙伴一定是深有研究后才发起的话题,顺着这个话题我也打算一探究竟。soul网关应用spingwebflux 经过了这段时间对soul网关的研究,我们已经知道了,soul网关是集成了spirng webflux用来接收请求的,核心的代码是SoulWebHandler,该类实现了原创 2021-02-02 00:34:25 · 619 阅读 · 1 评论 -
Hystrix原理与实战
转:Hystrix原理与实战 背景 分布式系统环境下,服务间类似依赖非常常见,一个业务调用通常依赖多个基础服务。如下图,对于同步调用,当库存服务不可用时,商品服务请求线程被阻塞,当有大批量请求调用库存服务时,最终可能导致整个商品服务资源耗尽,无法继续对外提供服务。并且这种不可用可能沿请求调用链向上传递,这种现象被称为雪崩效应。 雪崩效应常见场景 硬件故障:如服务器宕机,机房断电,光纤被挖断等。...转载 2021-01-31 00:01:03 · 323 阅读 · 0 评论