https://api.vvhan.com/api/avatar/boy

技术博客分享

RabbitMQ-重试机制-和-TTL

在消息传递过程中, 可能会遇到各种问题, 如网络故障, 服务不可用, 资源不足... 这些问题可能导致消息处理失败. 为了解决这些问题, RabbitMQ 提供了重试机制, 允许消息在处理失败后重新发送. 但如果是程序逻辑引起的错误, 那么多次重试也是没有用的, 可以设置重试次数.

探索OpenResty高性能Web开发利器

通过本文,我们对OpenResty有了初步的认识,了解到它如何结合Nginx的强大性能与Lua语言的灵活性,为Web应用开发提供了一种新的思路。对于那些寻求在保持高性能的同时,还能实现复杂业务逻辑的企业来说,OpenResty无疑是一个极具吸引力的选择。希望这篇文章能激发你对OpenResty的兴趣,并为你未来的技术选型提供有价值的参考。如果有任何疑问或想要了解更多信息,请继续关注我的博客!

模式组合应用-装饰器模式

本文介绍了装饰器模式及其与其他设计模式的组合应用。装饰器模式是一种结构型设计模式,允许动态地为对象添加功能而不改变其结构。文章通过咖啡订单系统示例展示了基础实现,包含抽象组件、具体组件、抽象装饰器和具体装饰器四个角色。随后探讨了装饰器模式与工厂方法模式、策略模式和建造者模式的组合应用:1)与工厂方法模式结合创建游戏角色系统;2)与策略模式结合实现支付系统;3)与建造者模式结合构建简历生成器。这些组合充分发挥了各模式优势,实现了功能扩展与对象创建的分离,提高了代码的灵活性和可维护性。

代码随想录学习摘抄day7二叉树11-21

参数:需要二叉树的根节点,还需要一个计数器,这个计数器用来计算二叉树的一条边之和是否正好是目标和,计数器为int型。分别求出其左右子树的高度,然后如果差值小于等于1,则返回当前二叉树的高度,否则返回-1,表示已经不是二叉平衡树了。给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。递归的过程中依然是遇到空节点了为终止,返回0,表示当前节点为根节点的树高度为0。

iOSblock复习

文章摘要: Block本质是一个包含自动变量的匿名函数,底层实现为结构体,包含isa指针、标志位、空间大小和函数指针。在内存管理方面,MRC需手动copy到堆上,ARC会自动处理;Block会捕获外部变量,对对象类型会强引用。循环引用可通过weak/strong配合或手动中断持有关系解决。Block有栈Block、堆Block和全局Block三种类型,使用时需注意判空和内存管理规范,MRC下属性需用copy修饰。

一个Java的main方法在JVM中的执行流程

​​​​:你执行。Java编译器将源代码编译成JVM能理解的字节码,存储在文件中。这个文件包含了一个​​,里面有各种符号引用,比如这个字符串的字面量、Systemoutprintln等类名、方法名和字段名。​​:你执行。操作系统会启动JVM进程。​​:JVM通过​​ 来加载HelloWorld类。​​:首先,启动类加载器会去加载JAVA_HOME/lib下的核心类库,如java.lang包(包括ObjectStringSystem等)。​​:然后,应用程序类加载器开始工作,它在你的CLASSPATH。

sentinel限流常见的几种算法以及优缺点

摘要:Sentinel是阿里开源的流量控制框架,核心功能是基于经典算法实现限流,防止系统过载。主要算法包括:1)滑动窗口算法,通过划分时间小格提高精度,解决固定窗口的临界问题;2)令牌桶算法,按固定速率生成令牌,支持应对突发流量但可能瞬时过载;3)漏桶算法,强制固定处理速率,平滑流量但无法处理突发。各算法适用于不同场景,需根据实际需求选择。(150字)

CC数据结构之栈基础

在食堂或自助餐厅中,清洁的餐盘通常会按照从下到上的顺序堆叠在一起。服务员或者顾客需要使用时,总是从最上面取一个盘子来用,而不是从最下面取一个盘子。为什么呢?因为这些盘子是“后放上去的先拿出来”。这其实就是我们今天要介绍的数据结构 —— 栈(Stack)。