天涯泪小武
码龄13年
  • 3,020,548
    被访问
  • 191
    原创
  • 2,538
    排名
  • 3,627
    粉丝
关注
提问 私信

个人简介:开源贡献者,有代码洁癖。京东coder。

  • 目前就职: 京东商城app后台
  • 加入CSDN时间: 2009-09-12
博客简介:

tianyaleixiaowu的专栏

博客描述:
世界上有10种人,一种懂2进制,一种不懂2进制
查看详细资料
  • 6
    领奖
    总分 2,877 当月 56
个人成就
  • 博客专家认证
  • 获得1,230次点赞
  • 内容获得1,169次评论
  • 获得4,022次收藏
创作历程
  • 6篇
    2022年
  • 12篇
    2021年
  • 18篇
    2020年
  • 51篇
    2019年
  • 72篇
    2018年
  • 103篇
    2017年
  • 20篇
    2016年
  • 2篇
    2014年
成就勋章
TA的专栏
  • 手写中间件之——并发框架
    付费
    4篇
  • 网络通信框架
    11篇
  • 热key探测
    5篇
  • Spring boot相关实战知识的专栏
    93篇
  • reactor
    1篇
  • 机器学习入门
    15篇
  • spring cloud
    33篇
  • spring boot
    43篇
  • 机器学习
    17篇
  • javaee
    12篇
  • Elasticsearch
    14篇
  • mongoDB
    4篇
  • 数据结构
    11篇
  • 算法-回溯算法
    5篇
  • android
    10篇
  • logback
    4篇
  • 网站
    2篇
  • java
    7篇
  • 限流算法
    9篇
  • 网关api-gateway
    8篇
  • disconf配置中心
    5篇
  • docker
    9篇
  • OAuth
    2篇
  • 多线程
    12篇
  • zabbix
    3篇
  • 架构
    35篇
  • zookeeper
    6篇
  • redis
    14篇
  • kafka
    3篇
  • spark
    13篇
  • 区块链
    6篇
  • 特征工程
    2篇
  • 机器学习weka使用
    2篇
  • 神经网络
    2篇
  • mysql底层和jpa
    12篇
  • 分布式事务
    3篇
  • io相关
    3篇
友情链接
  • springcloud中国创始人叶志远
  • star京东热key探测
  • star开源并行框架
  • star开源区块链项目
  • star开源日志系统
  • star开源网关权限项目
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

高并发监控[一]:TP90、TP99耗时监控设计与实现

背景性能测试中,我们经常选择TP90、TP95、TP99等指标项作为性能对比的参考水位, 在本文中,我们给出一种计算 TP90、TP95 和 TP99 等水位线的方法,首先我们解释一下TP90、TP95、TP99的含义.TP90: 即 90% 的数据都满足某一条件. TP95: 即 95% 的数据都满足某一条件. TP99: 即 99% 的数据都满足某一条件.我们之所以说其“满足某一条件”,是因为在计算的时候,我们既可以向前计算也可以向后计算,例如:1, 2, 3, …, 98, 99,
转载
发布博客 2022.04.11 ·
90 阅读 ·
0 点赞 ·
0 评论

关于压缩后字符串写入clickhouse再读取后无法反解压的问题

我们将一个长字符串进行了压缩,采用zstd或者snappy之类的,将字符串压成了byte[],然后将byte[]作为一个属性写入了clickhouse数据库,clickhouse会默认将byte[]转为String进行存储。但是当从数据库读取到该字段,得到一个String类型的值,再用getBytes()方法获取到byte[],再试图用zstd的反解压功能对该byte[]试图还原为压缩前的字符串时,会发现报错,已经无法解压还原了。对应该图的情形,运行会报错那么做了如下修改,设置编码方..
原创
发布博客 2022.03.15 ·
1079 阅读 ·
0 点赞 ·
0 评论

bytebuf池_Netty默认的Bytebuf是堆内还是堆外?池化or非池化?

开篇Netty的ByteBuf有从不同角度有如下2个分类,4种组合!堆外内存和堆内内存池化和非池化我们在利用Netty做底层通信框架的时候,会默认给我们的到底是哪一种组合了?分析池化分析Netty的Boostrap启动类按照标准模板,通常会添加这个配置option(ChannelOption.ALLOCATOR, ByteBufAllocator.DEFAULT)val serverBootstrap = ServerBootstrap().group(bossGroup,
转载
发布博客 2022.02.23 ·
132 阅读 ·
0 点赞 ·
0 评论

netty堆外内存的使用

一、java的堆外内存堆外内存的限额默认与堆内内存(由-XMX 设定)相同,可用 -XX:MaxDirectMemorySize 重新设定1、优缺点优点:(1)可以扩展至更大的内存空间。比如超过1TB甚至比主存还大的空间;(2)理论上能减少GC暂停时间;(3)可以在进程间(系统调用,aio)共享,减少JVM间的对象复制,使得JVM的分割部署更容易实现;(4)它的持久化存储可以支持快速重启,同时还能够在测试环境中重现生产数据(5)堆外内存能减少IO时的内存复制,不需要堆内存Bu
转载
发布博客 2022.02.23 ·
351 阅读 ·
0 点赞 ·
1 评论

Netty解决粘包和拆包问题的四种方案

在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie ma qi”认定为敏感文字,因而本文统一使用“解码一器”表示该含义1. 粘包和拆包产生粘包...
转载
发布博客 2022.02.22 ·
140 阅读 ·
0 点赞 ·
0 评论

工商银行分布式服务C10K场景的解决方案

Dubbo是一款轻量级的开源Java服务框架,是众多企业在建设分布式服务架构时的首选。中国工商银行自2014年开始探索分布式架构转型工作,基于开源Dubbo自主研发建设了分布式服务平台。Dubbo框架在提供方消费方数量较小的服务规模下,运行稳定、性能良好。随着银行业务线上化、多样化、智能化的需求越来越旺盛,在可预见的未来,会出现一个提供方为数千个、甚至上万个消费方提供服务的场景。在如此高负载量下,若服务端程序设计不够良好,网络服务在处理数以万计的客户端连接时、可能会出现效率低下甚至完全瘫痪的情况,即
转载
发布博客 2022.01.12 ·
160 阅读 ·
0 点赞 ·
2 评论

京东App秒级百G日志传输存储架构设计与实战

本文作者:平台业务研发部-武伟峰,数据与智能部-李阳背景在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。日志存储和检索是个很常见且简单的工作,市面也有很多关于日志搜集、存储、检索的框架可供使用。譬如我们只有个位数机器时,可以通过登录服务器,查看log4j之类的框架打印到本地文件的日志。当日志多起来后,可以用elk三剑客处理日志。当日志量进一步增多,我们可以上消息队列,譬如kafka
原创
发布博客 2021.11.22 ·
2931 阅读 ·
7 点赞 ·
4 评论

时间轮timewheel算法

时间轮是个不太常见,但在部分场景有较高使用价值的工具。时间轮常用于延时任务,在Netty、akka、Quartz、Zookeeper等高性能组件中都存在时间轮定时器的踪影。
转载
发布博客 2021.11.18 ·
254 阅读 ·
0 点赞 ·
1 评论

java在filter中修改一个http请求出入参内容

response保存了请求的返回信息,里面有个outputstream,你要返回给页面的流,都在这个地方保存.之前遇到一个问题,想把outputstream修改一下.因为这是个输出流,想要改这个里面的东西不是这么简单的.sun为我们提供了这么一个工具HttpServletResponseWrapper抽象类,利用这个类的子类把servletresponse包装一下,在过滤器中使用,就可以去除response的文件流,对其作出修改.给出一个实现:import javax.servlet.Ser...
原创
发布博客 2021.08.16 ·
315 阅读 ·
3 点赞 ·
0 评论

京东app后台多端融合架构代码重构实战

一 简介重构是一个非常常见且古老的课题,涉及重构的文章、书更是不可胜数。但其实做程序做久了就会知道,想把一个复杂的系统做好,尤其是参与人数较多的中大型项目,靠看几本设计模式的书,去试图寻找设计模式的奥秘,其实是不够的。很多时候,看书时觉得很有道理,例子也能理解,但到实际开发时,却无从下手,不知道怎么灵活套用。很多项目,在持续的版本迭代中,还伴随着人员的更替过程,往往为了解决眼前的需求,最常见的就是直接复制类似的逻辑,或者就是在末尾追加逻辑。同时,受限于对老版本的需求理解,很容易出现新需求覆盖老需
原创
发布博客 2021.08.15 ·
674 阅读 ·
10 点赞 ·
0 评论

java protobuf 服务端接收任意protubuf对象

答:

https://tianyalei.blog.csdn.net/article/details/119460587 https://tianyalei.blog.csdn.net/article/details/119460587 参考文章

回答问题 2021.08.06

java protobuf 服务端接收任意protubuf对象

这个需求还算比较常见的,作为一个统一的服务端项目,有多个其他的服务在往该服务发消息,不同的服务定义的数据对象各不相同,那么如何用一个统一的对象把这些发来的消息都接收下来呢?举例:譬如有10个服务要把自己的出入参发给服务A,服务A用来做出入参日志的记录保存工作,这10个服务都有自己的出入参,对象也各不相同,而且随时有变更的可能。作为服务A肯定是无法把这10个服务的出入参对象都定义出来,然后再做protobuf的解析的。那么就需要一个统一的类对象来接收这么些个不同的对象,本篇就是解决这个问题的。解决方案
原创
发布博客 2021.08.06 ·
485 阅读 ·
1 点赞 ·
0 评论

时间轮算法浅析

从定时任务说起自然界中定时任务无处不在,太阳每天东升西落,候鸟的迁徙,树木的年轮,人们每天按时上班,每个月按时发工资、交房租,四季轮换,潮涨潮落,等等,从某种意义上说,都可以认为是定时任务。大概很少有人想过,这些“定时”是怎样做到的。当然,计算机领域的同学们可能对此比较熟悉,毕竟工作中的定时任务也是无处不在的:每天凌晨更新一波数据库,每天9点发一波邮件,每隔10秒钟抢一次火车票。。。至于怎么实现的?很简单啊,操作系统的crontab,spring框架的quartz,实在不行Java自带的Sched
转载
发布博客 2021.07.21 ·
212 阅读 ·
2 点赞 ·
0 评论

京东猎户座发布开源,配置化一键生成cms系统

猎户座核心配置化功能开源啦!在降本提效的大环境下,猎户座系统为了扩展更多应用场景,近期完成了第一阶段的开源工作。此次开源的代码内容涉及两个代码库,内容为CCMS管理系统核心配置化功能以及包含表格列与表单项在内的常用组件。 配置化核心业务逻辑(开源地址) UI实现代码库(开源地址)希望通过开源吸引更多贡献者参与共建,完善对各类表单项、列表项的展示、校验需求的覆盖,促进产品的长期发展。收集Issue以及社区的反馈,不断优化功能的同时全面掌握用户诉求。开源介绍1、简介...
原创
发布博客 2021.04.16 ·
578 阅读 ·
0 点赞 ·
0 评论

网络编程入门从未如此简单(二):假如你来设计TCP协议,会怎么做?

本文原题“你管这破玩意儿叫TCP?”,由作者闪客sun发布于“低并发编程”公众号,本次收录时有改动和修订1、引言网络编程能力对于即时通讯技术开发者来说是基本功,而计算机网络又是网络编程的理论根基,因而深刻准确地理解计算机网络知识显然能夯实你的即时通讯应用的实践品质。本文风格类似于52im社区里的《网络编程懒人入门》、《脑残式网络编程入门》两个系列,但通俗又不失内涵,简洁又不简陋,非常适合对计算机网络知识有向往但又有惧怕的网络编程爱好者们阅读,希望能给你带来不一样的网络知识入门视角。本篇将运用通俗
转载
发布博客 2021.02.23 ·
397 阅读 ·
2 点赞 ·
0 评论

网络编程入门从未如此简单(一):假如你来设计网络,会怎么做?

本文原题“如果让你来设计网络”,有修订和改动,收录已征得作者同意,转载请联系作者。本文已同步发布于52im社区:http://www.52im.net/thread-3330-1-1.html(点击“阅读原文”进入)1、引言网络编程能力对于即时通讯技术开发者来说是基本功,而计算机网络又是网络编程的理论根基,因而深刻准确地理解计算机网络知识显然能夯实你的即时通讯应用的实践品质。本文风格类似于52im社区里的《网络编程懒人入门》、《脑残式网络编程入门》两个系列,但通俗又不失内涵,简洁又不简陋,非常适
转载
发布博客 2021.02.01 ·
513 阅读 ·
5 点赞 ·
2 评论

图解Linux网络包接收过程

转载自:https://mp.weixin.qq.com/s/GoYDsfy9m0wRoXi_NCfCmg因为要对百万、千万、甚至是过亿的用户提供各种网络服务,所以在一线互联网企业里面试和晋升后端开发同学的其中一个重点要求就是要能支撑高并发,要理解性能开销,会进行性能优化。而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。还是按照惯例来借用一段最简单的代码开始思考。为了简单起见,我们.
转载
发布博客 2021.01.22 ·
545 阅读 ·
2 点赞 ·
0 评论

漫画 | 花了七天时间测试,我彻底搞明白了 TCP 的这些内存开销!

原创张彦飞allen开发内功修炼实际中 TCP 连接上肯定是要进行数据的收发的,而且还会有 TIME_WAIT 等其它状态。在这些复杂情况下,一条连接占用多大内存呢?飞哥用做了七天的实验结果告诉你!实验1:ESTABLISH空连接实验2:客户端 => 服务器发送数据测试实验3: 服务器 => 客户端发送数据测试实验4:非 ESTABLISH 状态...
转载
发布博客 2021.01.22 ·
313 阅读 ·
3 点赞 ·
0 评论

IP 基础知识“全家桶”,45 张图一套带走

目录前言正文前菜 —— IP 基本认识网络层与数据链路层有什么关系呢?主菜 —— IP 地址的基础知识IP 地址的分类无分类地址 CIDR公有 IP 地址与私有 IP 地址IP 地址与路由控制IP 分片与重组IPv6 基本认识IPv6 的亮点IPv6 地址的标识方法IPv6 地址的结构IPv6 单播地址类型IPv4 首部与 IPv6 首部点心 —— IP 协议相关技术DNS域名的层级关系域名解析的工作流程ARP那么.
转载
发布博客 2021.01.05 ·
442 阅读 ·
4 点赞 ·
0 评论

一文讲懂什么是vlan、三层交换机、网关、DNS、子网掩码、MAC地址

很多朋友多次问到什么是网关、dns、子网掩码,三层交换机,它们定位的用途;确实,因为网络技术在弱电中确实应用非常广泛,我们平时在vip技术群中也是不断的讨论到网关、vlan、三层交换机或子网掩码等问题,今天我们就一起用通俗方式一次性了解清楚。一、什么是vlan?VLAN中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。听上面的概念,肯定有不少朋友是一头雾水的,什么是虚拟局域网?好
转载
发布博客 2020.12.31 ·
285 阅读 ·
1 点赞 ·
0 评论
加载更多