0%

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Read more »

Data Warehouse (DW),数据仓库的目的是构建面向分析的集成化数据环境,为企业提供决策支持(Decision Support)。它出于分析性报告决策支持的目的而创建。数据仓库本身并不“生产”任何数据,同时自身也不需要“消费”任何的数据,数据来源于外部,并且开放给外部应用,这也是为什么叫“仓库”,而不叫“工厂”的原因。

Read more »

Consumer

Name Description Default
bootstrap.servers 服务地址
key.deserializer 消息 Key 的反序列化方式
value.deserializer 消息 Value 的反序列化方式
group.id 消费组 ID “”
auto.offset.reset offset 重置方式
- earliest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,从头开始消费。
- latest:当各分区下有已提交的offset时,从提交的offset开始消费;无提交的offset时,消费新产生的该分区下的数据。
- none:topic各分区都存在已提交的offset时,从offset后开始消费;只要有一个分区不存在已提交的offset,则抛出异常
- anything else:抛出异常
latest
enable.auto.commit offset 提交方式
- true:自动提交
- false:手动提交
true
max.poll.interval.ms 使用消费组管理时的的拉取时间间隔 300000
max.poll.records 一次拉取时的最大记录数 500
sasl.mechanism 用于客户端连接的 SASL 机制(一般用 PLAIN) GSSAPI
security.protocol 连接 broker 的协议
- PLAINTEXT
- SSL
- SASL_PLAINTEXT
- SASL_SSL
PLAINTEXT

Spring-Kafka-Listener

Name Description Default
spring.kafka.listener.ack-mode 提交 offset 方式
spring-kafak负责提交:
- record:每处理一个消息,就提交一次
- batch:将上一次poll得到消息进行提交
- time:达到指定时间间隔,就提交
- count:达到指定次数,就提交
- count_time:达到指定次数和间间隔,就提交
手动提交:
- manual:调用后先存放至本地缓存,在下一次poll之前取出批量提交
- manual_immediate:调用后立即提交

Authentication using SASL/PLAIN

Broker

  1. 在每一个 Kafka broker 的 config 目录中, 添加一个 JAAS 文件:kafka_server_jaas.conf

    1
    2
    3
    4
    5
    6
    7
    KafkaServer {
    org.apache.kafka.common.security.plain.PlainLoginModule required
    username="admin"
    password="admin-secret"
    user_admin="admin-secret"
    user_alice="alice-secret";
    };
  2. 将 JAAS 配置文件的路径作为 JVM 的参数, 并传递到每一个 Kafka broker

    1
    -Djava.security.auth.login.config=/etc/kafka/kafka_server_jaas.conf
  3. server.properties 中配置 SASL 端口和 SASL 机制

    1
    2
    3
    4
    listeners=SASL_SSL://host.name:port
    security.inter.broker.protocol=SASL_SSL
    sasl.mechanism.inter.broker.protocol=PLAIN
    sasl.enabled.mechanisms=PLAIN

    Consumer

    1
    2
    3
    4
    5
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
    username="alice" \
    password="alice-secret";
    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN

Reference

  • 是可运行 Java 代码的假想计算机 ,包括字节码指令集、寄存器、栈、 垃圾回收堆和存储方法域。
  • 运行在操作系统之上的,它与硬件没有直接的交互。
Read more »

Spark 延续了MapReduce 的设计思路:对数据的计算也分为Map 和Reduce 两类。但不同的是,一个 Spark 任务并不止包含一个 Map 和一个R educe,而是由一系列的 Map、Reduce 构成。这样,计算的中间结果可以高效地转给下一个计算步骤,提高算法性能。虽然 Spark 的改进看似很小,但实验结果显示,它的算法性能相比 MapReduce 提高了10~100 倍。

Read more »

存储引擎

InnoDB

InnoDB是 事务型数据库的首选引擎,支持事务安全表(ACID),行锁定和外键,是默认的MySQL引擎。InnoDB 主要特性有:

  • 提供了具有提交、回滚和崩溃恢复能力的事务安全( ACID 兼容)存储引擎。锁定在行级并且也在 SELECT 语句中提供一个类似 Oracle 的非锁定读。这些功能增加了多用户部署和性能。在 SQL 查询中,可以自由地将 InnoDB 类型的表和其他 MySQL 的表类型混合起来,甚至在同一个查询中也可以混合。
  • 为处理巨大数据量的最大性能设计,它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的。
  • 完全与 MySQL 服务器整合,为在主内存中缓存数据和索引维持它自己的缓冲池:将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件或原始磁盘文件,其中表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。
  • 支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的 ROWID,并以此作为主键。
  • 不创建目录,使用时,MySQL 将在其数据目录下创建一个名为 ibdata1的 10MB 大小的自动扩展数据文件,以及两个名为 ib_logfile0ib_logfile1的 5MB 大小的日志文件。
Read more »