
中间件
文章平均质量分 80
大鸡腿同学
SoftRpc contribuer; 21年拿到阿里淘系口头offer; 目前在某公司架构组搬砖,多多指教~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
灰度方案-svc环境实现方案以及网关源码分析
灰度方案-svc环境实现方案以及网关源码分析原创 2022-05-09 15:00:42 · 741 阅读 · 0 评论 -
初探灰度发布系列--AB Test以及栗子
灰度-AB Test原创 2022-04-20 18:58:27 · 2223 阅读 · 4 评论 -
SofaBoot--健康检查
前言在SpringBoot actuator框架已经实现相应的健康检查逻辑,会包括很多中间件的健康检查逻辑,本篇主要讲下健康检查以及sofaboot相关实现actuator健康检查主要代码DataSourceHealthIndicator拿数据库健康检查来讲,会判断datasource是否存在,是的话进行查询的操作,返回builder.status((valid) ? Status.UP : Status.DOWN) 数据库健康状态ReactiveHealthEndpointCo原创 2022-03-02 11:27:32 · 1225 阅读 · 0 评论 -
排查日志:apm在网关webflux变量丢失
文章目录前言场景排查过程结论前言在自研apm项目中,发现网关traceId会被篡改具体逻辑,有拦截器,然后在请求处理前,set tarceId,然后set到对应threadlocal里面,然后在mono返回的时候,从threadlocal拿出值,打印日志。场景a请求,traceId为123,b请求,traceId为666.在链路监控里头,会发现a的请求traceId被b覆盖了变成666排查过程threadlocal本身就会导致变量丢失打印对应的日志查看线程名称,发现都是同个线程react原创 2021-12-27 12:35:54 · 1361 阅读 · 1 评论 -
apm中间件切入点
文章目录前言怎么切入各个中间件呢第一步traceid什么时候塞入系统中RPCdubbohttp多线程、线程池情况下datasourceMQrocketmqrabbitmqredis埋点agent作用参考文章前言apm的要点,其实就是你需要在所有流程里头,把traceid塞进去,能拿到,这样的话不管你是打印日志来管理链路,还是上报日志,都行。怎么切入各个中间件呢第一步traceid什么时候塞入系统中第一种放在网关去给塞,依靠sleuth框架生成traceid第二种前端在发起请求的时候,也把tra原创 2021-11-23 21:59:44 · 2179 阅读 · 0 评论 -
配置中心@ConfigurationProperties+@RefreshScope 动态配置
文章目录前言实现方案前言在之前写了一篇配置中心Component + @Value动态配置实现本质就是缓存实例以及field,还有@Value的key,然后有变动的时候去刷新field开发中会遇到@ConfigurationProperties去拿配置,如果按照上一篇去刷新,有点困难的,因为类里面的属性并不是每个都是拿配置的。实现方案@ConfigurationProperties+@RefreshScope 动态配置写动态配置类@RefreshScope(proxyMode =原创 2021-11-12 15:15:34 · 4182 阅读 · 0 评论 -
配置中心将配置写入spring环境
文章目录前言前置知识具体实践demo关键点思路另外一种思路参考博客前言配置中心配置注入的时候有两个,一个是启动前,一个是配置变化之后进行动态配置。本篇主要总结启动前配置注入spring环境。前置知识spring配置会将配置储存到PropertySource数据结构,可以通过MapPropertySource拿到source拿到对应的配置,或者增删查配置也可以通过@Autowired private ConfigurableEnvironment environment;在运行时操作配置项原创 2021-11-11 10:18:17 · 994 阅读 · 0 评论 -
配置中心Component + @Value动态配置实现
文章目录前言实现方式具体步骤参考博客前言我们公司很多组件做自研的,里面有一个配置中心,然后我当时有点想法,nacos以及apoll是怎么样做动态配置的呢?实现方式对@Component + @Value 实现动态注入实现原理:会有一层缓存,然后存在对应key(@Value的值),然后还有对象实例,然后还有字段,可以进行赋值对吧。当我们收到更新数据的时候,通过key来拿到实例,然后对属性进行set,这样就实现动态配置了。具体步骤首先需要重写BeanPostProcessor,主要是在类加载过程原创 2021-11-04 22:30:42 · 3783 阅读 · 0 评论 -
agent实现apm上报
文章目录前言动手实现apm上报功能代码检验结果总结等待优化点项目链接前言最近刚刚换了工作,进了公司的架构组,有些项目蛮有意思,也是很感兴趣,也会工作之余自行学习,比如说有个自研apm项目当然在此声明一下,本篇代码属于个人学习编写,并非copy公司代码对于springcloud,有一套sleuth(主要是traceId+spanId生成)+zipkin(数据统计功能)skywalking,淘宝的鹰眼,蚂蚁金服sofatrace等等动手实现apm上报功能首先agent用的是byte-budd原创 2021-10-17 20:38:58 · 1762 阅读 · 1 评论 -
sofaRegistry 学习篇
文章目录地址个人笔记上图服务发现的推、拉模型服务推送性能优化(可以应用到日常大批量任务处理优化)异常处理地址海量数据下的注册中心 - SOFARegistry 架构介绍个人笔记dubbo不支持Eureka,Eureka是基于application级别,dubbo是group,version,sofaRegistry以dataInfoIdsofaRegistry跟其他注册中心一样,有自己的维护健康的机制。Eureka采用TTL(Time To Live),Zookeeper 采用心跳跟sess原创 2021-08-22 23:33:34 · 785 阅读 · 0 评论 -
第一次为开源框架sofarpc做小小贡献
文章目录前言他来了前言第一个目标是csdn博客,博客专家称号目前已经达成了~第二个目标是为开源框架做一些贡献他来了解决多线程本地变量丢失问题主要是解决ThreadLocal在多线程以及线程池等环节下的本地变量传递问题开森~期待成为commiter,冲!...原创 2021-07-23 23:04:41 · 283 阅读 · 0 评论 -
SofaRpc源码学习篇-netty以及跟dubbo骚操作,负载均衡
文章目录前言nettyNettyHelpercom.alipay.sofa.rpc.client.AbstractCluster调用实现方式异步调用同步调用跟dubbo一样骚操作同步异步对比优雅关闭(计算器作用)负载均衡前言这是作为sofarpc学习的子篇,主要学习netty在rpc里面的使用。蚂蚁金服开源-SofaRpc源码学习篇netty很重要的三个类NettyByteBuffer(直接跳过没啥好讲),NettyChannel,NettyHelper(也直接跳过,比较简单)NettyH原创 2021-07-18 17:44:53 · 937 阅读 · 1 评论 -
蚂蚁金服开源-SofaRpc源码学习篇
文章目录官网基本流程SofaRpc学习代码入手服务端-发布过程服务端-构造执行链服务端-注册到注册中心客户端客户端-生成代理类客户端-连接初始化netty客户端-得到服务端列表客户端-创建代理类客户端-具体调用客户端-解码客户端-配置接口,方法用处官网SOFARPC基本流程https://www.sofastack.tech/projects/sofa-rpc/client-invoke-flow/最简单:一个service,一个client,一个注册中心。service注册自己到reg原创 2021-07-16 00:24:36 · 2508 阅读 · 2 评论 -
数列科技开源全链路压测平台Takin-总结
文章目录全链路压测基本思路Takin细节点全链路保存一些标识拦截器实现数据埋点上报com.pamirs.pradar.interceptor.BaseInterceptorMQ改写topic改写jdbcredis影子缓存全链路压测基本思路阿里中间件-全链路压测 总结首个生产环境全链路压测平台Takin正式开源基本就是先染色,然后分发到对应的影子表,影子缓存,然后进行上报数据统计Takin细节点全链路保存一些标识比如说标识下这些数据是测试数据,然后在全链路进行传递,这个在阿里开源全链路追踪日原创 2021-06-29 18:27:33 · 1900 阅读 · 1 评论 -
阿里中间件-全链路压测 总结
文章目录前言全链路压测文章地址具体流程要点前言这几天在面蚂蚁金服的国际支付事业部,刚好有个面试题是:全链路压测怎么设计?(ps:我当时有点闷逼的,因为我们一般就是用jmeter去进行压测,至于全链路怎么搞呢)全链路压测文章地址全链路压测体系建设方案的思考与实践具体流程大概流程: 首先要做流量染色 ->流量识别->然后agent用字节码技术->改写sql 将数据落到影子表要点1.染色然后如何在全链路进行传递?A:这个可以参考阿里开源中间件sofatrace里面spa原创 2021-06-22 11:49:20 · 885 阅读 · 3 评论