自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 mysql如何在无法启动的情况下进行数据恢复

原本开发的好好的,突然发现mysql连接不上,去服务器一看宕机了,想着重启一下,结果找不到bin目录,重启service也不行,当时忘记把mysql添加service了,网上找了一圈没找到解决方法。我心想,这不就完事了吗,ibd文件中需要的数据都有了,直接拿出来不就能进行恢复了,但是又错了,ibd是二进制文件,无法直接打开查看,网上找了一圈也没有对应的解决方法。突然想到一个歪路子,把旧mysql的data目录下的文件直接移到新mysql下,结果显然是失败的,mysql根本启动不了,按照网上的教程也都不行。

2024-04-03 11:37:58 673

原创 简述redis为什么快

数据结构针对内存使用效率做了设计优化,如简单动态字符串(SDS)、压缩列表(ziplist)和整数集合(intset)Redis 就给我们提供了两个优秀的设计思想:一个是。,以避免使用统一大小的元数据,造成内存空间的浪费。Reactor网络模型处理请求。,避免内存碎片开销;

2024-01-13 18:48:16 1764 1

原创 简单聊聊Kafka的Consumer

针对这个问题,Consumer 在每次调用 Poll() 消费数据的时候,顺带一个 timeout 参数,当返回空数据的时候,会在 Long Polling 中进行阻塞,等待 timeout 再去消费,直到数据到达。**如果是选择 Push 模式最大缺点就是 Broker 不清楚 Consumer 的消费速度,且推送速率是 Broker 进行控制的, 这样很容易造成消息堆积,如果 Consumer 中执行的任务操作是比较耗时的,那么 Consumer 就会处理的很慢, 严重情况可能会导致系统 Crash。

2024-01-11 14:16:52 1564 1

原创 浅谈Kafka-Broker的Replication与Controller

Kafka是有主题概念的,而每个主题又进一步划分成若干个分区。副本的概念实际上是在。

2023-12-19 16:55:34 880

原创 kafka-消息丢失处理方案

1)首先当 Producer 向 Broker 发送数据后,会进行 commit,如果 commit 成功,由于 Replica 副本机制的存在,则意味着消息不会丢失,但是 Producer 发送数据给 Broker 后,遇到网络问题而造成通信中断,那么 Producer 就无法准确判断该消息是否已经被提交(commit),这就可能造成 at least once 语义。既然 Consumer 拉取后消息最终是要提交 Offset, 那么这里就可能会丢数据的**!

2023-11-24 22:06:24 1624 2

原创 计算机网络-网络层 学习笔记

网络地址转换 NAT: NAT,即网络地址转换(Network Address Translation),是一种在计算机网络中常见的技术,用于将内部网络的私有IP地址映射到外部网络的公共IP地址上,以实现多个内部设备共享一个或一组公共IP地址的功能。总之,DHCP是一种用于自动化网络设备配置的重要协议,它简化了IP地址和其他网络参数的分配和管理,提高了网络的可维护性和可扩展性。CIDR表示法是一种灵活的方式来表示IP地址块的范围,特别是在路由表中,它有助于减少路由表的大小和提高路由效率。

2023-10-05 12:20:00 119

原创 设计模式-行为型 学习笔记

责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许你构建一系列对象,每个对象都可以处理请求,并将请求传递给下一个对象。这些对象被组织成链,因此请求沿着链传递,直到有一个对象处理它为止。责任链模式的主要思想是将请求的发送者和接收者解耦,从而提高系统的灵活性和可维护性。责任链模式在日常开发中常用于日志记录、权限验证、异常处理、过滤器等领域,其中请求可以沿着链依次传递并处理。

2023-10-04 14:28:53 57 1

原创 设计模式-结构型 学习笔记

适配器模式(Adapter Pattern)是一种结构性设计模式,用于将一个类的接口转换成客户端所期望的另一个接口。它允许不兼容接口的类能够一起工作,促使不同接口之间的协同合作。

2023-10-03 18:14:05 69

原创 设计模式-创建型 学习笔记

一个商店发放几种不同的物品,如优惠卷,消费卡,实物商品等,每种物品都有自己内部实现的业务逻辑,在实际开发中通过判断type从而判断具体的实例类型会增加代码复杂度,难以维护和重构。可以对三种物品抽象出一个统一发放物品的接口,再有一个根据判断type返回相应的实现的工厂类。避免了创建者与具体的产品逻辑耦合,满足单一职责,每一个业务逻辑实现都在自己所属的类中完成,满足开闭原则,无需更改使用调用方就可以在程序中引入新的类型。

2023-10-02 15:37:02 47 1

原创 计算机网络 -传输层学习笔记

面向连接的可靠的字节流传输层协议三次握手 四次挥手同步双方初始序列号避免资源浪费SYNSYNFINFINACKFINTCP状态TCP(传输控制协议)在通信过程中有多种状态,这些状态描述了TCP连接的不同阶段和条件。这些状态描述了TCP连接的生命周期和不同阶段。连接的状态转换遵循一定的协议规则,以确保数据可靠传输和连接的正确终止。tcp重传机制ACKSACKtcp滑动窗口tcp流量控制tcp拥塞控制算法TCP半连接/全连接队列。

2023-09-22 14:43:37 69

原创 JUC学习部分随笔

并发工具与实现AQS/CAS。

2023-09-15 14:56:07 43

原创 Spring Security OAuth2 授权码模式

通过以上流程,授权码模式实现了安全地将访问令牌交给客户端应用程序,同时提供了用户的授权和认证过程,保护了用户的凭据和数据安全。

2023-09-06 10:16:17 161 1

原创 Spring Security OAuth2 密码模式

大致的流程是:客户端去认证中心申请访问凭证token,然后认证中心对于客户端请求来的帐号密码进行验证,如果验证通过,则颁发token,返回给客户端,客户端拿着 token 去各个微服务请求数据接口,一般这个 token 是放到 header 中的。当微服务接到请求后,先要拿着 token 去认证服务端检查 token 的合法性,如果合法,再根据用户所属的角色及具有的权限动态的返回数据

2023-09-04 10:25:13 409 1

原创 如何手写动态代理实现数据库事务

有了动态代理的技术,那么就可以在不修改方法源码的情况下,增强被代理对象的方法的功能,在方法执行前后做任何你想做的事情。动态代理类似于ioc,但具体的说动态代理编程方式符合AOP面向切面编程,动态代理就是,在程序运行期,创建目标对象的代理对象,并对目标对象中的方法进行功能性增强的一种技术。在生成代理对象的过程中,目标对象不变,代理对象中的方法是目标对象方法的增强方法。最后要有一个静态的获取代理对象的方法,利于在其他类中传入要代理的类class就可以获得代理对象实例,并执行调用。

2023-09-02 12:37:31 155

原创 如何手写一个简易的数据库连接池

当应用程序需要连接数据库时,它会先向连接池请求连接,连接池会检查连接是否可用,如果有可用的连接,则返回给应用程序使用;如果没有可用连接,则连接池会创建新的连接,直到连接池中连接数量达到上限。当应用程序不再需要连接时,它会将连接返回给连接池,连接池将连接标记为可用状态,以便下一次请求时可以直接使用。同时,连接池还会对连接进行管理,包括连接的创建、销毁、监控和维护等,以保证连接池的可靠性和稳定性。

2023-08-31 11:40:58 179

原创 纯原生手写一个集转发,异常处理,参数转换,校验和鉴权为一体的简单请求转发器

原先前端请求后端都是通过多个不同的servlet进行拦截操作,而随着业务的复杂,导致servlet数量过多,而且每个servlet都要继承HttpServlet进行重复性较高的工作,所以我们需要将HttpServlet抽离出来,让每个servlet变成普通的controller,专注与service交互不用过多关注req和resp,因此dispatchservlet就诞生了。

2023-08-28 22:22:02 65

原创 关于手写ioc容器实现依赖注入的过程和心得

再举一个具体的例子,如果注入的是某个接口的具体的一个实现类,现在因为业务需求需要扩展功能,以至于有多个实现类实现了该接口,此时要将其他实现类注入原先的上层代码,就会报错,这一点在单一实现类问题不大,而一旦业务复杂出现多个实现类或扩展功能,注入实现类的弊端就暴露无遗了,因此要遵循面向接口编程的原则,将实现类实例注入接口,接口作为实现类的依赖,根据里氏替换原则,注入的实现类实例可以完全代替接口的作用,从而达到易扩展可维护,低耦合的编程要求。随便提一下控制反转是一种思想,而依赖注入是实现的手段,两者并不等价。

2023-08-27 11:09:47 67 2

空空如也

Thymeleaf问题

2023-02-22

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

TA关注的人

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