中间件
文章平均质量分 93
中间件
枫火木烈王
这个作者很懒,什么都没留下…
展开
-
kafka之一----概念结构
在.index文件中,存储的是 key-value格式的,key代表在.log中按顺序开始第n条消息,value代表该消息的位置偏移。即使消息不在index记录中,在已有的记录中进行二分查找,范围也大大缩小了。当一条消息被发送到 broker 之前,都会根据分区规则选择存储到哪个具体的分区,最为合理的规则是让消息可以均匀的分配到不同的分区中,这样,多个机器共同承担一个 Topic 的读写,同一个机器上,多个分区 log 文件同时承担他们所对应的 Topic 的读写,就可以让整个集群的 IO 性能大幅提升。原创 2023-04-07 09:14:40 · 335 阅读 · 0 评论 -
kafka之二----Controllr控制器组件
每个和控制器交互的请求都会携带上controller_epoch这个字段,如果请求的controller_epoch值小于内存中的controller_epoch值,那么这个请求会被认定为无效的请求。于是新leader开始接收clients端请求,而同时老leader所在的broker由于出现了数据类请求的积压使得它一直忙于处理这些请求而无法处理controller发来的LeaderAndIsrRequest请求,集群中就会出现两个Controller。原创 2022-10-21 16:00:05 · 541 阅读 · 0 评论 -
kafka之三----Controller职责之主题删除
Controller 注册TopicDeletionListener监听器,监听ZK的/admin/delete_topics节点,定义了 TopicDeletionHandler,用它来实现对删除主题的监听,用来实际执行删除Topic的动作。原创 2022-09-08 17:50:05 · 245 阅读 · 0 评论 -
kafka之四----状态机与分区leader选举
每个Broker启动时,都会创建对应分区状态机和副本状态机实例,但只有Controller所在的Broker才会调用startup方法启动它们,若Controller变更了,老的Controller需要调用状态机shutdown方法进行关闭。原创 2022-09-16 13:20:34 · 779 阅读 · 0 评论 -
kafka之五----副本同步
副本同步原创 2022-10-21 15:58:35 · 2804 阅读 · 0 评论 -
RabbitMQ之一----概念基础
基于Erlang编写(Erlang语言天生具备分布式特性,通过同步Erlang集群各节点的magic cookie来实现),因此天然支持Clustering。这使得RabbitMQ本身不需要像ActiveMQ、Kafka那样通过ZooKeeper分别来实现HA(High Availability高可用)方案和保存集群的元数据,是属于AMQP( 高级消息队列协议 ) 标准的一个实现。是应用层协议的一个开放标准。原创 2022-09-05 09:26:52 · 925 阅读 · 0 评论 -
RabbitMQ之二----集群模式
队列创建时,只会在宿主节点(队列所在的节点)创建队列的进程,宿主节点包含完整的队列信息,包括元数据、状态、内容等等。消息实体只存在宿主节点。群只会同步队列和交换器的元数据到集群中的其他节点,其它节点存储的是指向该队列的指针,并不同步队列本身举个例子来说,当消息进入A节点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A、B间进行消息传输,把A中的消息实体取出并经过B发送给consumer。所以consumer应尽量平均连接每一个节点。.........原创 2022-08-30 16:02:11 · 2324 阅读 · 0 评论 -
RabbitMQ之三----工作模式
rabbitmq 工作模式原创 2022-09-01 10:12:19 · 677 阅读 · 0 评论 -
RabbitMQ之四----问题与应用
rabbitMQ 问题原创 2022-09-05 09:25:38 · 361 阅读 · 0 评论 -
Redis集锦
参考:http://blog.51cto.com/yaocoder/888374redis是什么redis是单线程单进程,kv内存存储数据库。单线程优缺点:1、多线程涉及到锁2、多线程的上下文切换会消耗cpu3、无法发挥多核CPU性能,不过可以通过在单机开多个Redis实例来完善redis快速的原因:1、基于内存操作2、数据结构简单:String、List、Set、Sorte...原创 2018-12-17 16:30:20 · 161 阅读 · 0 评论