cuithink 第6页

  • 2024.10.11 | cuithink | 1056次围观
    责任链模式
    避免将一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求.将接收请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能够处理它为止将请求和请求的处理进行解耦,提高代码的可扩展性.职责链模式主要包含以下角色:抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接(链上的每个处理者都有一个成员变量来保存对于下一处理者的引用,比如上图中的successor) 。具体处理者(Concrete Handler)角色:实现抽象处理者...
  • 2024.10.11 | cuithink | 839次围观
    建造者模式(Builder)
    将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对象,而无须知道其内部的具体构造细节。建造者模式包含4个角色 :抽象建造者类(Builder):这个接口规定要实现复杂对象的哪些部分的创建,并不涉及具体的部件对象的创建。具体建造者类(ConcreteBuilder):实现 Builder 接口,完成复杂产品的各个部件的具体创建方法。在构造过程完成后,提...
  • 2024.10.11 | cuithink | 805次围观
    工厂模式
    5. 简单工厂简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,其主要目的是通过将对象的创建逻辑封装在一个工厂类中,从而隐藏对象的创建细节并简 化对象的创建过程。 在简单工厂模式中,客户端通过向工厂类传递不同的参数来请求工厂创建不同类型的对象。6. 工厂方法模式工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了 一个用于创建对象的接口,但是具体创建哪个类的对象由子类决定。 在工厂方法模式中,我们将对象的创...
  • 2024.10.11 | cuithink | 706次围观
    单例模式
    4. 单例模式单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一种全局访问点以访问该实例饿汉式和懒汉式的区别初始化时机不同:饿汉式单例模式在类加载时就立即初始化并创建单例对象,而懒汉式单例模式则是在第一次使用时才会进行初始化,并创建单例对象。线程安全性不同:饿汉式单例模式在类加载时就创建了单例对象,因此天生就是线程安全的。而懒汉式单例模式在第一次使用时才会创建单例对象,如果多个线程同时调用getInstance()方法,可能会创建出多个单例对象,因此需要进行同...
  • 2024.10.11 | cuithink | 814次围观
    设计模式-基本概念
    1. 设计原则2. 类型设计模式的类型总共分为:3大类、23种具体设计模式,具体如下:3. 常用设计模式针对三种设计模式类型,常见的设计模式是:创建型:单例模式、工厂方法模式(及 变式)、建造者模式;结构型:适配器模式、代理模式、门面(外观)模式;行为型:策略模式、观察者模式...
  • 2024.10.11 | cuithink | 799次围观
    HW与LEO详解
    HW俗称高水位,HighWatermark的缩写,取一个partition对应的ISR中最小的LEO(log-end-offset)作为HW,consumer最多只能消费到HW所在的位置。另外每个replica都有HW,leader和follower各自负责更新自己的HW的状态。对于leader新写入的消息,consumer不能立刻消费,leader会等待该消息被所有ISR中的replicas同步后更新HW,此时消息才能被consumer消费。这样就保证了如果leader所在...
  • 2024.10.11 | cuithink | 855次围观
    Kafka核心总控制器Controller
    在Kafka集群中会有一个或者多个broker,其中有一个broker会被选举为控制器(Kafka Controller),它负责管理整个集群中所有分区和副本的状态。当某个分区的leader副本出现故障时,由控制器负责为该分区选举新的leader副本。当检测到某个分区的ISR集合发生变化时,由控制器负责通知所有broker更新其元数据信息。当使用kafka-topics.sh脚本为某个topic增加分区数量时,同样还是由控制器负责让新分区被其他节点感知到。Controller...
  • 2024.10.11 | cuithink | 925次围观
    kafka集群实战
    对于kafka来说,一个单独的broker意味着kafka集群中只有一个节点。要想增加kafka集群中的节点数量,只需要多启动几个broker实例即可。为了有更好的理解,现在我们在一台机器上同时启动三个broker实例。首先,我们需要建立好其他2个broker的配置文件:cp config/server.properties config/server-1.properties cp config/server.properties config/server-2.prop...
  • 2024.10.11 | cuithink | 719次围观
    kafka基本使用
    安装前的环境准备由于Kafka是用Scala语言开发的,运行在JVM上,因此在安装Kafka之前需要先安装JDK。yum install java-1.8.0-openjdk* -ykafka依赖zookeeper,所以需要先安装zookeeperwget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz tar -zxvf apache-z...
  • 2024.10.11 | cuithink | 894次围观
    Kafka基本概念
    kafka是一个分布式的,分区的消息(官方称之为commit log)服务。它提供一个消息系统应该具备的功能,但是确有着独特的设计。可以这样来说,Kafka借鉴了JMS规范的思想,但是确并没有完全遵循JMS规范。首先,让我们来看一下基础的消息(Message)相关术语:名称解释Broker消息中间件处理节点,一个Kafka节点就是一个broker,一个或者多个Broker可以组成一个Kafka集群TopicKafka根据topic对消息进行归类,发布到Kafka集群的每条消息...