基础知识
数组与切片 范型 String.Builder
数组与切片 范型 String.Builder
1. 单一职责 类的职责单一,对外只提供一个功能,而引起类变化的原因都应该只有一个。 2. 开闭 类的改动是通过增加代码进行的,而不是修改源代码。 3. 里氏代换原则 任何抽象类出现的地方都可以用他的实现类替换,实际就是虚拟机制,语言级别实现面向对象功能。 4. 依赖倒转原则 依赖于抽象接口,不要依赖具体的实现类,也就是针对接口编程。
Gitbook与Docker 最近在学习k8s容器相关,了解了docker的优势,而本身对于特别在意环境的干净,之前的Gitbook不想安装原因,是因为要安装node等信息。借此机会尝试下使用docker进行安装。 1. Docker安装 这个比较简单,直接官网下载安装,无异常 2. docker-compose 编写 # 在对应的目录下创建compose的yaml文件,我放在`Workspaces/Docker/GitBook`下 services: gitbook: image: bloodstar/gitbook-builder ports: - "4000:4000" volumes: - ./gitbook:/gitbook command: gitbook build 由于我只是使用gitbook的build,不需要serve,所以端口无所谓 3.command命令修改 3.1 初始化 修改command命令为gitbook init 3.2 插件安装 修改command命令为gitbook install,这中间会存在异常,主要是网络连接github会有一定问题 3.3 编译 修改command命令为gitbook build 4. 异常处理 4.1 初始化失败 直接建README.md SUMMARY.md 两个文件后 4.2 插件安装失败 需要特殊渠道,让服务可以可以访问 5. 部署 使用nginx做代理,直接root指向Workspaces/Docker/GitBook/gitbook/_book目录 到对应的目录夹下,运行命令docker-compose up -d
Kafka 教程地址:Kafka 一、高吞吐量 顺序写 零拷贝 分段日志:Segment 预读(Read ahead)后写(Write Behind)
ClickHouse 官网:clickhouse.com 学习资料:谷粒 核心要点: MergeTree引擎 OrderBy是主键 分布式 Explain 参数配置 语法规则 多表联查(join) 面试题 1.不支持真正的delete/update操作,不支持transactions(事物) OLAP引擎一般都不支持事物,ClickHouse的定位也是分析性数据库,而不是严格的关系型数据库,加入对于事物的支持, 必然会有锁,同时分布式事物的支持,会带来更复杂的实现,其中诸多因素,都会影响写入和查询的性能。 2.不支持高并发查询,官方建议100 QPS ClickHouse是并行计算,单个查询就可以跑满多个CPU核心,而不像MySQL单个查询单线程执行。 3.需要批量写入,频繁的单条写入会带来写入问题 ClickHouse存储结构有点类LSM,每次的insert基本都会生成一个文件目录,后台线程Merge目录文件,如果频繁写入, 后台线程就会Merge不过来,产生`Too many parts`异常。建议每秒不超过一次写入,并且是Batch写入。 4.有限的SQL语法支持,JOIN语法也比较另类,暂时不支持窗口函数 5.稀疏索引的设计使得ClickHouse不适合做单行点查询