自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码哥字节

公号码哥字节, 技术成长,Java技术栈

  • 博客(204)
  • 资源 (1)
  • 收藏
  • 关注

原创 输入网址按回车,到底发生了什么

详解输入网址点击回车,后台到底发生了什么。透析 HTTP 协议与 TCP 连接之间的千丝万缕的关系。掌握为何是三次握手四次挥手?time_wait 存在的意义是什么?全面图解重点问题,再...

2020-08-31 08:48:48 330

原创 Tomcat 高并发之道原理拆解与性能调优

上帝视角拆解 Tomcat 架构设计,在了解整个组件设计思路之后。我们需要下凡深入了解每个组件的细节实现。从远到近,架构给人以宏观思维,细节展现饱满的美。关注「码哥字节」获取更多硬核,你...

2020-08-17 09:00:00 583 2

原创 Tomcat 架构原理解析到架构设计借鉴

Tomcat 架构原理解析到架构设计借鉴Tomcat 发展这么多年,已经比较成熟稳定。在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又有什么收获呢?静下心来,细细品味经典的开源作品 。提升我们的「内功」,具体来说就是学习大牛们如何设计、架构一个中间件系统,并且让这些经验为我所用。美好的事物往往是整洁而优雅的。但这并不等于简单,而是要将复杂的系统分解成一个个小模块,并且各个模块的职责划分也要清晰

2020-07-06 18:18:49 1044

原创 有哪些 Java 面试题 90% 的公司否会问到?

从面试题作为切入点提升大家的 Java 内功,所谓根基不牢,地动山摇。只有扎实的基础,才是写出写好代码。拒绝知识碎片化码哥在 《Redis 系列》的开篇 Redis 为什么这么快中说过:学习一个技术,通常只接触了零散的技术点,没有在脑海里建立一个完整的知识框架和架构体系,没有系统观。这样会很吃力,而且会出现一看好像自己会,过后就忘记,一脸懵逼。我们需要一个系统观,清晰完整的去学习技术,同时也不能埋...

2024-05-11 08:30:56 964

原创 这些年背过的面试题:Redis 高可用篇

一、Redis 如何实现持久化?Chaya 转行做程序员,去大厂面试被面试官问到:“Redis 如何实现持久化?”Chaya 心想:“好家伙,我学了码哥的 Redis 高手心法,这不要起飞么,是时候展示真正的技术了。”Redis 有两个方式实现了数据持久化,他们分别是 RDB 快照和 AOF(Append Only File)。RDB 内存快照是全量持久化,AOF 做增量持久化。bgsave 指令...

2024-05-07 08:30:38 831

原创 HTTP 协议是怎么来的?最开始是什么样子?又是如何一步步发展 HTTP3

HTTP 协议在我们身边随处可见,只要上网就离不开它。不论是用浏览器还是 App,不论是看新闻、短视频还是听音乐、玩游戏,后面总会有 HTTP 在默默为你服务。Http 协议是怎么来的?最开始是什么样子?又是如何一步步发展到今天,几乎统治了整个互联网世界一起走向 HTTP 的世界,看历史长河中他是如何应运而生,如何适应当今的互联网,它又有什么局限性。这是我的小号,打算发布的内容不至于技术。欢迎大家...

2024-04-30 08:30:47 722

原创 代码质量一塌糊涂,特么离职了,新来的人都不知道从哪里,今天分享高质量命名方法论给你...

合格的程序员不仅仅是让代码跑起来,而是要做到代码整洁,只满足为了能让编译器通过编译,机器能跑就行而写代码的程序会算不上开发者,码农都不算。好的命名能体现出代码的特征,含义或者是用途,让阅读者可以根据名称的含义快速厘清程序的脉络。本篇分享如下代码命名套路来提高我们代码命名。勿模糊,准确达意避免误导做有意义的区分结合上下文简化名称使用可搜索、易读的名称包命名规范类名与方法名规范混乱的代价我相信每个程序...

2024-04-28 08:30:46 300

原创 Redis 架构是如何演进么?为什么?

Redis 现在已经十分流行,互联网几乎所有项目都会用到,在使用 Redis 时,你知道是如何保证稳定和高效的提供服务呢,它的架构演化路程是什么呢?单机版 Redis2010 年,Redis 1.0 版本发布,这个架构非常简单。你的业务系统可以把 Redis 作为缓存系统,从 MySQL 查询数据,接着写入到 Redis 中,之后业务系统再从 Redis 中读取这些数据。就这样想享受 Redis ...

2024-04-23 22:05:51 698

原创 技术水平不佳,远离一线研发多年,却成为领导,这领导怎么CPU下属?

这样的领导是我们最不想遇到的,除非你是嫡系或者你就是这样的领导。每个人对事情的判断是片面的,以下内容请勿对号入座。技术能力不行,依靠权利瞎指挥我们都希望在工作中有一个让人信服,能解决问题,互相成长一起吃肉的管理者。或者说自己也在学习如何成为一个能带团队一线「打仗」又能给团队成员提供有意义的指点和帮助的让人信服的领导者。可怕的是,他们能力不足,但是占据着公司的管理岗。依仗资历老,入职时间久,论资排辈...

2024-04-22 08:30:40 561

原创 谷雨,春天的最后一次回眸

人生并不像火车要通过每个站似的经过每一个生活阶段。今日谷雨,这不是技术文,是码哥的碎碎念谷雨猕漫着芭蕉的味道动了心成了情白素贞的姻以伞结缘可天若无雨地上无伞断桥未断过客,能留下一段传奇吗?或许难难倘若在江城边不是西湖畔你还愿这情节假设成立吗?没有油纸伞没有躲雨的屋檐我背影在前你是否,淋雨陪下去仅仅为最初的遇见如果土壤可以种下万物你会种下什么?我会种下那些美好的回忆这样当我埋入土壤后可以和它们过下辈...

2024-04-19 23:15:10 132

原创 有了 ReentrantReadWriteLock 读写锁,为何还要引入StampedLock?

有粉丝去面试,跟码哥分享了其中一题面试问题「StampedLock 了解么?有了 ReentrantReadWriteLock 读写锁,为何还要引入StampedLock?」。读者一开始是懵逼的,这个是什么锁?为嘛之前没听过,我只记得基于 AQS 实现的可重入锁、读写锁以及synchronized 锁。今天,码哥从多个角度带你完全攻克这个知识点,让面试官眼前一亮。切入正文......概览在 JDK...

2024-04-15 08:30:54 974

原创 阿里一面:如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆?...

这次应该是互联网及软件行业的第三次寒潮,大家在寒潮中一定要继续保持学习,寒潮挺过去以后还是会迎来新的发展机遇。有粉丝去阿里面试,跟码哥分享了其中一题面试问题「如何将重复性比较高的 String 类型的地址信息从 20GB 降到几百兆?」。今天,码哥从多个角度带你完全攻克这个知识点,让面试官眼前一亮。切入正文......莫慌,今天给大家见识一下不一样的 String,从根上拿捏直达 G 点。并且码哥...

2024-04-12 22:51:38 775

原创 腾讯二面:在浏览器地址栏输入 URL 并按下回车键,背后发生了什么?

这次应该是互联网及软件行业的第三次寒潮,大家在寒潮中一定要继续保持学习,寒潮挺过去以后还是会迎来新的发展机遇。有粉丝去腾讯面试,跟码哥分享了其中一题面试问题「在浏览器地址栏输入 URL 并按下回车键,背后发生了什么?」。今天,码哥从多个角度带你完全攻克这个知识点,让面试官眼前一亮。切入正文......输入网址点击回车,后台到底发生了什么。透析 HTTP 协议与 TCP 连接之间的千丝万缕的关系。掌...

2024-04-11 08:30:38 403

原创 被劝退后三月中旬到现在无 offer,问我如何设计一个高性能MySQL 主键,实现海量数据下的高效查询...

在脉脉上有一个热度很高的帖子「硕 1.5,被劝退后三月中旬到现在无 offer,不知道怎么破」。有网友说:「如果能约到面试,说明简历不差,但是 50 场都没有 offer,说明你的面试谈判技巧出现了问题,应该总结一下,及时调整,心态不要崩」。由这个话题为引子,码哥接下来给你分享一个知识点:「如何设计一个高性能MySQL 主键,实现海量数据下的高效查询」。为什么需要主键三个点。数据记录需具有唯一性(...

2024-04-08 08:30:11 966

原创 30+,从互联网降薪来银行,钱少事多绩效垫底,简直是技术自杀

该程序员从互联网降薪来银行,本以为可以凭借自己的技术能力和优势可以在银行 IT 岗位混的风生水起。没想到的是,这简直就是从“代码海”跳进了“政治江湖”,从每天跟 bug 对话,到现在得跟各种“宫斗剧”角色打交道。我这不是自降身价,简直是“技术自杀”,哈哈!以前在互联网,虽然加班多,但至少还能在技术上刷刷存在感,钱也给的多。现在好了,每天就像是在玩一个“上班族版”的《权力的游戏》,谁都想坐上那把“铁...

2024-04-07 08:30:37 515

原创 为什么有 HTTPS?因为 HTTP 不安全!HTTPS 如何实现安全通信?

为什么有 HTTPS?因为 HTTP 不安全! 现在的互联网已经不再是 “田园时代”,“黑暗森林” 已经到来。上网的记录会被轻易截获,网站是否真实也无法验证,黑客可以伪装成银行网站,盗取真实姓名、密码、银行卡等敏感信息,威胁人身安全和财产安全。上网的时候必须步步为营、处处小心,否则就会被不知道埋伏在哪里的黑客所“猎杀”。HTTPS 如何实现安全通信?如何构建出固若金汤的网络城堡?主要涉及的知识点如...

2024-04-03 08:31:12 840

原创 工作多年,如何从 CRUD Boy 转型为分布式系统架构师?解锁分布式系统的艺术:从零开始理解分布式系统架构与设计原理!...

编程是一门艺术,它的魅力在于创造。65 哥已经工作5年了,一直做着简单重复的编程工作,活活熬成了一个只会 CRUD 的打工 boy。65 哥:总是听大佬讲分布式分布式,什么才是分布式系统呢?分布式系统是一个硬件或软件系统分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。在一个分布式系统中,一组独立的计算机展现给用户的是一个统一的整体,就好像是一个系统似的。系统拥有多种通用的物...

2024-03-25 08:30:15 1128 1

原创 Kafka Consumer 消费消息和 Rebalance 机制

Kafka ConsumerKafka 有消费组的概念,每个消费者只能消费所分配到的分区的消息,每一个分区只能被一个消费组中的一个消费者所消费,所以同一个消费组中消费者的数量如果超过了分区的数量,将会出现有些消费者分配不到消费的分区。消费组与消费者关系如下图所示:consumer groupKafka Consumer Client 消费消息通常包含以下步骤:配置客户端,创建消费者订阅主题拉去消息...

2024-03-20 08:30:08 462

原创 Kafka Producer 发送消息至 Broker 原理和高性能必备参数设置

点击上方蓝字关注我 Producer 发送消息步骤Kafka producer 的正常生产逻辑包含以下几个步骤:配置生产者客户端参数常见生产者实例。构建待发送的消息。发送消息。关闭生产者实例。Producer 发送消息的过程如下图所示,需要经过拦截器,序列化器和分区器,最终由累加器批量发送至 Broker。producerKafka Producer 生产必备参数bootstr...

2024-03-15 21:06:20 717

原创 kafka 三高架构设计剖析

Kafka 核心问题简单讲下 Kafka 的架构?Kafka 是推模式还是拉模式,推拉的区别是什么?Kafka 如何广播消息?Kafka 的消息是否是有序的?Kafka 是否支持读写分离?Kafka 如何保证数据高可用?Kafka 中 zookeeper 的作用?是否支持事务?分区数是否可以减少?Kafka 架构中的一般概念:架构Producer:生产者,也就是发送消息的一方。生产者负责创建消息,...

2024-03-14 08:30:37 1159

原创 爱意随风起,风止意难平

情不知所起,一往而情深人的这一生,有很多的情不自禁也有很多的不得已而为之缘分会让我们相遇,爱了却不能相守短暂的走完这一程,却不能走完这一生如果你爱上一个不能够永远在一起的人请不要伤害她,不哭也不要跟她闹不管有多么的不舍,多么的痛苦都不要把这份爱转化成灾难不要情绪一上来的时候,就忘了对方所有的好满身刺的扎向对方只顾着说狠话却忘了你们是如何一步一步走到现在的爱情是不讲理的虽然她可能没法给你一个满意的结...

2024-03-11 21:14:42 403

原创 进字节了,Kafka 为什么这么快?

『码哥』的 Redis 系列文章有一篇讲透了 Redis 的性能优化 ——《Redis 核心篇:唯快不破的秘密》。深入地从 IO、线程、数据结构、编码等方面剖析了 Redis “快”的内部秘密。65 哥深受启发,在学习 Kafka 的过程中,发现 Kafka 也是一个性能十分优秀的中间件,遂要求『码哥』讲一讲 Kafka 性能优化方面的知识,所以『码哥』决定将这篇性能方面的博文作为 Kafka 系...

2024-02-26 21:09:38 820

原创 Nginx 核心架构设计和原理

Nginx 核心架构设计和原理Chaya:「码哥元宵节快乐,在我散落的流年里,有你陪伴,我也不曾孤单」。码哥:“祝大家元宵节快乐,升职加薪。”Nginx 是一个免费的、开源的、高性能 Http 服务器和反向代理。Nginx 的架构设计是为了提供高性能、稳定性和可扩展性。以下是 Nginx 的主要架构组件和工作原理:Master 进程:Nginx 的运行始于一个 master 进程,它负责管理所有的...

2024-02-24 20:21:10 888

原创 让人厌恶的管理者是怎样练成的

让人厌恶的管理者是怎样练成的★每个人对事情的判断是片面的,以下内容请勿对号入座。我们都希望在工作中有一个让人信服,能解决问题,互相成长一起吃肉的管理者。或者说自己也在学习如何成为一个能带团队一线「打仗」又能给团队成员提供有意义的指点和帮助的让人信服的领导者。可怕的是,那些想成为卓越的领导者,但又不肯在实践中去思考问题背后的问题是什么。不去探索创新的路径,却在职场中企图找一个捷径,等待别人教你一个现...

2024-02-19 11:11:22 888

原创 IT 经理把项目带崩是因为这几点没做好

分享一个来自码哥工作中遇到的时间紧任务重,对系统不熟悉,没有产品文档,目标就是将原有系统改造成客户本地部署运行的多重困难跨团队协作项目管理差点带崩的经历。通过该经历重点在于给大家分享如何避免项目搞砸,以及一个项目初期、中期、收尾阶段需要做的工作重点和注意事项,如何管理项目规避风险。项目背景项目的目标是将公司 saas 团队的供应链金融系统移植到客户独立部署,主要有以下几个风险和难点。团队内的人包括...

2024-02-18 08:39:30 821

原创 什么是项目管理

什是项目管理项目管理是为实现一个独特的产品或服务而进行的一次性努力。主要过程它主要涉及五个关键过程:启动、计划、执行/控制、收尾。在整个项目运转中,从业务立项到产品规划、需求分析、任务分配以及最终上线,每个阶段都需要仔细控制和推进。项目初期一个项目的发起,经过很多环节才会到达开发这边,在项目启动初期, PM 需要了解这个项目。项目计划阶段项目经理与团队合作制定详细的项目计划。这包括制定工作分解结构...

2024-02-16 13:14:21 332

原创 ChatGPT 生成的新年朋友圈文案让我惊掉下巴

2024 年新年即将到来,携女友以撒狗粮。久逢知己千杯少、在家团聚亲情深,出门旅游好心情……拍了许多照片苦恼朋友圈文案不知道写啥。ChatGPT 担任你朋友圈文案大佬,让你各种文案风格自由切换,十八般武艺装逼满分。撒狗粮携女友撒狗粮那必须有对象相伴,再配合美食和美景。请忽略之前的对话,你是我的微信朋友圈文案助手,我需要你帮我写微信朋友圈文案,要求:<表达我快乐的心情> 图片匹配:&...

2024-02-06 10:50:07 390

原创 Team Leader 究竟要不要写代码?

在互联网行业,程序员常常面临一个重要的抉择:是继续深耕技术,成为一名架构师,还是转型为研发管理者?这个问题涉及到个人职业规划、兴趣爱好以及对未来的期许。今天,码哥跟你将探讨这个问题,并对程序员们提供一些建议,希望能帮助大家更好地理解自己的职业发展路径。不少人的认知里,现在 996 疯狂写代码,好像是为了日后可以不必再写代码。不管是架构师、资深专家,还是研发部门管理者,他们的工作目标主要依据是组内程...

2024-02-05 08:39:19 809

原创 字节二面:Spring Boot Redis 可重入分布式锁实现原理?

我是码哥,可以叫我靓仔。书接上回,码哥上一篇《纠正误区:这才是 SpringBoot Redis 分布式锁的正确实现方式》分享了分布式锁如何从错误到残缺,再到青铜版本的高性能 Redis 分布式锁代码实战,让你一飞冲天。这是我们最常用的分布式锁方案,今天码哥给你来一个进阶。Chaya:「码哥,上次的分布式锁版本虽然好,但是不支持可重入获取锁,还差一点点意思。」Chaya 别急,今日码哥给你带来一个...

2024-01-30 08:39:44 1238

原创 纠正误区:这才是 SpringBoot Redis 分布式锁的正确实现方式

我是码哥,可以叫我靓仔。在说分布式锁之前,我们先说下为什么需要分布式锁。在单机部署的时候,我们可以使用 Java 中提供的 JUC 锁机制避免多线程同时操作一个共享变量产生的安全问题。JUC 锁机制只能保证同一个 JVM 进程中的同一时刻只有一个线程操作共享资源。一个应用部署多个节点,多个进程如果要修改同一个共享资源,为了避免操作乱序导致的并发安全问题,这个时候就需要引入分布式锁,分布式锁就是用来...

2024-01-24 08:50:15 845

原创 写好一篇文章,有哪些好的工具和编排技巧?

我们关注一个公众号,必然是从中收获了一些对自己有价值的东西,而读者的关注和分享点赞又会提高曝光量鼓励作者继续高质量输出。所以,当大家看到一些优质的文章,随手点“在看”对作者而言就是最大的鼓励。直到现在,我的公众号已经输出了136 篇原创文章。如果大家顺着时间线去翻阅我的历史文章,也能体会到随着时间的推移,文章排版和配图越来越让人舒服,风格逐渐成型。语言幽默并用“脏脏的例子”来说明硬核技术知识点,力...

2024-01-21 11:52:55 857

原创 Tomcat 架构设计 25 年后依旧能打!我学到了什么?

点击上方蓝字关注我 你好,我是码哥,可以叫我靓仔。是一个拥抱硬核技术和对象,面向人民币编程的男人。友情提示:阅读本文前需要对 Tomcat 有一个全局架构认识,可先翻阅《Tomcat 架构深度解析》。Tomcat 是 Sun 公司在 1998 年开发的。当时开发 Tomcat 的目标是成为 Sun 公司的 Java Servlet 和 JSP 规范的参考实现。如今已经成为业务开发首选的 W...

2023-12-30 20:58:58 902 1

原创 学透 Redis HyperLogLog,看这篇就够了

我是码哥,拥抱硬核技术和对象,面向人民币编程。公众号设置「星标」,才能收到我的文章推送哦。在移动互联网的业务场景中,数据量很大,系统需要保存这样的信息:一个 key 关联了一个数据集合,同时对这个数据集合做统计做一个报表给运营人员看。比如。统计一个 APP 的日活、月活数。统计一个页面的每天被多少个不同账户访问量(Unique Visitor,UV)。统计用户每天搜索不同词条的个数。统计注册 IP...

2023-09-25 08:30:47 262

原创 Redis Stream 数据结构实现原理真的很强

你好,我是码哥,一个拥抱硬核技术和对象,面向人民币编程的男人,设置星标不迷路。我在【Redis 使用 List 实现消息队列的利与弊】说过使用 List 实现消息队列有很多局限性。没有 ACK 机制。没有类似 Kafka 的 ConsumerGroup 消费组概念。消息堆积。List 是线性结构,查询指定数据需要遍历整个列表。1. 是什么Stream 是 Redis 5.0 版本专门为消息队列设计...

2023-09-13 08:10:50 147

原创 七夕,我对你说的深情告白

程序猿不解风情?!你是否期待一份特别的爱情?!下文的“你”代指你心中的 ta,愿天下有情人终成眷属。亲爱的你,写下这封信,仿佛我们彼此相见,心与心交融。希望当你阅读这段文字时,就像我在你身边一样。在这个浪漫的七夕夜,我想借着星河的灯光,把心中最深情的告白送给你。难道感情需要华丽的辞藻来衬托吗?就算我词不达意,言不由衷,但这些拙劣的句子同样承载着我对你深切的情感。是否需要华丽的言辞来点缀?我支吾其词...

2023-08-22 08:30:34 101

原创 码哥字节 124 篇优秀文章精选

点击上方“码哥字节”,选择“设为星标” ,优质资源及时送达2019 年码哥字节公众号开始营业。四年多来,码哥分享了很多的技术干货内容,如 Kafka、MySQL、魔幻世界十二时辰、分布式数据库、架构设计和编程技巧、Redis、Java 并发编程、设计模式、数据结构与算法、JVM、面试系列等。四年多来,时不时赠送技术书籍给大家。四年多来,从 0 个粉丝关注直到现在的 X 万。至今为止我一共写了 12...

2023-07-20 09:00:17 104

原创 Redis Sorted Set 底层实现原理深度解读与排行榜实战

我是码哥,可以叫我靓仔。今天给大家简单聊聊 Redis Sorted Set 数据类型底层的实现原理和游戏排行榜实战。特别简单,一点也不深入,也就 7 张图,粉丝可放心食用,哈哈哈哈哈~~~~。1. 是什么Sorted Sets 与 Sets 类似,是一种集合类型,集合中不会出现重复的数据(member)。区别在于 Sorted Sets 元素由两部分组成,分别是 member 和 score。m...

2023-07-17 08:30:36 557

原创 深度图解 Redis Hash(散列表)实现原理

1. 是什么Redis Hash(散列表)是一种 field-value pairs(键值对)集合类型,类似于 Python 中的字典、Java 中的 HashMap。一个 field 对应一个 value,你可以通过 field 在 O(1) 时间复杂度查 field 找关联的 field,也可以通过 field 来更新或者删除这个键值对。Redis 的散列表 dict 由数组 + 链表构成,数...

2023-05-29 08:30:23 770

原创 Redis Set 用了 2 种数据结构来存储,到现在才知道

Sets 无序集合,他的功能就好像你熟悉的 Java 中的 HashSet 一样。集合是通过散列表实现的,所以添加、删除、查找元素的时间复杂度是 O(1)。1. 是什么Sets 是 String 类型的无序集合,集合中的元素是唯一的,集合中不会出现重复的数据。Java 的 HashSet 底层是用 HashMap 实现,Sets 的底层数据结构也是用 Hashtable(散列表)实现,散列表的 k...

2023-04-27 08:39:17 740

原创 Redis List 底层三种数据结构原理剖析

1. Redis List 是什么作为 Java 开发者的你,看到这个词并不陌生。在 Java 开发中几乎每天都会使用这个数据结构。Redis 的 List 与 Java 中的 LinkedList 类似,是一种线性的有序结构,可以按照元素被推入列表中的顺序来存储元素,能满足先进先出的需求,这些元素既可以是文字数据,又可以是二进制数据。你可以把他当做队列、栈来使用。2. 修炼心法我叫 Redis,...

2023-03-06 08:39:52 403

freemaker中文帮助文档

中文freemaker帮助文档,规范值得学习

2015-07-17

空空如也

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

TA关注的人

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