5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 基于springcloud的灰度实现方案(一) 基于springcloud的灰度实现方案(二) 前两篇介绍了灰度方案以及灰度的实现,这篇从feign底层调用上分析一下是如何实现的。 首先,我们在feign调用时,使用了FeignClient注解。 #接口调用@FeignClient("demo-service")public interface DemoServiceFeginClie…

2021/05/20 0条评论 1586点热度 1人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 基于springcloud的灰度实现方案(一) 该项目已经上传到github上,地址如下: https://github.com/yxkong/springboot-gray 项目说明 通过eureka的扩展元数据,标记服务是灰度服务 重写Ribbon的RoundRobinRule轮训算法实现灰度路由 项目结构说明 必须有一个eureka lb-common 公共包 com.yxkon…

2021/05/19 0条评论 993点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 前言 目前所有的服务都是基于springboot/springcloud体系,注册中心使用eureka。 背景: 新的功能上线后,特别是大版本上线,不能完全保证新功能的质量,特别是对历史用户,数据差异性比较大,又无法复现; 为了测试哪套流程的转化率比较高; 想要的效果 这里就会有以下几个问题: 如果识别是灰度用户?  如何识别是灰度服务? 如何让灰度用户走灰度服务? 如何让灰…

2021/05/18 0条评论 976点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 当我们在生产调优的时候,有时候不确定当前的jvm哪些参数已过期。通过以下两种方式,可以确认当前jdk是否支持,以及对应的参数含义。 方法一:通过命令行获取当前jdk的参数  # 打印jvm所有参数的最终值(可能jdk被人调整,有些值变化了) java -XX:+PrintFlagsFinal -version  #&…

2021/05/15 0条评论 845点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 什么叫代理模式? 代理模式是在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类增加功能。代理对象在在原始类和代理类之间起到了中介作用。 代理模式的目的: 保护原始类; 增强原始类; 我们在生活中的经常遇到这样的场景如:房屋中介、猎头等。 中介保护了我们的隐私,我们除了提供基本的房屋买卖、找工作等需求,中介会通过自己的资源、渠道等帮我们实现,我们本来的意愿并没有改变。 …

2021/05/14 0条评论 828点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 什么是零拷贝? 零拷贝描述的是cpu不参与执行从一个存储区域到另一个存储区域的数据拷贝任务;避免让CPU做大量的数据拷贝任务,将cpu解脱出来专注于别的事,降低cpu在数据拷贝中的使用率。 零拷贝的目的 尽可能少的利用cpu来完成操作; 尽可能减少数据的读写过程; 利用零拷贝的组件 kafka netty rocketMq nginx 基本上有文件和网络交互的为了效率都会用到 基本概念…

2021/05/08 0条评论 854点热度 0人点赞 阅读全文

问题回顾 4月2日 开发发现专有云的用户rds实例链接数报警,并于中午发起了数据库配置变更申请; 4月8日14:00 某云在场运维巡检,发现该实例有中断的任务,尝试补偿执行失败; 4月8日14:23 某云在场运维直接手动操作跳过一些步骤,将中断任务继续执行; 4月8日17:30,许久没消息的报警群,突然收到一堆报警,用户系统提示:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,其他系统提示调用用户系统Read timed out,后续又报Connect…

2021/05/07 0条评论 897点热度 0人点赞 阅读全文

这可能是最简短的线程池分析文章了。 顶层设计,定义执行接口 Interface Executor(){ void execute(Runnable command);} ExecutorService,定义控制接口 interface ExecutorService extends Executor{ } 抽象实现ExecutorService中的大部分方法 abstract class AbstractExecutorService implements ExecutorService{ //此处只有提交} Th…

2021/04/29 0条评论 789点热度 0人点赞 阅读全文

背景:在博客迁移过程,由于误操作原来的mysql无法启动,只能通过新建一个mysql,然后清空data目录,将原来的data都拷贝过去。 启动后登录没问题,读取也没问题,就是无法写入,出现了Table‘xxx’is read only。 我这是因为迁移后修改my.cnf文件多加了一个配置导致 [mysqld]log-error = /app/data/mysql/logs/error.logpid-file = /app/data/mysql/mysql.pidport = 3306socket = /app/da…

2021/04/26 0条评论 998点热度 0人点赞 阅读全文

业务系统从公有云在迁移到专有云后,有几台服务器一直有问题,直接导致迁移进度无进展。通过 jstat -gcutil pid 5000 查看,发现应用程序的老年代已满,fullgc一直在增长,反而ygc很小。 猜测: 对象生成没有经过年轻代,直接进了老年代,程序里有大对象; 年轻代里没有连续的空间,导致无法创建数组直接进入老年代; 然后 jmap -heap pid 查看到应用的堆有2g,但是新生代只有167MB,新生代太小,不符合1:2的配置 Server compiler detected.JVM version…

2021/04/26 0条评论 979点热度 0人点赞 阅读全文
167891032