中间件
文章平均质量分 83
中间件
1.01^1000
记录一些给自己看的笔记,不断的总结积累
展开
-
[001-008-04].XXL-JOB是什么
1.XXL-Job:是大众点评的分布式任务调度平台,是一个轻量级分布式任务调度平台, 其核心设计目标是开发迅速、学习简单、轻量级、易扩展2.大众点评目前已接入XXL-JOB,该系统在内部已调度约100万次,表现优异。3.目前已有多家公司接入xxl-job,包括比较知名的大众点评,京东,优信二手车,360金融 (360),联想集团 (联想),易信 (网易)等等4.官网地址。原创 2024-09-22 00:20:17 · 583 阅读 · 0 评论 -
[001-008-04].分片使用
【代码】[001-008-04].分片使用。原创 2024-09-22 00:18:50 · 437 阅读 · 0 评论 -
XXL-JOB环境搭建
至此“调度中心”项目已经部署成功。原创 2024-09-22 00:17:48 · 1064 阅读 · 0 评论 -
[022-6].elasticsearch基础3——补全、集群
1.聚合:可以让我们极其方便的实现对数据的统计、分析、运算。例如:什么品牌的手机最受欢迎?这些手机的平均价格、最高价格、最低价格?这些手机每月的销售情况如何?2.实现这些统计功能的比数据库的sql要方便的多,而且查询速度非常快,可以实现近实时搜索效果1.要实现根据字母做补全,就必须对文档按照拼音分词。在GitHub上恰好有elasticsearch的拼音分词插件。默认的拼音分词器会将每个汉字单独分为拼音,而我们希望的是每个词条形成一组拼音,需要对拼音分词器做个性化定制,形成自定义分词器。原创 2024-06-15 10:52:47 · 1000 阅读 · 0 评论 -
[021-07].第08节:Elasticsearch的RestClient查询文档
2.上述代码省略了查询条件部分,但是大家不要忘了:高亮查询必须使用全文检索查询,并且要有搜索关键字,将来才可以对关键字高亮。原创 2024-09-21 14:08:22 · 1120 阅读 · 0 评论 -
[021-07].第08节:Elasticsearch中使用RestAPI实现索引与文档的CRUD
我们在导入酒店数据时,将代码中查询到的数据放在集合中进型循环,在往ES中看写入的数据的时候,代码改造成for循环处理即可。在Elasticsearch提供的API中,与Elasticsearch一切交互都封装在一个名为。5.因此Bulk中添加了多个IndexRequest,就是批量新增功能了。1.新建索引库实体类,数据库查询后的结果是一个Hotel类型的对象。我们要将数据库的酒店数据查询出来,写入Elasticsearch中。,建立与Elasticsearch的连接。3.ES中搜索多字段的值,使用。原创 2024-07-15 18:08:27 · 351 阅读 · 0 评论 -
[000-01-018].第3节:Linux环境下ElasticSearch环境搭建
部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有。kibana可以给我们提供一个elasticsearch的可视化界面,便于我们学习。原创 2024-08-20 09:16:51 · 1660 阅读 · 0 评论 -
[022-1].第4节:ElasticSearch中映射、索引、文档的CRUD
GET /_cat/nodes #查看所有节点。集群中会用到 GET /_cat/health #查看es健康状况 GET /_cat/master #查看主节点 GET /_cat/indices #查看所有索引 ,等价于mysql数据库的show databases;原创 2024-07-15 18:05:04 · 942 阅读 · 0 评论 -
[022-1].第2节:Elasticsearch是什么
1.Elasticsearch底层是基于lucene来实现的,它是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据;Elasticsearch可以用来实现搜索、日志统计、分析、系统监控等功能。原创 2024-04-16 08:23:18 · 920 阅读 · 0 评论 -
[000-01-018].第1节:Elastic Stack是什么
1.ELK是一个免费开源的日志分析架构技术栈总称,包含三大基础组件,分别是2.ELK可适用于日志分析、数据搜索、数据分析和收集等一些场景,比如日志分析和收集是更具有代表性的应用3.ELK是由包含了Elasticsearch、Logstash、Kibana 三个开源软件的组成的一个整体。主要用于数据抽取(Logstash)、搜索分析(Elasticsearch)、数据展现(Kibana),其中Logstash是负责收据的手机,ES是数据的存储,Kibana是负责数据的展示。原创 2024-06-15 10:56:19 · 772 阅读 · 0 评论 -
[022-06].第06节:ElasticSearch核心概念
起源:Shay Banon。2004年失业,陪老婆去伦敦学习厨师。失业在家帮老婆写一个菜谱搜索引擎。封装了lucene的开源项目,compass。找到工作后,做分布式高性能项目,再封装compass,写出了elasticsearch,使得lucene支持分布式。现在是Elasticsearch创始人兼Elastic首席执行官。相同类型的文档的集合。原创 2024-08-16 22:41:24 · 917 阅读 · 0 评论 -
[000-01-020].第08节:Kafka生产者工作原理
研发人员可以根据企业需求,自己重新实现分区器1.acks=0,生产者发送过来数据就不管了,可靠性差,效率高;2.acks=1,生产者发送过来数据Leader应答,可靠性中等,效率中等;3.acks=-1,生产者发送过来数据Leader和ISR队列里面所有Follwer应答,可靠性高,效率低;在生产环境中,acks=0很少使用;acks=1,一般用于传输普通日志,允许丢个别数据;acks=-1,一般用于传输和钱相关的数据,对可靠性要求比较高的场景1.幂等性。原创 2023-05-16 14:45:00 · 27 阅读 · 0 评论 -
[000-01-020].第03节:命令行下操作使用Kafka
参数描述连接的 Kafka Broker 主机名称和端口号操作的 topic 名称。- -create创建主题。- -delete删除主题。- -alter修改主题。- -list查看主题详细描述。设置分区数。设置分区副本。更新系统默认的配置参数描述连接的 Kafka Broker 主机名称和端口号。操作的 topic 名称。原创 2024-08-15 17:10:14 · 655 阅读 · 0 评论 -
[000-01-020].第01节:Kafka是什么
分布式发布/订阅模式不会消息分为不同的类别。原创 2024-06-10 22:28:47 · 268 阅读 · 0 评论 -
[001-03-007].第26节:分布式锁迭代3->优化基于setnx命令实现的分布式锁-防锁的误删
(如LUA脚本实现)原创 2024-09-11 17:06:10 · 456 阅读 · 0 评论 -
[001-03-007].第26节:分布式锁迭代2->优化基于setnx命令实现分布式锁
自旋。原创 2024-09-11 16:36:32 · 263 阅读 · 0 评论 -
[001-03-007].第26节:分布式锁迭代3->优化基于setnx命令实现分布式锁
刚刚获取到锁,当前服务器宕机,导致del释放锁无法执行,进而导致锁无法锁无法释放(死锁)原创 2024-09-11 16:11:39 · 341 阅读 · 0 评论 -
[001-03-007].第07节:Redis中的管道
pipeline是为了解决RTT往返时间,仅仅是将命令打包一次性发送,对整个redis的执行不造成其他任何影响批处理命令变种优化措施,类似于Redis中的原生批处理命令mset和mget。原创 2024-09-11 11:50:53 · 335 阅读 · 0 评论 -
[001-03-007].第07节:Redis中的事务
【代码】[001-03-007].第07节:Redis中的事务。原创 2024-09-11 11:26:41 · 647 阅读 · 0 评论 -
[009].第15节.模板方法模式
模板方法模式就是:定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中,使得子类可以不改变该算法结构的情况下重定义该算法的某些特定步骤1.抽象类负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。基本方法:是实现算法各个步骤的方法,是模板方法的组成部分。基本方法又可以分为三种:抽象方法(Abstract Method):一个抽象方法由抽象类声明、由其具体子类实现。具体方法(Concrete Method)原创 2024-06-21 10:54:11 · 900 阅读 · 0 评论 -
[000-01-022].第12节:RabbitMQ中惰性队列
【代码】[000-01-022].第12节:RabbitMQ中惰性队列。原创 2024-09-10 15:54:07 · 262 阅读 · 0 评论 -
[000-01-022].第12节:RabbitMQ中备份交换机(Done)
1.备份交换机可以理解为 RabbitMQ 中交换机的“备胎”,当我们为某一个交换机声明一个对应的备份交换机时,就是为它创建一个备胎,当交换机接收到一条不可路由消息时,将会把这条消息转发到备份交换机中,由备份交换机来进行转发和处理,通常备份交换机的类型为 Fanout,这样就能把所有消息都投递到与其绑定的队列中,然后我们在备份交换机下绑定一个队列,这样所有那些原交换机无法被路由的消息,就会都进入这个队列了。当然,我们还可以建立一个报警队列,用独立的消费者来进行监测和报警。原创 2024-09-10 15:42:12 · 345 阅读 · 0 评论 -
[000-01-022].第02节:什么是RabbitMQ(Done)
本质是一个消息缓冲区。原创 2024-08-21 09:35:54 · 345 阅读 · 0 评论 -
[000-01-022].第11节:RabbitMQ中的延迟队列
1.延时队列,队列内部是有序的,最重要的特性就体现在它的延时属性上,延时队列中的元素是希望在指定时间到了以后或之前取出和处理。简单来说,延时队列就是用来存放需要在指定时间被处理的元素的队列1.TTL 是 RabbitMQ 中一个消息或者队列的属性,表明一条消息或者该队列中的所有消息的最大存活时间单位是毫秒2.如果一条消息设置了 TTL 属性或者进入了设置 TTL 属性的队列,那么这条消息如果在 TTL 设置的时间内没有被消费,则会成为"死信"。如果同时配置了队列的 TTL 和消息的TTL,那么。原创 2023-04-18 09:07:49 · 37 阅读 · 0 评论 -
[000-01-022].第10节:RabbitMQ中的死信队列
1.死信,就是无法被消费的消息,字面意思可以这样理解2.producer 将消息投递到 broker 或者直接到 queue 里了,consumer 从 queue 取出消息进行消费,但某些时候由于特定的原因导致 queue 中的某些消息无法被消费,这样的消息如果没有后续的处理,就变成了死信,有死信自然就有了死信队列。原创 2023-04-17 19:17:05 · 37 阅读 · 0 评论 -
第06-02:路由模式-Direct exchang(直接交换机)
1.发布订阅模式中的我们的日志系统将所有消息广播给所有消费者,在路由模式中,我们可以做一些升级,添加一些特别的功能!!!比如只让某个消费者订阅发布一部分消息如只把严重错误消息定向存储到日志文件(以节省磁盘空间)、同时仍然能够在控制台上打印所有日志消息2.这种类型的工作方式是,消息只去到它绑定的routingKey 队列中去。原创 2023-04-17 18:46:10 · 43 阅读 · 0 评论 -
[000-01-022].第01节:什么是MQ
[025-1].MQ的简单介绍原创 2021-09-11 15:00:47 · 68 阅读 · 0 评论 -
超卖场景的工程搭建
1.多线程并发安全问题最典型的代表就是超卖现象,库存在并发量较大情况下很容易发生超卖现象,一旦发生超卖现象,就会出现多成交了订单而发不了货的情况。2.场景:商品S库存余量为5时,用户A和B同时来购买一个商品,此时查询库存数都为5,库存充足则开始减库存:用户A:update db_stock set stock = stock - 1 where id = 1用户B:update db_stock set stock = stock - 1 where id = 1。原创 2024-09-07 14:52:05 · 1039 阅读 · 0 评论 -
[001-03-007].第26节:分布式锁迭代1->基于setnx命令实现分布式锁:
1.解决集群下锁失效,参照redis官方网站针对redlock文档:https://redis.io/topics/distlock2.在算法的分布式版本中,我们假设有N个Redis服务器。这些节点是完全独立的,因此我们不使用复制或任何其他隐式协调系统。**前几节已经描述了如何在单个实例中安全地获取和释放锁,在分布式锁算法中,将使用相同的方法在单个实例中获取和释放锁。**将N设置为5是一个合理的值,因此需要在不同的计算机或虚拟机上运行5个Redis主服务器,确保它们以独立的方式发生故障。原创 2024-09-07 10:04:49 · 1241 阅读 · 0 评论 -
redisson中的分布式锁
1.Redisson是一个在Redis的基础上实现的Java驻内存数据网格2.redisson介绍官方文档地址3.Redisson它不仅提供了一系列的分布式的Java常用对象,还提供了许多分布式服务包括(Redisson提供了使用Redis的最简单和最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离(Separation of Concern),从而让使用者能够将精力更集中地放在处理业务逻辑上。1.基于Redis的Redisson分布式可重入锁RLockJava对象实现了。原创 2024-09-07 10:02:05 · 1049 阅读 · 0 评论 -
[001-03-007].第01节:Redis是什么
数据都是缓存在内存中。原创 2024-09-06 15:58:41 · 1142 阅读 · 0 评论 -
点赞与排行探店笔记:
2.1.点赞探店笔记:a.接口说明:1.在首页的探店笔记的排行榜和探店图文详情页面都有点赞的功能b.问题分析:1.现在存在一个问题,一个用户可以无限点赞,这显然是不合理的,所以我们需要对点赞功能进行一个优化,实现一人只能点赞一次2.对于点赞这种高频变化的数据,如果我们使用MySQL是十分不理智的,因为MySQL慢、并且并发请求MySQL会影响其它重要业务,容易影响整个系统的性能,继而降低了用户体验。所以选择使用Redis,然后推荐使用Set类型,因为Set类型的数据结构具有不重复,符合原创 2024-09-06 14:46:23 · 402 阅读 · 0 评论 -
发布和查看探店笔记:
注意:修改图片上传的地址,建议直接放到你的Ngixn下的imgs目录。此功能未用到redis。此功能未用到redis。原创 2024-09-06 14:45:15 · 265 阅读 · 0 评论 -
Redis应用之Feed流关注推送
1.关注推送也叫做Feed流,直译为投喂。为用户持续的提供“沉浸式”的体验,通过无限下拉刷新获取新的信息。2.Feed流是一种基于用户个性化需求和兴趣的信息流推送方式,常见于社交媒体、新闻应用、音乐应用等互联网平台。3.Feed流通过算法和用户行为数据分析,动态地将用户感兴趣的内容以流式方式呈现在用户的界面上。/*** 关注推送页面的笔记分页* @return*/@Override// 1、查询收件箱// 2、判断收件箱中是否有数据。原创 2024-09-06 14:43:15 · 1000 阅读 · 0 评论 -
[001-07-001].Redis中的键(KEY)常用命令
1.常见命令:2.命令案例:原创 2024-09-01 15:07:11 · 170 阅读 · 0 评论 -
[021-2].第2节:Redis的十大数据类型
1.String就是字符串类型2.一个key对应一个valuevalue是字符串3.String类型是二进制安全的(可以序列化)。任何形式的字符串都可以存储。比如jpg图片的二进制编码或者序列化的对象、JSON化的对象。4.一个Redis中字符串value最多可以存储512M数据,根据其字符串的格式不同,又可分为3类String:普通字符串int:整数类型,可以自增、自减操作float:浮点型,可以自增、自减操作5.不管其value是哪种格式,底层都是字节数组形式存储,只不过是编码方式不同;原创 2022-01-21 16:28:44 · 54 阅读 · 0 评论 -
[001-07-001].Redis中缓存双写一致性之更新策略探讨
多个线程同时去查询数据库的这条数据,那么我们可以在第一个查询数据的请求上使用一个 互斥锁来锁住它。其他的线程走到这一步拿不到锁就等着,等第一个线程查询到了数据,然后做缓存。后面的线程进来发现已经有缓存了,就直接走缓存。编码实现需要使用到Canal,在Cana篇章再做具体的整理。原创 2024-09-01 14:37:32 · 1190 阅读 · 0 评论 -
[001-07-001].第1节:Redis中的BigKey使用分析
大批量往Redis中插入2000W数据测试key。使用 Scan命令用于迭代数据库中的数据库键。1.BigKey不仅仅说的是key很大,参考 《阿里云Redis开发规范》计算每个键值的字节数。原创 2024-09-01 12:08:18 · 740 阅读 · 0 评论