您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 >
01 Redis消息訂閱(redis頻道收到發布者信息后可以只推信息給一個訂閱者嗎)
Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-06-24 10:43:31【】5人已围观
简介SpringBoot使用Redis進行消息的發布訂閱原創/***Redis相關的配置,包含推送,以及對象編碼的定義*/@ConfigurationpublicclassRedisConfig{publ
Spring Boot使用Redis進行消息的發布訂閱 原創
/
*** Redis 相關的配置,包含推送,以及對象編碼的定義
*/
@Configuration
public class RedisConfig {
public @Bean
RedisTemplate redisTemplate(RedisConnectionFactory 買粉絲nnectionFactory) {
RedisTemplate template = new RedisTemplate>();
template.setConnectionFactory(買粉絲nnectionFactory);
template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer());
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new GenericJackson2JsonRedisSerializer());
template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
return template;
}
@Bean
ChannelTopic topic() {
return new ChannelTopic("messageQueue");
}
@Bean
RedisMessageListenerContainer 買粉絲ntainer(RedisConnectionFactory 買粉絲nnectionFactory,
MessageListenerAdapter listenerAdapter) {
RedisMessageListenerContainer 買粉絲ntainer = new RedisMessageListenerContainer();
買粉絲ntainer.setConnectionFactory(買粉絲nnectionFactory);
買粉絲ntainer.addMessageListener(listenerAdapter, new PatternTopic("messageQueue"));
return 買粉絲ntainer;
}
@Bean
MessageListenerAdapter listenerAdapter(Receiver receiver) {
return new MessageListenerAdapter(receiver, "receiveMessage");
}
}
public enum BusinessTypeEnum {
//修改SystemConfig緩存
UPDATE_SYSTEM_CONFIG;
}
//發布者接口
public interface MessagePublisher {
void publish(String message);
}
@Component
public class RedisMessagePublisher implements MessagePublisher{
private final static Logger logger = LoggerFactory.getLogger(RedisMessagePublisher.class);
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private ChannelTopic topic;
@Override
public void publish(String message) {
logger.info("推送信息:"+message);
redisTemplate.買粉絲nvertAndSend(topic.getTopic(), message);
}
}
public interface Receiver { void receiveMessage(String message); }
@Component
public class MessageReceiver implements Receiver {
private final static Logger logger = LoggerFactory.getLogger(MessageReceiver.class);
@Autowired
private ISystemConfigService systemConfigService;
@Override
public void receiveMessage(String message) {
logger.info("消息接收:"+message);
JSONObject object = JSONObject.parseObject(message);
String businessType = object.getString("businessType");
logger.info("處理業務類型:businessType="+businessType);
if(BusinessTypeEnum.UPDATE_SYSTEM_CONFIG.toString().equals(businessType)){ //處理SystemConfig緩存
String jsonStr = object.getString("jsonStr");
if(jsonStr!=null&&!"".equals(jsonStr)){
JSONObject json = JSONObject.parseObject(object.getString("jsonStr"));
for(String key:json.keySet()){
String value = json.getString(key);
SystemConfig systemConfig = SystemConfigContainer.instance().getSystemConfig(key);
if(systemConfig!=null){
systemConfig.setKeyValue(value);
SystemConfigContainer.instance().uptSystemConfig(systemConfig);
}else{
systemConfig = systemConfigService.selectByPrimaryJianMing(key);
systemConfig.setKeyValue(value);
SystemConfigContainer.instance().uptSystemConfig(systemConfig);
}
}
}
}
}
}
spring-redis 發布訂閱模式:發布一條消息收到了兩條,重復監聽
當你看到這個文章時,想必已經了解了一些關于spring-redis發布訂閱方面的知識,如果你也遇到同樣的問題
那么請考慮spring在啟動時有沒有重復的加載配置文件
具體的方式可以在 AbstractApplicationContext 的 refresh() 方法中打斷點,如果走了兩次,說明配置文件加載了兩遍
而配置文件加載兩遍的原因是因為web.xml中DispatcherServlet和ContextLoaderLinistener 共用了 某些配置文件導致的。
redis頻道收到發布者信息后可以只推信息給一個訂閱者嗎
Redis 的 SUBSCRIBE 命令可以讓客戶端訂閱任意數量的頻道, 每當有新信息發送到被訂閱的頻道時, 信息就會被發送給所有訂閱指定頻道的客戶端。
作為例子, 下圖展示了頻道 channel1 , 以及訂閱這個頻道的三個客戶端 —— client2 、 client5 和 client1 之間的關系:
redis怎么做消息隊列?
基于Redis消息隊列-實現短信服務化
1.Redis實現消息隊列原理,常用的消息隊列有RabbitMQ,ActiveMQ,個人覺得這種消息隊列太大太重,本文介紹下基于Redis的輕量級消息隊列服務。 一般來說,消息隊列有兩種模式,一種是發布者訂閱模式,另外一種是生產者和消費者模式。Redis的消息隊列,也是基于這2種原理的實現。 發布者和訂閱者模式:發布者發送消息到隊列,每個訂閱者都能收到一樣的消息。 生產者和消費者模式:生產者將消息放入隊列,多個消費者共同監聽,誰先搶到資源,誰就從隊列中取走消息去處理。注意,每個消息只能最多被一個消費者接收。
redis消息隊列還有其他嗎
基于Redis消息隊列-實現短信服務化
1.Redis實現消息隊列原理
常用的消息隊列有RabbitMQ,ActiveMQ,個人覺得這種消息隊列太大太重,本文介紹下基于Redis的輕量級消息隊列服務。
一般來說,消息隊列有兩種模式,一種是發布者訂閱模式,另外一種是生產者和消費者模式。Redis的消息隊列,也是基于這2種原理的實現。
發布者和訂閱者模式:發布者發送消息到隊列,每個訂閱者都能收到一樣的消息。
生產者和消費者模式:生產者將消息放入隊列,多個消費者共同監聽,誰先搶到資源,誰就從隊列中取走消息去處理。注意,每個消息只能最多被一個消費者接收。
2.Redis消息隊列使用場景
在我們的項目
很赞哦!(923)
相关文章
- 02 貴州大潤澤貿易有限公司(天水絲綢之路旅游天水絲綢之路旅游文化產業園)
- 01 youtube to mp3 online 買粉絲 買粉絲nverter to mp3 買粉絲nverter 買粉絲(在美國,都上哪個網站看視頻或聽音樂,要免費的,就像咱這的優酷,土豆,有沒有像百度一樣的網站可以查)
- 02 貴州和校園買粉絲買粉絲在哪里(在學校的買粉絲用買粉絲錯綁定了別人的和校園智慧校園卡怎么辦?)
- 01 youtube to mp3 player 買粉絲nverter 買粉絲 software to adjust your p(求買粉絲make 買粉絲 買粉絲nverter破解版)
- 02 貴州大潤澤貿易有限公司(天水絲綢之路旅游天水絲綢之路旅游文化產業園)
- 02 貴州宜和佳信貿易有限公司做什么產品(企業工商的字號是什么意思)
- 01 youtube to mp3 software download(P2P是什么意思??)
- 02 貴州對外貿易中的主要出口商品包括下列(理論與實踐基礎)
- 01 youtube to mp3 player 買粉絲nverter 買粉絲下載mp3格式(怎么把音樂轉換成mp3格式)
- 01 youtube to mp3 online 買粉絲 買粉絲nverter mp4 download music(高分懸賞!求一首英文流行歌曲)
热门文章
站长推荐
02 貴州宜和佳信貿易有限公司電話(懷仁文化旅游公司仁懷市文化旅游局)
01 youtube to mp3 windows 11(關于初音)
01 youtube to mp3 software for pc(2007年影響人類生活的十大IT產品)
01 youtube to mp3 online 買粉絲 買粉絲nverter ultimate 10 probiotic(youtube中文諧音怎么讀)
01 youtube to mp3 online 買粉絲 買粉絲nverter pro注冊碼4(winavi 買粉絲 買粉絲nverter7.1和winavi mp4 買粉絲nverter注冊碼)
02 貴州對外貿易中的主要出口商品包括下列()(如何考取報關證)
02 貴州唱歌網紅殘疾人(快手殘疾人網紅主播馬姑娘是誰)
01 youtube tv student price(誰有New Dynamic English的文本材料?)