![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式框架
文章平均质量分 83
nio、netty、grpc框架、redis、mq等
VivianStark
这个作者很懒,什么都没留下…
展开
-
Redis实现限流功能
自定义限流注解RateLimiter,当频繁调用注解的方法时,会触发限流规则(限流规则支持配置多个),比如10s内只支持20次调用,当超过20次时会被限流。原创 2024-02-22 17:09:12 · 400 阅读 · 0 评论 -
Nginx、Kong、Apisix、Gateway网关比较
Apache APISIX基于 nginx(openresty)和 Lua 实现的一款国产软件,是一个动态、实时、高性能的云原生API网关,提供了负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。Filter可以对请求和响应进行处理。API网关为微服务架构的系统提供简单、有效 且统一的API路由管理,作为系统的统一入口,提供内部服务的路由中转,给客户端提供统一的服务,可以实现一些和业务没有耦合的公用逻辑,主要功能包含认证、鉴权、路由转发、安全策略、防刷、流量控制、监控日志等。原创 2023-05-14 17:33:17 · 5876 阅读 · 0 评论 -
IO模型和Selector详解
内核函数,将我们的epoll对象和socketChannel关联起来,并将事件注册到epoll实例上,有事件该方法就能感知到,然后将事件添加到epoll内部的就绪事件列表rdlist中,该rdlist其实就是我们每次while循环要处理的事件(在操作系统层面,服务到接受到客户端数据后,就会产生事件,会进行系统中断,然后将响应的事件放到rdlist列表中)。给客户端SocketChannel注册读事件。Selector是基于epoll的事件通知方式调用的,当有IO事件就绪,系统注册的回调函数就会被调用。原创 2023-04-01 16:26:25 · 146 阅读 · 0 评论 -
Redis核心原理和应用场景总结
哨兵架构下client端第一次从哨兵找出redis的主节点,后续就直接访问redis的主节点,不会每次都通过sentinel代理访问redis的主节点,当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给client端(这里面redis的client端一般都实现了订阅功能,订阅sentinel发布的节点变动消息)。gossip协议的优点在于元数据的更新比较分散,不是集中在一个地方,更新请求会陆陆续续,打到所有节点上去更新,有一定的延时,降低了压力;原创 2023-03-13 23:19:01 · 90 阅读 · 0 评论 -
RocketMq核心原理总结
基于Netty的实现远程通信功能,如NameServer何broker,broker和客户端之间,以及各个broker之间同步数据都是基于netty来实现的。集群消费模式下, 相同Consumer Group的每个Consumer实例平均分摊消息。;广播消费模式下,相同Consumer Group的每个Consumer实例都接收全量的消息。原创 2023-03-12 17:47:45 · 197 阅读 · 0 评论 -
RabbitMq、RocketMq、Kafka比较
使用 MQ 使得应用间解耦,提升容错性和可维护性。异步能提高系统的响应速度、吞吐量;以稳定的系统资源应对突发的流量冲击。原创 2023-03-12 00:18:22 · 467 阅读 · 0 评论 -
kafka核心原理总结
Broker:多个Broker可以组成一个Kafka集群Topic:消息主题,属于逻辑概念,根据topic对消息进行归类Partition:分区,属于物理概念,一个topic可以分为多个partition,每个partition内部消息是有序的。原创 2023-03-11 23:36:08 · 172 阅读 · 0 评论 -
Netty源码解读
Boss的NioEventLoop线程处理accept事件, 与client 建立连接,生成NioSocketChannel;worker的NioEventLoop线程处理read, write事件原创 2023-02-18 23:06:03 · 645 阅读 · 0 评论