- 博客(565)
- 资源 (21)
- 收藏
- 关注
原创 558、Vue 3 学习笔记 -【常用Composition API(七)】 2024.05.13
过滤器虽然看起来很方便,但它需要一个自定义语法,打破大括号内表达式是“只是JavaScript”的假设,这不仅有学习成本,而且有实现成本!使用传统OptionsAPI中,新增或者修改一个需求,就需要分别在data,methods,computed里修改。在vue3中:组件可以没有根标签,内部会将分多个标签包含在一个Fragment虚拟元素中。我们可以更加优雅的组织我们的代码,函数,让相关功能的代码更加有序的组织在一起。等待异步组件时渲染一些额外内容,让应用有更好的用户体验。子组件中声明自定义事件。
2024-05-13 13:33:55 433
原创 557、Vue 3 学习笔记 -【常用Composition API(六)】 2023.09.05
如果有一个对象数据,后续功能不会修改该对象中的属性,而是生新的对象来替换 ===> shallowRef。使用场景:用于读取响应式对象对应的普通对象,对这个普通对象的所有操作,不会引起页面更新。shallowReactive:只处理对象最外层属性的响应式(浅响应式)。shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。isReactive:检查一个对象是否是由reactive创建的响应式代理。作用:将一个由reactive生成的响应式对象转为普通对象。
2023-09-05 16:50:22 436
原创 556、Vue 3 学习笔记 -【常用Composition API(五)】 2023.08.25
什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装。类似于vue2.x中mixin。自定义hook的优势:复用代码,让setup中的逻辑更清楚易懂。x:0,y:0})// 获取鼠标点击坐标})})在vue文件中引入userPoint.js<p>鼠标点击坐标 x:{{point.x}} y:{{point.y}}<p>setup(){
2023-08-25 20:05:20 474
原创 555、Vue 3 学习笔记 -【常用Composition API(四)】 2023.07.06
(1)但computed注重的是计算出来的值(回调函数的返回值),所以必须写返回值。(2)而watchEffect更注重的是过程(回调函数的函数体),所以不用写返回值。第一个sum是基本数据类型,第二个也可以写成情况情况三,加一个deep:true。在beforeCreate之前执行一次,this是undefined。watch中的value问题。
2023-07-06 10:59:18 286
原创 554、Vue 3 学习笔记 -【常用Composition API(二)】 2023.06.30
b. setup不能是一个async函数,因为返回值不再是return的对象,而是promise,模板看不到return对象中的属性。语法: const 代理对象 = reactive(源对象) 接收一个对象(或数组),返回一个代理对象(proxy的实例对象,简称proxy对象)(2)reactive通过使用Proxy来实现响应式(数据劫持),并通过Reflect操作源对象内部的数据。(3)备注:ref也可以用来定义对象(或数组)类型数据,它内部会自动通过reactive转为代理对象。
2023-06-30 15:07:59 336
原创 552、Elasticsearch详细入门教程系列 -【分布式全文搜索引擎 Elasticsearch(三)】 2023.05.19
之前是对ES中的创建/查看/删除索引、创建定义映射、创建/查看/修改/删除文档的这些操作有了一定的了解认识,但是是通过Postman + JSON串的方法来实现的那么之后仍然是对ES中的索引、映射、文档进行操作,只是方法换成了Java API。
2023-05-19 15:23:23 833
原创 551、Elasticsearch详细入门教程系列 -【分布式全文搜索引擎 Elasticsearch(二)】 2023.04.04
这是因为ES在保存文档数据时,会将数据进行分词、拆解操作,并将拆解后的数据保存到倒排索引中,这样即使使用文字的一部分(小米可以查询到、小也可以查询到)也能查询到数据,这种方式就称为 全文检索。在ES中创建一个索引,就相当于在mysql中创建了一个数据库,而mysql中的数据库肯定是不能重复的,也即ES中的索引也不能重复,所以这是一个幂等性操作,需要发送PUT请求(如果重复发送PUT请求、重复添加索引,会返回错误信息),这里不能发送POST请求。创建数据库表需要设置字段名称,类型,长度,约束等;
2023-04-04 17:51:13 708 1
原创 550、Elasticsearch详细入门教程系列 -【分布式全文搜索引擎 Elasticsearch(一)】 2023.03.31
The Elastic Stack, 包括 Elasticsearch、Kibana、Beats 和 Logstash(也称为 ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为 ES, ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 Elastic Stack 技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。
2023-03-31 18:42:10 413
原创 549、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(三)】 2023.02.28
消息生产者就是把生产者 DefaultMQProducer 对象的生命周期分成构造函数、init、destroy 三个方法,构造函数中将生产者组名、NameServer 地址作为变量由 Spring 容器在配置时提供,init 方法中实例化 DefaultMQProducer 对象、设置 NameServer 地址、初始化生产者对象,destroy 方法用于生产者对象销毁时清理资源。消息消费者同消息生产者配置类似,多了一个消息监听器对象的定义和绑定。
2023-02-28 17:12:50 409
原创 548、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ (二)】 2023.02.28
首先启动 Name Server,先确保你的机器中已经安装了与 RocketMQ 相匹配的 JDK ,并设置了环境变量 JAVA_HOME ,然后在 RocketMQ 的安装目录下执行 bin 目录下的 mqnamesrv ,默认会将该命令的执行情况输出到当前目录的 nohup.out 文件,最后跟踪日志文件查看 Name Server 的实际运行情况。该类构造函数入参 consumerGroup 是消息消费者组的名字,需要保证该名字的唯一性。send 方法是同步调用,只要不抛异常就标识成功。
2023-02-28 17:04:00 582
原创 547、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ(一)】 2023.01.30
消费消息时通过 Consumer Group 实现了将消息分发到多个消费者服务器实例,比如某个 Topic 有9条消息,其中一个 Consumer Group 有3个实例(3个进程或3台机器),那么每个实例将均摊3条消息,这也意味着我们可以很方便的通过加机器来实现水平扩展。这种方式优点是消息丢失的非常少,且消息实时性不会受影响,Master 宕机后消费者可以继续从 Slave 消费,中间的过程对用户应用程序透明,不需要人工干预,性能同多 Master 方式几乎一样。消息(Message)就是要传输的信息。
2023-01-30 18:10:00 540
原创 546、Zookeeper详细入门教程系列 -【Zookeeper内部原理】 2022.11.06
有关zookeeper的内容还远不止这些,这篇更多的是介绍一些zookeeper的概念,少许客户端的命令操作就每放上来了,今天我们知道zookeeper的存储节点和监听机制,就可以实现很多功能。目前阶段了解这些就够了,有机会再深入的话,会写后续的文章来介绍。
2022-11-06 12:52:39 6385
原创 545、Zookeeper详细入门教程系列 -【什么是Zookeeper】 2022.11.06
在我的印象中,zookeeper是可以作为注册中心来存在的,之前的微服务架构更多的是采用Dubbo+zookeeper来搭配着使用的,因此,zookeeper它是主要服务于分布式系统。而分布式系统的特点就是会有多个节点存在,实时感知每个节点的状态,管理每个节点就变得尤为重要。而zookeeper的出现就解决了这个问题。
2022-11-06 12:44:30 308
原创 544、RabbitMQ详细入门教程系列 -【手动消费确认】 2022.09.05
RabbitMQ(四) --消费者Consumer一文中详细讲解了MQ消息消费的相关问题,在SpringAMQP中基本都会选择针对Connetion配置队列的监听器进行消息消费。配置默认的监听实例类SimpleMessageListenerContainer中对于消息消费的确认默认为autoAck,接下来本文将围绕手动ACK讲述。
2022-09-05 14:24:10 1289
原创 543、RabbitMQ详细入门教程系列 -【Confirm与Mandatory】 2022.09.05
RabbitMQ原生系列文章RbbitMQ(五) – 100%消息投递消费中详细介绍过这两个操作Confirm:消息是否投递到Exchange中,具备两个回调函数,通过不同的回调函数判断是否成功。也就是说不管客户端是否将消息成功投递到Exchange都会触发这个监听回调Mandatory:消息是否投递到Queue中,当消息到达Exchange后因为内部错误、路由错误等原因导致消息未到达Queue都会触发该回调信息。回调的参数中就包括了丢失的消息。
2022-09-05 14:17:48 383
原创 542、RabbitMQ详细入门教程系列 -【延迟队列实现】 2022.09.05
前面将RabbitMQ时提到过延迟队列这个概念,延迟队列经典应用场景莫过于订单超时未支付自动关闭。想要使用延时队列实现该功能首先需要了解RabbitMQ以下两个特性:队列消息自动删除(TTL)死信队列(dead-letter-exchange)
2022-09-05 14:10:31 540
原创 541、RabbitMQ详细入门教程系列 -【Jackson2JsonMessageConvert】 2022.09.05
RabbitMQ系列文章讲解使用过程中重要知识点,示例都是采用原生Java客户端完成。实际开发过程中大部分使用者都是与Spring进行集成,通过SpringAMQP运用RabbitMQ。接下来几篇文章将会从用法、源码角度讲解SpringAMQP生产级别应用。
2022-09-05 14:02:14 1762
原创 540、RabbitMQ详细入门教程系列 -【100%消息投递消费(二)】 2022.08.31
队列持久化 + 队列消息持久化 = 完整持久化,持久化对RabbitMQ应用的性能是一种负担,可以根据数据类型进行范围数据持久化。如订单数据、支付数据等等较为重要的数据可以采用持久化的操作尽量避免消息丢失。...
2022-08-31 11:36:42 476
原创 539、RabbitMQ详细入门教程系列 -【100%消息投递消费(一)】 2022.08.31
生产者生产消息到消费者消息消费,中间需要生产者将消息发送到交换器,再由交换器路由到队列存储,然后消费者进行消息消费。消费者将消息发送到交换器因为RabbitMQ内部原因丢失消息交换器将消息路由到队列,因为队列不存在等因素导致消息丢失队列中存储的消息在消费者未消费时RabbitMQ服务宕机导致消息丢失消费者消费消息时消费者宕机未处理完消息导致消息丢失针对上述情况,本文将根据每个节点讲述如何操作确保消息投递的可靠性,同时在保障可靠性的情况下可能会引发系列如消息重复等问题,也是本文将会涉及到的重点。...
2022-08-31 11:28:10 302
原创 538、RabbitMQ详细入门教程系列 -【消费者Consumer(二)】 2022.08.31
第一篇文章中有一个命令是Basic.Ack用于客户端向服务端反馈确认消息已经正常消费,当接收到命令后RabbityMQ服务端才会删除消息,从消费者客户端确保消息不会丢失。程序在消费消息过程中抛出异常,或者是消息需要重复消费,这时候就可以将消费的消息拒绝确认。拒绝确认的消息有两种去处,删除、放回队列,通过参数requeue控制,拒绝确认的消息放回队列时会放置在队列首位,拒绝消息不放回队列可以搭配死信队列使用。消息消费RabbitMQ采取的策略就是轮询机制,将每个消息发送给唯一的消费者。...
2022-08-31 11:19:09 1250
原创 537、RabbitMQ详细入门教程系列 -【消费者Consumer(一)】 2022.08.31
经过前面三篇文章的学习,对于RabbitMQ中间件应该处于拨开云雾见青天阶段。本文将趁热打铁,完善RabbitMQ基础应用最后一个消费版块。当然文中会持续深入讲解有关消息分发、消费端确认等中阶特性。...
2022-08-31 11:12:36 350
原创 536、RabbitMQ详细入门教程系列 -【消息与队列进阶 RabbitMQ(二)】 2022.07.29
设置优先级队列操作在队列实例化时通过参数map实现,前面一直展示代码时queueDeclare()第五个参数都设置为null,其实该参数为Map集合,表示可以通过key-value的形式设置队列的其它属性。前面讲到单消息自动过期TTL策略实现使用BasicProperties类属性expiration即可,同时也说到了队列积压消息最大数量限制在队列实例化时依赖x-max-length属性实现,采用默认策略drop-head会删除头部消息。稍安勿躁,若实现消息优先级则必须设置队列为优先级队列。...
2022-07-29 18:23:07 658
原创 535、RabbitMQ详细入门教程系列 -【消息与队列进阶 RabbitMQ(一)】 2022.07.29
RabbitMQ(一)–初识RabbitMQ通过AMQP协议触摸RabbitMQ整体结构设计[RabbitMQ(二)–交换器与队列API探索]juejin.cn/post/684490…)完成RabbitMQ服务端结构基础学习RabbitMQ(三)–消息与队列进阶本文将会是RabbitMQ基础篇最倒数第二篇,同时也是进阶RabbitMQ第一篇文章。内容将会由基础消息生产衍生到TTL、Priority、MaxLength、DeadLetter等中阶操作。...
2022-07-29 18:03:02 429
原创 534、RabbitMQ详细入门教程系列 -【交换器与队列API探索 RabbitMQ(二)】 2022.06.22
第一篇文章RabbitMQ(一) – 初识RabbitMQ中基于AMQP协议对RabbitMQ整体进行了简介,旨在帮助阅读本系列文章的朋友建立初步的概念。文中最后部分使用到的客户端操作API并未深入的进行学习理解,本文将从RabbbitMQ应用服务部分即Broker所包含的交换器与队列两方面深入学习。为什么要在生产者与队列之间提出交换器概念?试想如果生产者与队列直接耦合,当生产者客户端需要将一条消息发送至多个队列,那就需要多次操作。......
2022-06-21 15:14:54 147
原创 533、RabbitMQ详细入门教程系列 -【初识RabbitMQ(一)】 2022.06.21
RabbitMQ队列基于AMQP协议使用Erlang语言开发实现,支持多客户端类型如Java、Ruby、Go、PHP等。其余比较流行的消息队列中间件,相对的还有RocketMQ、ActiveMQ、Kafka等等。后续需要测试RabbitMQ,如果没有安装服务请移步RabbitMQ服务安装。MQ总结而言最大的三个特点就是异步、削峰、解耦,如下图所示。其余复杂的概念就不照本宣科抄袭了,反正写在这里也是废话。最简单的概括就是存储数据的容器,与MySQL数据库、Redis数据库等类似,区别在于自身实现特点决定了应用
2022-06-21 14:53:26 245
原创 532、ActiveMQ详细入门教程系列 -【ActiveMQ(二)】 2022.05.21
目录1、JMS的消息格式2、消息可靠性机制2.1 优先级2.2 消息过期2.3 临时目的地3、什么是ActiveMQ3.1 存储方式3.2 协议4、案例(Hello World)4.1 安装启动4.2 web控制台4.3 web控制台4.4 开发5、总结6、参考链接1、JMS的消息格式JMS消息由以下三部分组成的:消息头:每个消息头字段都有相应的getter和setter方法。消息属性:如果需要除消息头字段以外的值,那么可以使用消息属性。消息体:JMS定义的消息类型有T
2022-05-21 21:22:31 221
原创 531、ActiveMQ详细入门教程系列 -【ActiveMQ(一)】 2022.05.21
目录1、什么是消息中间件2、消息中间件的应用场景2.1 异步通信2.2 缓冲2.3 解耦2.4 冗余2.5 扩展性2.6 可恢复性2.7 顺序保证2.8 过载保护2.9 数据流处理3、常用消息队列(ActiveMQ、RabbitMQ、RocketMQ、Kafka)比较4、消息中间件的角色5、参考链接1、什么是消息中间件两个系统或两个客户端之间进行消息传送,利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间
2022-05-21 21:04:31 231
原创 530、我的CSDN创作纪念日 - 2022.04.23(河南 郑州)
机缘我是2018年04月20号开启的CSDN博客创作之旅的,至今已坚持4年的写作,共创作536篇文章。我的第一篇文章是记录我个人学习Python的心得体会,后面又记录了前端、Java、数据库、扫码点餐系统等一系列的自我学习的文章。这其中学习材料有来源于IT培训班的录制视频,如传智播客、黑马程序员视频等,也有来自于网络上的大牛博客,这些学习素材让我收获颇多。收获在创作这四年时光里,我收获了很多有益的东西,拓宽了专业视野,了解到很多IT技术架构,加强了对前端、Java后端专业知识的研究,锻炼了写作和
2022-04-23 15:30:38 2365 2
原创 529、Java工程师的进阶之路 -【 Kafka (四)】 2022.04.23
目录1、Kafka 重平衡流程1.1 重平衡状态转化1.2 从消费者看重平衡1.3 从协调者来看重平衡1.3.1 新成员加入组1.3.2 组成员主动离开1.3.3 组成员崩溃离开1.3.4 组成员提交位移2、参考链接1、Kafka 重平衡流程一个消费者组中是要有一个群组协调者(Coordinator)的,而重平衡的流程就是由 Coordinator 的帮助下来完成的。群组协调器(Coordinator):群组协调器是一个能够从消费者群组中收到所有消费者发送心跳消息的 broker。在最早期的版本中,
2022-04-23 10:29:07 280 1
原创 528、Java工程师的进阶之路 -【 Kafka (三)】 2022.04.13
目录1.Kafka 的副本机制1.1. Leader 副本1.2. Follower 副本1.3. Follower 和 Leader 副本同步1.4. 同步复制和异步复制1.5 ISR(In-Sync Replicas)1.6. Unclean 领导者选举2. Kafka 的请求处理流程2.1. 响应式模型2.2. 生产请求2.3. 获取请求2.4. 元数据请求3.参考链接1.Kafka 的副本机制复制功能是 Kafka 架构的核心功能,在 Kafka 文档里面 Kafka 把自己描述为 一个分布式
2022-04-13 16:58:17 178
原创 527、Java工程师的进阶之路 -【 Kafka (二)】 2022.02.28
目录1.Kafka 集群成员关系2. Broker Controller 控制器2.1. Controller 的作用2.2. Controller 的选举2.3. Controller 的数据存储2.4. Controller 的故障转移2.5. Controller 的设计原理3、参考链接上文我们对 Kafka 的基本概念和工作流程进行了介绍,如果只是为了开发 Kafka 应用程序,或者只是在生产环境使用 Kafka,那么了解 Kafka 的内部工作原理不是必须的。不过,了解 Kafka 的内部工作原
2022-02-28 10:24:51 130
原创 526 、Java工程师的进阶之路 -【 Kafka (一)】 2022.01.20
目录1. Kafka 诞生背景2. 为何使用消息系统3. Kafka 基本架构3.1. 拓扑结构3.2. 名词概念4. Kafka 基本特性4.1. 设计思想4.2. 应用场景5. Push 模式 vs Pull 模式5.1. 点对点模式5.2. 发布订阅模式5.3. Kafka 的选择6. Kafka 工作流程6.1. 发送数据6.2. 保存数据6.3. 消费数据7. 参考链接1. Kafka 诞生背景Kafka 是最初由 Linkedin 公司开发,是一个分布式、支持分区的(partition)、
2022-01-20 23:15:09 151
原创 525、Java工程师的进阶之路 -【 RocketMQ (二)】 2022.01.06
目录1. RocketMQ 设计目的1.1. 发布/订阅1.2. 消息优先级1.3. 消息顺序1.4. 消息过滤1.5. 消息持久化1.6. 消息可靠性1.7. 消息实时性1.8. 保证至少一次1.9. 保证只有一次1.10. Broker的Buffer溢出1.11. 回溯消费1.12. 消息堆积1.13. 分布式事务1.14. 定时消息1.15. 消息重试2. RocketMQ 消费模型3. RocketMQ 网络模型4. RocketMQ 存储模型5、RocketMQ 高可用性6. RocketMQ 定
2022-01-06 17:28:28 174
原创 524、Java工程师的进阶之路 -【 RocketMQ (一)】 2021.12.29
目录1、RocketMQ 简介2、RocketMQ 架构图3、RocketMQ 名词解释4、 RocketMQ Topic和Queue5. RocketMQ 入门实例5.1. RocketMQ 生产者5.2. RocketMQ 消费者6、参考链接1、RocketMQ 简介RocketMQ 前身叫做 MetaQ, 在 MetaQ 发布 3.0 版本的时候改名为 RocketMQ,其本质上的设计思路和 Kafka 类似,但是和 Kafka 不同的是其使用 Java 进行开发,由于在国内的 Java 受众群体
2021-12-29 10:57:57 1117
原创 523、Java Spring Cloud Alibaba -【Spring Cloud Alibaba SkyWalking】 2021.12.27
目录1. SkyWalking 简介1.1 SkyWalking的组成2. 使用 Docker 快速搭建 SkyWalking 8.02.1 在 linux 服务器上选择并建立目录;2.2 进入 skywalking-docker 目录,建立一个名为 skywalking.yaml 的脚本文件,内容如下:2.3 在 Spring 项目中引入 SkyWalking 客户端3、项目 GitHub 地址:4、参考链接1. SkyWalking 简介Skywalking 是由国内开源爱好者吴晟(原 OneA
2021-12-27 15:44:59 214
原创 522、Java Spring Cloud Alibaba -【Spring Cloud Alibaba Seata】 2021.12.27
目录1. Seata 简介1.1 简要发展史1.2 Seata 设计初衷2. 使用 Docker 快速搭建 Seata 1.42.1 在 linux 服务器上选择并建立目录;2.2 进入 seata-docker 目录,建立一个名为 registry.conf 的配置文件,内容如下:2.3 修改 config.txt 中的参数中的一行(具体原因后边会解释):2.4 上传 config.txt 中的配置参数到 Nacos,实现动态配置:2.5 上传完配置参数,我们回到 seata-docker 目录,建立名为
2021-12-27 15:25:40 323
原创 521、Java Spring Cloud Alibaba -【Spring Cloud Alibaba RocketMQ 】 2021.12.27
目录1、RocketMQ 简介2、使用 Docker 快速搭建 RocketMQ 4.42.1 在 linux 服务器上选择并建立目录;2.2 进入 rocketmq-docker 目录,建立一个名为 broker.conf 的配置文件,内容如下:2.3 还是在 rocketmq-docker 目录,建立一个名为 rocketmq.yaml 的脚本文件;2.4 开启 broker 用到的防火墙端口,方便后续使用:2.5 执行 sentinel-dashboard.yaml 脚本启动容器:2.6 进入 roc
2021-12-27 14:42:24 267
原创 520、Java Spring Cloud Alibaba -【Spring Cloud Alibaba Zuul】 2021.11.02
目录1、 Zuul 简介2、Zuul 网关的引入3、Zuul 网关的快速搭建4、参考链接1、 Zuul 简介Zuul 微服务网关是为 Spring Cloud Netflix 提供动态路由,监控,弹性,安全等服务的框架。可以和Eureka、Ribbon、Hystrix 等组件配合使用。1.1 Zuul 主要功能认证和安全: 识别每个需要认证的资源,拒绝不符合要求的请求。性能监测: 在服务边界追踪并统计数据,提供精确的生产视图。动态路由: 根据需要将请求动态路由到后端集群。压力测试: 逐渐增加
2021-11-02 15:20:16 706
原创 519、Java Spring Cloud Alibaba -【Spring Cloud Alibaba Oauth2 - 下】 2021.11.01
目录1、搭建 Oauth2 资源服务(客户端)2、Feign 微服务间调用认证踩坑3、参考链接1、搭建 Oauth2 资源服务(客户端)搭建下边几个服务任选一个:会员服务:herring-member-service,微服务之一,接收到请求后会到认证中心验证。订单服务:herring-orders-service,微服务之二,接收到请求后会到认证中心验证。商品服务:herring-product-service,微服务之三,接收到请求后会到认证中心验证。添加 pom 文件依赖:
2021-11-01 18:16:09 434
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人