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

原创 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(下)

上篇文章,我们介绍了ZooKeeper集群保证数据一致性和Zookeeper集群Leader选举,这边文章我们接着介绍ZAB协议和Paxos算法

2023-06-05 13:58:31 205

原创 一文通吃:从 ZooKeeper 一致性,Leader选举讲到 ZAB 协议与 PAXOS 算法(上)

本文将从ZooKeeper集群如何保证一致性,讲到zookeeper保证数据一致性的协议,然后展开讲Zookeeper集群Leader选举,包括集群三种节点的类型,ZAB协议中节点的四种状态,以及两种情况下Leader选举的过程。然后会详细展开讲解ZAB协议,包括ZAB协议中ZXID的结构,ZAB协议的两个重点,崩溃恢复模式和消息广播模式。然后会通过一个例子来说明ZAB协议中Leader的单点问题,进而引出Paxos算法。文章会分为上下两个篇章,本文为第一部分。

2023-06-02 15:14:23 427

原创 程序员必修必炼的设计模式之工厂模式

工厂模式是平时开发过程中最常见的设计模式,工厂模式解决类的实例化问题。本文通过音乐推荐器的例子,实践了如何找到程序中违反设计原则的地方,并通过工厂模式来解决这些问题。

2023-06-01 14:26:17 564

原创 把VS Code打造成后端开发的宇宙IDE,也挺爽

VS Code 不仅仅是一个代码编辑器,它靠强大的生态,可以满足你各种各样的需求。不论什么语言,只要装上插件就能有基础IDE的功能。不论什么水平,只要简单操作,就能完全搭配好适合自己的开发模式。如果你还不知道怎么用,得赶紧往下看看学起来了!

2023-05-31 14:37:39 686

原创 Java高并发之魂:synchronized 关键字

今天我们要用最简洁,清晰的内容对高并发之魂 synchronized 关键字的使用进行讲解,帮助你更快搞定synchronized。

2023-05-30 13:58:09 236

原创 探讨生产环境下缓存雪崩的几种场景及解决方案

缓存我们经常使用,但是有时候我们却会忽略缓存中的一些问题。我们将从生产环境的应用的角度,去考虑需要注意的一些异常情况,特别的是在高并发的场景下,如何让我们的缓存在提供高性能支持的同时,去保证数据的准确性,还有系统的稳定性。

2023-05-29 14:42:45 376

原创 用Java 的锁机制实现多线程售票案例

本文内容主要是使用 Java 的锁机制对多线程售票案例进行实现。售票案例多数情况下主要关注多线程如何安全的减少库存,也就是剩余的票数,当票数为 0 时,停止减少库存。本文内容除了关注车票库存的减少,还会涉及到退票窗口,能够更加贴切的模拟真实的场景。

2023-05-26 14:14:07 449 1

原创 利用Django REST framework构建RESTful Web API

这一次,我们以师生管理系统为例,带领大家搭建一套 framework Web API。“工欲善其事,必先利其器”,我们选用当下最为流行的 Django REST framework 为工具,快速实现这套API。

2023-05-25 14:44:32 410

原创 Go 开发实践:手把手教你搭建一个登录功能

如果你最近刚学习Go 语言基础特性,对 Go 语言也有了一定掌握和理解。那么接下来小慕就带你学习如何使用 Go 语言如何搭建一个提供登陆功能的 web 服务。

2023-05-24 14:40:35 722 1

原创 redis集群的架构、问题,附脑洞

Redis 是一种开源(BSD 许可)、数据结构存储在内存中的系统,用作数据库、缓存和消息队列。Redis 提供了诸如字符串、散列、列表、集合、带范围查询的排序集合、位图、超级日志、地理空间索引和流等数据结构。Redis 内置复制、Lua 脚本、LRU 驱逐、事务和不同级别的磁盘持久化,并通过 Redis Sentinel 和 Redis Cluster 自动分区提供高可用性。

2023-05-23 14:13:54 284

原创 Google I/O 2023 推出Flutter 3.10 快来看看都有哪些变化

今年的Google I/O满满的AI与狠活,而且还推出Flutter 3.10,接下来就让我带你一起来看看Flutter 3.10都有哪些变化吧!

2023-05-22 14:45:46 721

原创 学会ECharts 数据缩放组件

在一个数据图表中,可能由于数据所表示的时间范围较大,从而导致整个图表相当的长,当这些数据都不得不展示的时候,对我们分析某一段时间内数据的变化造成的极大的影响,所以当我们遇到这种情况的时候就需要用到 ECharts 的数据缩放组件了。

2023-05-19 14:29:59 1110

原创 大厂面试官带你Get求职面试核心技巧

一般来说,面试分为技术面试、负责人面试、HR面试,时长在1小时~1个半小时(所有的环节时间累加),目标如何在最短的时间,给面试官留下足够好的印象,得到比较高的认可,是面试的技术。所以,面试过程中,如何进行表述,把自己学习到的知识能展现出来是很重要的。

2023-05-19 11:41:03 290

原创 Docker-Compose 入门到实战详尽笔记

使用过 Docker 的小伙伴们都知道,启动 Docker 时一般会附带很多的启动参数,如 -v 指定挂载目录,-p 指定端口等等。除此之外,很多时候我们的业务系统中一般都会有几个 Docker 组合运行,容器间网络通信,容器的启动顺序等有明确的要求。基于这些问题,Docker-Compose 技术诞生。本文将从基础到实战举例,共计7个小节,前面5小节讲解基础,后面2个小节则时以实战为主,详细讲解 Docker-Compose 的使用。

2023-05-18 14:08:53 377

原创 你了解DDD领域驱动设计吗

大家都知道,微服务划分的一个重要理论基础就是领域驱动设计。而DDD全称就是“领域驱动设计”,它是一种软件开发中用到的建模设计思想,软件的建模和设计类似建筑领域中建筑师的工作。建筑师把建筑的架构设计出来,首先是要满足和优化用户的需求,用户要住着舒适,安全;同样,软件的业务架构师也需要设计软件的业务架构,让软件能够非常好地满足业务需求,推动业务发展,软件的建模和设计就是业务架构中的重要工作内容。

2023-05-17 14:05:02 98

原创 为什么Kubernetes已经成为程序员必备技能

如果你是开发人员,不管是Java、Python、Golang或其他语言,可以不精通K8S,但是至少需要掌握K8S的编排、基本概念。如果能更加深入的了解K8S工作原理,实打实的用K8S为企业解决所面临服务部署问题,我相信一定会让你在企业傲视群雄。

2023-05-16 14:25:55 640

原创 前端有必要掌握TypeScript吗,答案十分肯定

近几年,前端技术发展越来越迅速,其中TypeScript更是受到了越来越多的开发者的青睐,TypeScript的火爆程度大有成为下一代前端开发语言的趋势,越来越多的轮子将用TypeScript开发和重构,我们如果想造轮子,也应该使用TypeScript这把利器。今天我们通过一篇文章快速了解下TypeScript。

2023-05-15 13:42:05 332

原创 内卷时代,大厂产品经理仅用3步破局

在当下互联网环境下,产品经理究竟要如何破局?360资深产品经理,将从互联网行业现状、发展趋势,包括摆在我们面前的困难,做深刻学析,帮助大家做好准备,积极应对。 同时分享产品经理的破局应对之道,希望对面临转型的程序员有所帮助。

2023-05-12 14:02:06 572

原创 【Java 数据结构及算法实战】HJ1 字符串最后一个单词的长度

本文将使用3个案例,及2种解决讲清楚【Java 数据结构及算法实战】中HJ1 字符串最后一个单词的长度。欢迎大家阅读。

2023-05-11 14:16:53 414

原创 双越: 1-1评审了20份前端简历,其实每个人都有亮点

前段时间,我推出了 1-1 私聊沟通服务。想通过我个人这么多年的工作、面试、讲课的经验和教训,来帮助那些有技术干货却写不出来的人,帮助他们更好的表达自己。顺便安抚一下他们焦虑浮躁的心情。

2023-05-10 14:04:40 465 1

原创 先人一步了解Go 1.21版本新特性前瞻

Go 1.21版本​​​正在如火如荼地开发当中,按照Go核心团队的一年两次的发布节奏来算,Go 1.21版本预计将在2023年8月发布(Go 1.20版本是在2023年2月份发布的)。本文将和大家一起看看Go 1.21都会带来哪些新特性。不过由于目前为时尚早,下面列出的有些变化最终不一定能进入到Go 1.21的最终版本中,所以切记一切变更要以最终Go 1.21版本发布时为准。

2023-05-09 14:01:51 1289

原创 [ MySQL高频面试]VARCHAR(50)中的50到底是能存50个字还是50个字节?

了解 MySQL 的数据类型是开发人员在使用 MySQL 数据库的时候,必备的基础技能之一。也正因为此,这部分知识也是面试官面试的时候屡屡提及的高频问题,所以尽量不要在这个地方栽跟头。今天我们就一起探讨下MySQL面试中的高频问题:在数据建模设计时使用非常频繁的字符串类型 – VARCHAR。

2023-05-08 14:00:34 807

原创 Hystrix 简单聊聊断路器/熔断器

熔断:当一个服务发生故障异常,这个时候熔断当前整个服务,把这个服务变的不可被访问,而不是客户端请求这个服务的时候一直处于超时。降级:当服务熔断后,我们需要提供新的一个兜底接口返回响应数据,如此一来,客户端能够友好的接受到响应消息。

2023-05-06 16:27:20 623

原创 Java 面试必问的线程池原理总结

主攻Java大型分布式系统架构,多线程、高并发相关原理及中间件应用的大厂技术专家,用一文简单清晰的为你讲透Java线程池原理,提升你的技术底蘊。

2023-05-05 13:56:41 1264

原创 【干货】一文说透分布式一致性协议(下)

本篇是分布式一致性协议综述的下篇,建议上下两篇结合一起阅读。搞懂分布式一致性协议。一起成为技术大牛吧。

2023-05-04 13:57:25 459

原创 【干货分享】一文说透分布式一致性协议(上)

在常见的分布式系统中,总会发生诸如机器宕机或网络异常(包括消息的延迟、丢失、重复、乱序,还有网络分区)等情况。一致性算法需要解决的问题就是如何在一个可能发生上述异常的分布式系统中,快速且正确地在集群内部对某个数据的值达成一致,并且保证不论发生以上任何异常,都不会破坏整个系统的一致性。

2023-04-28 13:57:24 474

原创 如何进行微服务的技术选型?

我们都知道,现在在微服务市场比较流行的有 2 大框架,一个是 Ali 的 Dubbo,一个是 SpringCloud。两者孰优孰劣一直是一个比较令人头疼的问题。接下来我们通过一篇文章探讨下如何进行微服务的技术选型,给企业技术团队添砖加瓦。

2023-04-27 14:44:27 795

原创 ChatGPT真能取代程序员吗,看看它怎么解释SQL注入漏洞的问题

有同学提问了一个关于网上一个关于SQL注入漏洞讲解案例的问题,这个问题并不是很容易解决,所以我们询问了ChatGPT,看看ChatGPT是如何理解的,也浅探下ChatGPT的安全能力

2023-04-26 15:21:06 2364

原创 快速入门量化交易

近来“量化交易”这个词听得越来越频繁,多数人对量化交易的第一印象是“高大上的技术”、“可以躺着赚钱的工具”……可是,你是否真正思考过量化交易到底是什么,能帮助我们做些什么?笔者认为在开启量化交易系统的开发前,有必要先理解“量化交易”的理念,清楚“量化交易”能带给我们的是否是自己想要的。本文就从本质、发展、优势、过程等多个维度来剖析量化交易。

2023-04-25 14:19:43 722

原创 程序员应该具备哪些良好的编程习惯?

为什么企业在招聘时要求程序员有良好的编程习惯?编程是个充满创意的工作,但同时也是细节决定成败的工作,你真正工作中可能80%的时间都在处理一些琐碎的问题。所以良好的编程习惯可以避免问题的频繁出现,会让你的职业生涯更轻松,也能更好的迈向成功。

2023-04-24 16:09:21 1122

原创 C语言中的灵魂-指针

C 语言的指针常常被人们认为是 C 语言中的灵魂所在,可以完成很多高难度的操作。但是更多的人感觉 C 语言的指针的存在如同噩梦一般,因为稍不注意,就会引起灾难性的后果。不管你是不是喜欢 C 语言中的指针,我们都要学习这种看起来很神奇的东西。

2023-04-23 14:13:38 540

原创 C语言项目案例-学生管理系统

0基础学员在经过C语言基础语法的学习后,需要通过一些实战案例来学习如何将C语言应用到实际工作中,今天我们通过一个学生管理系统案例的开发来提升实际开发能力。

2023-04-21 14:32:34 763 3

原创 【对话ChatGPT】如何看待java行业内卷的问题?

当今大环境,编程行业火热,而java行业更是首当其冲,但是为此,java行业的人也面临一个问题:从事java行业的人如此之多,会不会被卷死?经过我与ChatGPT的一场深入讨论,相信你也有了自己的答案

2023-04-20 14:51:56 852

原创 一定要会的算法复杂度分析

我们知道面对同一道问题时可能有多种解决方案。自然地,我们会将多种方法进行比较。那么怎么样才能知道是A方法好,还是B方法好?这时候我们就需要对算法的复杂度进行分析。这次我们介绍两个概念:时间复杂度与空间复杂度。并且用Two Sum作为案例,用时间空间复杂度分析Two Sum的三种解法。

2023-04-19 14:20:09 499

原创 程序员大火的副业,该怎么干?

说到副业,大多数的人非常功利心,觉得“副业”就是搞钱。谈“副业”就要聊有什么渠道、通过什么方式能赚钱,而且越“快”越好,越多越好。说点实在的,干副业干得好干成主业的人,都是非常自律而又方向非常明确的人,树立正确的价值观,对于走好副业道路非常重要。

2023-04-18 14:19:05 182

原创 平凡的Python为什么能一跃成为世界排名第一的语言

本文将结合个人经历为各位同学客观的分析是否有学习Python的必要、Python适合谁学、为什么要学,希望能够给看到此文章的同学一点建议,树立学习目标,让学习有结果。读完后,相信你一定能够有所收获。

2023-04-17 14:34:41 19040 19

原创 大前端突围之路:从RN跨平台到大前端全栈统一

大前端当下内卷愈演愈烈,各种技术风起云涌,无数小伙伴感慨「别学了,跟不上了!」。在我们身边也经常会看到各种焦虑,不管是做移动端开发的,还是做前端开发的,都在卷与被卷的过程中,而这中卷似乎进入到一种畸形的状态,就是比谁会的技术多。在招聘中经常会看到在简历专业技能一栏写满一排,从安卓到IOS,从前端到后段。但是真的问起来,都是浅尝辄止。所以我们不禁要问:真的需要一个人会那么多技术吗?

2023-04-14 14:15:01 494

原创 2023年就业卷,卷,卷!前端面试怎么准备?

大多数开发者应该都经历过跳槽和面试,这也是我们工作生活中必须要经历的一部分,那么在每次面试中你是否发挥到了真实的水平,是否留下过很多遗憾,很多次因为自己的心态而没有发挥到最佳状态,那么这次分享就和大家讲讲怎样准备异常尽量完美的前端面试,怎样发挥自己的全部实力。

2023-04-13 17:24:34 554

原创 Go是一门面向对象编程语言吗

这些年关于Go在这两年开始飞起的“预言”也正在逐步成为现实_,大家学习Go的热情也在快速提升。很多读者都是第一次接触Go,你们中的很多是来自像Java, Ruby这样的OO(面向对象)语言阵营的,很多童鞋学习Go之后的第一个问题便是:Go是一门OO语言吗?在这篇博文中,我们就来探讨一下。

2023-04-12 15:22:43 784

原创 抢鲜发布:Flutter 3.7更新详解

从新版本开始,你可以在 Flutter 应用的任意位置创建自定义的上下文菜单,也可以自定义内置的上下文菜单。举例来说,你可以在用户选中邮件地址时,为文本框默认的选择菜单添加「发送邮件」的按钮 (代码地址参数也已经添加到现有包含上下文菜单的 widget 中。你可以在中返回任何你想返回的 widget,也包括平台自适应的上下文菜单。这一新特性也可以用于文本选择以外的场景。例如,你可以为一个Imagewidget 的右键和长按操作添加「保存」按钮 (代码地址你也可以使用。

2023-04-11 14:34:41 720

空空如也

空空如也

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

TA关注的人

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