ZBX Blog

热爱生活,健康工作

HashMap的底层原理

HashMap的底层原理相关知识

HashMap HashMap中存储数据的结构是什么样的 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的(“拉链法”解决冲突)。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)时,将链表转化为红黑树(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行...

sentinel的相关知识

sentinel-微服务的高可用流控防护组件

常用限流降级组件对比 流控 对定义的资源名进行流控。 Resource resource是sentinel中最重要的一个概念,sentinel通过资源来保护具体的业务代码或其他后方服务。sentinel把复杂的逻辑给屏蔽掉了,用户只需要为受保护的代码或服务定义一个资源,然后定义规则就可以了,剩下的通通交给sentinel来处理了。并且资源和规则是解耦的,规则甚至可以在运行时动态修改。...

JVM调优总结

JVM调优知识

常见配置汇总 典型设置 -Xms:初始堆大小 -Xmx:最大堆大小 -Xmn:年轻代大小 -Xss:每个线程的堆栈大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值.如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比...

Dubbo相关知识

Dubbo的相关基础知识

什么是Dubbo Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。目前 Dubbo 已经成为 Spring Cloud Alibaba 中的官方组件。 RPC原理 服务消费方(client)调用以本地调用方式调用服务; client stub接收到调用后负责将方法、参数等组装...

限流

限流知识

一般限流都是在网关这一层做,比如Nginx、Openresty、kong、zuul、Spring Cloud Gateway等;也可以在应用层通过Aop这种方式去做限流。 限流算法包含:计数器、固定窗口、滑动窗口、漏桶算法(Leaky Bucket)、令牌桶算法(Token Bucket)、分布式限流。 计数限流 例如系统能同时处理100个请求,保存一个计数器,处理了一个请求,计数器加...

Hystrix内容

Hystrix基础知识

Hystrix是什么 ​ 在分布式环境中,许多服务依赖关系中的一些将不可避免地失败。Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助您控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止它们之间的连锁故障并提供后备选项来实现这一点,所有这些都提高了系统的整体弹性。 保护和控制通过第三方客户机库访问依赖项的延迟和故障。 在一个复杂的...

面试相关内容04

面试相关内容04 杂项

一致性hash 解决的问题 动态节点增减:在分布式系统中,当增加或删除节点时,传统的取模哈希算法会导致大量数据迁移,增加网络通信压力。一致性哈希算法限制了数据迁移仅在两个节点之间,避免全局的网络问题。 雪崩效应:传统哈希算法在节点数量变化时,可能导致数据倾斜,某些节点负载过重,而其他节点负载较轻。一致性哈希算法通过虚拟节点机制,均匀分布节点,减轻了这种问题,防止雪崩效应的发生。...

面试相关内容03

面试相关内容03 杂项

SYN Flood 要么就是攻击者有很多“肉鸡”,要么就是伪造源IP的SYN报文。最后,通过统计源IP报文数量发现,每个源IP只发了一个SYN报文。因此可以确定是属于伪造源IP的SYN Flood攻击。 首包丢弃 真实的客户端访问,在一定的时间内如果没有收到服务器的回复,将会再次发送SYN报文,但攻击机制通常不会再重发。所以丢弃首次SYN报文后,就相当于过滤掉...

NIO

NIO相关知识

I/O模型 BIO : 同步阻塞,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销; NIO:同步非阻塞,面向缓冲区,面向块编程。服务器实现模式为一个线程处理多个请求,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理; AIO: 异步非阻塞,引入异步...

消息队列

消息队列相关知识01

RabbitMQ 优点: 易用的管理界面 灵活的路由 高可用性 插件机制 概念 Producer(生产者) 和 Consumer(消费者) Exchange(交换器) : 把我们的消息分配到对应的 Queue(消息队列) 中 生产者将消息发给交换器的时候,一般会指定一个 RoutingKey(路由键)...