如果使用MQ队列, 那么Broker(中间者)
1.生产端如何保证消息正常写入到Broker?
1.Tx事务模式:AMQP协议,自己就嗲有事务,可以通过开启事务的方式,提交事务保住中间这个环节没有问题-------------如果有问题,就需要爆出异常
2.Confirm模式:生产段消息确认模式-Broker收到消息以后做一个回写,告诉生产端已经收到
2.如何保住消息能够持久化 如果mq服务重启呢 生产端的消息丢失怎么办?
怎么实现持久化的 存在电脑内存,就是再这个目录下面,这其实相当于mq的数据库,队列 持久化数据都保持在里面
3.如何保证消息能够正常被消费掉
1.自动确认
2.手动确认
分布式异步架构
1.Atomicity:原子性:要么都成功,要么都失败
2.Consistency:一致性:事务前后数据都需要保持一致
3.Lsolation:隔离性:有很多事务,事务之间相互隔离,互不影响
4.Durability:持久性:数据固化
win10搭建rabbit环境
1:Erlang+Rabbit下载 :https://pan.baidu.com/s/1vczJwFp-htdVOue19ZxjfQ 提取码:umlx
2:我的系统-高级系统设置-环境变量-新增环境变量2给
第一个增加:ERLANG_HOME:C:Program Fileserl10.5
第二个Path增加:%ERLANG_HOME%in
3.cmd 执行erl
4:cmd打开:执行 cd:C:Program Fileserl_rabbitmq_server-3.8.3sbin
执行 rabbitmq-service install
5:不行就重启
6:一步步执行下面命令
8:添加cookie
9:本地:可访问的端口地址http://localhost:15672
访问不了:cmd定位到:C:Program Fileserl_rabbitmq_server-3.8.3sbin 执行: rabbitmq-plugins enable rabbitmq_management
最终完成:
默认账号密码是:guest
创建新的用户组, 步骤3执行完,再执行4和5
3:rabbitmqctl add_user LZX 123456
4:rabbitmqctl set_permissions LZX ".*" ".*" ".*"
5:rabbitmqctl set_user_tags LZX administrator