电商平台首页广告缓存更新
首页广告缓存更新
1.1 实现思路

1.2 发送消息到MQ

1). 配置MQ中组件
@Configuration
public class RabbitMQConfig {
//定义交换机名称
public static final String GOODS_UP_EXCHANGE=“goods_up_exchange”;
public static final String GOODS_DOWN_EXCHANGE=“goods_down_exchange”;
//定义队列名称
public static final String AD_UPDATE_QUEUE="ad_update_queue";
public static final String SEARCH_ADD_QUEUE="search_add_queue";
public static final String SEARCH_DEL_QUEUE="search_del_queue";//声明队列
@Bean
public Queue queue(){return new Queue(AD_UPDATE_QUEUE);
}
}
2). 数据监控服务中发送消息
for (CanalEntry.Column column : rowData.getAfterColumnsList()) {
if (“position”.equals(column.getName())){
System.out.println(“发送最新的数据到MQ:”+column.getValue());
//发送消息 默认交换机 ----> web_index_lb
rabbitTemplate.convertAndSend("", RabbitMQConfig.AD_UPDATE_QUEUE,column.getValue());
}
}
1.3 消费者获取消息执行更新
1). pom.xml
org.springframework.boot
spring-boot-starter-amqp
com.squareup.okhttp3
okhttp
3.9.0
2). application.yml
rabbitmq:
host: 192.168.192.152
3). 消息监听类,消费者的逻辑处理
逻辑 : 接收消息 , 调用接口(lua脚本)
@Component
public class AdListener {
@RabbitListener(queues = "ad_update_queue")
public void receiveMessage(String message){System.out.println("接收到的消息为:"+message);//发起远程调用OkHttpClient okHttpClient = new OkHttpClient();String url = "http://192.168.192.152/ad_update?position="+message;Request request = new Request.Builder().url(url).build();Call call = okHttpClient.newCall(request);//设置回调call.enqueue(new Callback() {@Overridepublic void onFailure(Call call, IOException e) {//请求失败e.printStackTrace();}@Overridepublic void onResponse(Call call, Response response) throws IOException {//请求成功System.out.println("请求成功:"+response.message());}});
}
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
