
消息中间件
该用户昵称非法
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
保证消息队列的高可用
RabbitMQ rabbitmq共有单机,集群,镜像方式。 单机 此时只有一个单独的机器,可用性低。 集群 一个RABBITMQ集 群中可以共享user,virtualhosts,queues(开启Highly Available Queues),exchanges等。但message只会在创建的节点上传输。当message进入A节点的queue中后,consumer从B节点拉取时,Rabbi...转载 2019-01-24 17:36:25 · 285 阅读 · 0 评论 -
消息中间件保证消息可靠性(消息中间件接受到消息)
可靠性 rabbitmq 生产者丢失数据 生产者将数据发送到rabbitmq的时候,可能数据就在半路给搞丢了。 此时可以选择用rabbitmq提供的事务功能,就是生产者发送数据之前开启rabbitmq事务(channel.txSelect),然后发送消息,如果消息没有成功被rabbitmq接收到,那么生产者会收到异常报错,此时就可以回滚事务(channel.txRollback),然后重试发送...转载 2019-01-24 18:04:36 · 842 阅读 · 0 评论 -
消息中间件保证消息顺序执行及消息的幂等性
消息幂等性 (1)比如拿消息来写库,你先根据主键查一下,如果这数据都有了,update一下 (2)比如你是写redis,反正每次都是set,天然幂等性 (3)比如不是上面两个场景,做的稍微复杂一点,你需要让生产者发送每条数据的时候,里面加一个全局唯一的id,类似订单id之类的东西,然后你这里消费到了之后,先根据这个id去比如redis里查一下,如果没有消费过,你就处理,然后这个id写redis。如...转载 2019-01-24 18:18:53 · 979 阅读 · 0 评论 -
使用消息中间件的场景及缺点
解耦 模块A处于系统交互的中心,需求不断变更,与模块A交互的模块交替变换需求,如果不用消息中间件,模块A需要频繁变更耦合性强。如果采用消息中间件后,模块A只需把信息交付给消息中间件,其他模块需要改信息的时候只需要从消息中间件中取出消息就可,如果不需要和模块A交互时,只需要不从消息中间件中取出消息即可。 异步 如果某一个模块A调用其他模块,只是需要其他模块处理这个请求并且其他模块处理比较耗时,这是...转载 2019-01-22 10:04:34 · 677 阅读 · 0 评论 -
kafka
windows 下创建消费者命令 ./kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test windows 下创建生产者命令 ./kafka-console-producer.bat --broker-list localhost:9092 --topic test windows 下启动kafka命令...原创 2019-01-23 15:40:42 · 180 阅读 · 0 评论