小编Nat*_*lia的帖子

卡夫卡什么时候改变领导者?

我正在运行与kafka合作已有一年的服务,并且没有发生领导者的自发变化.但是在过去的两周里,这种情况经常发生.卡夫卡登录:

  • [2015-09-27 15:35:14,826] INFO [代理2上的ReplicaFetcherManager]删除了分区的抓取器[myTopic](kafka.server.ReplicaFetcherManager)
  • [2015-09-27 15:35:14,830] INFO截断日志myTopic-0以抵消11520979.(kafka.log.Log)
  • [2015-09-27 15:35:14,845] WARN [Broker 2上的副本管理器]:在分区[myTopic,0]上从客户端ReplicaFetcherThread-0-2获取具有相关ID 713276的请求失败,因为Leader不是本地分区[经纪人2上的myTopic,0](kafka.server.ReplicaManager)
  • [2015-09-27 15:35:14,857] WARN [Broker 2上的副本管理器]:在分区[myTopic,0]上从客户端mirrormaker-1获取具有相关ID 256685的请求失败,因为Leader不是本地分区[myTopic,代理商2上的0](kafka.server.ReplicaManager)
  • [2015-09-27 15:35:20,171] INFO [代理2上的ReplicaFetcherManager]删除分区的抓取器[myTopic,0](kafka.server.ReplicaFetcherManager)

什么可以导致转换领导者?如果某些kafka文档中有信息 - 请 - 只需指向该链接即可.我没找到.


系统配置

kafka版本:kafka_2.10-0.8.2.1

os:Red Hat Enterprise Linux Server 6.5版(圣地亚哥)

server.properties(与默认值不同):

  • broker.id = 001
  • socket.send.buffer.bytes = 1048576
  • socket.receive.buffer.bytes = 1048576
  • socket.request.max.bytes = 104857600
  • log.flush.interval.messages = 10000
  • log.flush.interval.ms = 1000
  • log.retention.bytes = -1
  • controlled.shutdown.enable =真
  • auto.create.topics.enable = FALSE

apache-kafka

9
推荐指数
1
解决办法
5598
查看次数

Postgres:烤面包桌+空间+真空

环境:postgres:9.5

表:

segmentation=> \d+ sourceTable;
                                       Table 
"sourceTable"           Column            |           Type           |       Modifiers        | Storage  | Stats target | Description 
-----------------------------+--------------------------+------------------------+----------+--------------+-------------
tracking_id                 | character varying(40)    | not null               | extended |              | 
attributes                  | jsonb                    | not null               | extended |              | 
last_modification_timestamp | timestamp with time zone | not null default now() | plain    |              | 
version                     | bigint                   | not null default 1     | plain    |              | 
Indexes:
"client_attributes_pkey" PRIMARY KEY, btree (tracking_id)
Run Code Online (Sandbox Code Playgroud)

属性字段为jsonb。它可能是一个巨大的json。因此Postgres创建了TOAST表来存储该列。

TOAST表的统计数据

segmentation=> select * from …
Run Code Online (Sandbox Code Playgroud)

postgresql vacuum

5
推荐指数
1
解决办法
2097
查看次数

Postgres JSONB:数组数组的where子句

在postgres(第9.5节,如果有关系):

create table json_test(
 id varchar NOT NULL,
 data jsonb NOT NULL,
 PRIMARY KEY(id)
);
Run Code Online (Sandbox Code Playgroud)

数据是json并包含数组的数组

{
    "attribute": "0",
    "array1": [{
        "id": "a12",
        "attribute": "1",
        "array2": [{
            "id": "a21",
            "attribute": "21"
        }]
    },
    {
        "id": "a12",
        "attribute": "2",
        "array2": [{
            "id": "22",
            "attribute": "22"
        }]
    }]
}
Run Code Online (Sandbox Code Playgroud)

需要:

select id from json_test where 
    json_test->>'attribute'='0' and
    array1.[id='a12'].array2.attribute='22'
Run Code Online (Sandbox Code Playgroud)

查询应该意味着:给我所有的ID

  1. 一些顶级属性具有特定值
  2. 数组中的特定对象具有必需属性
  3. 某些对象(来自array2),特别是array1具有必需的属性

诀窍是如何实现最后一个条件.


另一个例子:

{
    "attribute": "0",
    "array1": [{
        "id": "a12",
        "attribute": "1",
        "array2": [{
            "id": "a21_1",
            "attribute_1": "21_1"
        },{
            "id": "a21_2", …
Run Code Online (Sandbox Code Playgroud)

arrays postgresql json jsonb

3
推荐指数
1
解决办法
963
查看次数

标签 统计

postgresql ×2

apache-kafka ×1

arrays ×1

json ×1

jsonb ×1

vacuum ×1