构造函数 private KafkaProducer(ProducerConfig config, Serializer<K> keySerializer, Serializer<V> valueSerializer) { try { //省略一段 this.metrics = new Metrics(metricConfig, reporters, time); // 构造各个组件 this.partitioner = config.getConfiguredInstance(ProducerConfig.PARTITIONER_CLASS_CONFIG, Partitioner.class); long retryBackoffMs = config.getLong(ProducerConfig.RETRY_BACKOFF_MS_CONFIG); this.metadata = new Metadata(retryBackoffMs, config.getLong(ProducerConfig.METADATA_MAX_AGE_CONFIG)); this.maxRequestSize = config.getInt(ProducerConfig.MAX_REQUEST_SIZE_CONFIG); this.totalMemorySize = config.getLong(ProducerConfig.BUFFER_MEMORY_CONFIG); this.compressionType = CompressionType.forName(config.getString(ProducerConfig.COMPRESSION_TYPE_CONFIG)); this.accumulator = new RecordAccumulator(config.getInt(ProducerConfig.BATCH_SIZE_CONFIG), this.totalMemorySize, this.compressionType, config.getLong(ProducerConfig.LINGER_MS_CONFIG), retryBackoffMs, metrics, time); List<InetSocketAddress> addresses = ClientUtils.parseAndValidateAddresses(config.getList(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG)); this.metadata.update(Cluster.bootstrap(addresses),
分布式存储-Consensus
七、Consensus 之前介绍了 replica、partition、transaction。本次我们开始分布式系统相关讨论。 1. Consistency Guarantees 分布式系统
cassandra使用
常用命令 查看压缩转态: bin/nodetool compactionstats bin/nodetool disableautocompaction 可以禁用 compact,bin/nodetool enableautocompaction 启用 参数配置 使用时候注意参数设置 alter table titan_20190104.edgestore with compaction = {‘class’: ‘org.apache.cassandra.db.compaction.LeveledCompactionStrategy’, ‘sstable_size_in_mb’: 512}; alter table titan_20190104.edgestore with
分布式存储-Transactions
三、Transactions 在一个数据系统中,很多东西可能出错,有可能是网络问题,硬件问题,系统 bug。为了可靠,我们必须让系统可靠,事务就
分布式存储-replication
一、Replication Replication 就是将你的数据放在多个节点,这样有很多好处。数据从地理上可以隔用户更近,保持高可用,增加吞吐量。 本章我们假设数据
design-data-intensive-architecture
第一部分、前言 ACID,bigdata,NoSql ,bigTable ,CAP,2PC,3PC,quorum,raft,paxos,cloud
分布式存储-partition
二、Partitioning 分区,also known as Sharding、region、tablet、vBucket partition 的主要目的是 scalabilit
常见错误及经验
File file:/opt/hdfsi/yarn/nm/usercache/b_kg_fin_user/appcache/application_1543365716015_968403 does not exist 定位问题为节点问题,权限问题等。 hbase 一个预分区 10GB 数据比较合理。 maven 项目有hbase 的时候,JUnit 测试可能失败 cassandra 导数据 nodetool disableautocompaction ,然后 enableautocompaction
headfirst 设计模式
设计模式很抽象,其实以前我也尝试学过,只不过只学了一些表面,没有吃透,所以再学一下。能把抽象讲具体的人,都很厉害。 这个网址有资料: https://refactoring.guru/design-patterns 策略模式
代码整洁之道0-阅读提示
马丁(Robert C. Martin). “代码整洁之道.” 初看可能感觉没啥提高,都是经验的东西,然后囫囵吞枣翻页,突然有的地方很深奥,又要放慢速度。 我的感觉是
重构笔记10-大型重构
前面的步骤写着写着就觉得很无趣,只见树木不见森林,但是至少要大概知道有这种方法,合适需要使用这种方法,然后可以来查阅怎么使用,用多了自然会了
重构笔记11-使用IDEA重构
当你学会了重构,需要使用一些工具,更加快速。
UML类图画法
UML类图思考 建模是很复杂的,UML 类图是很好的工具,必须首先掌握。 首先我们自己思考一下,如果自己设计UML语言,应该如何设计。类与类之间的
tinkerpop源码解析2-查询流程debug
一、关键类 api地址: http://tinkerpop.apache.org/javadocs/current/full/ GraphTraversalSource 构造方法: GraphTraversalSource(Graph graph) GraphTraversalSource(Graph graph, TraversalStrategies traversalStrategies) graph.traversal() 方法返回一个 GraphTraversalSource ,我们挺好奇怎么转化为计算逻辑的,可能类似spark一样,记录操作,然后计算
重构笔记1-简单实例重构
重构,第一个案例 第一个案例,太简单也不好,太复杂也不好。 1.1 起点 “影片出租店用的程序”,计算程序租了哪些影片,租期多长,可以计算费用积分。影片