- 博客(127)
- 收藏
- 关注
原创 Kafka初步学习
思考:在acks=-1或all的情况下,Leader接收到数据并持久化后,所有Follower开始同步Leader刚刚持久化的数据,但是有一个Follower因故障迟迟不能进行数据同步,该问题应该怎么解决?replica:副本,为了保证集群中某个节点发生故障,该节点的partition数据不会丢失,一个topic的每个分区都有若干个副本,一个leader和若干个follower。follower:每个分区多个副本中的“从”,实时从leader中同步数据,保持和leader数据的同步。
2024-06-06 11:39:27
639
原创 docker的学习
安装docker引擎yum install -y docker启动dockersystemctl start docker设置docker自启动systemctl enable docker测试docker是否安装成功docker run hello-world镜像下载:docker pull 镜像名字:[tag] 如果不指定tag,则下载docker hub 公共注册服务器中仓库的最新版本查看镜像:列出本地主机上已有的镜像docker images镜像搜索:docker search
2024-06-04 16:39:54
748
原创 Nginx实战:代理服务-反向代理
应该熟练掌握尤其是proxy_pass指令,在实际应用过程中需要注意。学习Nginx服务器的反向代理服务,要涉及与后端代理服务器相关。的配置指令比较重要,是为客户端提供正常Web服务的基础,大家。该指令用来设置被代理服务器的地址,可以是主机名称、IP地址加。或P地址加端口号、URI等要素。传输协议通常是"http"或。URL为要设置的被代理服务器的地址,包含传输协议、主机名称。核心指令:proxy_pass。一些配置细节,需要小心使用。者"https://"。
2024-06-01 17:14:07
295
原创 Nginx实战:防盗链
HTTP Referer是header的一部分,当浏览器向web服务器发送请求。到一个朋友那里,他的服务器就能够从HTTP Referer中统计出每天。的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来。内容不在自己的服务器上,通过技术手段将其他网站的内容(比如。一些音乐、图片、软件的下载地址)放置在自己的网站中,通过这。的,服务器籍此可以获得一些信息用于处理。防止第三方引用链接访问我们的图片,消耗服务器资源和网络流。有多少用户点击我主页上的链接访问他的网站。
2024-06-01 15:40:20
386
原创 Nginx实战:浏览器缓存
2 对于js,图片,css,字体等,设置max-age=2592000. 也就是30天;比如,对常见格式的图片、Flash文件在浏览器本地缓存30天,对。式的文件很少会被修改,则可以通过expires设置浏览器缓存。浏览器缓存是为了加速浏览,浏览器在用户磁盘上,对最近请求过。本地磁盘显示文档,这样,就可以加速页面的阅览,缓存的方式节。比如对于提交的订单,为了防止浏览器回退重新提交,可以使用。的是服务器,进而判断订单的状态给出相应的提示信息!约了网络的资源,提高了网络的效率。
2024-06-01 15:27:40
728
原创 一些知识点
4.requires_new“必须再事务中执行,如果没有事务,创建事务,如果有事务,把当前事务挂起,再重新新建一个事务,调用者统一提交回滚。不可重复读:事务A读取表中一行数据时,另一个事务修改这行数据,事务A读取到的数据和表中真实的数据不一致(查询一行数据,别的修改这行)幻读:事务A对表中数据做查询全部操作,事务B向表新增一条数据,事务A读取的数据和表中不一致(查询全部,别的新增数据)7.mandatory:必须再事务内部执行,如果有事务,就再事务中执行,如果没有事务,报错。
2024-05-31 17:26:56
515
原创 nginx一些命令
return指令:停止处理请求,直接返回响应码或重定向到其他的url,执行return指令后,location中后续指令不会执行。if指令:该指令用来支持条件判断,并根据条件判断结果选择不同的nginx配置,可以在server块或location块中。该指令通过正则表达式的使用来改变uri,可以同时存在一个或者多个指令,按照顺序依次对url进行匹配和处理。4.地址转发过程中,可以将客户端请求的request范围内的属性传递给新的页面,但地址重写不可以。1.地址转发后客户端浏览器地址栏中的地址显示是不变的;
2024-05-31 16:57:38
384
原创 Shell脚本语言学习1
子bash和当前bash,可以使用type source.我们执行ps -f 可以查看当前bash环境,创建一个子bash,在当前子bash环境下,依然可以运行shell文件。最后一次执行命令状态,如果结果是0,证明上面执行的命令都是正确的,如果结果不是0,则证明上面命令不正确。中,变量是没有类型的,或者我们理解为全部都是字符串类型如果变量的值需要做数值运算,可以使用。$n 其代表接受参数,n是数字,代表在执行脚本时候传递的参数数量,例如$1-@非常相似,都代表命令行所有的参数,但是。
2024-05-21 17:43:25
789
原创 ngixn 准备
确认yum可用,确认防火墙,确认SELinux一项安装参数:gcc:编译依赖gcc环境pcre:PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 Perl 兼容的正则表达式库。zlib:zlib库提供了很多种压缩和解压缩的方式,Nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
2023-12-10 22:14:52
931
原创 Linux打包压缩与搜索命令
size 匹配文件的大小(+50KB 为查找超过 50KB 的文件,而-50KB 为查找小于 50KB 的文件)-ctime -n +n 匹配修改文件权限的时间(-n 指 n 天以内,+n 指 n 天以前)-mtime -n +n 匹配修改内容的时间(-n 指 n 天以内,+n 指 n 天以前)-atime -n +n 匹配访问文件的时间(-n 指 n 天以内,+n 指 n 天以前)-perm 匹配权限(mode 为完全匹配,-mode 为包含即可)-nouser 匹配无所有者的文件。
2023-12-03 21:33:30
560
原创 组合式API_模板引用
虽然 Vue 的声明性渲染模型为你抽象了大部分对 DOM 的直接操作,但在某些情况下,我们仍然需要直接访问底层 DOM 元素。要实现这一点,我们可以使用特殊的 ref attribute,组合式API的实现更为简洁。选项式API_模板引用。组合式API_模板应用。
2023-11-17 22:04:00
475
原创 基于 Redis 实现的分布式锁
Redisson - 是一个高级的分布式协调Redis客服端,能帮助用户在分布式环境中轻松实现一些Java的对象,Redisson、Jedis、Lettuce 是三个不同的操作 Redis 的客户端,Jedis、Lettuce 的 API 更侧重对 Reids 数据库的 CRUD(增删改查),而 Redisson API 侧重于分布式开发。删除锁的时候要判断,是不是自己的,如果是再删除。Redis分布式锁误删除问题解决方案。超时释放:获取锁时设置一个超时时间。编写Redis分布式锁工具类。
2023-11-14 22:53:14
336
原创 分布式锁介绍
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁的实现。如果不同的系统或同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性。
2023-11-14 22:31:12
220
原创 VUE选项式API,组合式API
使用选项式 API,我们可以用包含多个选项的对象来描述组件的逻辑,例如 data、methods 和 mounted。优点:功能逻辑复杂繁多情况下,各个功能逻辑代码组织再一起,便于阅读和维护。缺点:代码组织性差,相似的逻辑代码不便于复用,逻辑复杂代码多了不好阅读。通过组合式 API,我们可以使用导入的 API 函数来描述组件逻辑。在 vue2.x 项目中使用的就是 选项式API 写法。优点:易于学习和使用,写代码的位置已经约定好了。缺点:需要有良好的代码组织能力和拆分逻辑能力。
2023-11-13 22:35:12
324
原创 VUE项目从哪里开始?
应用实例必须在调用了 .mount() 方法后才会渲染出来。该方法接收一个“容器”参数,可以是一个实际的 DOM 元素或是一个 CSS 选择器字符串。我们传入 createApp 的对象实际上是一个组件,每个应用都需要一个“根组件”,其他组件将作为其子组件。在src目录下的assets文件夹的作用就是存放公共资源,例如:图片、公共CSS或者字体图标等。每个 Vue 应用都是通过 createApp函数创建一个新的 应用实例。
2023-11-12 20:34:26
206
原创 VUE组件的生命周期
每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。
2023-11-12 20:07:08
368
原创 VUE Slot
在某些场景中,我们可能想要为子组件传递一些模板片段,让子组件在它们的组件中渲染这些片段.元素是一个插槽出口 (slot outlet),标示了父元素提供的插槽内容 (slot content) 将在哪里被渲染。
2023-11-12 19:43:09
176
原创 VUE基础
const的作用就是将变量声明为一个常量,不能被修改,不可以再次赋值,它的指向是不可以改变的,只能指向某处固定区域,不能再指向其它地方。cnpm install --save vue-i18n@next vue3需要安装最新版本。1.声明后必须初始化赋值,如:const name=‘aaa’,不可以 const name;2.常量的含义是指向的对象不能修改,但是可以修改对象中的属性。element-plus按需加载。安装element-plus。
2023-11-12 18:28:27
103
原创 RabbitMQ 死信队列
在MQ中,当消息成为死信(Dead message)后,消息中间件可以将其从当前队列发送到另一个队列中,这个队列就是死信队列。而在RabbitMQ中,由于有交换机的概念,实际是将死信发送给了死信交换机(Dead Letter Exchange,简称DLX)。死信交换机和死信队列和普通的没有区别。2 消费者拒签消息,并且不把消息重新放入原队列。3 消息到达存活时间未被消费。1 队列消息长度到达限制。
2023-11-06 22:40:14
515
原创 RabbitMQ(高级特性)优先级队列
假设在电商系统中有一个订单催付的场景,即客户在一段时间内未付款会给用户推送一条短信提醒,但是系统中分为大型商家和小型商家。比如像苹果,小米这样大商家一年能给我们创造很大的利润,所以在订单量大时,他们的订单必须得到优先处理,此时就需要为不同的消息设置不同的优先级,此时我们要使用优先级队列。优先级越高,越先被消费。
2023-11-06 22:27:53
493
原创 RabbitMQ(高级特性)设置单条消息存活时间
在以上案例中,i=5的消息才有过期时间,10s后消息并没有马上被移除,但该消息已经不会被消费了,当它到达队列顶端时会被移除。2 消息过期后,并不会马上移除消息,只有消息消费到队列顶端时,才会移除该消息。1 如果设置了单条消息的存活时间,也设置了队列的存活时间,以时间短的为准。设置单条消息存活时间。
2023-11-06 22:05:35
976
1
原创 RabbitMQ(高级特性) 设置队列所有消息存活时间
RabbitMQ可以设置消息的存活时间(Time To Live,简称TTL),当消息到达存活时间后还没有被消费,会被移出队列。RabbitMQ可以对队列的所有消息设置存活时间,也可以对某条消息设置存活时间。
2023-11-06 21:56:47
731
原创 RabbitMQ消息可靠性投递
RabbitMQ消息投递的路径为:生产者 —> 交换机 —> 队列 —> 消费者在RabbitMQ工作的过程中,每个环节消息都可能传递失败,那么RabbitMQ是如何监听消息是否成功投递的呢?确认模式(confirm)可以监听消息是否从生产者成功传递到交换机。退回模式(return)可以监听消息是否从交换机成功传递到队列。消费者消息确认(Consumer Ack)可以监听消费者是否成功处理消息。
2023-11-06 20:50:20
368
原创 VUE重学
vue默认按照 就地更新 的策略更新通过v-for渲染的列表,当数据项顺序改变时,vue不会随之移动dom元素顺序,而是就地跟新每个元素,确保他们在原本指定的索引位置上渲染。v-if是按条件渲染,因为他确保在切换时,条件区块内的事件监听器和子组件都会被销毁和重建,也是惰性的,如果初次渲染条件为false,则不会做任何事,只有true才会渲染。为了给vue一个提示,以便跟踪每个节点的标识,从而重用和重新排序现有的元素,你需要为每个元素对应的块提供一个唯一的key :key。
2023-10-27 23:35:00
245
原创 一个小需求:给定一些xls文件还有一个带有学生名称的xls单个文件,根据后者xls中提供的学生名称和学生所在班级去前者一堆xls文件中找到相关信息,并将前者一堆xls文件中的信息补充到后者哪个单一的x
【代码】一个小需求:给定一些xls文件还有一个带有学生名称的xls单个文件,根据后者xls中提供的学生名称和学生所在班级去前者一堆xls文件中找到相关信息,并将前者一堆xls文件中的信息补充到后者哪个单一的x。
2023-08-29 22:00:30
74
原创 SpringSecurity自定义认证
创建一个自定义的认证令牌,继承自UsernamePasswordAuthenticationToken,用于封装用户的邮箱和验证码信息。自定义一个实现UserDetails接口的类,用于表示用户信息。创建一个自定义的过滤器,用于处理邮箱验证码登录逻辑。这个过滤器将在用户登录时验证邮箱和验证码,并完成用户认证过程。创建一个自定义的AuthenticationProvider,用于处理邮箱验证登录的认证逻辑。创建一个实现UserDetailsService接口的类,用于根据邮箱查询用户信息。
2023-08-02 20:45:59
335
原创 volatile 2
对于volatile变量具备可见性,jvm只是保证从主内存加载到线程工作内存的值是最新的,也仅是数据加载时是最新的。但是多线程环境下,数据计算和数据赋值操作可能多次出现,若数据在加载之后,若主内存volatile修饰变量发生修改之后,线程工作内存中的操作将会作废去读主内存最新值,操作出现写丢失的问题,即各线程私有内存和主内存公共内存中变量不同步,进而导致数据不一致。由此可见volatile解决的是变量读时的可见性问题,但无法保证原子性,对于多线程修改主内存共享变量的场景必须使用加锁同步。
2023-06-26 23:04:11
300
原创 volatile
内存屏障其实就是一种jvm指令,java内存模型的重排规则会要求java虚拟机在生成jvm指令时插入特定的内存屏障指令,通过这些内存屏障指令,volatile实现乐java内存模型的可见性和有序性,但volatile无法保证原子性。当第一个操作为volatile读时,不论第二个操作是什莫,都不能进行重排序,这样操作保证了volatile读之后的操作不会被重排到volatile读之前。读屏障:处理器在读屏障之后的读操作,都在读屏障之后执行。内存屏障之后的所有读操作都能获得内存屏障之前的所有写操作的最新结果。
2023-06-25 22:09:19
367
原创 JMM(内存模型)
本身是一种抽象的概念并不真实存在它仅仅描述的是一组约定或规范,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的原子性,可见性,有序性展开。可见性:(cpu的缓存一致性协议保证可见性)当一个线程修改了某一个共享变量的值,其他线程是否能够立即知道该变更,jmm规定了所有的变量都存储在主内存中。屏蔽各个硬件平台和操作系统的内存访问差异以实现让java程序在各种平台下都能达到一致的内存访问效果。
2023-06-14 20:55:21
75
原创 搭建Kafka集群
firewall-cmd --zone=public --add-port=2000-40000/tcp --permanent //开放端口。echo 1 > myid // 在每台zookeeper的zkdata里,echo 2 > myid ,echo 3 > myid。systemctl start firewalld.service //开启防火墙。systemctl stop firewalld.service //关闭防火墙。将jdk压缩包解压并安装在/usr/lib/jvm目录下。
2023-06-02 22:39:15
624
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人