自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

https://github.com/lyh200

https://github.com/lyh200

  • 博客(26)
  • 收藏
  • 关注

原创 SpringCloudAlibaba 微服务组件 Nacos 之配置中心源码深度解析

文章从服务启动时的配置拉取,服务启动后的配置监听器注册,以及配置变动后的热更新实现三个方面从源码层面解析了整个的原理,希望对大家有所帮助。

2022-11-11 10:17:08 660 1

原创 Tomcat 调优之从 Linux 内核源码层面看 Tcp backlog

这篇文章以 Tomcat 性能调优为切入点,首先简单讲了下 Tomcat 线程池调优。然后借 Tomcat 配置参数 accept-count 引出了 Tcp backlog,从 linux 内核源码层面详细讲解了下 TCP backlog 参数以及半连接、全连接队列的相关知识,包括连接队列大小设置,以及队列溢出怎么排查,这些东西也是我们服务端开发需要掌握的,在性能调优,问题排查时会有一定的帮助。

2022-10-19 11:02:53 667

原创 这些不知道,别说你熟悉 Spring

我们大多数 Java 程序员的日常工作基本都是在做业务开发,俗称 crudboy。作为 crudboy 的你有没有这些烦恼呢?随着业务的迭代,新功能的加入,代码变得越来越臃肿,可维护性越来越低,慢慢变成了屎山遇到一些框架层的问题不知道怎么解决面试被问到使用的框架、中间件原理、源码层东西,不知道怎么回答写了 5 年代码了,感觉自己的技术没有理想的长进如果你有上述这些烦恼,我想看优秀框架的源码会是一个很好的提升方式。

2022-10-09 15:42:15 914

原创 以面试官视角万字解读线程池10大经典面试题!

一般面试官考察你线程池相关知识前,大概率会先问这个问题,如果你说没用过,不了解,ok,那就没以下问题啥事了,估计你的面试结果肯定也凶多吉少了。作为 JUC 包下的门面担当,线程池是名副其实的 JUC 一哥,不了解线程池,那说明你对 JUC 包其他工具也了解的不咋样吧,对 JUC 没深入研究过,那就是没掌握到 Java 的精髓,给面试官这样一个印象,那结果可想而知了。所以说,这一分一定要吃下,那我们应该怎么回答好这问题呢?

2022-09-23 10:16:57 1332

原创 【面试必备】我跟面试官聊了一个小时线程池!

一般面试官考察你线程池相关知识前,大概率会先问这个问题,如果你说没用过,不了解,ok,那就没以下问题啥事了,估计你的面试结果肯定也凶多吉少了。作为 JUC 包下的门面担当,线程池是名副其实的 JUC 一哥,不了解线程池,那说明你对 JUC 包其他工具也了解的不咋样吧,对 JUC 没深入研究过,那就是没掌握到 Java 的精髓,给面试官这样一个印象,那结果可想而知了。所以说,这一分一定要吃下,那我们应该怎么回答好这问题呢?...

2022-08-29 15:45:56 606

原创 历时2月,动态线程池 DynamicTp 发布里程碑版本 V1.0.8

DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为动态调参、通知报警、运行监控、三方包线程池管理等几大类

2022-08-24 14:47:42 434

原创 线程池,我是谁?我在哪儿?

DynamicTp是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为动态调参、通知报警、运行监控、三方包线程池管理等几大类。经过几个版本迭代,目前最新版本v1.0.7具有以下特性特性✅代码零侵入所有配置都放在配置中心,对业务代码零侵入轻量简单基于springboot实现,引入starter,接入只需简单4步就可完成,顺利3分钟搞定高可扩展框架核心功能都提供SPI接口供用户自定义个性化实现(配置中心、配置文件解析、通知告警、监控数据采集、任务包装等等)线上大规模应用。...

2022-07-18 10:14:10 390

原创 动态线程池框架 DynamicTp v1.0.7版本发布,新增Dubbo线程池管理,RocketMq线程池管理,Hystrix线程池管理

DynamicTp 是一个基于配置中心实现的轻量级动态线程池管理工具,主要功能可以总结为 动态调参、通知报警、运行监控、三方包线程池管理等几大类。

2022-06-13 11:28:23 192

原创 美团动态线程池实践思路开源项目(DynamicTp),线程池源码解析及通知告警篇

大家好,这篇文章我们来聊下动态线程池开源项目(DynamicTp)的通知告警模块。目前项目提供以下通知告警功能,每一个通知项都可以独立配置是否开启、告警阈值、告警间隔时间、平台等,具体代码请看core模块notify包。1.核心参数变更通知2.线程池活跃度告警3.队列容量告警4.拒绝策略告警5.任务执行超时告警6.任务排队超时告警DynamicTp项目地址目前700star,感谢你的star,欢迎pr,业务之余一起给开源贡献一份力量gitee地址:https://gitee.com/ya

2022-04-06 15:25:28 4562

原创 动态线程池(DynamicTp)之动态调整Tomcat、Jetty、Undertow线程池参数篇

大家好,这篇文章我们来介绍下动态线程池框架(DynamicTp)的adapter模块,上篇文章也大概介绍过了,该模块主要是用来适配一些第三方组件的线程池管理,让第三方组件内置的线程池也能享受到动态参数调整,监控告警这些增强功能。DynamicTp项目地址目前500多star,感谢你的star,欢迎pr,业务之余给开源贡献一份力量gitee地址:https://gitee.com/yanhom/dynamic-tpgithub地址:https://github.com/lyh200/dynamic-

2022-03-10 10:18:00 1219

原创 美团动态线程池实践思路开源项目DynamicTp,源码解析及手把手教使用

大家好,动态线程池项目DynamicTp开源一个多月,目前400多star,说明还是比较受欢迎的,现在已经有一些小伙伴在接入使用或者即将接入使用了,为了项目以后更好的发展迭代,打算出几篇文章来对DynamicTp做一些更详细的介绍,有兴趣的小伙伴欢迎一起参与进来完善迭代项目。背景啥的可以看前一篇文章介绍美团动态线程池实践思路,开源了项目地址感谢star,欢迎pr,业务之余给开源贡献一份力量gitee地址:https://gitee.com/yanhom/dynamic-tpgithub地址:h

2022-02-27 16:14:40 1221

原创 美团动态线程池实践思路,开源了

基于配置中心对线程池ThreadPoolExecutor做一些扩展,实现对运行中线程池参数的动态修改,实时生效;以及实时监控线程池的运行状态,触发设置的报警策略时报警,报警信息会推送办公平台(钉钉、企微等)。报警维度包括(队列容量、线程池活性、拒绝触发等);同时也会定时采集线程池指标数据供监控平台可视化使用。使我们能时刻感知到线程池的负载,根据情况及时调整,避免出现问题影响线上业务。

2022-02-11 19:05:06 1030

原创 基于配置中心的轻量级动态可监控线程池 - DynamicTp

大家好,我是编程狐,今天我们来聊一个比较实用的话题,动态可监控的线程池实践,开源项目<<DynamicTp>>地址在文章末尾。写在前面稍微有些Java编程经验的小伙伴都知道,Java的精髓在juc包,这是大名鼎鼎的Doug Lea老爷子的杰作,评价一个程序员Java水平怎么样,一定程度上看他对juc包下的一些技术掌握的怎么样,这也是面试中的基本上必问的一些技术点之一。juc包主要包括:1.原子类(AtomicXXX)2.锁类(XXXLock)3.线程同步类(

2022-01-16 21:30:15 1059 3

原创 Sentinel生产环境实践(一)

一.Sentinel是什么按照官方文档所说,Sentinel是分布式流量防卫兵。随着微服务的流行,大型互联网系统一般会按功能划分成很多比较小,自治的微服务,服务之间通过相互调用协同让整个系统运转起来,所以就要保证每个微服务的稳定性。Sentinel以流量为切入点,从流量控制,熔断降级,系统负载保护等多维度保护服务的稳定性。简而言之,Sentinel是一个从流量切入来保护分布式系统稳...

2020-05-04 23:08:39 1030 1

转载 Java 8 CompletableFuture Tutorial

Java 8 came up with tons of new features and enhancements like Lambda expressions, Streams, CompletableFutures etc. In this post I’ll give you a detailed explanation of CompletableFuture and all its m...

2018-05-04 21:18:05 380

原创 插入排序 -JAVA详解

/** * 插入排序是一种简单的排序in-place排序(即只需O(1)的额外空间排序)算法,把数组分为两个子数组, * 一个是已排序好的,一个是为排序的,从未排序的数组中拿出元素然后在已排序数组中从后往前扫描, * 找到相应位置(小于或者大于)并插入,在从后向前扫描的过程中,需要反复把已排序元素逐步向后挪位, * 为新元素提供插入空间 * * 时间复杂度O(n^2) * * @a

2017-10-27 17:37:55 3146

原创 选择排序 -JAVA详解

/** * 选择排序是一种简单的排序算法,原理是把待排序数组分为已排序好和未排序两个,开始先从数组中找到一个最小(最大)元素, * 放在数组的开始位置作为已排序好数组,假设是第一个元素,然后跟后边元素去比较,小则更新,内部循环结束后去如果更新过了去交换值 * * 和冒泡排序的区别,冒泡排序会依次比较交换相邻不合法元素,而选择排序每次遍历都是记录了最小(最大)元素的位置,最后只做一次交换即可

2017-10-27 16:52:21 254

原创 归并排序 -JAVA详解

/** * 快速排序是一种运用了分治法的排序算法,将输入数组分成两个,然后分别递归使得每个子数组有序,然后归并成一个有序的数组 * * @author yanhom * @time 2017/10/26 */public class MergeSort { /** * 1.以中间位置将数组划分为两个子数组,分别递归两个子数组使之有序,递归退出条件是只有一个元素,此时

2017-10-26 18:18:30 475

原创 快速排序 -JAVA详解

/** * 快速排序是一种基于分治法的排序方法,平均时间复杂度 O(NLogN),主要思想是选取一个基准元素,遍历数组,比基准元素大的放到右边,小的放到左边,然后递归处理 * * author yanhom * createTime 2017/10/26 */public class QuickSort { /** * 1.对输入的数组选取一个基准元素,比如第一个元

2017-10-26 16:46:34 233

原创 使用bootstrap-select遇到的坑

项目需要,需要一个bootstrap框架下的下拉多选控件,比较主流的都会去用bootstrap-select实现,但是当使用ajax请求到数据添加到下拉框时怎么也不显示,查找原因后是得有两步refresh和render操作,必不可少!html代码:id='name' class="form-control selectpicker" data-live-search="true">

2016-11-16 16:43:18 39167 19

转载 「Chris Richardson 微服务系列」微服务架构中的进程间通信

编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第三篇,在第一篇文章中介绍了微服务架构模式,与单体模式进行了比较,并且讨论了使用微服务架构的优缺点。第二篇描述了采用微服务架构的应用客户端之间如何采用 API 网关方式进行通信。在这篇文章中,我们将讨论系统服务之间是如何实现通信的。作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJO

2016-10-28 17:24:48 855

转载 「Chris Richardson 微服务系列」微服务架构的优势与不足

编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第一篇,主要探讨了传统的单体式应用的不足,以及微服务架构的优势与挑战。作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人,Chris Richardson 与 Martin Fowler、Sam

2016-10-27 16:40:20 872

转载 「Chris Richardson 微服务系列」使用 API 网关构建微服务

编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨:微服务架构是如何影响客户端到服务端的通信,并提出一种使用 API 网关的方法。作者介绍:Chris Richardson,是世界著名的软件大师,经典技术著作《POJOS IN ACTION》一书的作者,也是 cloudfoundry.com 最初的创始人,Chris Richardson 与 M

2016-10-27 15:29:23 943

转载 JVM虚拟机类加载机制

一、基本概念虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。与那些在编译时需要进行链接工作的语言不同,在Java语言里,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略虽然会令类加载时稍微增加一些性能开销,但是会为Java应用程序提供高度的灵活性,Java可以动态扩展

2016-05-17 16:18:54 478

转载 大型网站架构演变和知识体系

之前也有一些介绍大型网站架构演变的文章,例如LiveJournal的、ebay的,都是非常值得参考的,不过感觉他们讲的更多的是每次演变的结果,而没有很详细的讲为什么需要做这样的演变,再加上近来感觉有不少同学都很难明白为什么一个网站需要那么复杂的技术,于是有了写这篇文章的想法,在这篇文章中 将阐述一个普通的网站发展成大型网站过程中的一种较为典型的架构演变历程和所需掌握的知识体系,希望能给想从事互联网

2016-05-11 14:04:32 333

转载 Mahout的相似性度量(相似度算法)

User CF 和 Item CF 都依赖于相似度的计算,因为只有通过衡量用户之间或物品之间的相似度,才能找到用户的“邻居”,才能完成推荐。上文简单的介绍了相似性的计算,但不完全,下面就对常用的相似度计算方法进行详细的介绍:1. 基于皮尔森相关性的相似度 —— Pearson correlation-based similarity皮尔森相关系数反应了两个变量之间的线性

2016-05-10 14:05:10 1006

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除