随笔分类 -  黑马头条

摘要:1、导入spring-kafka依赖信息 <!-- kafkfa --> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <exclusions> <exc 阅读全文
posted @ 2023-07-06 17:08 佛系粥米 阅读(331) 评论(0) 推荐(0)
摘要:一、消费者组 消费者组(Consumer Group) :指的就是由一个或多个消费者组成的群体 一个发布在Topic上消息被分发给此消费者组中的一个消费者 所有的消费者都在一个组中,那么这就变成了queue模型【消息队列,只有一个用户能接收到消息】 所有的消费者都在不同的组中,那么就完全变成了发布- 阅读全文
posted @ 2023-07-06 16:46 佛系粥米 阅读(2175) 评论(0) 推荐(0)
摘要:一、消息确认机制,生产者发送消息: acks = 0 :发送完不等任何服务器响应就认为发送成功 acks = 1:收到一个服务器响应就认为发送成功 acks = all:所有节点都收到,才会收到响应,发送成功。 二、retries(设置重试次数) //设置重试次数 prop.put(Producer 阅读全文
posted @ 2023-07-06 15:43 佛系粥米 阅读(203) 评论(0) 推荐(0)
摘要:一、发送类型 同步发送:使用send()方法发送,它会返回一个Future对象,调用get()方法进行等待,就可以知道消息是否发送成功 //发送消息 try { RecordMetadata recordMetadata = producer.send(record).get(); System.o 阅读全文
posted @ 2023-07-06 15:29 佛系粥米 阅读(29) 评论(0) 推荐(0)
摘要:一、集群: Kafka 的服务器端由被称为 Broker 的服务进程构成,即一个 Kafka 集群由多个 Broker 组成 这样如果集群中某一台机器宕机,其他机器上的 Broker 也依然能够对外提供服务。这其实就是 Kafka 提供高可用的手段之一 二、备份机制 Kafka 中消息的备份又叫做 阅读全文
posted @ 2023-07-06 15:18 佛系粥米 阅读(115) 评论(0) 推荐(0)
摘要:Kafka 中的分区机制指的是将每个主题划分成多个分区(Partition) 可以处理更多的消息,不受单台服务器的限制,可以不受限的处理更多的数据 每一个分区都是一个顺序的、不可变的消息队列, 并且可以持续的添加。分区中的消息都被分了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是 阅读全文
posted @ 2023-07-06 14:54 佛系粥米 阅读(130) 评论(0) 推荐(0)
摘要:生产者发送消息,多个消费者只能有一个消费者接收到消息 生产者发送消息,多个消费者都可以接收到消息 一、生产者发送消息 (1)导入kafka客户端依赖 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients< 阅读全文
posted @ 2023-07-06 14:40 佛系粥米 阅读(114) 评论(0) 推荐(0)
摘要:先安装zookeeper: Kafka对于zookeeper是强依赖,保存kafka相关的节点数据,所以安装Kafka之前必须先安装zookeeper Docker安装zookeeper: 拉取镜像:docker pull zookeeper:3.4.14 创建容器:docker run -d -- 阅读全文
posted @ 2023-07-06 09:49 佛系粥米 阅读(21) 评论(0) 推荐(0)
摘要:消息中间件对比: 选择建议: Kafka:是一个分布式流媒体平台 类似于消息队列或企业消息传递系统。 kafka官网:http://kafka.apache.org/ (1)producer:发布消息的对象称之为主题生产者(Kafka topic producer) (2)topic:Kafka将消 阅读全文
posted @ 2023-07-05 21:52 佛系粥米 阅读(74) 评论(0) 推荐(0)
摘要:自媒体文章上下架:让app移动端用户能否查看到。 需求分析: 自媒体微服务——feign远程调用——》文章微服务 耦合性较高 采用MQ:自媒体微服务——》MQ《——文章微服务 系统解耦 点赞量较高:MQ流量削峰 消息中间件Kafka Kafka基本概念 Kafka入门案例 Kafka高可用设计 、 阅读全文
posted @ 2023-07-05 21:44 佛系粥米 阅读(26) 评论(0) 推荐(0)
摘要:文章审核:按照固定的频率拉取任务,每秒钟拉取一次,再审核文章。 @Autowired private WmNewsAutoScanService wmNewsAutoScanService; /** * 消费任务【拉取任务】 */ @Scheduled(fixedRate = 1000) @Over 阅读全文
posted @ 2023-07-05 19:32 佛系粥米 阅读(11) 评论(0) 推荐(0)
摘要:文章发布——添加任务——》schedule《——拉取任务——文章审核 当前时间或未来时间都由该服务处理 1、添加任务 @Autowired private IScheduleClient scheduleClient; /** * 添加任务到延时队列中 * * @param id 自媒体文章id * 阅读全文
posted @ 2023-07-05 19:02 佛系粥米 阅读(12) 评论(0) 推荐(0)
摘要:延迟队列微服务: redis:list-执行时间<=当前时间 zset-当前时间<执行时间<当前时间+5分钟 添加任务:【以防任务数量过大在,一旦服务器挂掉,内存所有的数据都消失了,所以要做数据持久化】添加任务到数据库、符合条件的任务添加到redis【list,zset】 取消任务:删除数据库任务信 阅读全文
posted @ 2023-07-05 16:27 佛系粥米 阅读(15) 评论(0) 推荐(0)
摘要:把数据库任务定时存储到redis:当前时间 < 执行时间 <= 预设时间(当前时间+5分钟) 预加载:如果任务量特别大,一次将数据库所有future任务全都加载到redis内存,可能会导致阻塞。 1.清理缓存中的数据 2.查询小于未来5分钟的所有任务 3.新增任务到redis /** * 数据库任务 阅读全文
posted @ 2023-07-05 15:41 佛系粥米 阅读(202) 评论(0) 推荐(0)
摘要:问题描述: 启动两台heima-leadnews-schedule服务,每台服务都会去执行refresh定时任务方法 分布式锁:控制分布式系统有序的去对共享资源进行操作,通过互斥来保证数据的一致性。 分布式锁的解决方案: sexnx (SET if Not eXists) 命令在指定的 key 不存 阅读全文
posted @ 2023-07-05 10:53 佛系粥米 阅读(52) 评论(0) 推荐(0)
摘要:未来数据定时刷新——实现步骤: 定时任务/每分钟————》未来数据的keys————》按照分值查询zset,判断数据是否到期——到期》同步到Redis中的list 1、如何获取zset中所有的key? keys 模糊匹配,future。效率低 SCNA命令:SCAN 命令是一个基于游标的迭代器,SC 阅读全文
posted @ 2023-07-05 10:35 佛系粥米 阅读(68) 评论(0) 推荐(0)
摘要:实现思路: 消费任务————————》从redis中的list中pop数据——————》修改数据库的任务 参数:任务的类型和优先级 pop:取出数据并删除 删除任务&修改任务日志 /** * 按照任务类型和优先级拉取任务 * @param type * @param priority * @retu 阅读全文
posted @ 2023-07-05 09:36 佛系粥米 阅读(12) 评论(0) 推荐(0)
摘要:场景:第三接口网络不通,使用延迟任务进行重试,当达到阈值以后,取消任务。 taskId——》删除任务——》更新日志状态——》删除redis中的数据 1、根据taskid删除任务,修改任务日志状态为 2(取消) 2、删除redis中对应的任务数据,包括list和zset /** * 取消任务 * @p 阅读全文
posted @ 2023-07-05 09:18 佛系粥米 阅读(54) 评论(0) 推荐(0)
摘要:1、添加任务到数据库 2、判断当前任务的执行时间 执行时间<=当前时间:存储到 list(当前消费队列) 当前时间<执行时间<=预设时间(预设时间=当前时间+5分钟):存储zset (未来数据队列),定时刷新从zset中将任务存入list。 一、添加任务 1、创建task类,用于接收添加任务的参数 阅读全文
posted @ 2023-07-04 17:25 佛系粥米 阅读(152) 评论(0) 推荐(0)
摘要:1、在项目导入redis相关依赖 <!--spring data redis & cache--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis< 阅读全文
posted @ 2023-07-04 16:21 佛系粥米 阅读(69) 评论(0) 推荐(0)