logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

kafka原理简介

Kafka是一个高吞吐、分布式的消息系统,采用发布-订阅模型,通过分区机制实现并行处理。核心组件包括生产者、消费者、Broker集群和ZooKeeper协调服务。消息通过Topic组织,每个Topic分为多个Partition保证消息有序性,并通过副本机制确保数据可靠性。生产者支持同步/异步发送和三种消息确认级别(acks),消费者通过消费者组实现负载均衡。Kafka通过单分区内有序、分区间无序的

文章图片
#kafka#分布式
Java设计模式之单例模式

然后CPU剥夺了线程1的执行权,紧接着线程2通过getInstance方法来获取实例,当执行if (instance == null)时,发现instance不为null了,就直接返回instance了,并使用instance,由于Singleton实例还未被初始化(类的静态变量都未被赋值),使用Singleton实例就会报错。作者对这个方法的评价:这种写法在功能上与共有域方法相近,但是它更简洁,

文章图片
#java#设计模式#单例模式
Java设计模式之责任链模式

责任链模式(Iterator Pattern)是一种行为型设计模式,使多个对象都有机会处理同一个请求,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。处理器链HandlerChain:通过数组或链表组织各个具体的处理器形成一个处理器链,提供添加处理器的方法,并调用处理器的处理方法。2.在请求处理器个数未知的情况下,或者请求处理器可动态配置的情况下,可以使用责任链模式。具体处

文章图片
#java#设计模式#责任链模式
redis如何保证缓存与数据库一致性

假设线程1执行修改数据的工作,在执行完第一步后,用完了CPU时间片,CPU开始运行线程2执行读取数据的工作,线程2先查询缓存,发现为空,就去查询数据库(注意:这时数据库中的数据还是旧数据),然后更新到缓存并返回给用户。假设先淘汰缓存,再写数据库:第一步淘汰缓存成功,第二步写数据库失败【如下图:cache中无数据,db中是旧数据】。假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失

文章图片
#数据库#缓存#redis
redis过期删除及淘汰机制

4)volatile-lru策略和volatile-random策略适合我们将一个Redis实例既应用于缓存和又应用于持久化存储的时候,然而我们也可以通过使用两个Redis实例来达到相同的效果,值得一提的是将key设置过期时间实际上会消耗更多的内存,因此我们建议使用allkeys-lru策略从而更有效率的使用内存。(2)惰性删除:键过期了就过期了,不管。然后,Redis检查内存使用情况,如果已使用

文章图片
#redis#数据库#缓存
mybatis连接数据库底层原理

这行代码中的child.evalNode("dataSource")方法,该方法的作用就是解析< dataSource >标签及其子标签的属性值,获取数据库连接属性,如下图所示。这三种连接数据库属性的配置方式,任选一种即可,也可以三种方式混合使用。Mybatis在加载这些属性时,首先读取第一种方式配置的,其次读取第二种方式配置的,最后读取第三种方式配置的,如果三种方式中存在同名属性,先读取的属性会

文章图片
#数据库#mybatis#java
阻塞队列BlockingQueue

ArrayBlockingQueue是一个阻塞队列,内部由ReentrantLock来实现线程安全,由Condition的await和signal控制等待唤醒从而实现阻塞队列的功能。它的数据结构是数组,准确的说是一个循环数组(可以类比一个圆环),所有的下标在到达最大长度时自动从0继续开始。LinkedBlockingQueue是一个阻塞队列,内部由两个ReentrantLock来实现出入队列的线程

文章图片
#java#面试
阻塞队列BlockingQueue

ArrayBlockingQueue是一个阻塞队列,内部由ReentrantLock来实现线程安全,由Condition的await和signal控制等待唤醒从而实现阻塞队列的功能。它的数据结构是数组,准确的说是一个循环数组(可以类比一个圆环),所有的下标在到达最大长度时自动从0继续开始。LinkedBlockingQueue是一个阻塞队列,内部由两个ReentrantLock来实现出入队列的线程

文章图片
#java#面试
kubernetes简单使用之高级调度与Helm包管理器

Kubernetes高级调度部分介绍了CronJob定时任务、InitContainer初始化容器、污点(Taint)与容忍度(Toleration)机制,以及节点/Pod亲和性调度策略。其中,污点机制通过NoSchedule、PreferNoSchedule和NoExecute三种效果控制Pod调度。Helm作为Kubernetes包管理器,通过Chart(应用模板)、Config(配置参数)和

文章图片
#kubernetes#容器#云原生
redis如何保证缓存与数据库一致性

假设线程1执行修改数据的工作,在执行完第一步后,用完了CPU时间片,CPU开始运行线程2执行读取数据的工作,线程2先查询缓存,发现为空,就去查询数据库(注意:这时数据库中的数据还是旧数据),然后更新到缓存并返回给用户。假设先淘汰缓存,再写数据库:第一步淘汰缓存成功,第二步写数据库失败【如下图:cache中无数据,db中是旧数据】。假设先写数据库,再淘汰缓存:第一步写数据库操作成功,第二步淘汰缓存失

文章图片
#数据库#缓存#redis
    共 15 条
  • 1
  • 2
  • 请选择