首页
学习
活动
专区
工具
TVP
发布

Kirito的技术分享

专栏成员
167
文章
327568
阅读量
72
订阅数
一个我佩服的 P10 前辈
提到阿里的大牛,很多人一般最先想到的肯定是多隆、行癫、鲁肃和道哥等人,但我今天想聊聊一个在电商、算法、云计算领域都特别牛,但不那么为人熟知的 P10 大牛——郭东白。 我第一次听说他的名字,是有同事说公司从亚马逊挖了个跨境电商方面的人才,空降速卖通做首席架构师。他的空降可谓备受关注,因为 2014 年的跨境电商吃着 Web 的流量红利,每年同比增长都在 100% 以上,业务在野蛮增长,与此同时技术却严重脱节。 据我所知,当时速卖通在全球有 14 个站点,并且这 14 个站点在共享同一个底层,这么多站点互相
kirito-moe
2022-08-29
6530
盘点:35 个 Java 代码优化魔鬼细节
代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。
kirito-moe
2021-12-06
4140
重新认识 Java 中的内存映射(mmap)
mmap 是一种内存映射文件的方法,即将一个文件映射到进程的地址空间,实现文件磁盘地址和一段进程虚拟地址的映射。实现这样的映射关系后,进程就可以采用指针的方式读写操作这一段内存,而系统会自动回写脏页到对应的文件磁盘上,即完成了对文件的操作而不必再调用 read,write 等系统调用函数。相反,内核空间对这段区域的修改也直接反映用户空间,从而可以实现不同进程间的文件共享。
kirito-moe
2021-11-17
4.2K0
使用堆内内存HeapByteBuffer的注意事项
国庆假期一眨眼就过去了,本来在家躺平的很舒服,没怎么肝云原生编程挑战赛,传送门:https://tianchi.aliyun.com/s/8bf1fe4ae2aea736e692c31c6952042d ,偏偏对手们假期开始卷起来了,眼看就要被人反超了,吓得我赶紧继续优化了。比赛大概还有一个月才结束,Kirito 的详细方案也会在比赛结束后分享,这期间我会分享一些比赛中的一些通用优化或者细节知识点,例如本文就是这么一个例子。
kirito-moe
2021-10-18
1.4K0
如何更快地将string转换成int/long
在很多追求性能的程序挑战赛中,经常会遇到一个操作:将 String 转换成 Integer/Long。如果你没有开发过高并发的系统,或者没有参加过任何性能挑战赛,可能会有这样的疑问:这有啥好讲究的,Integer.valueOf/Long.valueOf 又不是不能用。实际上,很多内置的转换工具类只满足了功能性的需求,在高并发场景下,可能会是热点方法,成为系统性能的瓶颈。
kirito-moe
2021-09-08
1.4K0
何时应该重构代码?如何重构代码?
日常工作中,相信大家都见过一些看见就想骂人的代码,那么今天呢,我们就来聊聊何时应该重构代码,以及如何重构代码。文章有点长,但是看完一定会有很多收获哦~
kirito-moe
2021-09-08
1.7K0
第三届数据库大赛 ADB 性能挑战赛赛题总结
之前在分享《海量无序数据寻找第 K 大的数》这篇文章时,就已经提到过我参加了阿里云举办的《第三届数据库大赛创新上云性能挑战赛–高性能分析型查询引擎赛道》,传送门:https://tianchi.aliyun.com/competition/entrance/531895/introduction。截止到 8 月 20 日,终于结束了漫长的赛程。作为阿里云员工的我,按照赛题规定,只能参加初赛,不能参加复赛,出于不影响比赛的目的,终于等到了比赛完全结束,才动笔写下了这篇参赛总结。
kirito-moe
2021-09-08
7680
鱼和熊掌兼得:同时使用 JPA 和 Mybatis
JPA 和 Mybatis 的争论由来已久,还记得在 2 年前我就在 spring4all 社区就两者孰优孰劣的话题发表了观点,我当时是力挺 JPA 的,这当然跟自己对 JPA 熟悉程度有关,但也有深层次的原因,便是 JPA 的设计理念契合了领域驱动设计的思想,可以很好地指导我们设计数据库交互接口。这两年工作中,逐渐接触了一些使用 Mybatis 的项目,也对其有了一定新的认知。都说认知是一个螺旋上升的过程,随着经验的累积,人们会轻易推翻过去,到了两年后的今天,我也有了新的观点。本文不是为了告诉你 JPA 和 Mybatis 到底谁更好,而是尝试求同存异,甚至是在项目中同时使用 JPA 和 Mybatis。什么?要同时使用两个 ORM 框架,有这个必要吗?别急着吐槽我,希望看完本文后,你也可以考虑在某些场合下同时使用这两个框架。
kirito-moe
2020-11-19
2.5K0
聊聊算法在面试中的地位
前段时间,有一位好友找到我,向我打听阿里社招笔试是否看重算法题的考察,我给予了肯定的答复。他表现的有些沮丧,表示自己工程底子很扎实,框架源码也研究地很透彻,唯独算法能力不行,leetcode 上的简单题做起来都有点吃力。以至于面试一些公司时,基本都是前几面和面试官聊工程,相聊甚欢,一到笔试就 GG。鉴于我个人在学生时代有过 ACM 经历,对算法还是相当感冒的,个人算法能力不算出众,也不算弱,最好成绩是省赛金牌,区域赛铜牌(主要还是抱得队友的大腿),后来实在是写不动 C++ 了,中途转了 Java,借这个机会跟大家聊一聊,分享下个人对算法的一些认识。
kirito-moe
2020-11-03
7150
每日一技|巧用 Telnet 调试 Dubbo 服务
想象这样一个场景,线上某个服务突发异常,导致上游服务调用异常,数据处于中间状态。服务恢复之后,我们需要修复这笔数据至正常状态,怎么办?
kirito-moe
2020-02-18
2.9K0
如何判断一个元素在亿级数据中是否存在?
我想大多数想到的都是用 HashMap 来存放数据,因为它的写入查询的效率都比较高。
kirito-moe
2019-11-05
1.5K0
Disruptor源码解析
juc下的队列DisruptorDisruptor是什么Disruptor为什么快Disruptor核心类Sequence(序列)框架类结构关系图Cursored 获取当前序列值Sequenced 序列的申请及发布SequencerAbstractSequencer 管理事件处理者序列和事件发布者发布序列。SingleProducerSequencer 单线程事件发布者。next()申请序列实战单线程生产者MultiProducerSequencer成员变量构造函数next()申请序列publish()事件发布MultiProducerSequencer和SingleProducerSequencer区别RingBufferEventSequencerDataProviderEventSink 这个类提供了各种发布的姿势。RingBufferPad 用于缓存行填充RingBufferFields 这个类的逻辑比较重要,讲解了event在数组中存储位置SequenceBarrier接口 消费者使用ProcessingSequenceBarrier事件处理 EventProcessorBatchEventProcessor event模式单线程处理WorkProcessor work模式多线程处理WorkerPoolwaitStrategy 等待策略实战多线程消费者DSL
kirito-moe
2019-11-05
2K0
Linux 环境写文件如何稳定跑满磁盘 I/O 带宽?
准备 要求 机器配置 测试磁盘 IO 性能 实验一: Buffer IO 写入 实验二: 4K 单次 Direct IO 写入 实验三: mmap 写入 实验四: 改进的 mmap 写入 结论 准备 要求 在 限制内存 的情况下,假定我们每次写入 4k 的数据,如何保证 kill -9 不丢数据的情况下,仍然稳定的跑满磁盘的 IO?因为需要保证 kill -9 不丢数据,所以 fwrite() 就不在我们的考虑范围之内了. 又因为限制内存,所以直观的想法是直接 Direct IO, 但 Direct IO
kirito-moe
2019-10-30
7K0
为你的IDE集成AI,解放双手,我推荐这款神器!
我们平时写代码的时候,多少都会依赖编辑器的代码补全功能,敲几个字母就能补全一个词。可是这么多年过去了,语言升级了很多次,而代码提示却没有升级,还是只能限定在一个词,毫无意义地按照字典表顺序排列,这对于编程来讲,又有什么价值呢?
kirito-moe
2019-08-06
7140
简单的 HTTP 调用,为什么时延这么大?
最近项目测试遇到个奇怪的现象,在测试环境通过 Apache HttpClient 调用后端的 HTTP 服务,平均耗时居然接近 39.2ms。可能你乍一看觉得这不是很正常吗,有什么好奇怪的?其实不然,我再来说下一些基本信息,该后端的 HTTP 服务并没有什么业务逻辑,只是将一段字符串转成大写然后返回,字符串长度也仅只有 100 字符,另外网络 ping 延时只有 1.9ms左右。因此,理论上该调用耗时应该在 2-3ms 左右,但为什么平均耗时 39.2ms 呢?
kirito-moe
2019-07-17
1.8K0
Dubbo Mesh 在闲鱼生产环境中的落地实践
本文作者至简曾在 2018 QCon 上海站以《Service Mesh 的本质、价值和应用探索》为题做了一次分享,其中谈到了 Dubbo Mesh 的整体发展思路是“借力开源、反哺开源”,也讲到了 Service Mesh 在阿里巴巴的发路径将经历以下三大阶段:
kirito-moe
2019-04-30
1.6K0
一文探讨堆外内存的监控与回收
记得那是一个风和日丽的周末,太阳红彤彤,花儿五颜六色,96 年的普哥微信找到我,描述了一个诡异的线上问题:线上程序使用了 NIO FileChannel 的 堆内内存作为缓冲区,读写文件,逻辑可以说相当简单,但根据监控却发现堆外内存飙升,导致了 OutOfMemeory 的异常。
kirito-moe
2019-04-30
1.2K0
一致性哈希负载均衡算法的探讨
一致性哈希算法在很多领域有应用,例如分布式缓存领域的 MemCache,Redis,负载均衡领域的 Nginx,各类 RPC 框架。不同领域场景不同,需要顾及的因素也有所差异,本文主要讨论在负载均衡中一致性哈希算法的设计。
kirito-moe
2019-03-15
2.5K0
Java随机数探秘
一提到 Java 中的随机数,很多人就会想到 Random,当出现生成随机数这样需求时,大多数人都会选择使用 Random 来生成随机数。Random 类是线程安全的,但其内部使用 CAS 来保证线程安全性,在多线程并发的情况下的时候它的表现是存在优化空间的。在 JDK1.7 之后,Java 提供了更好的解决方案 ThreadLocalRandom,接下来,我们一起探讨下这几个随机数生成器的实现到底有何不同。
kirito-moe
2018-09-30
1.6K0
如何存储用户的密码才能算安全?
前段时间将一个集成了 spring-security-oauth2 的旧项目改造了一番,将 springboot 升级成了 springboot 2.0,众所周知 springboot 2.0 依赖的是 spring5,并且许多相关的依赖都发生了较大的改动,与本文相关的改动罗列如下,有兴趣的同学可以参考:Spring Security 5.0 New Features 。其中一个比较有意思的改动---- Spring Security 5.0 重构了密码编码器的实现(Password Encoding,由于大多数 PasswordEncoder 相关的算法是 hash 算法,所以本文将 PasswordEncoder 翻译成‘密码编码器’和并非‘密码加密器’),引起了我兴趣官方称之为
kirito-moe
2018-07-25
1.3K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档