负载均衡一(脏读与串号)

 

1、或者用jdk的阻塞队列linkedblockingqueue

我用过这个阻塞队列解决过流水号串号问题

和消息队列差不多

2、Redis提供了简单的发布订阅功能,虽然不能和专业的消息中间件比,但如果我们只是简单的想要使用发布订阅功能,那么Redis中的发布订阅更合适不过了,因为它和专业的消息中间比使用时相对比较简单。

在Redis中消息的发布者和订阅者不能直接进行通信,而是通过频道来实现的。消息的发布者将消息发送到指定频道中,而消息的订阅者订阅该频道后,则会接受到该频道中所有接收到的消息。

命令

  • 发布消息     publish channel message

publish kafka "this is a message" 

publish命令的返回值为该频道的订阅数,因为该频道没有订阅者,所以上图中的代码返回值为0。

  • 订阅消息      subscribe channel [channel ...]

 subscribe命令在执行成功后,命令行会阻塞,随时等待着新的消息被发送。如果此时我们在向该频道中发送消息,则该订阅会立即返回我们发送的消息。

下面我们了解一下订阅命令的注意事项。

  • 客户端在执行订阅命令后会进入订阅状态,只允许输入subscribe、psubscribe、unsubscribe、punsubscribe这四个命令。
  • 新开启的订阅客户端是无法接受到之前频道中消息的,因为Redis不会对发布的消息进行持久化。
  • 取消订阅
unsubscribe [channel [channel ...]]

查询订阅

  • 查看活跃的频道
pubsub channels
  • 查看频道订阅数
pubsub numsub
  • 查看模式订阅数
pubsub numpat

上述内容就是Redis中发布订阅的全部内容,它和专业的消息中间件比例如Kafka、RocketMQ等。它不支持消息的堆积及回溯,如果我们在使用发布订阅功能时,如果可以容忍上述中的缺点,那我们Redis中的发布订阅功能可以优先考虑。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值