背景 最近有个业务场景需要服务端(简称S)与客户端(简称C)设计一套基于UDP的通信协议--要求尽可能快的前提下可容忍一定丢包率,得以比较深入地学习和了解UDP通信和实践,在开发调试期间先后碰到了C端UDP发包无响应、响应Host Unreachable、响应Port Unreachable、再次C
背景 最近接触docker的网络配置方式,发现其默认会创建一个docker0的Linux Bridge,宿主机上运行的容器可以通过连接该birdge实现与外网的通信,根据bridge这个命名很自然的认为这就是一个传统意义上的硬件网桥的软件实现,然而进一步探究后发现并非如此,Linux Bridge其
## 背景 最近一组业务redis数据不断增长需要扩容内存,而扩容内存则需要重启云主机,在按计划扩容升级执行主从切换时意外发生了数据丢失与master进入只读状态的故障,这里记录分享一下。 ## 业务redis高可用架构 该组业务redis使用的是一主一从,通过sentinel集群实现故障时的自动主
## 背景 最近有一个业务场景需要用Python自行实现一个简单的LRU cache,不可避免的接触到了弱引用这一概念,这里记录一下。 ## 强引用 Python内存回收由垃圾回收器自动管理,当一个对象的引用计数归0时,其内存就可能被回收掉,而引用计数器的数值其实就是代表有多少个强引用指向该对象,我
# 背景 最近,负责基础设施的同事,要对一批测试环境机器进行回收,回收就涉及到应用迁移,问题是整个过程一团乱。比如服务器A上一堆应用要调用服务器B上一堆服务,结果服务器B被回收了,然后服务器A上一堆应用报错。 今天就是负责查一个问题,app上一个头像上传的接口,之前都好好的,不知道怎么就不能访问了,
There are a thousand Hamlets in a thousand people's eyes. 威廉·莎士比亚 免责声明:以下充满个人观点,辩证学习 React 目前开发以函数组件为主,辅以 hooks 实现大部分的页面逻辑。目前数栈的 react 版本是 16.13.1,该版本
简介 最近发现很多小伙伴还不知道如何在lambda表达式中优雅的处理checked exception,所以今天就重点和大家来探讨一下这个问题。 lambda表达式本身是为了方便程序员书写方便的工具,使用lambda表达式可以让我们的代码更加简洁。 可能大多数小伙伴在使用的过程中从来没有遇到过里面包
> 最近在学习实践精益Kanban方法,结合自己团队实践Srum的经历,整理些资料二者的差异。相较于Scrum, 我更推崇精益Kaban。 Agile是一套理论和原则,就像天边的北极星。Devops是一种软件开发和运维团队间自动化和集成过程的方法。当实现Agile和Devops方法时,Kanban和
二叉树的最大宽度系列问题 作者:Grey 原文地址: 博客园:二叉树的最大宽度系列问题 CSDN:二叉树的最大宽度系列问题 求树的最大宽度 题目描述 给你一棵二叉树的根节点 root ,返回树的最大宽度 。 树的最大宽度是所有层中最大的宽度 。 每一层的宽度被定义为该层最左和最右的非空节点(即,两个
求二叉树中最大的二叉搜索子树的头节点 作者:Grey 原文地址: 博客园:求二叉树中最大的二叉搜索子树的头节点 CSDN:求二叉树中最大的二叉搜索子树的头节点 题目描述 给定一棵二叉树的头节点head, 返回这颗二叉树中最大的二叉搜索子树的头节点。 暴力解法 定义递归函数 TreeNode maxS
二叉树最大路径和问题 作者:Grey 原文地址: 博客园:二叉树最大路径和问题 CSDN:二叉树最大路径和问题 题目描述 路径 被定义为一条从树中任意节点出发,沿父节点-子节点连接,达到任意节点的序列。同一个节点在一条路径序列中 至多出现一次 。该路径 至少包含一个 节点,且不一定经过根节点。 路径
二叉树的最小深度问题 作者:Grey 原文地址: 博客园:二叉树的最小深度问题 CSDN:二叉树的最小深度问题 题目描述 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 题目链接见:LeetCode 111. Mini
子数组的最大异或和问题 作者:Grey 原文地址: 博客园:子数组的最大异或和问题 CSDN:子数组的最大异或和问题 题目描述 数组中所有数都异或起来的结果,叫做异或和。给定一个数组 arr,其中可能有正、有负,有零,返回 arr 的最大子数组异或和 题目链接见:牛客-子数组的最大异或和 暴力解 枚
kubernetes 1.27.1 最新版集群部署国内环境 官方安装部署文档:https://kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/ 准备云服务器 首先买三台服务器。我用
摘要:最近,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。 本文分享自华为云社区《【高并发】优化加锁方式时竟然死锁了!!》,作者: 冰 河。 写在前面 最近,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原
Typora中文破解版是一款好用极简免费的跨平台Markdown编辑器,软件使用这款软件能够帮助用户轻松将文本转换到HTML,软件从底层向上设计,软件支持markdown的标准语法,同时这款软件还支持动态预览功能,一键预览,让一切都变得如此干净、纯粹,是一款不可多得的优质markdown编辑器。 T
由于最近服务器和域名出了问题,做了博客的迁移,也改了博客的二级域名。博客地址迁移到了朋友的本地服务器上,确保了数据的安全,可靠。之前挤压了一部分的博客笔记会补上。最近都在做chatgpt的服务开发。熬了一个月了,会把我的踩坑那些记录下来。后续的安排也会贴在博客 里。chatgpt网站:[https:
Optional最早是Google公司Guava中的概念,代表的是可选值。Optional类从Java8版本开始加入豪华套餐,主要为了解决程序中的NPE问题,从而使得更少的显式判空,防止代码污染,另一方面,也使得领域模型中所隐藏的知识,得以显式体现在代码中。Optional类位于java.util包下,对链式编程风格有一定的支持。实际上,Optional更像是一个容器,其中存放的成员变量是一个T类
背景 最近把项目中的技术框架做一次升级,最重要的就是SpringBoot从2.7.x升级到3.0.x,当然还会有一些周边的框架也会连带着升级,比如Mybatis Plus,SpringCloud等,话不多说直接看看有哪些事情要做。 具体事项 主要分两类,第一类是单纯的提升版本,主要如下: 1.jdk
Redis作为当今最流行的内存数据库,已经成为服务端加速的必备工具之一。对于Redis为什么那么快?以及Redis采用单线程,但为什么反而获得更高的性能的疑问,在之前的Redis为什么那么快?一文中,已经有所介绍。 今天通过这篇,我们来了解一下Redis最常见的5种应用场景。您可以通过视频来学习,如