![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
分布式应用
文章平均质量分 87
分布式应用
EmineWang
计算机专业,资深java开发工程师,从事后端开发、架构方向,热爱技术,热爱分享,愿对你有所帮助,感恩大家的支持,欢迎来信交流~~
展开
-
redis分布式实现和原理
主从复制:redis的主从复制配置简单,只需要在配置文件里面添加一行配置就行。例如:一主多从,186主节点,在每个slave节点中增加一行replicaof 192.168.1.186 6379主从复制原理:复制有两类:全量复制增量复制...原创 2021-05-14 01:41:53 · 2403 阅读 · 2 评论 -
zookeeper 原理(一)
zookeeper是在分布式系统中解决分布式协调、负载均衡、发布订阅,master选举、分布式锁和分布式队列、集群管理、。zookeeper分为服务器端和客户端,客户端可以连接到所有的服务端(除非服务端显示的制定不允许连接)。zookeeper节点建议设置为奇数个,大多数服务可用,zookeeper就可用。zookeeper有三个角色,leader、follower、observerzookeeper有三种角色leaderleader节点负责写数据,更新系统状态,同时还负责投票的发起和决议,f原创 2021-07-02 17:48:35 · 153 阅读 · 1 评论 -
zookeeper 原理(二)
zookeeper节点类型持久节点, 节点会被持久临时节点,客户端断开连接后,ZooKeeper 会自动删除临时节点顺序节点,每次创建顺序节点时,ZooKeeper 都会在路径后面自动添加上10位的数字,从1开始,最大是2147483647 (2^32-1)ZAB协议ZAB 协议包括有两种模式,分别是 崩溃恢复和消息广播。崩溃恢复:当整个服务框架在启动过程中,或是当 Leader 服务器出现网络中断、崩溃退出与重启等异常情况时,ZAB 协议就会进人恢复模式并选举产生新的 Leader 服务器原创 2021-07-02 17:56:52 · 270 阅读 · 1 评论 -
rabbitMQ延迟队列实现
死信队列方式定义消费者,和队列package com.demo.test.rabbitMQ.delay;/** * @Date 2021/11/10 11:30 */public class Constant { public final static String EXCHANGE_NAME = "SIMPLE_EXCHANGE_TEST2"; public final static String QUEUE_NAME = "SIMPLE_QUEUE_TEST2";原创 2021-11-11 18:15:56 · 829 阅读 · 0 评论 -
rabbitmq、kafka、rocketMQ区别和选择
文章目录rabbitMQ和kafkakafka和rocketMQrabbitMq和rocketMQMQ选型消息队列常使用的注意事项如何保证系统的高可用如何保证消息不会丢失rabbitmqrocketMqrabbitMQ和kafka语言kafka使用scala写的,kafka使用erlang写的,rocketMQ使用java写的消费模型RabbitMQ中pull和push都有实现,kafka和rocketMQ中只有pull架构组成rabbtmq是基于AMQP协议开发,broker由e原创 2021-05-11 00:55:21 · 5920 阅读 · 1 评论 -
springboot同时配置多个MQ
配置2个数据源:application.properties# 第一个mqspring.rabbitmq.first.host=${mq.host}spring.rabbitmq.first.port=${mq.port}spring.rabbitmq.first.username=${mq.username}spring.rabbitmq.first.password=${mq.password}spring.rabbitmq.first.virtualHost=${mq.vhost}#原创 2020-05-25 18:05:35 · 6892 阅读 · 2 评论 -
rabbitMQ消息的可靠性投递分析和保证方案
上面四个环节都会可能数据丢失1.保证发送消息安全第一种方式:服务端确认-transaction// 将chnnel设置为事务模式channel.txSelect();// 提交事务channel.commit// 事务回滚channel.txRollback如果没有commit不会写入这种模式浪费服务性能,一般不会用这种方式第二种方式// 将channel设置为confirm 确认模式模式channel.comfirmSelect()// 判断,实际上是发送消息后得到brok.原创 2021-04-20 23:28:15 · 274 阅读 · 0 评论