自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(107)
  • 问答 (1)
  • 收藏
  • 关注

原创 关于Kafka Topic分区和Replication分配的策略

/定义kafka集群配置//创建Admin管理员对象//定义Topic属性// 分区0,Leader副本在3上,第二个副本在1上。//创建Topictest4不过在手动分配时,确实需要了解每个broker的负载情况,以便做出更优的分配策略。你可以使用Kafka的类来获取集群的状态信息。

2024-07-14 20:24:04 353

原创 Docker Compose部署Kafka集群并在宿主机Windows连接开发

广播给客户端的地址是localhost:19092、localhost:29092、localhost:39092,也就是windows上的客户端通过localhost:19092访问broker,这会被docker的-p映射到对应容器的9092,被。是broker注册在zookeeper或者controller broker里面的元数据,当消费者或者生产者使用Bootstrap-Server去连接kafka集群时,集群会返回元数据等信息到客户端,客户端会根据每个broker提供的。即允许非加密的通信。

2024-07-14 20:18:22 675

原创 Kafka基础组件图推演

虽然每个分区的同步过程是独立的,但每个Broker会为它所管理的每个分区(无论是Leader还是Follower)启动相应的复制线程,这些线程负责处理具体的同步任务。每个分区的Leader和Follower之间的同步是独立进行的。是Kafka的网络通信框架的一个核心部分,负责管理和调度网络请求。一个Broker成功竞选为新的Controller Broker后,会从Zookeeper读取最新的集群元数据。在Broker2和Broker3上处理从Broker1接收的复制请求,将消息写入它们各自的日志文件。

2024-07-11 19:18:32 816

原创 Kafka基础框架图推演

新的分区从创建时开始是空的,只有在后续生产者发送消息时,才会向这些新的分区写入数据。一旦生产者获取了这些元数据,它就知道每个分区的Leader Broker是谁,从而可以将消息直接发送到正确的Leader Broker。在Kafka中,生产者将消息发送到Broker时,Broker的第一个操作就是将消息记录到磁盘中,以确保消息的持久性和可靠性。:分区的多副本下,负责同步Leader的数据的分区所处的broker。:分区的多副本下,负责处理所有的读写请求的分区所处的broker。:分区可以存在多副本。

2024-07-11 19:17:31 678

原创 docker部署简单的Kafka

这些命令将使 ZooKeeper 和 Kafka 容器在同一个 Docker 网络中运行,并确保它们可以相互通信。如果可以成功列出 Kafka 主题,则表示 Kafka 和 ZooKeeper 正常运行。通过以上步骤,可以确认 ZooKeeper 和 Kafka 容器是否正常运行并相互通信。然后,运行 ZooKeeper 容器并将其连接到。最后,运行 Kafka 容器并将其连接到。选择一组兼容性好的版本。

2024-07-03 16:51:46 558 1

原创 Hexo结合多个主题扩展为Gallery画廊并实现文章加密

当前PC环境中有Node和Git。版本可以参考Hexo文档。文章中出现的yourusername为Github用户名,your-repo为仓库名。

2024-06-25 19:36:27 434

原创 Typora + Hexo 图片路径问题(Typedown)

当一篇名为xxx.md的文章引用1.png图片时,默认让1.png保持在xxx文件夹下,那么md中即可使用。而typora中,或者Typedown中,复制图片时,一般使用。被注释掉了是不会打印日志对比前后修改的,没注释的会。但是如果你是typedown就会发现,不支持解析。,那么只有每次写的时候手动选择同级同名文件夹了。Hexo上对于图片在md中的引用,使用了。配置,来更好的管理图片。

2024-06-23 21:40:30 605

原创 Nginx基础概念和常用操作

这意味着,nginx 把所有对服务器根路径的请求,代理到 /usr/share/nginx/html 目录下,并且把 index.html 或 index.htm 作为默认页面。后,数据在内核空间中直接从一个文件描述符传输到另一个文件描述符,避免了在用户空间和内核空间之间的多次拷贝,从而提高了传输效率。后,Nginx 会尝试将数据块一次性发送到网络,而不是逐个包地发送,从而减少包的数量,提高传输效率。可以看到配置文件位于。在不断刷新页面会发现,反向代理是以“轮询”的方式,将请求分发到3个web服务之一的。

2024-06-23 21:39:43 937

原创 爬取CSDN博文到本地(包含图片,标签等信息)

这里进行一定的改进,可以更准确获取时间,也可以选择图片的存放方式是否集中或分离到每篇文章的同名文件夹,以适应部分md扩展语法,比如。项目原作者:https://gitee.com/liushili888/csdn-is—mark-down。很多情况下,我们需要将CSDN中的文章转化为markdown文档,直接复制全文是不可以的,CSDN不支持。改进后仓库地址:https://github.com/Xiamu-ssr/csdnToMD。

2024-06-20 21:44:30 462

原创 实现Hexo新建博文时自带随机默认封面

前提是选择的主题在中支持cover和thumbnail,主题之间对于这两个属性的定义可能并不用,如果不适用,只需要根据逻辑修改脚本即可。

2024-06-20 17:18:04 727

原创 如何优雅的使用Github Action服务来将Hexo部署到Github Pages

文章添加编辑后,现在只需要推送到仓库,那么github不仅会保存你的Hexo个人博客源码,还会自动更新个人博客静态页面到gh-pages,由此触发github-page功能来更新你的个人博客网站。,随后在左边栏目就可以看到新Hexo Utils的新菜单,只要你的VSCode当前打开的文件夹是hexo的根目录,那么插件就会自动识别到,当你对md文件使用“侧边预览”时,图片就正常显示了。缺少仓库地址,所以把请求地址复制一份,并在后面添加上仓库名即可,这需要修改_config.yml中修改url字段。

2024-06-20 17:14:22 1128

原创 22种常用设计模式示例代码

仓库地址参考教程。

2024-06-18 16:28:24 714 1

原创 深入探讨5种单例模式

以下是不同单例模式实现方式的特性对比表格。表格从线程安全性、延迟加载、实现复杂度、反序列化安全性、防反射攻击性等多个方面进行考量。

2024-06-05 21:51:10 479

原创 基于Ruoyi-Cloud-Plus重构黑马项目-学成在线

毕设:基于主流微服务技术栈的在线教育系统的设计与实现文档地址:plus-doc。

2024-05-22 15:06:08 594

原创 Navicat导出表结构到Excel或Word

到Excel中,自己写好表头,然后粘贴,就复制到Excel了。从Excel全选数据,就可以直接复制到Word。在查询结果中,Ctrl+A全选,然后复制。

2024-05-08 19:44:32 919

原创 Vue3 v3.4之前如何实现组件中多个值的双向绑定?

官方给的例子是关于el-input的,如下。但是@input不是所有组件标签都有的属性啊,有没有一种通用的办法呢?

2024-04-28 20:55:44 594 2

原创 ruoyi-cloud-plus添加一个不要认证的公开新页面

并且每个模块都有可能需要open一些controller,不需要认证。那么我们进行统一设定,比如课程模块,url前缀为。但是后端是有网关和认证模块的,虽然前端页面可以不用登陆了,但是如果这个页面还需要从后端获取数据,那么后端对应的。就都是被公开的端点。于是在gateway只需要把。在view目录下创建一个页面的vue代码,比如。在nacos中修改gateway的配置文件,把。,至此这个页面已经不用登录就可以访问了。以新增一个公开的课程搜索页面为例。在course模块中,新建一个。重启网关和课程模块即可。

2024-04-22 20:24:27 640 1

原创 Vue3炫酷商品卡牌 组件设计

感谢来自BinaryMoon-CSS 艺术之暗系魔幻卡牌的博文。💕接口类型组件源码使用示例

2024-04-22 13:12:53 930

原创 SpringBoot和Axios数据的传递和接收-Restful完全版

在 Spring Boot(及一般的 HTTP 服务开发)中,将请求分为“GET 体系”和“POST 体系”可能会导致一些混淆,因为每种 HTTP 方法(GET、POST、PUT、PATCH、DELETE 等)都设计有其独特的用途和语义。不过,如果我们从“如何获取请求中的数据”这个角度来看,可以有一种比较宽泛的分类方式,尤其是关注于数据是通过 URL 还是请求体传递。但在你的例子中,由于是通过 axios 发送请求,并且当你在请求的 params 中包含一个数组时,axios 会将数组转换为。

2024-04-09 23:26:05 1860 3

原创 视频分块上传Vue3+SpringBoot3+Minio

前端将完整的视频文件分割成多份文件块,依次上传到后端,后端将其保存到文件系统。前端将文件块上传完毕后,发送合并请求,后端拿取文件块,合并后重新上传到文件系统。前端遍历文件块,每次上传之前,先询问文件块是否存在,只有不存在的情况下,才会上传。前端分割视频文件前,先询问此视频是否已经存在,存在则不再上传,后端之间返回视频信息。前端看起来就像是被秒传了。可以写一个定时任务,遍历没有后缀的文件块,判断其创建时间距离当前是否足够久,是则删除。

2024-04-05 16:56:50 2961 1

原创 Redis基础文档-01-安装

【代码】Redis基础文档-01-安装。

2024-04-03 11:42:39 165

原创 Docker部署MySQL8主从模式

​。

2024-04-02 17:17:56 270

原创 Java - JVM

所以,当我们说“方法区”时,从概念上讲,它是JVM的一个独立逻辑部分,但在HotSpot JVM的具体实现中,直到Java 7为止,它是作为堆内存结构的一个部分(即永久代)来实现的,永久代是堆的一个物理部分。💡从Java 8开始,HotSpot JVM去除了永久代的概念,引入了元空间(Metaspace),并且元空间是在本地内存中,而不是在堆内存中。因此,在Java 8及以后的版本中,方法区的实现从永久代变为了元空间,方法区(现在通常指的是元空间)与堆内存是完全分开的。元空间的概念仍然在JVM内存模型中。

2024-03-05 14:31:40 1026

原创 Java - 锁

如果加锁的时间过长,其他用户长时间无法访问,影响程序的并发访问性,同时这样对数据库性能开销影响也很大,特别是长事务而言,这样的开销往往无法承受。通常情况下,自旋锁适用于锁被持有时间短、锁的竞争不激烈的情况下,能够有效提高并发性能。阻塞锁,可以说是让线程进入阻塞状态进行等待,当获得相应的信号(唤醒,时间) 时,才可以进入线程的准备就绪状态,准备就绪状态的所有线程,通过竞争进入运行状态。锁升级是Java虚拟机对锁状态的动态调整过程,旨在根据实际的锁竞争情况和线程行为来选择最适合的锁策略,以提高程序的并发性能。

2024-02-23 16:02:07 752

原创 Redis之缓存击穿问题解决方案

缓存击穿就是大量并发访问同一个热点数据,一旦这个热点数据缓存失效,则请求压力都来到数据库。

2024-02-21 17:42:47 527

原创 Redis之缓存雪崩问题解决方案

缓存雪崩,指大量的缓存失效,大量的请求又同时落在数据库。主要的一种诱因是key设置的过期时间都一样。

2024-02-21 16:03:41 659

原创 Redis之缓存穿透问题解决方案实践SpringBoot3+Docker

当一种请求,总是能越过缓存,调用数据库,就是缓存穿透。比如当请求一个数据库没有的数据,那么缓存也不会有,然后就一直请求,甚至高并发去请求,对数据库压力会增大。如果key具有某种规则,那么可以对key增加校验机制,不符合直接返回。Redisson布隆过滤器逻辑修改,当数据库没有此数据,以null为value,也插入redis缓存,但设置较短的过期时间。

2024-02-21 14:55:10 655

原创 Spring AMQP(3.1.1)设置ConfirmCallback和ReturnsCallback

Slf4j//交换机//支付通知队列//支付结果通知消息类型//声明交换机,且持久化// 三个参数:交换机名称、是否持久化、当没有queue与其绑定时是否自动删除//支付通知队列,且持久化//交换机和支付通知队列绑定@Bean。

2024-02-16 23:01:49 655

原创 支付宝沙箱版模拟网站在线完整支付流程(无营业无费用)内网穿透+局域网测试

系统处于开发阶段时,无需营业执照,无需任何费用,沙箱模拟网站在线完整支付流程。手机网站支付快速接入alipay.trade.query(统一收单交易查询)异步通知说明。

2024-02-16 17:01:55 2506

原创 SpringBoot后端Long数据传到前端js精度损失问题

在对应的字段上添加注解,将。对应的结果接收上使用。

2024-02-16 10:06:42 647

原创 微服务OAuth 2.1认证授权Demo方案(Spring Security 6)

书接上文微服务OAuth 2.1认证授权可行性方案(Spring Security 6)三个微服务以下是授权相关数据库。当我们知道,我们就可以知道这个用户可以访问哪些资源,并把这些权限(也就是里的字段)写成数组,写到的负载部分的字段中。当用户携带此JWT访问具有修饰的资源时,我们解析出中的字段,判断是否包含指定的权限,以此来完成所谓的的“授权”。这里需要注意几点这里需要注意几点这样,微服务颁发的,现在就会包含字段。示例如下三、gateway微服务代码1. 统一处理CORS问题这里需要注意几点

2024-02-13 23:00:26 2865

原创 Gateway中Spring Security6统一处理CORS

是一个浏览器的策略,只要处理一次,告诉浏览器我允许跨域,浏览器收到后就不再阻拦请求了。还有一个system微服务,作为被请求的资源,当浏览器向。查询了一波,果然如此。什么的,就不需要再二次处理了。微服务作为整体的网关,并且整合了。跨域请求,导致根本走不到后面的。

2024-02-13 16:22:24 1227

原创 微服务OAuth 2.1扩展额外信息到JWT并解析(Spring Security 6)

VersionJava172023.0.0SpringBoot3.2.11.2.16.2.1mysql8.2.0使用JWT时,前两部分默认格式如下现在我们要把用户信息也扩展到JWT,最简便的方法就是将用户信息写成JSON字符串替换sub字段。其中用户信息由xc_user数据库表存储。

2024-02-09 10:10:37 1498

原创 Spring Authorization Server Spring Security密码加密

是因为,加密这个行为,只在服务器校验前端发送的明文时使用,至于对照物,则是代码中提供好的密文,所以这个需要提供密文。的方式出现并传到服务器,之后服务器会对明文进行相同的手段(指对同样的明文,密文相同)加密,比较两个密文是否一致。下面的代码中数据库保存的是password密文。的密码,都会以密文的方式存储在服务器上。也是,密码也需要提供现成的密文形式。但是前端输入的密码仍然是以。使用了加密算法后,无论是。

2024-02-08 21:25:55 594

原创 微服务OAuth 2.1认证授权可行性方案(Spring Security 6)

一个认证服务器(也是一个微服务),专门用于颁发JWT。一个网关(也是一个微服务),用于白名单判断和JWT校验。若干微服务。搭建认证服务器网关白名单判断网关验证JWT认证服务器如何共享公钥,让其余微服务有JWT自校验的能力。

2024-02-08 19:59:00 1904

原创 从RSA角度出发解析JWT原理

JWT由三个部分组成,它们分别是头部(Header)、载荷(Payload)、和签名(Signature)。通过将这三部分用点()连接起来,形成了一个完整的JWT字符串。。

2024-02-08 17:35:27 1127

原创 SpringCloud + Nacos环境下抽取Feign独立模块并支持MultipartFile

content模块需要引入刚才feign模块的依赖。服务端信息,并指定namespace和group。后,填入以下内容,大抵为超时熔断处理。具体的Debug和检验,可以通过。已经部署好Nacos,本文以。请根据自身情况出发阅读本文。函数打印日志,检查是否通过。要和服务前缀路径对上,即。新建一个配置类,如下,服务注册和发现依赖。,根据个人情况而定。要和服务名称对上,即。模块无需做什么修改。模块,启动测试方法,

2024-02-04 20:52:53 774

原创 Docker部署xxl-job调度器并结合SpringBoot测试

当运行分片任务时,又添加一个新的模块示例,此时分片任务会自动扩容再分配。来指定一些变量,包括数据库信息,一般需要根据自身情况修改。然后将其运行,等待一会,执行器可以看到有3个绑定的机器。文件,对数据库进行执行即可,脚本里面包含数据库的创建。创建任务之前,检查一下两个模块是否注册到指定执行器。同时,先前两个运行实例的日志发送了变化,如下。,前者区分程序端口,后者区分执行器端口。启动任务后,观察两个模块的日志。有一个信息,表示模块绑定成功。,仿照写一个简单的任务,如下。,复制到模块代码中。

2024-02-02 14:25:49 1612

原创 SpringBoot使用当前类代理类(内部事务)解决方案

在开发中,我们时常遇到需要在一个类的内部调用自己的其他方法,并且这些方法可能需要事务支持。这种场景通常发生在业务逻辑较为复杂的服务类中,其中一些操作需要确保数据的一致性和完整性。本文将以类为例,探讨如何在中有效地使用当前类的代理类来处理内部事务。

2024-02-01 11:15:35 853

原创 Docker多节点部署Minio分布式文件系统并测试

在这之前先去网页端,创建一个。准备如下文件夹和文件。

2024-01-31 20:10:03 729

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除