Kafka broker

什么是Broker

Kafka集群包含一个或多个服务器,这种服务器被称为broker.一个集群由多个Broker组成, 一个Broker可以容纳多个topic; Producers往Brokers里面的指定Topic中写消息,Consumers从Brokers里面拉取指定Topic的消息,然后进行业务处理,broker在中间起到一个代理保存消息的中转站。

Kafka生产者知识点总结

生产者对topic分区的原因

  • 方便在集群中扩展,一个topic可以由多个partition组成, 每个partition可以通过调整以适应它所在的机器, , 因此整个集群就可以适应任意大小的数据了.
  • 提高读写并行度,在分布式系统中, 同一个topic 的不同partition可以分布在多台主机中, 这就打破了单主机的IO和处理能力限制, 提高了读写的并行度.
  • 便于数据复制备份, 提高数据冗余度和容灾能力
  • Kafka消费者知识点总结

    Kafka消费者

    消费方式(Pull)

    kafka 的consumer 采用pull(拉)模式从broker中拉取数据.

  • push(推) 很难适应消费速率不同的消费者, 因为在这种方式中, 消费发送速率是由broker决定的, 他的目标是尽可能以最快速度传递消息, 但是这样很容造成consumer来不及处理消息, 典型的表现是拒绝服务以及网络阻塞, 而pull模式则可以根据consumer 的消费能力以适当的速率消费信息.
  • pull(拉) 不足之处是, 如果kafka没有数据, 消费者可能会陷入循环中, 一直返回空数据. 针对这一点, Kafka 的消费者在消费数据时会传入一个时长参数timeout, 如果当前没有数据可供消费, consumer 会等待一段时间之后再返回, 这段时间即为timeout.
  • oAuth2.0授权

    OAuth 是什么

    OAuth 引入了一个授权层,用来分离两种不同的角色:客户端和资源所有者。……资源所有者同意以后,资源服务器可以向客户端颁发令牌。客户端通过令牌,去请求数据。

    这段话的意思就是,OAuth 的核心就是向第三方应用颁发令牌。

    Flink的窗口概念

    uedbet西甲赫塔菲官网

      窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。 本文的重心将放在 Flink 如何进行窗口操作以及开发者如何尽可能地利用 Flink 所提供的功能。下面展示了 Flink 窗口在 keyed streams 和 non-keyed streams 上使用的基本结构。 我们可以看到,这两者唯一的区别仅在于:keyed streams 要调用 keyBy(...)后再调用 window(...) , 而 non-keyed streams 只用直接调用 windowAll(...)。留意这个区别,它能帮我们更好地理解后面的内容。

    typesafe之Config配置管理

    uedbet西甲赫塔菲官网

      Typesafe的Config库,可以用来管理系统的配置项,核心类Config可以将配置信息解析成uedbet官网西甲赫对象,通过相应的api可以获取配置项key对应的值,还是蛮方便的。

    Spring中Bean的销毁过程

    uedbet西甲赫塔菲官网

      当关闭spring的时候,上下文会根据创建bean时定义的流程和方法,对bean进行销毁,对此进行简单记录。

    正文

      spring在启动过程中会创建bean的uedbet官网西甲赫,在创建时,调用AbstractAutowireCapableBeanFactory类中doCreateBean方法来实际完成具体bean的登记,最终在destroyBean方法中根据登记信息来顺序完成销毁。

    Flink的常用算子

    uedbet西甲赫塔菲官网

    用户通过算子能将一个或多个 DataStream 转换成新的 DataStream,在应用程序中可以将多个数据转换算子合并成一个复杂的数据流拓扑。

    这部分内容将描述 Flink DataStream API 中基本的数据转换 API,数据转换后各种数据分区方式,以及算子的链接策略。

    Flink的DataStream API

    uedbet西甲赫塔菲官网

      Flink 中的 DataStream 程序是对数据流(例如过滤、更新状态、定义窗口、聚合)进行转换的常规程序。数据流的起始是从各种源(例如消息队列、套接字流、文件)创建的。结果通过 sink 返回,例如可以将数据写入文件或标准输出(例如命令行终端)。Flink 程序可以在各种上下文中运行,可以独立运行,也可以嵌入到其它程序中。任务执行可以运行在本地 JVM 中,也可以运行在多台机器的集群上。