年度归档: 2020 年

24 篇文章

SpringBoot WebSocket技术
最近看了Spring in Action,了解了一下WebSocket和Stomp协议相关技术,并搭建了一个项目。网上的例子不完整或者描述不清,所以自己记录一下以作备忘。 一.配置 Spring Boot项目搭建完成后,基于Spring Boot一切皆配置的概念,添加WebSocket支持十分简单。 首先是maven依赖: <dependen…
KeepAlive安装以及简单配置
操作系统:Centos7.3 一.依赖安装 首先安装相关依赖: yum install -y gcc openssl-devel popt-devel yum -y install libnl libnl-devel yum install -y libnfnetlink-devel 基本依赖就安装完毕了,如果还缺少什么依赖在下一步编译的时候会有w…
工作记录:记一次线上内存泄露问题的排查
问题的发现 发现当然还是运维大哥因为发现告警,包括自己邮箱也一堆告警,然后运维大哥做了dump以及jstack后立马重启,重启后暂时解决。 问题的排查 有dump和jstack记录,当然是好分析的,先分析这两个,原因就比较明显了: 1. dump记录拉到本地用java自带的工具查看,发现大量netty的MpscArrayQueue对象没有释放,占用…
分布式系统:xxl-job改造spring-cloud
修改后的源码仓库地址:GitHub. : 改造原因 原有的xxl-job使用自己实现的http协议进行注册以及调度等,与目前框架中本身的注册中心格格不入,会影响健康检查、日志处理、问题排查。 技术栈统一。避免执行器内包含两套注册逻辑。 提高分布式健壮性,原有的服务注册以及发现等功能较弱,且与实际应用可用与否完全无关,经常存在xxl-job线程出问题…
Netty学习:伪共享
Netty中的伪共享 先说为什么知道这个概念吧,期初看Netty源码的时候,看到了NioEventLoop的构建,其中有这么一句代码: private static Queue<Runnable> newTaskQueue0(int maxPendingTasks) { // This event loop never calls ta…
分布式系统:分布式锁
什么是分布式锁 锁的含义,一般就是为了独占资源,防止并发冲突,一般锁的实现,都依赖于计算机资源,如CPU,内存等,但是在跨系统时,各系统独立,如果需要锁,就需要一种分布式锁的实现方案。让各系统之间对相同资源的并发操作不会出现并发问题。 分布式锁的应用场景 虽然理论上,分布式锁适用于任何多应用需要独占资源或者要进行串行操作的场景,但是一般业务中,从我…
Git
之前公司要做技术分享,因为Git虽然看似简单,但是实际上是使用较多而且较为重要的一个工具,所以做了一下大概的总结。 因为新来的同事问了一个问题,紧急版本要拉hotfix分支修改,但是hotfix分支如何优雅的合并到各个分支上去呢?尤其是hotfix修改的位置比较敏感的情况下。 所以顺带也研究了一下这个问题 下面根据Git最关键的几个概念,穿插了Gi…
关于我
写写代码 思考思考人生 记录记录感想 写作的三个目的:叙述、记录、表达 本站发展历程 2024.6 从hugo +loveit主题+ cloudflare 迁移到wordpress+argon主题,下定决心迁移的理由是hugo实在没有什么漂亮主题,在看 Bensz 和 夏'博客 两位大佬的博客的时候,发现很喜欢这个主题,但是又是wordpress的…
Netty学习:ChannelHandler执行顺序详解,附源码分析
近日学习Netty,在看书和实践的时候对于书上只言片语的那些话不是十分懂,导致尝试写例子的时候遭遇各种不顺,比如decoder和encoder还有HttpObjectAggregator的添加顺序,研究了一番之后和大家分享一下自己的理解,希望后来人可以少走弯路。 模型浅析 简单描述下ChannelHandler的存储模型,ChannelHandle…