{
  "schema_version": 1,
  "generator": "scripts/import-interview-pdf.py",
  "generator_sha256": "d58624cda7201f1f711f45b74aba7abf2e3faab86700a4c6ea16d96dd40c3982",
  "source": {
    "pdf_name": "golang云原生面试题.pdf",
    "pdf_sha256": "e3dad77e27502174d0ec787c95f36a99b8b9cdc99e8c334cb213e1d23262dec3",
    "xml_sha256": "75677b4ab33188ac22709b7f24c73f3b9476bf2520e0d24d807f033bc8c068a5",
    "layout_text_sha256": "9f6c7b4dfba07bf7a92ed563a65e79ec2bdd11c368b0591d73376c1b244279d5",
    "total_pdf_pages": 107,
    "imported_page_range": [
      1,
      106
    ],
    "pdf_text_matches_input_xml": true,
    "image_extraction_command": "pdftohtml -q -xml -hidden -stdout PDF TEMP_PREFIX"
  },
  "summary": {
    "question_count": 369,
    "topic_count": 14,
    "heading_count": 386,
    "image_count": 29,
    "source_span_count": 14503,
    "imported_span_count": 14499,
    "excluded_span_count": 4,
    "missing_span_count": 0,
    "rendered_span_coverage": 1.0
  },
  "heading_detection": {
    "font_size_threshold": 22,
    "same_line_top_tolerance": 4,
    "wrapped_heading_max_top_distance": 36,
    "section_size_threshold": 30,
    "explicit_small_heading": "PDF p2: 输入 non-empty interface",
    "subordinate_heading": "PDF p69: 使用策略规则：",
    "numeric_lists_are_headings": false
  },
  "topics": [
    {
      "slug": "01-go-basics",
      "title": "Go 基础、类型与数据结构",
      "question_count": 24,
      "file": "handbook/go-bank/01-go-basics.md",
      "target": "/go-bank/01-go-basics"
    },
    {
      "slug": "02-go-concurrency",
      "title": "Go 并发、Channel 与同步原语",
      "question_count": 28,
      "file": "handbook/go-bank/02-go-concurrency.md",
      "target": "/go-bank/02-go-concurrency"
    },
    {
      "slug": "03-go-runtime",
      "title": "Go Runtime、调度、内存与 GC",
      "question_count": 22,
      "file": "handbook/go-bank/03-go-runtime.md",
      "target": "/go-bank/03-go-runtime"
    },
    {
      "slug": "04-go-coding",
      "title": "Go 编程题与代码分析",
      "question_count": 21,
      "file": "handbook/go-bank/04-go-coding.md",
      "target": "/go-bank/04-go-coding"
    },
    {
      "slug": "05-go-frameworks",
      "title": "Go 框架与测试",
      "question_count": 1,
      "file": "handbook/go-bank/05-go-frameworks.md",
      "target": "/go-bank/05-go-frameworks"
    },
    {
      "slug": "06-microservices",
      "title": "微服务、DDD 与接口设计",
      "question_count": 17,
      "file": "handbook/go-bank/06-microservices.md",
      "target": "/go-bank/06-microservices"
    },
    {
      "slug": "07-docker",
      "title": "Docker、容器与 DevOps",
      "question_count": 28,
      "file": "handbook/go-bank/07-docker.md",
      "target": "/go-bank/07-docker"
    },
    {
      "slug": "08-kubernetes",
      "title": "Go 云原生题库：Kubernetes 面试题",
      "question_count": 46,
      "file": "handbook/go-bank/08-kubernetes.md",
      "target": "/go-bank/08-kubernetes"
    },
    {
      "slug": "09-redis-cache",
      "title": "Redis、缓存与 Memcached",
      "question_count": 58,
      "file": "handbook/go-bank/09-redis-cache.md",
      "target": "/go-bank/09-redis-cache"
    },
    {
      "slug": "10-mysql",
      "title": "MySQL、索引与 SQL",
      "question_count": 32,
      "file": "handbook/go-bank/10-mysql.md",
      "target": "/go-bank/10-mysql"
    },
    {
      "slug": "11-linux-network-os",
      "title": "Linux、网络与操作系统",
      "question_count": 45,
      "file": "handbook/go-bank/11-linux-network-os.md",
      "target": "/go-bank/11-linux-network-os"
    },
    {
      "slug": "12-kafka",
      "title": "Kafka 与消息队列",
      "question_count": 16,
      "file": "handbook/go-bank/12-kafka.md",
      "target": "/go-bank/12-kafka"
    },
    {
      "slug": "13-distributed",
      "title": "分布式系统、协调与事务",
      "question_count": 13,
      "file": "handbook/go-bank/13-distributed.md",
      "target": "/go-bank/13-distributed"
    },
    {
      "slug": "14-mongodb-elasticsearch",
      "title": "MongoDB 与 Elasticsearch",
      "question_count": 18,
      "file": "handbook/go-bank/14-mongodb-elasticsearch.md",
      "target": "/go-bank/14-mongodb-elasticsearch"
    }
  ],
  "headings": [
    {
      "heading-id": "p001-h01",
      "source-page": 1,
      "title": "golang基础",
      "size": 33,
      "span_ids": [
        "p001-t0004",
        "p001-t0005"
      ],
      "top": 149.0,
      "kind": "section",
      "section": "golang基础",
      "target": "/go-bank/01-go-basics#q-p001-h02",
      "page-range": [
        1,
        7
      ]
    },
    {
      "heading-id": "p001-h02",
      "source-page": 1,
      "title": "与其他语言相比，使用 Go 有什么好处？",
      "size": 26,
      "span_ids": [
        "p001-t0007",
        "p001-t0008",
        "p001-t0009"
      ],
      "top": 205.0,
      "kind": "question",
      "question_id": "q-p001-h02",
      "target": "/go-bank/01-go-basics#q-p001-h02",
      "page-range": [
        1,
        1
      ]
    },
    {
      "heading-id": "p001-h03",
      "source-page": 1,
      "title": "Golang 使用什么数据类型？",
      "size": 26,
      "span_ids": [
        "p001-t0035",
        "p001-t0036"
      ],
      "top": 406.0,
      "kind": "question",
      "question_id": "q-p001-h03",
      "target": "/go-bank/01-go-basics#q-p001-h03",
      "page-range": [
        1,
        1
      ]
    },
    {
      "heading-id": "p001-h04",
      "source-page": 1,
      "title": "整型切片有哪些初始化的方式",
      "size": 26,
      "span_ids": [
        "p001-t0051"
      ],
      "top": 829.0,
      "kind": "question",
      "question_id": "q-p001-h04",
      "target": "/go-bank/01-go-basics#q-p001-h04",
      "page-range": [
        1,
        1
      ]
    },
    {
      "heading-id": "p001-h05",
      "source-page": 1,
      "title": "Go 当中同步锁有什么特点？作用是什么",
      "size": 26,
      "span_ids": [
        "p001-t0053",
        "p001-t0054"
      ],
      "top": 976.0,
      "kind": "question",
      "question_id": "q-p001-h05",
      "target": "/go-bank/02-go-concurrency#q-p001-h05",
      "page-range": [
        1,
        1
      ]
    },
    {
      "heading-id": "p001-h06",
      "source-page": 1,
      "title": "Go 语言当中 Channel（通道）有什么特点，需要注意什么？",
      "size": 26,
      "span_ids": [
        "p001-t0089",
        "p001-t0090",
        "p001-t0091",
        "p001-t0092",
        "p001-t0093"
      ],
      "top": 1131.0,
      "kind": "question",
      "question_id": "q-p001-h06",
      "target": "/go-bank/02-go-concurrency#q-p001-h06",
      "page-range": [
        1,
        2
      ]
    },
    {
      "heading-id": "p002-h01",
      "source-page": 2,
      "title": "Go 语言当中 Channel 缓冲有什么特点？",
      "size": 26,
      "span_ids": [
        "p002-t0031",
        "p002-t0032",
        "p002-t0033",
        "p002-t0034"
      ],
      "top": 139.0,
      "kind": "question",
      "question_id": "q-p002-h01",
      "target": "/go-bank/02-go-concurrency#q-p002-h01",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h02",
      "source-page": 2,
      "title": "Go 语言中 cap 函数可以作用于哪些内容？",
      "size": 26,
      "span_ids": [
        "p002-t0043",
        "p002-t0044",
        "p002-t0045",
        "p002-t0046"
      ],
      "top": 224.0,
      "kind": "question",
      "question_id": "q-p002-h02",
      "target": "/go-bank/01-go-basics#q-p002-h02",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h03",
      "source-page": 2,
      "title": "Go Convey 是什么？一般用来做什么？",
      "size": 26,
      "span_ids": [
        "p002-t0058",
        "p002-t0059"
      ],
      "top": 371.0,
      "kind": "question",
      "question_id": "q-p002-h03",
      "target": "/go-bank/05-go-frameworks#q-p002-h03",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h04",
      "source-page": 2,
      "title": "输入 non-empty interface",
      "size": 15,
      "span_ids": [
        "p002-t0077",
        "p002-t0078"
      ],
      "top": 518.0,
      "kind": "question",
      "question_id": "q-p002-h04",
      "target": "/go-bank/01-go-basics#q-p002-h04",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h05",
      "source-page": 2,
      "title": "Go 语言当中 new 的作用是什么",
      "size": 26,
      "span_ids": [
        "p002-t0106",
        "p002-t0107",
        "p002-t0108",
        "p002-t0109"
      ],
      "top": 642.0,
      "kind": "question",
      "question_id": "q-p002-h05",
      "target": "/go-bank/01-go-basics#q-p002-h05",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h06",
      "source-page": 2,
      "title": "Go 语言中 make 的作用是什么",
      "size": 26,
      "span_ids": [
        "p002-t0133",
        "p002-t0134",
        "p002-t0135",
        "p002-t0136"
      ],
      "top": 847.0,
      "kind": "question",
      "question_id": "q-p002-h06",
      "target": "/go-bank/01-go-basics#q-p002-h06",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p002-h07",
      "source-page": 2,
      "title": "关于select机制",
      "size": 26,
      "span_ids": [
        "p002-t0139",
        "p002-t0140",
        "p002-t0141"
      ],
      "top": 1015.0,
      "kind": "question",
      "question_id": "q-p002-h07",
      "target": "/go-bank/02-go-concurrency#q-p002-h07",
      "page-range": [
        2,
        2
      ]
    },
    {
      "heading-id": "p003-h01",
      "source-page": 3,
      "title": "Go 程序中的包是什么",
      "size": 26,
      "span_ids": [
        "p003-t0001",
        "p003-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p003-h01",
      "target": "/go-bank/01-go-basics#q-p003-h01",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p003-h02",
      "source-page": 3,
      "title": "Printf()，Sprintf()，FprintF() 都是格式化输出，有什么不同",
      "size": 26,
      "span_ids": [
        "p003-t0004",
        "p003-t0005",
        "p003-t0006",
        "p003-t0007",
        "p003-t0008",
        "p003-t0009",
        "p003-t0011"
      ],
      "top": 166.0,
      "kind": "question",
      "question_id": "q-p003-h02",
      "target": "/go-bank/01-go-basics#q-p003-h02",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p003-h03",
      "source-page": 3,
      "title": "Go 语言当中数组和切片的区别是什么？",
      "size": 26,
      "span_ids": [
        "p003-t0023",
        "p003-t0024"
      ],
      "top": 344.0,
      "kind": "question",
      "question_id": "q-p003-h03",
      "target": "/go-bank/01-go-basics#q-p003-h03",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p003-h04",
      "source-page": 3,
      "title": "拷贝大切片一定比小切片代价大吗？",
      "size": 26,
      "span_ids": [
        "p003-t0056"
      ],
      "top": 530.0,
      "kind": "question",
      "question_id": "q-p003-h04",
      "target": "/go-bank/01-go-basics#q-p003-h04",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p003-h05",
      "source-page": 3,
      "title": "json包变量不加tag会怎么样？",
      "size": 26,
      "span_ids": [
        "p003-t0070",
        "p003-t0071",
        "p003-t0072",
        "p003-t0073"
      ],
      "top": 842.0,
      "kind": "question",
      "question_id": "q-p003-h05",
      "target": "/go-bank/01-go-basics#q-p003-h05",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p003-h06",
      "source-page": 3,
      "title": "Log包线程安全吗",
      "size": 26,
      "span_ids": [
        "p003-t0107",
        "p003-t0108"
      ],
      "top": 1036.0,
      "kind": "question",
      "question_id": "q-p003-h06",
      "target": "/go-bank/02-go-concurrency#q-p003-h06",
      "page-range": [
        3,
        3
      ]
    },
    {
      "heading-id": "p004-h01",
      "source-page": 4,
      "title": "Go 语言当中数组和切片在传递的时候的区别是什么？",
      "size": 26,
      "span_ids": [
        "p004-t0001",
        "p004-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p004-h01",
      "target": "/go-bank/01-go-basics#q-p004-h01",
      "page-range": [
        4,
        4
      ]
    },
    {
      "heading-id": "p004-h02",
      "source-page": 4,
      "title": "Goroutine和线程的区别?",
      "size": 26,
      "span_ids": [
        "p004-t0011",
        "p004-t0012",
        "p004-t0013"
      ],
      "top": 156.0,
      "kind": "question",
      "question_id": "q-p004-h02",
      "target": "/go-bank/02-go-concurrency#q-p004-h02",
      "page-range": [
        4,
        4
      ]
    },
    {
      "heading-id": "p004-h03",
      "source-page": 4,
      "title": "Go 语言是如何实现切片扩容的？",
      "size": 26,
      "span_ids": [
        "p004-t0120",
        "p004-t0121"
      ],
      "top": 638.0,
      "kind": "question",
      "question_id": "q-p004-h03",
      "target": "/go-bank/01-go-basics#q-p004-h03",
      "page-range": [
        4,
        4
      ]
    },
    {
      "heading-id": "p004-h04",
      "source-page": 4,
      "title": "看下面代码的 defer 的执行顺序是什么？ defer 的作用和特点是什么？",
      "size": 26,
      "span_ids": [
        "p004-t0137",
        "p004-t0138",
        "p004-t0139",
        "p004-t0140",
        "p004-t0141",
        "p004-t0142",
        "p004-t0144"
      ],
      "top": 978.0,
      "kind": "question",
      "question_id": "q-p004-h04",
      "target": "/go-bank/04-go-coding#q-p004-h04",
      "page-range": [
        4,
        5
      ]
    },
    {
      "heading-id": "p005-h01",
      "source-page": 5,
      "title": "Golang Slice 的底层实现",
      "size": 26,
      "span_ids": [
        "p005-t0026",
        "p005-t0027"
      ],
      "top": 210.0,
      "kind": "question",
      "question_id": "q-p005-h01",
      "target": "/go-bank/01-go-basics#q-p005-h01",
      "page-range": [
        5,
        5
      ]
    },
    {
      "heading-id": "p005-h02",
      "source-page": 5,
      "title": "Golang Slice 的扩容机制，有什么注意点？",
      "size": 26,
      "span_ids": [
        "p005-t0059",
        "p005-t0060"
      ],
      "top": 484.0,
      "kind": "question",
      "question_id": "q-p005-h02",
      "target": "/go-bank/01-go-basics#q-p005-h02",
      "page-range": [
        5,
        5
      ]
    },
    {
      "heading-id": "p005-h03",
      "source-page": 5,
      "title": "扩容前后的 Slice 是否相同？",
      "size": 26,
      "span_ids": [
        "p005-t0091",
        "p005-t0092",
        "p005-t0093"
      ],
      "top": 721.0,
      "kind": "question",
      "question_id": "q-p005-h03",
      "target": "/go-bank/01-go-basics#q-p005-h03",
      "page-range": [
        5,
        5
      ]
    },
    {
      "heading-id": "p005-h04",
      "source-page": 5,
      "title": "Golang 的参数传递、引用类型",
      "size": 26,
      "span_ids": [
        "p005-t0127",
        "p005-t0128"
      ],
      "top": 923.0,
      "kind": "question",
      "question_id": "q-p005-h04",
      "target": "/go-bank/01-go-basics#q-p005-h04",
      "page-range": [
        5,
        5
      ]
    },
    {
      "heading-id": "p006-h01",
      "source-page": 6,
      "title": "Golang Map 底层实现",
      "size": 26,
      "span_ids": [
        "p006-t0001",
        "p006-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p006-h01",
      "target": "/go-bank/01-go-basics#q-p006-h01",
      "page-range": [
        6,
        6
      ]
    },
    {
      "heading-id": "p006-h02",
      "source-page": 6,
      "title": "Golang Map 如何扩容",
      "size": 26,
      "span_ids": [
        "p006-t0022",
        "p006-t0023"
      ],
      "top": 172.0,
      "kind": "question",
      "question_id": "q-p006-h02",
      "target": "/go-bank/01-go-basics#q-p006-h02",
      "page-range": [
        6,
        6
      ]
    },
    {
      "heading-id": "p006-h03",
      "source-page": 6,
      "title": "Golang Map 查找",
      "size": 26,
      "span_ids": [
        "p006-t0052",
        "p006-t0053"
      ],
      "top": 335.0,
      "kind": "question",
      "question_id": "q-p006-h03",
      "target": "/go-bank/01-go-basics#q-p006-h03",
      "page-range": [
        6,
        6
      ]
    },
    {
      "heading-id": "p006-h04",
      "source-page": 6,
      "title": "介绍一下 Channel",
      "size": 26,
      "span_ids": [
        "p006-t0056",
        "p006-t0057"
      ],
      "top": 566.0,
      "kind": "question",
      "question_id": "q-p006-h04",
      "target": "/go-bank/02-go-concurrency#q-p006-h04",
      "page-range": [
        6,
        6
      ]
    },
    {
      "heading-id": "p006-h05",
      "source-page": 6,
      "title": "Channel 的 ring buffer 实现",
      "size": 26,
      "span_ids": [
        "p006-t0098",
        "p006-t0099",
        "p006-t0100",
        "p006-t0101"
      ],
      "top": 745.0,
      "kind": "question",
      "question_id": "q-p006-h05",
      "target": "/go-bank/02-go-concurrency#q-p006-h05",
      "page-range": [
        6,
        7
      ]
    },
    {
      "heading-id": "p007-h01",
      "source-page": 7,
      "title": "for循环select时，如果通道已经关闭会怎么样？如果select中的case只有一个，又会怎么样？",
      "size": 26,
      "span_ids": [
        "p007-t0003",
        "p007-t0004",
        "p007-t0005",
        "p007-t0006",
        "p007-t0007",
        "p007-t0008",
        "p007-t0009",
        "p007-t0010"
      ],
      "top": 78.0,
      "kind": "question",
      "question_id": "q-p007-h01",
      "target": "/go-bank/02-go-concurrency#q-p007-h01",
      "page-range": [
        7,
        7
      ]
    },
    {
      "heading-id": "p007-h02",
      "source-page": 7,
      "title": "代码分析",
      "size": 33,
      "span_ids": [
        "p007-t0028"
      ],
      "top": 225.0,
      "kind": "section",
      "section": "代码分析",
      "target": "/go-bank/04-go-coding#q-p007-h03",
      "page-range": [
        7,
        24
      ]
    },
    {
      "heading-id": "p007-h03",
      "source-page": 7,
      "title": "下面的代码是有问题的，请说明原因",
      "size": 26,
      "span_ids": [
        "p007-t0030"
      ],
      "top": 281.0,
      "kind": "question",
      "question_id": "q-p007-h03",
      "target": "/go-bank/04-go-coding#q-p007-h03",
      "page-range": [
        7,
        7
      ]
    },
    {
      "heading-id": "p007-h04",
      "source-page": 7,
      "title": "交替打印数字和字母",
      "size": 26,
      "span_ids": [
        "p007-t0046"
      ],
      "top": 814.0,
      "kind": "question",
      "question_id": "q-p007-h04",
      "target": "/go-bank/04-go-coding#q-p007-h04",
      "page-range": [
        7,
        8
      ]
    },
    {
      "heading-id": "p009-h01",
      "source-page": 9,
      "title": "下列代码是否会触发异常",
      "size": 26,
      "span_ids": [
        "p009-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p009-h01",
      "target": "/go-bank/04-go-coding#q-p009-h01",
      "page-range": [
        9,
        9
      ]
    },
    {
      "heading-id": "p009-h02",
      "source-page": 9,
      "title": "如何在运行时检查变量类型？",
      "size": 26,
      "span_ids": [
        "p009-t0009"
      ],
      "top": 436.0,
      "kind": "question",
      "question_id": "q-p009-h02",
      "target": "/go-bank/04-go-coding#q-p009-h02",
      "page-range": [
        9,
        9
      ]
    },
    {
      "heading-id": "p009-h03",
      "source-page": 9,
      "title": "判断字符串中字符是否全都不同",
      "size": 26,
      "span_ids": [
        "p009-t0029"
      ],
      "top": 856.0,
      "kind": "question",
      "question_id": "q-p009-h03",
      "target": "/go-bank/04-go-coding#q-p009-h03",
      "page-range": [
        9,
        10
      ]
    },
    {
      "heading-id": "p010-h01",
      "source-page": 10,
      "title": "翻转字符串",
      "size": 26,
      "span_ids": [
        "p010-t0026"
      ],
      "top": 524.0,
      "kind": "question",
      "question_id": "q-p010-h01",
      "target": "/go-bank/04-go-coding#q-p010-h01",
      "page-range": [
        10,
        10
      ]
    },
    {
      "heading-id": "p011-h01",
      "source-page": 11,
      "title": "翻转含有中文、数字、英文字母的字符串",
      "size": 26,
      "span_ids": [
        "p011-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p011-h01",
      "target": "/go-bank/04-go-coding#q-p011-h01",
      "page-range": [
        11,
        11
      ]
    },
    {
      "heading-id": "p011-h02",
      "source-page": 11,
      "title": "判断两个给定的字符串排序后是否一致",
      "size": 26,
      "span_ids": [
        "p011-t0032"
      ],
      "top": 784.0,
      "kind": "question",
      "question_id": "q-p011-h02",
      "target": "/go-bank/04-go-coding#q-p011-h02",
      "page-range": [
        11,
        12
      ]
    },
    {
      "heading-id": "p012-h01",
      "source-page": 12,
      "title": "字符串替换问题",
      "size": 26,
      "span_ids": [
        "p012-t0010"
      ],
      "top": 421.0,
      "kind": "question",
      "question_id": "q-p012-h01",
      "target": "/go-bank/04-go-coding#q-p012-h01",
      "page-range": [
        12,
        12
      ]
    },
    {
      "heading-id": "p013-h01",
      "source-page": 13,
      "title": "下列代码有什么问题",
      "size": 26,
      "span_ids": [
        "p013-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p013-h01",
      "target": "/go-bank/04-go-coding#q-p013-h01",
      "page-range": [
        13,
        13
      ]
    },
    {
      "heading-id": "p013-h02",
      "source-page": 13,
      "title": "下列代码输出什么",
      "size": 26,
      "span_ids": [
        "p013-t0006"
      ],
      "top": 289.0,
      "kind": "question",
      "question_id": "q-p013-h02",
      "target": "/go-bank/04-go-coding#q-p013-h02",
      "page-range": [
        13,
        13
      ]
    },
    {
      "heading-id": "p013-h03",
      "source-page": 13,
      "title": "下列代码输出什么",
      "size": 26,
      "span_ids": [
        "p013-t0022"
      ],
      "top": 607.0,
      "kind": "question",
      "question_id": "q-p013-h03",
      "target": "/go-bank/04-go-coding#q-p013-h03",
      "page-range": [
        13,
        13
      ]
    },
    {
      "heading-id": "p013-h04",
      "source-page": 13,
      "title": "机器人坐标问题",
      "size": 26,
      "span_ids": [
        "p013-t0025"
      ],
      "top": 944.0,
      "kind": "question",
      "question_id": "q-p013-h04",
      "target": "/go-bank/04-go-coding#q-p013-h04",
      "page-range": [
        13,
        15
      ]
    },
    {
      "heading-id": "p015-h01",
      "source-page": 15,
      "title": "nil切片和空切片的区别",
      "size": 26,
      "span_ids": [
        "p015-t0046",
        "p015-t0047"
      ],
      "top": 160.0,
      "kind": "question",
      "question_id": "q-p015-h01",
      "target": "/go-bank/01-go-basics#q-p015-h01",
      "page-range": [
        15,
        15
      ]
    },
    {
      "heading-id": "p015-h02",
      "source-page": 15,
      "title": "字符串转成byte切片，无内存拷贝的实现",
      "size": 26,
      "span_ids": [
        "p015-t0060",
        "p015-t0061",
        "p015-t0062"
      ],
      "top": 1015.0,
      "kind": "question",
      "question_id": "q-p015-h02",
      "target": "/go-bank/04-go-coding#q-p015-h02",
      "page-range": [
        15,
        16
      ]
    },
    {
      "heading-id": "p016-h01",
      "source-page": 16,
      "title": "如何获取结构体tag信息",
      "size": 26,
      "span_ids": [
        "p016-t0022",
        "p016-t0023",
        "p016-t0024"
      ],
      "top": 893.0,
      "kind": "question",
      "question_id": "q-p016-h01",
      "target": "/go-bank/01-go-basics#q-p016-h01",
      "page-range": [
        16,
        17
      ]
    },
    {
      "heading-id": "p017-h01",
      "source-page": 17,
      "title": "下列代码会造成死循环吗？",
      "size": 26,
      "span_ids": [
        "p017-t0001"
      ],
      "top": 550.0,
      "kind": "question",
      "question_id": "q-p017-h01",
      "target": "/go-bank/04-go-coding#q-p017-h01",
      "page-range": [
        17,
        17
      ]
    },
    {
      "heading-id": "p017-h02",
      "source-page": 17,
      "title": "uintptr和unsafe.Pointer的区别",
      "size": 26,
      "span_ids": [
        "p017-t0016",
        "p017-t0017",
        "p017-t0018",
        "p017-t0019"
      ],
      "top": 926.0,
      "kind": "question",
      "question_id": "q-p017-h02",
      "target": "/go-bank/03-go-runtime#q-p017-h02",
      "page-range": [
        17,
        18
      ]
    },
    {
      "heading-id": "p018-h01",
      "source-page": 18,
      "title": "知道golang的内存逃逸吗？什么情况下会发生内存逃逸？",
      "size": 26,
      "span_ids": [
        "p018-t0028",
        "p018-t0029",
        "p018-t0030"
      ],
      "top": 629.0,
      "kind": "question",
      "question_id": "q-p018-h01",
      "target": "/go-bank/03-go-runtime#q-p018-h01",
      "page-range": [
        18,
        19
      ]
    },
    {
      "heading-id": "p019-h01",
      "source-page": 19,
      "title": "怎么避免内存逃逸",
      "size": 26,
      "span_ids": [
        "p019-t0021"
      ],
      "top": 897.0,
      "kind": "question",
      "question_id": "q-p019-h01",
      "target": "/go-bank/03-go-runtime#q-p019-h01",
      "page-range": [
        19,
        21
      ]
    },
    {
      "heading-id": "p022-h01",
      "source-page": 22,
      "title": "go struct能不能比较",
      "size": 26,
      "span_ids": [
        "p022-t0001",
        "p022-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p022-h01",
      "target": "/go-bank/01-go-basics#q-p022-h01",
      "page-range": [
        22,
        22
      ]
    },
    {
      "heading-id": "p022-h02",
      "source-page": 22,
      "title": "下面代码能运行吗？为什么",
      "size": 26,
      "span_ids": [
        "p022-t0017"
      ],
      "top": 656.0,
      "kind": "question",
      "question_id": "q-p022-h02",
      "target": "/go-bank/04-go-coding#q-p022-h02",
      "page-range": [
        22,
        22
      ]
    },
    {
      "heading-id": "p023-h01",
      "source-page": 23,
      "title": "请说出下面代码存在什么问题",
      "size": 26,
      "span_ids": [
        "p023-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p023-h01",
      "target": "/go-bank/04-go-coding#q-p023-h01",
      "page-range": [
        23,
        23
      ]
    },
    {
      "heading-id": "p023-h02",
      "source-page": 23,
      "title": "Go 支持什么形式的类型转换？将整数转换为浮点数",
      "size": 26,
      "span_ids": [
        "p023-t0043",
        "p023-t0044"
      ],
      "top": 468.0,
      "kind": "question",
      "question_id": "q-p023-h02",
      "target": "/go-bank/04-go-coding#q-p023-h02",
      "page-range": [
        23,
        23
      ]
    },
    {
      "heading-id": "p023-h03",
      "source-page": 23,
      "title": "Go 语言当中值传递和地址传递（引用传递）如何运用？有什么区别？举例说明",
      "size": 26,
      "span_ids": [
        "p023-t0050",
        "p023-t0051",
        "p023-t0052",
        "p023-t0054"
      ],
      "top": 654.0,
      "kind": "question",
      "question_id": "q-p023-h03",
      "target": "/go-bank/04-go-coding#q-p023-h03",
      "page-range": [
        23,
        23
      ]
    },
    {
      "heading-id": "p023-h04",
      "source-page": 23,
      "title": "写出打印的结果",
      "size": 26,
      "span_ids": [
        "p023-t0071"
      ],
      "top": 801.0,
      "kind": "question",
      "question_id": "q-p023-h04",
      "target": "/go-bank/04-go-coding#q-p023-h04",
      "page-range": [
        23,
        24
      ]
    },
    {
      "heading-id": "p024-h01",
      "source-page": 24,
      "title": "进阶-并发编程",
      "size": 33,
      "span_ids": [
        "p024-t0026",
        "p024-t0027",
        "p024-t0028"
      ],
      "top": 147.0,
      "kind": "section",
      "section": "进阶-并发编程",
      "target": "/go-bank/02-go-concurrency#q-p024-h02",
      "page-range": [
        24,
        33
      ]
    },
    {
      "heading-id": "p024-h02",
      "source-page": 24,
      "title": "go语言的并发机制以及它所使用的CSP并发模型",
      "size": 26,
      "span_ids": [
        "p024-t0030",
        "p024-t0031",
        "p024-t0032",
        "p024-t0033"
      ],
      "top": 203.0,
      "kind": "question",
      "question_id": "q-p024-h02",
      "target": "/go-bank/02-go-concurrency#q-p024-h02",
      "page-range": [
        24,
        25
      ]
    },
    {
      "heading-id": "p025-h01",
      "source-page": 25,
      "title": "Golang 中 Goroutine 如何调度",
      "size": 26,
      "span_ids": [
        "p025-t0088",
        "p025-t0089",
        "p025-t0090",
        "p025-t0091"
      ],
      "top": 686.0,
      "kind": "question",
      "question_id": "q-p025-h01",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "page-range": [
        25,
        27
      ]
    },
    {
      "heading-id": "p027-h01",
      "source-page": 27,
      "title": "Golang 中常用的并发模型",
      "size": 26,
      "span_ids": [
        "p027-t0072",
        "p027-t0073"
      ],
      "top": 1034.0,
      "kind": "question",
      "question_id": "q-p027-h01",
      "target": "/go-bank/02-go-concurrency#q-p027-h01",
      "page-range": [
        27,
        30
      ]
    },
    {
      "heading-id": "p030-h01",
      "source-page": 30,
      "title": "并发编程概念是什么？",
      "size": 26,
      "span_ids": [
        "p030-t0061"
      ],
      "top": 348.0,
      "kind": "question",
      "question_id": "q-p030-h01",
      "target": "/go-bank/02-go-concurrency#q-p030-h01",
      "page-range": [
        30,
        30
      ]
    },
    {
      "heading-id": "p030-h02",
      "source-page": 30,
      "title": "Mutex 几种状态",
      "size": 26,
      "span_ids": [
        "p030-t0094",
        "p030-t0095"
      ],
      "top": 551.0,
      "kind": "question",
      "question_id": "q-p030-h02",
      "target": "/go-bank/02-go-concurrency#q-p030-h02",
      "page-range": [
        30,
        30
      ]
    },
    {
      "heading-id": "p030-h03",
      "source-page": 30,
      "title": "Mutex 正常模式和饥饿模式",
      "size": 26,
      "span_ids": [
        "p030-t0110",
        "p030-t0111"
      ],
      "top": 727.0,
      "kind": "question",
      "question_id": "q-p030-h03",
      "target": "/go-bank/02-go-concurrency#q-p030-h03",
      "page-range": [
        30,
        30
      ]
    },
    {
      "heading-id": "p030-h04",
      "source-page": 30,
      "title": "Mutex 允许自旋的条件",
      "size": 26,
      "span_ids": [
        "p030-t0192",
        "p030-t0193"
      ],
      "top": 1116.0,
      "kind": "question",
      "question_id": "q-p030-h04",
      "target": "/go-bank/02-go-concurrency#q-p030-h04",
      "page-range": [
        30,
        31
      ]
    },
    {
      "heading-id": "p031-h01",
      "source-page": 31,
      "title": "RWMutex 实现",
      "size": 26,
      "span_ids": [
        "p031-t0018",
        "p031-t0019"
      ],
      "top": 139.0,
      "kind": "question",
      "question_id": "q-p031-h01",
      "target": "/go-bank/02-go-concurrency#q-p031-h01",
      "page-range": [
        31,
        31
      ]
    },
    {
      "heading-id": "p031-h02",
      "source-page": 31,
      "title": "RWMutex 注意事项",
      "size": 26,
      "span_ids": [
        "p031-t0022",
        "p031-t0023"
      ],
      "top": 308.0,
      "kind": "question",
      "question_id": "q-p031-h02",
      "target": "/go-bank/02-go-concurrency#q-p031-h02",
      "page-range": [
        31,
        31
      ]
    },
    {
      "heading-id": "p031-h03",
      "source-page": 31,
      "title": "Cond 是什么",
      "size": 26,
      "span_ids": [
        "p031-t0100",
        "p031-t0101"
      ],
      "top": 800.0,
      "kind": "question",
      "question_id": "q-p031-h03",
      "target": "/go-bank/02-go-concurrency#q-p031-h03",
      "page-range": [
        31,
        31
      ]
    },
    {
      "heading-id": "p031-h04",
      "source-page": 31,
      "title": "Broadcast 和 Signal 区别",
      "size": 26,
      "span_ids": [
        "p031-t0131",
        "p031-t0132",
        "p031-t0133",
        "p031-t0134"
      ],
      "top": 933.0,
      "kind": "question",
      "question_id": "q-p031-h04",
      "target": "/go-bank/02-go-concurrency#q-p031-h04",
      "page-range": [
        31,
        31
      ]
    },
    {
      "heading-id": "p032-h01",
      "source-page": 32,
      "title": "Cond 中 Wait 使用",
      "size": 26,
      "span_ids": [
        "p032-t0001",
        "p032-t0002",
        "p032-t0003",
        "p032-t0004"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p032-h01",
      "target": "/go-bank/02-go-concurrency#q-p032-h01",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p032-h02",
      "source-page": 32,
      "title": "WaitGroup 用法",
      "size": 26,
      "span_ids": [
        "p032-t0047",
        "p032-t0048"
      ],
      "top": 382.0,
      "kind": "question",
      "question_id": "q-p032-h02",
      "target": "/go-bank/02-go-concurrency#q-p032-h02",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p032-h03",
      "source-page": 32,
      "title": "WaitGroup 实现原理",
      "size": 26,
      "span_ids": [
        "p032-t0083",
        "p032-t0084"
      ],
      "top": 564.0,
      "kind": "question",
      "question_id": "q-p032-h03",
      "target": "/go-bank/02-go-concurrency#q-p032-h03",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p032-h04",
      "source-page": 32,
      "title": "什么是 sync.Once",
      "size": 26,
      "span_ids": [
        "p032-t0123",
        "p032-t0124"
      ],
      "top": 726.0,
      "kind": "question",
      "question_id": "q-p032-h04",
      "target": "/go-bank/02-go-concurrency#q-p032-h04",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p032-h05",
      "source-page": 32,
      "title": "什么操作叫做原子操作",
      "size": 26,
      "span_ids": [
        "p032-t0155"
      ],
      "top": 920.0,
      "kind": "question",
      "question_id": "q-p032-h05",
      "target": "/go-bank/02-go-concurrency#q-p032-h05",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p032-h06",
      "source-page": 32,
      "title": "原子操作和锁的区别",
      "size": 26,
      "span_ids": [
        "p032-t0180"
      ],
      "top": 1075.0,
      "kind": "question",
      "question_id": "q-p032-h06",
      "target": "/go-bank/02-go-concurrency#q-p032-h06",
      "page-range": [
        32,
        32
      ]
    },
    {
      "heading-id": "p033-h01",
      "source-page": 33,
      "title": "什么是 CAS",
      "size": 26,
      "span_ids": [
        "p033-t0001",
        "p033-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p033-h01",
      "target": "/go-bank/02-go-concurrency#q-p033-h01",
      "page-range": [
        33,
        33
      ]
    },
    {
      "heading-id": "p033-h02",
      "source-page": 33,
      "title": "sync.Pool 有什么用",
      "size": 26,
      "span_ids": [
        "p033-t0078",
        "p033-t0079"
      ],
      "top": 312.0,
      "kind": "question",
      "question_id": "q-p033-h02",
      "target": "/go-bank/02-go-concurrency#q-p033-h02",
      "page-range": [
        33,
        33
      ]
    },
    {
      "heading-id": "p033-h03",
      "source-page": 33,
      "title": "进阶-Go Runtime",
      "size": 33,
      "span_ids": [
        "p033-t0105",
        "p033-t0106"
      ],
      "top": 466.0,
      "kind": "section",
      "section": "进阶-Go Runtime",
      "target": "/go-bank/03-go-runtime#q-p033-h04",
      "page-range": [
        33,
        40
      ]
    },
    {
      "heading-id": "p033-h04",
      "source-page": 33,
      "title": "Goroutine 定义",
      "size": 26,
      "span_ids": [
        "p033-t0108",
        "p033-t0109"
      ],
      "top": 523.0,
      "kind": "question",
      "question_id": "q-p033-h04",
      "target": "/go-bank/03-go-runtime#q-p033-h04",
      "page-range": [
        33,
        33
      ]
    },
    {
      "heading-id": "p033-h05",
      "source-page": 33,
      "title": "GMP 指的是什么",
      "size": 26,
      "span_ids": [
        "p033-t0141",
        "p033-t0142"
      ],
      "top": 654.0,
      "kind": "question",
      "question_id": "q-p033-h05",
      "target": "/go-bank/03-go-runtime#q-p033-h05",
      "page-range": [
        33,
        33
      ]
    },
    {
      "heading-id": "p033-h06",
      "source-page": 33,
      "title": "1.0 之前 GM 调度模型",
      "size": 26,
      "span_ids": [
        "p033-t0181",
        "p033-t0182",
        "p033-t0183",
        "p033-t0184"
      ],
      "top": 833.0,
      "kind": "question",
      "question_id": "q-p033-h06",
      "target": "/go-bank/03-go-runtime#q-p033-h06",
      "page-range": [
        33,
        33
      ]
    },
    {
      "heading-id": "p034-h01",
      "source-page": 34,
      "title": "GMP 调度流程",
      "size": 26,
      "span_ids": [
        "p034-t0001",
        "p034-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p034-h01",
      "target": "/go-bank/03-go-runtime#q-p034-h01",
      "page-range": [
        34,
        34
      ]
    },
    {
      "heading-id": "p034-h02",
      "source-page": 34,
      "title": "GMP 中 work stealing 机制",
      "size": 26,
      "span_ids": [
        "p034-t0128",
        "p034-t0129",
        "p034-t0130",
        "p034-t0131"
      ],
      "top": 784.0,
      "kind": "question",
      "question_id": "q-p034-h02",
      "target": "/go-bank/03-go-runtime#q-p034-h02",
      "page-range": [
        34,
        34
      ]
    },
    {
      "heading-id": "p034-h03",
      "source-page": 34,
      "title": "GMP 中 hand off 机制",
      "size": 26,
      "span_ids": [
        "p034-t0179",
        "p034-t0180",
        "p034-t0181",
        "p034-t0182"
      ],
      "top": 939.0,
      "kind": "question",
      "question_id": "q-p034-h03",
      "target": "/go-bank/03-go-runtime#q-p034-h03",
      "page-range": [
        34,
        34
      ]
    },
    {
      "heading-id": "p034-h04",
      "source-page": 34,
      "title": "协作式的抢占式调度",
      "size": 26,
      "span_ids": [
        "p034-t0245"
      ],
      "top": 1141.0,
      "kind": "question",
      "question_id": "q-p034-h04",
      "target": "/go-bank/03-go-runtime#q-p034-h04",
      "page-range": [
        34,
        35
      ]
    },
    {
      "heading-id": "p035-h01",
      "source-page": 35,
      "title": "基于信号的抢占式调度",
      "size": 26,
      "span_ids": [
        "p035-t0018"
      ],
      "top": 132.0,
      "kind": "question",
      "question_id": "q-p035-h01",
      "target": "/go-bank/03-go-runtime#q-p035-h01",
      "page-range": [
        35,
        35
      ]
    },
    {
      "heading-id": "p035-h02",
      "source-page": 35,
      "title": "GMP 调度过程中存在哪些阻塞",
      "size": 26,
      "span_ids": [
        "p035-t0118",
        "p035-t0119"
      ],
      "top": 404.0,
      "kind": "question",
      "question_id": "q-p035-h02",
      "target": "/go-bank/03-go-runtime#q-p035-h02",
      "page-range": [
        35,
        35
      ]
    },
    {
      "heading-id": "p035-h03",
      "source-page": 35,
      "title": "Sysmon 有什么作用",
      "size": 26,
      "span_ids": [
        "p035-t0131",
        "p035-t0132"
      ],
      "top": 613.0,
      "kind": "question",
      "question_id": "q-p035-h03",
      "target": "/go-bank/03-go-runtime#q-p035-h03",
      "page-range": [
        35,
        35
      ]
    },
    {
      "heading-id": "p036-h01",
      "source-page": 36,
      "title": "三色标记原理",
      "size": 26,
      "span_ids": [
        "p036-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p036-h01",
      "target": "/go-bank/03-go-runtime#q-p036-h01",
      "page-range": [
        36,
        36
      ]
    },
    {
      "heading-id": "p037-h01",
      "source-page": 37,
      "title": "写屏障",
      "size": 26,
      "span_ids": [
        "p037-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p037-h01",
      "target": "/go-bank/03-go-runtime#q-p037-h01",
      "page-range": [
        37,
        38
      ]
    },
    {
      "heading-id": "p038-h01",
      "source-page": 38,
      "title": "插入写屏障",
      "size": 26,
      "span_ids": [
        "p038-t0022"
      ],
      "top": 102.0,
      "kind": "question",
      "question_id": "q-p038-h01",
      "target": "/go-bank/03-go-runtime#q-p038-h01",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p038-h02",
      "source-page": 38,
      "title": "删除写屏障",
      "size": 26,
      "span_ids": [
        "p038-t0042"
      ],
      "top": 233.0,
      "kind": "question",
      "question_id": "q-p038-h02",
      "target": "/go-bank/03-go-runtime#q-p038-h02",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p038-h03",
      "source-page": 38,
      "title": "混合写屏障",
      "size": 26,
      "span_ids": [
        "p038-t0057"
      ],
      "top": 341.0,
      "kind": "question",
      "question_id": "q-p038-h03",
      "target": "/go-bank/03-go-runtime#q-p038-h03",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p038-h04",
      "source-page": 38,
      "title": "GC 触发时机",
      "size": 26,
      "span_ids": [
        "p038-t0101",
        "p038-t0102"
      ],
      "top": 613.0,
      "kind": "question",
      "question_id": "q-p038-h04",
      "target": "/go-bank/03-go-runtime#q-p038-h04",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p038-h05",
      "source-page": 38,
      "title": "Go 语言中 GC 的流程是什么？",
      "size": 26,
      "span_ids": [
        "p038-t0140",
        "p038-t0141",
        "p038-t0142",
        "p038-t0143"
      ],
      "top": 768.0,
      "kind": "question",
      "question_id": "q-p038-h05",
      "target": "/go-bank/03-go-runtime#q-p038-h05",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p038-h06",
      "source-page": 38,
      "title": "GC 如何调优",
      "size": 26,
      "span_ids": [
        "p038-t0169",
        "p038-t0170"
      ],
      "top": 947.0,
      "kind": "question",
      "question_id": "q-p038-h06",
      "target": "/go-bank/03-go-runtime#q-p038-h06",
      "page-range": [
        38,
        38
      ]
    },
    {
      "heading-id": "p039-h01",
      "source-page": 39,
      "title": "Golang GC 时会发生什么?",
      "size": 26,
      "span_ids": [
        "p039-t0001",
        "p039-t0002",
        "p039-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p039-h01",
      "target": "/go-bank/03-go-runtime#q-p039-h01",
      "page-range": [
        39,
        40
      ]
    },
    {
      "heading-id": "p041-h01",
      "source-page": 41,
      "title": "微服务",
      "size": 33,
      "span_ids": [
        "p041-t0001"
      ],
      "top": 39.0,
      "kind": "section",
      "section": "微服务",
      "target": "/go-bank/06-microservices#q-p041-h02",
      "page-range": [
        41,
        46
      ]
    },
    {
      "heading-id": "p041-h02",
      "source-page": 41,
      "title": "您对微服务有何了解？",
      "size": 26,
      "span_ids": [
        "p041-t0003"
      ],
      "top": 95.0,
      "kind": "question",
      "question_id": "q-p041-h02",
      "target": "/go-bank/06-microservices#q-p041-h02",
      "page-range": [
        41,
        41
      ]
    },
    {
      "heading-id": "p041-h03",
      "source-page": 41,
      "title": "说说微服务架构的优势",
      "size": 26,
      "span_ids": [
        "p041-t0040"
      ],
      "top": 1057.0,
      "kind": "question",
      "question_id": "q-p041-h03",
      "target": "/go-bank/06-microservices#q-p041-h03",
      "page-range": [
        41,
        42
      ]
    },
    {
      "heading-id": "p042-h01",
      "source-page": 42,
      "title": "微服务有哪些特点",
      "size": 26,
      "span_ids": [
        "p042-t0006"
      ],
      "top": 78.0,
      "kind": "question",
      "question_id": "q-p042-h01",
      "target": "/go-bank/06-microservices#q-p042-h01",
      "page-range": [
        42,
        42
      ]
    },
    {
      "heading-id": "p042-h02",
      "source-page": 42,
      "title": "设计微服务的最佳实践是什么",
      "size": 26,
      "span_ids": [
        "p042-t0058"
      ],
      "top": 401.0,
      "kind": "question",
      "question_id": "q-p042-h02",
      "target": "/go-bank/06-microservices#q-p042-h02",
      "page-range": [
        42,
        42
      ]
    },
    {
      "heading-id": "p042-h03",
      "source-page": 42,
      "title": "微服务架构如何运作",
      "size": 26,
      "span_ids": [
        "p042-t0061"
      ],
      "top": 834.0,
      "kind": "question",
      "question_id": "q-p042-h03",
      "target": "/go-bank/06-microservices#q-p042-h03",
      "page-range": [
        42,
        42
      ]
    },
    {
      "heading-id": "p043-h01",
      "source-page": 43,
      "title": "微服务架构的优缺点是什么",
      "size": 26,
      "span_ids": [
        "p043-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p043-h01",
      "target": "/go-bank/06-microservices#q-p043-h01",
      "page-range": [
        43,
        43
      ]
    },
    {
      "heading-id": "p043-h02",
      "source-page": 43,
      "title": "单片，SOA 和微服务架构有什么区别？",
      "size": 26,
      "span_ids": [
        "p043-t0045",
        "p043-t0046",
        "p043-t0047"
      ],
      "top": 537.0,
      "kind": "question",
      "question_id": "q-p043-h02",
      "target": "/go-bank/06-microservices#q-p043-h02",
      "page-range": [
        43,
        43
      ]
    },
    {
      "heading-id": "p043-h03",
      "source-page": 43,
      "title": "在使用微服务架构时，您面临哪些挑战？",
      "size": 26,
      "span_ids": [
        "p043-t0065"
      ],
      "top": 1149.0,
      "kind": "question",
      "question_id": "q-p043-h03",
      "target": "/go-bank/06-microservices#q-p043-h03",
      "page-range": [
        43,
        44
      ]
    },
    {
      "heading-id": "p044-h01",
      "source-page": 44,
      "title": "SOA 和微服务架构之间的主要区别是什么？",
      "size": 26,
      "span_ids": [
        "p044-t0027",
        "p044-t0028"
      ],
      "top": 217.0,
      "kind": "question",
      "question_id": "q-p044-h01",
      "target": "/go-bank/06-microservices#q-p044-h01",
      "page-range": [
        44,
        44
      ]
    },
    {
      "heading-id": "p044-h02",
      "source-page": 44,
      "title": "微服务有什么特点",
      "size": 26,
      "span_ids": [
        "p044-t0030"
      ],
      "top": 716.0,
      "kind": "question",
      "question_id": "q-p044-h02",
      "target": "/go-bank/06-microservices#q-p044-h02",
      "page-range": [
        44,
        44
      ]
    },
    {
      "heading-id": "p045-h01",
      "source-page": 45,
      "title": "什么是领域驱动设计",
      "size": 26,
      "span_ids": [
        "p045-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p045-h01",
      "target": "/go-bank/06-microservices#q-p045-h01",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p045-h02",
      "source-page": 45,
      "title": "为什么需要域驱动设计（DDD）",
      "size": 26,
      "span_ids": [
        "p045-t0004",
        "p045-t0005",
        "p045-t0006"
      ],
      "top": 326.0,
      "kind": "question",
      "question_id": "q-p045-h02",
      "target": "/go-bank/06-microservices#q-p045-h02",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p045-h03",
      "source-page": 45,
      "title": "什么是无所不在的语言",
      "size": 26,
      "span_ids": [
        "p045-t0009"
      ],
      "top": 748.0,
      "kind": "question",
      "question_id": "q-p045-h03",
      "target": "/go-bank/06-microservices#q-p045-h03",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p045-h04",
      "source-page": 45,
      "title": "什么是凝聚力",
      "size": 26,
      "span_ids": [
        "p045-t0025"
      ],
      "top": 880.0,
      "kind": "question",
      "question_id": "q-p045-h04",
      "target": "/go-bank/06-microservices#q-p045-h04",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p045-h05",
      "source-page": 45,
      "title": "什么是耦合",
      "size": 26,
      "span_ids": [
        "p045-t0031"
      ],
      "top": 965.0,
      "kind": "question",
      "question_id": "q-p045-h05",
      "target": "/go-bank/06-microservices#q-p045-h05",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p045-h06",
      "source-page": 45,
      "title": "、什么是 REST / RESTful 以及它的用途是什么？",
      "size": 26,
      "span_ids": [
        "p045-t0039",
        "p045-t0040",
        "p045-t0041"
      ],
      "top": 1050.0,
      "kind": "question",
      "question_id": "q-p045-h06",
      "target": "/go-bank/06-microservices#q-p045-h06",
      "page-range": [
        45,
        45
      ]
    },
    {
      "heading-id": "p046-h01",
      "source-page": 46,
      "title": "什么是不同类型的微服务测试",
      "size": 26,
      "span_ids": [
        "p046-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p046-h01",
      "target": "/go-bank/06-microservices#q-p046-h01",
      "page-range": [
        46,
        46
      ]
    },
    {
      "heading-id": "p046-h02",
      "source-page": 46,
      "title": "容器技术",
      "size": 33,
      "span_ids": [
        "p046-t0024"
      ],
      "top": 220.0,
      "kind": "section",
      "section": "容器技术",
      "target": "/go-bank/07-docker#q-p046-h03",
      "page-range": [
        46,
        66
      ]
    },
    {
      "heading-id": "p046-h03",
      "source-page": 46,
      "title": "为什么需要 DevOps",
      "size": 26,
      "span_ids": [
        "p046-t0026",
        "p046-t0027"
      ],
      "top": 277.0,
      "kind": "question",
      "question_id": "q-p046-h03",
      "target": "/go-bank/07-docker#q-p046-h03",
      "page-range": [
        46,
        46
      ]
    },
    {
      "heading-id": "p046-h04",
      "source-page": 46,
      "title": "Docker 是什么？",
      "size": 26,
      "span_ids": [
        "p046-t0053",
        "p046-t0054"
      ],
      "top": 550.0,
      "kind": "question",
      "question_id": "q-p046-h04",
      "target": "/go-bank/07-docker#q-p046-h04",
      "page-range": [
        46,
        46
      ]
    },
    {
      "heading-id": "p046-h05",
      "source-page": 46,
      "title": "DevOps 有哪些优势？",
      "size": 26,
      "span_ids": [
        "p046-t0075",
        "p046-t0076"
      ],
      "top": 705.0,
      "kind": "question",
      "question_id": "q-p046-h05",
      "target": "/go-bank/07-docker#q-p046-h05",
      "page-range": [
        46,
        46
      ]
    },
    {
      "heading-id": "p046-h06",
      "source-page": 46,
      "title": "CI 服务有什么用途？",
      "size": 26,
      "span_ids": [
        "p046-t0098",
        "p046-t0099"
      ],
      "top": 953.0,
      "kind": "question",
      "question_id": "q-p046-h06",
      "target": "/go-bank/07-docker#q-p046-h06",
      "page-range": [
        46,
        46
      ]
    },
    {
      "heading-id": "p047-h01",
      "source-page": 47,
      "title": "如何使用 Docker 技术创建与环境无关的容器系统？",
      "size": 26,
      "span_ids": [
        "p047-t0001",
        "p047-t0002",
        "p047-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p047-h01",
      "target": "/go-bank/07-docker#q-p047-h01",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h02",
      "source-page": 47,
      "title": "Dockerfile 配置文件中的 COPY 和 ADD 指令有什么不同？",
      "size": 26,
      "span_ids": [
        "p047-t0021",
        "p047-t0022",
        "p047-t0023",
        "p047-t0024",
        "p047-t0025",
        "p047-t0026",
        "p047-t0027"
      ],
      "top": 195.0,
      "kind": "question",
      "question_id": "q-p047-h02",
      "target": "/go-bank/07-docker#q-p047-h02",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h03",
      "source-page": 47,
      "title": "Docker 镜像（image）是什么？",
      "size": 26,
      "span_ids": [
        "p047-t0061",
        "p047-t0062",
        "p047-t0063",
        "p047-t0064"
      ],
      "top": 406.0,
      "kind": "question",
      "question_id": "q-p047-h03",
      "target": "/go-bank/07-docker#q-p047-h03",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h04",
      "source-page": 47,
      "title": "Docker 容器（container）是什么",
      "size": 26,
      "span_ids": [
        "p047-t0106",
        "p047-t0107",
        "p047-t0108",
        "p047-t0109"
      ],
      "top": 584.0,
      "kind": "question",
      "question_id": "q-p047-h04",
      "target": "/go-bank/07-docker#q-p047-h04",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h05",
      "source-page": 47,
      "title": "Docker 中心（hub）什么概念",
      "size": 26,
      "span_ids": [
        "p047-t0127",
        "p047-t0128",
        "p047-t0129",
        "p047-t0130"
      ],
      "top": 716.0,
      "kind": "question",
      "question_id": "q-p047-h05",
      "target": "/go-bank/07-docker#q-p047-h05",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h06",
      "source-page": 47,
      "title": "在任意给定时间点指出一个 Docker 容器可能存在的运行阶段",
      "size": 26,
      "span_ids": [
        "p047-t0160",
        "p047-t0161",
        "p047-t0162",
        "p047-t0163"
      ],
      "top": 871.0,
      "kind": "question",
      "question_id": "q-p047-h06",
      "target": "/go-bank/07-docker#q-p047-h06",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p047-h07",
      "source-page": 47,
      "title": "有什么方法确定一个 Docker 容器运行状态",
      "size": 26,
      "span_ids": [
        "p047-t0189",
        "p047-t0190",
        "p047-t0191"
      ],
      "top": 1011.0,
      "kind": "question",
      "question_id": "q-p047-h07",
      "target": "/go-bank/07-docker#q-p047-h07",
      "page-range": [
        47,
        47
      ]
    },
    {
      "heading-id": "p048-h01",
      "source-page": 48,
      "title": "在 Dockerfile 配置文件中最常用的指令有哪些？",
      "size": 26,
      "span_ids": [
        "p048-t0001",
        "p048-t0002",
        "p048-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p048-h01",
      "target": "/go-bank/07-docker#q-p048-h01",
      "page-range": [
        48,
        48
      ]
    },
    {
      "heading-id": "p048-h02",
      "source-page": 48,
      "title": "什么类型的应用（无状态性或有状态性）更适合 Docker 容器技术",
      "size": 26,
      "span_ids": [
        "p048-t0049",
        "p048-t0050",
        "p048-t0051",
        "p048-t0053"
      ],
      "top": 311.0,
      "kind": "question",
      "question_id": "q-p048-h02",
      "target": "/go-bank/07-docker#q-p048-h02",
      "page-range": [
        48,
        48
      ]
    },
    {
      "heading-id": "p048-h03",
      "source-page": 48,
      "title": "解释基本 Docker 应用流程",
      "size": 26,
      "span_ids": [
        "p048-t0093",
        "p048-t0094",
        "p048-t0095"
      ],
      "top": 520.0,
      "kind": "question",
      "question_id": "q-p048-h03",
      "target": "/go-bank/07-docker#q-p048-h03",
      "page-range": [
        48,
        48
      ]
    },
    {
      "heading-id": "p048-h04",
      "source-page": 48,
      "title": "Docker Image 和 Docker Layer （层) 有什么不同？",
      "size": 26,
      "span_ids": [
        "p048-t0161",
        "p048-t0162",
        "p048-t0163",
        "p048-t0164",
        "p048-t0165",
        "p048-t0166"
      ],
      "top": 723.0,
      "kind": "question",
      "question_id": "q-p048-h04",
      "target": "/go-bank/07-docker#q-p048-h04",
      "page-range": [
        48,
        48
      ]
    },
    {
      "heading-id": "p048-h05",
      "source-page": 48,
      "title": "虚拟化技术是什么？",
      "size": 26,
      "span_ids": [
        "p048-t0201"
      ],
      "top": 1014.0,
      "kind": "question",
      "question_id": "q-p048-h05",
      "target": "/go-bank/07-docker#q-p048-h05",
      "page-range": [
        48,
        49
      ]
    },
    {
      "heading-id": "p049-h01",
      "source-page": 49,
      "title": "虚拟管理层（程序）是什么",
      "size": 26,
      "span_ids": [
        "p049-t0022"
      ],
      "top": 172.0,
      "kind": "question",
      "question_id": "q-p049-h01",
      "target": "/go-bank/07-docker#q-p049-h01",
      "page-range": [
        49,
        49
      ]
    },
    {
      "heading-id": "p049-h02",
      "source-page": 49,
      "title": "Docker 集群（Swarm）是什么",
      "size": 26,
      "span_ids": [
        "p049-t0063",
        "p049-t0064",
        "p049-t0065",
        "p049-t0066"
      ],
      "top": 420.0,
      "kind": "question",
      "question_id": "q-p049-h02",
      "target": "/go-bank/07-docker#q-p049-h02",
      "page-range": [
        49,
        49
      ]
    },
    {
      "heading-id": "p049-h03",
      "source-page": 49,
      "title": "在使用 Docker 技术的产品中如何监控其运行",
      "size": 26,
      "span_ids": [
        "p049-t0091",
        "p049-t0092",
        "p049-t0093"
      ],
      "top": 552.0,
      "kind": "question",
      "question_id": "q-p049-h03",
      "target": "/go-bank/07-docker#q-p049-h03",
      "page-range": [
        49,
        49
      ]
    },
    {
      "heading-id": "p049-h04",
      "source-page": 49,
      "title": "什么是孤儿卷及如何删除它",
      "size": 26,
      "span_ids": [
        "p049-t0149"
      ],
      "top": 754.0,
      "kind": "question",
      "question_id": "q-p049-h04",
      "target": "/go-bank/07-docker#q-p049-h04",
      "page-range": [
        49,
        49
      ]
    },
    {
      "heading-id": "p050-h01",
      "source-page": 50,
      "title": "什么是半虚拟化（Paravirtualization）",
      "size": 26,
      "span_ids": [
        "p050-t0001",
        "p050-t0002",
        "p050-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p050-h01",
      "target": "/go-bank/07-docker#q-p050-h01",
      "page-range": [
        50,
        50
      ]
    },
    {
      "heading-id": "p050-h02",
      "source-page": 50,
      "title": "Docker 技术与虚拟机技术有何不同？",
      "size": 26,
      "span_ids": [
        "p050-t0024",
        "p050-t0025"
      ],
      "top": 487.0,
      "kind": "question",
      "question_id": "q-p050-h02",
      "target": "/go-bank/07-docker#q-p050-h02",
      "page-range": [
        50,
        51
      ]
    },
    {
      "heading-id": "p051-h01",
      "source-page": 51,
      "title": "请解释一下 docerfile 配置文件中的 ONBUILD 指令的用途含义",
      "size": 26,
      "span_ids": [
        "p051-t0047",
        "p051-t0048",
        "p051-t0049",
        "p051-t0050",
        "p051-t0051",
        "p051-t0053"
      ],
      "top": 271.0,
      "kind": "question",
      "question_id": "q-p051-h01",
      "target": "/go-bank/07-docker#q-p051-h01",
      "page-range": [
        51,
        51
      ]
    },
    {
      "heading-id": "p051-h02",
      "source-page": 51,
      "title": "有否在创建有状态性的 Docker 应用的较好实践？最适合的场景有什么",
      "size": 26,
      "span_ids": [
        "p051-t0068",
        "p051-t0069",
        "p051-t0070",
        "p051-t0072",
        "p051-t0073",
        "p051-t0075"
      ],
      "top": 411.0,
      "kind": "question",
      "question_id": "q-p051-h02",
      "target": "/go-bank/07-docker#q-p051-h02",
      "page-range": [
        51,
        51
      ]
    },
    {
      "heading-id": "p051-h03",
      "source-page": 51,
      "title": "容器化技术在底层的运行原理？",
      "size": 26,
      "span_ids": [
        "p051-t0143"
      ],
      "top": 968.0,
      "kind": "question",
      "question_id": "q-p051-h03",
      "target": "/go-bank/07-docker#q-p051-h03",
      "page-range": [
        51,
        52
      ]
    },
    {
      "heading-id": "p052-h01",
      "source-page": 52,
      "title": "说说容器化技术与虚拟化技术的优缺点",
      "size": 26,
      "span_ids": [
        "p052-t0016"
      ],
      "top": 506.0,
      "kind": "question",
      "question_id": "q-p052-h01",
      "target": "/go-bank/07-docker#q-p052-h01",
      "page-range": [
        52,
        52
      ]
    },
    {
      "heading-id": "p052-h02",
      "source-page": 52,
      "title": "如何使 Docker 适应多种运行环境",
      "size": 26,
      "span_ids": [
        "p052-t0065",
        "p052-t0066",
        "p052-t0067"
      ],
      "top": 731.0,
      "kind": "question",
      "question_id": "q-p052-h02",
      "target": "/go-bank/07-docker#q-p052-h02",
      "page-range": [
        52,
        52
      ]
    },
    {
      "heading-id": "p052-h03",
      "source-page": 52,
      "title": "为什么 Docker compose 采取的是并不等待前面依赖服务项的容器启动就绪后再启动的组合容器启动策略？",
      "size": 26,
      "span_ids": [
        "p052-t0118",
        "p052-t0119",
        "p052-t0120",
        "p052-t0121",
        "p052-t0123"
      ],
      "top": 933.0,
      "kind": "question",
      "question_id": "q-p052-h03",
      "target": "/go-bank/07-docker#q-p052-h03",
      "page-range": [
        52,
        53
      ]
    },
    {
      "heading-id": "p053-h01",
      "source-page": 53,
      "title": "什么是k8s？说出你的理解",
      "size": 26,
      "span_ids": [
        "p053-t0014",
        "p053-t0015",
        "p053-t0016"
      ],
      "top": 102.0,
      "kind": "question",
      "question_id": "q-p053-h01",
      "target": "/go-bank/08-kubernetes#q-p053-h01",
      "page-range": [
        53,
        53
      ]
    },
    {
      "heading-id": "p053-h02",
      "source-page": 53,
      "title": "k8s的组件有哪些，作用分别是什么",
      "size": 26,
      "span_ids": [
        "p053-t0034",
        "p053-t0035"
      ],
      "top": 303.0,
      "kind": "question",
      "question_id": "q-p053-h02",
      "target": "/go-bank/08-kubernetes#q-p053-h02",
      "page-range": [
        53,
        54
      ]
    },
    {
      "heading-id": "p054-h01",
      "source-page": 54,
      "title": "kubelet的功能、作用是什么？",
      "size": 26,
      "span_ids": [
        "p054-t0015",
        "p054-t0016"
      ],
      "top": 102.0,
      "kind": "question",
      "question_id": "q-p054-h01",
      "target": "/go-bank/08-kubernetes#q-p054-h01",
      "page-range": [
        54,
        54
      ]
    },
    {
      "heading-id": "p054-h02",
      "source-page": 54,
      "title": "kube-api-server的端口是多少？各个pod是如何访问kube-api-server的？",
      "size": 26,
      "span_ids": [
        "p054-t0110",
        "p054-t0111",
        "p054-t0112",
        "p054-t0113",
        "p054-t0114",
        "p054-t0115"
      ],
      "top": 514.0,
      "kind": "question",
      "question_id": "q-p054-h02",
      "target": "/go-bank/08-kubernetes#q-p054-h02",
      "page-range": [
        54,
        54
      ]
    },
    {
      "heading-id": "p054-h03",
      "source-page": 54,
      "title": "k8s中命名空间的作用是什么",
      "size": 26,
      "span_ids": [
        "p054-t0210",
        "p054-t0211"
      ],
      "top": 865.0,
      "kind": "question",
      "question_id": "q-p054-h03",
      "target": "/go-bank/08-kubernetes#q-p054-h03",
      "page-range": [
        54,
        54
      ]
    },
    {
      "heading-id": "p055-h01",
      "source-page": 55,
      "title": "k8s提供了大量的REST接口，其中有一个是Kubernetes Proxy API接口，简述一下这个Proxy接口的作用，已经怎么使用",
      "size": 26,
      "span_ids": [
        "p055-t0001",
        "p055-t0002",
        "p055-t0003",
        "p055-t0004",
        "p055-t0005",
        "p055-t0006",
        "p055-t0007",
        "p055-t0008",
        "p055-t0009",
        "p055-t0010"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p055-h01",
      "target": "/go-bank/08-kubernetes#q-p055-h01",
      "page-range": [
        55,
        55
      ]
    },
    {
      "heading-id": "p055-h02",
      "source-page": 55,
      "title": "pod是什么",
      "size": 26,
      "span_ids": [
        "p055-t0037",
        "p055-t0038"
      ],
      "top": 258.0,
      "kind": "question",
      "question_id": "q-p055-h02",
      "target": "/go-bank/08-kubernetes#q-p055-h02",
      "page-range": [
        55,
        55
      ]
    },
    {
      "heading-id": "p055-h03",
      "source-page": 55,
      "title": "pod的原理是什么",
      "size": 26,
      "span_ids": [
        "p055-t0077",
        "p055-t0078"
      ],
      "top": 437.0,
      "kind": "question",
      "question_id": "q-p055-h03",
      "target": "/go-bank/08-kubernetes#q-p055-h03",
      "page-range": [
        55,
        55
      ]
    },
    {
      "heading-id": "p055-h04",
      "source-page": 55,
      "title": "pod有什么特点？",
      "size": 26,
      "span_ids": [
        "p055-t0087",
        "p055-t0088"
      ],
      "top": 569.0,
      "kind": "question",
      "question_id": "q-p055-h04",
      "target": "/go-bank/08-kubernetes#q-p055-h04",
      "page-range": [
        55,
        55
      ]
    },
    {
      "heading-id": "p055-h05",
      "source-page": 55,
      "title": "pause容器作用是什么",
      "size": 26,
      "span_ids": [
        "p055-t0191",
        "p055-t0192"
      ],
      "top": 934.0,
      "kind": "question",
      "question_id": "q-p055-h05",
      "target": "/go-bank/08-kubernetes#q-p055-h05",
      "page-range": [
        55,
        55
      ]
    },
    {
      "heading-id": "p056-h01",
      "source-page": 56,
      "title": "pod的重启策略有哪些",
      "size": 26,
      "span_ids": [
        "p056-t0001",
        "p056-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p056-h01",
      "target": "/go-bank/08-kubernetes#q-p056-h01",
      "page-range": [
        56,
        56
      ]
    },
    {
      "heading-id": "p056-h02",
      "source-page": 56,
      "title": "pod的镜像拉取策略有哪几种",
      "size": 26,
      "span_ids": [
        "p056-t0026",
        "p056-t0027"
      ],
      "top": 219.0,
      "kind": "question",
      "question_id": "q-p056-h02",
      "target": "/go-bank/08-kubernetes#q-p056-h02",
      "page-range": [
        56,
        56
      ]
    },
    {
      "heading-id": "p056-h03",
      "source-page": 56,
      "title": "pod的存活探针有哪几种？",
      "size": 26,
      "span_ids": [
        "p056-t0052",
        "p056-t0053"
      ],
      "top": 398.0,
      "kind": "question",
      "question_id": "q-p056-h03",
      "target": "/go-bank/08-kubernetes#q-p056-h03",
      "page-range": [
        56,
        56
      ]
    },
    {
      "heading-id": "p056-h04",
      "source-page": 56,
      "title": "存活探针的属性参数有哪几个？",
      "size": 26,
      "span_ids": [
        "p056-t0101"
      ],
      "top": 646.0,
      "kind": "question",
      "question_id": "q-p056-h04",
      "target": "/go-bank/08-kubernetes#q-p056-h04",
      "page-range": [
        56,
        56
      ]
    },
    {
      "heading-id": "p056-h05",
      "source-page": 56,
      "title": "pod的就绪探针有哪几种？",
      "size": 26,
      "span_ids": [
        "p056-t0150",
        "p056-t0151"
      ],
      "top": 1024.0,
      "kind": "question",
      "question_id": "q-p056-h05",
      "target": "/go-bank/08-kubernetes#q-p056-h05",
      "page-range": [
        56,
        57
      ]
    },
    {
      "heading-id": "p057-h01",
      "source-page": 57,
      "title": "就绪探针的属性参数有哪些",
      "size": 26,
      "span_ids": [
        "p057-t0041"
      ],
      "top": 241.0,
      "kind": "question",
      "question_id": "q-p057-h01",
      "target": "/go-bank/08-kubernetes#q-p057-h01",
      "page-range": [
        57,
        57
      ]
    },
    {
      "heading-id": "p057-h02",
      "source-page": 57,
      "title": "就绪探针与存活探针区别是什么",
      "size": 26,
      "span_ids": [
        "p057-t0069"
      ],
      "top": 444.0,
      "kind": "question",
      "question_id": "q-p057-h02",
      "target": "/go-bank/08-kubernetes#q-p057-h02",
      "page-range": [
        57,
        57
      ]
    },
    {
      "heading-id": "p057-h03",
      "source-page": 57,
      "title": "简单讲一下 pod创建过程",
      "size": 26,
      "span_ids": [
        "p057-t0085",
        "p057-t0086",
        "p057-t0087"
      ],
      "top": 575.0,
      "kind": "question",
      "question_id": "q-p057-h03",
      "target": "/go-bank/08-kubernetes#q-p057-h03",
      "page-range": [
        57,
        58
      ]
    },
    {
      "heading-id": "p058-h01",
      "source-page": 58,
      "title": "简单描述一下pod的终止过程",
      "size": 26,
      "span_ids": [
        "p058-t0108",
        "p058-t0109",
        "p058-t0110"
      ],
      "top": 429.0,
      "kind": "question",
      "question_id": "q-p058-h01",
      "target": "/go-bank/08-kubernetes#q-p058-h01",
      "page-range": [
        58,
        58
      ]
    },
    {
      "heading-id": "p058-h02",
      "source-page": 58,
      "title": "pod的生命周期有哪几种",
      "size": 26,
      "span_ids": [
        "p058-t0189",
        "p058-t0190"
      ],
      "top": 748.0,
      "kind": "question",
      "question_id": "q-p058-h02",
      "target": "/go-bank/08-kubernetes#q-p058-h02",
      "page-range": [
        58,
        58
      ]
    },
    {
      "heading-id": "p058-h03",
      "source-page": 58,
      "title": "pod一致处于pending状态一般有哪些情况，怎么排查？",
      "size": 26,
      "span_ids": [
        "p058-t0220",
        "p058-t0221",
        "p058-t0222",
        "p058-t0223"
      ],
      "top": 974.0,
      "kind": "question",
      "question_id": "q-p058-h03",
      "target": "/go-bank/08-kubernetes#q-p058-h03",
      "page-range": [
        58,
        59
      ]
    },
    {
      "heading-id": "p059-h01",
      "source-page": 59,
      "title": "pod的初始化容器是干什么的？",
      "size": 26,
      "span_ids": [
        "p059-t0038",
        "p059-t0039"
      ],
      "top": 148.0,
      "kind": "question",
      "question_id": "q-p059-h01",
      "target": "/go-bank/08-kubernetes#q-p059-h01",
      "page-range": [
        59,
        59
      ]
    },
    {
      "heading-id": "p059-h02",
      "source-page": 59,
      "title": "pod的资源请求、限制如何定义？",
      "size": 26,
      "span_ids": [
        "p059-t0052",
        "p059-t0053"
      ],
      "top": 350.0,
      "kind": "question",
      "question_id": "q-p059-h02",
      "target": "/go-bank/08-kubernetes#q-p059-h02",
      "page-range": [
        59,
        59
      ]
    },
    {
      "heading-id": "p059-h03",
      "source-page": 59,
      "title": "pod的定义中有个command和args参数，这两个参数不会和docker镜像的entrypointc冲突吗",
      "size": 26,
      "span_ids": [
        "p059-t0071",
        "p059-t0072",
        "p059-t0073",
        "p059-t0074",
        "p059-t0075",
        "p059-t0076",
        "p059-t0077",
        "p059-t0078",
        "p059-t0079",
        "p059-t0080",
        "p059-t0081"
      ],
      "top": 643.0,
      "kind": "question",
      "question_id": "q-p059-h03",
      "target": "/go-bank/08-kubernetes#q-p059-h03",
      "page-range": [
        59,
        59
      ]
    },
    {
      "heading-id": "p059-h04",
      "source-page": 59,
      "title": "标签及标签选择器是什么，如何使用",
      "size": 26,
      "span_ids": [
        "p059-t0148"
      ],
      "top": 970.0,
      "kind": "question",
      "question_id": "q-p059-h04",
      "target": "/go-bank/08-kubernetes#q-p059-h04",
      "page-range": [
        59,
        59
      ]
    },
    {
      "heading-id": "p060-h01",
      "source-page": 60,
      "title": "service是如何与pod关联的",
      "size": 26,
      "span_ids": [
        "p060-t0001",
        "p060-t0002",
        "p060-t0003",
        "p060-t0004"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p060-h01",
      "target": "/go-bank/08-kubernetes#q-p060-h01",
      "page-range": [
        60,
        60
      ]
    },
    {
      "heading-id": "p060-h02",
      "source-page": 60,
      "title": "service的域名解析格式、pod的域名解析格式",
      "size": 26,
      "span_ids": [
        "p060-t0020",
        "p060-t0021",
        "p060-t0022",
        "p060-t0023"
      ],
      "top": 148.0,
      "kind": "question",
      "question_id": "q-p060-h02",
      "target": "/go-bank/08-kubernetes#q-p060-h02",
      "page-range": [
        60,
        60
      ]
    },
    {
      "heading-id": "p060-h03",
      "source-page": 60,
      "title": "service的类型有哪几种",
      "size": 26,
      "span_ids": [
        "p060-t0117",
        "p060-t0118"
      ],
      "top": 1046.0,
      "kind": "question",
      "question_id": "q-p060-h03",
      "target": "/go-bank/08-kubernetes#q-p060-h03",
      "page-range": [
        60,
        61
      ]
    },
    {
      "heading-id": "p061-h01",
      "source-page": 61,
      "title": "一个应用pod是如何发现service的，或者说，pod里面的容器用于是如何连接service的？",
      "size": 26,
      "span_ids": [
        "p061-t0015",
        "p061-t0016",
        "p061-t0017",
        "p061-t0018",
        "p061-t0019",
        "p061-t0020",
        "p061-t0021",
        "p061-t0022",
        "p061-t0023",
        "p061-t0024"
      ],
      "top": 124.0,
      "kind": "question",
      "question_id": "q-p061-h01",
      "target": "/go-bank/08-kubernetes#q-p061-h01",
      "page-range": [
        61,
        61
      ]
    },
    {
      "heading-id": "p061-h02",
      "source-page": 61,
      "title": "如何创建一个service代理外部的服务，或者换句话来说，在k8s集群内的应用如何访问外部的服务，如数据库服务，缓存服务等?",
      "size": 26,
      "span_ids": [
        "p061-t0101",
        "p061-t0102",
        "p061-t0103",
        "p061-t0104",
        "p061-t0105",
        "p061-t0106",
        "p061-t0107",
        "p061-t0108"
      ],
      "top": 452.0,
      "kind": "question",
      "question_id": "q-p061-h02",
      "target": "/go-bank/08-kubernetes#q-p061-h02",
      "page-range": [
        61,
        61
      ]
    },
    {
      "heading-id": "p061-h03",
      "source-page": 61,
      "title": "service、endpoint、kube-proxys三种的关系是什么？",
      "size": 26,
      "span_ids": [
        "p061-t0167",
        "p061-t0168",
        "p061-t0169",
        "p061-t0170",
        "p061-t0171",
        "p061-t0172"
      ],
      "top": 763.0,
      "kind": "question",
      "question_id": "q-p061-h03",
      "target": "/go-bank/08-kubernetes#q-p061-h03",
      "page-range": [
        61,
        61
      ]
    },
    {
      "heading-id": "p062-h01",
      "source-page": 62,
      "title": "无头service和普通的service有什么区别，无头service使用场景是什么",
      "size": 26,
      "span_ids": [
        "p062-t0001",
        "p062-t0002",
        "p062-t0003",
        "p062-t0004",
        "p062-t0005",
        "p062-t0006",
        "p062-t0007",
        "p062-t0008"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p062-h01",
      "target": "/go-bank/08-kubernetes#q-p062-h01",
      "page-range": [
        62,
        62
      ]
    },
    {
      "heading-id": "p062-h02",
      "source-page": 62,
      "title": "deployment怎么扩容或缩容？",
      "size": 26,
      "span_ids": [
        "p062-t0084",
        "p062-t0085"
      ],
      "top": 390.0,
      "kind": "question",
      "question_id": "q-p062-h02",
      "target": "/go-bank/08-kubernetes#q-p062-h02",
      "page-range": [
        62,
        62
      ]
    },
    {
      "heading-id": "p062-h03",
      "source-page": 62,
      "title": "deployment的更新升级策略有哪些？",
      "size": 26,
      "span_ids": [
        "p062-t0110",
        "p062-t0111"
      ],
      "top": 546.0,
      "kind": "question",
      "question_id": "q-p062-h03",
      "target": "/go-bank/08-kubernetes#q-p062-h03",
      "page-range": [
        62,
        62
      ]
    },
    {
      "heading-id": "p062-h04",
      "source-page": 62,
      "title": "deployment的滚动更新策略有两个特别主要的参数，解释一下它们是什么意思",
      "size": 26,
      "span_ids": [
        "p062-t0136",
        "p062-t0137",
        "p062-t0138"
      ],
      "top": 701.0,
      "kind": "question",
      "question_id": "q-p062-h04",
      "target": "/go-bank/08-kubernetes#q-p062-h04",
      "page-range": [
        62,
        62
      ]
    },
    {
      "heading-id": "p062-h05",
      "source-page": 62,
      "title": "deployment更新的命令有哪些",
      "size": 26,
      "span_ids": [
        "p062-t0173",
        "p062-t0174"
      ],
      "top": 934.0,
      "kind": "question",
      "question_id": "q-p062-h05",
      "target": "/go-bank/08-kubernetes#q-p062-h05",
      "page-range": [
        62,
        62
      ]
    },
    {
      "heading-id": "p062-h06",
      "source-page": 62,
      "title": "简述一下deployment的更新过程",
      "size": 26,
      "span_ids": [
        "p062-t0193",
        "p062-t0194",
        "p062-t0195"
      ],
      "top": 1090.0,
      "kind": "question",
      "question_id": "q-p062-h06",
      "target": "/go-bank/08-kubernetes#q-p062-h06",
      "page-range": [
        62,
        63
      ]
    },
    {
      "heading-id": "p063-h01",
      "source-page": 63,
      "title": "deployment的回滚使用什么命令",
      "size": 26,
      "span_ids": [
        "p063-t0188",
        "p063-t0189"
      ],
      "top": 512.0,
      "kind": "question",
      "question_id": "q-p063-h01",
      "target": "/go-bank/08-kubernetes#q-p063-h01",
      "page-range": [
        63,
        63
      ]
    },
    {
      "heading-id": "p063-h02",
      "source-page": 63,
      "title": "讲一下都有哪些存储卷，作用分别是什么?",
      "size": 26,
      "span_ids": [
        "p063-t0206",
        "p063-t0207"
      ],
      "top": 668.0,
      "kind": "question",
      "question_id": "q-p063-h02",
      "target": "/go-bank/08-kubernetes#q-p063-h02",
      "page-range": [
        63,
        64
      ]
    },
    {
      "heading-id": "p064-h01",
      "source-page": 64,
      "title": "pv的访问模式有哪几种",
      "size": 26,
      "span_ids": [
        "p064-t0072",
        "p064-t0073"
      ],
      "top": 520.0,
      "kind": "question",
      "question_id": "q-p064-h01",
      "target": "/go-bank/08-kubernetes#q-p064-h01",
      "page-range": [
        64,
        64
      ]
    },
    {
      "heading-id": "p064-h02",
      "source-page": 64,
      "title": "pv的回收策略有哪几种",
      "size": 26,
      "span_ids": [
        "p064-t0087",
        "p064-t0088"
      ],
      "top": 653.0,
      "kind": "question",
      "question_id": "q-p064-h02",
      "target": "/go-bank/08-kubernetes#q-p064-h02",
      "page-range": [
        64,
        64
      ]
    },
    {
      "heading-id": "p064-h03",
      "source-page": 64,
      "title": "在pv的生命周期中，一般有几种状态",
      "size": 26,
      "span_ids": [
        "p064-t0126",
        "p064-t0127",
        "p064-t0128"
      ],
      "top": 831.0,
      "kind": "question",
      "question_id": "q-p064-h03",
      "target": "/go-bank/08-kubernetes#q-p064-h03",
      "page-range": [
        64,
        64
      ]
    },
    {
      "heading-id": "p065-h01",
      "source-page": 65,
      "title": "存储类的资源回收策略",
      "size": 26,
      "span_ids": [
        "p065-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p065-h01",
      "target": "/go-bank/08-kubernetes#q-p065-h01",
      "page-range": [
        65,
        65
      ]
    },
    {
      "heading-id": "p065-h02",
      "source-page": 65,
      "title": "怎么使一个node脱离集群调度，比如要停机维护单又不能影响业务应用",
      "size": 26,
      "span_ids": [
        "p065-t0041",
        "p065-t0042",
        "p065-t0043",
        "p065-t0044"
      ],
      "top": 219.0,
      "kind": "question",
      "question_id": "q-p065-h02",
      "target": "/go-bank/08-kubernetes#q-p065-h02",
      "page-range": [
        65,
        65
      ]
    },
    {
      "heading-id": "p065-h03",
      "source-page": 65,
      "title": "pv存储空间不足怎么扩容",
      "size": 26,
      "span_ids": [
        "p065-t0051",
        "p065-t0052"
      ],
      "top": 358.0,
      "kind": "question",
      "question_id": "q-p065-h03",
      "target": "/go-bank/08-kubernetes#q-p065-h03",
      "page-range": [
        65,
        65
      ]
    },
    {
      "heading-id": "p065-h04",
      "source-page": 65,
      "title": "k8s生产中遇到什么特别影响深刻的问题吗，问题排查解决思路是怎么样的？",
      "size": 26,
      "span_ids": [
        "p065-t0075",
        "p065-t0076",
        "p065-t0077"
      ],
      "top": 514.0,
      "kind": "question",
      "question_id": "q-p065-h04",
      "target": "/go-bank/08-kubernetes#q-p065-h04",
      "page-range": [
        65,
        66
      ]
    },
    {
      "heading-id": "p066-h01",
      "source-page": 66,
      "title": "redis",
      "size": 33,
      "span_ids": [
        "p066-t0153"
      ],
      "top": 686.0,
      "kind": "section",
      "section": "redis",
      "target": "/go-bank/09-redis-cache#q-p066-h02",
      "page-range": [
        66,
        73
      ]
    },
    {
      "heading-id": "p066-h02",
      "source-page": 66,
      "title": "什么是 Redis?",
      "size": 26,
      "span_ids": [
        "p066-t0155",
        "p066-t0156"
      ],
      "top": 742.0,
      "kind": "question",
      "question_id": "q-p066-h02",
      "target": "/go-bank/09-redis-cache#q-p066-h02",
      "page-range": [
        66,
        66
      ]
    },
    {
      "heading-id": "p067-h01",
      "source-page": 67,
      "title": "Redis 与其他 key-value 存储有什么不同？",
      "size": 26,
      "span_ids": [
        "p067-t0001",
        "p067-t0002",
        "p067-t0003",
        "p067-t0004"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p067-h01",
      "target": "/go-bank/09-redis-cache#q-p067-h01",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h02",
      "source-page": 67,
      "title": "Redis 的数据类型？",
      "size": 26,
      "span_ids": [
        "p067-t0042",
        "p067-t0043"
      ],
      "top": 249.0,
      "kind": "question",
      "question_id": "q-p067-h02",
      "target": "/go-bank/09-redis-cache#q-p067-h02",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h03",
      "source-page": 67,
      "title": "使用 Redis 有哪些好处？",
      "size": 26,
      "span_ids": [
        "p067-t0094",
        "p067-t0095",
        "p067-t0096"
      ],
      "top": 404.0,
      "kind": "question",
      "question_id": "q-p067-h03",
      "target": "/go-bank/09-redis-cache#q-p067-h03",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h04",
      "source-page": 67,
      "title": "Redis 相比 Memcached 有哪些优势？",
      "size": 26,
      "span_ids": [
        "p067-t0131",
        "p067-t0132",
        "p067-t0133",
        "p067-t0134"
      ],
      "top": 606.0,
      "kind": "question",
      "question_id": "q-p067-h04",
      "target": "/go-bank/09-redis-cache#q-p067-h04",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h05",
      "source-page": 67,
      "title": "Memcache 与 Redis 的区别都有哪些？",
      "size": 26,
      "span_ids": [
        "p067-t0152",
        "p067-t0153",
        "p067-t0154",
        "p067-t0155"
      ],
      "top": 752.0,
      "kind": "question",
      "question_id": "q-p067-h05",
      "target": "/go-bank/09-redis-cache#q-p067-h05",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h06",
      "source-page": 67,
      "title": "Redis 是单进程单线程的",
      "size": 26,
      "span_ids": [
        "p067-t0196",
        "p067-t0197"
      ],
      "top": 946.0,
      "kind": "question",
      "question_id": "q-p067-h06",
      "target": "/go-bank/09-redis-cache#q-p067-h06",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p067-h07",
      "source-page": 67,
      "title": "一个字符串类型的值能存储最大容量是多少",
      "size": 26,
      "span_ids": [
        "p067-t0210"
      ],
      "top": 1054.0,
      "kind": "question",
      "question_id": "q-p067-h07",
      "target": "/go-bank/09-redis-cache#q-p067-h07",
      "page-range": [
        67,
        67
      ]
    },
    {
      "heading-id": "p068-h01",
      "source-page": 68,
      "title": "Redis 的持久化机制是什么？各自的优缺点？",
      "size": 26,
      "span_ids": [
        "p068-t0001",
        "p068-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p068-h01",
      "target": "/go-bank/09-redis-cache#q-p068-h01",
      "page-range": [
        68,
        68
      ]
    },
    {
      "heading-id": "p068-h02",
      "source-page": 68,
      "title": "Redis 常见性能问题和解决方案：",
      "size": 26,
      "span_ids": [
        "p068-t0131",
        "p068-t0132"
      ],
      "top": 813.0,
      "kind": "question",
      "question_id": "q-p068-h02",
      "target": "/go-bank/09-redis-cache#q-p068-h02",
      "page-range": [
        68,
        68
      ]
    },
    {
      "heading-id": "p068-h03",
      "source-page": 68,
      "title": "Redis 过期键的删除策略？、",
      "size": 26,
      "span_ids": [
        "p068-t0187",
        "p068-t0188",
        "p068-t0190"
      ],
      "top": 1091.0,
      "kind": "question",
      "question_id": "q-p068-h03",
      "target": "/go-bank/09-redis-cache#q-p068-h03",
      "page-range": [
        68,
        69
      ]
    },
    {
      "heading-id": "p069-h01",
      "source-page": 69,
      "title": "Redis 的回收策略（淘汰策略）?",
      "size": 26,
      "span_ids": [
        "p069-t0019",
        "p069-t0020",
        "p069-t0021"
      ],
      "top": 156.0,
      "kind": "question",
      "question_id": "q-p069-h01",
      "target": "/go-bank/09-redis-cache#q-p069-h01",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p069-h02",
      "source-page": 69,
      "title": "使用策略规则：",
      "size": 26,
      "span_ids": [
        "p069-t0080"
      ],
      "top": 440.0,
      "kind": "subheading",
      "question_id": "q-p069-h01",
      "target": "/go-bank/09-redis-cache#q-p069-h01",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p069-h03",
      "source-page": 69,
      "title": "为什么 Redis 需要把所有数据放到内存中？",
      "size": 26,
      "span_ids": [
        "p069-t0092",
        "p069-t0093",
        "p069-t0094"
      ],
      "top": 580.0,
      "kind": "question",
      "question_id": "q-p069-h03",
      "target": "/go-bank/09-redis-cache#q-p069-h03",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p069-h04",
      "source-page": 69,
      "title": "Redis 的同步机制了解么？",
      "size": 26,
      "span_ids": [
        "p069-t0124",
        "p069-t0125"
      ],
      "top": 735.0,
      "kind": "question",
      "question_id": "q-p069-h04",
      "target": "/go-bank/09-redis-cache#q-p069-h04",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p069-h05",
      "source-page": 69,
      "title": "Pipeline 有什么好处，为什么要用 Pipeline？",
      "size": 26,
      "span_ids": [
        "p069-t0151",
        "p069-t0152",
        "p069-t0153",
        "p069-t0154"
      ],
      "top": 890.0,
      "kind": "question",
      "question_id": "q-p069-h05",
      "target": "/go-bank/09-redis-cache#q-p069-h05",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p069-h06",
      "source-page": 69,
      "title": "是否使用过 Redis 集群，集群的原理是什么？",
      "size": 26,
      "span_ids": [
        "p069-t0177",
        "p069-t0178",
        "p069-t0179"
      ],
      "top": 1023.0,
      "kind": "question",
      "question_id": "q-p069-h06",
      "target": "/go-bank/09-redis-cache#q-p069-h06",
      "page-range": [
        69,
        69
      ]
    },
    {
      "heading-id": "p070-h01",
      "source-page": 70,
      "title": "Redis 集群方案什么情况下会导致整个集群不可用？",
      "size": 26,
      "span_ids": [
        "p070-t0001",
        "p070-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p070-h01",
      "target": "/go-bank/09-redis-cache#q-p070-h01",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h02",
      "source-page": 70,
      "title": "Redis 如何设置密码及验证密码？",
      "size": 26,
      "span_ids": [
        "p070-t0023",
        "p070-t0024"
      ],
      "top": 148.0,
      "kind": "question",
      "question_id": "q-p070-h02",
      "target": "/go-bank/09-redis-cache#q-p070-h02",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h03",
      "source-page": 70,
      "title": "说说 Redis 哈希槽的概念？",
      "size": 26,
      "span_ids": [
        "p070-t0031",
        "p070-t0032",
        "p070-t0033"
      ],
      "top": 257.0,
      "kind": "question",
      "question_id": "q-p070-h03",
      "target": "/go-bank/09-redis-cache#q-p070-h03",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h04",
      "source-page": 70,
      "title": "Redis 集群的主从复制模型是怎样的？",
      "size": 26,
      "span_ids": [
        "p070-t0059",
        "p070-t0060"
      ],
      "top": 365.0,
      "kind": "question",
      "question_id": "q-p070-h04",
      "target": "/go-bank/09-redis-cache#q-p070-h04",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h05",
      "source-page": 70,
      "title": "Redis 集群会有写操作丢失吗？为什么？",
      "size": 26,
      "span_ids": [
        "p070-t0072",
        "p070-t0073"
      ],
      "top": 474.0,
      "kind": "question",
      "question_id": "q-p070-h05",
      "target": "/go-bank/09-redis-cache#q-p070-h05",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h06",
      "source-page": 70,
      "title": "Redis 集群之间是如何复制的？",
      "size": 26,
      "span_ids": [
        "p070-t0083",
        "p070-t0084"
      ],
      "top": 559.0,
      "kind": "question",
      "question_id": "q-p070-h06",
      "target": "/go-bank/09-redis-cache#q-p070-h06",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h07",
      "source-page": 70,
      "title": "Redis 集群最大节点个数是多少？",
      "size": 26,
      "span_ids": [
        "p070-t0089",
        "p070-t0090"
      ],
      "top": 644.0,
      "kind": "question",
      "question_id": "q-p070-h07",
      "target": "/go-bank/09-redis-cache#q-p070-h07",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h08",
      "source-page": 70,
      "title": "Redis 集群如何选择数据库？",
      "size": 26,
      "span_ids": [
        "p070-t0096",
        "p070-t0097"
      ],
      "top": 730.0,
      "kind": "question",
      "question_id": "q-p070-h08",
      "target": "/go-bank/09-redis-cache#q-p070-h08",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h09",
      "source-page": 70,
      "title": "怎么测试 Redis 的连通性",
      "size": 26,
      "span_ids": [
        "p070-t0104",
        "p070-t0105",
        "p070-t0106"
      ],
      "top": 814.0,
      "kind": "question",
      "question_id": "q-p070-h09",
      "target": "/go-bank/09-redis-cache#q-p070-h09",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h10",
      "source-page": 70,
      "title": "怎么理解 Redis 事务？",
      "size": 26,
      "span_ids": [
        "p070-t0112",
        "p070-t0113",
        "p070-t0114"
      ],
      "top": 899.0,
      "kind": "question",
      "question_id": "q-p070-h10",
      "target": "/go-bank/09-redis-cache#q-p070-h10",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h11",
      "source-page": 70,
      "title": "Redis 事务相关的命令有哪几个？",
      "size": 26,
      "span_ids": [
        "p070-t0127",
        "p070-t0128"
      ],
      "top": 1039.0,
      "kind": "question",
      "question_id": "q-p070-h11",
      "target": "/go-bank/09-redis-cache#q-p070-h11",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p070-h12",
      "source-page": 70,
      "title": "Redis key 的过期时间和永久有效分别怎么设置？",
      "size": 26,
      "span_ids": [
        "p070-t0138",
        "p070-t0139"
      ],
      "top": 1124.0,
      "kind": "question",
      "question_id": "q-p070-h12",
      "target": "/go-bank/09-redis-cache#q-p070-h12",
      "page-range": [
        70,
        70
      ]
    },
    {
      "heading-id": "p071-h01",
      "source-page": 71,
      "title": "Redis 如何做内存优化？",
      "size": 26,
      "span_ids": [
        "p071-t0001",
        "p071-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p071-h01",
      "target": "/go-bank/09-redis-cache#q-p071-h01",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h02",
      "source-page": 71,
      "title": "Redis 回收进程如何工作的？",
      "size": 26,
      "span_ids": [
        "p071-t0021",
        "p071-t0022"
      ],
      "top": 172.0,
      "kind": "question",
      "question_id": "q-p071-h02",
      "target": "/go-bank/09-redis-cache#q-p071-h02",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h03",
      "source-page": 71,
      "title": "都有哪些办法可以降低 Redis 的内存使用情况呢？",
      "size": 26,
      "span_ids": [
        "p071-t0053",
        "p071-t0054",
        "p071-t0055"
      ],
      "top": 327.0,
      "kind": "question",
      "question_id": "q-p071-h03",
      "target": "/go-bank/09-redis-cache#q-p071-h03",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h04",
      "source-page": 71,
      "title": "Redis 的内存用完了会发生什么？",
      "size": 26,
      "span_ids": [
        "p071-t0071",
        "p071-t0072"
      ],
      "top": 436.0,
      "kind": "question",
      "question_id": "q-p071-h04",
      "target": "/go-bank/09-redis-cache#q-p071-h04",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h05",
      "source-page": 71,
      "title": "一个 Redis 实例最多能存放多少的 keys？",
      "size": 26,
      "span_ids": [
        "p071-t0090",
        "p071-t0091",
        "p071-t0092",
        "p071-t0093",
        "p071-t0094"
      ],
      "top": 544.0,
      "kind": "question",
      "question_id": "q-p071-h05",
      "target": "/go-bank/09-redis-cache#q-p071-h05",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h06",
      "source-page": 71,
      "title": "MySQL 里有 2000w 数据，Redis 中只存 20w 的数据，如何保证 Redis 中的数据都是热点数据？",
      "size": 26,
      "span_ids": [
        "p071-t0138",
        "p071-t0139",
        "p071-t0140",
        "p071-t0141",
        "p071-t0142",
        "p071-t0143",
        "p071-t0144",
        "p071-t0145",
        "p071-t0147",
        "p071-t0148",
        "p071-t0149"
      ],
      "top": 676.0,
      "kind": "question",
      "question_id": "q-p071-h06",
      "target": "/go-bank/09-redis-cache#q-p071-h06",
      "page-range": [
        71,
        71
      ]
    },
    {
      "heading-id": "p071-h07",
      "source-page": 71,
      "title": "Redis 最适合的场景？",
      "size": 26,
      "span_ids": [
        "p071-t0199",
        "p071-t0200"
      ],
      "top": 957.0,
      "kind": "question",
      "question_id": "q-p071-h07",
      "target": "/go-bank/09-redis-cache#q-p071-h07",
      "page-range": [
        71,
        72
      ]
    },
    {
      "heading-id": "p072-h01",
      "source-page": 72,
      "title": "假如 Redis 里面有 1 亿个 key，其中有 10w 个 key 是以某个固定的已知的前缀开头的，如果将它们全部找出来？",
      "size": 26,
      "span_ids": [
        "p072-t0156",
        "p072-t0157",
        "p072-t0158",
        "p072-t0159",
        "p072-t0160",
        "p072-t0161",
        "p072-t0162",
        "p072-t0163",
        "p072-t0164",
        "p072-t0165",
        "p072-t0166",
        "p072-t0168"
      ],
      "top": 544.0,
      "kind": "question",
      "question_id": "q-p072-h01",
      "target": "/go-bank/09-redis-cache#q-p072-h01",
      "page-range": [
        72,
        72
      ]
    },
    {
      "heading-id": "p072-h02",
      "source-page": 72,
      "title": "如果有大量的 key 需要设置同一时间过期，一般需要注意什么？",
      "size": 26,
      "span_ids": [
        "p072-t0210",
        "p072-t0211",
        "p072-t0212",
        "p072-t0213",
        "p072-t0215"
      ],
      "top": 754.0,
      "kind": "question",
      "question_id": "q-p072-h02",
      "target": "/go-bank/09-redis-cache#q-p072-h02",
      "page-range": [
        72,
        72
      ]
    },
    {
      "heading-id": "p072-h03",
      "source-page": 72,
      "title": "使用过 Redis 做异步队列么，你是怎么用的？",
      "size": 26,
      "span_ids": [
        "p072-t0230",
        "p072-t0231",
        "p072-t0232"
      ],
      "top": 894.0,
      "kind": "question",
      "question_id": "q-p072-h03",
      "target": "/go-bank/09-redis-cache#q-p072-h03",
      "page-range": [
        72,
        72
      ]
    },
    {
      "heading-id": "p073-h01",
      "source-page": 73,
      "title": "使用过 Redis 分布式锁么，它是什么回事先拿",
      "size": 26,
      "span_ids": [
        "p073-t0001",
        "p073-t0002",
        "p073-t0003",
        "p073-t0005"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p073-h01",
      "target": "/go-bank/09-redis-cache#q-p073-h01",
      "page-range": [
        73,
        73
      ]
    },
    {
      "heading-id": "p073-h02",
      "source-page": 73,
      "title": "mysql",
      "size": 33,
      "span_ids": [
        "p073-t0028"
      ],
      "top": 171.0,
      "kind": "section",
      "section": "mysql",
      "target": "/go-bank/10-mysql#q-p073-h03",
      "page-range": [
        73,
        80
      ]
    },
    {
      "heading-id": "p073-h03",
      "source-page": 73,
      "title": "据库三大范式是什么",
      "size": 26,
      "span_ids": [
        "p073-t0030"
      ],
      "top": 227.0,
      "kind": "question",
      "question_id": "q-p073-h03",
      "target": "/go-bank/10-mysql#q-p073-h03",
      "page-range": [
        73,
        73
      ]
    },
    {
      "heading-id": "p073-h04",
      "source-page": 73,
      "title": "MySQL 有关权限的表都有哪几个？",
      "size": 26,
      "span_ids": [
        "p073-t0051",
        "p073-t0052"
      ],
      "top": 420.0,
      "kind": "question",
      "question_id": "q-p073-h04",
      "target": "/go-bank/10-mysql#q-p073-h04",
      "page-range": [
        73,
        73
      ]
    },
    {
      "heading-id": "p073-h05",
      "source-page": 73,
      "title": "MySQL 的 Binlog 有有几种录入格式？分别有什么区别？",
      "size": 26,
      "span_ids": [
        "p073-t0102",
        "p073-t0103",
        "p073-t0104",
        "p073-t0105"
      ],
      "top": 734.0,
      "kind": "question",
      "question_id": "q-p073-h05",
      "target": "/go-bank/10-mysql#q-p073-h05",
      "page-range": [
        73,
        73
      ]
    },
    {
      "heading-id": "p073-h06",
      "source-page": 73,
      "title": "MySQL 存储引擎 MyISAM 与 InnoDB 区别",
      "size": 26,
      "span_ids": [
        "p073-t0159",
        "p073-t0160",
        "p073-t0161",
        "p073-t0162",
        "p073-t0163",
        "p073-t0164"
      ],
      "top": 1009.0,
      "kind": "question",
      "question_id": "q-p073-h06",
      "target": "/go-bank/10-mysql#q-p073-h06",
      "page-range": [
        73,
        74
      ]
    },
    {
      "heading-id": "p074-h01",
      "source-page": 74,
      "title": "MyISAM 索引与 InnoDB 索引的区别？",
      "size": 26,
      "span_ids": [
        "p074-t0046",
        "p074-t0047",
        "p074-t0048",
        "p074-t0049"
      ],
      "top": 178.0,
      "kind": "question",
      "question_id": "q-p074-h01",
      "target": "/go-bank/10-mysql#q-p074-h01",
      "page-range": [
        74,
        74
      ]
    },
    {
      "heading-id": "p074-h02",
      "source-page": 74,
      "title": "什么是索引",
      "size": 26,
      "span_ids": [
        "p074-t0071"
      ],
      "top": 380.0,
      "kind": "question",
      "question_id": "q-p074-h02",
      "target": "/go-bank/10-mysql#q-p074-h02",
      "page-range": [
        74,
        74
      ]
    },
    {
      "heading-id": "p074-h03",
      "source-page": 74,
      "title": "索引有哪些优缺点",
      "size": 26,
      "span_ids": [
        "p074-t0101"
      ],
      "top": 559.0,
      "kind": "question",
      "question_id": "q-p074-h03",
      "target": "/go-bank/10-mysql#q-p074-h03",
      "page-range": [
        74,
        74
      ]
    },
    {
      "heading-id": "p074-h04",
      "source-page": 74,
      "title": "索引有哪几种类型？",
      "size": 26,
      "span_ids": [
        "p074-t0132"
      ],
      "top": 833.0,
      "kind": "question",
      "question_id": "q-p074-h04",
      "target": "/go-bank/10-mysql#q-p074-h04",
      "page-range": [
        74,
        75
      ]
    },
    {
      "heading-id": "p075-h01",
      "source-page": 75,
      "title": "MySQL 中有哪几种锁？",
      "size": 26,
      "span_ids": [
        "p075-t0010",
        "p075-t0011"
      ],
      "top": 137.0,
      "kind": "question",
      "question_id": "q-p075-h01",
      "target": "/go-bank/10-mysql#q-p075-h01",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p075-h02",
      "source-page": 75,
      "title": "MySQL 中 InnoDB 支持的四种事务隔离级别名称，以及逐级之间的区别？",
      "size": 26,
      "span_ids": [
        "p075-t0030",
        "p075-t0031",
        "p075-t0032",
        "p075-t0033",
        "p075-t0034",
        "p075-t0036"
      ],
      "top": 307.0,
      "kind": "question",
      "question_id": "q-p075-h02",
      "target": "/go-bank/10-mysql#q-p075-h02",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p075-h03",
      "source-page": 75,
      "title": "char 和 varchar 的区别？",
      "size": 26,
      "span_ids": [
        "p075-t0054",
        "p075-t0055",
        "p075-t0056",
        "p075-t0057"
      ],
      "top": 546.0,
      "kind": "question",
      "question_id": "q-p075-h03",
      "target": "/go-bank/10-mysql#q-p075-h03",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p075-h04",
      "source-page": 75,
      "title": "主键和候选键有什么区别？",
      "size": 26,
      "span_ids": [
        "p075-t0079"
      ],
      "top": 692.0,
      "kind": "question",
      "question_id": "q-p075-h04",
      "target": "/go-bank/10-mysql#q-p075-h04",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p075-h05",
      "source-page": 75,
      "title": "如何在 Unix 和 MySQL 时间戳之间进行转换？",
      "size": 26,
      "span_ids": [
        "p075-t0092",
        "p075-t0093",
        "p075-t0094",
        "p075-t0095",
        "p075-t0096"
      ],
      "top": 800.0,
      "kind": "question",
      "question_id": "q-p075-h05",
      "target": "/go-bank/10-mysql#q-p075-h05",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p075-h06",
      "source-page": 75,
      "title": "MyISAM 表类型将在哪里存储，并且还提供其存储格式？",
      "size": 26,
      "span_ids": [
        "p075-t0113",
        "p075-t0114"
      ],
      "top": 910.0,
      "kind": "question",
      "question_id": "q-p075-h06",
      "target": "/go-bank/10-mysql#q-p075-h06",
      "page-range": [
        75,
        75
      ]
    },
    {
      "heading-id": "p076-h01",
      "source-page": 76,
      "title": "MySQL 里记录货币用什么字段类型好",
      "size": 26,
      "span_ids": [
        "p076-t0001",
        "p076-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p076-h01",
      "target": "/go-bank/10-mysql#q-p076-h01",
      "page-range": [
        76,
        76
      ]
    },
    {
      "heading-id": "p076-h02",
      "source-page": 76,
      "title": "创建索引时需要注意什么？",
      "size": 26,
      "span_ids": [
        "p076-t0042"
      ],
      "top": 219.0,
      "kind": "question",
      "question_id": "q-p076-h02",
      "target": "/go-bank/10-mysql#q-p076-h02",
      "page-range": [
        76,
        76
      ]
    },
    {
      "heading-id": "p076-h03",
      "source-page": 76,
      "title": "使用索引查询一定能提高查询的性能吗？为什么",
      "size": 26,
      "span_ids": [
        "p076-t0080"
      ],
      "top": 458.0,
      "kind": "question",
      "question_id": "q-p076-h03",
      "target": "/go-bank/10-mysql#q-p076-h03",
      "page-range": [
        76,
        76
      ]
    },
    {
      "heading-id": "p076-h04",
      "source-page": 76,
      "title": "百万级别或以上的数据如何删除",
      "size": 26,
      "span_ids": [
        "p076-t0122"
      ],
      "top": 704.0,
      "kind": "question",
      "question_id": "q-p076-h04",
      "target": "/go-bank/10-mysql#q-p076-h04",
      "page-range": [
        76,
        76
      ]
    },
    {
      "heading-id": "p076-h05",
      "source-page": 76,
      "title": "什么是最左前缀原则？什么是最左匹配原则",
      "size": 26,
      "span_ids": [
        "p076-t0179"
      ],
      "top": 986.0,
      "kind": "question",
      "question_id": "q-p076-h05",
      "target": "/go-bank/10-mysql#q-p076-h05",
      "page-range": [
        76,
        76
      ]
    },
    {
      "heading-id": "p077-h01",
      "source-page": 77,
      "title": "什么是聚簇索引？何时使用聚簇索引与非聚簇索引",
      "size": 26,
      "span_ids": [
        "p077-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p077-h01",
      "target": "/go-bank/10-mysql#q-p077-h01",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p077-h02",
      "source-page": 77,
      "title": "MySQL 连接器",
      "size": 26,
      "span_ids": [
        "p077-t0027",
        "p077-t0028"
      ],
      "top": 226.0,
      "kind": "question",
      "question_id": "q-p077-h02",
      "target": "/go-bank/10-mysql#q-p077-h02",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p077-h03",
      "source-page": 77,
      "title": "MySQL 查询缓存",
      "size": 26,
      "span_ids": [
        "p077-t0068",
        "p077-t0069"
      ],
      "top": 404.0,
      "kind": "question",
      "question_id": "q-p077-h03",
      "target": "/go-bank/10-mysql#q-p077-h03",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p077-h04",
      "source-page": 77,
      "title": "MySQL 分析器",
      "size": 26,
      "span_ids": [
        "p077-t0113",
        "p077-t0114"
      ],
      "top": 607.0,
      "kind": "question",
      "question_id": "q-p077-h04",
      "target": "/go-bank/10-mysql#q-p077-h04",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p077-h05",
      "source-page": 77,
      "title": "MySQL 优化器",
      "size": 26,
      "span_ids": [
        "p077-t0153",
        "p077-t0154"
      ],
      "top": 827.0,
      "kind": "question",
      "question_id": "q-p077-h05",
      "target": "/go-bank/10-mysql#q-p077-h05",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p077-h06",
      "source-page": 77,
      "title": "MySQL 执行器",
      "size": 26,
      "span_ids": [
        "p077-t0169",
        "p077-t0170"
      ],
      "top": 960.0,
      "kind": "question",
      "question_id": "q-p077-h06",
      "target": "/go-bank/10-mysql#q-p077-h06",
      "page-range": [
        77,
        77
      ]
    },
    {
      "heading-id": "p078-h01",
      "source-page": 78,
      "title": "什么是临时表，何时删除临时表？",
      "size": 26,
      "span_ids": [
        "p078-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p078-h01",
      "target": "/go-bank/10-mysql#q-p078-h01",
      "page-range": [
        78,
        78
      ]
    },
    {
      "heading-id": "p078-h02",
      "source-page": 78,
      "title": "谈谈 SQL 优化的经验",
      "size": 26,
      "span_ids": [
        "p078-t0118",
        "p078-t0119",
        "p078-t0120"
      ],
      "top": 532.0,
      "kind": "question",
      "question_id": "q-p078-h02",
      "target": "/go-bank/10-mysql#q-p078-h02",
      "page-range": [
        78,
        78
      ]
    },
    {
      "heading-id": "p079-h01",
      "source-page": 79,
      "title": "什么叫外链接？",
      "size": 26,
      "span_ids": [
        "p079-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p079-h01",
      "target": "/go-bank/10-mysql#q-p079-h01",
      "page-range": [
        79,
        79
      ]
    },
    {
      "heading-id": "p079-h02",
      "source-page": 79,
      "title": "什么叫内链接？",
      "size": 26,
      "span_ids": [
        "p079-t0038"
      ],
      "top": 219.0,
      "kind": "question",
      "question_id": "q-p079-h02",
      "target": "/go-bank/10-mysql#q-p079-h02",
      "page-range": [
        79,
        79
      ]
    },
    {
      "heading-id": "p079-h03",
      "source-page": 79,
      "title": "使用 union 和 union all 时需要注意些什么？",
      "size": 26,
      "span_ids": [
        "p079-t0043",
        "p079-t0044",
        "p079-t0045",
        "p079-t0046",
        "p079-t0047"
      ],
      "top": 304.0,
      "kind": "question",
      "question_id": "q-p079-h03",
      "target": "/go-bank/10-mysql#q-p079-h03",
      "page-range": [
        79,
        79
      ]
    },
    {
      "heading-id": "p079-h04",
      "source-page": 79,
      "title": "MyISAM 存储引擎的特点",
      "size": 26,
      "span_ids": [
        "p079-t0068",
        "p079-t0069"
      ],
      "top": 412.0,
      "kind": "question",
      "question_id": "q-p079-h04",
      "target": "/go-bank/10-mysql#q-p079-h04",
      "page-range": [
        79,
        79
      ]
    },
    {
      "heading-id": "p079-h05",
      "source-page": 79,
      "title": "InnoDB 存储引擎的特点",
      "size": 26,
      "span_ids": [
        "p079-t0177",
        "p079-t0178"
      ],
      "top": 904.0,
      "kind": "question",
      "question_id": "q-p079-h05",
      "target": "/go-bank/10-mysql#q-p079-h05",
      "page-range": [
        79,
        80
      ]
    },
    {
      "heading-id": "p080-h01",
      "source-page": 80,
      "title": "linux",
      "size": 33,
      "span_ids": [
        "p080-t0016"
      ],
      "top": 131.0,
      "kind": "section",
      "section": "linux",
      "target": "/go-bank/11-linux-network-os#q-p080-h02",
      "page-range": [
        80,
        82
      ]
    },
    {
      "heading-id": "p080-h02",
      "source-page": 80,
      "title": "什么是 Linux",
      "size": 26,
      "span_ids": [
        "p080-t0018",
        "p080-t0019"
      ],
      "top": 187.0,
      "kind": "question",
      "question_id": "q-p080-h02",
      "target": "/go-bank/11-linux-network-os#q-p080-h02",
      "page-range": [
        80,
        80
      ]
    },
    {
      "heading-id": "p080-h03",
      "source-page": 80,
      "title": "Unix 和 Linux 有什么区别",
      "size": 26,
      "span_ids": [
        "p080-t0046",
        "p080-t0047",
        "p080-t0048",
        "p080-t0049"
      ],
      "top": 319.0,
      "kind": "question",
      "question_id": "q-p080-h03",
      "target": "/go-bank/11-linux-network-os#q-p080-h03",
      "page-range": [
        80,
        80
      ]
    },
    {
      "heading-id": "p080-h04",
      "source-page": 80,
      "title": "什么是 Linux 内核？",
      "size": 26,
      "span_ids": [
        "p080-t0131",
        "p080-t0132",
        "p080-t0133"
      ],
      "top": 750.0,
      "kind": "question",
      "question_id": "q-p080-h04",
      "target": "/go-bank/11-linux-network-os#q-p080-h04",
      "page-range": [
        80,
        80
      ]
    },
    {
      "heading-id": "p080-h05",
      "source-page": 80,
      "title": "Linux 的基本组件是什么？",
      "size": 26,
      "span_ids": [
        "p080-t0150",
        "p080-t0151"
      ],
      "top": 858.0,
      "kind": "question",
      "question_id": "q-p080-h05",
      "target": "/go-bank/11-linux-network-os#q-p080-h05",
      "page-range": [
        80,
        80
      ]
    },
    {
      "heading-id": "p080-h06",
      "source-page": 80,
      "title": "Linux 的体系结构",
      "size": 26,
      "span_ids": [
        "p080-t0165",
        "p080-t0166"
      ],
      "top": 967.0,
      "kind": "question",
      "question_id": "q-p080-h06",
      "target": "/go-bank/11-linux-network-os#q-p080-h06",
      "page-range": [
        80,
        80
      ]
    },
    {
      "heading-id": "p081-h01",
      "source-page": 81,
      "title": "BASH 和 DOS 之间的基本区别是什么？",
      "size": 26,
      "span_ids": [
        "p081-t0001",
        "p081-t0002",
        "p081-t0003",
        "p081-t0004"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p081-h01",
      "target": "/go-bank/11-linux-network-os#q-p081-h01",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p081-h02",
      "source-page": 81,
      "title": "Linux 开机启动过程？",
      "size": 26,
      "span_ids": [
        "p081-t0047",
        "p081-t0048"
      ],
      "top": 268.0,
      "kind": "question",
      "question_id": "q-p081-h02",
      "target": "/go-bank/11-linux-network-os#q-p081-h02",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p081-h03",
      "source-page": 81,
      "title": "Linux 系统缺省的运行级别？",
      "size": 26,
      "span_ids": [
        "p081-t0079",
        "p081-t0080"
      ],
      "top": 507.0,
      "kind": "question",
      "question_id": "q-p081-h03",
      "target": "/go-bank/11-linux-network-os#q-p081-h03",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p081-h04",
      "source-page": 81,
      "title": "Linux 使用的进程间通信方式？",
      "size": 26,
      "span_ids": [
        "p081-t0097",
        "p081-t0098"
      ],
      "top": 733.0,
      "kind": "question",
      "question_id": "q-p081-h04",
      "target": "/go-bank/11-linux-network-os#q-p081-h04",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p081-h05",
      "source-page": 81,
      "title": "Linux 有哪些系统日志文件？",
      "size": 26,
      "span_ids": [
        "p081-t0120",
        "p081-t0121"
      ],
      "top": 934.0,
      "kind": "question",
      "question_id": "q-p081-h05",
      "target": "/go-bank/11-linux-network-os#q-p081-h05",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p081-h06",
      "source-page": 81,
      "title": "什么是交换空间",
      "size": 26,
      "span_ids": [
        "p081-t0140"
      ],
      "top": 1067.0,
      "kind": "question",
      "question_id": "q-p081-h06",
      "target": "/go-bank/11-linux-network-os#q-p081-h06",
      "page-range": [
        81,
        81
      ]
    },
    {
      "heading-id": "p082-h01",
      "source-page": 82,
      "title": "什么是 Root 帐户",
      "size": 26,
      "span_ids": [
        "p082-t0001",
        "p082-t0002",
        "p082-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p082-h01",
      "target": "/go-bank/11-linux-network-os#q-p082-h01",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h02",
      "source-page": 82,
      "title": "什么是 LILO？",
      "size": 26,
      "span_ids": [
        "p082-t0016",
        "p082-t0017",
        "p082-t0018"
      ],
      "top": 148.0,
      "kind": "question",
      "question_id": "q-p082-h02",
      "target": "/go-bank/11-linux-network-os#q-p082-h02",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h03",
      "source-page": 82,
      "title": "什么是 BASH？",
      "size": 26,
      "span_ids": [
        "p082-t0030",
        "p082-t0031",
        "p082-t0032"
      ],
      "top": 233.0,
      "kind": "question",
      "question_id": "q-p082-h03",
      "target": "/go-bank/11-linux-network-os#q-p082-h03",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h04",
      "source-page": 82,
      "title": "什么是 CLI？",
      "size": 26,
      "span_ids": [
        "p082-t0055",
        "p082-t0056",
        "p082-t0057"
      ],
      "top": 365.0,
      "kind": "question",
      "question_id": "q-p082-h04",
      "target": "/go-bank/11-linux-network-os#q-p082-h04",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h05",
      "source-page": 82,
      "title": "什么是 GUI？",
      "size": 26,
      "span_ids": [
        "p082-t0095",
        "p082-t0096",
        "p082-t0097"
      ],
      "top": 567.0,
      "kind": "question",
      "question_id": "q-p082-h05",
      "target": "/go-bank/11-linux-network-os#q-p082-h05",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h06",
      "source-page": 82,
      "title": "开源的优势是什么？",
      "size": 26,
      "span_ids": [
        "p082-t0118"
      ],
      "top": 723.0,
      "kind": "question",
      "question_id": "q-p082-h06",
      "target": "/go-bank/11-linux-network-os#q-p082-h06",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p082-h07",
      "source-page": 82,
      "title": "GNU 项目的重要性是什么",
      "size": 26,
      "span_ids": [
        "p082-t0132",
        "p082-t0133"
      ],
      "top": 854.0,
      "kind": "question",
      "question_id": "q-p082-h07",
      "target": "/go-bank/11-linux-network-os#q-p082-h07",
      "page-range": [
        82,
        82
      ]
    },
    {
      "heading-id": "p083-h01",
      "source-page": 83,
      "title": "缓存",
      "size": 33,
      "span_ids": [
        "p083-t0001"
      ],
      "top": 39.0,
      "kind": "section",
      "section": "缓存",
      "target": "/go-bank/09-redis-cache#q-p083-h02",
      "page-range": [
        83,
        85
      ]
    },
    {
      "heading-id": "p083-h02",
      "source-page": 83,
      "title": "缓存如何实现高性能？",
      "size": 26,
      "span_ids": [
        "p083-t0003"
      ],
      "top": 95.0,
      "kind": "question",
      "question_id": "q-p083-h02",
      "target": "/go-bank/09-redis-cache#q-p083-h02",
      "page-range": [
        83,
        83
      ]
    },
    {
      "heading-id": "p083-h03",
      "source-page": 83,
      "title": "缓存如何实现高并发",
      "size": 26,
      "span_ids": [
        "p083-t0006"
      ],
      "top": 409.0,
      "kind": "question",
      "question_id": "q-p083-h03",
      "target": "/go-bank/09-redis-cache#q-p083-h03",
      "page-range": [
        83,
        83
      ]
    },
    {
      "heading-id": "p083-h04",
      "source-page": 83,
      "title": "Redis 和 Memcached 的区别",
      "size": 26,
      "span_ids": [
        "p083-t0009",
        "p083-t0010",
        "p083-t0011",
        "p083-t0012"
      ],
      "top": 781.0,
      "kind": "question",
      "question_id": "q-p083-h04",
      "target": "/go-bank/09-redis-cache#q-p083-h04",
      "page-range": [
        83,
        83
      ]
    },
    {
      "heading-id": "p083-h05",
      "source-page": 83,
      "title": "用缓存可能出现的问题",
      "size": 26,
      "span_ids": [
        "p083-t0035"
      ],
      "top": 913.0,
      "kind": "question",
      "question_id": "q-p083-h05",
      "target": "/go-bank/09-redis-cache#q-p083-h05",
      "page-range": [
        83,
        83
      ]
    },
    {
      "heading-id": "p083-h06",
      "source-page": 83,
      "title": "当查询缓存报错，怎么提高可用性？",
      "size": 26,
      "span_ids": [
        "p083-t0050"
      ],
      "top": 1091.0,
      "kind": "question",
      "question_id": "q-p083-h06",
      "target": "/go-bank/09-redis-cache#q-p083-h06",
      "page-range": [
        83,
        83
      ]
    },
    {
      "heading-id": "p084-h01",
      "source-page": 84,
      "title": "如果避免缓存”穿透”的问题？",
      "size": 26,
      "span_ids": [
        "p084-t0001",
        "p084-t0002",
        "p084-t0003",
        "p084-t0004",
        "p084-t0005"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p084-h01",
      "target": "/go-bank/09-redis-cache#q-p084-h01",
      "page-range": [
        84,
        84
      ]
    },
    {
      "heading-id": "p084-h02",
      "source-page": 84,
      "title": "如何避免缓存“雪崩”的问题",
      "size": 26,
      "span_ids": [
        "p084-t0058",
        "p084-t0059",
        "p084-t0060",
        "p084-t0061",
        "p084-t0062"
      ],
      "top": 331.0,
      "kind": "question",
      "question_id": "q-p084-h02",
      "target": "/go-bank/09-redis-cache#q-p084-h02",
      "page-range": [
        84,
        84
      ]
    },
    {
      "heading-id": "p084-h03",
      "source-page": 84,
      "title": "如何避免缓存“击穿”的问题",
      "size": 26,
      "span_ids": [
        "p084-t0111",
        "p084-t0113",
        "p084-t0114",
        "p084-t0115",
        "p084-t0116",
        "p084-t0117"
      ],
      "top": 556.0,
      "kind": "question",
      "question_id": "q-p084-h03",
      "target": "/go-bank/09-redis-cache#q-p084-h03",
      "page-range": [
        84,
        84
      ]
    },
    {
      "heading-id": "p085-h01",
      "source-page": 85,
      "title": "什么是缓存预热？如何实现缓存预热",
      "size": 26,
      "span_ids": [
        "p085-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p085-h01",
      "target": "/go-bank/09-redis-cache#q-p085-h01",
      "page-range": [
        85,
        85
      ]
    },
    {
      "heading-id": "p085-h02",
      "source-page": 85,
      "title": "缓存数据的淘汰策略有哪些？",
      "size": 26,
      "span_ids": [
        "p085-t0035"
      ],
      "top": 288.0,
      "kind": "question",
      "question_id": "q-p085-h02",
      "target": "/go-bank/09-redis-cache#q-p085-h02",
      "page-range": [
        85,
        85
      ]
    },
    {
      "heading-id": "p085-h03",
      "source-page": 85,
      "title": "网络和操作系统",
      "size": 33,
      "span_ids": [
        "p085-t0065"
      ],
      "top": 466.0,
      "kind": "section",
      "section": "网络和操作系统",
      "target": "/go-bank/11-linux-network-os#q-p085-h04",
      "page-range": [
        85,
        93
      ]
    },
    {
      "heading-id": "p085-h04",
      "source-page": 85,
      "title": "进程和线程的区别？",
      "size": 26,
      "span_ids": [
        "p085-t0068"
      ],
      "top": 522.0,
      "kind": "question",
      "question_id": "q-p085-h04",
      "target": "/go-bank/11-linux-network-os#q-p085-h04",
      "page-range": [
        85,
        85
      ]
    },
    {
      "heading-id": "p085-h05",
      "source-page": 85,
      "title": "协程与线程的区别？",
      "size": 26,
      "span_ids": [
        "p085-t0096"
      ],
      "top": 746.0,
      "kind": "question",
      "question_id": "q-p085-h05",
      "target": "/go-bank/11-linux-network-os#q-p085-h05",
      "page-range": [
        85,
        85
      ]
    },
    {
      "heading-id": "p085-h06",
      "source-page": 85,
      "title": "并发和并行有什么区别？",
      "size": 26,
      "span_ids": [
        "p085-t0123"
      ],
      "top": 1025.0,
      "kind": "question",
      "question_id": "q-p085-h06",
      "target": "/go-bank/11-linux-network-os#q-p085-h06",
      "page-range": [
        85,
        85
      ]
    },
    {
      "heading-id": "p086-h01",
      "source-page": 86,
      "title": "进程与线程的切换流程",
      "size": 26,
      "span_ids": [
        "p086-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p086-h01",
      "target": "/go-bank/11-linux-network-os#q-p086-h01",
      "page-range": [
        86,
        86
      ]
    },
    {
      "heading-id": "p086-h02",
      "source-page": 86,
      "title": "为什么虚拟地址空间切换会比较耗时？",
      "size": 26,
      "span_ids": [
        "p086-t0031"
      ],
      "top": 284.0,
      "kind": "question",
      "question_id": "q-p086-h02",
      "target": "/go-bank/11-linux-network-os#q-p086-h02",
      "page-range": [
        86,
        86
      ]
    },
    {
      "heading-id": "p086-h03",
      "source-page": 86,
      "title": "进程间通信方式有哪些？",
      "size": 26,
      "span_ids": [
        "p086-t0074"
      ],
      "top": 510.0,
      "kind": "question",
      "question_id": "q-p086-h03",
      "target": "/go-bank/11-linux-network-os#q-p086-h03",
      "page-range": [
        86,
        87
      ]
    },
    {
      "heading-id": "p087-h01",
      "source-page": 87,
      "title": "进程间同步的方式有哪些",
      "size": 26,
      "span_ids": [
        "p087-t0042"
      ],
      "top": 395.0,
      "kind": "question",
      "question_id": "q-p087-h01",
      "target": "/go-bank/11-linux-network-os#q-p087-h01",
      "page-range": [
        87,
        87
      ]
    },
    {
      "heading-id": "p088-h01",
      "source-page": 88,
      "title": "线程同步的方式有哪些",
      "size": 26,
      "span_ids": [
        "p088-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p088-h01",
      "target": "/go-bank/11-linux-network-os#q-p088-h01",
      "page-range": [
        88,
        88
      ]
    },
    {
      "heading-id": "p088-h02",
      "source-page": 88,
      "title": "线程的分类",
      "size": 26,
      "span_ids": [
        "p088-t0057"
      ],
      "top": 435.0,
      "kind": "question",
      "question_id": "q-p088-h02",
      "target": "/go-bank/11-linux-network-os#q-p088-h02",
      "page-range": [
        88,
        88
      ]
    },
    {
      "heading-id": "p088-h03",
      "source-page": 88,
      "title": "什么是临界区，如何解决冲突？",
      "size": 26,
      "span_ids": [
        "p088-t0091"
      ],
      "top": 661.0,
      "kind": "question",
      "question_id": "q-p088-h03",
      "target": "/go-bank/11-linux-network-os#q-p088-h03",
      "page-range": [
        88,
        88
      ]
    },
    {
      "heading-id": "p088-h04",
      "source-page": 88,
      "title": "什么是死锁？死锁产生的条件？",
      "size": 26,
      "span_ids": [
        "p088-t0123"
      ],
      "top": 889.0,
      "kind": "question",
      "question_id": "q-p088-h04",
      "target": "/go-bank/11-linux-network-os#q-p088-h04",
      "page-range": [
        88,
        89
      ]
    },
    {
      "heading-id": "p089-h01",
      "source-page": 89,
      "title": "进程调度策略有哪几种",
      "size": 26,
      "span_ids": [
        "p089-t0019"
      ],
      "top": 216.0,
      "kind": "question",
      "question_id": "q-p089-h01",
      "target": "/go-bank/11-linux-network-os#q-p089-h01",
      "page-range": [
        89,
        89
      ]
    },
    {
      "heading-id": "p089-h02",
      "source-page": 89,
      "title": "进程有哪些状态",
      "size": 26,
      "span_ids": [
        "p089-t0097"
      ],
      "top": 713.0,
      "kind": "question",
      "question_id": "q-p089-h02",
      "target": "/go-bank/11-linux-network-os#q-p089-h02",
      "page-range": [
        89,
        90
      ]
    },
    {
      "heading-id": "p090-h01",
      "source-page": 90,
      "title": "什么是分页？",
      "size": 26,
      "span_ids": [
        "p090-t0040"
      ],
      "top": 248.0,
      "kind": "question",
      "question_id": "q-p090-h01",
      "target": "/go-bank/11-linux-network-os#q-p090-h01",
      "page-range": [
        90,
        90
      ]
    },
    {
      "heading-id": "p090-h02",
      "source-page": 90,
      "title": "什么是分段",
      "size": 26,
      "span_ids": [
        "p090-t0062"
      ],
      "top": 786.0,
      "kind": "question",
      "question_id": "q-p090-h02",
      "target": "/go-bank/11-linux-network-os#q-p090-h02",
      "page-range": [
        90,
        91
      ]
    },
    {
      "heading-id": "p091-h01",
      "source-page": 91,
      "title": "分页和分段有什区别",
      "size": 26,
      "span_ids": [
        "p091-t0002"
      ],
      "top": 378.0,
      "kind": "question",
      "question_id": "q-p091-h01",
      "target": "/go-bank/11-linux-network-os#q-p091-h01",
      "page-range": [
        91,
        91
      ]
    },
    {
      "heading-id": "p091-h02",
      "source-page": 91,
      "title": "什么是交换空间",
      "size": 26,
      "span_ids": [
        "p091-t0020"
      ],
      "top": 579.0,
      "kind": "question",
      "question_id": "q-p091-h02",
      "target": "/go-bank/11-linux-network-os#q-p091-h02",
      "page-range": [
        91,
        91
      ]
    },
    {
      "heading-id": "p091-h03",
      "source-page": 91,
      "title": "页面替换算法有哪些",
      "size": 26,
      "span_ids": [
        "p091-t0055"
      ],
      "top": 824.0,
      "kind": "question",
      "question_id": "q-p091-h03",
      "target": "/go-bank/11-linux-network-os#q-p091-h03",
      "page-range": [
        91,
        92
      ]
    },
    {
      "heading-id": "p092-h01",
      "source-page": 92,
      "title": "什么是缓冲区溢出？有什么危害？",
      "size": 26,
      "span_ids": [
        "p092-t0018"
      ],
      "top": 124.0,
      "kind": "question",
      "question_id": "q-p092-h01",
      "target": "/go-bank/11-linux-network-os#q-p092-h01",
      "page-range": [
        92,
        92
      ]
    },
    {
      "heading-id": "p092-h02",
      "source-page": 92,
      "title": "什么是虚拟内存",
      "size": 26,
      "span_ids": [
        "p092-t0037"
      ],
      "top": 335.0,
      "kind": "question",
      "question_id": "q-p092-h02",
      "target": "/go-bank/11-linux-network-os#q-p092-h02",
      "page-range": [
        92,
        92
      ]
    },
    {
      "heading-id": "p092-h03",
      "source-page": 92,
      "title": "讲一讲 IO 多路复用？",
      "size": 26,
      "span_ids": [
        "p092-t0051",
        "p092-t0052",
        "p092-t0053"
      ],
      "top": 490.0,
      "kind": "question",
      "question_id": "q-p092-h03",
      "target": "/go-bank/11-linux-network-os#q-p092-h03",
      "page-range": [
        92,
        92
      ]
    },
    {
      "heading-id": "p092-h04",
      "source-page": 92,
      "title": "硬链接和软链接有什么区别",
      "size": 26,
      "span_ids": [
        "p092-t0111"
      ],
      "top": 809.0,
      "kind": "question",
      "question_id": "q-p092-h04",
      "target": "/go-bank/11-linux-network-os#q-p092-h04",
      "page-range": [
        92,
        92
      ]
    },
    {
      "heading-id": "p092-h05",
      "source-page": 92,
      "title": "中断的处理过程",
      "size": 26,
      "span_ids": [
        "p092-t0141"
      ],
      "top": 1020.0,
      "kind": "question",
      "question_id": "q-p092-h05",
      "target": "/go-bank/11-linux-network-os#q-p092-h05",
      "page-range": [
        92,
        92
      ]
    },
    {
      "heading-id": "p093-h01",
      "source-page": 93,
      "title": "中断和轮询有什么区别？",
      "size": 26,
      "span_ids": [
        "p093-t0001"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p093-h01",
      "target": "/go-bank/11-linux-network-os#q-p093-h01",
      "page-range": [
        93,
        93
      ]
    },
    {
      "heading-id": "p093-h02",
      "source-page": 93,
      "title": "请详细介绍一下 TCP 的三次握手机制，为什么要三次握手？",
      "size": 26,
      "span_ids": [
        "p093-t0020",
        "p093-t0021",
        "p093-t0022",
        "p093-t0023"
      ],
      "top": 156.0,
      "kind": "question",
      "question_id": "q-p093-h02",
      "target": "/go-bank/11-linux-network-os#q-p093-h02",
      "page-range": [
        93,
        93
      ]
    },
    {
      "heading-id": "p093-h03",
      "source-page": 93,
      "title": "讲一讲 SYN 超时，洪泛攻击，以及解决策略",
      "size": 26,
      "span_ids": [
        "p093-t0110",
        "p093-t0111",
        "p093-t0112"
      ],
      "top": 553.0,
      "kind": "question",
      "question_id": "q-p093-h03",
      "target": "/go-bank/11-linux-network-os#q-p093-h03",
      "page-range": [
        93,
        93
      ]
    },
    {
      "heading-id": "p093-h04",
      "source-page": 93,
      "title": "详细介绍一下 TCP 的四次挥手机制，为什么要有TIME_WAIT 状态，为什么需要四次握手？服务器出现了大量 CLOSE_WAIT 状态如何解决？",
      "size": 26,
      "span_ids": [
        "p093-t0191",
        "p093-t0192",
        "p093-t0193",
        "p093-t0195",
        "p093-t0196",
        "p093-t0197",
        "p093-t0198",
        "p093-t0199"
      ],
      "top": 825.0,
      "kind": "question",
      "question_id": "q-p093-h04",
      "target": "/go-bank/11-linux-network-os#q-p093-h04",
      "page-range": [
        93,
        93
      ]
    },
    {
      "heading-id": "p094-h01",
      "source-page": 94,
      "title": "消息队列",
      "size": 33,
      "span_ids": [
        "p094-t0001"
      ],
      "top": 39.0,
      "kind": "section",
      "section": "消息队列",
      "target": "/go-bank/12-kafka#q-p094-h02",
      "page-range": [
        94,
        97
      ]
    },
    {
      "heading-id": "p094-h02",
      "source-page": 94,
      "title": "Kafka 是什么？主要应用场景有哪些？",
      "size": 26,
      "span_ids": [
        "p094-t0003",
        "p094-t0004"
      ],
      "top": 95.0,
      "kind": "question",
      "question_id": "q-p094-h02",
      "target": "/go-bank/12-kafka#q-p094-h02",
      "page-range": [
        94,
        94
      ]
    },
    {
      "heading-id": "p094-h03",
      "source-page": 94,
      "title": "和其他消息队列相比，Kafka 的优势在哪里？",
      "size": 26,
      "span_ids": [
        "p094-t0043",
        "p094-t0044",
        "p094-t0045"
      ],
      "top": 401.0,
      "kind": "question",
      "question_id": "q-p094-h03",
      "target": "/go-bank/12-kafka#q-p094-h03",
      "page-range": [
        94,
        94
      ]
    },
    {
      "heading-id": "p094-h04",
      "source-page": 94,
      "title": "什么是 Producer、Consumer、Broker、Topic、 Partition？",
      "size": 26,
      "span_ids": [
        "p094-t0106",
        "p094-t0107",
        "p094-t0108",
        "p094-t0109",
        "p094-t0110",
        "p094-t0111",
        "p094-t0112",
        "p094-t0113",
        "p094-t0114",
        "p094-t0116",
        "p094-t0117"
      ],
      "top": 727.0,
      "kind": "question",
      "question_id": "q-p094-h04",
      "target": "/go-bank/12-kafka#q-p094-h04",
      "page-range": [
        94,
        94
      ]
    },
    {
      "heading-id": "p095-h01",
      "source-page": 95,
      "title": "Kafka 的多副本机制了解吗？",
      "size": 26,
      "span_ids": [
        "p095-t0001",
        "p095-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p095-h01",
      "target": "/go-bank/12-kafka#q-p095-h01",
      "page-range": [
        95,
        95
      ]
    },
    {
      "heading-id": "p095-h02",
      "source-page": 95,
      "title": "Kafka 的多分区（Partition）以及多副本（Replica）机制有什么好处呢",
      "size": 26,
      "span_ids": [
        "p095-t0053",
        "p095-t0054",
        "p095-t0055",
        "p095-t0056",
        "p095-t0057",
        "p095-t0058",
        "p095-t0059",
        "p095-t0061"
      ],
      "top": 242.0,
      "kind": "question",
      "question_id": "q-p095-h02",
      "target": "/go-bank/12-kafka#q-p095-h02",
      "page-range": [
        95,
        95
      ]
    },
    {
      "heading-id": "p095-h03",
      "source-page": 95,
      "title": "Zookeeper 在 Kafka 中的作用知道吗？",
      "size": 26,
      "span_ids": [
        "p095-t0093",
        "p095-t0094",
        "p095-t0095",
        "p095-t0096"
      ],
      "top": 436.0,
      "kind": "question",
      "question_id": "q-p095-h03",
      "target": "/go-bank/12-kafka#q-p095-h03",
      "page-range": [
        95,
        95
      ]
    },
    {
      "heading-id": "p095-h04",
      "source-page": 95,
      "title": "Kafka 如何保证消息的消费顺序？",
      "size": 26,
      "span_ids": [
        "p095-t0210",
        "p095-t0211"
      ],
      "top": 792.0,
      "kind": "question",
      "question_id": "q-p095-h04",
      "target": "/go-bank/12-kafka#q-p095-h04",
      "page-range": [
        95,
        96
      ]
    },
    {
      "heading-id": "p096-h01",
      "source-page": 96,
      "title": "Kafka 如何保证消息不丢失？",
      "size": 26,
      "span_ids": [
        "p096-t0027",
        "p096-t0028"
      ],
      "top": 167.0,
      "kind": "question",
      "question_id": "q-p096-h01",
      "target": "/go-bank/12-kafka#q-p096-h01",
      "page-range": [
        96,
        96
      ]
    },
    {
      "heading-id": "p096-h02",
      "source-page": 96,
      "title": "Kafka 判断一个节点是否还活着有那两个条件？",
      "size": 26,
      "span_ids": [
        "p096-t0121",
        "p096-t0122"
      ],
      "top": 556.0,
      "kind": "question",
      "question_id": "q-p096-h02",
      "target": "/go-bank/12-kafka#q-p096-h02",
      "page-range": [
        96,
        96
      ]
    },
    {
      "heading-id": "p096-h03",
      "source-page": 96,
      "title": "producer 是否直接将数据发送到 broker 的 leader（主节点）",
      "size": 26,
      "span_ids": [
        "p096-t0140",
        "p096-t0141",
        "p096-t0142",
        "p096-t0143",
        "p096-t0144",
        "p096-t0145",
        "p096-t0147"
      ],
      "top": 672.0,
      "kind": "question",
      "question_id": "q-p096-h03",
      "target": "/go-bank/12-kafka#q-p096-h03",
      "page-range": [
        96,
        96
      ]
    },
    {
      "heading-id": "p096-h04",
      "source-page": 96,
      "title": "Kafka consumer 是否可以消费指定分区消息吗？",
      "size": 26,
      "span_ids": [
        "p096-t0181",
        "p096-t0182"
      ],
      "top": 835.0,
      "kind": "question",
      "question_id": "q-p096-h04",
      "target": "/go-bank/12-kafka#q-p096-h04",
      "page-range": [
        96,
        96
      ]
    },
    {
      "heading-id": "p096-h05",
      "source-page": 96,
      "title": "Kafka 高效文件存储设计特点是什么",
      "size": 26,
      "span_ids": [
        "p096-t0208",
        "p096-t0209"
      ],
      "top": 967.0,
      "kind": "question",
      "question_id": "q-p096-h05",
      "target": "/go-bank/12-kafka#q-p096-h05",
      "page-range": [
        96,
        96
      ]
    },
    {
      "heading-id": "p097-h01",
      "source-page": 97,
      "title": "partition 的数据如何保存到硬盘",
      "size": 26,
      "span_ids": [
        "p097-t0001",
        "p097-t0002"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p097-h01",
      "target": "/go-bank/12-kafka#q-p097-h01",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p097-h02",
      "source-page": 97,
      "title": "kafka 生产数据时数据的分组策略是怎样的",
      "size": 26,
      "span_ids": [
        "p097-t0041",
        "p097-t0042"
      ],
      "top": 195.0,
      "kind": "question",
      "question_id": "q-p097-h02",
      "target": "/go-bank/12-kafka#q-p097-h02",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p097-h03",
      "source-page": 97,
      "title": "consumer 是推还是拉？",
      "size": 26,
      "span_ids": [
        "p097-t0061",
        "p097-t0062"
      ],
      "top": 304.0,
      "kind": "question",
      "question_id": "q-p097-h03",
      "target": "/go-bank/12-kafka#q-p097-h03",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p097-h04",
      "source-page": 97,
      "title": "Kafka 维护消费状态跟踪的方法有什么？",
      "size": 26,
      "span_ids": [
        "p097-t0123",
        "p097-t0124"
      ],
      "top": 529.0,
      "kind": "question",
      "question_id": "q-p097-h04",
      "target": "/go-bank/12-kafka#q-p097-h04",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p097-h05",
      "source-page": 97,
      "title": "分布式",
      "size": 33,
      "span_ids": [
        "p097-t0142"
      ],
      "top": 660.0,
      "kind": "section",
      "section": "分布式",
      "target": "/go-bank/13-distributed#q-p097-h06",
      "page-range": [
        97,
        101
      ]
    },
    {
      "heading-id": "p097-h06",
      "source-page": 97,
      "title": "分布式服务接口的幂等性如何设计",
      "size": 26,
      "span_ids": [
        "p097-t0144"
      ],
      "top": 716.0,
      "kind": "question",
      "question_id": "q-p097-h06",
      "target": "/go-bank/13-distributed#q-p097-h06",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p097-h07",
      "source-page": 97,
      "title": "分布式系统中的接口调用如何保证顺序性",
      "size": 26,
      "span_ids": [
        "p097-t0198"
      ],
      "top": 1039.0,
      "kind": "question",
      "question_id": "q-p097-h07",
      "target": "/go-bank/13-distributed#q-p097-h07",
      "page-range": [
        97,
        97
      ]
    },
    {
      "heading-id": "p098-h01",
      "source-page": 98,
      "title": "说说 ZooKeeper 一般都有哪些使用场景",
      "size": 26,
      "span_ids": [
        "p098-t0001",
        "p098-t0002",
        "p098-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p098-h01",
      "target": "/go-bank/13-distributed#q-p098-h01",
      "page-range": [
        98,
        98
      ]
    },
    {
      "heading-id": "p098-h02",
      "source-page": 98,
      "title": "分布式事务了解吗？",
      "size": 26,
      "span_ids": [
        "p098-t0108"
      ],
      "top": 498.0,
      "kind": "question",
      "question_id": "q-p098-h02",
      "target": "/go-bank/13-distributed#q-p098-h02",
      "page-range": [
        98,
        98
      ]
    },
    {
      "heading-id": "p098-h03",
      "source-page": 98,
      "title": "那常见的分布式锁有哪些解决方案",
      "size": 26,
      "span_ids": [
        "p098-t0153"
      ],
      "top": 776.0,
      "kind": "question",
      "question_id": "q-p098-h03",
      "target": "/go-bank/13-distributed#q-p098-h03",
      "page-range": [
        98,
        98
      ]
    },
    {
      "heading-id": "p098-h04",
      "source-page": 98,
      "title": "MySQL 如何做分布式锁",
      "size": 26,
      "span_ids": [
        "p098-t0167",
        "p098-t0168"
      ],
      "top": 923.0,
      "kind": "question",
      "question_id": "q-p098-h04",
      "target": "/go-bank/13-distributed#q-p098-h04",
      "page-range": [
        98,
        98
      ]
    },
    {
      "heading-id": "p098-h05",
      "source-page": 98,
      "title": "你了解业界哪些大公司的分布式锁框架",
      "size": 26,
      "span_ids": [
        "p098-t0229"
      ],
      "top": 1148.0,
      "kind": "question",
      "question_id": "q-p098-h05",
      "target": "/go-bank/13-distributed#q-p098-h05",
      "page-range": [
        98,
        99
      ]
    },
    {
      "heading-id": "p099-h01",
      "source-page": 99,
      "title": "请讲一下你对 CAP 理论的理解",
      "size": 26,
      "span_ids": [
        "p099-t0121",
        "p099-t0122",
        "p099-t0123"
      ],
      "top": 569.0,
      "kind": "question",
      "question_id": "q-p099-h01",
      "target": "/go-bank/13-distributed#q-p099-h01",
      "page-range": [
        99,
        99
      ]
    },
    {
      "heading-id": "p099-h02",
      "source-page": 99,
      "title": "请讲一下你对 BASE 理论的理解",
      "size": 26,
      "span_ids": [
        "p099-t0237",
        "p099-t0238",
        "p099-t0239"
      ],
      "top": 1020.0,
      "kind": "question",
      "question_id": "q-p099-h02",
      "target": "/go-bank/13-distributed#q-p099-h02",
      "page-range": [
        99,
        100
      ]
    },
    {
      "heading-id": "p100-h01",
      "source-page": 100,
      "title": "请讲一下 BASE 理论的三要素",
      "size": 26,
      "span_ids": [
        "p100-t0029",
        "p100-t0030",
        "p100-t0031"
      ],
      "top": 191.0,
      "kind": "question",
      "question_id": "q-p100-h01",
      "target": "/go-bank/13-distributed#q-p100-h01",
      "page-range": [
        100,
        100
      ]
    },
    {
      "heading-id": "p100-h02",
      "source-page": 100,
      "title": "分布式与集群的区别是什么",
      "size": 26,
      "span_ids": [
        "p100-t0080"
      ],
      "top": 610.0,
      "kind": "question",
      "question_id": "q-p100-h02",
      "target": "/go-bank/13-distributed#q-p100-h02",
      "page-range": [
        100,
        100
      ]
    },
    {
      "heading-id": "p100-h03",
      "source-page": 100,
      "title": "请说一下对两阶段提交协议的理解",
      "size": 26,
      "span_ids": [
        "p100-t0104"
      ],
      "top": 742.0,
      "kind": "question",
      "question_id": "q-p100-h03",
      "target": "/go-bank/13-distributed#q-p100-h03",
      "page-range": [
        100,
        101
      ]
    },
    {
      "heading-id": "p101-h01",
      "source-page": 101,
      "title": "请讲一下对 TCC 协议的理解",
      "size": 26,
      "span_ids": [
        "p101-t0068",
        "p101-t0069",
        "p101-t0070"
      ],
      "top": 391.0,
      "kind": "question",
      "question_id": "q-p101-h01",
      "target": "/go-bank/13-distributed#q-p101-h01",
      "page-range": [
        101,
        101
      ]
    },
    {
      "heading-id": "p101-h02",
      "source-page": 101,
      "title": "Memcached",
      "size": 33,
      "span_ids": [
        "p101-t0104"
      ],
      "top": 634.0,
      "kind": "section",
      "section": "Memcached",
      "target": "/go-bank/09-redis-cache#q-p101-h03",
      "page-range": [
        101,
        104
      ]
    },
    {
      "heading-id": "p101-h03",
      "source-page": 101,
      "title": "Memcached 的多线程是什么？如何使用它们？",
      "size": 26,
      "span_ids": [
        "p101-t0106",
        "p101-t0107"
      ],
      "top": 690.0,
      "kind": "question",
      "question_id": "q-p101-h03",
      "target": "/go-bank/09-redis-cache#q-p101-h03",
      "page-range": [
        101,
        101
      ]
    },
    {
      "heading-id": "p101-h04",
      "source-page": 101,
      "title": "Memcached 是什么，有什么作用",
      "size": 26,
      "span_ids": [
        "p101-t0168",
        "p101-t0169"
      ],
      "top": 940.0,
      "kind": "question",
      "question_id": "q-p101-h04",
      "target": "/go-bank/09-redis-cache#q-p101-h04",
      "page-range": [
        101,
        101
      ]
    },
    {
      "heading-id": "p101-h05",
      "source-page": 101,
      "title": "Memcached 与 Redis 的区别？",
      "size": 26,
      "span_ids": [
        "p101-t0196",
        "p101-t0197",
        "p101-t0198",
        "p101-t0199"
      ],
      "top": 1095.0,
      "kind": "question",
      "question_id": "q-p101-h05",
      "target": "/go-bank/09-redis-cache#q-p101-h05",
      "page-range": [
        101,
        102
      ]
    },
    {
      "heading-id": "p102-h01",
      "source-page": 102,
      "title": "如果缓存数据在导出导入之间过期了，你又怎么处理这些数据呢",
      "size": 26,
      "span_ids": [
        "p102-t0155",
        "p102-t0156"
      ],
      "top": 597.0,
      "kind": "question",
      "question_id": "q-p102-h01",
      "target": "/go-bank/09-redis-cache#q-p102-h01",
      "page-range": [
        102,
        102
      ]
    },
    {
      "heading-id": "p102-h02",
      "source-page": 102,
      "title": "如何实现集群中的 session 共享存储",
      "size": 26,
      "span_ids": [
        "p102-t0159",
        "p102-t0160",
        "p102-t0161"
      ],
      "top": 839.0,
      "kind": "question",
      "question_id": "q-p102-h02",
      "target": "/go-bank/09-redis-cache#q-p102-h02",
      "page-range": [
        102,
        103
      ]
    },
    {
      "heading-id": "p103-h01",
      "source-page": 103,
      "title": "Memcached 和 MySQL 的 query cache 相比，有什么优缺点",
      "size": 26,
      "span_ids": [
        "p103-t0034",
        "p103-t0035",
        "p103-t0036",
        "p103-t0037",
        "p103-t0038",
        "p103-t0039",
        "p103-t0040"
      ],
      "top": 162.0,
      "kind": "question",
      "question_id": "q-p103-h01",
      "target": "/go-bank/09-redis-cache#q-p103-h01",
      "page-range": [
        103,
        103
      ]
    },
    {
      "heading-id": "p103-h02",
      "source-page": 103,
      "title": "Memcached 是原子的吗？",
      "size": 26,
      "span_ids": [
        "p103-t0168",
        "p103-t0169"
      ],
      "top": 641.0,
      "kind": "question",
      "question_id": "q-p103-h02",
      "target": "/go-bank/09-redis-cache#q-p103-h02",
      "page-range": [
        103,
        103
      ]
    },
    {
      "heading-id": "p103-h03",
      "source-page": 103,
      "title": "Memcached 能够更有效地使用内存吗",
      "size": 26,
      "span_ids": [
        "p103-t0274",
        "p103-t0275"
      ],
      "top": 936.0,
      "kind": "question",
      "question_id": "q-p103-h03",
      "target": "/go-bank/09-redis-cache#q-p103-h03",
      "page-range": [
        103,
        103
      ]
    },
    {
      "heading-id": "p104-h01",
      "source-page": 104,
      "title": "Memcached 的内存分配器是如何工作的？为什么不适用malloc/free？为何要使用 slabs？",
      "size": 26,
      "span_ids": [
        "p104-t0001",
        "p104-t0002",
        "p104-t0004",
        "p104-t0005",
        "p104-t0007",
        "p104-t0008",
        "p104-t0009"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p104-h01",
      "target": "/go-bank/09-redis-cache#q-p104-h01",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h02",
      "source-page": 104,
      "title": "MongoDB 面试题",
      "size": 33,
      "span_ids": [
        "p104-t0071",
        "p104-t0072"
      ],
      "top": 295.0,
      "kind": "section",
      "section": "MongoDB 面试题",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
      "page-range": [
        104,
        105
      ]
    },
    {
      "heading-id": "p104-h03",
      "source-page": 104,
      "title": "ObjectID 有哪些部分组成",
      "size": 26,
      "span_ids": [
        "p104-t0075",
        "p104-t0076"
      ],
      "top": 351.0,
      "kind": "question",
      "question_id": "q-p104-h03",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h04",
      "source-page": 104,
      "title": "当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么",
      "size": 26,
      "span_ids": [
        "p104-t0090",
        "p104-t0091",
        "p104-t0092",
        "p104-t0093",
        "p104-t0095"
      ],
      "top": 437.0,
      "kind": "question",
      "question_id": "q-p104-h04",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h05",
      "source-page": 104,
      "title": "为什么要在 MongoDB 中使用分析器",
      "size": 26,
      "span_ids": [
        "p104-t0110",
        "p104-t0111",
        "p104-t0112"
      ],
      "top": 576.0,
      "kind": "question",
      "question_id": "q-p104-h05",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h06",
      "source-page": 104,
      "title": "解释一下 MongoDB 中的索引是什么",
      "size": 26,
      "span_ids": [
        "p104-t0131",
        "p104-t0132",
        "p104-t0133"
      ],
      "top": 686.0,
      "kind": "question",
      "question_id": "q-p104-h06",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h07",
      "source-page": 104,
      "title": "什么是集合（表）",
      "size": 26,
      "span_ids": [
        "p104-t0144"
      ],
      "top": 794.0,
      "kind": "question",
      "question_id": "q-p104-h07",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h08",
      "source-page": 104,
      "title": "什么是 NoSQL 数据库？NoSQL 和 RDBMS 有什么区别？在哪些情况下使用和不使用 NoSQL 数据库？",
      "size": 26,
      "span_ids": [
        "p104-t0162",
        "p104-t0163",
        "p104-t0164",
        "p104-t0165",
        "p104-t0166",
        "p104-t0167",
        "p104-t0168",
        "p104-t0169",
        "p104-t0171",
        "p104-t0173",
        "p104-t0174",
        "p104-t0175"
      ],
      "top": 926.0,
      "kind": "question",
      "question_id": "q-p104-h08",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p104-h09",
      "source-page": 104,
      "title": "提及插入文档的命令语法是什么？",
      "size": 26,
      "span_ids": [
        "p104-t0210"
      ],
      "top": 1112.0,
      "kind": "question",
      "question_id": "q-p104-h09",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
      "page-range": [
        104,
        104
      ]
    },
    {
      "heading-id": "p105-h01",
      "source-page": 105,
      "title": "如果在一个分片（shard）停止或者很慢的时候,我发起一个查询会怎样",
      "size": 26,
      "span_ids": [
        "p105-t0001",
        "p105-t0002",
        "p105-t0003",
        "p105-t0004",
        "p105-t0005",
        "p105-t0006",
        "p105-t0008"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p105-h01",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p105-h02",
      "source-page": 105,
      "title": "如何执行事务/加锁？",
      "size": 26,
      "span_ids": [
        "p105-t0031",
        "p105-t0032",
        "p105-t0033"
      ],
      "top": 179.0,
      "kind": "question",
      "question_id": "q-p105-h02",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p105-h03",
      "source-page": 105,
      "title": "Elasticsearch",
      "size": 33,
      "span_ids": [
        "p105-t0041"
      ],
      "top": 264.0,
      "kind": "section",
      "section": "Elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
      "page-range": [
        105,
        106
      ]
    },
    {
      "heading-id": "p105-h04",
      "source-page": 105,
      "title": "Elasticsearch 读取数据",
      "size": 26,
      "span_ids": [
        "p105-t0043",
        "p105-t0044"
      ],
      "top": 320.0,
      "kind": "question",
      "question_id": "q-p105-h04",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p105-h05",
      "source-page": 105,
      "title": "您能解释一下 X-Pack for Elasticsearch 的功能和重要性吗",
      "size": 26,
      "span_ids": [
        "p105-t0070",
        "p105-t0071",
        "p105-t0072",
        "p105-t0073"
      ],
      "top": 785.0,
      "kind": "question",
      "question_id": "q-p105-h05",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p105-h06",
      "source-page": 105,
      "title": "Elasticsearch 中的节点（比如共 20 个），其中的 10 个选了一个 master，另外 10 个选了另一个 master，怎么办",
      "size": 26,
      "span_ids": [
        "p105-t0088",
        "p105-t0089",
        "p105-t0090",
        "p105-t0091",
        "p105-t0092",
        "p105-t0093",
        "p105-t0094",
        "p105-t0096",
        "p105-t0097",
        "p105-t0098",
        "p105-t0099",
        "p105-t0100",
        "p105-t0101",
        "p105-t0102"
      ],
      "top": 924.0,
      "kind": "question",
      "question_id": "q-p105-h06",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p105-h07",
      "source-page": 105,
      "title": "解释一下 Elasticsearch 集群中的索引的概念？",
      "size": 26,
      "span_ids": [
        "p105-t0125",
        "p105-t0126",
        "p105-t0127",
        "p105-t0129",
        "p105-t0131"
      ],
      "top": 1095.0,
      "kind": "question",
      "question_id": "q-p105-h07",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
      "page-range": [
        105,
        105
      ]
    },
    {
      "heading-id": "p106-h01",
      "source-page": 106,
      "title": "你可以列出 Elasticsearch 各种类型的分析器吗",
      "size": 26,
      "span_ids": [
        "p106-t0001",
        "p106-t0002",
        "p106-t0003"
      ],
      "top": 40.0,
      "kind": "question",
      "question_id": "q-p106-h01",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
      "page-range": [
        106,
        106
      ]
    },
    {
      "heading-id": "p106-h02",
      "source-page": 106,
      "title": "解释一下 Elasticsearch Node？",
      "size": 26,
      "span_ids": [
        "p106-t0049",
        "p106-t0050",
        "p106-t0051"
      ],
      "top": 654.0,
      "kind": "question",
      "question_id": "q-p106-h02",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
      "page-range": [
        106,
        106
      ]
    },
    {
      "heading-id": "p106-h03",
      "source-page": 106,
      "title": "Elasticsearch 在部署时，对 Linux 的设置有哪些优化方法",
      "size": 26,
      "span_ids": [
        "p106-t0110",
        "p106-t0111",
        "p106-t0112",
        "p106-t0113"
      ],
      "top": 857.0,
      "kind": "question",
      "question_id": "q-p106-h03",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
      "page-range": [
        106,
        106
      ]
    },
    {
      "heading-id": "p106-h04",
      "source-page": 106,
      "title": "请解释有关 Elasticsearch 的 NRT",
      "size": 26,
      "span_ids": [
        "p106-t0143",
        "p106-t0144",
        "p106-t0145",
        "p106-t0146"
      ],
      "top": 988.0,
      "kind": "question",
      "question_id": "q-p106-h04",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
      "page-range": [
        106,
        106
      ]
    },
    {
      "heading-id": "p106-h05",
      "source-page": 106,
      "title": "elasticsearch 的 document 设计",
      "size": 26,
      "span_ids": [
        "p106-t0167",
        "p106-t0168",
        "p106-t0169",
        "p106-t0170"
      ],
      "top": 1120.0,
      "kind": "question",
      "question_id": "q-p106-h05",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
      "page-range": [
        106,
        106
      ]
    }
  ],
  "questions": [
    {
      "id": "q-p001-h02",
      "title": "与其他语言相比，使用 Go 有什么好处？",
      "heading-id": "p001-h02",
      "source-page": 1,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p001-h02",
      "pages": [
        1
      ],
      "page-range": [
        1,
        1
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 与其他作为学术实验开始的语言不同，Go 代码的设计是务实的。每个功能和语法决策都旨在让程序员的生活更轻松。",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0012",
            "p001-t0013",
            "p001-t0014",
            "p001-t0015",
            "p001-t0016",
            "p001-t0018"
          ],
          "operations": [],
          "id": "q-p001-h02-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "2. Golang 针对并发进行了优化，并且在规模上运行良好。",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0020",
            "p001-t0021"
          ],
          "operations": [],
          "id": "q-p001-h02-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "3. 由于单一的标准代码格式，Golang 通常被认为比其他语言更具可读性。",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0023",
            "p001-t0024",
            "p001-t0025",
            "p001-t0026"
          ],
          "operations": [],
          "id": "q-p001-h02-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "4. 自动垃圾收集明显比 Java 或 Python 更有效，因为它与程序同时执行。",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0028",
            "p001-t0029",
            "p001-t0030",
            "p001-t0031",
            "p001-t0032",
            "p001-t0033"
          ],
          "operations": [],
          "id": "q-p001-h02-b004",
          "markdown_line": 18
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p001-h03",
      "title": "Golang 使用什么数据类型？",
      "heading-id": "p001-h03",
      "source-page": 1,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p001-h03",
      "pages": [
        1
      ],
      "page-range": [
        1,
        1
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Method",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0039"
          ],
          "operations": [],
          "id": "q-p001-h03-b001",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "2. Boolean",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0040"
          ],
          "operations": [],
          "id": "q-p001-h03-b002",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "3. Numeric",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0041"
          ],
          "operations": [],
          "id": "q-p001-h03-b003",
          "markdown_line": 28
        },
        {
          "kind": "prose",
          "text": "4. String",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0042"
          ],
          "operations": [],
          "id": "q-p001-h03-b004",
          "markdown_line": 30
        },
        {
          "kind": "prose",
          "text": "5. Array",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0043"
          ],
          "operations": [],
          "id": "q-p001-h03-b005",
          "markdown_line": 32
        },
        {
          "kind": "prose",
          "text": "6. Slice",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0044"
          ],
          "operations": [],
          "id": "q-p001-h03-b006",
          "markdown_line": 34
        },
        {
          "kind": "prose",
          "text": "7. Struct",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0045"
          ],
          "operations": [],
          "id": "q-p001-h03-b007",
          "markdown_line": 36
        },
        {
          "kind": "prose",
          "text": "8. Pointer",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0046"
          ],
          "operations": [],
          "id": "q-p001-h03-b008",
          "markdown_line": 38
        },
        {
          "kind": "prose",
          "text": "9. Function",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0047"
          ],
          "operations": [],
          "id": "q-p001-h03-b009",
          "markdown_line": 40
        },
        {
          "kind": "prose",
          "text": "10. Interface",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0048"
          ],
          "operations": [],
          "id": "q-p001-h03-b010",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "11. Map",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0049"
          ],
          "operations": [],
          "id": "q-p001-h03-b011",
          "markdown_line": 44
        },
        {
          "kind": "prose",
          "text": "12. Channe",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0050"
          ],
          "operations": [],
          "id": "q-p001-h03-b012",
          "markdown_line": 46
        }
      ],
      "markdown_line": 20
    },
    {
      "id": "q-p001-h04",
      "title": "整型切片有哪些初始化的方式",
      "heading-id": "p001-h04",
      "source-page": 1,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p001-h04",
      "pages": [
        1
      ],
      "page-range": [
        1,
        1
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "s := make([]int, 0)\ns := make([]int, 5, 10)\ns := []int{1, 2, 3, 4, 5}",
          "language": "go",
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0102",
            "p001-t0103",
            "p001-t0104"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p001-h04-b001",
          "markdown_line": 52
        }
      ],
      "markdown_line": 48
    },
    {
      "id": "q-p001-h05",
      "title": "Go 当中同步锁有什么特点？作用是什么",
      "heading-id": "p001-h05",
      "source-page": 1,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p001-h05",
      "pages": [
        1
      ],
      "page-range": [
        1,
        1
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "当一个 Goroutine（协程）获得了 Mutex 后，其他 Goroutine（协程）就只能乖乖的等待，除非该Goroutine 释放了该 Mutex。RWMutex 在读锁占用的情况下，会阻止写，但不阻止读 RWMutex。在写锁占用情况下，会阻止任何其他 Goroutine（无论读和写）进来，整个锁相当于由该 Goroutine 独占同步锁的作用是保证资源在使用时的独有性，不会因为并发而导致数据错乱，保证系统的稳定性。",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0057",
            "p001-t0058",
            "p001-t0059",
            "p001-t0060",
            "p001-t0061",
            "p001-t0062",
            "p001-t0063",
            "p001-t0065",
            "p001-t0067",
            "p001-t0068",
            "p001-t0069",
            "p001-t0070",
            "p001-t0071",
            "p001-t0072",
            "p001-t0074",
            "p001-t0075",
            "p001-t0076",
            "p001-t0078",
            "p001-t0079",
            "p001-t0080",
            "p001-t0081",
            "p001-t0082",
            "p001-t0083",
            "p001-t0085",
            "p001-t0087"
          ],
          "operations": [],
          "id": "q-p001-h05-b001",
          "markdown_line": 12
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p001-h06",
      "title": "Go 语言当中 Channel（通道）有什么特点，需要注意什么？",
      "heading-id": "p001-h06",
      "source-page": 1,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p001-h06",
      "pages": [
        1,
        2
      ],
      "page-range": [
        1,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1如果给个nil的channel发送数据会造成永远阻塞",
          "language": null,
          "pages": [
            1
          ],
          "span_ids": [
            "p001-t0096",
            "p001-t0097",
            "p001-t0098",
            "p001-t0099",
            "p001-t0100",
            "p001-t0101"
          ],
          "operations": [],
          "id": "q-p001-h06-b001",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "1. 如果给一个 nil 的 channel 发送数据，会造成永远阻塞。",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0001",
            "p002-t0002",
            "p002-t0003",
            "p002-t0004",
            "p002-t0005",
            "p002-t0006"
          ],
          "operations": [],
          "id": "q-p001-h06-b002",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "2. 如果从一个 nil 的 channel 中接收数据，也会造成永久阻塞。",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0008",
            "p002-t0009",
            "p002-t0010",
            "p002-t0011",
            "p002-t0012",
            "p002-t0013"
          ],
          "operations": [],
          "id": "q-p001-h06-b003",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "3. 给一个已经关闭的 channel 发送数据，会引起 panic",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0015",
            "p002-t0016",
            "p002-t0017",
            "p002-t0018",
            "p002-t0020",
            "p002-t0021"
          ],
          "operations": [],
          "id": "q-p001-h06-b004",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "4. 从一个已经关闭的 channel 接收数据，如果缓冲区中为空，则返回一个零值。",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0022",
            "p002-t0023",
            "p002-t0024",
            "p002-t0025",
            "p002-t0027",
            "p002-t0029"
          ],
          "operations": [],
          "id": "q-p001-h06-b005",
          "markdown_line": 26
        }
      ],
      "markdown_line": 14
    },
    {
      "id": "q-p002-h01",
      "title": "Go 语言当中 Channel 缓冲有什么特点？",
      "heading-id": "p002-h01",
      "source-page": 2,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p002-h01",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "无缓冲的 channel 是同步的，而有缓冲的 channel 是非同步的。",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0037",
            "p002-t0038",
            "p002-t0039",
            "p002-t0040",
            "p002-t0041"
          ],
          "operations": [],
          "id": "q-p002-h01-b001",
          "markdown_line": 32
        }
      ],
      "markdown_line": 28
    },
    {
      "id": "q-p002-h02",
      "title": "Go 语言中 cap 函数可以作用于哪些内容？",
      "heading-id": "p002-h02",
      "source-page": 2,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p002-h02",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. array(数组)",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0049",
            "p002-t0050",
            "p002-t0051"
          ],
          "operations": [],
          "id": "q-p002-h02-b001",
          "markdown_line": 62
        },
        {
          "kind": "prose",
          "text": "2. slice(切片)",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0052",
            "p002-t0053",
            "p002-t0054"
          ],
          "operations": [],
          "id": "q-p002-h02-b002",
          "markdown_line": 64
        },
        {
          "kind": "prose",
          "text": "3. channel(通道)",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0055",
            "p002-t0056",
            "p002-t0057"
          ],
          "operations": [],
          "id": "q-p002-h02-b003",
          "markdown_line": 66
        }
      ],
      "markdown_line": 58
    },
    {
      "id": "q-p002-h03",
      "title": "Go Convey 是什么？一般用来做什么？",
      "heading-id": "p002-h03",
      "source-page": 2,
      "section": "golang基础",
      "topic": "05-go-frameworks",
      "target": "/go-bank/05-go-frameworks#q-p002-h03",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. go convey 是一个支持 Golang 的单元测试框架",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0062",
            "p002-t0063",
            "p002-t0064",
            "p002-t0065"
          ],
          "operations": [],
          "id": "q-p002-h03-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "2. go convey 能够自动监控文件修改并启动测试，并可以将测试结果实时输出到 Web 界面",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0067",
            "p002-t0068",
            "p002-t0070",
            "p002-t0071",
            "p002-t0072"
          ],
          "operations": [],
          "id": "q-p002-h03-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "3. go convey 提供了丰富的断言简化测试用例的编写",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0074",
            "p002-t0075"
          ],
          "operations": [],
          "id": "q-p002-h03-b003",
          "markdown_line": 16
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p002-h04",
      "title": "输入 non-empty interface",
      "heading-id": "p002-h04",
      "source-page": 2,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p002-h04",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 接口除了有静态类型，还有动态类型和动态值，当且仅当动态值和动态类型都为 nil 时，接口类型值才为 nil。这里的 x 的动态类型是 *int，所以 x 不为 nil",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0079",
            "p002-t0080",
            "p002-t0082",
            "p002-t0083",
            "p002-t0084",
            "p002-t0085",
            "p002-t0086",
            "p002-t0087",
            "p002-t0089",
            "p002-t0090",
            "p002-t0091",
            "p002-t0092",
            "p002-t0093",
            "p002-t0094",
            "p002-t0095",
            "p002-t0096"
          ],
          "operations": [],
          "id": "q-p002-h04-b001",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "2. 但是在此案例中，直接在main函数中的*int类型的x的值是nil",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0097",
            "p002-t0098",
            "p002-t0099",
            "p002-t0100",
            "p002-t0101",
            "p002-t0102",
            "p002-t0103",
            "p002-t0104",
            "p002-t0105"
          ],
          "operations": [],
          "id": "q-p002-h04-b002",
          "markdown_line": 74
        }
      ],
      "markdown_line": 68
    },
    {
      "id": "q-p002-h05",
      "title": "Go 语言当中 new 的作用是什么",
      "heading-id": "p002-h05",
      "source-page": 2,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p002-h05",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "new 创建一个该类型的实例，并且返回指向该实例的指针。new 函数是内建函数，函数定义： func new(Type) *Type",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0112",
            "p002-t0113",
            "p002-t0114",
            "p002-t0115",
            "p002-t0117",
            "p002-t0118",
            "p002-t0119"
          ],
          "operations": [],
          "id": "q-p002-h05-b001",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "1. 使用 new 函数来分配空间",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0120",
            "p002-t0121",
            "p002-t0122",
            "p002-t0123"
          ],
          "operations": [],
          "id": "q-p002-h05-b002",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "2. 传递给 new 函数的是一个类型，而不是一个值",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0125",
            "p002-t0126",
            "p002-t0127",
            "p002-t0128"
          ],
          "operations": [],
          "id": "q-p002-h05-b003",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "3. 返回值是指向这个新分配的地址的指针",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0130",
            "p002-t0131"
          ],
          "operations": [],
          "id": "q-p002-h05-b004",
          "markdown_line": 86
        }
      ],
      "markdown_line": 76
    },
    {
      "id": "q-p002-h06",
      "title": "Go 语言中 make 的作用是什么",
      "heading-id": "p002-h06",
      "source-page": 2,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p002-h06",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "make 的作用是为 slice, map or chan 的初始化然后返回引用 make 函数是内建函数，函数定义：",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0161",
            "p002-t0163",
            "p002-t0165",
            "p002-t0167",
            "p002-t0169",
            "p002-t0160",
            "p002-t0162",
            "p002-t0166"
          ],
          "operations": [],
          "id": "q-p002-h06-b001",
          "markdown_line": 92
        },
        {
          "kind": "code",
          "text": "func make(Type, size IntegerType) Type",
          "language": "go",
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0171"
          ],
          "operations": [],
          "id": "q-p002-h06-b002",
          "markdown_line": 94
        },
        {
          "kind": "prose",
          "text": "make(T, args)函数的目的和 new(T)不同仅仅用于创建 slice, map, channel 而且返回类型是实例",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0173",
            "p002-t0175",
            "p002-t0177",
            "p002-t0179",
            "p002-t0172",
            "p002-t0174",
            "p002-t0178"
          ],
          "operations": [],
          "id": "q-p002-h06-b003",
          "markdown_line": 98
        }
      ],
      "markdown_line": 88
    },
    {
      "id": "q-p002-h07",
      "title": "关于select机制",
      "heading-id": "p002-h07",
      "source-page": 2,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p002-h07",
      "pages": [
        2
      ],
      "page-range": [
        2,
        2
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. select机制用来处理异步IO问题；",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0143",
            "p002-t0144",
            "p002-t0145",
            "p002-t0146"
          ],
          "operations": [],
          "id": "q-p002-h07-b001",
          "markdown_line": 38
        },
        {
          "kind": "prose",
          "text": "2. select机制最大的一条限制就是每个case语句里必须是一个IO操作",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0148",
            "p002-t0149",
            "p002-t0150",
            "p002-t0151",
            "p002-t0152",
            "p002-t0153"
          ],
          "operations": [],
          "id": "q-p002-h07-b002",
          "markdown_line": 40
        },
        {
          "kind": "prose",
          "text": "3. golang在语言级别支持select关键字",
          "language": null,
          "pages": [
            2
          ],
          "span_ids": [
            "p002-t0155",
            "p002-t0156",
            "p002-t0157",
            "p002-t0158"
          ],
          "operations": [],
          "id": "q-p002-h07-b003",
          "markdown_line": 42
        }
      ],
      "markdown_line": 34
    },
    {
      "id": "q-p003-h01",
      "title": "Go 程序中的包是什么",
      "heading-id": "p003-h01",
      "source-page": 3,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p003-h01",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "包(pkg)是 Go 工作区中包含 Go 源文件或其他包的目录。源文件中的每个函数、变量和类型都存储在链接包中。每个 Go 源文件都属于一个包，该包在文件顶部使用 package关键词声明。使用import导入包。",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0115",
            "p003-t0119",
            "p003-t0121",
            "p003-t0123",
            "p003-t0111",
            "p003-t0113",
            "p003-t0116",
            "p003-t0118",
            "p003-t0120",
            "p003-t0122",
            "p003-t0124",
            "p003-t0112",
            "p003-t0114",
            "p003-t0117",
            "p003-t0130",
            "p003-t0132",
            "p003-t0134",
            "p003-t0136",
            "p003-t0125",
            "p003-t0127",
            "p003-t0129",
            "p003-t0131",
            "p003-t0133",
            "p003-t0135",
            "p003-t0138",
            "p003-t0140",
            "p003-t0128",
            "p003-t0137",
            "p003-t0139"
          ],
          "operations": [],
          "id": "q-p003-h01-b001",
          "markdown_line": 104
        }
      ],
      "markdown_line": 100
    },
    {
      "id": "q-p003-h02",
      "title": "Printf()，Sprintf()，FprintF() 都是格式化输出，有什么不同",
      "heading-id": "p003-h02",
      "source-page": 3,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p003-h02",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Printf 是标准输出，一般是屏幕，也可以重定向",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0014",
            "p003-t0015"
          ],
          "operations": [],
          "id": "q-p003-h02-b001",
          "markdown_line": 110
        },
        {
          "kind": "prose",
          "text": "2. Sprintf()是把格式化字符串输出到指定的字符串中",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0017",
            "p003-t0018"
          ],
          "operations": [],
          "id": "q-p003-h02-b002",
          "markdown_line": 112
        },
        {
          "kind": "prose",
          "text": "3. Fprintf()是把格式化字符串输出到文件中",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0020",
            "p003-t0021"
          ],
          "operations": [],
          "id": "q-p003-h02-b003",
          "markdown_line": 114
        }
      ],
      "markdown_line": 106
    },
    {
      "id": "q-p003-h03",
      "title": "Go 语言当中数组和切片的区别是什么？",
      "heading-id": "p003-h03",
      "source-page": 3,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p003-h03",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 数组，组固定长度。数组长度是数组类型的一部分，所以[3]int 和[4]int 是两种不同的数组类型数组需要指定大小，不指定也会根据初始化，自动推算出大小，大小不可改变。数组是通过值传递的",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0027",
            "p003-t0028",
            "p003-t0030",
            "p003-t0031",
            "p003-t0032",
            "p003-t0033",
            "p003-t0034",
            "p003-t0036",
            "p003-t0037",
            "p003-t0039"
          ],
          "operations": [],
          "id": "q-p003-h03-b001",
          "markdown_line": 120
        },
        {
          "kind": "prose",
          "text": "2. 切片，可以改变长度。切片是轻量级的数据结构，三个属性，指针，长度，容量不需要指定大小切片是地址传递（引用传递）可以通过数组来初始化，也可以通过内置函数 make()来初始化，初始化的时候 len=cap，然后进行扩容",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0041",
            "p003-t0042",
            "p003-t0044",
            "p003-t0046",
            "p003-t0047",
            "p003-t0049",
            "p003-t0050",
            "p003-t0051",
            "p003-t0052",
            "p003-t0053",
            "p003-t0054"
          ],
          "operations": [],
          "id": "q-p003-h03-b002",
          "markdown_line": 122
        }
      ],
      "markdown_line": 116
    },
    {
      "id": "q-p003-h04",
      "title": "拷贝大切片一定比小切片代价大吗？",
      "heading-id": "p003-h04",
      "source-page": 3,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p003-h04",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "切片底层结构",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0058"
          ],
          "operations": [],
          "id": "q-p003-h04-b001",
          "markdown_line": 128
        },
        {
          "kind": "code",
          "text": "type SliceHeader struct {\n\tData uintptr\n\tLen  int\n\tCap  int\n}",
          "language": "go",
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0141",
            "p003-t0142",
            "p003-t0143",
            "p003-t0144",
            "p003-t0145"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p003-h04-b002",
          "markdown_line": 130
        },
        {
          "kind": "prose",
          "text": "所有切片的大小相同；三个字段（一个 uintptr，两个int）。切片中的第一个字是指向切片底层数组的指针，这是切片的存储空间，第二个字段是切片的长度，第三个字段是容量。将一个 slice 变量分配给另一个变量只会复制三个机器字。所以拷贝大切片跟小切片的代价应该是一样的。",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0059",
            "p003-t0060",
            "p003-t0061",
            "p003-t0062",
            "p003-t0063",
            "p003-t0064",
            "p003-t0065",
            "p003-t0066",
            "p003-t0067",
            "p003-t0069"
          ],
          "operations": [],
          "id": "q-p003-h04-b003",
          "markdown_line": 138
        }
      ],
      "markdown_line": 124
    },
    {
      "id": "q-p003-h05",
      "title": "json包变量不加tag会怎么样？",
      "heading-id": "p003-h05",
      "source-page": 3,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p003-h05",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 如果变量首字母小写，则为private。无论如何不能转，因为json包里认为私有变量为不可导出的",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0075",
            "p003-t0076",
            "p003-t0077",
            "p003-t0078",
            "p003-t0079",
            "p003-t0080"
          ],
          "operations": [],
          "id": "q-p003-h05-b001",
          "markdown_line": 144
        },
        {
          "kind": "prose",
          "text": "2. 如果变量首字母大写，则为public，不加tag，可以正常转为json里的字段，json内字段名跟结构体内字段原名一致",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0081",
            "p003-t0082",
            "p003-t0083",
            "p003-t0084",
            "p003-t0085",
            "p003-t0086",
            "p003-t0087",
            "p003-t0088",
            "p003-t0089",
            "p003-t0090",
            "p003-t0091"
          ],
          "operations": [],
          "id": "q-p003-h05-b002",
          "markdown_line": 146
        },
        {
          "kind": "prose",
          "text": "3. 如果变量首字母大写，则为public，加了tag，从struct转json的时候，json的字段名就是tag里的字段名，原字段名已经没用",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0092",
            "p003-t0093",
            "p003-t0094",
            "p003-t0095",
            "p003-t0096",
            "p003-t0097",
            "p003-t0098",
            "p003-t0099",
            "p003-t0100",
            "p003-t0101",
            "p003-t0102",
            "p003-t0103",
            "p003-t0104",
            "p003-t0105",
            "p003-t0106"
          ],
          "operations": [],
          "id": "q-p003-h05-b003",
          "markdown_line": 148
        }
      ],
      "markdown_line": 140
    },
    {
      "id": "q-p003-h06",
      "title": "Log包线程安全吗",
      "heading-id": "p003-h06",
      "source-page": 3,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p003-h06",
      "pages": [
        3
      ],
      "page-range": [
        3,
        3
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Golang的标准库提供了log的机制，但是该模块的功能较为简单（看似简单，其实他有他的设计思路）。在输出的位置做了线程安全的保护",
          "language": null,
          "pages": [
            3
          ],
          "span_ids": [
            "p003-t0147",
            "p003-t0149",
            "p003-t0146",
            "p003-t0148",
            "p003-t0150",
            "p003-t0152"
          ],
          "operations": [],
          "id": "q-p003-h06-b001",
          "markdown_line": 48
        }
      ],
      "markdown_line": 44
    },
    {
      "id": "q-p004-h01",
      "title": "Go 语言当中数组和切片在传递的时候的区别是什么？",
      "heading-id": "p004-h01",
      "source-page": 4,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p004-h01",
      "pages": [
        4
      ],
      "page-range": [
        4,
        4
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 数组是值传递",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0005",
            "p004-t0006"
          ],
          "operations": [],
          "id": "q-p004-h01-b001",
          "markdown_line": 154
        },
        {
          "kind": "prose",
          "text": "2. 切片看上去像是引用传递，但其实是值传递",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0008",
            "p004-t0009"
          ],
          "operations": [],
          "id": "q-p004-h01-b002",
          "markdown_line": 156
        }
      ],
      "markdown_line": 150
    },
    {
      "id": "q-p004-h02",
      "title": "Goroutine和线程的区别?",
      "heading-id": "p004-h02",
      "source-page": 4,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p004-h02",
      "pages": [
        4
      ],
      "page-range": [
        4,
        4
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "从调度上看，goroutine的调度开销远远小于线程调度开销。 OS的线程由OS内核调度，每隔几毫秒，一个硬件时钟中断发到CPU，CPU调用一个调度器内核函数。这个函数暂停当前正在运行的线程，把他的寄存器信息保存到内存中，查看线程列表并决定接下来运行哪一个线程，再从内存中恢复线程的注册表信息，最后继续执行选中的线程。这种线程切换需要一个完整的上下文切换：即保存一个线程的状态到内存，再恢复另外一个线程的状态，最后更新调度器的数据结构。某种意义上，这种操作还是很慢的。 Go运行的时候包涵一个自己的调度器，这个调度器使用一个称为一个M:N调度技术，m个goroutine到n个os线程（可以用GOMAXPROCS来控制n的数量），Go的调度器不是由硬件时钟来定期触发的，而是由特定的go语言结构来触发的，他不需要切换到内核语境，所以调度一个goroutine比调度一个线程的成本低很多。从栈空间上，goroutine的栈空间更加动态灵活。每个OS的线程都有一个固定大小的栈内存，通常是2MB，栈内存用于保存在其他函数调用期间哪些正在执行或者临时暂停的函数的局部变量。这个固定的栈大小，如果对于goroutine来说，可能是一种巨大的浪费。作为对比 goroutine在生命周期开始只有一个很小的栈，典型情况是2KB, 在go程序中，一次创建十万左右的goroutine也不罕⻅ （2KB*100,000=200MB）。而且goroutine的栈不是固定大小，它可以按需增大和缩小，最大限制可以到 1GB。 goroutine没有一个特定的标识。在大部分支持多线程的操作系统和编程语言中，线程有一个独特的标识，通常是一个整数或者指针，这个特性可以让我们构建一个线程的局部存储，本质是一个全局的map，以线程的标识作为键，这样每个线程可以独立使用这个 map存储和获取值，不受其他线程干扰。 goroutine中没有可供程序员访问的标识，原因是一种纯函数的理念，不希望滥用线程局部存储导致一个不健康的超距作用，即函数的行为不仅取决于它的参数，还取决于运行它的线程标识。",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0016",
            "p004-t0017",
            "p004-t0018",
            "p004-t0019",
            "p004-t0020",
            "p004-t0021",
            "p004-t0022",
            "p004-t0023",
            "p004-t0024",
            "p004-t0025",
            "p004-t0026",
            "p004-t0027",
            "p004-t0029",
            "p004-t0030",
            "p004-t0032",
            "p004-t0033",
            "p004-t0035",
            "p004-t0036",
            "p004-t0038",
            "p004-t0039",
            "p004-t0040",
            "p004-t0041",
            "p004-t0042",
            "p004-t0043",
            "p004-t0044",
            "p004-t0045",
            "p004-t0046",
            "p004-t0047",
            "p004-t0048",
            "p004-t0049",
            "p004-t0051",
            "p004-t0052",
            "p004-t0053",
            "p004-t0054",
            "p004-t0055",
            "p004-t0056",
            "p004-t0057",
            "p004-t0058",
            "p004-t0059",
            "p004-t0060",
            "p004-t0062",
            "p004-t0063",
            "p004-t0064",
            "p004-t0065",
            "p004-t0067",
            "p004-t0068",
            "p004-t0069",
            "p004-t0071",
            "p004-t0072",
            "p004-t0073",
            "p004-t0074",
            "p004-t0075",
            "p004-t0076",
            "p004-t0078",
            "p004-t0079",
            "p004-t0080",
            "p004-t0081",
            "p004-t0082",
            "p004-t0083",
            "p004-t0084",
            "p004-t0085",
            "p004-t0086",
            "p004-t0087",
            "p004-t0088",
            "p004-t0089",
            "p004-t0090",
            "p004-t0092",
            "p004-t0093",
            "p004-t0094",
            "p004-t0095",
            "p004-t0096",
            "p004-t0097",
            "p004-t0098",
            "p004-t0099",
            "p004-t0100",
            "p004-t0101",
            "p004-t0102",
            "p004-t0104",
            "p004-t0105",
            "p004-t0107",
            "p004-t0108",
            "p004-t0109",
            "p004-t0110",
            "p004-t0111",
            "p004-t0112",
            "p004-t0113",
            "p004-t0114",
            "p004-t0115",
            "p004-t0116",
            "p004-t0118"
          ],
          "operations": [],
          "id": "q-p004-h02-b001",
          "markdown_line": 54
        }
      ],
      "markdown_line": 50
    },
    {
      "id": "q-p004-h03",
      "title": "Go 语言是如何实现切片扩容的？",
      "heading-id": "p004-h03",
      "source-page": 4,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p004-h03",
      "pages": [
        4
      ],
      "page-range": [
        4,
        4
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "func main() {\n\tarr := make([]int, 0)\n\tfor i := 0; i < 2000; i++ {\n\t\tfmt.Println(\"len 为\", len(arr), \"cap 为\", cap(arr))\n\t\tarr = append(arr, i)\n\t}\n}",
          "language": "go",
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0180",
            "p004-t0181",
            "p004-t0182",
            "p004-t0184",
            "p004-t0186",
            "p004-t0183",
            "p004-t0185",
            "p004-t0187",
            "p004-t0188",
            "p004-t0189",
            "p004-t0190"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p004-h03-b001",
          "markdown_line": 162
        },
        {
          "kind": "prose",
          "text": "我们可以看下结果依次是 0,1,2,4,8,16,32,64,128,256,512,1024但到了 1024 之后,就变成了 1024,1280,1696,2304每次都是扩容了四分之一左右",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0125",
            "p004-t0127",
            "p004-t0128",
            "p004-t0129",
            "p004-t0130",
            "p004-t0131",
            "p004-t0132",
            "p004-t0133",
            "p004-t0134",
            "p004-t0135"
          ],
          "operations": [],
          "id": "q-p004-h03-b002",
          "markdown_line": 172
        }
      ],
      "markdown_line": 158
    },
    {
      "id": "q-p004-h04",
      "title": "看下面代码的 defer 的执行顺序是什么？ defer 的作用和特点是什么？",
      "heading-id": "p004-h04",
      "source-page": 4,
      "section": "golang基础",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p004-h04",
      "pages": [
        4,
        5
      ],
      "page-range": [
        4,
        5
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "defer 的作用是：",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0147",
            "p004-t0148"
          ],
          "operations": [],
          "id": "q-p004-h04-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "1. 你只需要在调用普通函数或方法前加上关键字 defer，就完成了 defer 所需要的语法。",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0150",
            "p004-t0151",
            "p004-t0152",
            "p004-t0153",
            "p004-t0154",
            "p004-t0155",
            "p004-t0157"
          ],
          "operations": [],
          "id": "q-p004-h04-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "2. 当 defer 语句被执行时，跟在 defer 后面的函数会被延迟执行。",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0158",
            "p004-t0159",
            "p004-t0160",
            "p004-t0161",
            "p004-t0162",
            "p004-t0163"
          ],
          "operations": [],
          "id": "q-p004-h04-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "3. 直到包含该 defer 语句的函数执行完毕时，defer 后的函数才会被执行，不论包含 defer 语句的函数是通过 return 正常结束，还是由于 panic 导致的异常结束。",
          "language": null,
          "pages": [
            4
          ],
          "span_ids": [
            "p004-t0164",
            "p004-t0165",
            "p004-t0167",
            "p004-t0168",
            "p004-t0169",
            "p004-t0170",
            "p004-t0171",
            "p004-t0172",
            "p004-t0173",
            "p004-t0174",
            "p004-t0175",
            "p004-t0176",
            "p004-t0177",
            "p004-t0178"
          ],
          "operations": [],
          "id": "q-p004-h04-b004",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "4. 你可以在一个函数中执行多条 defer 语句，它们的执行顺序与声明顺序相反。",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0001",
            "p005-t0002",
            "p005-t0003",
            "p005-t0004"
          ],
          "operations": [],
          "id": "q-p004-h04-b005",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "defer 的常用场景：",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0006",
            "p005-t0007"
          ],
          "operations": [],
          "id": "q-p004-h04-b006",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "1. defer 语句经常被用于处理成对的操作，如打开、关闭、连接、断开连接、加锁、释放锁。",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0009",
            "p005-t0010",
            "p005-t0012"
          ],
          "operations": [],
          "id": "q-p004-h04-b007",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "2. 通过 defer 机制，不论函数逻辑多复杂，都能保证在任何执行路径下，资源被释放。",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0014",
            "p005-t0015",
            "p005-t0016",
            "p005-t0017",
            "p005-t0019"
          ],
          "operations": [],
          "id": "q-p004-h04-b008",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "3. 释放资源的 defer 应该直接跟在请求资源的语句后",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0021",
            "p005-t0022",
            "p005-t0023",
            "p005-t0024"
          ],
          "operations": [],
          "id": "q-p004-h04-b009",
          "markdown_line": 28
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p005-h01",
      "title": "Golang Slice 的底层实现",
      "heading-id": "p005-h01",
      "source-page": 5,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p005-h01",
      "pages": [
        5
      ],
      "page-range": [
        5,
        5
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "切片是基于数组实现的，它的底层是数组，它自己本身非常小，可以理解为对底层数组的抽象。因为基于数组实现，所以它的底层的内存是连续分配的，效率非常高，还可以通过索引获得数据切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用底层数组，设定相关属性将数据读写操作限定在指定的区域内。切片本身是一个只读对象，其工作机制类似数组指针的一种封装。切片对象非常小，是因为它是只有 3 个字段的数据结构：",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0031",
            "p005-t0033",
            "p005-t0034",
            "p005-t0036",
            "p005-t0038",
            "p005-t0040",
            "p005-t0041",
            "p005-t0043",
            "p005-t0044",
            "p005-t0046",
            "p005-t0047",
            "p005-t0048"
          ],
          "operations": [],
          "id": "q-p005-h01-b001",
          "markdown_line": 178
        },
        {
          "kind": "prose",
          "text": "1. 指向底层数组的指针",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0050",
            "p005-t0051"
          ],
          "operations": [],
          "id": "q-p005-h01-b002",
          "markdown_line": 180
        },
        {
          "kind": "prose",
          "text": "2. 切片的长度",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0053",
            "p005-t0054"
          ],
          "operations": [],
          "id": "q-p005-h01-b003",
          "markdown_line": 182
        },
        {
          "kind": "prose",
          "text": "3. 切片的容量",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0056",
            "p005-t0057"
          ],
          "operations": [],
          "id": "q-p005-h01-b004",
          "markdown_line": 184
        }
      ],
      "markdown_line": 174
    },
    {
      "id": "q-p005-h02",
      "title": "Golang Slice 的扩容机制，有什么注意点？",
      "heading-id": "p005-h02",
      "source-page": 5,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p005-h02",
      "pages": [
        5
      ],
      "page-range": [
        5,
        5
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 中切片扩容的策略是这样的：",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0063",
            "p005-t0064"
          ],
          "operations": [],
          "id": "q-p005-h02-b001",
          "markdown_line": 190
        },
        {
          "kind": "prose",
          "text": "1. 首先判断，如果新申请容量大于 2 倍的旧容量，最终容量就是新申请的容量",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0066",
            "p005-t0067",
            "p005-t0068",
            "p005-t0069",
            "p005-t0071"
          ],
          "operations": [],
          "id": "q-p005-h02-b002",
          "markdown_line": 192
        },
        {
          "kind": "prose",
          "text": "2. 否则判断，如果旧切片的长度小于 1024，则最终容量就是旧容量的两倍",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0073",
            "p005-t0074",
            "p005-t0075",
            "p005-t0076"
          ],
          "operations": [],
          "id": "q-p005-h02-b003",
          "markdown_line": 194
        },
        {
          "kind": "prose",
          "text": "3. 否则判断，如果旧切片长度大于等于 1024，则最终容量从旧容量开始循环增加原来的 1/4, 直到最终容量大于等于新申请的容量",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0078",
            "p005-t0079",
            "p005-t0080",
            "p005-t0081",
            "p005-t0083",
            "p005-t0084",
            "p005-t0085",
            "p005-t0086"
          ],
          "operations": [],
          "id": "q-p005-h02-b004",
          "markdown_line": 196
        },
        {
          "kind": "prose",
          "text": "4. 如果最终容量计算值溢出，则最终容量就是新申请容量",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0088",
            "p005-t0089"
          ],
          "operations": [],
          "id": "q-p005-h02-b005",
          "markdown_line": 198
        }
      ],
      "markdown_line": 186
    },
    {
      "id": "q-p005-h03",
      "title": "扩容前后的 Slice 是否相同？",
      "heading-id": "p005-h03",
      "source-page": 5,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p005-h03",
      "pages": [
        5
      ],
      "page-range": [
        5,
        5
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "情况一：原数组还有容量可以扩容（实际容量没有填充完），这种情况下，扩容以后的数组还是指向原来的数组，对一个切片的操作可能影响多个指针指向相同地址的 Slice。情况二：原来数组的容量已经达到了最大值，再想扩容， Go 默认会先开一片内存区域，把原来的值拷贝过来，然后再执行 append() 操作。这种情况丝毫不影响原数组。要复制一个 Slice，最好使用 Copy函数。",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0097",
            "p005-t0099",
            "p005-t0101",
            "p005-t0102",
            "p005-t0104",
            "p005-t0105",
            "p005-t0106",
            "p005-t0108",
            "p005-t0110",
            "p005-t0111",
            "p005-t0112",
            "p005-t0114",
            "p005-t0115",
            "p005-t0116",
            "p005-t0117",
            "p005-t0119",
            "p005-t0121",
            "p005-t0122",
            "p005-t0123",
            "p005-t0124",
            "p005-t0125"
          ],
          "operations": [],
          "id": "q-p005-h03-b001",
          "markdown_line": 204
        }
      ],
      "markdown_line": 200
    },
    {
      "id": "q-p005-h04",
      "title": "Golang 的参数传递、引用类型",
      "heading-id": "p005-h04",
      "source-page": 5,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p005-h04",
      "pages": [
        5
      ],
      "page-range": [
        5,
        5
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 语言中所有的传参都是值传递（传值），都是一个副本，一个拷贝。因为拷贝的内容有时候是非引用类型（int、string、struct 等这些），这样就在函数中就无法修改原内容数据；有的是引用类型（指针、map、slice、chan 等这些），这样就可以修改原内容数据。 Golang 的引用类型包括 slice、map和 channel。它们有复杂的内部结构，除了申请内存外，还需要初始化相关属性。内置函数 new 计算类型大小，为其分配零值内存，返回指针。而 make 会被编译器翻译成具体的创建函数，由其分配内存和初始化成员结构，返回对象而非指针",
          "language": null,
          "pages": [
            5
          ],
          "span_ids": [
            "p005-t0131",
            "p005-t0132",
            "p005-t0134",
            "p005-t0135",
            "p005-t0136",
            "p005-t0137",
            "p005-t0138",
            "p005-t0139",
            "p005-t0140",
            "p005-t0141",
            "p005-t0143",
            "p005-t0144",
            "p005-t0145",
            "p005-t0146",
            "p005-t0147",
            "p005-t0148",
            "p005-t0149",
            "p005-t0150",
            "p005-t0152",
            "p005-t0153",
            "p005-t0154",
            "p005-t0155",
            "p005-t0156",
            "p005-t0157",
            "p005-t0158",
            "p005-t0159",
            "p005-t0160",
            "p005-t0162",
            "p005-t0163",
            "p005-t0164",
            "p005-t0165",
            "p005-t0167",
            "p005-t0168",
            "p005-t0169",
            "p005-t0171",
            "p005-t0172"
          ],
          "operations": [],
          "id": "q-p005-h04-b001",
          "markdown_line": 210
        }
      ],
      "markdown_line": 206
    },
    {
      "id": "q-p006-h01",
      "title": "Golang Map 底层实现",
      "heading-id": "p006-h01",
      "source-page": 6,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p006-h01",
      "pages": [
        6
      ],
      "page-range": [
        6,
        6
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Golang 中 map 的底层实现是一个散列表，因此实现 map 的过程实际上就是实现散表的过程。在这个散列表中，主要出现的结构体有两个，一个叫 hmap(a header for a go map)，一个叫 bmap(a bucket for a Go map，通常叫其 bucket)。",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0005",
            "p006-t0006",
            "p006-t0007",
            "p006-t0008",
            "p006-t0009",
            "p006-t0010",
            "p006-t0012",
            "p006-t0013",
            "p006-t0014",
            "p006-t0015",
            "p006-t0016",
            "p006-t0017",
            "p006-t0018",
            "p006-t0019",
            "p006-t0020"
          ],
          "operations": [],
          "id": "q-p006-h01-b001",
          "markdown_line": 216
        }
      ],
      "markdown_line": 212
    },
    {
      "id": "q-p006-h02",
      "title": "Golang Map 如何扩容",
      "heading-id": "p006-h02",
      "source-page": 6,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p006-h02",
      "pages": [
        6
      ],
      "page-range": [
        6,
        6
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 双倍扩容：扩容采取了一种称为“渐进式”的方式，原有的 key 并不会一次性搬迁完毕，每次最多只会搬迁 2 个 bucket",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0026",
            "p006-t0027",
            "p006-t0028",
            "p006-t0029",
            "p006-t0030",
            "p006-t0031",
            "p006-t0032",
            "p006-t0033",
            "p006-t0035",
            "p006-t0036",
            "p006-t0037",
            "p006-t0038",
            "p006-t0039"
          ],
          "operations": [],
          "id": "q-p006-h02-b001",
          "markdown_line": 222
        },
        {
          "kind": "prose",
          "text": "2. 等量扩容：重新排列，极端情况下，重新排列也解决不了，map 存储就会蜕变成链表，性能大大降低，此时哈希因子 hash0 的设置，可以降低此类极端场景的发生",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0040",
            "p006-t0041",
            "p006-t0042",
            "p006-t0043",
            "p006-t0045",
            "p006-t0046",
            "p006-t0047",
            "p006-t0048",
            "p006-t0050"
          ],
          "operations": [],
          "id": "q-p006-h02-b002",
          "markdown_line": 224
        }
      ],
      "markdown_line": 218
    },
    {
      "id": "q-p006-h03",
      "title": "Golang Map 查找",
      "heading-id": "p006-h03",
      "source-page": 6,
      "section": "golang基础",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p006-h03",
      "pages": [
        6
      ],
      "page-range": [
        6,
        6
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 语言中 map 采用的是哈希查找表，由一个 key 通过哈希函数得到哈希值，64 位系统中就生成一个64bit 的哈希值，由这个哈希值将 key 对应存到不同的桶（bucket）中，当有多个哈希映射到相同的的桶中时，使用链表解决哈希冲突。细节：key 经过 hash 后共 64 位，根据 hmap 中 B 的值，计算它到底要落在哪个桶时，桶的数量为 2^B，如 B=5，那么用 64 位最后 5 位表示第几号桶，在用 hash 值的高 8 位确定在 bucket 中的存储位置，当前 bmap 中的 bucket 未找到，则查询对应的 overflow bucket，对应位置有数据则对比完整的哈希值，确定是否是要查找的数据。如果当前 map 处于数据搬移状态，则优先从 oldbuckets 查找。",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0132",
            "p006-t0133",
            "p006-t0134",
            "p006-t0135",
            "p006-t0136",
            "p006-t0137",
            "p006-t0138",
            "p006-t0139",
            "p006-t0142",
            "p006-t0144",
            "p006-t0146",
            "p006-t0148",
            "p006-t0141",
            "p006-t0143",
            "p006-t0147",
            "p006-t0149",
            "p006-t0151",
            "p006-t0153",
            "p006-t0155",
            "p006-t0157",
            "p006-t0159",
            "p006-t0161",
            "p006-t0163",
            "p006-t0154",
            "p006-t0156",
            "p006-t0158",
            "p006-t0160",
            "p006-t0162",
            "p006-t0164",
            "p006-t0166",
            "p006-t0167",
            "p006-t0168",
            "p006-t0169",
            "p006-t0170",
            "p006-t0171",
            "p006-t0172",
            "p006-t0173",
            "p006-t0174",
            "p006-t0175",
            "p006-t0176",
            "p006-t0177",
            "p006-t0179",
            "p006-t0181",
            "p006-t0183",
            "p006-t0185",
            "p006-t0187",
            "p006-t0178",
            "p006-t0180",
            "p006-t0182",
            "p006-t0184",
            "p006-t0188",
            "p006-t0190",
            "p006-t0192",
            "p006-t0194",
            "p006-t0189",
            "p006-t0193",
            "p006-t0195",
            "p006-t0196",
            "p006-t0197"
          ],
          "operations": [],
          "id": "q-p006-h03-b001",
          "markdown_line": 230
        }
      ],
      "markdown_line": 226
    },
    {
      "id": "q-p006-h04",
      "title": "介绍一下 Channel",
      "heading-id": "p006-h04",
      "source-page": 6,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p006-h04",
      "pages": [
        6
      ],
      "page-range": [
        6,
        6
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 语言中，不要通过共享内存来通信，而要通过通信来实现内存共享。Go 的 CSP(Communicating Sequential Process)并发模型，中文可以叫做通信顺序进程，是通过 goroutine 和 channel 来实现的。 channel 收发遵循先进先出 FIFO 的原则。分为有缓冲区和无缓冲区，channel 中包括 buffer、sendx 和recvx 收发的位置(ring buffer 记录实现)、sendq、 recv。当 channel 因为缓冲区不足而阻塞了队列，则使用双向链表存储",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0059",
            "p006-t0060",
            "p006-t0061",
            "p006-t0062",
            "p006-t0063",
            "p006-t0064",
            "p006-t0065",
            "p006-t0067",
            "p006-t0068",
            "p006-t0069",
            "p006-t0070",
            "p006-t0071",
            "p006-t0073",
            "p006-t0074",
            "p006-t0075",
            "p006-t0076",
            "p006-t0077",
            "p006-t0078",
            "p006-t0079",
            "p006-t0080",
            "p006-t0081",
            "p006-t0082",
            "p006-t0084",
            "p006-t0085",
            "p006-t0086",
            "p006-t0087",
            "p006-t0088",
            "p006-t0089",
            "p006-t0090",
            "p006-t0091",
            "p006-t0092",
            "p006-t0093",
            "p006-t0094",
            "p006-t0095",
            "p006-t0096"
          ],
          "operations": [],
          "id": "q-p006-h04-b001",
          "markdown_line": 60
        }
      ],
      "markdown_line": 56
    },
    {
      "id": "q-p006-h05",
      "title": "Channel 的 ring buffer 实现",
      "heading-id": "p006-h05",
      "source-page": 6,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p006-h05",
      "pages": [
        6,
        7
      ],
      "page-range": [
        6,
        7
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "channel 中使用了 ring buffer（环形缓冲区) 来缓存写入的数据。ring buffer 有很多好处，而且非常适合用来实现 FIFO 式的固定长度队列。在 channel 中，ring buffer 的实现如下：",
          "language": null,
          "pages": [
            6
          ],
          "span_ids": [
            "p006-t0104",
            "p006-t0105",
            "p006-t0106",
            "p006-t0107",
            "p006-t0108",
            "p006-t0109",
            "p006-t0110",
            "p006-t0111",
            "p006-t0112",
            "p006-t0113",
            "p006-t0114",
            "p006-t0116",
            "p006-t0117",
            "p006-t0118",
            "p006-t0119",
            "p006-t0120"
          ],
          "operations": [],
          "id": "q-p006-h05-b001",
          "markdown_line": 66
        },
        {
          "kind": "image",
          "image_id": "p006-image-01",
          "pages": [
            6
          ],
          "url": "/go-bank/pdf-p006-01.png",
          "span_ids": [],
          "id": "q-p006-h05-b002",
          "markdown_line": 68
        },
        {
          "kind": "prose",
          "text": "上图展示的是一个缓冲区为 8 的 channel buffer，recvx 指向最早被读取的数据，sendx 指向再次写入时插入的位置。",
          "language": null,
          "pages": [
            6,
            7
          ],
          "span_ids": [
            "p006-t0121",
            "p006-t0122",
            "p006-t0123",
            "p006-t0124",
            "p006-t0125",
            "p006-t0126",
            "p006-t0127",
            "p006-t0129",
            "p006-t0130",
            "p006-t0131",
            "p007-t0001"
          ],
          "operations": [],
          "id": "q-p006-h05-b003",
          "markdown_line": 70
        }
      ],
      "markdown_line": 62
    },
    {
      "id": "q-p007-h01",
      "title": "for循环select时，如果通道已经关闭会怎么样？如果select中的case只有一个，又会怎么样？",
      "heading-id": "p007-h01",
      "source-page": 7,
      "section": "golang基础",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p007-h01",
      "pages": [
        7
      ],
      "page-range": [
        7,
        7
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. for循环select时，如果其中一个case通道已经关闭，则每次都会执行到这个case。",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0012",
            "p007-t0013",
            "p007-t0014",
            "p007-t0015",
            "p007-t0016",
            "p007-t0017",
            "p007-t0018",
            "p007-t0019"
          ],
          "operations": [],
          "id": "q-p007-h01-b001",
          "markdown_line": 76
        },
        {
          "kind": "prose",
          "text": "2. 如果select里边只有一个case，而这个case被关闭了，则会出现死循环。",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0020",
            "p007-t0021",
            "p007-t0022",
            "p007-t0023",
            "p007-t0024",
            "p007-t0025",
            "p007-t0026",
            "p007-t0027"
          ],
          "operations": [],
          "id": "q-p007-h01-b002",
          "markdown_line": 78
        }
      ],
      "markdown_line": 72
    },
    {
      "id": "q-p007-h03",
      "title": "下面的代码是有问题的，请说明原因",
      "heading-id": "p007-h03",
      "source-page": 7,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p007-h03",
      "pages": [
        7
      ],
      "page-range": [
        7,
        7
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "type People struct {\n\tName string\n}\n\nfunc (p *People) String() string {\n\treturn fmt.Sprintf(\"print: %v\", p)\n}\nfunc main() {\n\tp := &People{}\n\tp.String()\n}",
          "language": "go",
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0088",
            "p007-t0089",
            "p007-t0090",
            "p007-t0091",
            "p007-t0092",
            "p007-t0093",
            "p007-t0094",
            "p007-t0095",
            "p007-t0096",
            "p007-t0097"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p007-h03-b001",
          "markdown_line": 34
        },
        {
          "kind": "prose",
          "text": "解析：在golang中 String() string 方法实际上是实现了 String 的接口的，该接口定义在 fmt/print.go中：",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0034",
            "p007-t0036",
            "p007-t0037",
            "p007-t0038",
            "p007-t0039",
            "p007-t0040",
            "p007-t0041",
            "p007-t0042",
            "p007-t0043",
            "p007-t0044"
          ],
          "operations": [],
          "id": "q-p007-h03-b002",
          "markdown_line": 48
        },
        {
          "kind": "code",
          "text": "type Stringer interface {\n\tString() string\n}",
          "language": "go",
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0098",
            "p007-t0099",
            "p007-t0100"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p007-h03-b003",
          "markdown_line": 50
        },
        {
          "kind": "prose",
          "text": "在使用 fmt 包中的打印方法时，如果类型实现了这个接口，会直接调用。而题目中打印 p 的时候会直接调用 p 实现的 String() 方法，然后就产生了循环调用",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0102",
            "p007-t0105",
            "p007-t0107",
            "p007-t0109",
            "p007-t0111",
            "p007-t0113",
            "p007-t0101",
            "p007-t0104",
            "p007-t0106",
            "p007-t0108",
            "p007-t0110",
            "p007-t0112",
            "p007-t0114",
            "p007-t0116",
            "p007-t0118",
            "p007-t0103",
            "p007-t0117",
            "p007-t0120",
            "p007-t0124",
            "p007-t0126",
            "p007-t0128",
            "p007-t0119",
            "p007-t0122",
            "p007-t0125",
            "p007-t0127",
            "p007-t0121",
            "p007-t0123"
          ],
          "operations": [],
          "id": "q-p007-h03-b004",
          "markdown_line": 56
        }
      ],
      "markdown_line": 30
    },
    {
      "id": "q-p007-h04",
      "title": "交替打印数字和字母",
      "heading-id": "p007-h04",
      "source-page": 7,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p007-h04",
      "pages": [
        7,
        8
      ],
      "page-range": [
        7,
        8
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0049",
            "p007-t0050"
          ],
          "operations": [],
          "id": "q-p007-h04-b001",
          "markdown_line": 62
        },
        {
          "kind": "prose",
          "text": "使用两个 goroutine 交替打印序列，一个 goroutine 打印数字，另外一个 goroutine 打印字母，最终效果如下：",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0052",
            "p007-t0053",
            "p007-t0054",
            "p007-t0055",
            "p007-t0056",
            "p007-t0058",
            "p007-t0060",
            "p007-t0061",
            "p007-t0062",
            "p007-t0064",
            "p007-t0065"
          ],
          "operations": [],
          "id": "q-p007-h04-b002",
          "markdown_line": 64
        },
        {
          "kind": "code",
          "text": "12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728",
          "language": "text",
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0130"
          ],
          "operations": [],
          "id": "q-p007-h04-b003",
          "markdown_line": 66
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0067",
            "p007-t0068"
          ],
          "operations": [],
          "id": "q-p007-h04-b004",
          "markdown_line": 70
        },
        {
          "kind": "prose",
          "text": "问题很简单，使用 channel 来控制打印的进度。使用两个 channel，来分别控制数字和字母的打印序列，数字打印完成后通过 channel 通知字母打印, 字母打印完成后通知数字打印，然后周而复始的工作。",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0069",
            "p007-t0070",
            "p007-t0071",
            "p007-t0072",
            "p007-t0073",
            "p007-t0075",
            "p007-t0076",
            "p007-t0078",
            "p007-t0079",
            "p007-t0080",
            "p007-t0081",
            "p007-t0082",
            "p007-t0084",
            "p007-t0085"
          ],
          "operations": [],
          "id": "q-p007-h04-b005",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "3. 源码参考",
          "language": null,
          "pages": [
            7
          ],
          "span_ids": [
            "p007-t0086",
            "p007-t0087"
          ],
          "operations": [],
          "id": "q-p007-h04-b006",
          "markdown_line": 74
        },
        {
          "kind": "code",
          "text": "letter, number := make(chan bool), make(chan bool)\nwait := sync.WaitGroup{}\ngo func() {\n\ti := 1\n\tfor {\n\t\tselect {\n\t\tcase <-number:\n\t\t\tfmt.Print(i)\n\t\t\ti++\n\t\t\tfmt.Print(i)\n\t\t\ti++\n\t\t\tletter <- true\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t\t}\n\t}\n}()\nwait.Add(1)\ngo func(wait *sync.WaitGroup) {\n\tstr := \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\n\ti := 0\n\tfor {\n\t\tselect {\n\t\tcase <-letter:\n\t\t\tif i >= strings.Count(str, \"\")-1 {\n\t\t\t\twait.Done()\n\t\t\t\treturn\n\t\t\t}\n\t\t\tfmt.Print(str[i : i+1])\n\t\t\ti++\n\t\t\tif i >= strings.Count(str, \"\") {\n\t\t\t\ti = 0\n\t\t\t}\n\t\t\tfmt.Print(str[i : i+1])\n\t\t\ti++\n\t\t\tnumber <- true\n\t\t\tbreak\n\t\tdefault:\n\t\t\tbreak\n\t\t}\n\t}\n}(&wait)\nnumber <- true\nwait.Wait()",
          "language": "go",
          "pages": [
            7,
            8
          ],
          "span_ids": [
            "p007-t0131",
            "p008-t0019",
            "p008-t0020",
            "p008-t0021",
            "p008-t0022",
            "p008-t0023",
            "p008-t0024",
            "p008-t0025",
            "p008-t0026",
            "p008-t0027",
            "p008-t0028",
            "p008-t0029",
            "p008-t0030",
            "p008-t0031",
            "p008-t0032",
            "p008-t0033",
            "p008-t0034",
            "p008-t0035",
            "p008-t0036",
            "p008-t0037",
            "p008-t0038",
            "p008-t0039",
            "p008-t0040",
            "p008-t0041",
            "p008-t0042",
            "p008-t0043",
            "p008-t0044",
            "p008-t0045",
            "p008-t0046",
            "p008-t0047",
            "p008-t0048",
            "p008-t0049",
            "p008-t0050",
            "p008-t0051",
            "p008-t0052",
            "p008-t0053",
            "p008-t0054",
            "p008-t0055",
            "p008-t0056",
            "p008-t0057",
            "p008-t0058",
            "p008-t0059",
            "p008-t0060",
            "p008-t0061",
            "p008-t0062"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p007-h04-b007",
          "markdown_line": 76
        },
        {
          "kind": "prose",
          "text": "4. 源码解析",
          "language": null,
          "pages": [
            8
          ],
          "span_ids": [
            "p008-t0001",
            "p008-t0002"
          ],
          "operations": [],
          "id": "q-p007-h04-b008",
          "markdown_line": 124
        },
        {
          "kind": "prose",
          "text": "这里用到了两个 channel 负责通知，letter负责通知打印字母的goroutine来打印字母， number用来通知打印数字的goroutine打印数字。 wait用来等待字母打印完成后退出循环。",
          "language": null,
          "pages": [
            8
          ],
          "span_ids": [
            "p008-t0004",
            "p008-t0005",
            "p008-t0006",
            "p008-t0007",
            "p008-t0008",
            "p008-t0009",
            "p008-t0010",
            "p008-t0011",
            "p008-t0012",
            "p008-t0013",
            "p008-t0014",
            "p008-t0015",
            "p008-t0016",
            "p008-t0017"
          ],
          "operations": [],
          "id": "q-p007-h04-b009",
          "markdown_line": 126
        }
      ],
      "markdown_line": 58
    },
    {
      "id": "q-p009-h01",
      "title": "下列代码是否会触发异常",
      "heading-id": "p009-h01",
      "source-page": 9,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p009-h01",
      "pages": [
        9
      ],
      "page-range": [
        9,
        9
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "func Test59(t *testing.T) {\n\truntime.GOMAXPROCS(1)\n\tintChan := make(chan int, 1)\n\tstringChan := make(chan string, 1)\n\tintChan <- 1\n\tstringChan <- \"hello\"\n\tselect {\n\tcase value := <-intChan:\n\t\tfmt.Println(value)\n\tcase value := <-stringChan:\n\t\tpanic(value)\n\t}\n}",
          "language": "go",
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0097",
            "p009-t0098",
            "p009-t0099",
            "p009-t0100",
            "p009-t0101",
            "p009-t0102",
            "p009-t0103",
            "p009-t0104",
            "p009-t0105",
            "p009-t0106",
            "p009-t0107",
            "p009-t0108",
            "p009-t0109"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p009-h01-b001",
          "markdown_line": 132
        },
        {
          "kind": "prose",
          "text": "不一定，当两个chan同时有值时，select 会随机选择一个可用通道做收发操作",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0003",
            "p009-t0004",
            "p009-t0005",
            "p009-t0006",
            "p009-t0007"
          ],
          "operations": [],
          "id": "q-p009-h01-b002",
          "markdown_line": 148
        }
      ],
      "markdown_line": 128
    },
    {
      "id": "q-p009-h02",
      "title": "如何在运行时检查变量类型？",
      "heading-id": "p009-h02",
      "source-page": 9,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p009-h02",
      "pages": [
        9
      ],
      "page-range": [
        9,
        9
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "类型开关(Type Switch)是在运行时检查变量类型的最佳方式。类型开关按类型而不是值来评估变量。每个 Switch 至少包含一个 case 用作条件语句，如果没有一个 case 为真，则执行 default。",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0012",
            "p009-t0013",
            "p009-t0014",
            "p009-t0016",
            "p009-t0017",
            "p009-t0018",
            "p009-t0019",
            "p009-t0020",
            "p009-t0021",
            "p009-t0023",
            "p009-t0024",
            "p009-t0025",
            "p009-t0026",
            "p009-t0027"
          ],
          "operations": [],
          "id": "q-p009-h02-b001",
          "markdown_line": 154
        },
        {
          "kind": "code",
          "text": "var value interface{}\nvalue = \"abcd\"\n\nswitch value.(type) {\ncase string:\n\tfmt.Println(\"string\")\ncase int:\n\tfmt.Println(\"int\")\ncase bool:\n\tfmt.Println(\"bool\")\ndefault:\n\tfmt.Println(\"default\")\n}",
          "language": "go",
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0110",
            "p009-t0111",
            "p009-t0112",
            "p009-t0113",
            "p009-t0114",
            "p009-t0115",
            "p009-t0116",
            "p009-t0117",
            "p009-t0118",
            "p009-t0119",
            "p009-t0120",
            "p009-t0121"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p009-h02-b002",
          "markdown_line": 156
        }
      ],
      "markdown_line": 150
    },
    {
      "id": "q-p009-h03",
      "title": "判断字符串中字符是否全都不同",
      "heading-id": "p009-h03",
      "source-page": 9,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p009-h03",
      "pages": [
        9,
        10
      ],
      "page-range": [
        9,
        10
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0031",
            "p009-t0032"
          ],
          "operations": [],
          "id": "q-p009-h03-b001",
          "markdown_line": 176
        },
        {
          "kind": "prose",
          "text": "请实现一个算法，确定一个字符串的所有字符【是否全都不同】。这里我们要求【不允许使用额外的存储结构】。给定一个string，请返回一个bool值,true代表所有字符全都不同，false代表存在相同的字符。保证字符串中的字符为【ASCII字符】。字符串的⻓度小于等于【3000】",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0034",
            "p009-t0036",
            "p009-t0037",
            "p009-t0039",
            "p009-t0040",
            "p009-t0041",
            "p009-t0042",
            "p009-t0043",
            "p009-t0044",
            "p009-t0045",
            "p009-t0047",
            "p009-t0048",
            "p009-t0049",
            "p009-t0050",
            "p009-t0052",
            "p009-t0053",
            "p009-t0054",
            "p009-t0056",
            "p009-t0057",
            "p009-t0058"
          ],
          "operations": [],
          "id": "q-p009-h03-b002",
          "markdown_line": 178
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0060",
            "p009-t0061"
          ],
          "operations": [],
          "id": "q-p009-h03-b003",
          "markdown_line": 180
        },
        {
          "kind": "prose",
          "text": "这里有几个重点，第一个是 ASCII字符， ASCII字符字符一共有256个，其中128个是常用字符，可以在键盘上输入。128之后的是键盘上无法找到的。然后是全部不同，也就是字符串中的字符没有重复的，再次，不准使用额外的储存结构，且字符串小于等于3000。如果允许其他额外储存结构，这个题目很好做。如果不允许的话，可以使用golang内置的方式实现。",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0062",
            "p009-t0063",
            "p009-t0064",
            "p009-t0066",
            "p009-t0067",
            "p009-t0068",
            "p009-t0070",
            "p009-t0071",
            "p009-t0072",
            "p009-t0073",
            "p009-t0074",
            "p009-t0076",
            "p009-t0077",
            "p009-t0078",
            "p009-t0079",
            "p009-t0081",
            "p009-t0082",
            "p009-t0084",
            "p009-t0085",
            "p009-t0086",
            "p009-t0088",
            "p009-t0089",
            "p009-t0090",
            "p009-t0091",
            "p009-t0093"
          ],
          "operations": [],
          "id": "q-p009-h03-b004",
          "markdown_line": 182
        },
        {
          "kind": "prose",
          "text": "3. 源码参考",
          "language": null,
          "pages": [
            9
          ],
          "span_ids": [
            "p009-t0095",
            "p009-t0096"
          ],
          "operations": [],
          "id": "q-p009-h03-b005",
          "markdown_line": 184
        },
        {
          "kind": "code",
          "text": "func isUniqueString(s string) bool {\n\tif strings.Count(s, \"\") > 3000 {\n\t\treturn false\n\t}\n\tfor _, v := range s {\n\t\tif v > 127 {\n\t\t\treturn false\n\t\t}\n\t\tif strings.Count(s, string(v)) > 1 {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}",
          "language": "go",
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0073",
            "p010-t0074",
            "p010-t0075",
            "p010-t0076",
            "p010-t0077",
            "p010-t0078",
            "p010-t0079",
            "p010-t0080",
            "p010-t0081",
            "p010-t0082",
            "p010-t0083",
            "p010-t0084",
            "p010-t0085",
            "p010-t0086"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p009-h03-b006",
          "markdown_line": 186
        },
        {
          "kind": "prose",
          "text": "4. 源码解析",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0001",
            "p010-t0002"
          ],
          "operations": [],
          "id": "q-p009-h03-b007",
          "markdown_line": 203
        },
        {
          "kind": "prose",
          "text": "以上两种方法都可以实现这个算法。第一个方法使用的是golang内置方法 strings.Count ,可以用来判断在一个字符串中包含的另外一个字符串的数量。第二个方法使用的是golang内置方法 strings.Index 和strings.LastIndex，用来判断指定字符串在另外一个字符串的索引未知，分别是第一次发现位置和最后发现位置",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0004",
            "p010-t0006",
            "p010-t0007",
            "p010-t0008",
            "p010-t0009",
            "p010-t0010",
            "p010-t0011",
            "p010-t0013",
            "p010-t0015",
            "p010-t0016",
            "p010-t0017",
            "p010-t0018",
            "p010-t0019",
            "p010-t0021",
            "p010-t0022",
            "p010-t0024",
            "p010-t0025"
          ],
          "operations": [],
          "id": "q-p009-h03-b008",
          "markdown_line": 205
        }
      ],
      "markdown_line": 172
    },
    {
      "id": "q-p010-h01",
      "title": "翻转字符串",
      "heading-id": "p010-h01",
      "source-page": 10,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p010-h01",
      "pages": [
        10
      ],
      "page-range": [
        10,
        10
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0029",
            "p010-t0030"
          ],
          "operations": [],
          "id": "q-p010-h01-b001",
          "markdown_line": 211
        },
        {
          "kind": "prose",
          "text": "请实现一个算法，在不使用【额外数据结构和储存空间】的情况下，翻转一个给定的字符串(可以使用单个过程变量)。给定一个string，请返回一个string，为翻转后的字符串。保证字符串的⻓度小于等于5000。",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0032",
            "p010-t0034",
            "p010-t0035",
            "p010-t0036",
            "p010-t0037",
            "p010-t0038",
            "p010-t0039",
            "p010-t0041",
            "p010-t0042",
            "p010-t0043",
            "p010-t0044",
            "p010-t0045",
            "p010-t0047",
            "p010-t0048"
          ],
          "operations": [],
          "id": "q-p010-h01-b002",
          "markdown_line": 213
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0050",
            "p010-t0051"
          ],
          "operations": [],
          "id": "q-p010-h01-b003",
          "markdown_line": 215
        },
        {
          "kind": "prose",
          "text": "翻转字符串其实是将一个字符串以中间字符为轴，前后翻转，即将str[len]赋值给str[0], 将str[0] 赋值str[len]。",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0053",
            "p010-t0054",
            "p010-t0055",
            "p010-t0056",
            "p010-t0057",
            "p010-t0058",
            "p010-t0059",
            "p010-t0061",
            "p010-t0062"
          ],
          "operations": [],
          "id": "q-p010-h01-b004",
          "markdown_line": 217
        },
        {
          "kind": "prose",
          "text": "3. 源码参考：",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0064",
            "p010-t0065"
          ],
          "operations": [],
          "id": "q-p010-h01-b005",
          "markdown_line": 219
        },
        {
          "kind": "code",
          "text": "func reverString(s string) (string, bool) {\n\tstr := []rune(s)\n\tl := len(str)\n\tif l > 5000 {\n\t\treturn s, false\n\t}\n\tfor i := 0; i < l/2; i++ {\n\t\tstr[i], str[l-1-i] = str[l-1-i], str[i]\n\t}\n\treturn string(str), true\n}",
          "language": "go",
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0087",
            "p010-t0088",
            "p010-t0089",
            "p010-t0090",
            "p010-t0091",
            "p010-t0092",
            "p010-t0093",
            "p010-t0094",
            "p010-t0095",
            "p010-t0096",
            "p010-t0097"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p010-h01-b006",
          "markdown_line": 221
        },
        {
          "kind": "prose",
          "text": "4. 源码解析：",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0066",
            "p010-t0067"
          ],
          "operations": [],
          "id": "q-p010-h01-b007",
          "markdown_line": 235
        },
        {
          "kind": "prose",
          "text": "以字符串⻓度的1/2为轴，前后赋值",
          "language": null,
          "pages": [
            10
          ],
          "span_ids": [
            "p010-t0069",
            "p010-t0070",
            "p010-t0071"
          ],
          "operations": [],
          "id": "q-p010-h01-b008",
          "markdown_line": 237
        }
      ],
      "markdown_line": 207
    },
    {
      "id": "q-p011-h01",
      "title": "翻转含有中文、数字、英文字母的字符串",
      "heading-id": "p011-h01",
      "source-page": 11,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p011-h01",
      "pages": [
        11
      ],
      "page-range": [
        11,
        11
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 解题思路",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0003",
            "p011-t0004"
          ],
          "operations": [],
          "id": "q-p011-h01-b001",
          "markdown_line": 243
        },
        {
          "kind": "prose",
          "text": "解题思路翻转字符串其实是将一个字符串以中间字符为轴，前后翻转",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0077",
            "p011-t0074",
            "p011-t0076",
            "p011-t0078"
          ],
          "operations": [],
          "id": "q-p011-h01-b002",
          "markdown_line": 245
        },
        {
          "kind": "prose",
          "text": "2. 源码参考",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0005",
            "p011-t0006"
          ],
          "operations": [],
          "id": "q-p011-h01-b003",
          "markdown_line": 247
        },
        {
          "kind": "code",
          "text": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\tsrc := \"nick 今天天气很好啊！1234\"\n\tdst := reverse([]rune(src))\n\tfmt.Printf(\"%v\\n\", string(dst))\n}\nfunc reverse(s []rune) []rune {\n\tlength := len(s)\n\tfor i := 0; i < length/2; i++ {\n\t\ts[i], s[length-1-i] = s[length-1-i], s[i]\n\t}\n\treturn s\n}",
          "language": "go",
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0079",
            "p011-t0080",
            "p011-t0081",
            "p011-t0083",
            "p011-t0082",
            "p011-t0084",
            "p011-t0085",
            "p011-t0086",
            "p011-t0087",
            "p011-t0088",
            "p011-t0089",
            "p011-t0090",
            "p011-t0091",
            "p011-t0092",
            "p011-t0093",
            "p011-t0094"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p011-h01-b004",
          "markdown_line": 249
        },
        {
          "kind": "prose",
          "text": "3. 源码解析",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0007",
            "p011-t0008"
          ],
          "operations": [],
          "id": "q-p011-h01-b005",
          "markdown_line": 268
        },
        {
          "kind": "prose",
          "text": "rune关键字，从golang源码中看出，它是int32的别名（-2^31 ~ 2^31-1），比起byte（-128～127），可表示更多的字符。由于rune可表示的范围更大，所以能处理一切字符，当然也包括中文字符。在平时计算中文字符，可用rune。因此将字符串转为rune的切片",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0009",
            "p011-t0010",
            "p011-t0011",
            "p011-t0012",
            "p011-t0013",
            "p011-t0014",
            "p011-t0015",
            "p011-t0016",
            "p011-t0017",
            "p011-t0018",
            "p011-t0019",
            "p011-t0020",
            "p011-t0021",
            "p011-t0022",
            "p011-t0023",
            "p011-t0024",
            "p011-t0025",
            "p011-t0026",
            "p011-t0027",
            "p011-t0028",
            "p011-t0029",
            "p011-t0030",
            "p011-t0031"
          ],
          "operations": [],
          "id": "q-p011-h01-b006",
          "markdown_line": 270
        }
      ],
      "markdown_line": 239
    },
    {
      "id": "q-p011-h02",
      "title": "判断两个给定的字符串排序后是否一致",
      "heading-id": "p011-h02",
      "source-page": 11,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p011-h02",
      "pages": [
        11,
        12
      ],
      "page-range": [
        11,
        12
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0035",
            "p011-t0036"
          ],
          "operations": [],
          "id": "q-p011-h02-b001",
          "markdown_line": 276
        },
        {
          "kind": "prose",
          "text": "给定两个字符串，请编写程序，确定其中一个字符串的字符重新排列后，能否变成另一个字符串。这里规定【大小写为不同字符】，且考虑字符串重点空格。给定一个string s1和一个string s2，请返回一个bool，代表两串是否重新排列后可相同。保证两串的⻓度都小于等于5000。",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0038",
            "p011-t0040",
            "p011-t0042",
            "p011-t0043",
            "p011-t0044",
            "p011-t0045",
            "p011-t0046",
            "p011-t0047",
            "p011-t0048",
            "p011-t0049",
            "p011-t0051",
            "p011-t0053",
            "p011-t0054",
            "p011-t0055"
          ],
          "operations": [],
          "id": "q-p011-h02-b002",
          "markdown_line": 278
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0057",
            "p011-t0058"
          ],
          "operations": [],
          "id": "q-p011-h02-b003",
          "markdown_line": 280
        },
        {
          "kind": "prose",
          "text": "首先要保证字符串⻓度小于5000。之后只需要一次循环遍历s1中的字符在s2是否都存在即可。",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0061",
            "p011-t0062",
            "p011-t0063",
            "p011-t0064",
            "p011-t0065",
            "p011-t0066",
            "p011-t0067",
            "p011-t0069"
          ],
          "operations": [],
          "id": "q-p011-h02-b004",
          "markdown_line": 282
        },
        {
          "kind": "prose",
          "text": "3. 源码参考",
          "language": null,
          "pages": [
            11
          ],
          "span_ids": [
            "p011-t0071",
            "p011-t0072"
          ],
          "operations": [],
          "id": "q-p011-h02-b005",
          "markdown_line": 284
        },
        {
          "kind": "code",
          "text": "func isRegroup(s1, s2 string) bool {\n\tsl1 := len([]rune(s1))\n\tsl2 := len([]rune(s2))\n\tif sl1 > 5000 || sl2 > 5000 || sl1 != sl2 {\n\t\treturn false\n\t}\n\tfor _, v := range s1 {\n\t\tif strings.Count(s1, string(v)) != strings.Count(s2, string(v)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}",
          "language": "go",
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0046",
            "p012-t0047",
            "p012-t0048",
            "p012-t0049",
            "p012-t0050",
            "p012-t0051",
            "p012-t0052",
            "p012-t0053",
            "p012-t0054",
            "p012-t0055",
            "p012-t0056",
            "p012-t0057",
            "p012-t0058"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p011-h02-b006",
          "markdown_line": 286
        },
        {
          "kind": "prose",
          "text": "4. 源码解析",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0001",
            "p012-t0002"
          ],
          "operations": [],
          "id": "q-p011-h02-b007",
          "markdown_line": 302
        },
        {
          "kind": "prose",
          "text": "使用golang内置方法 strings.Count 来判断字符是否一致",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0004",
            "p012-t0005",
            "p012-t0006",
            "p012-t0007",
            "p012-t0008"
          ],
          "operations": [],
          "id": "q-p011-h02-b008",
          "markdown_line": 304
        }
      ],
      "markdown_line": 272
    },
    {
      "id": "q-p012-h01",
      "title": "字符串替换问题",
      "heading-id": "p012-h01",
      "source-page": 12,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p012-h01",
      "pages": [
        12
      ],
      "page-range": [
        12,
        12
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0013",
            "p012-t0014"
          ],
          "operations": [],
          "id": "q-p012-h01-b001",
          "markdown_line": 310
        },
        {
          "kind": "prose",
          "text": "请编写一个方法，将字符串中的空格全部替换为“%20”。假定该字符串有足够的空间存放新增的字符，并且知道字符串的真实⻓度(小于等于1000)，同时保证字符串由【大小写的英文字母组成】。给定一个string为原始的串，返回替换后的string。",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0016",
            "p012-t0017",
            "p012-t0018",
            "p012-t0020",
            "p012-t0022",
            "p012-t0023",
            "p012-t0024",
            "p012-t0025",
            "p012-t0026",
            "p012-t0027",
            "p012-t0029",
            "p012-t0031",
            "p012-t0032",
            "p012-t0033",
            "p012-t0034",
            "p012-t0035"
          ],
          "operations": [],
          "id": "q-p012-h01-b002",
          "markdown_line": 312
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0037",
            "p012-t0038"
          ],
          "operations": [],
          "id": "q-p012-h01-b003",
          "markdown_line": 314
        },
        {
          "kind": "prose",
          "text": "两个问题，第一个是只能是英文字母，第二个是替换空格。",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0040"
          ],
          "operations": [],
          "id": "q-p012-h01-b004",
          "markdown_line": 316
        },
        {
          "kind": "prose",
          "text": "3. 源码参考",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0042",
            "p012-t0043"
          ],
          "operations": [],
          "id": "q-p012-h01-b005",
          "markdown_line": 318
        },
        {
          "kind": "code",
          "text": "func replaceBlank(s string) (string, bool) {\n\tif len([]rune(s)) > 1000 {\n\t\treturn s, false\n\t}\n\tfor _, v := range s {\n\t\tif string(v) != \" \" && unicode.IsLetter(v) == false {\n\t\t\treturn s, false\n\t\t}\n\t}\n\treturn strings.Replace(s, \" \", \"%20\", -1), true\n}",
          "language": "go",
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0059",
            "p012-t0060",
            "p012-t0061",
            "p012-t0062",
            "p012-t0063",
            "p012-t0064",
            "p012-t0065",
            "p012-t0066",
            "p012-t0067",
            "p012-t0068",
            "p012-t0069"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p012-h01-b006",
          "markdown_line": 320
        },
        {
          "kind": "prose",
          "text": "4. 源码解析",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0044",
            "p012-t0045"
          ],
          "operations": [],
          "id": "q-p012-h01-b007",
          "markdown_line": 334
        },
        {
          "kind": "prose",
          "text": "使用了golang内置方法 unicode.IsLetter 判断字符是否是字母，之后使用 strings.Replace 来替换空格",
          "language": null,
          "pages": [
            12
          ],
          "span_ids": [
            "p012-t0071",
            "p012-t0075",
            "p012-t0079",
            "p012-t0081",
            "p012-t0070",
            "p012-t0072",
            "p012-t0074",
            "p012-t0076",
            "p012-t0078",
            "p012-t0080",
            "p012-t0083",
            "p012-t0073",
            "p012-t0077",
            "p012-t0082",
            "p012-t0084"
          ],
          "operations": [],
          "id": "q-p012-h01-b008",
          "markdown_line": 336
        }
      ],
      "markdown_line": 306
    },
    {
      "id": "q-p013-h01",
      "title": "下列代码有什么问题",
      "heading-id": "p013-h01",
      "source-page": 13,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p013-h01",
      "pages": [
        13
      ],
      "page-range": [
        13,
        13
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "const i = 100\n\nvar j = 123\n\nfunc main() {\n\tfmt.Println(&j, j)\n\tfmt.Println(&i, i)\n}",
          "language": "go",
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0070",
            "p013-t0071",
            "p013-t0072",
            "p013-t0073",
            "p013-t0074",
            "p013-t0075"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p013-h01-b001",
          "markdown_line": 342
        },
        {
          "kind": "prose",
          "text": "go语言中，常量无法寻址，是不能进行取地址操作的",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0004",
            "p013-t0005"
          ],
          "operations": [],
          "id": "q-p013-h01-b002",
          "markdown_line": 353
        }
      ],
      "markdown_line": 338
    },
    {
      "id": "q-p013-h02",
      "title": "下列代码输出什么",
      "heading-id": "p013-h02",
      "source-page": 13,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p013-h02",
      "pages": [
        13
      ],
      "page-range": [
        13,
        13
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "func Test62(t *testing.T) {\n\tx := []string{\"a\", \"b\", \"c\"}\n\tfor v := range x {\n\t\tfmt.Print(v)\n\t}\n}",
          "language": "go",
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0076",
            "p013-t0077",
            "p013-t0078",
            "p013-t0079",
            "p013-t0080",
            "p013-t0081"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p013-h02-b001",
          "markdown_line": 359
        },
        {
          "kind": "prose",
          "text": "对于切片，range一个返回值时，返回的是切片的下标即索引。返回两个值时，第一个是下标，第二个是值。对于集合，range一个返回值时，返回的是集合的key值。返回两个值时，第一个是key，第二个是值因此，以上代码输出 012",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0009",
            "p013-t0010",
            "p013-t0011",
            "p013-t0012",
            "p013-t0013",
            "p013-t0014",
            "p013-t0015",
            "p013-t0016",
            "p013-t0017",
            "p013-t0018",
            "p013-t0019",
            "p013-t0020",
            "p013-t0021"
          ],
          "operations": [],
          "id": "q-p013-h02-b002",
          "markdown_line": 368
        }
      ],
      "markdown_line": 355
    },
    {
      "id": "q-p013-h03",
      "title": "下列代码输出什么",
      "heading-id": "p013-h03",
      "source-page": 13,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p013-h03",
      "pages": [
        13
      ],
      "page-range": [
        13,
        13
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "func main() {\n\tvar x *int = nil\n\tFoo(x)\n}\nfunc Foo(x interface{}) {\n\tif x == nil {\n\t\tfmt.Println(\"empty interface\")\n\t\treturn\n\t}\n\tfmt.Println(x)\n\tfmt.Println(\"non-empty interface\")\n}",
          "language": "go",
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0082",
            "p013-t0083",
            "p013-t0084",
            "p013-t0085",
            "p013-t0086",
            "p013-t0087",
            "p013-t0088",
            "p013-t0089",
            "p013-t0090",
            "p013-t0091",
            "p013-t0092",
            "p013-t0093"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p013-h03-b001",
          "markdown_line": 374
        }
      ],
      "markdown_line": 370
    },
    {
      "id": "q-p013-h04",
      "title": "机器人坐标问题",
      "heading-id": "p013-h04",
      "source-page": 13,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p013-h04",
      "pages": [
        13,
        14,
        15
      ],
      "page-range": [
        13,
        15
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 问题描述",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0027",
            "p013-t0028"
          ],
          "operations": [],
          "id": "q-p013-h04-b001",
          "markdown_line": 393
        },
        {
          "kind": "prose",
          "text": "有一个机器人，给一串指令，L左转 R右转，F前进一步，B后退一步，问最后机器人的坐标，最开始，机器人位于 0 0，方向为正Y。可以输入重复指令n：比如 R2(LF) 这个等于指令 RLFLF。问最后机器人的坐标是多少？",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0031",
            "p013-t0032",
            "p013-t0033",
            "p013-t0034",
            "p013-t0035",
            "p013-t0036",
            "p013-t0037",
            "p013-t0038",
            "p013-t0039",
            "p013-t0041",
            "p013-t0042",
            "p013-t0043",
            "p013-t0044",
            "p013-t0045",
            "p013-t0046",
            "p013-t0048",
            "p013-t0049",
            "p013-t0050",
            "p013-t0052",
            "p013-t0053",
            "p013-t0054",
            "p013-t0056",
            "p013-t0057",
            "p013-t0058",
            "p013-t0060",
            "p013-t0061"
          ],
          "operations": [],
          "id": "q-p013-h04-b002",
          "markdown_line": 395
        },
        {
          "kind": "prose",
          "text": "2. 解题思路",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0063",
            "p013-t0064"
          ],
          "operations": [],
          "id": "q-p013-h04-b003",
          "markdown_line": 397
        },
        {
          "kind": "prose",
          "text": "这里的一个难点是解析重复指令。主要指令解析成功，计算坐标就简单了",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0066"
          ],
          "operations": [],
          "id": "q-p013-h04-b004",
          "markdown_line": 399
        },
        {
          "kind": "prose",
          "text": "3. 源码参考",
          "language": null,
          "pages": [
            13
          ],
          "span_ids": [
            "p013-t0068",
            "p013-t0069"
          ],
          "operations": [],
          "id": "q-p013-h04-b005",
          "markdown_line": 401
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"unicode\"\n)\n\nconst (\n\tLeft = iota\n\tTop\n\tRight\n\tBottom\n)\n\nfunc main() {\n\tprintln(move(\"R2(LF)\", 0, 0, Top))\n}\nfunc move(cmd string, x0 int, y0 int, z0 int) (x, y, z int) {\n\tx, y, z = x0, y0, z0\n\trepeat := 0\n\trepeatCmd := \"\"\n\tfor _, s := range cmd {\n\t\tswitch {\n\t\tcase unicode.IsNumber(s):\n\t\t\trepeat = repeat*10 + (int(s) - '0')\n\t\tcase s == ')':\n\t\t\tfor i := 0; i < repeat; i++ {\n\t\t\t\tx, y, z = move(repeatCmd, x, y, z)\n\t\t\t}\n\t\t\trepeat = 0\n\t\t\trepeatCmd = \"\"\n\t\tcase repeat > 0 && s != '(' && s != ')':\n\t\t\trepeatCmd = repeatCmd + string(s)\n\t\tcase s == 'L':\n\t\t\tz = (z + 1) % 4\n\t\tcase s == 'R':\n\t\t\tz = (z - 1 + 4) % 4\n\t\tcase s == 'F':\n\t\t\tswitch {\n\t\t\tcase z == Left || z == Right:\n\t\t\t\tx = x - z + 1\n\t\t\tcase z == Top || z == Bottom:\n\t\t\t\ty = y - z + 2\n\t\t\t}\n\t\tcase s == 'B':\n\t\t\tswitch {\n\t\t\tcase z == Left || z == Right:\n\t\t\t\tx = x + z - 1\n\t\t\tcase z == Top || z == Bottom:\n\t\t\t\ty = y + z - 2\n\t\t\t}\n\t\t}\n\t}\n\treturn\n}",
          "language": "go",
          "pages": [
            14
          ],
          "span_ids": [
            "p014-t0001",
            "p014-t0002",
            "p014-t0003",
            "p014-t0004",
            "p014-t0005",
            "p014-t0006",
            "p014-t0007",
            "p014-t0008",
            "p014-t0009",
            "p014-t0010",
            "p014-t0011",
            "p014-t0012",
            "p014-t0013",
            "p014-t0014",
            "p014-t0015",
            "p014-t0016",
            "p014-t0017",
            "p014-t0018",
            "p014-t0019",
            "p014-t0020",
            "p014-t0021",
            "p014-t0022",
            "p014-t0023",
            "p014-t0024",
            "p014-t0025",
            "p014-t0026",
            "p014-t0027",
            "p014-t0028",
            "p014-t0029",
            "p014-t0030",
            "p014-t0031",
            "p014-t0032",
            "p014-t0033",
            "p014-t0034",
            "p014-t0035",
            "p014-t0036",
            "p014-t0037",
            "p014-t0038",
            "p014-t0039",
            "p014-t0040",
            "p014-t0041",
            "p014-t0042",
            "p014-t0043",
            "p014-t0044",
            "p014-t0045",
            "p014-t0046",
            "p014-t0047",
            "p014-t0048",
            "p014-t0049",
            "p014-t0050",
            "p014-t0051"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p013-h04-b006",
          "markdown_line": 403
        },
        {
          "kind": "prose",
          "text": "4. 源码解析",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0001",
            "p015-t0002"
          ],
          "operations": [],
          "id": "q-p013-h04-b007",
          "markdown_line": 460
        },
        {
          "kind": "prose",
          "text": "这里使用三个值表示机器人当前的状况，分别是：x表示x坐标，y表示y坐标，z表示当前方向。 L、R 命令会改变值z，F、B命令会改变值x、y。值x、y的改变还受当前的z值影响。如果是重复指令，那么将重复次数和重复的指令存起来递归调用即可",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0004",
            "p015-t0005",
            "p015-t0006",
            "p015-t0007",
            "p015-t0008",
            "p015-t0009",
            "p015-t0010",
            "p015-t0011",
            "p015-t0012",
            "p015-t0013",
            "p015-t0014",
            "p015-t0016",
            "p015-t0017",
            "p015-t0018",
            "p015-t0019",
            "p015-t0020",
            "p015-t0021",
            "p015-t0022",
            "p015-t0023",
            "p015-t0024",
            "p015-t0025",
            "p015-t0026",
            "p015-t0027",
            "p015-t0028",
            "p015-t0029",
            "p015-t0030",
            "p015-t0031",
            "p015-t0033",
            "p015-t0034",
            "p015-t0035",
            "p015-t0036",
            "p015-t0037",
            "p015-t0038",
            "p015-t0039",
            "p015-t0041",
            "p015-t0043",
            "p015-t0044"
          ],
          "operations": [],
          "id": "q-p013-h04-b008",
          "markdown_line": 462
        }
      ],
      "markdown_line": 389
    },
    {
      "id": "q-p015-h01",
      "title": "nil切片和空切片的区别",
      "heading-id": "p015-h01",
      "source-page": 15,
      "section": "代码分析",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p015-h01",
      "pages": [
        15
      ],
      "page-range": [
        15,
        15
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. nil切片表示该切片尚未初始化，仅有一个类型声明，并不存在示例。引用数组指针地址为0。",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0049",
            "p015-t0050",
            "p015-t0051",
            "p015-t0052"
          ],
          "operations": [],
          "id": "q-p015-h01-b001",
          "markdown_line": 236
        },
        {
          "kind": "prose",
          "text": "2. 空切片表示该切片以及被初始化，有一个切实存在的对象，只是该切片的元素个数为0。引用的数组指针地址也是一个存在的内存地址",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0053",
            "p015-t0054",
            "p015-t0055",
            "p015-t0056",
            "p015-t0057"
          ],
          "operations": [],
          "id": "q-p015-h01-b002",
          "markdown_line": 238
        },
        {
          "kind": "prose",
          "text": "例如：",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0058"
          ],
          "operations": [],
          "id": "q-p015-h01-b003",
          "markdown_line": 240
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nfunc main() {\n\n\tvar s1 []int\n\ts2 := make([]int, 0)\n\ts4 := make([]int, 0)\n\n\tfmt.Printf(\"s1 pointer:%+v, s2 pointer:%+v, s4 pointer:%+v, \\n\", *(*reflect.SliceHeader)(unsafe.Pointer(&s1)), *(*reflect.SliceHeader)(unsafe.Pointer(&s2)), *(*reflect.SliceHeader)(unsafe.Pointer(&s4)))\n\tfmt.Printf(\"%v\\n\", (*(*reflect.SliceHeader)(unsafe.Pointer(&s1))).Data == (*(*reflect.SliceHeader)(unsafe.Pointer(&s2))).Data)\n\tfmt.Printf(\"%v\\n\", (*(*reflect.SliceHeader)(unsafe.Pointer(&s2))).Data == (*(*reflect.SliceHeader)(unsafe.Pointer(&s4))).Data)\n}",
          "language": "go",
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0066",
            "p015-t0067",
            "p015-t0068",
            "p015-t0069",
            "p015-t0070",
            "p015-t0071",
            "p015-t0072",
            "p015-t0073",
            "p015-t0074",
            "p015-t0075",
            "p015-t0076",
            "p015-t0077",
            "p015-t0078",
            "p015-t0079",
            "p015-t0080",
            "p015-t0081",
            "p015-t0082",
            "p015-t0083"
          ],
          "operations": [
            {
              "kind": "join-pdf-code-wrap",
              "page": 15,
              "top": 667.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 15,
              "top": 689.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 15,
              "top": 730.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 15,
              "top": 773.0
            },
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p015-h01-b004",
          "markdown_line": 242
        },
        {
          "kind": "prose",
          "text": "切片数据结构",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0059"
          ],
          "operations": [],
          "id": "q-p015-h01-b005",
          "markdown_line": 263
        },
        {
          "kind": "code",
          "text": "type SliceHeader struct {\n\tData uintptr //引用数组指针地址\n\tLen  int     // 切片的目前使用长度\n\tCap  int     // 切片的容量\n}",
          "language": "go",
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0084",
            "p015-t0086",
            "p015-t0085",
            "p015-t0088",
            "p015-t0087",
            "p015-t0090",
            "p015-t0089",
            "p015-t0091"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p015-h01-b006",
          "markdown_line": 265
        }
      ],
      "markdown_line": 232
    },
    {
      "id": "q-p015-h02",
      "title": "字符串转成byte切片，无内存拷贝的实现",
      "heading-id": "p015-h02",
      "source-page": 15,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p015-h02",
      "pages": [
        15,
        16
      ],
      "page-range": [
        15,
        16
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 源码参考",
          "language": null,
          "pages": [
            15
          ],
          "span_ids": [
            "p015-t0064",
            "p015-t0065"
          ],
          "operations": [],
          "id": "q-p015-h02-b001",
          "markdown_line": 468
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n\t\"unsafe\"\n)\n\nfunc main() {\n\ta := \"abc\"\n\tssh := *(*reflect.StringHeader)(unsafe.Pointer(&a))\n\tfmt.Printf(\"%+v\\n\", ssh)\n\tb := *(*[]byte)(unsafe.Pointer(&ssh))\n\tfmt.Printf(\"%+v\\n\", b)\n\tfmt.Printf(\"%+v\\n\", *(*reflect.SliceHeader)(unsafe.Pointer(&b)))\n}",
          "language": "go",
          "pages": [
            15,
            16
          ],
          "span_ids": [
            "p015-t0092",
            "p015-t0093",
            "p015-t0094",
            "p015-t0095",
            "p016-t0031",
            "p016-t0032",
            "p016-t0033",
            "p016-t0034",
            "p016-t0035",
            "p016-t0036",
            "p016-t0037",
            "p016-t0038",
            "p016-t0039",
            "p016-t0040"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p015-h02-b002",
          "markdown_line": 470
        },
        {
          "kind": "prose",
          "text": "2. 源码分析",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0001",
            "p016-t0002"
          ],
          "operations": [],
          "id": "q-p015-h02-b003",
          "markdown_line": 489
        },
        {
          "kind": "prose",
          "text": "StringHeader 是字符串在go的底层结构",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0041",
            "p016-t0042",
            "p016-t0043",
            "p016-t0044"
          ],
          "operations": [],
          "id": "q-p015-h02-b004",
          "markdown_line": 491
        },
        {
          "kind": "code",
          "text": "type StringHeader struct {\n\tData uintptr\n\tLen  int\n}",
          "language": "go",
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0045",
            "p016-t0046",
            "p016-t0047",
            "p016-t0048"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p015-h02-b005",
          "markdown_line": 493
        },
        {
          "kind": "prose",
          "text": "SliceHeader 是切片在go的底层结构",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0050",
            "p016-t0052",
            "p016-t0049",
            "p016-t0051"
          ],
          "operations": [],
          "id": "q-p015-h02-b006",
          "markdown_line": 500
        },
        {
          "kind": "code",
          "text": "type SliceHeader struct {\n\tData uintptr\n\tLen  int\n\tCap  int\n}",
          "language": "go",
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0053",
            "p016-t0054",
            "p016-t0055",
            "p016-t0056",
            "p016-t0057"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p015-h02-b007",
          "markdown_line": 502
        },
        {
          "kind": "prose",
          "text": "在底层转换二者，只需要把 StringHeader 的地址强转成 SliceHeader 就行。",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0058",
            "p016-t0060",
            "p016-t0062",
            "p016-t0059",
            "p016-t0061"
          ],
          "operations": [],
          "id": "q-p015-h02-b008",
          "markdown_line": 510
        },
        {
          "kind": "prose",
          "text": "unsafe.Pointer(&a)方法可以得到变量a的地址(reflect.StringHeader)(unsafe.Pointer(&a)) 可以把字符串a转成底层结构的形式([]byte)(unsafe.Pointer(&ssh)) 可以把ssh底层结构体转成byte的切片的指针再通过 *转为指针指向的实际内容",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0003",
            "p016-t0004",
            "p016-t0005",
            "p016-t0006",
            "p016-t0009",
            "p016-t0011",
            "p016-t0007",
            "p016-t0008",
            "p016-t0010",
            "p016-t0012",
            "p016-t0013",
            "p016-t0014",
            "p016-t0015",
            "p016-t0016",
            "p016-t0017",
            "p016-t0018",
            "p016-t0019",
            "p016-t0020",
            "p016-t0021"
          ],
          "operations": [],
          "id": "q-p015-h02-b009",
          "markdown_line": 512
        }
      ],
      "markdown_line": 464
    },
    {
      "id": "q-p016-h01",
      "title": "如何获取结构体tag信息",
      "heading-id": "p016-h01",
      "source-page": 16,
      "section": "代码分析",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p016-h01",
      "pages": [
        16,
        17
      ],
      "page-range": [
        16,
        17
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "tag 信息可以通过反射（reflect包）获取。示例代码：",
          "language": null,
          "pages": [
            16
          ],
          "span_ids": [
            "p016-t0026",
            "p016-t0027",
            "p016-t0028",
            "p016-t0029",
            "p016-t0030"
          ],
          "operations": [],
          "id": "q-p016-h01-b001",
          "markdown_line": 277
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"fmt\"\n\t\"reflect\"\n)\n\ntype J struct {\n\ta string //小写无tag\n\tb string `json:\"B\"` //小写+tag\n\tC string //大写无tag\n\tD string `json:\"DD\" otherTag:\"good\"` //大写+tag\n}\n\nfunc printTag(stru interface{}) {\n\tt := reflect.TypeOf(stru).Elem()\n\tfor i := 0; i < t.NumField(); i++ {\n\t\tfmt.Printf(\"结构体内第%v个字段 %v 对应的json tag是 %v , 还有otherTag？ = %v\\n\", i+1, t.Field(i).Name, t.Field(i).Tag.Get(\"json\"),\n\t\t\tt.Field(i).Tag.Get(\"otherTag\"))\n\t}\n}\n\nfunc main() {\n\tj := J{\n\t\ta: \"1\",\n\t\tb: \"2\",\n\t\tC: \"3\",\n\t\tD: \"4\",\n\t}\n\tprintTag(&j)\n}",
          "language": "go",
          "pages": [
            16,
            17
          ],
          "span_ids": [
            "p016-t0063",
            "p016-t0064",
            "p016-t0065",
            "p016-t0066",
            "p016-t0067",
            "p016-t0068",
            "p016-t0070",
            "p016-t0069",
            "p016-t0071",
            "p017-t0046",
            "p017-t0045",
            "p017-t0047",
            "p017-t0048",
            "p017-t0049",
            "p017-t0050",
            "p017-t0052",
            "p017-t0051",
            "p017-t0053",
            "p017-t0054",
            "p017-t0055",
            "p017-t0056",
            "p017-t0057",
            "p017-t0059",
            "p017-t0061",
            "p017-t0063",
            "p017-t0065",
            "p017-t0067",
            "p017-t0069",
            "p017-t0058",
            "p017-t0060",
            "p017-t0062",
            "p017-t0064",
            "p017-t0066",
            "p017-t0068",
            "p017-t0070",
            "p017-t0071",
            "p017-t0072",
            "p017-t0073",
            "p017-t0074",
            "p017-t0075",
            "p017-t0076",
            "p017-t0077",
            "p017-t0078",
            "p017-t0079",
            "p017-t0080",
            "p017-t0081",
            "p017-t0082",
            "p017-t0083"
          ],
          "operations": [
            {
              "kind": "join-pdf-code-wrap",
              "page": 17,
              "top": 234.0
            },
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p016-h01-b002",
          "markdown_line": 279
        }
      ],
      "markdown_line": 273
    },
    {
      "id": "q-p017-h01",
      "title": "下列代码会造成死循环吗？",
      "heading-id": "p017-h01",
      "source-page": 17,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p017-h01",
      "pages": [
        17
      ],
      "page-range": [
        17,
        17
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\ts := []int{1, 2, 3, 4, 5}\n\tfor _, v := range s {\n\t\ts = append(s, v)\n\t\tfmt.Printf(\"len(s)=%v\\n\", len(s))\n\t}\n}",
          "language": "go",
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0084",
            "p017-t0085",
            "p017-t0086",
            "p017-t0087",
            "p017-t0088",
            "p017-t0089",
            "p017-t0090",
            "p017-t0091",
            "p017-t0092"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p017-h01-b001",
          "markdown_line": 518
        },
        {
          "kind": "prose",
          "text": "不会死循环，for range其实是golang的语法糖，在循环开始前会获取切片的长度 len(切片)，然后再执行len(切片)次数的循环",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0003",
            "p017-t0004",
            "p017-t0005",
            "p017-t0006",
            "p017-t0007",
            "p017-t0008",
            "p017-t0009",
            "p017-t0010",
            "p017-t0011",
            "p017-t0012",
            "p017-t0013",
            "p017-t0014",
            "p017-t0015"
          ],
          "operations": [],
          "id": "q-p017-h01-b002",
          "markdown_line": 532
        }
      ],
      "markdown_line": 514
    },
    {
      "id": "q-p017-h02",
      "title": "uintptr和unsafe.Pointer的区别",
      "heading-id": "p017-h02",
      "source-page": 17,
      "section": "代码分析",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p017-h02",
      "pages": [
        17,
        18
      ],
      "page-range": [
        17,
        18
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. unsafe.Pointer只是单纯的通用指针类型，用于转换不同类型指针，它不可以参与指针运算；",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0021",
            "p017-t0022"
          ],
          "operations": [],
          "id": "q-p017-h02-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "2. uintptr是用于指针运算的，GC 不把 uintptr 当指针，也就是说 uintptr 无法持有对象， uintptr 类型的目标会被回收；",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0023",
            "p017-t0024",
            "p017-t0025",
            "p017-t0026",
            "p017-t0027",
            "p017-t0028",
            "p017-t0029",
            "p017-t0030",
            "p017-t0031",
            "p017-t0032",
            "p017-t0033"
          ],
          "operations": [],
          "id": "q-p017-h02-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "3. unsafe.Pointer 可以和普通指针进行相互转换",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0034",
            "p017-t0035",
            "p017-t0037",
            "p017-t0039"
          ],
          "operations": [],
          "id": "q-p017-h02-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "4. unsafe.Pointer 可以和 uintptr 进行相互转换",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0040",
            "p017-t0041",
            "p017-t0042",
            "p017-t0043"
          ],
          "operations": [],
          "id": "q-p017-h02-b004",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "示例代码：",
          "language": null,
          "pages": [
            17
          ],
          "span_ids": [
            "p017-t0044"
          ],
          "operations": [],
          "id": "q-p017-h02-b005",
          "markdown_line": 20
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"fmt\"\n\t\"unsafe\"\n)\n\ntype W struct {\n\tb int32\n\tc int64\n}\n\nfunc main() {\n\tvar w *W = new(W)\n\t//这时w的变量打印出来都是默认值0，0\n\tfmt.Println(w.b, w.c)\n\n\t//现在我们通过指针运算给b变量赋值为10\n\tb := unsafe.Pointer(uintptr(unsafe.Pointer(w)) + unsafe.Offsetof(w.b))\n\t*((*int)(b)) = 10\n\t//此时结果就变成了10，0\n\tfmt.Println(w.b, w.c)\n}",
          "language": "go",
          "pages": [
            17,
            18
          ],
          "span_ids": [
            "p017-t0093",
            "p018-t0095",
            "p018-t0096",
            "p018-t0097",
            "p018-t0098",
            "p018-t0099",
            "p018-t0100",
            "p018-t0101",
            "p018-t0102",
            "p018-t0103",
            "p018-t0104",
            "p018-t0106",
            "p018-t0108",
            "p018-t0110",
            "p018-t0105",
            "p018-t0107",
            "p018-t0109",
            "p018-t0111",
            "p018-t0112",
            "p018-t0114",
            "p018-t0116",
            "p018-t0113",
            "p018-t0115",
            "p018-t0117",
            "p018-t0118",
            "p018-t0119",
            "p018-t0121",
            "p018-t0123",
            "p018-t0120",
            "p018-t0122",
            "p018-t0124",
            "p018-t0125",
            "p018-t0126"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p017-h02-b006",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "1. uintptr(unsafe.Pointer(w)) 获取了 w 的指针起始值",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0001",
            "p018-t0002",
            "p018-t0003",
            "p018-t0004"
          ],
          "operations": [],
          "id": "q-p017-h02-b007",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "2. unsafe.Offsetof(w.b) 获取 b 变量的偏移量",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0005",
            "p018-t0006",
            "p018-t0007",
            "p018-t0008"
          ],
          "operations": [],
          "id": "q-p017-h02-b008",
          "markdown_line": 50
        },
        {
          "kind": "prose",
          "text": "3. 两个相加就得到了 b 的地址值，将通用指针 Pointer 转换成具体指针 ((*int)(b))，通过 * 符号取值，然后赋值。((int)(b)) 相当于把 (*int)(b) 转换成 int 了，最后对变量重新赋值成 10",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0009",
            "p018-t0010",
            "p018-t0011",
            "p018-t0012",
            "p018-t0013",
            "p018-t0014",
            "p018-t0015",
            "p018-t0016",
            "p018-t0017",
            "p018-t0018",
            "p018-t0019",
            "p018-t0020",
            "p018-t0021",
            "p018-t0022",
            "p018-t0023",
            "p018-t0024",
            "p018-t0025",
            "p018-t0026",
            "p018-t0027"
          ],
          "operations": [],
          "id": "q-p017-h02-b009",
          "markdown_line": 52
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p018-h01",
      "title": "知道golang的内存逃逸吗？什么情况下会发生内存逃逸？",
      "heading-id": "p018-h01",
      "source-page": 18,
      "section": "代码分析",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p018-h01",
      "pages": [
        18,
        19
      ],
      "page-range": [
        18,
        19
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "golang程序变量会携带有一组校验数据，用来证明它的整个生命周期是否在运行时完全可知。如果变量通过了这些校验，它就可以在栈上分配。否则就说它逃逸了，必须在堆上分配能引起变量逃逸到堆上的典型情况",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0032",
            "p018-t0033",
            "p018-t0034",
            "p018-t0036",
            "p018-t0038",
            "p018-t0039"
          ],
          "operations": [],
          "id": "q-p018-h01-b001",
          "markdown_line": 58
        },
        {
          "kind": "prose",
          "text": "1. 在方法内把局部变量指针返回局部变量原本应该在栈中分配，在栈中回收。但是由于返回时被外部引用，因此其生命周期大于栈，则溢出",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0040",
            "p018-t0041",
            "p018-t0043",
            "p018-t0044"
          ],
          "operations": [],
          "id": "q-p018-h01-b002",
          "markdown_line": 60
        },
        {
          "kind": "prose",
          "text": "2. 发送指针或带有指针的值到 channel 中。在编译时，是没有办法知道哪个 goroutine 会在 channel上接收数据。所以编译器没法知道变量什么时候才会被释放",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0045",
            "p018-t0046",
            "p018-t0047",
            "p018-t0048",
            "p018-t0050",
            "p018-t0051",
            "p018-t0052",
            "p018-t0053",
            "p018-t0054"
          ],
          "operations": [],
          "id": "q-p018-h01-b003",
          "markdown_line": 62
        },
        {
          "kind": "prose",
          "text": "3. 在一个切片上存储指针或带指针的值。一个典型的例子就是 []*string。这会导致切片的内容逃逸。尽管其后面的数组可能是在栈上分配的，但其引用的值一定是在堆上",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0055",
            "p018-t0056",
            "p018-t0058",
            "p018-t0059",
            "p018-t0060",
            "p018-t0061"
          ],
          "operations": [],
          "id": "q-p018-h01-b004",
          "markdown_line": 64
        },
        {
          "kind": "prose",
          "text": "4. slice 的背后数组被重新分配了，因为 append 时可能会超出其容量( cap )。 slice 初始化的地方在编译时是可以知道的，它最开始会在栈上分配。如果切片背后的存储要基于运行时的数据进行扩充，就会在堆上分配",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0062",
            "p018-t0063",
            "p018-t0064",
            "p018-t0065",
            "p018-t0066",
            "p018-t0067",
            "p018-t0068",
            "p018-t0069",
            "p018-t0070",
            "p018-t0071"
          ],
          "operations": [],
          "id": "q-p018-h01-b005",
          "markdown_line": 66
        },
        {
          "kind": "prose",
          "text": "5. 在 interface 类型上调用方法。在 interface 类型上调用方法都是动态调度的 —— 方法的真正实现只能在运行时知道。想像一个 io.Reader 类型的变量 r , 调用 r.Read(b) 会使得 r 的值和切片b 的背后存储都逃逸掉，所以会在堆上分配",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0072",
            "p018-t0073",
            "p018-t0074",
            "p018-t0075",
            "p018-t0077",
            "p018-t0078",
            "p018-t0079",
            "p018-t0080",
            "p018-t0081",
            "p018-t0082",
            "p018-t0083",
            "p018-t0084",
            "p018-t0085",
            "p018-t0086",
            "p018-t0087",
            "p018-t0088",
            "p018-t0089",
            "p018-t0090",
            "p018-t0091",
            "p018-t0092",
            "p018-t0093"
          ],
          "operations": [],
          "id": "q-p018-h01-b006",
          "markdown_line": 68
        },
        {
          "kind": "prose",
          "text": "代码示例：",
          "language": null,
          "pages": [
            18
          ],
          "span_ids": [
            "p018-t0094"
          ],
          "operations": [],
          "id": "q-p018-h01-b007",
          "markdown_line": 70
        },
        {
          "kind": "code",
          "text": "package main\n\nimport \"fmt\"\n\ntype A struct {\n\ts string\n}\n\n// 这是上面提到的 \"在方法内把局部变量指针返回\" 的情况\nfunc foo(s string) *A {\n\ta := new(A)\n\ta.s = s\n\treturn a //返回局部变量a,在C语言中妥妥野指针，但在go则ok，但a会逃逸到堆\n}\nfunc main() {\n\ta := foo(\"hello\")\n\tb := a.s + \" world\"\n\tc := b + \"!\"\n\tfmt.Println(c)\n}",
          "language": "go",
          "pages": [
            18,
            19
          ],
          "span_ids": [
            "p018-t0127",
            "p018-t0128",
            "p018-t0129",
            "p018-t0130",
            "p019-t0031",
            "p019-t0032",
            "p019-t0033",
            "p019-t0034",
            "p019-t0035",
            "p019-t0036",
            "p019-t0037",
            "p019-t0038",
            "p019-t0039",
            "p019-t0040",
            "p019-t0042",
            "p019-t0044",
            "p019-t0046",
            "p019-t0048",
            "p019-t0050",
            "p019-t0052",
            "p019-t0041",
            "p019-t0043",
            "p019-t0045",
            "p019-t0047",
            "p019-t0049",
            "p019-t0051",
            "p019-t0053",
            "p019-t0054",
            "p019-t0055",
            "p019-t0056",
            "p019-t0057",
            "p019-t0058",
            "p019-t0059"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p018-h01-b008",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "执行go build -gcflags=-m main.go",
          "language": null,
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0001",
            "p019-t0002"
          ],
          "operations": [],
          "id": "q-p018-h01-b009",
          "markdown_line": 95
        },
        {
          "kind": "code",
          "text": "go build -gcflags=-m main.go\n# command-line-arguments\n./main.go:7:6: can inline foo\n./main.go:13:10: inlining call to foo\n./main.go:16:13: inlining call to fmt.Println\n/var/folders/45/qx9lfw2s2zzgvhzg3mtzkwzc0000gn/T/go-\nbuild409982591/b001/_gomod_.go:6:6: can inline init.0\n./main.go:7:10: leaking param: s\n./main.go:8:10: new(A) escapes to heap\n./main.go:16:13: io.Writer(os.Stdout) escapes to heap\n./main.go:16:13: c escapes to heap\n./main.go:15:9: b + \"!\" escapes to heap\n./main.go:13:10: main new(A) does not escape\n./main.go:14:11: main a.s + \" world\" does not escape\n./main.go:16:13: main []interface {} literal does not escape\n<autogenerated>:1: os.(*File).close .this does not escape",
          "language": "text",
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0060",
            "p019-t0061",
            "p019-t0062",
            "p019-t0063",
            "p019-t0064",
            "p019-t0065",
            "p019-t0066",
            "p019-t0067",
            "p019-t0068",
            "p019-t0069",
            "p019-t0070",
            "p019-t0071",
            "p019-t0072",
            "p019-t0073",
            "p019-t0074",
            "p019-t0075"
          ],
          "operations": [],
          "id": "q-p018-h01-b010",
          "markdown_line": 97
        },
        {
          "kind": "prose",
          "text": "1. ./main.go:8:10: new(A) escapes to heap 说明 new(A) 逃逸了,符合上述提到的常见情况中的第一种",
          "language": null,
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0003",
            "p019-t0004",
            "p019-t0005",
            "p019-t0006",
            "p019-t0007",
            "p019-t0008"
          ],
          "operations": [],
          "id": "q-p018-h01-b011",
          "markdown_line": 116
        },
        {
          "kind": "prose",
          "text": "2. ./main.go:14:11: main a.s + \" world\" does not escape 说明 b 变量没有逃逸，因为它只在方法内存在，会在方法结束时被回收",
          "language": null,
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0009",
            "p019-t0010",
            "p019-t0011",
            "p019-t0012",
            "p019-t0013"
          ],
          "operations": [],
          "id": "q-p018-h01-b012",
          "markdown_line": 118
        },
        {
          "kind": "prose",
          "text": "3. ./main.go:15:9: b + \"!\" escapes to heap 说明 c 变量逃逸，通过fmt.Println(a ...interface{})打印的变量，都会发生逃逸",
          "language": null,
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0014",
            "p019-t0015",
            "p019-t0016",
            "p019-t0017",
            "p019-t0018",
            "p019-t0019",
            "p019-t0020"
          ],
          "operations": [],
          "id": "q-p018-h01-b013",
          "markdown_line": 120
        }
      ],
      "markdown_line": 54
    },
    {
      "id": "q-p019-h01",
      "title": "怎么避免内存逃逸",
      "heading-id": "p019-h01",
      "source-page": 19,
      "section": "代码分析",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p019-h01",
      "pages": [
        19,
        20,
        21
      ],
      "page-range": [
        19,
        21
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在runtime/stubs.go:133有个函数叫noescape。noescape可以在逃逸分析中隐藏一个指针。让这个指针在逃逸分析中不会被检测为逃逸",
          "language": null,
          "pages": [
            19
          ],
          "span_ids": [
            "p019-t0023",
            "p019-t0024",
            "p019-t0025",
            "p019-t0026",
            "p019-t0027",
            "p019-t0028",
            "p019-t0029",
            "p019-t0030"
          ],
          "operations": [],
          "id": "q-p019-h01-b001",
          "markdown_line": 126
        },
        {
          "kind": "code",
          "text": "// noescape hides a pointer from escape analysis.  noescape is\n// the identity function but escape analysis doesn't think the\n// output depends on the input.  noescape is inlined and currently\n// compiles down to zero instructions.\n// USE CAREFULLY!\n//go:nosplit\nfunc noescape(p unsafe.Pointer) unsafe.Pointer {\n\tx := uintptr(p)\n\treturn unsafe.Pointer(x ^ 0)\n}",
          "language": "go",
          "pages": [
            20
          ],
          "span_ids": [
            "p020-t0002",
            "p020-t0003",
            "p020-t0004",
            "p020-t0005",
            "p020-t0006",
            "p020-t0007",
            "p020-t0008",
            "p020-t0009",
            "p020-t0010",
            "p020-t0011"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p019-h01-b002",
          "markdown_line": 128
        },
        {
          "kind": "prose",
          "text": "示例代码",
          "language": null,
          "pages": [
            20
          ],
          "span_ids": [
            "p020-t0001"
          ],
          "operations": [],
          "id": "q-p019-h01-b003",
          "markdown_line": 141
        },
        {
          "kind": "code",
          "text": "package main\n\nimport (\n\t\"unsafe\"\n)\n\ntype A struct {\n\tS *string\n}\n\nfunc (f *A) String() string {\n\treturn *f.S\n}\n\ntype ATrick struct {\n\tS unsafe.Pointer\n}\n\nfunc (f *ATrick) String() string {\n\treturn *(*string)(f.S)\n}\n\nfunc NewA(s string) A {\n\treturn A{S: &s}\n}\n\nfunc NewATrick(s string) ATrick {\n\treturn ATrick{S: noescape(unsafe.Pointer(&s))}\n}\n\nfunc noescape(p unsafe.Pointer) unsafe.Pointer {\n\tx := uintptr(p)\n\treturn unsafe.Pointer(x ^ 0)\n}\n\nfunc main() {\n\ts := \"hello\"\n\tf1 := NewA(s)\n\tf2 := NewATrick(s)\n\ts1 := f1.String()\n\ts2 := f2.String()\n\t_ = s1 + s2\n}",
          "language": "go",
          "pages": [
            20,
            21
          ],
          "span_ids": [
            "p020-t0012",
            "p020-t0013",
            "p020-t0014",
            "p020-t0015",
            "p020-t0016",
            "p020-t0017",
            "p020-t0018",
            "p020-t0019",
            "p020-t0020",
            "p020-t0021",
            "p020-t0022",
            "p020-t0023",
            "p020-t0024",
            "p020-t0025",
            "p020-t0026",
            "p020-t0027",
            "p020-t0028",
            "p020-t0029",
            "p020-t0030",
            "p020-t0031",
            "p020-t0032",
            "p020-t0033",
            "p020-t0034",
            "p020-t0035",
            "p020-t0036",
            "p020-t0037",
            "p020-t0038",
            "p020-t0039",
            "p020-t0040",
            "p020-t0041",
            "p020-t0042",
            "p020-t0043",
            "p021-t0061",
            "p021-t0062"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p019-h01-b004",
          "markdown_line": 143
        },
        {
          "kind": "prose",
          "text": "执行go build -gcflags=-m main.go",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0001",
            "p021-t0002"
          ],
          "operations": [],
          "id": "q-p019-h01-b005",
          "markdown_line": 189
        },
        {
          "kind": "code",
          "text": "go build -gcflags=-m main.go\n# command-line-arguments\n./main.go:11:6: can inline (*A).String\n./main.go:19:6: can inline (*ATrick).String\n./main.go:23:6: can inline NewA\n./main.go:31:6: can inline noescape\n./main.go:27:6: can inline NewATrick\n./main.go:28:29: inlining call to noescape\n./main.go:36:6: can inline main\n./main.go:38:14: inlining call to NewA\n./main.go:39:19: inlining call to NewATrick\n./main.go:39:19: inlining call to noescape\n./main.go:40:17: inlining call to (*A).String\n./main.go:41:17: inlining call to (*ATrick).String\n/var/folders/45/qx9lfw2s2zzgvhzg3mtzkwzc0000gn/T/go-\nbuild763863171/b001/_gomod_.go:6:6: can inline init.0\n./main.go:11:7: leaking param: f to result ~r0 level=2\n./main.go:19:7: leaking param: f to result ~r0 level=2\n./main.go:24:16: &s escapes to heap\n./main.go:23:13: moved to heap: s\n./main.go:27:18: NewATrick s does not escape\n./main.go:28:45: NewATrick &s does not escape\n./main.go:31:15: noescape p does not escape\n./main.go:38:14: main &s does not escape\n./main.go:39:19: main &s does not escape\n./main.go:40:10: main f1 does not escape\n./main.go:41:10: main f2 does not escape\n./main.go:42:9: main s1 + s2 does not escape",
          "language": "text",
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0063",
            "p021-t0064",
            "p021-t0065",
            "p021-t0066",
            "p021-t0067",
            "p021-t0068",
            "p021-t0069",
            "p021-t0070",
            "p021-t0071",
            "p021-t0072",
            "p021-t0073",
            "p021-t0074",
            "p021-t0075",
            "p021-t0076",
            "p021-t0077",
            "p021-t0078",
            "p021-t0079",
            "p021-t0080",
            "p021-t0081",
            "p021-t0082",
            "p021-t0083",
            "p021-t0084",
            "p021-t0085",
            "p021-t0086",
            "p021-t0087",
            "p021-t0088",
            "p021-t0089",
            "p021-t0090"
          ],
          "operations": [],
          "id": "q-p019-h01-b006",
          "markdown_line": 191
        },
        {
          "kind": "prose",
          "text": "其中主要看中间一小段",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0003"
          ],
          "operations": [],
          "id": "q-p019-h01-b007",
          "markdown_line": 222
        },
        {
          "kind": "code",
          "text": "./main.go:24:16: &s escapes to heap    //这个是NewA中的，逃逸了\n./main.go:23:13: moved to heap: s\n./main.go:27:18: NewATrick s does not escape // NewATrick里的s的却没逃逸 ./main.go:28:45: NewATrick &s does not escape",
          "language": "text",
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0092",
            "p021-t0094",
            "p021-t0091",
            "p021-t0093",
            "p021-t0095",
            "p021-t0097",
            "p021-t0099",
            "p021-t0096",
            "p021-t0098",
            "p021-t0100"
          ],
          "operations": [
            {
              "kind": "join-pdf-code-wrap",
              "page": 21,
              "top": 890.0
            }
          ],
          "id": "q-p019-h01-b008",
          "markdown_line": 224
        },
        {
          "kind": "prose",
          "text": "1. 上段代码对A和ATrick同样的功能有两种实现：他们包含一个 string，然后用 String() 方法返回这个字符串。但是从逃逸分析看ATrick 版本没有逃逸",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0004",
            "p021-t0005",
            "p021-t0006",
            "p021-t0007",
            "p021-t0008",
            "p021-t0009",
            "p021-t0010",
            "p021-t0011",
            "p021-t0012",
            "p021-t0013",
            "p021-t0014",
            "p021-t0015",
            "p021-t0016"
          ],
          "operations": [],
          "id": "q-p019-h01-b009",
          "markdown_line": 230
        },
        {
          "kind": "prose",
          "text": "2. noescape() 函数的作用是遮蔽输入和输出的依赖关系。使编译器不认为 p 会通过 x 逃逸，因为uintptr() 产生的引用是编译器无法理解的",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0017",
            "p021-t0018",
            "p021-t0019",
            "p021-t0020",
            "p021-t0021",
            "p021-t0022",
            "p021-t0024",
            "p021-t0026",
            "p021-t0027"
          ],
          "operations": [],
          "id": "q-p019-h01-b010",
          "markdown_line": 232
        },
        {
          "kind": "prose",
          "text": "3. 内置的 uintptr 类型是一个真正的指针类型，但是在编译器层面，它只是一个存储一个指针地址的int 类型。代码的最后一行返回 unsafe.Pointer 也是一个 int",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0028",
            "p021-t0029",
            "p021-t0030",
            "p021-t0031",
            "p021-t0033",
            "p021-t0035",
            "p021-t0037",
            "p021-t0038",
            "p021-t0039",
            "p021-t0040",
            "p021-t0041"
          ],
          "operations": [],
          "id": "q-p019-h01-b011",
          "markdown_line": 234
        },
        {
          "kind": "prose",
          "text": "4. noescape() 在 runtime 包中使用 unsafe.Pointer 的地方被大量使用。如果作者清楚被unsafe.Pointer 引用的数据肯定不会被逃逸，但编译器却不知道的情况下，这是很有用的",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0042",
            "p021-t0043",
            "p021-t0044",
            "p021-t0045",
            "p021-t0046",
            "p021-t0047",
            "p021-t0049",
            "p021-t0050"
          ],
          "operations": [],
          "id": "q-p019-h01-b012",
          "markdown_line": 236
        },
        {
          "kind": "prose",
          "text": "5. 实际项目中不建议使用unsafe包！毕竟包的名字就叫做 unsafe, 而且源码中的注释也写明了 USE CAREFULLY!",
          "language": null,
          "pages": [
            21
          ],
          "span_ids": [
            "p021-t0051",
            "p021-t0052",
            "p021-t0053",
            "p021-t0054",
            "p021-t0056",
            "p021-t0057",
            "p021-t0058",
            "p021-t0059",
            "p021-t0060"
          ],
          "operations": [],
          "id": "q-p019-h01-b013",
          "markdown_line": 238
        }
      ],
      "markdown_line": 122
    },
    {
      "id": "q-p022-h01",
      "title": "go struct能不能比较",
      "heading-id": "p022-h01",
      "source-page": 22,
      "section": "代码分析",
      "topic": "01-go-basics",
      "target": "/go-bank/01-go-basics#q-p022-h01",
      "pages": [
        22
      ],
      "page-range": [
        22,
        22
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 相同struct类型的可以比较",
          "language": null,
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0005",
            "p022-t0006",
            "p022-t0007",
            "p022-t0008"
          ],
          "operations": [],
          "id": "q-p022-h01-b001",
          "markdown_line": 317
        },
        {
          "kind": "prose",
          "text": "2. 不同struct类型的不可以比较,编译都不过，类型不匹配",
          "language": null,
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0010",
            "p022-t0011",
            "p022-t0012",
            "p022-t0013",
            "p022-t0014",
            "p022-t0015"
          ],
          "operations": [],
          "id": "q-p022-h01-b002",
          "markdown_line": 319
        },
        {
          "kind": "code",
          "text": "package main\n\nimport \"fmt\"\n\nfunc main() {\n\ttype A struct {\n\t\ta int\n\t}\n\ttype B struct {\n\t\ta int\n\t}\n\ta := A{1}\n\t//b := A{1}\n\tb := B{1}\n\tif a == b {\n\t\tfmt.Println(\"a == b\")\n\t} else {\n\t\tfmt.Println(\"a != b\")\n\t}\n}\n\n// output\n// command-line-arguments [command-line-arguments.test]\n// ./.go:14:7: invalid operation: a == b (mismatched types A and B)",
          "language": "go",
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0039",
            "p022-t0040",
            "p022-t0041",
            "p022-t0042",
            "p022-t0043",
            "p022-t0044",
            "p022-t0045",
            "p022-t0046",
            "p022-t0047",
            "p022-t0048",
            "p022-t0049",
            "p022-t0050",
            "p022-t0051",
            "p022-t0052",
            "p022-t0053",
            "p022-t0054",
            "p022-t0055",
            "p022-t0056",
            "p022-t0057",
            "p022-t0058",
            "p022-t0059"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p022-h01-b003",
          "markdown_line": 321
        }
      ],
      "markdown_line": 313
    },
    {
      "id": "q-p022-h02",
      "title": "下面代码能运行吗？为什么",
      "heading-id": "p022-h02",
      "source-page": 22,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p022-h02",
      "pages": [
        22
      ],
      "page-range": [
        22,
        22
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "type Param map[string]interface{}\ntype Show struct {\n\tParam\n}\n\nfunc main1() {\n\ts := new(Show)\n\ts.Param[\"RMB\"] = 10000\n}",
          "language": "go",
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0060",
            "p022-t0061",
            "p022-t0062",
            "p022-t0063",
            "p022-t0064",
            "p022-t0065",
            "p022-t0066",
            "p022-t0067"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p022-h02-b001",
          "markdown_line": 538
        },
        {
          "kind": "prose",
          "text": "解析共发现两个问题：",
          "language": null,
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0021",
            "p022-t0023"
          ],
          "operations": [],
          "id": "q-p022-h02-b002",
          "markdown_line": 550
        },
        {
          "kind": "prose",
          "text": "1. main 函数不能加数字。",
          "language": null,
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0025",
            "p022-t0026"
          ],
          "operations": [],
          "id": "q-p022-h02-b003",
          "markdown_line": 552
        },
        {
          "kind": "prose",
          "text": "2. new 关键字无法初始化 Show 结构体中的 Param 属性，所以直接对 s.Param 操作会出错",
          "language": null,
          "pages": [
            22
          ],
          "span_ids": [
            "p022-t0028",
            "p022-t0029",
            "p022-t0030",
            "p022-t0031",
            "p022-t0032",
            "p022-t0033",
            "p022-t0035",
            "p022-t0036",
            "p022-t0037"
          ],
          "operations": [],
          "id": "q-p022-h02-b004",
          "markdown_line": 554
        }
      ],
      "markdown_line": 534
    },
    {
      "id": "q-p023-h01",
      "title": "请说出下面代码存在什么问题",
      "heading-id": "p023-h01",
      "source-page": 23,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p023-h01",
      "pages": [
        23
      ],
      "page-range": [
        23,
        23
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "type student struct {\n\tName string\n}\n\nfunc zhoujielun(v interface{}) {\n\tswitch msg := v.(type) {\n\tcase *student, student:\n\t\tmsg.Name\n\t}\n}",
          "language": "go",
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0073",
            "p023-t0074",
            "p023-t0075",
            "p023-t0076",
            "p023-t0077",
            "p023-t0078",
            "p023-t0079",
            "p023-t0080",
            "p023-t0081"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p023-h01-b001",
          "markdown_line": 560
        },
        {
          "kind": "prose",
          "text": "解析： golang中有规定， switch type 的 case T1，类型列表只有一个，那么 v := m.(type) 中的 v 的类型就是T1类型。如果是 case T1, T2，类型列表中有多个，那 v 的类型还是多对应接口的类型，也就是 m 的类型。所以这里 msg 的类型还是 interface{}，所以他没有 Name 这个字段，编译阶段就会报错。具体解释⻅：https://golang.org/ref /spec#Type_switches",
          "language": null,
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0005",
            "p023-t0007",
            "p023-t0008",
            "p023-t0009",
            "p023-t0010",
            "p023-t0011",
            "p023-t0012",
            "p023-t0013",
            "p023-t0014",
            "p023-t0015",
            "p023-t0016",
            "p023-t0017",
            "p023-t0018",
            "p023-t0020",
            "p023-t0021",
            "p023-t0022",
            "p023-t0023",
            "p023-t0024",
            "p023-t0026",
            "p023-t0027",
            "p023-t0028",
            "p023-t0030",
            "p023-t0031",
            "p023-t0032",
            "p023-t0033",
            "p023-t0034",
            "p023-t0035",
            "p023-t0036",
            "p023-t0038",
            "p023-t0039",
            "p023-t0041",
            "p023-t0042"
          ],
          "operations": [],
          "id": "q-p023-h01-b002",
          "markdown_line": 573
        }
      ],
      "markdown_line": 556
    },
    {
      "id": "q-p023-h02",
      "title": "Go 支持什么形式的类型转换？将整数转换为浮点数",
      "heading-id": "p023-h02",
      "source-page": 23,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p023-h02",
      "pages": [
        23
      ],
      "page-range": [
        23,
        23
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 支持显式类型转换以满足其严格的类型要求。",
          "language": null,
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0047",
            "p023-t0048"
          ],
          "operations": [],
          "id": "q-p023-h02-b001",
          "markdown_line": 579
        },
        {
          "kind": "code",
          "text": "i := 55           //int\nj := 67.8         //float64\nsum := i + int(j) //j is converted to int",
          "language": "go",
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0082",
            "p023-t0083",
            "p023-t0084"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p023-h02-b002",
          "markdown_line": 581
        }
      ],
      "markdown_line": 575
    },
    {
      "id": "q-p023-h03",
      "title": "Go 语言当中值传递和地址传递（引用传递）如何运用？有什么区别？举例说明",
      "heading-id": "p023-h03",
      "source-page": 23,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p023-h03",
      "pages": [
        23
      ],
      "page-range": [
        23,
        23
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 值传递只会把参数的值复制一份放进对应的函数，两个变量的地址不同，不可相互修改。",
          "language": null,
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0057",
            "p023-t0058",
            "p023-t0060"
          ],
          "operations": [],
          "id": "q-p023-h03-b001",
          "markdown_line": 591
        },
        {
          "kind": "prose",
          "text": "2. 地址传递(引用传递)会将变量本身传入对应的函数，在函数中可以对该变量进行值内容的修改。",
          "language": null,
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0062",
            "p023-t0063",
            "p023-t0064",
            "p023-t0065",
            "p023-t0066",
            "p023-t0067",
            "p023-t0069"
          ],
          "operations": [],
          "id": "q-p023-h03-b002",
          "markdown_line": 593
        }
      ],
      "markdown_line": 587
    },
    {
      "id": "q-p023-h04",
      "title": "写出打印的结果",
      "heading-id": "p023-h04",
      "source-page": 23,
      "section": "代码分析",
      "topic": "04-go-coding",
      "target": "/go-bank/04-go-coding#q-p023-h04",
      "pages": [
        23,
        24
      ],
      "page-range": [
        23,
        24
      ],
      "blocks": [
        {
          "kind": "code",
          "text": "type People struct {\n\tname string `json:\"name\"`\n}\n\nfunc main() {\n\tjs := `{\n\"name\":\"11\"\n}`\n\tvar p People\n\terr := json.Unmarshal([]byte(js), &p)\n\tif err != nil {\n\t\tfmt.Println(\"err: \", err)\n\t\treturn\n\t}\n\tfmt.Println(\"people: \", p)\n}",
          "language": "go",
          "pages": [
            23
          ],
          "span_ids": [
            "p023-t0085",
            "p023-t0086",
            "p023-t0087",
            "p023-t0088",
            "p023-t0089",
            "p023-t0090",
            "p023-t0091",
            "p023-t0092",
            "p023-t0093",
            "p023-t0094",
            "p023-t0095",
            "p023-t0096",
            "p023-t0097",
            "p023-t0098",
            "p023-t0099"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p023-h04-b001",
          "markdown_line": 599
        },
        {
          "kind": "prose",
          "text": "解析：按照 golang 的语法，小写开头的方法、属性或 struct 是私有的，同样，在 json 解码或转码的时候也无法上线私有属性的转换。题目中是无法正常得到 People 的 name 值的。而且，私有属性 name 也不应该加 json 的标签。",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0002",
            "p024-t0004",
            "p024-t0005",
            "p024-t0006",
            "p024-t0007",
            "p024-t0008",
            "p024-t0009",
            "p024-t0010",
            "p024-t0012",
            "p024-t0013",
            "p024-t0015",
            "p024-t0016",
            "p024-t0017",
            "p024-t0018",
            "p024-t0019",
            "p024-t0020",
            "p024-t0021",
            "p024-t0022",
            "p024-t0023",
            "p024-t0024"
          ],
          "operations": [],
          "id": "q-p023-h04-b002",
          "markdown_line": 618
        }
      ],
      "markdown_line": 595
    },
    {
      "id": "q-p024-h02",
      "title": "go语言的并发机制以及它所使用的CSP并发模型",
      "heading-id": "p024-h02",
      "source-page": 24,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p024-h02",
      "pages": [
        24,
        25
      ],
      "page-range": [
        24,
        25
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "CSP模型是上个世纪七十年代提出的,不同于传统的多线程通过共享内存来通信，CSP讲究的是“以通信的方式来共享内存”。用于描述两个独立的并发实体通过共享的通讯 channel(管道)进行通信的并发模型。 CSP中channel是第一类对象，它不关注发送消息的实体，而关注与发送消息时使用的channel。 Golang中channel 是被单独创建并且可以在进程之间传递，它的通信模式类似于 boss-worker 模式的，一个实体通过将消息发送到channel 中，然后又监听这个 channel 的实体处理，两个实体之间是匿名的，这个就实现实体中间的解耦，其中 channel 是同步的一个消息被发送到 channel 中，最终是一定要被另外的实体消费掉的，在实现原理上其实类似一个阻塞的消息队列。 Goroutine 是Golang实际并发执行的实体，它底层是使用协程(coroutine)实现并发，coroutine是一种运行在用户态的用户线程，类似于 greenthread，go底层选择使用coroutine的出发点是因为，它具有以下特点：",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0036",
            "p024-t0037",
            "p024-t0038",
            "p024-t0039",
            "p024-t0040",
            "p024-t0041",
            "p024-t0042",
            "p024-t0043",
            "p024-t0044",
            "p024-t0046",
            "p024-t0047",
            "p024-t0048",
            "p024-t0049",
            "p024-t0050",
            "p024-t0051",
            "p024-t0052",
            "p024-t0054",
            "p024-t0055",
            "p024-t0056",
            "p024-t0057",
            "p024-t0059",
            "p024-t0060",
            "p024-t0061",
            "p024-t0063",
            "p024-t0064",
            "p024-t0065",
            "p024-t0066",
            "p024-t0067",
            "p024-t0068",
            "p024-t0069",
            "p024-t0071",
            "p024-t0072",
            "p024-t0073",
            "p024-t0074",
            "p024-t0075",
            "p024-t0076",
            "p024-t0078",
            "p024-t0079",
            "p024-t0080",
            "p024-t0081",
            "p024-t0082",
            "p024-t0083",
            "p024-t0085",
            "p024-t0087",
            "p024-t0088",
            "p024-t0089",
            "p024-t0090",
            "p024-t0091",
            "p024-t0092",
            "p024-t0093",
            "p024-t0094",
            "p024-t0095",
            "p024-t0097",
            "p024-t0098",
            "p024-t0099",
            "p024-t0100",
            "p024-t0101",
            "p024-t0102",
            "p024-t0103",
            "p024-t0104",
            "p024-t0106"
          ],
          "operations": [],
          "id": "q-p024-h02-b001",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "1. 用户空间避免了内核态和用户态的切换导致的成本。",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0107",
            "p024-t0108",
            "p024-t0110"
          ],
          "operations": [],
          "id": "q-p024-h02-b002",
          "markdown_line": 86
        },
        {
          "kind": "prose",
          "text": "2. 可以由语言和框架层进行调度。",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0112",
            "p024-t0113"
          ],
          "operations": [],
          "id": "q-p024-h02-b003",
          "markdown_line": 88
        },
        {
          "kind": "prose",
          "text": "3. 更小的栈空间允许创建大量的实例",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0115",
            "p024-t0116"
          ],
          "operations": [],
          "id": "q-p024-h02-b004",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "Golang中的Goroutine的特性: Golang内部有三个对象： P对象(processor) 代表上下文（或者可以认为是cpu），M(work thread)代表工作线程，G对象（goroutine）. 正常情况下一个cpu对象启一个工作线程对象，线程去检查并执行goroutine对象。碰到goroutine对象阻塞的时候，会启动一个新的工作线程，以充分利用cpu资源。所有有时候线程对象会比处理器对象多很多我们用如下图分别表示P、M、G:",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0118",
            "p024-t0119",
            "p024-t0120",
            "p024-t0121",
            "p024-t0122",
            "p024-t0123",
            "p024-t0124",
            "p024-t0125",
            "p024-t0126",
            "p024-t0127",
            "p024-t0128",
            "p024-t0129",
            "p024-t0130",
            "p024-t0131",
            "p024-t0132",
            "p024-t0133",
            "p024-t0135",
            "p024-t0136",
            "p024-t0137",
            "p024-t0138",
            "p024-t0139",
            "p024-t0140",
            "p024-t0141",
            "p024-t0142",
            "p024-t0143",
            "p024-t0144",
            "p024-t0145",
            "p024-t0146",
            "p024-t0147",
            "p024-t0149",
            "p024-t0150",
            "p024-t0151",
            "p024-t0153",
            "p024-t0154",
            "p024-t0157",
            "p024-t0158",
            "p024-t0159",
            "p024-t0160",
            "p024-t0161",
            "p024-t0162"
          ],
          "operations": [],
          "id": "q-p024-h02-b005",
          "markdown_line": 92
        },
        {
          "kind": "image",
          "image_id": "p024-image-01",
          "pages": [
            24
          ],
          "url": "/go-bank/pdf-p024-01.png",
          "span_ids": [],
          "id": "q-p024-h02-b006",
          "markdown_line": 94
        },
        {
          "kind": "prose",
          "text": "G（Goroutine）：我们所说的协程，为用户级的轻量级线程，每个Goroutine对象中的sched保存着其上下文信息.M（Machine）：对内核级线程的封装，数量对应真实的CPU数（真正干活的对象）.P（Processor）：即为G和M的调度对象，用来调度G和M之间的关联关系，其数量可通过GOMAXPROCS()来设置，默认为核心数.在单核情况下，所有Goroutine运行在同一个线程（M0）中，每一个线程维护一个上下文（P），任何时刻，一个上下文中只有一个Goroutine，其他Goroutine在runqueue中等待。一个Goroutine运行完自己的时间片后，让出上下文，自己回到runqueue中（如下图所示）。当正在运行的G0阻塞的时候（可以需要IO），会再创建一个线程（M1），P转到新的线程中去运行",
          "language": null,
          "pages": [
            24
          ],
          "span_ids": [
            "p024-t0163",
            "p024-t0164",
            "p024-t0165",
            "p024-t0166",
            "p024-t0168",
            "p024-t0169",
            "p024-t0170",
            "p024-t0171",
            "p024-t0172",
            "p024-t0173",
            "p024-t0175",
            "p024-t0176",
            "p024-t0177",
            "p024-t0178",
            "p024-t0179",
            "p024-t0180",
            "p024-t0182",
            "p024-t0183",
            "p024-t0184",
            "p024-t0185",
            "p024-t0186",
            "p024-t0187",
            "p024-t0188",
            "p024-t0189",
            "p024-t0191",
            "p024-t0192",
            "p024-t0193",
            "p024-t0194",
            "p024-t0195",
            "p024-t0196",
            "p024-t0197",
            "p024-t0198",
            "p024-t0199",
            "p024-t0200",
            "p024-t0201",
            "p024-t0203",
            "p024-t0204",
            "p024-t0205",
            "p024-t0206",
            "p024-t0207",
            "p024-t0208",
            "p024-t0209",
            "p024-t0210",
            "p024-t0211",
            "p024-t0212",
            "p024-t0214",
            "p024-t0215",
            "p024-t0216",
            "p024-t0217",
            "p024-t0218",
            "p024-t0219",
            "p024-t0220",
            "p024-t0222",
            "p024-t0223",
            "p024-t0224",
            "p024-t0225",
            "p024-t0226",
            "p024-t0227",
            "p024-t0229",
            "p024-t0230",
            "p024-t0231",
            "p024-t0232",
            "p024-t0233",
            "p024-t0234",
            "p024-t0235",
            "p024-t0236",
            "p024-t0237",
            "p024-t0238"
          ],
          "operations": [],
          "id": "q-p024-h02-b007",
          "markdown_line": 96
        },
        {
          "kind": "image",
          "image_id": "p025-image-01",
          "pages": [
            25
          ],
          "url": "/go-bank/pdf-p025-01.png",
          "span_ids": [],
          "id": "q-p024-h02-b008",
          "markdown_line": 98
        },
        {
          "kind": "prose",
          "text": "当M0返回时，它会尝试从其他线程中“偷”一个上下文过来，如果没有偷到，会把Goroutine放到Global runqueue 中去，然后把自己放入线程缓存中。上下文会定时检查Global runqueue。 Golang是为并发而生的语言，Go语言是为数不多的在语言层面实现并发的语言；也正是Go语言的并发特性，吸引了全球无数的开发者。 Golang的CSP并发模型，是通过Goroutine和Channel来实现的。 Goroutine 是Go语言中并发的执行单位。有点抽象，其实就是和传统概念上的”线程“类似，可以理解为”线程“。 Channel是Go语言中各个并发结构体(Goroutine)之前的通信机制。通常Channel，是各个Goroutine之间通信的” 管道“，有点类似于Linux中的管道。通信机制channel也很方便，传数据用channel <- data，取数据用<-channel。在通信过程中，传数据channel <- data和取数据<-channel必然会成对出现，因为这边传，那边取，两个goroutine之间才会实现通信。而且不管传还是取，必阻塞，直到另外的goroutine传或者取为止",
          "language": null,
          "pages": [
            25
          ],
          "span_ids": [
            "p025-t0002",
            "p025-t0003",
            "p025-t0004",
            "p025-t0005",
            "p025-t0006",
            "p025-t0007",
            "p025-t0008",
            "p025-t0009",
            "p025-t0010",
            "p025-t0011",
            "p025-t0012",
            "p025-t0013",
            "p025-t0015",
            "p025-t0016",
            "p025-t0017",
            "p025-t0019",
            "p025-t0020",
            "p025-t0021",
            "p025-t0022",
            "p025-t0023",
            "p025-t0024",
            "p025-t0025",
            "p025-t0027",
            "p025-t0029",
            "p025-t0030",
            "p025-t0031",
            "p025-t0032",
            "p025-t0033",
            "p025-t0034",
            "p025-t0035",
            "p025-t0036",
            "p025-t0038",
            "p025-t0039",
            "p025-t0040",
            "p025-t0041",
            "p025-t0042",
            "p025-t0043",
            "p025-t0044",
            "p025-t0045",
            "p025-t0046",
            "p025-t0047",
            "p025-t0048",
            "p025-t0049",
            "p025-t0050",
            "p025-t0051",
            "p025-t0052",
            "p025-t0053",
            "p025-t0054",
            "p025-t0055",
            "p025-t0056",
            "p025-t0057",
            "p025-t0058",
            "p025-t0059",
            "p025-t0060",
            "p025-t0061",
            "p025-t0062",
            "p025-t0063",
            "p025-t0064",
            "p025-t0065",
            "p025-t0067",
            "p025-t0068",
            "p025-t0069",
            "p025-t0070",
            "p025-t0071",
            "p025-t0072",
            "p025-t0073",
            "p025-t0075",
            "p025-t0076",
            "p025-t0077",
            "p025-t0078",
            "p025-t0079",
            "p025-t0081",
            "p025-t0082",
            "p025-t0084",
            "p025-t0085",
            "p025-t0086"
          ],
          "operations": [],
          "id": "q-p024-h02-b009",
          "markdown_line": 100
        }
      ],
      "markdown_line": 80
    },
    {
      "id": "q-p025-h01",
      "title": "Golang 中 Goroutine 如何调度",
      "heading-id": "p025-h01",
      "source-page": 25,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "pages": [
        25,
        26,
        27
      ],
      "page-range": [
        25,
        27
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "goroutine是Golang语言中最经典的设计，也是其魅力所在，goroutine的本质是协程，是实现并行计算的核心。 goroutine使用方式非常的简单，只需使用go关键字即可启动一个协程，并且它是处于异步方式运行，你不需要等它运行完成以后在执行以后的代码。 go func()//通过go关键字启动一个协程来运行函数协程：协程拥有自己的寄存器上下文和栈。协程调度切换时，将寄存器上下文和栈保存到其他地方，在切回来的时候，恢复先前保存的寄存器上下文和栈。因此，协程能保留上一次调用时的状态（即所有局部状态的一个特定组合），每次过程重入时，就相当于进入上一次调用的状态，换种说法：进入上一次离开时所处逻辑流的位置。线程和进程的操作是由程序触发系统接口，最后的执行者是系统；协程的操作执行者则是用户自身程序，goroutine也是协程。 groutine能拥有强大的并发实现是通过GPM调度模型实现.",
          "language": null,
          "pages": [
            25
          ],
          "span_ids": [
            "p025-t0094",
            "p025-t0095",
            "p025-t0096",
            "p025-t0097",
            "p025-t0098",
            "p025-t0099",
            "p025-t0100",
            "p025-t0101",
            "p025-t0102",
            "p025-t0103",
            "p025-t0104",
            "p025-t0105",
            "p025-t0107",
            "p025-t0108",
            "p025-t0109",
            "p025-t0110",
            "p025-t0111",
            "p025-t0113",
            "p025-t0115",
            "p025-t0116",
            "p025-t0118",
            "p025-t0120",
            "p025-t0121",
            "p025-t0123",
            "p025-t0124",
            "p025-t0126",
            "p025-t0128",
            "p025-t0129",
            "p025-t0130",
            "p025-t0131",
            "p025-t0132",
            "p025-t0133",
            "p025-t0134",
            "p025-t0135",
            "p025-t0136"
          ],
          "operations": [],
          "id": "q-p025-h01-b001",
          "markdown_line": 106
        },
        {
          "kind": "image",
          "image_id": "p025-image-02",
          "pages": [
            25
          ],
          "url": "/go-bank/pdf-p025-02.png",
          "span_ids": [],
          "id": "q-p025-h01-b002",
          "markdown_line": 108
        },
        {
          "kind": "prose",
          "text": "Go的调度器内部有四个重要的结构：M，P，S，Sched，如上图所示（Sched未给出）.",
          "language": null,
          "pages": [
            25
          ],
          "span_ids": [
            "p025-t0137",
            "p025-t0138",
            "p025-t0139",
            "p025-t0140",
            "p025-t0141",
            "p025-t0142",
            "p025-t0143",
            "p025-t0144",
            "p025-t0145",
            "p025-t0146",
            "p025-t0147",
            "p025-t0148",
            "p025-t0149"
          ],
          "operations": [],
          "id": "q-p025-h01-b003",
          "markdown_line": 110
        },
        {
          "kind": "prose",
          "text": "1. M:M代表内核级线程，一个M就是一个线程，goroutine就是跑在M之上的；M是一个很大的结构，里面维护小对象内存cache（mcache）、当前执行的goroutine、随机数发生器等等非常多的信息",
          "language": null,
          "pages": [
            25
          ],
          "span_ids": [
            "p025-t0150",
            "p025-t0151",
            "p025-t0152",
            "p025-t0153",
            "p025-t0154",
            "p025-t0155",
            "p025-t0156",
            "p025-t0157",
            "p025-t0158",
            "p025-t0159",
            "p025-t0160",
            "p025-t0162",
            "p025-t0163",
            "p025-t0164",
            "p025-t0165",
            "p025-t0166",
            "p025-t0167",
            "p025-t0168"
          ],
          "operations": [],
          "id": "q-p025-h01-b004",
          "markdown_line": 112
        },
        {
          "kind": "prose",
          "text": "2. G:代表一个goroutine，它有自己的栈，instruction pointer和其他信息（正在等待的channel等等），用于调度。",
          "language": null,
          "pages": [
            26
          ],
          "span_ids": [
            "p026-t0001",
            "p026-t0002",
            "p026-t0003",
            "p026-t0004",
            "p026-t0005",
            "p026-t0006",
            "p026-t0007",
            "p026-t0008",
            "p026-t0009",
            "p026-t0011"
          ],
          "operations": [],
          "id": "q-p025-h01-b005",
          "markdown_line": 114
        },
        {
          "kind": "prose",
          "text": "3. P:P全称是Processor，处理器，它的主要用途就是用来执行goroutine的，所以它也维护了一个goroutine队列，里面存储了所有需要它来执行的goroutine",
          "language": null,
          "pages": [
            26
          ],
          "span_ids": [
            "p026-t0013",
            "p026-t0014",
            "p026-t0015",
            "p026-t0016",
            "p026-t0017",
            "p026-t0018",
            "p026-t0019",
            "p026-t0020",
            "p026-t0022",
            "p026-t0023"
          ],
          "operations": [],
          "id": "q-p025-h01-b006",
          "markdown_line": 116
        },
        {
          "kind": "prose",
          "text": "4. Sched：代表调度器，它维护有存储M和G的队列以及调度器的一些状态信息等",
          "language": null,
          "pages": [
            26
          ],
          "span_ids": [
            "p026-t0024",
            "p026-t0025",
            "p026-t0026",
            "p026-t0027",
            "p026-t0028",
            "p026-t0029"
          ],
          "operations": [],
          "id": "q-p025-h01-b007",
          "markdown_line": 118
        },
        {
          "kind": "prose",
          "text": "调度实现：",
          "language": null,
          "pages": [
            26
          ],
          "span_ids": [
            "p026-t0031"
          ],
          "operations": [],
          "id": "q-p025-h01-b008",
          "markdown_line": 120
        },
        {
          "kind": "image",
          "image_id": "p026-image-01",
          "pages": [
            26
          ],
          "url": "/go-bank/pdf-p026-01.png",
          "span_ids": [],
          "id": "q-p025-h01-b009",
          "markdown_line": 122
        },
        {
          "kind": "prose",
          "text": "从上图中可以看到，有2个物理线程M，每一个M都拥有一个处理器P，每一个也都有一个正在运行的goroutine。P 的数量可以通过GOMAXPROCS()来设置，它其实也就代表了真正的并发度，即有多少个goroutine可以同时运行。图中灰色的那些goroutine并没有运行，而是出于ready的就绪态，正在等待被调度。P维护着这个队列（称之为 runqueue），Go语言里，启动一个goroutine很容易：go function就行，所以每有一个go语句被执行， runqueue队列就在其末尾加入一个goroutine，在下一个调度点，就从runqueue中取出（如何决定取哪个 goroutine？）一个goroutine执行。当一个OS线程M0陷入阻塞时，P转而在运行M1，图中的M1可能是正被创建，或者从线程缓存中取出",
          "language": null,
          "pages": [
            26
          ],
          "span_ids": [
            "p026-t0033",
            "p026-t0034",
            "p026-t0035",
            "p026-t0036",
            "p026-t0037",
            "p026-t0038",
            "p026-t0039",
            "p026-t0040",
            "p026-t0041",
            "p026-t0042",
            "p026-t0043",
            "p026-t0044",
            "p026-t0045",
            "p026-t0046",
            "p026-t0047",
            "p026-t0048",
            "p026-t0049",
            "p026-t0051",
            "p026-t0052",
            "p026-t0053",
            "p026-t0054",
            "p026-t0055",
            "p026-t0056",
            "p026-t0057",
            "p026-t0058",
            "p026-t0059",
            "p026-t0060",
            "p026-t0061",
            "p026-t0062",
            "p026-t0063",
            "p026-t0064",
            "p026-t0065",
            "p026-t0066",
            "p026-t0067",
            "p026-t0068",
            "p026-t0069",
            "p026-t0070",
            "p026-t0071",
            "p026-t0072",
            "p026-t0073",
            "p026-t0074",
            "p026-t0075",
            "p026-t0076",
            "p026-t0077",
            "p026-t0078",
            "p026-t0079",
            "p026-t0081",
            "p026-t0082",
            "p026-t0083",
            "p026-t0084",
            "p026-t0085",
            "p026-t0086",
            "p026-t0087",
            "p026-t0088",
            "p026-t0089",
            "p026-t0090",
            "p026-t0091",
            "p026-t0092"
          ],
          "operations": [],
          "id": "q-p025-h01-b010",
          "markdown_line": 124
        },
        {
          "kind": "image",
          "image_id": "p027-image-01",
          "pages": [
            27
          ],
          "url": "/go-bank/pdf-p027-01.png",
          "span_ids": [],
          "id": "q-p025-h01-b011",
          "markdown_line": 126
        },
        {
          "kind": "prose",
          "text": "当MO返回时，它必须尝试取得一个P来运行goroutine，一般情况下，它会从其他的OS线程那里拿一个P过来，如果没有拿到的话，它就把goroutine放在一个global runqueue里，然后自己睡眠（放入线程缓存里）。所有的P也会周期性的检查global runqueue并运行其中的goroutine，否则global runqueue上的goroutine永远无法执行。另一种情况是P所分配的任务G很快就执行完了（分配不均），这就导致了这个处理器P很忙，但是其他的P还有任务，此时如果global runqueue没有任务G了，那么P不得不从其他的P里拿一些G来执行。",
          "language": null,
          "pages": [
            27
          ],
          "span_ids": [
            "p027-t0002",
            "p027-t0003",
            "p027-t0004",
            "p027-t0005",
            "p027-t0006",
            "p027-t0007",
            "p027-t0008",
            "p027-t0009",
            "p027-t0010",
            "p027-t0011",
            "p027-t0012",
            "p027-t0014",
            "p027-t0016",
            "p027-t0017",
            "p027-t0018",
            "p027-t0019",
            "p027-t0020",
            "p027-t0021",
            "p027-t0022",
            "p027-t0023",
            "p027-t0025",
            "p027-t0026",
            "p027-t0027",
            "p027-t0028",
            "p027-t0029",
            "p027-t0030",
            "p027-t0031",
            "p027-t0032",
            "p027-t0033",
            "p027-t0035",
            "p027-t0036",
            "p027-t0037",
            "p027-t0038",
            "p027-t0039",
            "p027-t0040",
            "p027-t0041",
            "p027-t0042",
            "p027-t0043",
            "p027-t0044",
            "p027-t0046",
            "p027-t0047",
            "p027-t0048",
            "p027-t0049",
            "p027-t0050",
            "p027-t0051",
            "p027-t0052",
            "p027-t0053",
            "p027-t0054",
            "p027-t0055",
            "p027-t0056",
            "p027-t0057"
          ],
          "operations": [],
          "id": "q-p025-h01-b012",
          "markdown_line": 128
        },
        {
          "kind": "image",
          "image_id": "p027-image-02",
          "pages": [
            27
          ],
          "url": "/go-bank/pdf-p027-02.png",
          "span_ids": [],
          "id": "q-p025-h01-b013",
          "markdown_line": 130
        },
        {
          "kind": "prose",
          "text": "通常来说，如果P从其他的P那里要拿任务的话，一般就拿run queue的一半，这就确保了每个OS线程都能充分的使用。",
          "language": null,
          "pages": [
            27
          ],
          "span_ids": [
            "p027-t0059",
            "p027-t0060",
            "p027-t0061",
            "p027-t0062",
            "p027-t0063",
            "p027-t0064",
            "p027-t0065",
            "p027-t0066",
            "p027-t0067",
            "p027-t0068",
            "p027-t0070"
          ],
          "operations": [],
          "id": "q-p025-h01-b014",
          "markdown_line": 132
        }
      ],
      "markdown_line": 102
    },
    {
      "id": "q-p027-h01",
      "title": "Golang 中常用的并发模型",
      "heading-id": "p027-h01",
      "source-page": 27,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p027-h01",
      "pages": [
        27,
        28,
        29,
        30
      ],
      "page-range": [
        27,
        30
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Golang 中常用的并发模型有三种：",
          "language": null,
          "pages": [
            27
          ],
          "span_ids": [
            "p027-t0076",
            "p027-t0077",
            "p027-t0079"
          ],
          "operations": [],
          "id": "q-p027-h01-b001",
          "markdown_line": 138
        },
        {
          "kind": "prose",
          "text": "1. 通过channel通知实现并发控制无缓冲的通道指的是通道的大小为0，也就是说，这种类型的通道在接收前没有能力保存任何值，它要求发送 goroutine 和接收 goroutine 同时准备好，才可以完成发送和接收操作。从上面无缓冲的通道定义来看，发送 goroutine 和接收 gouroutine 必须是同步的，同时准备后，如果没有同时准备好的话，先执行的操作就会阻塞等待，直到另一个相对应的操作准备好为止。这种无缓冲的通道我们也称之为同步通道",
          "language": null,
          "pages": [
            27,
            28
          ],
          "span_ids": [
            "p027-t0080",
            "p027-t0081",
            "p027-t0082",
            "p027-t0083",
            "p028-t0002",
            "p028-t0003",
            "p028-t0004",
            "p028-t0005",
            "p028-t0006",
            "p028-t0007",
            "p028-t0008",
            "p028-t0009",
            "p028-t0011",
            "p028-t0012",
            "p028-t0013",
            "p028-t0014",
            "p028-t0015",
            "p028-t0016",
            "p028-t0018",
            "p028-t0019",
            "p028-t0021",
            "p028-t0022"
          ],
          "operations": [],
          "id": "q-p027-h01-b002",
          "markdown_line": 140
        },
        {
          "kind": "code",
          "text": "func main() {\n\tch := make(chan struct{})\n\tgo func() {\n\t\tfmt.Println(\"start working\")\n\t\ttime.Sleep(time.Second * 1)\n\t\tch <- struct{}{}\n\t}()\n\t<-ch\n\tfmt.Println(\"finished\")\n}",
          "language": "go",
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0118",
            "p028-t0119",
            "p028-t0120",
            "p028-t0121",
            "p028-t0122",
            "p028-t0123",
            "p028-t0124",
            "p028-t0125",
            "p028-t0126",
            "p028-t0127"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p027-h01-b003",
          "markdown_line": 142
        },
        {
          "kind": "prose",
          "text": "当主 goroutine 运行到 <-ch 接受 channel 的值的时候，如果该 channel 中没有数据，就会一直阻塞等待，直到有值。这样就可以简单实现并发控制",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0025",
            "p028-t0026",
            "p028-t0027",
            "p028-t0028",
            "p028-t0029",
            "p028-t0030",
            "p028-t0031",
            "p028-t0032",
            "p028-t0033",
            "p028-t0034",
            "p028-t0036",
            "p028-t0038"
          ],
          "operations": [],
          "id": "q-p027-h01-b004",
          "markdown_line": 155
        },
        {
          "kind": "prose",
          "text": "2. 通过sync包中的WaitGroup实现并发控制",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0040",
            "p028-t0041",
            "p028-t0042",
            "p028-t0043",
            "p028-t0044",
            "p028-t0045"
          ],
          "operations": [],
          "id": "q-p027-h01-b005",
          "markdown_line": 157
        },
        {
          "kind": "prose",
          "text": "Goroutine是异步执行的，有的时候为了防止在结束mian函数的时候结束掉Goroutine，所以需要同步等待，这个时候就需要用 WaitGroup了，在 sync 包中，提供了 WaitGroup，它会等待它收集的所有goroutine 任务全部完成。在WaitGroup里主要有三个方法:",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0047",
            "p028-t0048",
            "p028-t0049",
            "p028-t0050",
            "p028-t0051",
            "p028-t0052",
            "p028-t0053",
            "p028-t0055",
            "p028-t0056",
            "p028-t0057",
            "p028-t0058",
            "p028-t0059",
            "p028-t0060",
            "p028-t0061",
            "p028-t0063",
            "p028-t0064",
            "p028-t0065",
            "p028-t0066",
            "p028-t0067"
          ],
          "operations": [],
          "id": "q-p027-h01-b006",
          "markdown_line": 159
        },
        {
          "kind": "prose",
          "text": "1. Add, 可以添加或减少 goroutine的数量.",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0068",
            "p028-t0069",
            "p028-t0070",
            "p028-t0071",
            "p028-t0072"
          ],
          "operations": [],
          "id": "q-p027-h01-b007",
          "markdown_line": 161
        },
        {
          "kind": "prose",
          "text": "2. Done, 相当于Add(-1).",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0073",
            "p028-t0074",
            "p028-t0075"
          ],
          "operations": [],
          "id": "q-p027-h01-b008",
          "markdown_line": 163
        },
        {
          "kind": "prose",
          "text": "3. Wait, 执行后会堵塞主线程，直到WaitGroup 里的值减至0.",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0076",
            "p028-t0077",
            "p028-t0078",
            "p028-t0079",
            "p028-t0080"
          ],
          "operations": [],
          "id": "q-p027-h01-b009",
          "markdown_line": 165
        },
        {
          "kind": "prose",
          "text": "在主 goroutine 中 Add(delta int) 索要等待goroutine 的数量。在每一个 goroutine 完成后 Done() 表示这一个 goroutine 已经完成，当所有的 goroutine 都完成后，在主 goroutine 中 WaitGroup 返回",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0081",
            "p028-t0082",
            "p028-t0083",
            "p028-t0084",
            "p028-t0085",
            "p028-t0086",
            "p028-t0087",
            "p028-t0089",
            "p028-t0090",
            "p028-t0091",
            "p028-t0092",
            "p028-t0093",
            "p028-t0094",
            "p028-t0095",
            "p028-t0096",
            "p028-t0097",
            "p028-t0098",
            "p028-t0099",
            "p028-t0100",
            "p028-t0101",
            "p028-t0102"
          ],
          "operations": [],
          "id": "q-p027-h01-b010",
          "markdown_line": 167
        },
        {
          "kind": "code",
          "text": "func main() {\n\tvar wg sync.WaitGroup\n\tvar urls = []string{\n\t\t\"http://www.golang.org/\",\n\t\t\"http://www.google.com/\",\n\t}\n\tfor _, url := range urls {\n\t\twg.Add(1)\n\t\tgo func(url string) {\n\t\t\tdefer wg.Done()\n\t\t\thttp.Get(url)\n\t\t}(url)\n\t}\n\twg.Wait()\n}",
          "language": "go",
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0128",
            "p028-t0129",
            "p028-t0130",
            "p028-t0131",
            "p028-t0132",
            "p028-t0133",
            "p028-t0134",
            "p028-t0135",
            "p028-t0136",
            "p028-t0137",
            "p028-t0138",
            "p028-t0139",
            "p028-t0140",
            "p028-t0141",
            "p028-t0142"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p027-h01-b011",
          "markdown_line": 169
        },
        {
          "kind": "prose",
          "text": "在Golang官网中对于WaitGroup介绍是 A WaitGroup must not be copied after first use ,在WaitGroup 第一次使用后，不能被拷⻉应用示例:",
          "language": null,
          "pages": [
            28
          ],
          "span_ids": [
            "p028-t0105",
            "p028-t0106",
            "p028-t0107",
            "p028-t0108",
            "p028-t0109",
            "p028-t0110",
            "p028-t0111",
            "p028-t0113",
            "p028-t0114",
            "p028-t0116",
            "p028-t0117"
          ],
          "operations": [],
          "id": "q-p027-h01-b012",
          "markdown_line": 187
        },
        {
          "kind": "code",
          "text": "func main() {\n\twg := sync.WaitGroup{}\n\tfor i := 0; i < 5; i++ {\n\t\twg.Add(1)\n\t\tgo func(wg sync.WaitGroup, i int) {\n\t\t\tfmt.Printf(\"i:%d\", i)\n\t\t\twg.Done()\n\t\t}(wg, i)\n\t}\n\twg.Wait()\n\tfmt.Println(\"exit\")\n}",
          "language": "go",
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0122",
            "p029-t0123",
            "p029-t0124",
            "p029-t0125",
            "p029-t0126",
            "p029-t0127",
            "p029-t0128",
            "p029-t0129",
            "p029-t0130",
            "p029-t0131",
            "p029-t0132",
            "p029-t0133"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p027-h01-b013",
          "markdown_line": 189
        },
        {
          "kind": "prose",
          "text": "运行:",
          "language": null,
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0002",
            "p029-t0003"
          ],
          "operations": [],
          "id": "q-p027-h01-b014",
          "markdown_line": 204
        },
        {
          "kind": "code",
          "text": "i:1i:3i:2i:0i:4fatal error: all goroutines are asleep - deadlock!\ngoroutine 1 [semacquire]:\nsync.runtime_Semacquire(0xc000094018)\n /home/keke/soft/go/src/runtime/sema.go:56 +0x39\nsync.(*WaitGroup).Wait(0xc000094010)\n /home/keke/soft/go/src/sync/waitgroup.go:130 +0x64\nmain.main()\n /home/keke/go/Test/wait.go:17 +0xab\nexit status 2",
          "language": "text",
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0134",
            "p029-t0135",
            "p029-t0136",
            "p029-t0137",
            "p029-t0138",
            "p029-t0139",
            "p029-t0140",
            "p029-t0141",
            "p029-t0142"
          ],
          "operations": [],
          "id": "q-p027-h01-b015",
          "markdown_line": 206
        },
        {
          "kind": "prose",
          "text": "它提示所有的 goroutine 都已经睡眠了，出现了死锁。这是因为 wg 给拷⻉传递到了 goroutine 中，导致只有 Add 操作，其实 Done操作是在 wg 的副本执行的。因此 Wait 就死锁了。这个第一个修改方式:将匿名函数中 wg 的传入类型改为 *sync.WaitGrou,这样就能引用到正确的WaitGroup了。这个第二个修改方式:将匿名函数中的 wg 的传入参数去掉，因为Go支持闭包类型，在匿名函数中可以直接使用外面的 wg 变量",
          "language": null,
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0005",
            "p029-t0006",
            "p029-t0007",
            "p029-t0008",
            "p029-t0009",
            "p029-t0010",
            "p029-t0011",
            "p029-t0012",
            "p029-t0013",
            "p029-t0014",
            "p029-t0015",
            "p029-t0016",
            "p029-t0017",
            "p029-t0018",
            "p029-t0020",
            "p029-t0021",
            "p029-t0022",
            "p029-t0024",
            "p029-t0025",
            "p029-t0026",
            "p029-t0027",
            "p029-t0028",
            "p029-t0029",
            "p029-t0030",
            "p029-t0031",
            "p029-t0032",
            "p029-t0034",
            "p029-t0036",
            "p029-t0037",
            "p029-t0038",
            "p029-t0039",
            "p029-t0040",
            "p029-t0041",
            "p029-t0042",
            "p029-t0043",
            "p029-t0045",
            "p029-t0046",
            "p029-t0047"
          ],
          "operations": [],
          "id": "q-p027-h01-b016",
          "markdown_line": 218
        },
        {
          "kind": "prose",
          "text": "3. 在Go 1.7 以后引进的强大的Context上下文，实现并发控制",
          "language": null,
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0049",
            "p029-t0050",
            "p029-t0051",
            "p029-t0052",
            "p029-t0053",
            "p029-t0054"
          ],
          "operations": [],
          "id": "q-p027-h01-b017",
          "markdown_line": 220
        },
        {
          "kind": "prose",
          "text": "通常,在一些简单场景下使用 channel 和 WaitGroup 已经足够了，但是当面临一些复杂多变的网络并发场景下 channel 和 WaitGroup 显得有些力不从心了。比如一个网络请求 Request，每个 Request 都需要开启一个 goroutine 做一些事情，这些 goroutine 又可能会开启其他的 goroutine，比如数据库和RPC服务。所以我们需要一种可以跟踪 goroutine 的方案，才可以达到控制他们的目的，这就是Go语言为我们提供的 Context，称之为上下文非常贴切，它就是goroutine 的上下文。它是包括一个程序的运行环境、现场和快照等。每个程序要运行时，都需要知道当前程序的运行状态，通常Go 将这些封装在一个 Context 里，再将它传给要执行的 goroutine context 包主要是用来处理多个 goroutine 之间共享数据，及多个 goroutine 的管理。 context 包的核心是 struct Context，接口声明如下：",
          "language": null,
          "pages": [
            29
          ],
          "span_ids": [
            "p029-t0057",
            "p029-t0058",
            "p029-t0059",
            "p029-t0060",
            "p029-t0061",
            "p029-t0062",
            "p029-t0063",
            "p029-t0064",
            "p029-t0065",
            "p029-t0066",
            "p029-t0067",
            "p029-t0068",
            "p029-t0070",
            "p029-t0071",
            "p029-t0072",
            "p029-t0073",
            "p029-t0074",
            "p029-t0075",
            "p029-t0076",
            "p029-t0077",
            "p029-t0078",
            "p029-t0079",
            "p029-t0080",
            "p029-t0081",
            "p029-t0082",
            "p029-t0083",
            "p029-t0085",
            "p029-t0087",
            "p029-t0088",
            "p029-t0089",
            "p029-t0090",
            "p029-t0091",
            "p029-t0092",
            "p029-t0093",
            "p029-t0094",
            "p029-t0096",
            "p029-t0097",
            "p029-t0098",
            "p029-t0100",
            "p029-t0101",
            "p029-t0103",
            "p029-t0104",
            "p029-t0105",
            "p029-t0106",
            "p029-t0107",
            "p029-t0108",
            "p029-t0109",
            "p029-t0110",
            "p029-t0111",
            "p029-t0112",
            "p029-t0113",
            "p029-t0114",
            "p029-t0115",
            "p029-t0116",
            "p029-t0117",
            "p029-t0118",
            "p029-t0119",
            "p029-t0120"
          ],
          "operations": [],
          "id": "q-p027-h01-b018",
          "markdown_line": 222
        },
        {
          "kind": "code",
          "text": "// A Context carries a deadline, cancelation signal, and request-scoped values\n// across API boundaries. Its methods are safe for simultaneous use by multiple\n// goroutines.\ntype Context interface {\n\t// Done returns a channel that is closed when this `Context` is canceled\n\t// or times out.\n\tDone() <-chan struct{}\n\t// Err indicates why this Context was canceled, after the Done channel\n\t// is closed.\n\tErr() error\n\t// Deadline returns the time when this Context will be canceled, if any.\n\tDeadline() (deadline time.Time, ok bool)\n\t// Value returns the value associated with key or nil if none.\n\tValue(key interface{}) interface{}\n}",
          "language": "go",
          "pages": [
            29,
            30
          ],
          "span_ids": [
            "p029-t0143",
            "p029-t0144",
            "p029-t0145",
            "p029-t0146",
            "p029-t0147",
            "p029-t0148",
            "p029-t0149",
            "p029-t0150",
            "p029-t0151",
            "p029-t0152",
            "p030-t0204",
            "p030-t0205",
            "p030-t0206",
            "p030-t0207",
            "p030-t0208"
          ],
          "operations": [
            {
              "kind": "gofmt-whitespace"
            }
          ],
          "id": "q-p027-h01-b019",
          "markdown_line": 224
        },
        {
          "kind": "prose",
          "text": "Done() 返回一个只能接受数据的channel类型，当该context关闭或者超时时间到了的时候，该channel就会有一个取消信号 Err() 在Done() 之后，返回context 取消的原因。 Deadline() 设置该context cancel的时间点 Value() 方法允许 Context 对象携带request作用域的数据，该数据必须是线程安全的。 Context 对象是线程安全的，你可以把一个 Context 对象传递给任意个数的 gorotuine，对它执行取消操作时，所有 goroutine 都会接收到取消信号。一个 Context 不能拥有 Cancel 方法，同时我们也只能Done channel 接收数据。其中的原因是一致的：接收取消信号的函数和发送信号的函数通常不是一个。典型的场景是：父操作为子操作操作启动 goroutine，子操作也就不能取消父操作",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0001",
            "p030-t0002",
            "p030-t0003",
            "p030-t0004",
            "p030-t0005",
            "p030-t0006",
            "p030-t0007",
            "p030-t0008",
            "p030-t0010",
            "p030-t0011",
            "p030-t0012",
            "p030-t0013",
            "p030-t0014",
            "p030-t0015",
            "p030-t0016",
            "p030-t0017",
            "p030-t0018",
            "p030-t0019",
            "p030-t0020",
            "p030-t0021",
            "p030-t0022",
            "p030-t0023",
            "p030-t0024",
            "p030-t0025",
            "p030-t0026",
            "p030-t0028",
            "p030-t0029",
            "p030-t0030",
            "p030-t0031",
            "p030-t0032",
            "p030-t0033",
            "p030-t0035",
            "p030-t0037",
            "p030-t0039",
            "p030-t0040",
            "p030-t0041",
            "p030-t0043",
            "p030-t0044",
            "p030-t0045",
            "p030-t0046",
            "p030-t0047",
            "p030-t0049",
            "p030-t0050",
            "p030-t0052",
            "p030-t0054",
            "p030-t0055",
            "p030-t0057",
            "p030-t0058",
            "p030-t0059"
          ],
          "operations": [],
          "id": "q-p027-h01-b020",
          "markdown_line": 242
        }
      ],
      "markdown_line": 134
    },
    {
      "id": "q-p030-h01",
      "title": "并发编程概念是什么？",
      "heading-id": "p030-h01",
      "source-page": 30,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p030-h01",
      "pages": [
        30
      ],
      "page-range": [
        30,
        30
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "并行是指两个或者多个事件在同一时刻发生；并发是指两个或多个事件在同一时间间隔发生。并行是在不同实体上的多个事件，并发是在同一实体上的多个事件。在一台处理器上“同时”处理多个任务，在多台处理器上同时处理多个任务。如hadoop分布式集群并发偏重于多个任务交替执行，而多个任务之间有可能还是串行的。而并行是真正意义上的“同时执行”。并发编程是指在一台处理器上“同时”处理多个任务。并发是在同一实体上的多个事件。多个事件在同一时间间隔发生。并发编程的目标是充分的利用处理器的每一个核，以达到最高的处理性能。",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0064",
            "p030-t0066",
            "p030-t0067",
            "p030-t0068",
            "p030-t0069",
            "p030-t0070",
            "p030-t0071",
            "p030-t0073",
            "p030-t0074",
            "p030-t0075",
            "p030-t0077",
            "p030-t0078",
            "p030-t0079",
            "p030-t0080",
            "p030-t0081",
            "p030-t0082",
            "p030-t0084",
            "p030-t0085",
            "p030-t0086",
            "p030-t0087",
            "p030-t0088",
            "p030-t0089",
            "p030-t0091",
            "p030-t0092"
          ],
          "operations": [],
          "id": "q-p030-h01-b001",
          "markdown_line": 248
        }
      ],
      "markdown_line": 244
    },
    {
      "id": "q-p030-h02",
      "title": "Mutex 几种状态",
      "heading-id": "p030-h02",
      "source-page": 30,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p030-h02",
      "pages": [
        30
      ],
      "page-range": [
        30,
        30
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. mutexLocked — 表示互斥锁的锁定状态；",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0098",
            "p030-t0099"
          ],
          "operations": [],
          "id": "q-p030-h02-b001",
          "markdown_line": 254
        },
        {
          "kind": "prose",
          "text": "2. mutexWoken — 表示从正常模式被从唤醒；",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0101",
            "p030-t0102"
          ],
          "operations": [],
          "id": "q-p030-h02-b002",
          "markdown_line": 256
        },
        {
          "kind": "prose",
          "text": "3. mutexStarving — 当前的互斥锁进入饥饿状态；",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0103",
            "p030-t0104"
          ],
          "operations": [],
          "id": "q-p030-h02-b003",
          "markdown_line": 258
        },
        {
          "kind": "prose",
          "text": "4. waitersCount — 当前互斥锁上等待的 Goroutine 个数；",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0105",
            "p030-t0106",
            "p030-t0107",
            "p030-t0108"
          ],
          "operations": [],
          "id": "q-p030-h02-b004",
          "markdown_line": 260
        }
      ],
      "markdown_line": 250
    },
    {
      "id": "q-p030-h03",
      "title": "Mutex 正常模式和饥饿模式",
      "heading-id": "p030-h03",
      "source-page": 30,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p030-h03",
      "pages": [
        30
      ],
      "page-range": [
        30,
        30
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "正常模式（非公平锁）正常模式下，所有等待锁的 goroutine 按照 FIFO（先进先出）顺序等待。唤醒的 goroutine 不会直接拥有锁，而是会和新请求 goroutine 竞争锁。新请求的 goroutine 更容易抢占：因为它正在 CPU 上执行，所以刚刚唤醒的 goroutine 20 有很大可能在锁竞争中失败。在这种情况下，这个被唤醒的goroutine 会加入到等待队列的前面。饥饿模式（公平锁）为了解决了等待 goroutine 队列的长尾问题饥饿模式下，直接由 unlock 把锁交给等待队列中排在第一位的 goroutine (队头)，同时，饥饿模式下，新进来的 goroutine 不会参与抢锁也不会进入自旋状态，会直接进入等待队列的尾部。这样很好的解决了老的 goroutine 一直抢不到锁的场景。饥饿模式的触发条件：当一个 goroutine 等待锁时间超过 1 毫秒时，或者当前队列只剩下一个 goroutine 的时候， Mutex 切换到饥饿模式。总结对于两种模式，正常模式下的性能是最好的，goroutine 可以连续多次获取锁，饥饿模式解决了取锁公平的问题，但是性能会下降，这其实是性能和公平的一个平衡模式。",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0115",
            "p030-t0117",
            "p030-t0118",
            "p030-t0119",
            "p030-t0120",
            "p030-t0121",
            "p030-t0123",
            "p030-t0124",
            "p030-t0125",
            "p030-t0126",
            "p030-t0127",
            "p030-t0128",
            "p030-t0129",
            "p030-t0130",
            "p030-t0131",
            "p030-t0132",
            "p030-t0133",
            "p030-t0134",
            "p030-t0135",
            "p030-t0137",
            "p030-t0138",
            "p030-t0140",
            "p030-t0142",
            "p030-t0144",
            "p030-t0145",
            "p030-t0146",
            "p030-t0148",
            "p030-t0149",
            "p030-t0150",
            "p030-t0151",
            "p030-t0152",
            "p030-t0153",
            "p030-t0155",
            "p030-t0156",
            "p030-t0157",
            "p030-t0158",
            "p030-t0159",
            "p030-t0161",
            "p030-t0162",
            "p030-t0163",
            "p030-t0164",
            "p030-t0166",
            "p030-t0168",
            "p030-t0169",
            "p030-t0170",
            "p030-t0171",
            "p030-t0172",
            "p030-t0173",
            "p030-t0175",
            "p030-t0176",
            "p030-t0177",
            "p030-t0178",
            "p030-t0179",
            "p030-t0181",
            "p030-t0183",
            "p030-t0184",
            "p030-t0185",
            "p030-t0187",
            "p030-t0188",
            "p030-t0190"
          ],
          "operations": [],
          "id": "q-p030-h03-b001",
          "markdown_line": 266
        }
      ],
      "markdown_line": 262
    },
    {
      "id": "q-p030-h04",
      "title": "Mutex 允许自旋的条件",
      "heading-id": "p030-h04",
      "source-page": 30,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p030-h04",
      "pages": [
        30,
        31
      ],
      "page-range": [
        30,
        31
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 锁已被占用，并且锁不处于饥饿模式。",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0196",
            "p030-t0197"
          ],
          "operations": [],
          "id": "q-p030-h04-b001",
          "markdown_line": 272
        },
        {
          "kind": "prose",
          "text": "2. 积累的自旋次数小于最大自旋次数（active_spin=4）。",
          "language": null,
          "pages": [
            30
          ],
          "span_ids": [
            "p030-t0199",
            "p030-t0200",
            "p030-t0201",
            "p030-t0202"
          ],
          "operations": [],
          "id": "q-p030-h04-b002",
          "markdown_line": 274
        },
        {
          "kind": "prose",
          "text": "3. CPU 核数大于 1。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0001",
            "p031-t0002",
            "p031-t0003",
            "p031-t0004"
          ],
          "operations": [],
          "id": "q-p030-h04-b003",
          "markdown_line": 276
        },
        {
          "kind": "prose",
          "text": "4. 有空闲的 P。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0006",
            "p031-t0007",
            "p031-t0008",
            "p031-t0009"
          ],
          "operations": [],
          "id": "q-p030-h04-b004",
          "markdown_line": 278
        },
        {
          "kind": "prose",
          "text": "5. 当前 Goroutine 所挂载的 P 下，本地待运行队列为空。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0011",
            "p031-t0012",
            "p031-t0013",
            "p031-t0014",
            "p031-t0015",
            "p031-t0016"
          ],
          "operations": [],
          "id": "q-p030-h04-b005",
          "markdown_line": 280
        }
      ],
      "markdown_line": 268
    },
    {
      "id": "q-p031-h01",
      "title": "RWMutex 实现",
      "heading-id": "p031-h01",
      "source-page": 31,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p031-h01",
      "pages": [
        31
      ],
      "page-range": [
        31,
        31
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "通过记录 readerCount 读锁的数量来进行控制，当有一个写锁的时候，会将读锁数量设置为负数 1<<30。目的是让新进入的读锁等待之前的写锁释放通知读锁。同样的当有写锁进行抢占时，也会等待之前的读锁都释放完毕，才会开始 21 进行后续的操作。而等写锁释放完之后，会将值重新加上 1<<30, 并通知刚才新进入的读锁（rw.readerSem），两者互相限制。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0163",
            "p031-t0165",
            "p031-t0167",
            "p031-t0169",
            "p031-t0164",
            "p031-t0168",
            "p031-t0170",
            "p031-t0172",
            "p031-t0173",
            "p031-t0174",
            "p031-t0175",
            "p031-t0177",
            "p031-t0178",
            "p031-t0179",
            "p031-t0181",
            "p031-t0182",
            "p031-t0184",
            "p031-t0183"
          ],
          "operations": [],
          "id": "q-p031-h01-b001",
          "markdown_line": 286
        }
      ],
      "markdown_line": 282
    },
    {
      "id": "q-p031-h02",
      "title": "RWMutex 注意事项",
      "heading-id": "p031-h02",
      "source-page": 31,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p031-h02",
      "pages": [
        31
      ],
      "page-range": [
        31,
        31
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. RWMutex 是单写多读锁，该锁可以加多个读锁或者一个写锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0026",
            "p031-t0027"
          ],
          "operations": [],
          "id": "q-p031-h02-b001",
          "markdown_line": 292
        },
        {
          "kind": "prose",
          "text": "2. 读锁占用的情况下会阻止写，不会阻止读，多个 Goroutine 可以同时获取读锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0029",
            "p031-t0030",
            "p031-t0031",
            "p031-t0032",
            "p031-t0034"
          ],
          "operations": [],
          "id": "q-p031-h02-b002",
          "markdown_line": 294
        },
        {
          "kind": "prose",
          "text": "3. 写锁会阻止其他 Goroutine（无论读和写）进来，整个锁由该 Goroutine 独占",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0035",
            "p031-t0036",
            "p031-t0037",
            "p031-t0038",
            "p031-t0039",
            "p031-t0040"
          ],
          "operations": [],
          "id": "q-p031-h02-b003",
          "markdown_line": 296
        },
        {
          "kind": "prose",
          "text": "4. 适用于读多写少的场景",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0042",
            "p031-t0043"
          ],
          "operations": [],
          "id": "q-p031-h02-b004",
          "markdown_line": 298
        },
        {
          "kind": "prose",
          "text": "5. RWMutex 类型变量的零值是一个未锁定状态的互斥锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0045",
            "p031-t0046"
          ],
          "operations": [],
          "id": "q-p031-h02-b005",
          "markdown_line": 300
        },
        {
          "kind": "prose",
          "text": "6. RWMutex 在首次被使用之后就不能再被拷贝",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0048",
            "p031-t0049"
          ],
          "operations": [],
          "id": "q-p031-h02-b006",
          "markdown_line": 302
        },
        {
          "kind": "prose",
          "text": "7. RWMutex 的读锁或写锁在未锁定状态，解锁操作都会引发 panic",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0051",
            "p031-t0052",
            "p031-t0053"
          ],
          "operations": [],
          "id": "q-p031-h02-b007",
          "markdown_line": 304
        },
        {
          "kind": "prose",
          "text": "8. RWMutex 的一个写锁去锁定临界区的共享资源，如果临界区的共享资源已被（读锁或写锁）锁定，这个写锁操作的 goroutine 将被阻塞直到解锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0054",
            "p031-t0055",
            "p031-t0057",
            "p031-t0058",
            "p031-t0059",
            "p031-t0060"
          ],
          "operations": [],
          "id": "q-p031-h02-b008",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "9. RWMutex 的读锁不要用于递归调用，比较容易产生死锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0061",
            "p031-t0062"
          ],
          "operations": [],
          "id": "q-p031-h02-b009",
          "markdown_line": 308
        },
        {
          "kind": "prose",
          "text": "10. RWMutex 的锁定状态与特定的 goroutine 没有关联。一个 goroutine 可以 RLock（Lock），另一个 goroutine 可以 RUnlock（Unlock）",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0064",
            "p031-t0065",
            "p031-t0066",
            "p031-t0067",
            "p031-t0068",
            "p031-t0069",
            "p031-t0071",
            "p031-t0072",
            "p031-t0073",
            "p031-t0074",
            "p031-t0075",
            "p031-t0076",
            "p031-t0077",
            "p031-t0078",
            "p031-t0079",
            "p031-t0080",
            "p031-t0081",
            "p031-t0082"
          ],
          "operations": [],
          "id": "q-p031-h02-b010",
          "markdown_line": 310
        },
        {
          "kind": "prose",
          "text": "11. 写锁被解锁后，所有因操作锁定读锁而被阻塞的 goroutine 会被唤醒，并都可以成功锁定读锁",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0083",
            "p031-t0084",
            "p031-t0085",
            "p031-t0086",
            "p031-t0088"
          ],
          "operations": [],
          "id": "q-p031-h02-b011",
          "markdown_line": 312
        },
        {
          "kind": "prose",
          "text": "12. 读锁被解锁后，在没有被其他读锁锁定的前提下，所有因操作锁定写锁而被阻塞的 Goroutine，其中等待时间最长的一个 Goroutine 会被唤醒",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0090",
            "p031-t0091",
            "p031-t0093",
            "p031-t0094",
            "p031-t0095",
            "p031-t0096",
            "p031-t0097",
            "p031-t0098"
          ],
          "operations": [],
          "id": "q-p031-h02-b012",
          "markdown_line": 314
        }
      ],
      "markdown_line": 288
    },
    {
      "id": "q-p031-h03",
      "title": "Cond 是什么",
      "heading-id": "p031-h03",
      "source-page": 31,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p031-h03",
      "pages": [
        31
      ],
      "page-range": [
        31,
        31
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Cond 实现了一种条件变量，可以使用在多个 Reader 等待共享资源 ready 的场景（如果只有一读一写，一个锁或者 channel 就搞定了） 22 每个 Cond 都会关联一个 Lock（*sync.Mutex or *sync.RWMutex），当修改条件或者调用 Wait 方法时，必须加锁，保护 condition。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0104",
            "p031-t0105",
            "p031-t0106",
            "p031-t0107",
            "p031-t0108",
            "p031-t0109",
            "p031-t0111",
            "p031-t0112",
            "p031-t0113",
            "p031-t0114",
            "p031-t0115",
            "p031-t0116",
            "p031-t0117",
            "p031-t0118",
            "p031-t0119",
            "p031-t0120",
            "p031-t0121",
            "p031-t0122",
            "p031-t0123",
            "p031-t0125",
            "p031-t0126",
            "p031-t0127",
            "p031-t0128",
            "p031-t0129"
          ],
          "operations": [],
          "id": "q-p031-h03-b001",
          "markdown_line": 320
        }
      ],
      "markdown_line": 316
    },
    {
      "id": "q-p031-h04",
      "title": "Broadcast 和 Signal 区别",
      "heading-id": "p031-h04",
      "source-page": 31,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p031-h04",
      "pages": [
        31
      ],
      "page-range": [
        31,
        31
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "func (c *Cond) Broadcast() Broadcast 会唤醒所有等待 c 的 goroutine。调用 Broadcast 的时候，可以加锁，也可以不加锁。 func (c *Cond) Signal() Signal 只唤醒 1 个等待 c 的 goroutine。调用 Signal 的时候，可以加锁，也可以不加锁。",
          "language": null,
          "pages": [
            31
          ],
          "span_ids": [
            "p031-t0137",
            "p031-t0138",
            "p031-t0139",
            "p031-t0140",
            "p031-t0141",
            "p031-t0142",
            "p031-t0143",
            "p031-t0145",
            "p031-t0146",
            "p031-t0147",
            "p031-t0149",
            "p031-t0150",
            "p031-t0151",
            "p031-t0152",
            "p031-t0153",
            "p031-t0154",
            "p031-t0155",
            "p031-t0156",
            "p031-t0157",
            "p031-t0159",
            "p031-t0160",
            "p031-t0161"
          ],
          "operations": [],
          "id": "q-p031-h04-b001",
          "markdown_line": 326
        }
      ],
      "markdown_line": 322
    },
    {
      "id": "q-p032-h01",
      "title": "Cond 中 Wait 使用",
      "heading-id": "p032-h01",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h01",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "func (c *Cond) Wait() Wait()会自动释放 c.L 锁，并挂起调用者的 goroutine。之后恢复执行， Wait()会在返回时对 c.L 加锁。除非被 Signal 或者 Broadcast 唤醒，否则 Wait()不会返回。由于 Wait()第一次恢复时，C.L 并没有加锁，所以当 Wait 返回时，调用者通常并不能假设条件为真。如下代码：。取而代之的是, 调用者应该在循环中调用 Wait。（简单来说，只要想使用 condition，就必须加锁。）",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0007",
            "p032-t0008",
            "p032-t0009",
            "p032-t0010",
            "p032-t0011",
            "p032-t0012",
            "p032-t0013",
            "p032-t0014",
            "p032-t0015",
            "p032-t0016",
            "p032-t0017",
            "p032-t0019",
            "p032-t0020",
            "p032-t0021",
            "p032-t0022",
            "p032-t0023",
            "p032-t0024",
            "p032-t0025",
            "p032-t0027",
            "p032-t0028",
            "p032-t0029",
            "p032-t0030",
            "p032-t0031",
            "p032-t0032",
            "p032-t0033",
            "p032-t0034",
            "p032-t0036",
            "p032-t0038",
            "p032-t0039",
            "p032-t0040",
            "p032-t0041",
            "p032-t0042",
            "p032-t0043",
            "p032-t0044",
            "p032-t0045"
          ],
          "operations": [],
          "id": "q-p032-h01-b001",
          "markdown_line": 332
        },
        {
          "kind": "code",
          "text": "c.L.Lock()\nfor !condition() {\n c.Wait()\n}\n... make use of condition ...\nc.L.Unlock()",
          "language": "go",
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0196",
            "p032-t0197",
            "p032-t0198",
            "p032-t0199",
            "p032-t0200",
            "p032-t0201"
          ],
          "operations": [],
          "id": "q-p032-h01-b002",
          "markdown_line": 334
        }
      ],
      "markdown_line": 328
    },
    {
      "id": "q-p032-h02",
      "title": "WaitGroup 用法",
      "heading-id": "p032-h02",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h02",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一个 WaitGroup 对象可以等待一组协程结束。使用方法是：",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0052",
            "p032-t0053",
            "p032-t0054"
          ],
          "operations": [],
          "id": "q-p032-h02-b001",
          "markdown_line": 347
        },
        {
          "kind": "prose",
          "text": "1. main 协程通过调用 wg.Add(delta int) 设置 worker 协程的个数，然后创建 worker 协程；",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0056",
            "p032-t0057",
            "p032-t0058",
            "p032-t0059",
            "p032-t0060",
            "p032-t0061",
            "p032-t0063",
            "p032-t0064",
            "p032-t0065"
          ],
          "operations": [],
          "id": "q-p032-h02-b002",
          "markdown_line": 349
        },
        {
          "kind": "prose",
          "text": "2. worker 协程执行结束以后，都要调用 wg.Done()；",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0067",
            "p032-t0068",
            "p032-t0069",
            "p032-t0070"
          ],
          "operations": [],
          "id": "q-p032-h02-b003",
          "markdown_line": 351
        },
        {
          "kind": "prose",
          "text": "3. main 协程调用 wg.Wait() 且被 block，直到所有 worker 协程全部执行结束后返回。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0072",
            "p032-t0073",
            "p032-t0074",
            "p032-t0075",
            "p032-t0076",
            "p032-t0077",
            "p032-t0078",
            "p032-t0079",
            "p032-t0081"
          ],
          "operations": [],
          "id": "q-p032-h02-b004",
          "markdown_line": 353
        }
      ],
      "markdown_line": 343
    },
    {
      "id": "q-p032-h03",
      "title": "WaitGroup 实现原理",
      "heading-id": "p032-h03",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h03",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. WaitGroup 主要维护了 2 个计数器，一个是请求计数器 v，一个是等待计数器 w，二者组成一个64bit 的值，请求计数器占高 32bit，等待计数器占低 32bit。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0087",
            "p032-t0088",
            "p032-t0089",
            "p032-t0090",
            "p032-t0091",
            "p032-t0092",
            "p032-t0094",
            "p032-t0095",
            "p032-t0096",
            "p032-t0098",
            "p032-t0099",
            "p032-t0100",
            "p032-t0101",
            "p032-t0102",
            "p032-t0103"
          ],
          "operations": [],
          "id": "q-p032-h03-b001",
          "markdown_line": 359
        },
        {
          "kind": "prose",
          "text": "2. 每次 Add 执行，请求计数器 v 加 1，Done 方法执行，等待计数器减 1，v 为 0 时通过信号量唤醒Wait()",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0105",
            "p032-t0106",
            "p032-t0107",
            "p032-t0108",
            "p032-t0109",
            "p032-t0110",
            "p032-t0111",
            "p032-t0112",
            "p032-t0113",
            "p032-t0114",
            "p032-t0115",
            "p032-t0116",
            "p032-t0117",
            "p032-t0118",
            "p032-t0119",
            "p032-t0120",
            "p032-t0122"
          ],
          "operations": [],
          "id": "q-p032-h03-b002",
          "markdown_line": 361
        }
      ],
      "markdown_line": 355
    },
    {
      "id": "q-p032-h04",
      "title": "什么是 sync.Once",
      "heading-id": "p032-h04",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h04",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Once 可以用来执行且仅仅执行一次动作，常常用于单例对象的初始化场景。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0126",
            "p032-t0127",
            "p032-t0129"
          ],
          "operations": [],
          "id": "q-p032-h04-b001",
          "markdown_line": 367
        },
        {
          "kind": "prose",
          "text": "2. Once 常常用来初始化单例资源，或者并发访问只需初始化一次的共享资源，或者在测试的时候初始化一次测试资源。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0131",
            "p032-t0132",
            "p032-t0134",
            "p032-t0135"
          ],
          "operations": [],
          "id": "q-p032-h04-b002",
          "markdown_line": 369
        },
        {
          "kind": "prose",
          "text": "3. sync.Once 只暴露了一个方法 Do，你可以多次调用 Do 方法，但是只有第一次调用 Do 方法时 f 参数才会执行，这里的 f 是一个无参数无返回值的函数。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0137",
            "p032-t0138",
            "p032-t0139",
            "p032-t0140",
            "p032-t0141",
            "p032-t0142",
            "p032-t0144",
            "p032-t0145",
            "p032-t0146",
            "p032-t0147",
            "p032-t0148",
            "p032-t0149",
            "p032-t0150",
            "p032-t0151",
            "p032-t0153"
          ],
          "operations": [],
          "id": "q-p032-h04-b003",
          "markdown_line": 371
        }
      ],
      "markdown_line": 363
    },
    {
      "id": "q-p032-h05",
      "title": "什么操作叫做原子操作",
      "heading-id": "p032-h05",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h05",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "原子操作即是进行过程中不能被中断的操作，针对某个值的原子操作在被进行的过程中，CPU 绝不会再去进行其他的针对该值的操作。为了实现这样的严谨性，原子操作仅会由一个独立的 CPU 指令代表和完成。原子操作是无锁的，常常直接通过 CPU 指令直接实现。事实上，其它同步技术的实现常常依赖于原子操作。",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0159",
            "p032-t0161",
            "p032-t0162",
            "p032-t0163",
            "p032-t0164",
            "p032-t0166",
            "p032-t0167",
            "p032-t0168",
            "p032-t0169",
            "p032-t0171",
            "p032-t0172",
            "p032-t0173",
            "p032-t0175",
            "p032-t0176",
            "p032-t0178"
          ],
          "operations": [],
          "id": "q-p032-h05-b001",
          "markdown_line": 377
        }
      ],
      "markdown_line": 373
    },
    {
      "id": "q-p032-h06",
      "title": "原子操作和锁的区别",
      "heading-id": "p032-h06",
      "source-page": 32,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p032-h06",
      "pages": [
        32
      ],
      "page-range": [
        32,
        32
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "原子操作由底层硬件支持，而锁则由操作系统的调度器实现。锁应当用来保护一段逻辑，对于一个变量更新的保护。原子操作通常执行上会更有效率，并且更能利用计算机多核的优势，如果要更新的是一个复合对象，则应当使用 atomic.Value 封装好的实现",
          "language": null,
          "pages": [
            32
          ],
          "span_ids": [
            "p032-t0184",
            "p032-t0186",
            "p032-t0187",
            "p032-t0189",
            "p032-t0191",
            "p032-t0192",
            "p032-t0193",
            "p032-t0194"
          ],
          "operations": [],
          "id": "q-p032-h06-b001",
          "markdown_line": 383
        }
      ],
      "markdown_line": 379
    },
    {
      "id": "q-p033-h01",
      "title": "什么是 CAS",
      "heading-id": "p033-h01",
      "source-page": 33,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p033-h01",
      "pages": [
        33
      ],
      "page-range": [
        33,
        33
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "CAS 的全称为 Compare And Swap，直译就是比较交换。是一条 CPU 的原子指令，其作用是让 CPU先进行比较两个值是否相等，然后原子地更新某个位置的值，其实现方式是给予硬件平台的汇编指令，在 intel 的 CPU 中，使用的 cmpxchg 指令，就是说 CAS 是靠硬件实现的，从而在硬件层面提升效率。简述过程是这样：假设包含 3 个参数内存位置(V)、预期原值(A)和新值(B)。V 表示要更新变量的值，E 表示预期值，N 表示新值。仅当 V 值等于 E 值时，才会将 V 的值设为 N，如果 V 值和 E 值不同，则说明已经有其他线程在做更新，则当前线程什么都不做，最后 CAS 返回当前 V 的真实值。CAS 操作时抱着乐观的态度进行的，它总是认为自己可以成功完成操作。基于这样的原理，CAS 操作即使没有锁，也可以发现其他线程对于当前线程的干扰。",
          "language": null,
          "pages": [
            33
          ],
          "span_ids": [
            "p033-t0004",
            "p033-t0005",
            "p033-t0006",
            "p033-t0007",
            "p033-t0008",
            "p033-t0009",
            "p033-t0011",
            "p033-t0012",
            "p033-t0013",
            "p033-t0015",
            "p033-t0016",
            "p033-t0017",
            "p033-t0018",
            "p033-t0019",
            "p033-t0020",
            "p033-t0021",
            "p033-t0022",
            "p033-t0023",
            "p033-t0024",
            "p033-t0026",
            "p033-t0028",
            "p033-t0029",
            "p033-t0030",
            "p033-t0031",
            "p033-t0032",
            "p033-t0033",
            "p033-t0034",
            "p033-t0035",
            "p033-t0036",
            "p033-t0037",
            "p033-t0038",
            "p033-t0040",
            "p033-t0041",
            "p033-t0042",
            "p033-t0043",
            "p033-t0044",
            "p033-t0045",
            "p033-t0046",
            "p033-t0047",
            "p033-t0048",
            "p033-t0049",
            "p033-t0050",
            "p033-t0051",
            "p033-t0052",
            "p033-t0053",
            "p033-t0055",
            "p033-t0056",
            "p033-t0057",
            "p033-t0058",
            "p033-t0059",
            "p033-t0060",
            "p033-t0062",
            "p033-t0063",
            "p033-t0064",
            "p033-t0065",
            "p033-t0066",
            "p033-t0067",
            "p033-t0068",
            "p033-t0069",
            "p033-t0071",
            "p033-t0072",
            "p033-t0073",
            "p033-t0075",
            "p033-t0076"
          ],
          "operations": [],
          "id": "q-p033-h01-b001",
          "markdown_line": 389
        }
      ],
      "markdown_line": 385
    },
    {
      "id": "q-p033-h02",
      "title": "sync.Pool 有什么用",
      "heading-id": "p033-h02",
      "source-page": 33,
      "section": "进阶-并发编程",
      "topic": "02-go-concurrency",
      "target": "/go-bank/02-go-concurrency#q-p033-h02",
      "pages": [
        33
      ],
      "page-range": [
        33,
        33
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "对于很多需要重复分配、回收内存的地方，sync.Pool 是一个很好的选择。频繁地分配、回收内存会给GC 带来一定的负担，严重的时候会引起 CPU 的毛刺。而 sync.Pool 可以将暂时将不用的对象缓存起来，待下次需要的时候直接使用，不用再次经过内存分配，复用对象的内存，减轻 GC 的压力，提升系统的性能。",
          "language": null,
          "pages": [
            33
          ],
          "span_ids": [
            "p033-t0083",
            "p033-t0084",
            "p033-t0085",
            "p033-t0087",
            "p033-t0089",
            "p033-t0090",
            "p033-t0091",
            "p033-t0092",
            "p033-t0094",
            "p033-t0095",
            "p033-t0096",
            "p033-t0097",
            "p033-t0099",
            "p033-t0100",
            "p033-t0101",
            "p033-t0103"
          ],
          "operations": [],
          "id": "q-p033-h02-b001",
          "markdown_line": 395
        }
      ],
      "markdown_line": 391
    },
    {
      "id": "q-p033-h04",
      "title": "Goroutine 定义",
      "heading-id": "p033-h04",
      "source-page": 33,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p033-h04",
      "pages": [
        33
      ],
      "page-range": [
        33,
        33
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Golang 在语言级别支持协程，称之为 Goroutine。Golang 标准库提供的所有系统调用操作(包括所有的同步 I/O 操作)，都会出让 CPU 给其他 Goroutine。这让 Goroutine 的切换管理不依赖于系统的线程和进程，也不依赖于 CPU 的核心数量，而是交给 Golang 的运行时统一调度。",
          "language": null,
          "pages": [
            33
          ],
          "span_ids": [
            "p033-t0112",
            "p033-t0113",
            "p033-t0114",
            "p033-t0115",
            "p033-t0116",
            "p033-t0117",
            "p033-t0119",
            "p033-t0120",
            "p033-t0121",
            "p033-t0122",
            "p033-t0123",
            "p033-t0124",
            "p033-t0125",
            "p033-t0126",
            "p033-t0127",
            "p033-t0128",
            "p033-t0129",
            "p033-t0130",
            "p033-t0131",
            "p033-t0132",
            "p033-t0133",
            "p033-t0135",
            "p033-t0136",
            "p033-t0137",
            "p033-t0138",
            "p033-t0139"
          ],
          "operations": [],
          "id": "q-p033-h04-b001",
          "markdown_line": 244
        }
      ],
      "markdown_line": 240
    },
    {
      "id": "q-p033-h05",
      "title": "GMP 指的是什么",
      "heading-id": "p033-h05",
      "source-page": 33,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p033-h05",
      "pages": [
        33
      ],
      "page-range": [
        33,
        33
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "G（Goroutine）：我们所说的协程，为用户级的轻量级线程，每个 Goroutine 对象中的 sched 保存着其上下文信息。 M（Machine）：对内核级线程的封装，数量对应真实的 CPU 数（真正干活的对象）。 P（Processor）：即为 G 和 M 的调度对象，用来调度 G 和 M 之间的关联关系，其数量可通过GOMAXPROCS()来设置，默认为核心数。",
          "language": null,
          "pages": [
            33
          ],
          "span_ids": [
            "p033-t0145",
            "p033-t0146",
            "p033-t0147",
            "p033-t0148",
            "p033-t0149",
            "p033-t0150",
            "p033-t0151",
            "p033-t0152",
            "p033-t0153",
            "p033-t0154",
            "p033-t0155",
            "p033-t0156",
            "p033-t0157",
            "p033-t0158",
            "p033-t0159",
            "p033-t0161",
            "p033-t0163",
            "p033-t0164",
            "p033-t0165",
            "p033-t0166",
            "p033-t0167",
            "p033-t0168",
            "p033-t0169",
            "p033-t0170",
            "p033-t0171",
            "p033-t0172",
            "p033-t0173",
            "p033-t0174",
            "p033-t0176",
            "p033-t0178",
            "p033-t0179"
          ],
          "operations": [],
          "id": "q-p033-h05-b001",
          "markdown_line": 250
        }
      ],
      "markdown_line": 246
    },
    {
      "id": "q-p033-h06",
      "title": "1.0 之前 GM 调度模型",
      "heading-id": "p033-h06",
      "source-page": 33,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p033-h06",
      "pages": [
        33
      ],
      "page-range": [
        33,
        33
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "调度器把 G 都分配到 M 上，不同的 G 在不同的 M 并发运行时，都需要向系统申请资源，比如堆栈内存等，因为资源是全局的，就会因为资源竞争照成很多性能损耗。为了解决这一的问题 go 从 1.1 版本引入，在运行时系统的时候加入 p 对象，让 P 去管理这个 G 对象，M 想要运行 G，必须绑定 P，才能运行 P 所管理的 G。 GM 调度存在的问题： 1．单一全局互斥锁（Sched.Lock）和集中状态存储 2． Goroutine 传递问题（M 经常在 M 之间传递”可运行”的 goroutine） 3．每个 M 做内存缓存，导致内存占用过高，数据局部性较差 4．频繁 syscall 调用，导致严重的线程阻塞/解锁，加剧额外的性能损耗。",
          "language": null,
          "pages": [
            33
          ],
          "span_ids": [
            "p033-t0188",
            "p033-t0189",
            "p033-t0190",
            "p033-t0191",
            "p033-t0192",
            "p033-t0193",
            "p033-t0194",
            "p033-t0195",
            "p033-t0196",
            "p033-t0198",
            "p033-t0199",
            "p033-t0201",
            "p033-t0202",
            "p033-t0203",
            "p033-t0204",
            "p033-t0205",
            "p033-t0206",
            "p033-t0207",
            "p033-t0208",
            "p033-t0209",
            "p033-t0210",
            "p033-t0211",
            "p033-t0212",
            "p033-t0213",
            "p033-t0214",
            "p033-t0215",
            "p033-t0216",
            "p033-t0217",
            "p033-t0218",
            "p033-t0219",
            "p033-t0220",
            "p033-t0221",
            "p033-t0223",
            "p033-t0224",
            "p033-t0225",
            "p033-t0226",
            "p033-t0227",
            "p033-t0228",
            "p033-t0229",
            "p033-t0230",
            "p033-t0231",
            "p033-t0232",
            "p033-t0233",
            "p033-t0234",
            "p033-t0235",
            "p033-t0236",
            "p033-t0237",
            "p033-t0238",
            "p033-t0239",
            "p033-t0240",
            "p033-t0241",
            "p033-t0242",
            "p033-t0243",
            "p033-t0244",
            "p033-t0245",
            "p033-t0246",
            "p033-t0247",
            "p033-t0248",
            "p033-t0249",
            "p033-t0250",
            "p033-t0251",
            "p033-t0252",
            "p033-t0253",
            "p033-t0254",
            "p033-t0255",
            "p033-t0256"
          ],
          "operations": [],
          "id": "q-p033-h06-b001",
          "markdown_line": 256
        }
      ],
      "markdown_line": 252
    },
    {
      "id": "q-p034-h01",
      "title": "GMP 调度流程",
      "heading-id": "p034-h01",
      "source-page": 34,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p034-h01",
      "pages": [
        34
      ],
      "page-range": [
        34,
        34
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p034-image-01",
          "pages": [
            34
          ],
          "url": "/go-bank/pdf-p034-01.png",
          "span_ids": [],
          "id": "q-p034-h01-b001",
          "markdown_line": 262
        },
        {
          "kind": "prose",
          "text": "1. 每个 P 有个局部队列，局部队列保存待执行的 goroutine（流程 2），当 M 绑定的 P 的的局部队列已经满了之后就会把 goroutine 放到全局队列（流程 2-1）",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0005",
            "p034-t0006",
            "p034-t0007",
            "p034-t0008",
            "p034-t0009",
            "p034-t0010",
            "p034-t0011",
            "p034-t0012",
            "p034-t0013",
            "p034-t0014",
            "p034-t0015",
            "p034-t0016",
            "p034-t0017",
            "p034-t0018",
            "p034-t0019",
            "p034-t0021",
            "p034-t0022",
            "p034-t0023"
          ],
          "operations": [],
          "id": "q-p034-h01-b002",
          "markdown_line": 264
        },
        {
          "kind": "prose",
          "text": "2. 每个 P 和一个 M 绑定，M 是真正的执行 P 中 goroutine 的实体（流程 3）， M 从绑定的 P 中的局部队列获取 G 来执行",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0025",
            "p034-t0026",
            "p034-t0027",
            "p034-t0028",
            "p034-t0029",
            "p034-t0030",
            "p034-t0031",
            "p034-t0032",
            "p034-t0033",
            "p034-t0034",
            "p034-t0035",
            "p034-t0036",
            "p034-t0037",
            "p034-t0038",
            "p034-t0039",
            "p034-t0040",
            "p034-t0041",
            "p034-t0042",
            "p034-t0043",
            "p034-t0044",
            "p034-t0045"
          ],
          "operations": [],
          "id": "q-p034-h01-b003",
          "markdown_line": 266
        },
        {
          "kind": "prose",
          "text": "3. 当 M 绑定的 P 的局部队列为空时，M 会从全局队列获取到本地队列来执行 G （流程 3.1），当从全局队列中没有获取到可执行的 G 时候，M 会从其他 P 的局部队列中偷取 G 来执行（流程 3.2），这种从其他 P 偷的方式称为 work stealing",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0047",
            "p034-t0048",
            "p034-t0049",
            "p034-t0050",
            "p034-t0051",
            "p034-t0052",
            "p034-t0053",
            "p034-t0054",
            "p034-t0055",
            "p034-t0056",
            "p034-t0057",
            "p034-t0058",
            "p034-t0059",
            "p034-t0060",
            "p034-t0061",
            "p034-t0062",
            "p034-t0063",
            "p034-t0064",
            "p034-t0065",
            "p034-t0066",
            "p034-t0067",
            "p034-t0068",
            "p034-t0069",
            "p034-t0070",
            "p034-t0071",
            "p034-t0072",
            "p034-t0073"
          ],
          "operations": [],
          "id": "q-p034-h01-b004",
          "markdown_line": 268
        },
        {
          "kind": "prose",
          "text": "4. 当 G 因系统调用（syscall）阻塞时会阻塞 M，此时 P 会和 M 解绑即 hand off，并寻找新的 idle 的M，若没有 idle 的 M 就会新建一个 M（流程 5.1）",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0074",
            "p034-t0075",
            "p034-t0076",
            "p034-t0077",
            "p034-t0078",
            "p034-t0079",
            "p034-t0080",
            "p034-t0081",
            "p034-t0082",
            "p034-t0083",
            "p034-t0084",
            "p034-t0085",
            "p034-t0086",
            "p034-t0087",
            "p034-t0088",
            "p034-t0089",
            "p034-t0091",
            "p034-t0092",
            "p034-t0093",
            "p034-t0094",
            "p034-t0095",
            "p034-t0096",
            "p034-t0097",
            "p034-t0098",
            "p034-t0099",
            "p034-t0100"
          ],
          "operations": [],
          "id": "q-p034-h01-b005",
          "markdown_line": 270
        },
        {
          "kind": "prose",
          "text": "5. 当 G 因 channel 或者 network I/O 阻塞时，不会阻塞 M，M 会寻找其他 runnable 的 G；当阻塞的 G 恢复后会重新进入 runnable 进入 P 队列等待执行",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0102",
            "p034-t0103",
            "p034-t0104",
            "p034-t0105",
            "p034-t0106",
            "p034-t0107",
            "p034-t0108",
            "p034-t0109",
            "p034-t0110",
            "p034-t0111",
            "p034-t0112",
            "p034-t0113",
            "p034-t0114",
            "p034-t0115",
            "p034-t0116",
            "p034-t0117",
            "p034-t0118",
            "p034-t0119",
            "p034-t0120",
            "p034-t0121",
            "p034-t0122",
            "p034-t0123",
            "p034-t0124",
            "p034-t0126"
          ],
          "operations": [],
          "id": "q-p034-h01-b006",
          "markdown_line": 272
        }
      ],
      "markdown_line": 258
    },
    {
      "id": "q-p034-h02",
      "title": "GMP 中 work stealing 机制",
      "heading-id": "p034-h02",
      "source-page": 34,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p034-h02",
      "pages": [
        34
      ],
      "page-range": [
        34,
        34
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "获取 P 本地队列，当从绑定 P 本地 runq 上找不到可执行的 g，尝试从全局链表中拿，再拿不到从netpoll 和事件池里拿，最后会从别的 P 里偷任务。P 此时去唤醒一个 M。P 继续执行其它的程序。M 寻找是否有空闲的 P，如果有则将该 G 对象移动到它本身。接下来 M 执行一个调度循环（调用 G 对象->执行-> 清理线程→继续找新的 Goroutine 执行）",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0135",
            "p034-t0136",
            "p034-t0137",
            "p034-t0138",
            "p034-t0139",
            "p034-t0140",
            "p034-t0141",
            "p034-t0142",
            "p034-t0143",
            "p034-t0145",
            "p034-t0147",
            "p034-t0148",
            "p034-t0149",
            "p034-t0150",
            "p034-t0151",
            "p034-t0152",
            "p034-t0153",
            "p034-t0154",
            "p034-t0155",
            "p034-t0156",
            "p034-t0157",
            "p034-t0158",
            "p034-t0159",
            "p034-t0160",
            "p034-t0161",
            "p034-t0163",
            "p034-t0164",
            "p034-t0165",
            "p034-t0166",
            "p034-t0167",
            "p034-t0168",
            "p034-t0169",
            "p034-t0170",
            "p034-t0171",
            "p034-t0172",
            "p034-t0173",
            "p034-t0175",
            "p034-t0176",
            "p034-t0177",
            "p034-t0174"
          ],
          "operations": [],
          "id": "q-p034-h02-b001",
          "markdown_line": 278
        }
      ],
      "markdown_line": 274
    },
    {
      "id": "q-p034-h03",
      "title": "GMP 中 hand off 机制",
      "heading-id": "p034-h03",
      "source-page": 34,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p034-h03",
      "pages": [
        34
      ],
      "page-range": [
        34,
        34
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "当本线程 M 因为 G 进行的系统调用阻塞时，线程释放绑定的 P，把 P 转移给其他空闲的 M 执行。细节：当发生上线文切换时，需要对执行现场进行保护，以便下次被调度执行时进行现场恢复。Go 调度器 M 的栈保存在 G 对象上，只需要将 M 所需要的寄存器（SP、PC 等）保存到 G 对象上就可以实现现场保护。当这些寄存器数据被保护起来，就随时可以做上下文切换了，在中断之前把现场保存起来。如果此时 G 任务还没有执行完，M 可以将任务重新丢到 P 的任务队列，等待下一次被调度执行。当再次被调度执行时，M 通过访问 G 的 vdsoSP、vdsoPC 寄存器进行现场恢复（从上次中断位置继续执行）。",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0186",
            "p034-t0187",
            "p034-t0188",
            "p034-t0189",
            "p034-t0190",
            "p034-t0191",
            "p034-t0192",
            "p034-t0193",
            "p034-t0194",
            "p034-t0196",
            "p034-t0197",
            "p034-t0198",
            "p034-t0200",
            "p034-t0201",
            "p034-t0203",
            "p034-t0204",
            "p034-t0205",
            "p034-t0206",
            "p034-t0207",
            "p034-t0208",
            "p034-t0209",
            "p034-t0210",
            "p034-t0211",
            "p034-t0212",
            "p034-t0214",
            "p034-t0215",
            "p034-t0216",
            "p034-t0217",
            "p034-t0218",
            "p034-t0219",
            "p034-t0220",
            "p034-t0221",
            "p034-t0223",
            "p034-t0224",
            "p034-t0225",
            "p034-t0226",
            "p034-t0227",
            "p034-t0228",
            "p034-t0229",
            "p034-t0230",
            "p034-t0232",
            "p034-t0233",
            "p034-t0234",
            "p034-t0235",
            "p034-t0236",
            "p034-t0237",
            "p034-t0238",
            "p034-t0239",
            "p034-t0240",
            "p034-t0241",
            "p034-t0243"
          ],
          "operations": [],
          "id": "q-p034-h03-b001",
          "markdown_line": 284
        }
      ],
      "markdown_line": 280
    },
    {
      "id": "q-p034-h04",
      "title": "协作式的抢占式调度",
      "heading-id": "p034-h04",
      "source-page": 34,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p034-h04",
      "pages": [
        34,
        35
      ],
      "page-range": [
        34,
        35
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在 1.14 版本之前，程序只能依靠 Goroutine 主动让出 CPU 资源才能触发调度。这种方式存在问题有：",
          "language": null,
          "pages": [
            34
          ],
          "span_ids": [
            "p034-t0249",
            "p034-t0250",
            "p034-t0251",
            "p034-t0252",
            "p034-t0253",
            "p034-t0254",
            "p034-t0255",
            "p034-t0257"
          ],
          "operations": [],
          "id": "q-p034-h04-b001",
          "markdown_line": 290
        },
        {
          "kind": "prose",
          "text": "1. 某些 Goroutine 可以长时间占用线程，造成其它 Goroutine 的饥饿",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0001",
            "p035-t0002",
            "p035-t0003",
            "p035-t0004",
            "p035-t0005",
            "p035-t0006"
          ],
          "operations": [],
          "id": "q-p034-h04-b002",
          "markdown_line": 292
        },
        {
          "kind": "prose",
          "text": "2. 垃圾回收需要暂停整个程序（Stop-the-world，STW），最长可能需要几分钟的时间，导致整个程序无法工作",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0008",
            "p035-t0009",
            "p035-t0010",
            "p035-t0011",
            "p035-t0012",
            "p035-t0013",
            "p035-t0015",
            "p035-t0016"
          ],
          "operations": [],
          "id": "q-p034-h04-b003",
          "markdown_line": 294
        }
      ],
      "markdown_line": 286
    },
    {
      "id": "q-p035-h01",
      "title": "基于信号的抢占式调度",
      "heading-id": "p035-h01",
      "source-page": 35,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p035-h01",
      "pages": [
        35
      ],
      "page-range": [
        35,
        35
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在任何情况下，Go 运行时并行执行（注意，不是并发）的 goroutines 数量是小于等于 P 的数量的。为了提高系统的性能，P 的数量肯定不是越小越好，所以官方默认值就是 CPU 的核心数，设置的过小的话，如果一个持有 P 的 M，由于 P 当前执行的 G 调用了 syscall 而导致 M 被阻塞，那么此时关键点： GO 的调度器是迟钝的，它很可能什么都没做，直到 M 阻塞了相当长时间以后，才会发现有一个 P/M 被syscall 阻塞了。然后，才会用空闲的 M 来强这个 P。通过 sysmon 监控实现的抢占式调度，最快在20us，最慢在 10-20ms 才会发现有一个 M 持有 P 并阻塞了。操作系统在 1ms 内可以完成很多次线程调度（一般情况 1ms 可以完成几十次线程调度），Go 发起 IO/syscall 的时候执行该 G 的 M 会阻塞然后被 OS 调度走，P 什么也不干，sysmon 最慢要 10-20ms 才能发现这个阻塞，说不定那时候阻塞已经结束了，这样宝贵的 P 资源就这么被阻塞的 M 浪费了。",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0022",
            "p035-t0023",
            "p035-t0024",
            "p035-t0025",
            "p035-t0026",
            "p035-t0028",
            "p035-t0029",
            "p035-t0030",
            "p035-t0031",
            "p035-t0032",
            "p035-t0033",
            "p035-t0035",
            "p035-t0036",
            "p035-t0037",
            "p035-t0038",
            "p035-t0039",
            "p035-t0040",
            "p035-t0041",
            "p035-t0042",
            "p035-t0044",
            "p035-t0045",
            "p035-t0046",
            "p035-t0047",
            "p035-t0048",
            "p035-t0049",
            "p035-t0050",
            "p035-t0051",
            "p035-t0052",
            "p035-t0054",
            "p035-t0055",
            "p035-t0056",
            "p035-t0057",
            "p035-t0059",
            "p035-t0060",
            "p035-t0061",
            "p035-t0063",
            "p035-t0064",
            "p035-t0065",
            "p035-t0066",
            "p035-t0068",
            "p035-t0069",
            "p035-t0070",
            "p035-t0071",
            "p035-t0072",
            "p035-t0074",
            "p035-t0075",
            "p035-t0076",
            "p035-t0077",
            "p035-t0079",
            "p035-t0080",
            "p035-t0081",
            "p035-t0082",
            "p035-t0083",
            "p035-t0084",
            "p035-t0085",
            "p035-t0086",
            "p035-t0088",
            "p035-t0089",
            "p035-t0090",
            "p035-t0091",
            "p035-t0092",
            "p035-t0093",
            "p035-t0094",
            "p035-t0096",
            "p035-t0097",
            "p035-t0098",
            "p035-t0099",
            "p035-t0100",
            "p035-t0101",
            "p035-t0102",
            "p035-t0103",
            "p035-t0104",
            "p035-t0105",
            "p035-t0106",
            "p035-t0107",
            "p035-t0108",
            "p035-t0109",
            "p035-t0110",
            "p035-t0111",
            "p035-t0112",
            "p035-t0114",
            "p035-t0115",
            "p035-t0116"
          ],
          "operations": [],
          "id": "q-p035-h01-b001",
          "markdown_line": 300
        }
      ],
      "markdown_line": 296
    },
    {
      "id": "q-p035-h02",
      "title": "GMP 调度过程中存在哪些阻塞",
      "heading-id": "p035-h02",
      "source-page": 35,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p035-h02",
      "pages": [
        35
      ],
      "page-range": [
        35,
        35
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. I/O，select",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0122",
            "p035-t0123",
            "p035-t0124"
          ],
          "operations": [],
          "id": "q-p035-h02-b001",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "2. block on syscall",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0125"
          ],
          "operations": [],
          "id": "q-p035-h02-b002",
          "markdown_line": 308
        },
        {
          "kind": "prose",
          "text": "3. channel",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0126"
          ],
          "operations": [],
          "id": "q-p035-h02-b003",
          "markdown_line": 310
        },
        {
          "kind": "prose",
          "text": "4. 等待锁",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0127",
            "p035-t0128"
          ],
          "operations": [],
          "id": "q-p035-h02-b004",
          "markdown_line": 312
        },
        {
          "kind": "prose",
          "text": "5. runtime.Gosched()",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0130"
          ],
          "operations": [],
          "id": "q-p035-h02-b005",
          "markdown_line": 314
        }
      ],
      "markdown_line": 302
    },
    {
      "id": "q-p035-h03",
      "title": "Sysmon 有什么作用",
      "heading-id": "p035-h03",
      "source-page": 35,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p035-h03",
      "pages": [
        35
      ],
      "page-range": [
        35,
        35
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Sysmon 也叫监控线程，变动的周期性检查，好处",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0135",
            "p035-t0136"
          ],
          "operations": [],
          "id": "q-p035-h03-b001",
          "markdown_line": 320
        },
        {
          "kind": "prose",
          "text": "1. 释放闲置超过 5 分钟的 span 物理内存；",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0138",
            "p035-t0139",
            "p035-t0140",
            "p035-t0141",
            "p035-t0142",
            "p035-t0143"
          ],
          "operations": [],
          "id": "q-p035-h03-b002",
          "markdown_line": 322
        },
        {
          "kind": "prose",
          "text": "2. 如果超过 2 分钟没有垃圾回收，强制执行；",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0145",
            "p035-t0146",
            "p035-t0147",
            "p035-t0148"
          ],
          "operations": [],
          "id": "q-p035-h03-b003",
          "markdown_line": 324
        },
        {
          "kind": "prose",
          "text": "3. 将长时间未处理的 netpoll 添加到全局队列；",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0150",
            "p035-t0151",
            "p035-t0152",
            "p035-t0153"
          ],
          "operations": [],
          "id": "q-p035-h03-b004",
          "markdown_line": 326
        },
        {
          "kind": "prose",
          "text": "4. 向长时间运行的 G 任务发出抢占调度（超过 10ms 的 g，会进行 retake）；",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0155",
            "p035-t0156",
            "p035-t0157",
            "p035-t0158",
            "p035-t0159",
            "p035-t0160",
            "p035-t0161",
            "p035-t0162",
            "p035-t0163",
            "p035-t0164"
          ],
          "operations": [],
          "id": "q-p035-h03-b005",
          "markdown_line": 328
        },
        {
          "kind": "prose",
          "text": "5. 收回因 syscall 长时间阻塞的 P；",
          "language": null,
          "pages": [
            35
          ],
          "span_ids": [
            "p035-t0166",
            "p035-t0167",
            "p035-t0168",
            "p035-t0169",
            "p035-t0170",
            "p035-t0171"
          ],
          "operations": [],
          "id": "q-p035-h03-b006",
          "markdown_line": 330
        }
      ],
      "markdown_line": 316
    },
    {
      "id": "q-p036-h01",
      "title": "三色标记原理",
      "heading-id": "p036-h01",
      "source-page": 36,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p036-h01",
      "pages": [
        36
      ],
      "page-range": [
        36,
        36
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "我们首先看一张图，大概就会对三色标记法有一个大致的了解：",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0005",
            "p036-t0007"
          ],
          "operations": [],
          "id": "q-p036-h01-b001",
          "markdown_line": 336
        },
        {
          "kind": "image",
          "image_id": "p036-image-01",
          "pages": [
            36
          ],
          "url": "/go-bank/pdf-p036-01.png",
          "span_ids": [],
          "id": "q-p036-h01-b002",
          "markdown_line": 338
        },
        {
          "kind": "prose",
          "text": "原理：",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0009"
          ],
          "operations": [],
          "id": "q-p036-h01-b003",
          "markdown_line": 340
        },
        {
          "kind": "prose",
          "text": "1. 首先把所有的对象都放到白色的集合中",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0011",
            "p036-t0012"
          ],
          "operations": [],
          "id": "q-p036-h01-b004",
          "markdown_line": 342
        },
        {
          "kind": "prose",
          "text": "2. 从根节点开始遍历对象，遍历到的白色对象从白色集合中放到灰色集合中",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0014",
            "p036-t0015"
          ],
          "operations": [],
          "id": "q-p036-h01-b005",
          "markdown_line": 344
        },
        {
          "kind": "prose",
          "text": "3. 遍历灰色集合中的对象，把灰色对象引用的白色集合的对象放入到灰色集合中，同时把遍历过的灰色集合中的对象放到黑色的集合中",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0017",
            "p036-t0018",
            "p036-t0020",
            "p036-t0021"
          ],
          "operations": [],
          "id": "q-p036-h01-b006",
          "markdown_line": 346
        },
        {
          "kind": "prose",
          "text": "4. 循环步骤 3，知道灰色集合中没有对象",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0023",
            "p036-t0024",
            "p036-t0025",
            "p036-t0026"
          ],
          "operations": [],
          "id": "q-p036-h01-b007",
          "markdown_line": 348
        },
        {
          "kind": "prose",
          "text": "5. 步骤 4 结束后，白色集合中的对象就是不可达对象，也就是垃圾，进行回收",
          "language": null,
          "pages": [
            36
          ],
          "span_ids": [
            "p036-t0028",
            "p036-t0029",
            "p036-t0030",
            "p036-t0031"
          ],
          "operations": [],
          "id": "q-p036-h01-b008",
          "markdown_line": 350
        }
      ],
      "markdown_line": 332
    },
    {
      "id": "q-p037-h01",
      "title": "写屏障",
      "heading-id": "p037-h01",
      "source-page": 37,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p037-h01",
      "pages": [
        37,
        38
      ],
      "page-range": [
        37,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go 在进行三色标记的时候并没有 STW，也就是说，此时的对象还是可以进行修改。那么我们考虑一下，下面的情况。",
          "language": null,
          "pages": [
            37
          ],
          "span_ids": [
            "p037-t0004",
            "p037-t0005",
            "p037-t0006",
            "p037-t0007",
            "p037-t0009",
            "p037-t0011",
            "p037-t0012"
          ],
          "operations": [],
          "id": "q-p037-h01-b001",
          "markdown_line": 356
        },
        {
          "kind": "image",
          "image_id": "p037-image-01",
          "pages": [
            37
          ],
          "url": "/go-bank/pdf-p037-01.png",
          "span_ids": [],
          "id": "q-p037-h01-b002",
          "markdown_line": 358
        },
        {
          "kind": "prose",
          "text": "我们在进行三色标记中扫描灰色集合中，扫描到了对象 A，并标记了对象 A 的所有引用，这时候，开始扫描对象 D 的引用，而此时，另一个 goroutine 修改了 D->E 的引用，变成了如下图所示",
          "language": null,
          "pages": [
            37
          ],
          "span_ids": [
            "p037-t0014",
            "p037-t0015",
            "p037-t0016",
            "p037-t0017",
            "p037-t0018",
            "p037-t0020",
            "p037-t0021",
            "p037-t0022",
            "p037-t0023",
            "p037-t0024",
            "p037-t0025",
            "p037-t0027",
            "p037-t0028",
            "p037-t0029"
          ],
          "operations": [],
          "id": "q-p037-h01-b003",
          "markdown_line": 360
        },
        {
          "kind": "image",
          "image_id": "p037-image-02",
          "pages": [
            37
          ],
          "url": "/go-bank/pdf-p037-02.png",
          "span_ids": [],
          "id": "q-p037-h01-b004",
          "markdown_line": 362
        },
        {
          "kind": "prose",
          "text": "这样会不会导致 E 对象就扫描不到了，而被误认为为白色对象，也就是垃圾写屏障就是为了解决这样的问题，引入写屏障后，在上述步骤后，E 会被认为是存活的，即使后面 E 被 A 对象抛弃，E 会被在下一轮的 GC 中进行回收，这一轮 GC 中是不会对对象 E 进行回收的",
          "language": null,
          "pages": [
            37,
            38
          ],
          "span_ids": [
            "p037-t0031",
            "p037-t0032",
            "p037-t0033",
            "p037-t0035",
            "p037-t0037",
            "p038-t0001",
            "p038-t0002",
            "p038-t0003",
            "p038-t0005",
            "p038-t0006",
            "p038-t0007",
            "p038-t0008",
            "p038-t0009",
            "p038-t0010",
            "p038-t0011",
            "p038-t0012",
            "p038-t0013",
            "p038-t0014",
            "p038-t0016",
            "p038-t0017",
            "p038-t0018",
            "p038-t0019",
            "p038-t0020"
          ],
          "operations": [],
          "id": "q-p037-h01-b005",
          "markdown_line": 364
        }
      ],
      "markdown_line": 352
    },
    {
      "id": "q-p038-h01",
      "title": "插入写屏障",
      "heading-id": "p038-h01",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h01",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go GC 在混合写屏障之前，一直是插入写屏障，由于栈赋值没有 hook 的原因，栈中没有启用写屏障，所以有 STW。Golang 的解决方法是：只是需要在结束时启动 STW 来重新扫描栈。这个自然就会导致整个进程的赋值器卡顿。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0025",
            "p038-t0026",
            "p038-t0027",
            "p038-t0028",
            "p038-t0030",
            "p038-t0031",
            "p038-t0032",
            "p038-t0033",
            "p038-t0034",
            "p038-t0035",
            "p038-t0037",
            "p038-t0038",
            "p038-t0039",
            "p038-t0040"
          ],
          "operations": [],
          "id": "q-p038-h01-b001",
          "markdown_line": 370
        }
      ],
      "markdown_line": 366
    },
    {
      "id": "q-p038-h02",
      "title": "删除写屏障",
      "heading-id": "p038-h02",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h02",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Golang 没有这一步，Golang 的内存写屏障是由插入写屏障到混合写屏障过渡的。简单介绍一下，一个对象即使被删除了最后一个指向它的指针也依旧可以活过这一轮，在下一轮 GC 中才被清理掉",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0045",
            "p038-t0046",
            "p038-t0047",
            "p038-t0048",
            "p038-t0050",
            "p038-t0051",
            "p038-t0053",
            "p038-t0054",
            "p038-t0055"
          ],
          "operations": [],
          "id": "q-p038-h02-b001",
          "markdown_line": 376
        }
      ],
      "markdown_line": 372
    },
    {
      "id": "q-p038-h03",
      "title": "混合写屏障",
      "heading-id": "p038-h03",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h03",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 混合写屏障继承了插入写屏障的优点，起始无需 STW 打快照，直接并发扫描垃圾即可；",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0060",
            "p038-t0061",
            "p038-t0062",
            "p038-t0063",
            "p038-t0065"
          ],
          "operations": [],
          "id": "q-p038-h03-b001",
          "markdown_line": 382
        },
        {
          "kind": "prose",
          "text": "2. 混合写屏障继承了删除写屏障的优点，赋值器是黑色赋值器，GC 期间，任何在栈上创建的新对象，均为黑色。扫描过一次就不需要扫描了，这样就消除了插入写屏障时期最后 STW 的重新扫描栈；",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0066",
            "p038-t0067",
            "p038-t0068",
            "p038-t0069",
            "p038-t0071",
            "p038-t0072",
            "p038-t0074",
            "p038-t0075",
            "p038-t0076",
            "p038-t0077"
          ],
          "operations": [],
          "id": "q-p038-h03-b002",
          "markdown_line": 384
        },
        {
          "kind": "prose",
          "text": "3. 混合写屏障扫描精度继承了删除写屏障，比插入写屏障更低，随着带来的是 GC 过程全程无 STW；",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0079",
            "p038-t0080",
            "p038-t0082",
            "p038-t0083",
            "p038-t0084",
            "p038-t0085",
            "p038-t0086"
          ],
          "operations": [],
          "id": "q-p038-h03-b003",
          "markdown_line": 386
        },
        {
          "kind": "prose",
          "text": "4. 混合写屏障扫描栈虽然没有 STW，但是扫描某一个具体的栈的时候，还是要停止这个 goroutine赋值器的工作（针对一个 goroutine 栈来说，是暂停扫的，要么全灰，要么全黑哈，原子状态切换）",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0087",
            "p038-t0088",
            "p038-t0089",
            "p038-t0090",
            "p038-t0092",
            "p038-t0093",
            "p038-t0094",
            "p038-t0095",
            "p038-t0096",
            "p038-t0098",
            "p038-t0099"
          ],
          "operations": [],
          "id": "q-p038-h03-b004",
          "markdown_line": 388
        }
      ],
      "markdown_line": 378
    },
    {
      "id": "q-p038-h04",
      "title": "GC 触发时机",
      "heading-id": "p038-h04",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h04",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "主动触发：调用 runtime.GC被动触发：使用系统监控，该触发条件由 runtime.forcegcperiod 变量控制，默认为 2 分钟。当超过两分钟没有产生任何 GC 时，强制触发 GC。使用步调（Pacing）算法，其核心思想是控制内存增长的比例。如 Go 的 GC 是一种比例 GC, 下一次 GC 结束时的堆大小和上一次 GC 存活堆大小成比例.。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0106",
            "p038-t0107",
            "p038-t0109",
            "p038-t0111",
            "p038-t0112",
            "p038-t0113",
            "p038-t0114",
            "p038-t0115",
            "p038-t0117",
            "p038-t0118",
            "p038-t0119",
            "p038-t0120",
            "p038-t0121",
            "p038-t0122",
            "p038-t0124",
            "p038-t0125",
            "p038-t0126",
            "p038-t0127",
            "p038-t0128",
            "p038-t0129",
            "p038-t0130",
            "p038-t0131",
            "p038-t0132",
            "p038-t0133",
            "p038-t0134",
            "p038-t0135",
            "p038-t0136",
            "p038-t0137",
            "p038-t0138",
            "p038-t0139"
          ],
          "operations": [],
          "id": "q-p038-h04-b001",
          "markdown_line": 394
        }
      ],
      "markdown_line": 390
    },
    {
      "id": "q-p038-h05",
      "title": "Go 语言中 GC 的流程是什么？",
      "heading-id": "p038-h05",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h05",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Go1.14 版本以 STW 为界限，可以将 GC 划分为五个阶段： GCMark 标记准备阶段，为并发标记做准备工作，启动写屏障 STWGCMark 扫描标记阶段，与赋值器并发执行，写屏障开启并发GCMarkTermination 标记终止阶段，保证一个周期内标记任务完成，停止写屏障 GCoff 内存清扫阶段，将需要回收的内存归还到堆中，写屏障关闭 GCoff 内存归还阶段，将过多的内存归还给操作系统，写屏障关闭。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0146",
            "p038-t0147",
            "p038-t0148",
            "p038-t0149",
            "p038-t0150",
            "p038-t0151",
            "p038-t0152",
            "p038-t0153",
            "p038-t0154",
            "p038-t0155",
            "p038-t0156",
            "p038-t0158",
            "p038-t0159",
            "p038-t0161",
            "p038-t0162",
            "p038-t0163",
            "p038-t0164",
            "p038-t0165",
            "p038-t0166",
            "p038-t0167"
          ],
          "operations": [],
          "id": "q-p038-h05-b001",
          "markdown_line": 400
        }
      ],
      "markdown_line": 396
    },
    {
      "id": "q-p038-h06",
      "title": "GC 如何调优",
      "heading-id": "p038-h06",
      "source-page": 38,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p038-h06",
      "pages": [
        38
      ],
      "page-range": [
        38,
        38
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "通过 go tool pprof 和 go tool trace 等工具",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0174",
            "p038-t0175",
            "p038-t0176",
            "p038-t0177",
            "p038-t0178"
          ],
          "operations": [],
          "id": "q-p038-h06-b001",
          "markdown_line": 406
        },
        {
          "kind": "prose",
          "text": "1. 控制内存分配的速度，限制 Goroutine 的数量，从而提高赋值器对 CPU 的利用率。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0180",
            "p038-t0181",
            "p038-t0182",
            "p038-t0183",
            "p038-t0184",
            "p038-t0185"
          ],
          "operations": [],
          "id": "q-p038-h06-b002",
          "markdown_line": 408
        },
        {
          "kind": "prose",
          "text": "2. 减少并复用内存，例如使用 sync.Pool 来复用需要频繁创建临时对象，例如提前分配足够的内存来降低多余的拷贝。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0187",
            "p038-t0188",
            "p038-t0189",
            "p038-t0190",
            "p038-t0192",
            "p038-t0193"
          ],
          "operations": [],
          "id": "q-p038-h06-b003",
          "markdown_line": 410
        },
        {
          "kind": "prose",
          "text": "3. 需要时，增大 GOGC 的值，降低 GC 的运行频率。",
          "language": null,
          "pages": [
            38
          ],
          "span_ids": [
            "p038-t0195",
            "p038-t0196",
            "p038-t0197",
            "p038-t0198",
            "p038-t0199",
            "p038-t0200"
          ],
          "operations": [],
          "id": "q-p038-h06-b004",
          "markdown_line": 412
        }
      ],
      "markdown_line": 402
    },
    {
      "id": "q-p039-h01",
      "title": "Golang GC 时会发生什么?",
      "heading-id": "p039-h01",
      "source-page": 39,
      "section": "进阶-Go Runtime",
      "topic": "03-go-runtime",
      "target": "/go-bank/03-go-runtime#q-p039-h01",
      "pages": [
        39,
        40
      ],
      "page-range": [
        39,
        40
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "首先我们先来了解下垃圾回收.什么是垃圾回收？内存管理是程序员开发应用的一大难题。传统的系统级编程语言（主要指C/C++）中，程序开发者必须对内存小心的进行管理操作，控制内存的申请及释放。因为稍有不慎，就可能产生内存泄露问题，这种问题不易发现并且难以定位，一直成为困扰程序开发者的噩梦。如何解决这个头疼的问题呢？过去一般采用两种办法：",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0005",
            "p039-t0006",
            "p039-t0007",
            "p039-t0008",
            "p039-t0009",
            "p039-t0010",
            "p039-t0011",
            "p039-t0012",
            "p039-t0013"
          ],
          "operations": [],
          "id": "q-p039-h01-b001",
          "markdown_line": 418
        },
        {
          "kind": "prose",
          "text": "1. 内存泄露检测工具。这种工具的原理一般是静态代码扫描，通过扫描程序检测可能出现内存泄露的代码段。然而检测工具难免有疏漏和不足，只能起到辅助作用。",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0014",
            "p039-t0015",
            "p039-t0016",
            "p039-t0017"
          ],
          "operations": [],
          "id": "q-p039-h01-b002",
          "markdown_line": 420
        },
        {
          "kind": "prose",
          "text": "2. 智能指针。这是 c++ 中引入的自动内存管理方法，通过拥有自动内存管理功能的指针对象来引用对象，是程序员不用太关注内存的释放，而达到内存自动释放的目的。这种方法是采用最广泛的做法，但是对程序开发者有一定的学习成本（并非语言层面的原生支持），而且一旦有忘记使用的场景依然无法避免内存泄露。为了解决这个问题，后来开发出来的几乎所有新语言（java，python，php等等）都引入了语言层面的自动内存管理 – 也就是语言的使用者只用关注内存的申请而不必关心内存的释放，内存释放由虚拟机（virtual machine）或运行时（runtime）来自动进行管理。而这种对不再使用的内存资源进行自动回收的行为就被称为垃圾回收。",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0018",
            "p039-t0019",
            "p039-t0020",
            "p039-t0021",
            "p039-t0022",
            "p039-t0023",
            "p039-t0024",
            "p039-t0025",
            "p039-t0026",
            "p039-t0027",
            "p039-t0028",
            "p039-t0029",
            "p039-t0030",
            "p039-t0031",
            "p039-t0032",
            "p039-t0033",
            "p039-t0034",
            "p039-t0035",
            "p039-t0036",
            "p039-t0037",
            "p039-t0038",
            "p039-t0039",
            "p039-t0040",
            "p039-t0041",
            "p039-t0042",
            "p039-t0043",
            "p039-t0044"
          ],
          "operations": [],
          "id": "q-p039-h01-b003",
          "markdown_line": 422
        },
        {
          "kind": "prose",
          "text": "常用的垃圾回收的方法:",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0045",
            "p039-t0046"
          ],
          "operations": [],
          "id": "q-p039-h01-b004",
          "markdown_line": 424
        },
        {
          "kind": "prose",
          "text": "1. 引用计数（reference counting）这是最简单的一种垃圾回收算法，和之前提到的智能指针异曲同工。对每个对象维护一个引用计数，当引用该对象的对象被销毁或更新时被引用对象的引用计数自动减一，当被引用对象被创建或被赋值给其他对象时引用计数自动加一。当引用计数为0时则立即回收对象。这种方法的优点是实现简单，并且内存的回收很及时。这种算法在内存比较紧张和实时性比较高的系统中使用的比较广泛，如ios cocoa框架，php，python等。但是简单引用计数算法也有明显的缺点",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0047",
            "p039-t0048",
            "p039-t0049",
            "p039-t0050",
            "p039-t0051",
            "p039-t0052",
            "p039-t0053",
            "p039-t0054",
            "p039-t0055",
            "p039-t0056",
            "p039-t0057",
            "p039-t0058",
            "p039-t0059",
            "p039-t0060",
            "p039-t0061",
            "p039-t0062",
            "p039-t0063",
            "p039-t0064"
          ],
          "operations": [],
          "id": "q-p039-h01-b005",
          "markdown_line": 426
        },
        {
          "kind": "prose",
          "text": "1. 频繁更新引用计数降低了性能。一种简单的解决方法就是编译器将相邻的引用计数更新操作合并到一次更新；还有一种方法是针对频繁发生的临时变量引用不进行计数，而是在引用达到0时通过扫描堆栈确认是否还有临时对象引用而决定是否释放。等等还有很多其他方法，具体可以参考这里。",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0065",
            "p039-t0066",
            "p039-t0067",
            "p039-t0068",
            "p039-t0069",
            "p039-t0070",
            "p039-t0071"
          ],
          "operations": [],
          "id": "q-p039-h01-b006",
          "markdown_line": 428
        },
        {
          "kind": "prose",
          "text": "2. 循环引用。当对象间发生循环引用时引用链中的对象都无法得到释放。最明显的解决办法是避免产生循环引用，如cocoa引入了strong指针和weak指针两种指针类型。或者系统检测循环引用并主动打破循环链。当然这也增加了垃圾回收的复杂度。",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0072",
            "p039-t0073",
            "p039-t0074",
            "p039-t0075",
            "p039-t0076",
            "p039-t0077",
            "p039-t0078",
            "p039-t0079",
            "p039-t0080",
            "p039-t0081",
            "p039-t0082",
            "p039-t0083"
          ],
          "operations": [],
          "id": "q-p039-h01-b007",
          "markdown_line": 430
        },
        {
          "kind": "prose",
          "text": "2. 标记-清除（mark and sweep）标记-清除（mark and sweep）分为两步，标记从根变量开始迭代得遍历所有被引用的对象，对能够通过应用遍历访问到的对象都进行标记为“被引用”；标记完成后进行清除操作，对没有标记过的内存进行回收（回收同时可能伴有碎片整理操作）。这种方法解决了引用计数的不足，但是也有比较明显的问题：每次启动垃圾回收都会暂停当前所有的正常代码执行，回收是系统响应能力大大降低！当然后续也出现了很多mark&sweep算法的变种（如三色标记法）优化了这个问题。",
          "language": null,
          "pages": [
            39
          ],
          "span_ids": [
            "p039-t0084",
            "p039-t0085",
            "p039-t0086",
            "p039-t0087",
            "p039-t0088",
            "p039-t0089",
            "p039-t0090",
            "p039-t0091",
            "p039-t0092",
            "p039-t0093",
            "p039-t0094",
            "p039-t0095",
            "p039-t0096",
            "p039-t0097",
            "p039-t0098",
            "p039-t0099",
            "p039-t0100",
            "p039-t0101",
            "p039-t0102",
            "p039-t0103",
            "p039-t0104"
          ],
          "operations": [],
          "id": "q-p039-h01-b008",
          "markdown_line": 432
        },
        {
          "kind": "prose",
          "text": "3. 分代搜集（generation） java的jvm 就使用的分代回收的思路。在面向对象编程语言中，绝大多数对象的生命周期都非常短。分代收集的基本思想是，将堆划分为两个或多个称为代（generation）的空间。新创建的对象存放在称为新生代（young generation）中（一般来说，新生代的大小会比老年代小很多），随着垃圾回收的重复执行，生命周期较⻓的对象会被提升（promotion）到老年代中（这里用到了一个分类的思路，这个是也是科学思考的一个基本思路）。因此，新生代垃圾回收和老年代垃圾回收两种不同的垃圾回收方式应运而生，分别用于对各自空间中的对象执行垃圾回收。新生代垃圾回收的速度非常快，比老年代快几个数量级，即使新生代垃圾回收的频率更高，执行效率也仍然比老年代垃圾回收强，这是因为大多数对象的生命周期都很短，根本无需提升到老年代",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0001",
            "p040-t0002",
            "p040-t0003",
            "p040-t0004",
            "p040-t0005",
            "p040-t0006",
            "p040-t0007",
            "p040-t0008",
            "p040-t0009",
            "p040-t0010",
            "p040-t0011",
            "p040-t0012",
            "p040-t0013",
            "p040-t0014",
            "p040-t0015",
            "p040-t0016",
            "p040-t0018",
            "p040-t0019",
            "p040-t0020",
            "p040-t0021",
            "p040-t0022",
            "p040-t0023",
            "p040-t0024",
            "p040-t0025"
          ],
          "operations": [],
          "id": "q-p039-h01-b009",
          "markdown_line": 434
        },
        {
          "kind": "prose",
          "text": "Golang GC 时会发生什么? Golang 1.5后，采取的是“非分代的、非移动的、并发的、三色的”标记清除垃圾回收算法。 golang 中的 gc 基本上是标记清除的过程：",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0026",
            "p040-t0027",
            "p040-t0028",
            "p040-t0029",
            "p040-t0030",
            "p040-t0031",
            "p040-t0032",
            "p040-t0033",
            "p040-t0034",
            "p040-t0035",
            "p040-t0036",
            "p040-t0037",
            "p040-t0038"
          ],
          "operations": [],
          "id": "q-p039-h01-b010",
          "markdown_line": 436
        },
        {
          "kind": "image",
          "image_id": "p040-image-01",
          "pages": [
            40
          ],
          "url": "/go-bank/pdf-p040-01.png",
          "span_ids": [],
          "id": "q-p039-h01-b011",
          "markdown_line": 438
        },
        {
          "kind": "prose",
          "text": "gc的过程一共分为四个阶段：",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0039",
            "p040-t0040"
          ],
          "operations": [],
          "id": "q-p039-h01-b012",
          "markdown_line": 440
        },
        {
          "kind": "prose",
          "text": "1. 栈扫描（开始时STW）",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0041",
            "p040-t0042",
            "p040-t0043",
            "p040-t0044"
          ],
          "operations": [],
          "id": "q-p039-h01-b013",
          "markdown_line": 442
        },
        {
          "kind": "prose",
          "text": "2. 第一次标记（并发）",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0045",
            "p040-t0046"
          ],
          "operations": [],
          "id": "q-p039-h01-b014",
          "markdown_line": 444
        },
        {
          "kind": "prose",
          "text": "3. 第二次标记（STW）",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0047",
            "p040-t0048",
            "p040-t0049",
            "p040-t0050"
          ],
          "operations": [],
          "id": "q-p039-h01-b015",
          "markdown_line": 446
        },
        {
          "kind": "prose",
          "text": "4. 清除（并发）",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0051",
            "p040-t0052"
          ],
          "operations": [],
          "id": "q-p039-h01-b016",
          "markdown_line": 448
        },
        {
          "kind": "prose",
          "text": "整个进程空间里申请每个对象占据的内存可以视为一个图，初始状态下每个内存对象都是白色标记。",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0053"
          ],
          "operations": [],
          "id": "q-p039-h01-b017",
          "markdown_line": 450
        },
        {
          "kind": "prose",
          "text": "1. 先STW，做一些准备工作，比如 enable write barrier。然后取消STW，将扫描任务作为多个并发的goroutine立即入队给调度器，进而被CPU处理",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0054",
            "p040-t0055",
            "p040-t0056",
            "p040-t0057",
            "p040-t0058",
            "p040-t0059",
            "p040-t0060",
            "p040-t0061",
            "p040-t0062",
            "p040-t0063",
            "p040-t0064",
            "p040-t0065",
            "p040-t0066"
          ],
          "operations": [],
          "id": "q-p039-h01-b018",
          "markdown_line": 452
        },
        {
          "kind": "prose",
          "text": "2. 第一轮先扫描root对象，包括全局指针和 goroutine 栈上的指针，标记为灰色放入队列",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0067",
            "p040-t0068",
            "p040-t0069",
            "p040-t0070",
            "p040-t0071",
            "p040-t0072"
          ],
          "operations": [],
          "id": "q-p039-h01-b019",
          "markdown_line": 454
        },
        {
          "kind": "prose",
          "text": "3. 第二轮将第一步队列中的对象引用的对象置为灰色加入队列，一个对象引用的所有对象都置灰并加入队列后，这个对象才能置为黑色并从队列之中取出。循环往复，最后队列为空时，整个图剩下的白色内存空间即不可到达的对象，即没有被引用的对象；",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0073",
            "p040-t0074",
            "p040-t0075",
            "p040-t0076",
            "p040-t0077",
            "p040-t0078"
          ],
          "operations": [],
          "id": "q-p039-h01-b020",
          "markdown_line": 456
        },
        {
          "kind": "prose",
          "text": "4. 第三轮再次STW，将第二轮过程中新增对象申请的内存进行标记（灰色），这里使用了write barrier（写屏障）去记录Golang gc 优化的核心就是尽量使得 STW(Stop The World) 的时间越来越短。",
          "language": null,
          "pages": [
            40
          ],
          "span_ids": [
            "p040-t0079",
            "p040-t0080",
            "p040-t0081",
            "p040-t0082",
            "p040-t0083",
            "p040-t0084",
            "p040-t0085",
            "p040-t0086",
            "p040-t0087",
            "p040-t0088",
            "p040-t0089",
            "p040-t0090"
          ],
          "operations": [],
          "id": "q-p039-h01-b021",
          "markdown_line": 458
        }
      ],
      "markdown_line": 414
    },
    {
      "id": "q-p041-h02",
      "title": "您对微服务有何了解？",
      "heading-id": "p041-h02",
      "source-page": 41,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p041-h02",
      "pages": [
        41
      ],
      "page-range": [
        41,
        41
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "微服务，又称微服务架构，是一种架构风格，它将应用程序构建为以业务领域为模型的小型自治服务集合。通俗地说，你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状物。他们最初从使用各种材料的小部分开始，并继续从中构建一个大型蜂箱。这些细胞形成图案，产生坚固的结构，将蜂窝的特定部分固定在一起。这里，每个细胞独立于另一个细胞，但它也与其他细胞相关。这意味着对一个细胞的损害不会损害其他细胞，因此，蜜蜂可以在不影响完整蜂箱的情况下重建这些细胞",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0007",
            "p041-t0009",
            "p041-t0010",
            "p041-t0012",
            "p041-t0014",
            "p041-t0015",
            "p041-t0017",
            "p041-t0018",
            "p041-t0020",
            "p041-t0022",
            "p041-t0023",
            "p041-t0025"
          ],
          "operations": [],
          "id": "q-p041-h02-b001",
          "markdown_line": 12
        },
        {
          "kind": "image",
          "image_id": "p041-image-01",
          "pages": [
            41
          ],
          "url": "/go-bank/pdf-p041-01.png",
          "span_ids": [],
          "id": "q-p041-h02-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "请参考上图。这里，每个六边形形状代表单独的服务组件。与蜜蜂的工作类似，每个敏捷团队都使用可用的框架和所选的技术堆栈构建单独的服务组件。就像在蜂箱中一样，每个服务组件形成一个强大的微服务架构，以提供更好的 36 可扩展性。此外，敏捷团队可以单独处理每个服务组件的问题，而对整个应用程序没有影响或影响最小。",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0027",
            "p041-t0029",
            "p041-t0030",
            "p041-t0032",
            "p041-t0033",
            "p041-t0034",
            "p041-t0035",
            "p041-t0036",
            "p041-t0038"
          ],
          "operations": [],
          "id": "q-p041-h02-b003",
          "markdown_line": 16
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p041-h03",
      "title": "说说微服务架构的优势",
      "heading-id": "p041-h03",
      "source-page": 41,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p041-h03",
      "pages": [
        41,
        42
      ],
      "page-range": [
        41,
        42
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 独立开发所有微服务都可以根据各自的功能轻松开发",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0043",
            "p041-t0044",
            "p041-t0046"
          ],
          "operations": [],
          "id": "q-p041-h03-b001",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "2. 独立部署根据他们所提供的服务，可以在任何应用中单独部署",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0048",
            "p041-t0049",
            "p041-t0051"
          ],
          "operations": [],
          "id": "q-p041-h03-b002",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "3. 故障隔离即使应用中的一个服务不起作用，系统仍然继续运行",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0053",
            "p041-t0054",
            "p041-t0056"
          ],
          "operations": [],
          "id": "q-p041-h03-b003",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "4. 混合技术栈可以用不同的语言和技术来构建同一应用程序的不同服务",
          "language": null,
          "pages": [
            41
          ],
          "span_ids": [
            "p041-t0058",
            "p041-t0059",
            "p041-t0061"
          ],
          "operations": [],
          "id": "q-p041-h03-b004",
          "markdown_line": 28
        },
        {
          "kind": "prose",
          "text": "5. 粒度缩放各个组件可根据需要进行扩展，无需将所有组件融合到一起",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0001",
            "p042-t0002",
            "p042-t0004"
          ],
          "operations": [],
          "id": "q-p041-h03-b005",
          "markdown_line": 30
        }
      ],
      "markdown_line": 18
    },
    {
      "id": "q-p042-h01",
      "title": "微服务有哪些特点",
      "heading-id": "p042-h01",
      "source-page": 42,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p042-h01",
      "pages": [
        42
      ],
      "page-range": [
        42,
        42
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 解耦—系统内的服务很大程度上是分离的。因此，整个应用程序可以轻松构建，更改和扩展",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0009",
            "p042-t0010",
            "p042-t0011",
            "p042-t0012",
            "p042-t0014"
          ],
          "operations": [],
          "id": "q-p042-h01-b001",
          "markdown_line": 36
        },
        {
          "kind": "prose",
          "text": "2. 组件化—微服务被视为可以轻松更换和升级的独立组件",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0016",
            "p042-t0017",
            "p042-t0018",
            "p042-t0019"
          ],
          "operations": [],
          "id": "q-p042-h01-b002",
          "markdown_line": 38
        },
        {
          "kind": "prose",
          "text": "3. 业务能力—微服务非常简单，专注于单一功能",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0021",
            "p042-t0022",
            "p042-t0023",
            "p042-t0024"
          ],
          "operations": [],
          "id": "q-p042-h01-b003",
          "markdown_line": 40
        },
        {
          "kind": "prose",
          "text": "4. 自治—开发人员和团队可以彼此独立工作，从而提高速度",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0026",
            "p042-t0027",
            "p042-t0028",
            "p042-t0029"
          ],
          "operations": [],
          "id": "q-p042-h01-b004",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "5. 持续交付—通过软件创建，测试和批准的系统自动化，允许频繁发布软件",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0031",
            "p042-t0032",
            "p042-t0033",
            "p042-t0034"
          ],
          "operations": [],
          "id": "q-p042-h01-b005",
          "markdown_line": 44
        },
        {
          "kind": "prose",
          "text": "6. 责任—微服务不关注应用程序作为项目。相反，他们将应用程序视为他们负责的产品",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0036",
            "p042-t0037",
            "p042-t0038",
            "p042-t0039",
            "p042-t0041"
          ],
          "operations": [],
          "id": "q-p042-h01-b006",
          "markdown_line": 46
        },
        {
          "kind": "prose",
          "text": "7. 分散治理—重点是使用正确的工具来做正确的工作。这意味着没有标准化模式或任何技术模式。开发人员可以自由选择最有用的工具来解决他们的问题",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0043",
            "p042-t0044",
            "p042-t0045",
            "p042-t0046",
            "p042-t0048",
            "p042-t0049",
            "p042-t0051"
          ],
          "operations": [],
          "id": "q-p042-h01-b007",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "8. 敏捷—微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0053",
            "p042-t0054",
            "p042-t0055",
            "p042-t0056"
          ],
          "operations": [],
          "id": "q-p042-h01-b008",
          "markdown_line": 50
        }
      ],
      "markdown_line": 32
    },
    {
      "id": "q-p042-h02",
      "title": "设计微服务的最佳实践是什么",
      "heading-id": "p042-h02",
      "source-page": 42,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p042-h02",
      "pages": [
        42
      ],
      "page-range": [
        42,
        42
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p042-image-01",
          "pages": [
            42
          ],
          "url": "/go-bank/pdf-p042-01.png",
          "span_ids": [],
          "id": "q-p042-h02-b001",
          "markdown_line": 56
        }
      ],
      "markdown_line": 52
    },
    {
      "id": "q-p042-h03",
      "title": "微服务架构如何运作",
      "heading-id": "p042-h03",
      "source-page": 42,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p042-h03",
      "pages": [
        42
      ],
      "page-range": [
        42,
        42
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "微服务架构具有以下组件：",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0065"
          ],
          "operations": [],
          "id": "q-p042-h03-b001",
          "markdown_line": 62
        },
        {
          "kind": "prose",
          "text": "1. 客户端 – 来自不同设备的不同用户发送请求。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0067",
            "p042-t0068",
            "p042-t0069",
            "p042-t0070"
          ],
          "operations": [],
          "id": "q-p042-h03-b002",
          "markdown_line": 64
        },
        {
          "kind": "prose",
          "text": "2. 身份提供商 – 验证用户或客户身份并颁发安全令牌。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0072",
            "p042-t0073",
            "p042-t0074",
            "p042-t0075"
          ],
          "operations": [],
          "id": "q-p042-h03-b003",
          "markdown_line": 66
        },
        {
          "kind": "prose",
          "text": "3. API 网关 – 处理客户端请求。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0077",
            "p042-t0078",
            "p042-t0079",
            "p042-t0080"
          ],
          "operations": [],
          "id": "q-p042-h03-b004",
          "markdown_line": 68
        },
        {
          "kind": "prose",
          "text": "4. 静态内容 – 容纳系统的所有内容。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0082",
            "p042-t0083",
            "p042-t0084",
            "p042-t0085"
          ],
          "operations": [],
          "id": "q-p042-h03-b005",
          "markdown_line": 70
        },
        {
          "kind": "prose",
          "text": "5. 管理 – 在节点上平衡服务并识别故障。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0087",
            "p042-t0088",
            "p042-t0089",
            "p042-t0090"
          ],
          "operations": [],
          "id": "q-p042-h03-b006",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "6. 服务发现 – 查找微服务之间通信路径的指南。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0092",
            "p042-t0093",
            "p042-t0094",
            "p042-t0095"
          ],
          "operations": [],
          "id": "q-p042-h03-b007",
          "markdown_line": 74
        },
        {
          "kind": "prose",
          "text": "7. 网络 – 代理服务器及其数据中心的分布式网络。",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0097",
            "p042-t0098",
            "p042-t0099",
            "p042-t0100"
          ],
          "operations": [],
          "id": "q-p042-h03-b008",
          "markdown_line": 76
        },
        {
          "kind": "prose",
          "text": "8. 远程服务 – 启用驻留在 IT 设备网络上的远程访问信息",
          "language": null,
          "pages": [
            42
          ],
          "span_ids": [
            "p042-t0102",
            "p042-t0103",
            "p042-t0104",
            "p042-t0105",
            "p042-t0106",
            "p042-t0107"
          ],
          "operations": [],
          "id": "q-p042-h03-b009",
          "markdown_line": 78
        }
      ],
      "markdown_line": 58
    },
    {
      "id": "q-p043-h01",
      "title": "微服务架构的优缺点是什么",
      "heading-id": "p043-h01",
      "source-page": 43,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p043-h01",
      "pages": [
        43
      ],
      "page-range": [
        43,
        43
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "微服务架构的优点：",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0005",
            "p043-t0007"
          ],
          "operations": [],
          "id": "q-p043-h01-b001",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "1. 自由使用不同的技术",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0008",
            "p043-t0009"
          ],
          "operations": [],
          "id": "q-p043-h01-b002",
          "markdown_line": 86
        },
        {
          "kind": "prose",
          "text": "2. 每个微服务都侧重于单一功能",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0011",
            "p043-t0012"
          ],
          "operations": [],
          "id": "q-p043-h01-b003",
          "markdown_line": 88
        },
        {
          "kind": "prose",
          "text": "3. 支持单个可部署单元",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0014",
            "p043-t0015"
          ],
          "operations": [],
          "id": "q-p043-h01-b004",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "4. 允许经常发布软件",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0017",
            "p043-t0018"
          ],
          "operations": [],
          "id": "q-p043-h01-b005",
          "markdown_line": 92
        },
        {
          "kind": "prose",
          "text": "5. 确保每项服务的安全性",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0020",
            "p043-t0021"
          ],
          "operations": [],
          "id": "q-p043-h01-b006",
          "markdown_line": 94
        },
        {
          "kind": "prose",
          "text": "6. 多个服务是并行开发和部署的",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0023",
            "p043-t0024"
          ],
          "operations": [],
          "id": "q-p043-h01-b007",
          "markdown_line": 96
        },
        {
          "kind": "prose",
          "text": "微服务架构的缺点",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0026"
          ],
          "operations": [],
          "id": "q-p043-h01-b008",
          "markdown_line": 98
        },
        {
          "kind": "prose",
          "text": "1. 增加故障排除挑战",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0027",
            "p043-t0028"
          ],
          "operations": [],
          "id": "q-p043-h01-b009",
          "markdown_line": 100
        },
        {
          "kind": "prose",
          "text": "2. 由于远程调用而增加延迟",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0030",
            "p043-t0031"
          ],
          "operations": [],
          "id": "q-p043-h01-b010",
          "markdown_line": 102
        },
        {
          "kind": "prose",
          "text": "3. 增加了配置和其他操作的工作量",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0033",
            "p043-t0034"
          ],
          "operations": [],
          "id": "q-p043-h01-b011",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "4. 难以保持交易安全",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0036",
            "p043-t0037"
          ],
          "operations": [],
          "id": "q-p043-h01-b012",
          "markdown_line": 106
        },
        {
          "kind": "prose",
          "text": "5. 艰难地跨越各种便捷跟踪数据",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0039",
            "p043-t0040"
          ],
          "operations": [],
          "id": "q-p043-h01-b013",
          "markdown_line": 108
        },
        {
          "kind": "prose",
          "text": "6. 难以在服务之间进行编码",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0042",
            "p043-t0043"
          ],
          "operations": [],
          "id": "q-p043-h01-b014",
          "markdown_line": 110
        }
      ],
      "markdown_line": 80
    },
    {
      "id": "q-p043-h02",
      "title": "单片，SOA 和微服务架构有什么区别？",
      "heading-id": "p043-h02",
      "source-page": 43,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p043-h02",
      "pages": [
        43
      ],
      "page-range": [
        43,
        43
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p043-image-01",
          "pages": [
            43
          ],
          "url": "/go-bank/pdf-p043-01.png",
          "span_ids": [],
          "id": "q-p043-h02-b001",
          "markdown_line": 116
        },
        {
          "kind": "prose",
          "text": "1. 单片架构类似于大容器，其中应用程序的所有软件组件组装在一起并紧密封装。",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0050",
            "p043-t0051",
            "p043-t0053"
          ],
          "operations": [],
          "id": "q-p043-h02-b002",
          "markdown_line": 118
        },
        {
          "kind": "prose",
          "text": "2. 一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数据传递，也可以涉及两个或多个协调某些活动的服务。",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0055",
            "p043-t0056",
            "p043-t0058",
            "p043-t0059"
          ],
          "operations": [],
          "id": "q-p043-h02-b003",
          "markdown_line": 120
        },
        {
          "kind": "prose",
          "text": "3. 微服务架构是一种架构风格，它将应用程序构建为以业务域为模型的小型自治服务集合。",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0060",
            "p043-t0061",
            "p043-t0063"
          ],
          "operations": [],
          "id": "q-p043-h02-b004",
          "markdown_line": 122
        }
      ],
      "markdown_line": 112
    },
    {
      "id": "q-p043-h03",
      "title": "在使用微服务架构时，您面临哪些挑战？",
      "heading-id": "p043-h03",
      "source-page": 43,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p043-h03",
      "pages": [
        43,
        44
      ],
      "page-range": [
        43,
        44
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "开发一些较小的微服务听起来很容易，但开发它们时经常遇到的挑战如下。",
          "language": null,
          "pages": [
            43
          ],
          "span_ids": [
            "p043-t0068"
          ],
          "operations": [],
          "id": "q-p043-h03-b001",
          "markdown_line": 128
        },
        {
          "kind": "prose",
          "text": "1. 自动化组件：难以自动化，因为有许多较小的组件。因此，对于每个组件，我们必须遵循 Build， Deploy 和 Monitor 的各个阶段。",
          "language": null,
          "pages": [
            44
          ],
          "span_ids": [
            "p044-t0001",
            "p044-t0002",
            "p044-t0004",
            "p044-t0005",
            "p044-t0006",
            "p044-t0007",
            "p044-t0008",
            "p044-t0009",
            "p044-t0010"
          ],
          "operations": [],
          "id": "q-p043-h03-b002",
          "markdown_line": 130
        },
        {
          "kind": "prose",
          "text": "2. 易感性：将大量组件维护在一起变得难以部署，维护，监控和识别问题。它需要在所有组件周围具有很好的感知能力。、",
          "language": null,
          "pages": [
            44
          ],
          "span_ids": [
            "p044-t0012",
            "p044-t0013",
            "p044-t0015",
            "p044-t0016",
            "p044-t0018"
          ],
          "operations": [],
          "id": "q-p043-h03-b003",
          "markdown_line": 132
        },
        {
          "kind": "prose",
          "text": "3. 配置管理：有时在各种环境中维护组件的配置变得困难。",
          "language": null,
          "pages": [
            44
          ],
          "span_ids": [
            "p044-t0019",
            "p044-t0020"
          ],
          "operations": [],
          "id": "q-p043-h03-b004",
          "markdown_line": 134
        },
        {
          "kind": "prose",
          "text": "4. 调试：很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试问题至关重要。",
          "language": null,
          "pages": [
            44
          ],
          "span_ids": [
            "p044-t0022",
            "p044-t0023",
            "p044-t0025"
          ],
          "operations": [],
          "id": "q-p043-h03-b005",
          "markdown_line": 136
        }
      ],
      "markdown_line": 124
    },
    {
      "id": "q-p044-h01",
      "title": "SOA 和微服务架构之间的主要区别是什么？",
      "heading-id": "p044-h01",
      "source-page": 44,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p044-h01",
      "pages": [
        44
      ],
      "page-range": [
        44,
        44
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p044-image-01",
          "pages": [
            44
          ],
          "url": "/go-bank/pdf-p044-01.png",
          "span_ids": [],
          "id": "q-p044-h01-b001",
          "markdown_line": 142
        }
      ],
      "markdown_line": 138
    },
    {
      "id": "q-p044-h02",
      "title": "微服务有什么特点",
      "heading-id": "p044-h02",
      "source-page": 44,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p044-h02",
      "pages": [
        44
      ],
      "page-range": [
        44,
        44
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p044-image-02",
          "pages": [
            44
          ],
          "url": "/go-bank/pdf-p044-02.png",
          "span_ids": [],
          "id": "q-p044-h02-b001",
          "markdown_line": 148
        }
      ],
      "markdown_line": 144
    },
    {
      "id": "q-p045-h01",
      "title": "什么是领域驱动设计",
      "heading-id": "p045-h01",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h01",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p045-image-01",
          "pages": [
            45
          ],
          "url": "/go-bank/pdf-p045-01.png",
          "span_ids": [],
          "id": "q-p045-h01-b001",
          "markdown_line": 154
        }
      ],
      "markdown_line": 150
    },
    {
      "id": "q-p045-h02",
      "title": "为什么需要域驱动设计（DDD）",
      "heading-id": "p045-h02",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h02",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p045-image-02",
          "pages": [
            45
          ],
          "url": "/go-bank/pdf-p045-02.png",
          "span_ids": [],
          "id": "q-p045-h02-b001",
          "markdown_line": 160
        }
      ],
      "markdown_line": 156
    },
    {
      "id": "q-p045-h03",
      "title": "什么是无所不在的语言",
      "heading-id": "p045-h03",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h03",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果您必须定义泛在语言（UL），那么它是特定域的开发人员和用户使用的通用语言，通过该语言可以轻松解释域。无处不在的语言必须非常清晰，以便它将所有团队成员放在同一页面上，并以机器可以理解的方式进行翻译",
          "language": null,
          "pages": [
            45
          ],
          "span_ids": [
            "p045-t0013",
            "p045-t0014",
            "p045-t0015",
            "p045-t0017",
            "p045-t0018",
            "p045-t0020",
            "p045-t0022",
            "p045-t0023"
          ],
          "operations": [],
          "id": "q-p045-h03-b001",
          "markdown_line": 166
        }
      ],
      "markdown_line": 162
    },
    {
      "id": "q-p045-h04",
      "title": "什么是凝聚力",
      "heading-id": "p045-h04",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h04",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "模块内部元素所属的程度被认为是凝聚力",
          "language": null,
          "pages": [
            45
          ],
          "span_ids": [
            "p045-t0029"
          ],
          "operations": [],
          "id": "q-p045-h04-b001",
          "markdown_line": 172
        }
      ],
      "markdown_line": 168
    },
    {
      "id": "q-p045-h05",
      "title": "什么是耦合",
      "heading-id": "p045-h05",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h05",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "组件之间依赖关系强度的度量被认为是耦合。一个好的设计总是被认为具有高内聚力和低耦合性。",
          "language": null,
          "pages": [
            45
          ],
          "span_ids": [
            "p045-t0035",
            "p045-t0037"
          ],
          "operations": [],
          "id": "q-p045-h05-b001",
          "markdown_line": 178
        }
      ],
      "markdown_line": 174
    },
    {
      "id": "q-p045-h06",
      "title": "、什么是 REST / RESTful 以及它的用途是什么？",
      "heading-id": "p045-h06",
      "source-page": 45,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p045-h06",
      "pages": [
        45
      ],
      "page-range": [
        45,
        45
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Representational State Transfer（REST）/ RESTful Web 服务是一种帮助计算机系统通过 Internet 进行通信的架构风格。这使得微服务更容易理解和实现。微服务可以使用或不使用 RESTful API 实现，但使用 RESTful API 构建松散耦合的微服务总是更容易。",
          "language": null,
          "pages": [
            45
          ],
          "span_ids": [
            "p045-t0044",
            "p045-t0045",
            "p045-t0046",
            "p045-t0047",
            "p045-t0048",
            "p045-t0049",
            "p045-t0051",
            "p045-t0052",
            "p045-t0053",
            "p045-t0054",
            "p045-t0056",
            "p045-t0058",
            "p045-t0059",
            "p045-t0060",
            "p045-t0061",
            "p045-t0062",
            "p045-t0063",
            "p045-t0065"
          ],
          "operations": [],
          "id": "q-p045-h06-b001",
          "markdown_line": 184
        }
      ],
      "markdown_line": 180
    },
    {
      "id": "q-p046-h01",
      "title": "什么是不同类型的微服务测试",
      "heading-id": "p046-h01",
      "source-page": 46,
      "section": "微服务",
      "topic": "06-microservices",
      "target": "/go-bank/06-microservices#q-p046-h01",
      "pages": [
        46
      ],
      "page-range": [
        46,
        46
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在使用微服务时，由于有多个微服务协同工作，测试变得非常复杂。因此，测试分为不同的级别",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0005",
            "p046-t0007"
          ],
          "operations": [],
          "id": "q-p046-h01-b001",
          "markdown_line": 190
        },
        {
          "kind": "prose",
          "text": "1. 在底层，我们有面向技术的测试，如单元测试和性能测试。这些是完全自动化的。",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0009",
            "p046-t0010",
            "p046-t0012"
          ],
          "operations": [],
          "id": "q-p046-h01-b002",
          "markdown_line": 192
        },
        {
          "kind": "prose",
          "text": "2. 在中间层面，我们进行了诸如压力测试和可用性测试之类的探索性测试。",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0014",
            "p046-t0015"
          ],
          "operations": [],
          "id": "q-p046-h01-b003",
          "markdown_line": 194
        },
        {
          "kind": "prose",
          "text": "3. 在顶层，我们的验收测试数量很少。这些验收测试有助于利益相关者理解和验证软件功能",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0017",
            "p046-t0018",
            "p046-t0020",
            "p046-t0022"
          ],
          "operations": [],
          "id": "q-p046-h01-b004",
          "markdown_line": 196
        }
      ],
      "markdown_line": 186
    },
    {
      "id": "q-p046-h03",
      "title": "为什么需要 DevOps",
      "heading-id": "p046-h03",
      "source-page": 46,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p046-h03",
      "pages": [
        46
      ],
      "page-range": [
        46,
        46
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在当今，软件开发公司在软件新版本发布方面，多尝试通过发布一系列以小的特性改变集为目标的新软件版本，代替发布一个大特性改变集的新软件版本的方式。这种方式有许多优点，诸如，快速的客户反馈，软件质量的保证等。也会获得较高的客户满意度评价。完成这样的软件发布模式，开发公司需要做到：增加软件布署的频率降低新发布版本的失败率缩短修复缺陷的交付时间加快解决版本冲突的问题DevOps 满足所有这些需求且帮助公司高质完成软件无缝交付的目标。",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0030",
            "p046-t0032",
            "p046-t0033",
            "p046-t0035",
            "p046-t0036",
            "p046-t0038",
            "p046-t0040",
            "p046-t0042",
            "p046-t0044",
            "p046-t0046",
            "p046-t0048",
            "p046-t0050",
            "p046-t0051"
          ],
          "operations": [],
          "id": "q-p046-h03-b001",
          "markdown_line": 12
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p046-h04",
      "title": "Docker 是什么？",
      "heading-id": "p046-h04",
      "source-page": 46,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p046-h04",
      "pages": [
        46
      ],
      "page-range": [
        46,
        46
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker 是一个容器化平台，它包装你所有开发环境依赖成一个整体，像一个容器。保证项目开发，如开发、测试、发布等各生产环节都可以无缝工作在不同的平台 Docker 容器：将一个软件包装在一个完整的文件系统中，该文件系统包含运行所需的一切：代码，运行时，系统工具，系统库等。可以安装在服务器上的任何东西。这保证软件总是运行在相同的运行环境，无需考虑基础环境配置的改变。",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0057",
            "p046-t0058",
            "p046-t0060",
            "p046-t0061",
            "p046-t0063",
            "p046-t0064",
            "p046-t0065",
            "p046-t0066",
            "p046-t0068",
            "p046-t0069",
            "p046-t0071",
            "p046-t0073"
          ],
          "operations": [],
          "id": "q-p046-h04-b001",
          "markdown_line": 18
        }
      ],
      "markdown_line": 14
    },
    {
      "id": "q-p046-h05",
      "title": "DevOps 有哪些优势？",
      "heading-id": "p046-h05",
      "source-page": 46,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p046-h05",
      "pages": [
        46
      ],
      "page-range": [
        46,
        46
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "技术优势:持续的软件交付能力修复问题变得简单更快得解决问题商业优势:更快交付的特性更稳定的操作系统环境更多时间可用于创造价值 (而不是修复 / 维护)",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0079",
            "p046-t0080",
            "p046-t0081",
            "p046-t0083",
            "p046-t0085",
            "p046-t0086",
            "p046-t0087",
            "p046-t0088",
            "p046-t0090",
            "p046-t0092",
            "p046-t0093",
            "p046-t0094",
            "p046-t0095",
            "p046-t0096",
            "p046-t0097"
          ],
          "operations": [],
          "id": "q-p046-h05-b001",
          "markdown_line": 24
        }
      ],
      "markdown_line": 20
    },
    {
      "id": "q-p046-h06",
      "title": "CI 服务有什么用途？",
      "heading-id": "p046-h06",
      "source-page": 46,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p046-h06",
      "pages": [
        46
      ],
      "page-range": [
        46,
        46
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "CI （Continuous Integration）-- 持续集成服务 -- 主要用于整合团队开发中不同开发者提交到开发仓库中的项目代码变化，并即时整合编译，检查整合编译错误的服务。它需要一天中多次整合编译代码的能力，若出现整合错误，可以优异地准确定位提交错误源",
          "language": null,
          "pages": [
            46
          ],
          "span_ids": [
            "p046-t0102",
            "p046-t0103",
            "p046-t0104",
            "p046-t0105",
            "p046-t0106",
            "p046-t0107",
            "p046-t0108",
            "p046-t0109",
            "p046-t0111",
            "p046-t0112",
            "p046-t0114",
            "p046-t0115",
            "p046-t0117"
          ],
          "operations": [],
          "id": "q-p046-h06-b001",
          "markdown_line": 30
        }
      ],
      "markdown_line": 26
    },
    {
      "id": "q-p047-h01",
      "title": "如何使用 Docker 技术创建与环境无关的容器系统？",
      "heading-id": "p047-h01",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h01",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker 技术有三中主要的技术途径辅助完成此需求：存储卷（Volumes）环境变量（Environment variable）注入只读（Read-only）文件系统",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0006",
            "p047-t0007",
            "p047-t0009",
            "p047-t0010",
            "p047-t0011",
            "p047-t0013",
            "p047-t0014",
            "p047-t0015",
            "p047-t0017",
            "p047-t0018",
            "p047-t0019"
          ],
          "operations": [],
          "id": "q-p047-h01-b001",
          "markdown_line": 36
        }
      ],
      "markdown_line": 32
    },
    {
      "id": "q-p047-h02",
      "title": "Dockerfile 配置文件中的 COPY 和 ADD 指令有什么不同？",
      "heading-id": "p047-h02",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h02",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "虽然 ADD 和 COPY 功能相似，推荐 COPY那是因为 COPY 比 ADD 更直观易懂。 COPY 只是将本地文件拷入容器这么简单，而 ADD 有一些其它特性功能（诸如，本地归档解压和支持远程网址访问等），这些特性在指令本身体现并不明显。因此，有必要使用 ADD 指令的最好例子是需要在本地自动解压归档文件到容器中的情况，如 ADD rootfs.tar.xz。",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0031",
            "p047-t0032",
            "p047-t0033",
            "p047-t0034",
            "p047-t0035",
            "p047-t0036",
            "p047-t0038",
            "p047-t0039",
            "p047-t0040",
            "p047-t0041",
            "p047-t0042",
            "p047-t0043",
            "p047-t0044",
            "p047-t0046",
            "p047-t0047",
            "p047-t0048",
            "p047-t0049",
            "p047-t0051",
            "p047-t0052",
            "p047-t0053",
            "p047-t0054",
            "p047-t0056",
            "p047-t0057",
            "p047-t0058",
            "p047-t0059"
          ],
          "operations": [],
          "id": "q-p047-h02-b001",
          "markdown_line": 42
        }
      ],
      "markdown_line": 38
    },
    {
      "id": "q-p047-h03",
      "title": "Docker 镜像（image）是什么？",
      "heading-id": "p047-h03",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h03",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker image 是 Docker 容器的源。换言之，Docker images 用于创建 Docker 容器（containers）。映像（Images）通过 Docker build 命令创建，当 run 映像时，它启动成一个容器（container）进程。做好的映像由于可能非常庞大，常注册存储在诸如 registry.hub.docker.com 这样的公共平台上。映像常被分层设计，每层可单独成为一个小映像，由多层小映像再构成大映像，这样碎片化的设计为了使映像在互联网上共享时，最小化传输数据需求。",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0067",
            "p047-t0068",
            "p047-t0069",
            "p047-t0070",
            "p047-t0071",
            "p047-t0072",
            "p047-t0073",
            "p047-t0074",
            "p047-t0075",
            "p047-t0076",
            "p047-t0077",
            "p047-t0078",
            "p047-t0079",
            "p047-t0080",
            "p047-t0081",
            "p047-t0083",
            "p047-t0084",
            "p047-t0085",
            "p047-t0087",
            "p047-t0088",
            "p047-t0089",
            "p047-t0090",
            "p047-t0092",
            "p047-t0094",
            "p047-t0095",
            "p047-t0096",
            "p047-t0098",
            "p047-t0099",
            "p047-t0101",
            "p047-t0102",
            "p047-t0104"
          ],
          "operations": [],
          "id": "q-p047-h03-b001",
          "markdown_line": 48
        }
      ],
      "markdown_line": 44
    },
    {
      "id": "q-p047-h04",
      "title": "Docker 容器（container）是什么",
      "heading-id": "p047-h04",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h04",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker containers -- Docker 容器 -- 是包含其所有运行依赖环境，但与其它容器共享操作系统内核的应用，它运行在独立的主机操作系统用户空间进程中。Docker 容器并不紧密依赖特定的基础平台：可运行在任何配置的计算机，任何平台以及任何云平台上",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0112",
            "p047-t0113",
            "p047-t0114",
            "p047-t0115",
            "p047-t0117",
            "p047-t0118",
            "p047-t0120",
            "p047-t0121",
            "p047-t0122",
            "p047-t0123",
            "p047-t0125"
          ],
          "operations": [],
          "id": "q-p047-h04-b001",
          "markdown_line": 54
        }
      ],
      "markdown_line": 50
    },
    {
      "id": "q-p047-h05",
      "title": "Docker 中心（hub）什么概念",
      "heading-id": "p047-h05",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h05",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker hub 是云基础的 Docker 注册服务平台，它允许用户进行访问 Docker 中心资源库，创建自己的Docker 映像并测试，推送并存储创建好的 Docker 映像，连接 Docker 云平台将已创建好的指定 Docker映像布署到本地主机等任务。它提供了一个查找发现 Docker 映像，发布 Docker 映像及控制变化升级的资源中心，成为用户组或团队协作开发中保证自动化开发流程的有效技术途径。",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0133",
            "p047-t0134",
            "p047-t0135",
            "p047-t0136",
            "p047-t0137",
            "p047-t0138",
            "p047-t0140",
            "p047-t0141",
            "p047-t0142",
            "p047-t0143",
            "p047-t0144",
            "p047-t0145",
            "p047-t0146",
            "p047-t0147",
            "p047-t0149",
            "p047-t0150",
            "p047-t0151",
            "p047-t0152",
            "p047-t0153",
            "p047-t0155",
            "p047-t0156",
            "p047-t0158"
          ],
          "operations": [],
          "id": "q-p047-h05-b001",
          "markdown_line": 60
        }
      ],
      "markdown_line": 56
    },
    {
      "id": "q-p047-h06",
      "title": "在任意给定时间点指出一个 Docker 容器可能存在的运行阶段",
      "heading-id": "p047-h06",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h06",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在任意时间点，一个 Docker 容器可能存在以下运行阶段：运行中（Running）已暂停（Paused）重启中（Restarting）已退出（Exited）",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0167",
            "p047-t0168",
            "p047-t0169",
            "p047-t0171",
            "p047-t0173",
            "p047-t0174",
            "p047-t0175",
            "p047-t0177",
            "p047-t0178",
            "p047-t0179",
            "p047-t0181",
            "p047-t0182",
            "p047-t0183",
            "p047-t0185",
            "p047-t0186",
            "p047-t0187"
          ],
          "operations": [],
          "id": "q-p047-h06-b001",
          "markdown_line": 66
        }
      ],
      "markdown_line": 62
    },
    {
      "id": "q-p047-h07",
      "title": "有什么方法确定一个 Docker 容器运行状态",
      "heading-id": "p047-h07",
      "source-page": 47,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p047-h07",
      "pages": [
        47
      ],
      "page-range": [
        47,
        47
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "使用如下命令行命令确定一个 Docker 容器的运行状态docker ps –a这将列表形式输出运行在主机上的所有 Docker 容器及其运行状态。从这个列表中很容易找到想要的容器及其运行状态",
          "language": null,
          "pages": [
            47
          ],
          "span_ids": [
            "p047-t0195",
            "p047-t0196",
            "p047-t0197",
            "p047-t0199",
            "p047-t0200",
            "p047-t0201",
            "p047-t0202",
            "p047-t0204",
            "p047-t0205"
          ],
          "operations": [],
          "id": "q-p047-h07-b001",
          "markdown_line": 72
        }
      ],
      "markdown_line": 68
    },
    {
      "id": "q-p048-h01",
      "title": "在 Dockerfile 配置文件中最常用的指令有哪些？",
      "heading-id": "p048-h01",
      "source-page": 48,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p048-h01",
      "pages": [
        48
      ],
      "page-range": [
        48,
        48
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. FROM：使用 FROM 为后续的指令建立基础映像。在所有有效的 Dockerfile 中， FROM 是第一条指令。",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0006",
            "p048-t0007",
            "p048-t0008",
            "p048-t0009",
            "p048-t0010",
            "p048-t0011",
            "p048-t0012",
            "p048-t0013",
            "p048-t0014"
          ],
          "operations": [],
          "id": "q-p048-h01-b001",
          "markdown_line": 78
        },
        {
          "kind": "prose",
          "text": "2. LABEL：LABEL 指令用于组织项目映像，模块，许可等。在自动化布署方面 LABEL 也有很大用途。在 LABEL 中指定一组键值对，可用于程序化配置或布署 Docker。",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0015",
            "p048-t0016",
            "p048-t0017",
            "p048-t0018",
            "p048-t0019",
            "p048-t0020",
            "p048-t0021",
            "p048-t0022",
            "p048-t0023",
            "p048-t0024",
            "p048-t0025"
          ],
          "operations": [],
          "id": "q-p048-h01-b002",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "3. RUN：RUN 指令可在映像当前层执行任何命令并创建一个新层，用于在映像层中添加功能层，也许最来的层会依赖它。",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0027",
            "p048-t0028",
            "p048-t0029",
            "p048-t0030",
            "p048-t0032",
            "p048-t0033"
          ],
          "operations": [],
          "id": "q-p048-h01-b003",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "4. CMD：使用 CMD 指令为执行的容器提供默认值。在 Dockerfile 文件中，若添加多个 CMD 指令，只有最后的 CMD 指令运行",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0035",
            "p048-t0036",
            "p048-t0037",
            "p048-t0038",
            "p048-t0039",
            "p048-t0040",
            "p048-t0042",
            "p048-t0043",
            "p048-t0044",
            "p048-t0045",
            "p048-t0046",
            "p048-t0047"
          ],
          "operations": [],
          "id": "q-p048-h01-b004",
          "markdown_line": 84
        }
      ],
      "markdown_line": 74
    },
    {
      "id": "q-p048-h02",
      "title": "什么类型的应用（无状态性或有状态性）更适合 Docker 容器技术",
      "heading-id": "p048-h02",
      "source-page": 48,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p048-h02",
      "pages": [
        48
      ],
      "page-range": [
        48,
        48
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "对于 Docker 容器创建无状态性（Stateless）的应用更可取。通过从应用项目中将与状态相关的信息及配置提取掉，我们可以在项目环境外建立不依赖项目环境的 Docker 容器。这样，我们可以在任意产品中运行同一容器，只需根据产品需要像问 & 答（QA）一样给其配置环境即可。这帮助我们在不同场景重用相同的 Docker 映像。另外，使用无状态性（Stateless）容器应用相比有状态性（Stateful）容器应用更具伸缩性，也容易创建",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0057",
            "p048-t0058",
            "p048-t0059",
            "p048-t0060",
            "p048-t0061",
            "p048-t0063",
            "p048-t0064",
            "p048-t0066",
            "p048-t0067",
            "p048-t0068",
            "p048-t0069",
            "p048-t0071",
            "p048-t0072",
            "p048-t0073",
            "p048-t0074",
            "p048-t0075",
            "p048-t0077",
            "p048-t0078",
            "p048-t0080",
            "p048-t0081",
            "p048-t0082",
            "p048-t0084",
            "p048-t0085",
            "p048-t0086",
            "p048-t0088",
            "p048-t0089",
            "p048-t0090",
            "p048-t0091"
          ],
          "operations": [],
          "id": "q-p048-h02-b001",
          "markdown_line": 90
        }
      ],
      "markdown_line": 86
    },
    {
      "id": "q-p048-h03",
      "title": "解释基本 Docker 应用流程",
      "heading-id": "p048-h03",
      "source-page": 48,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p048-h03",
      "pages": [
        48
      ],
      "page-range": [
        48,
        48
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "初始，所有都有赖于 Dockerfile 配置文件。Dockerfile 配置文件就是创建 Docker image (映像) 的源代码。 48 一旦 Dockerfile 配置好了，就可以创建（build）并生成 'image（映像） '，'image' 就是Dockerfile 配置文件中「源代码」的「编译」版本。一旦有了 'image'，就可以在 registry（注册中心）发布它。 'registry' 类似 git 的资源库 -- 你可以推送你的映像（image），也可取回库中的映像（image）。之后，你就可以使用 image 去启动运行 'containers（容器）'。运行中的容器在许多方面，与虚拟机非常相似，但容器的运行不需要虚拟管理软件的运行。",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0099",
            "p048-t0100",
            "p048-t0101",
            "p048-t0102",
            "p048-t0103",
            "p048-t0104",
            "p048-t0105",
            "p048-t0106",
            "p048-t0107",
            "p048-t0108",
            "p048-t0109",
            "p048-t0110",
            "p048-t0111",
            "p048-t0112",
            "p048-t0113",
            "p048-t0114",
            "p048-t0115",
            "p048-t0116",
            "p048-t0117",
            "p048-t0118",
            "p048-t0119",
            "p048-t0120",
            "p048-t0122",
            "p048-t0123",
            "p048-t0125",
            "p048-t0127",
            "p048-t0128",
            "p048-t0129",
            "p048-t0130",
            "p048-t0131",
            "p048-t0132",
            "p048-t0134",
            "p048-t0135",
            "p048-t0136",
            "p048-t0137",
            "p048-t0138",
            "p048-t0139",
            "p048-t0140",
            "p048-t0141",
            "p048-t0142",
            "p048-t0144",
            "p048-t0145",
            "p048-t0146",
            "p048-t0148",
            "p048-t0149",
            "p048-t0150",
            "p048-t0151",
            "p048-t0152",
            "p048-t0153",
            "p048-t0154",
            "p048-t0156",
            "p048-t0157",
            "p048-t0159"
          ],
          "operations": [],
          "id": "q-p048-h03-b001",
          "markdown_line": 96
        }
      ],
      "markdown_line": 92
    },
    {
      "id": "q-p048-h04",
      "title": "Docker Image 和 Docker Layer （层) 有什么不同？",
      "heading-id": "p048-h04",
      "source-page": 48,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p048-h04",
      "pages": [
        48
      ],
      "page-range": [
        48,
        48
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Image：一个 Docker Image 是由一系列 Docker 只读层（read-only Layer）创建出来的。 Layer：在Dockerfile 配置文件中完成的一条配置指令，即表示一个 Docker 层（Layer）。如下 Dockerfile 文件包含 4 条指令，每条指令创建一个层（Layer）",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0169",
            "p048-t0170",
            "p048-t0171",
            "p048-t0172",
            "p048-t0173",
            "p048-t0174",
            "p048-t0175",
            "p048-t0176",
            "p048-t0178",
            "p048-t0179",
            "p048-t0180",
            "p048-t0182",
            "p048-t0183",
            "p048-t0184",
            "p048-t0185",
            "p048-t0186",
            "p048-t0187",
            "p048-t0189",
            "p048-t0190",
            "p048-t0191",
            "p048-t0192",
            "p048-t0193",
            "p048-t0194",
            "p048-t0195",
            "p048-t0196"
          ],
          "operations": [],
          "id": "q-p048-h04-b001",
          "markdown_line": 102
        },
        {
          "kind": "code",
          "text": "FROM ubuntu:15.04\nCOPY . /app\nRUN make /app\nCMD python /app/app.py",
          "language": "dockerfile",
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0237",
            "p048-t0238",
            "p048-t0239",
            "p048-t0240"
          ],
          "operations": [],
          "id": "q-p048-h04-b002",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "重点，每层只对其前一层进行一（某）些进化",
          "language": null,
          "pages": [
            48
          ],
          "span_ids": [
            "p048-t0199"
          ],
          "operations": [],
          "id": "q-p048-h04-b003",
          "markdown_line": 111
        }
      ],
      "markdown_line": 98
    },
    {
      "id": "q-p048-h05",
      "title": "虚拟化技术是什么？",
      "heading-id": "p048-h05",
      "source-page": 48,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p048-h05",
      "pages": [
        48,
        49
      ],
      "page-range": [
        48,
        49
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "最初的构想，virtualisation（虚拟化）被认为是逻辑划分大型主机使得多个应用可以并行运行的一种技术方案。然而，随着技术公司及开源社区的推进，现实发生了戏剧性的转变，以致产生了以一种或某种方式操作特权指令可以在单台基于 x86 硬件的系统上同时运行多个（种）操作系统的技术。实质的效果是，虚拟化技术允许你在一个硬件平台下运行 2 个完全不同的操作系统。每个客户操作系统可完成像系统自检、启动、载入系统内核等像在独立硬件上的一切动作。同时也具备坚实的安全基础，例如，客户操作系统不能获取完全访问主机或其它客户系统的权限，及其它涉及安全，可能把系统搞坏的操作。基于对客户操作系统虚拟硬件、运行环境模拟方法的不同，对虚拟化技术进行分类，主要的有如下 3 种虚拟化技术种类：全模拟（Emulation）半虚拟（Paravirtualization）基于容器的虚拟化（Container-based virtualization）",
          "language": null,
          "pages": [
            48,
            49
          ],
          "span_ids": [
            "p048-t0205",
            "p048-t0206",
            "p048-t0207",
            "p048-t0209",
            "p048-t0211",
            "p048-t0212",
            "p048-t0214",
            "p048-t0215",
            "p048-t0217",
            "p048-t0218",
            "p048-t0219",
            "p048-t0221",
            "p048-t0222",
            "p048-t0223",
            "p048-t0224",
            "p048-t0226",
            "p048-t0227",
            "p048-t0229",
            "p048-t0230",
            "p048-t0232",
            "p048-t0234",
            "p048-t0236",
            "p049-t0001",
            "p049-t0003",
            "p049-t0004",
            "p049-t0005",
            "p049-t0006",
            "p049-t0008",
            "p049-t0010",
            "p049-t0011",
            "p049-t0012",
            "p049-t0014",
            "p049-t0015",
            "p049-t0016",
            "p049-t0018",
            "p049-t0019",
            "p049-t0020"
          ],
          "operations": [],
          "id": "q-p048-h05-b001",
          "markdown_line": 117
        }
      ],
      "markdown_line": 113
    },
    {
      "id": "q-p049-h01",
      "title": "虚拟管理层（程序）是什么",
      "heading-id": "p049-h01",
      "source-page": 49,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p049-h01",
      "pages": [
        49
      ],
      "page-range": [
        49,
        49
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "hypervisor -- 虚拟管理层（程序）-- 负责创建客户虚拟机系统运行所需虚拟硬件环境。它监管客户虚拟操作系统的运行，并为客户系统提供必要的运行资源，保证客户虚拟系统的运行。虚拟管理层（程序）驻留在物理主机系统和虚拟客户系统之间，为虚拟客户系统提供必要的虚拟服务。如何理解它，它侦听运行在虚拟机中的客户操作系统的操作并在主机操作系统中模拟客户操作系统所需硬件资源请求。满足客户机的运行需求虚拟化技术的快速发展，主要在云平台，由于在虚拟管理程序的帮助下，可允许在单台物理服务器上生成多个虚拟服务器，驱动着虚拟化技术快速发展及广泛应用。诸如，Xen，VMware，KVM 等，以及商业化的处理器硬件生产厂商也加入在硬件层面支持虚拟化技术的支持。诸如，Intel 的 VT 和 AMD-V",
          "language": null,
          "pages": [
            49
          ],
          "span_ids": [
            "p049-t0025",
            "p049-t0026",
            "p049-t0027",
            "p049-t0028",
            "p049-t0030",
            "p049-t0031",
            "p049-t0033",
            "p049-t0034",
            "p049-t0036",
            "p049-t0038",
            "p049-t0040",
            "p049-t0041",
            "p049-t0043",
            "p049-t0045",
            "p049-t0046",
            "p049-t0048",
            "p049-t0049",
            "p049-t0050",
            "p049-t0051",
            "p049-t0052",
            "p049-t0053",
            "p049-t0054",
            "p049-t0055",
            "p049-t0057",
            "p049-t0058",
            "p049-t0059",
            "p049-t0060",
            "p049-t0061",
            "p049-t0062"
          ],
          "operations": [],
          "id": "q-p049-h01-b001",
          "markdown_line": 123
        }
      ],
      "markdown_line": 119
    },
    {
      "id": "q-p049-h02",
      "title": "Docker 集群（Swarm）是什么",
      "heading-id": "p049-h02",
      "source-page": 49,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p049-h02",
      "pages": [
        49
      ],
      "page-range": [
        49,
        49
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker Swarm -- Docker 群 -- 是原生的 Docker 集群服务工具。它将一群 Docker 主机集成为单一一个虚拟 Docker 主机。利用一个 Docker 守护进程，通过标准的 Docker API 和任何完善的通讯工具， Docker Swarm 提供透明地将 Docker 主机扩散到多台主机上的服务",
          "language": null,
          "pages": [
            49
          ],
          "span_ids": [
            "p049-t0069",
            "p049-t0070",
            "p049-t0071",
            "p049-t0072",
            "p049-t0073",
            "p049-t0074",
            "p049-t0075",
            "p049-t0076",
            "p049-t0077",
            "p049-t0078",
            "p049-t0079",
            "p049-t0080",
            "p049-t0081",
            "p049-t0083",
            "p049-t0084",
            "p049-t0085",
            "p049-t0086",
            "p049-t0087",
            "p049-t0088",
            "p049-t0089"
          ],
          "operations": [],
          "id": "q-p049-h02-b001",
          "markdown_line": 129
        }
      ],
      "markdown_line": 125
    },
    {
      "id": "q-p049-h03",
      "title": "在使用 Docker 技术的产品中如何监控其运行",
      "heading-id": "p049-h03",
      "source-page": 49,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p049-h03",
      "pages": [
        49
      ],
      "page-range": [
        49,
        49
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker 在产品中提供如运行统计和 Docker 事件的工具。可以通过这些工具命令获取 Docker 运行状况的统计信息或报告。 Docker stats：通过指定的容器 id 获取其运行统计信息，可获得容器对 CPU，内存使用情况等的统计信息，类似 Linux 系统中的 top 命令。 Docker events：Docker 事件是一个命令，用于观察显示运行中的 Docker 一系列的行为活动。一般的 Docker 事件有：attach（关联）， commit（提交），die（僵死）， detach（取消关联），rename（改名），destory（销毁）等。也可使用多个选项对事件记录筛选找到想要的事件信息",
          "language": null,
          "pages": [
            49
          ],
          "span_ids": [
            "p049-t0096",
            "p049-t0097",
            "p049-t0099",
            "p049-t0100",
            "p049-t0101",
            "p049-t0103",
            "p049-t0104",
            "p049-t0105",
            "p049-t0106",
            "p049-t0107",
            "p049-t0108",
            "p049-t0110",
            "p049-t0111",
            "p049-t0112",
            "p049-t0113",
            "p049-t0114",
            "p049-t0115",
            "p049-t0116",
            "p049-t0117",
            "p049-t0118",
            "p049-t0119",
            "p049-t0120",
            "p049-t0121",
            "p049-t0122",
            "p049-t0123",
            "p049-t0124",
            "p049-t0125",
            "p049-t0126",
            "p049-t0128",
            "p049-t0130",
            "p049-t0131",
            "p049-t0132",
            "p049-t0133",
            "p049-t0134",
            "p049-t0135",
            "p049-t0136",
            "p049-t0137",
            "p049-t0138",
            "p049-t0139",
            "p049-t0140",
            "p049-t0141",
            "p049-t0142",
            "p049-t0143",
            "p049-t0144",
            "p049-t0145",
            "p049-t0147"
          ],
          "operations": [],
          "id": "q-p049-h03-b001",
          "markdown_line": 135
        }
      ],
      "markdown_line": 131
    },
    {
      "id": "q-p049-h04",
      "title": "什么是孤儿卷及如何删除它",
      "heading-id": "p049-h04",
      "source-page": 49,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p049-h04",
      "pages": [
        49
      ],
      "page-range": [
        49,
        49
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "孤儿卷是未与任何容器关联的卷。 docker volume rm 删除指定的卷docker volume prune 删除所有孤儿卷",
          "language": null,
          "pages": [
            49
          ],
          "span_ids": [
            "p049-t0153",
            "p049-t0154",
            "p049-t0155",
            "p049-t0156",
            "p049-t0157"
          ],
          "operations": [],
          "id": "q-p049-h04-b001",
          "markdown_line": 141
        }
      ],
      "markdown_line": 137
    },
    {
      "id": "q-p050-h01",
      "title": "什么是半虚拟化（Paravirtualization）",
      "heading-id": "p050-h01",
      "source-page": 50,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p050-h01",
      "pages": [
        50
      ],
      "page-range": [
        50,
        50
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Paravirtualization，也称为第 1 类虚拟机管理（层）程序，其直接在硬件或裸机（bare-metal）上运行，提供虚拟机直接使用物理硬件的服务，它帮助主机操作系统，虚拟化硬件和实际硬件进行协作以实现最佳性能。这种虚拟层管理技术的程序一般占用系统资源较小，其本身并不需要占用大量系统资源。",
          "language": null,
          "pages": [
            50
          ],
          "span_ids": [
            "p050-t0006",
            "p050-t0007",
            "p050-t0008",
            "p050-t0009",
            "p050-t0011",
            "p050-t0012",
            "p050-t0013",
            "p050-t0014",
            "p050-t0016",
            "p050-t0017",
            "p050-t0019"
          ],
          "operations": [],
          "id": "q-p050-h01-b001",
          "markdown_line": 147
        },
        {
          "kind": "image",
          "image_id": "p050-image-01",
          "pages": [
            50
          ],
          "url": "/go-bank/pdf-p050-01.png",
          "span_ids": [],
          "id": "q-p050-h01-b002",
          "markdown_line": 149
        },
        {
          "kind": "prose",
          "text": "这种虚拟层管理程序有 Xen, KVM 等",
          "language": null,
          "pages": [
            50
          ],
          "span_ids": [
            "p050-t0020",
            "p050-t0021",
            "p050-t0022"
          ],
          "operations": [],
          "id": "q-p050-h01-b003",
          "markdown_line": 151
        }
      ],
      "markdown_line": 143
    },
    {
      "id": "q-p050-h02",
      "title": "Docker 技术与虚拟机技术有何不同？",
      "heading-id": "p050-h02",
      "source-page": 50,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p050-h02",
      "pages": [
        50,
        51
      ],
      "page-range": [
        50,
        51
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker 不是严格意义上的虚拟化硬件的技术。它依赖 container-based virtualization（基于容器的虚拟化）的技术实现工具，或可以认为它是操作系统用户运行级别的虚拟化。因此， Docker 最初使用LXC 驱动它，后来移至由 libcontainer 基础库驱动它，现已更名为 runc。 Docker 主要致力于应用容器内的应用程序的自动化部署。应用容器设计用于包装和运行单一服务，而操作系统设计用于运行多进程任务，提供多种运算服务的能力。如虚拟机中等同完全操作系统的能力。因此，Docker 被认为是容器化系统上管理容器及应用容器化的布署工具",
          "language": null,
          "pages": [
            50
          ],
          "span_ids": [
            "p050-t0028",
            "p050-t0029",
            "p050-t0030",
            "p050-t0031",
            "p050-t0032",
            "p050-t0034",
            "p050-t0036",
            "p050-t0037",
            "p050-t0038",
            "p050-t0040",
            "p050-t0041",
            "p050-t0043",
            "p050-t0044",
            "p050-t0045",
            "p050-t0046",
            "p050-t0047",
            "p050-t0048",
            "p050-t0049",
            "p050-t0051",
            "p050-t0052",
            "p050-t0054",
            "p050-t0055",
            "p050-t0057",
            "p050-t0058",
            "p050-t0059",
            "p050-t0060",
            "p050-t0062"
          ],
          "operations": [],
          "id": "q-p050-h02-b001",
          "markdown_line": 157
        },
        {
          "kind": "image",
          "image_id": "p050-image-02",
          "pages": [
            50
          ],
          "url": "/go-bank/pdf-p050-02.png",
          "span_ids": [],
          "id": "q-p050-h02-b002",
          "markdown_line": 159
        },
        {
          "kind": "prose",
          "text": "1. 与虚拟机不同，容器无需启动操作系统内核，因此，容器可在不到 1 秒钟时间内运行起来。这个特性，使得容器化技术比其它虚拟化技术更具有独特性及可取性。",
          "language": null,
          "pages": [
            50
          ],
          "span_ids": [
            "p050-t0063",
            "p050-t0064",
            "p050-t0065",
            "p050-t0066",
            "p050-t0068",
            "p050-t0069",
            "p050-t0071"
          ],
          "operations": [],
          "id": "q-p050-h02-b003",
          "markdown_line": 161
        },
        {
          "kind": "prose",
          "text": "2. 由于容器化技术很少或几乎不给主机系统增加负载，因此，基于容器的虚拟化技术具有近乎原生的性能表现。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0001",
            "p051-t0002",
            "p051-t0004",
            "p051-t0005"
          ],
          "operations": [],
          "id": "q-p050-h02-b004",
          "markdown_line": 163
        },
        {
          "kind": "prose",
          "text": "3. 基于容器的虚拟化，与其他硬件虚拟化不同，运行时不需要其他额外的虚拟管理层软件。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0007",
            "p051-t0008",
            "p051-t0010"
          ],
          "operations": [],
          "id": "q-p050-h02-b005",
          "markdown_line": 165
        },
        {
          "kind": "prose",
          "text": "4. 主机上的所有容器共享主机操作系统上的进程调度，从而节省了额外的资源的需求。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0012",
            "p051-t0013",
            "p051-t0015"
          ],
          "operations": [],
          "id": "q-p050-h02-b006",
          "markdown_line": 167
        },
        {
          "kind": "prose",
          "text": "5. 与虚拟机 image 相比，容器（Docker 或 LXC images）映像较小，因此，容器映像易于分发。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0017",
            "p051-t0018",
            "p051-t0019",
            "p051-t0020",
            "p051-t0021",
            "p051-t0022",
            "p051-t0023",
            "p051-t0024",
            "p051-t0026",
            "p051-t0028"
          ],
          "operations": [],
          "id": "q-p050-h02-b007",
          "markdown_line": 169
        },
        {
          "kind": "prose",
          "text": "6. 容器中的资源分配由 Cgroups 实现。 Cgroup 不会让容器占用比给它们分配的更多的资源。但是，现在其它的虚拟化技术，对于虚拟机，主机的所有资源都可见，但无法使用。这可以通过在容器和主机上同时运行 top 或 htop 来观察到。在两个环境中的输出看起来相同。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0030",
            "p051-t0031",
            "p051-t0032",
            "p051-t0033",
            "p051-t0034",
            "p051-t0035",
            "p051-t0037",
            "p051-t0038",
            "p051-t0040",
            "p051-t0041",
            "p051-t0042",
            "p051-t0043",
            "p051-t0044",
            "p051-t0045"
          ],
          "operations": [],
          "id": "q-p050-h02-b008",
          "markdown_line": 171
        }
      ],
      "markdown_line": 153
    },
    {
      "id": "q-p051-h01",
      "title": "请解释一下 docerfile 配置文件中的 ONBUILD 指令的用途含义",
      "heading-id": "p051-h01",
      "source-page": 51,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p051-h01",
      "pages": [
        51
      ],
      "page-range": [
        51,
        51
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "配置文件中的 ONBUILD 指令为创建的 Docker image （映像）加入在将来执行的指令，即使用了带有ONBUILD指令的镜像作为基础镜像时，会执行基础镜像的ONBUILD指令",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0057",
            "p051-t0058",
            "p051-t0059",
            "p051-t0060",
            "p051-t0061",
            "p051-t0063",
            "p051-t0064",
            "p051-t0065",
            "p051-t0066",
            "p051-t0067"
          ],
          "operations": [],
          "id": "q-p051-h01-b001",
          "markdown_line": 177
        }
      ],
      "markdown_line": 173
    },
    {
      "id": "q-p051-h02",
      "title": "有否在创建有状态性的 Docker 应用的较好实践？最适合的场景有什么",
      "heading-id": "p051-h02",
      "source-page": 51,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p051-h02",
      "pages": [
        51
      ],
      "page-range": [
        51,
        51
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "有状态性 Docker 应用的问题关键在于状态数据保存在哪儿的问题。若所有数据保存在容器内，当更新软件版本或想将 Docker 容器移到其它机器上时，找回这些在运行中产生的状态数据将非常困难。您需要做的是将这些表达运行状态的数据保存在永久卷中。参考如下 3 种模式：",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0079",
            "p051-t0080",
            "p051-t0081",
            "p051-t0083",
            "p051-t0085",
            "p051-t0087",
            "p051-t0088",
            "p051-t0089",
            "p051-t0090",
            "p051-t0092",
            "p051-t0094",
            "p051-t0095",
            "p051-t0096",
            "p051-t0097",
            "p051-t0099"
          ],
          "operations": [],
          "id": "q-p051-h02-b001",
          "markdown_line": 183
        },
        {
          "kind": "image",
          "image_id": "p051-image-01",
          "pages": [
            51
          ],
          "url": "/go-bank/pdf-p051-01.png",
          "span_ids": [],
          "id": "q-p051-h02-b002",
          "markdown_line": 185
        },
        {
          "kind": "prose",
          "text": "1. 数据保存在容器中，当容器停止运行时，运行状态数据丢失！",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0100",
            "p051-t0101"
          ],
          "operations": [],
          "id": "q-p051-h02-b003",
          "markdown_line": 187
        },
        {
          "kind": "prose",
          "text": "2. 数据保存在主机卷（Host Volume）中，当主机停机时，运行状态数据将无法访问",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0103",
            "p051-t0104",
            "p051-t0105",
            "p051-t0106",
            "p051-t0108"
          ],
          "operations": [],
          "id": "q-p051-h02-b004",
          "markdown_line": 189
        },
        {
          "kind": "prose",
          "text": "3. 数据保存在网络文件系统卷中，数据访问不依赖容器的运行与主机的运行若您使用：docker run -v hostFolder:/containerfolder 命令运行您的容器，容器运行中任何对 /containerfolder 目录下数据的改变，将永久保存在主机的 hostfolder 目录下。使用网络文件系统（nfs）与此类似。那样您就可以运行您的容器在任何主机上且其运行状态数据被保存在网络文件系统上。",
          "language": null,
          "pages": [
            51
          ],
          "span_ids": [
            "p051-t0109",
            "p051-t0110",
            "p051-t0112",
            "p051-t0114",
            "p051-t0115",
            "p051-t0116",
            "p051-t0117",
            "p051-t0119",
            "p051-t0121",
            "p051-t0122",
            "p051-t0123",
            "p051-t0124",
            "p051-t0126",
            "p051-t0128",
            "p051-t0129",
            "p051-t0130",
            "p051-t0132",
            "p051-t0133",
            "p051-t0134",
            "p051-t0136",
            "p051-t0137",
            "p051-t0139",
            "p051-t0141"
          ],
          "operations": [],
          "id": "q-p051-h02-b005",
          "markdown_line": 191
        }
      ],
      "markdown_line": 179
    },
    {
      "id": "q-p051-h03",
      "title": "容器化技术在底层的运行原理？",
      "heading-id": "p051-h03",
      "source-page": 51,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p051-h03",
      "pages": [
        51,
        52
      ],
      "page-range": [
        51,
        52
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "2006 年前后，人们，包括一些谷歌的雇员，在 Linux 内核级别上实现了一种新的名为命名空间（namespace）的技术（实际上这种概念在 FreeBSD 系统上由来已久）。我们知道，操作系统的一个功能就是进程共享公共资源，诸如，网络和硬盘空间等。但是，如果一些公共资源被包装在一个命名空间中，只允许属于这个命名空间中的进程访问又如何呢？也就是说，可以分配一大块硬盘空间给命名空间 X 供其使用，但是，命名空间 Y 中的进程无法看到或访问这部分资源。同样地，命名空间 Y 中分配的资源，命名空间 X 中的进程也无法访问。当然， X 中的进程无法与 Y 中的进程进行交互。这提供了某种对公共资源的虚拟化和隔离的技术。这就是 Docker 技术的底层工作原理：每个容器运行在它自己的命名空间中，但是，确实与其它运行中的容器共用相同的系统内核。隔离的产生是由于系统内核清楚地知道命名空间及其中的进程，且这些进程调用系统 API 时，内核保证进程只能访问属于其命名空间中的资源",
          "language": null,
          "pages": [
            51,
            52
          ],
          "span_ids": [
            "p051-t0146",
            "p051-t0147",
            "p051-t0149",
            "p051-t0151",
            "p051-t0152",
            "p051-t0153",
            "p051-t0155",
            "p051-t0157",
            "p051-t0158",
            "p051-t0159",
            "p051-t0160",
            "p051-t0162",
            "p051-t0163",
            "p051-t0164",
            "p051-t0166",
            "p051-t0167",
            "p051-t0169",
            "p051-t0171",
            "p051-t0173",
            "p051-t0174",
            "p051-t0176",
            "p051-t0178",
            "p051-t0180",
            "p051-t0181",
            "p051-t0182",
            "p051-t0183",
            "p051-t0184",
            "p051-t0185",
            "p051-t0187",
            "p051-t0189",
            "p051-t0191",
            "p051-t0192",
            "p051-t0193",
            "p051-t0194",
            "p051-t0195",
            "p051-t0196",
            "p051-t0198",
            "p051-t0199",
            "p051-t0200",
            "p051-t0201",
            "p051-t0202",
            "p051-t0203",
            "p051-t0205",
            "p051-t0207",
            "p051-t0208",
            "p051-t0209",
            "p051-t0211",
            "p051-t0212",
            "p051-t0214",
            "p051-t0216",
            "p051-t0218",
            "p052-t0001",
            "p052-t0002",
            "p052-t0003",
            "p052-t0005",
            "p052-t0006"
          ],
          "operations": [],
          "id": "q-p051-h03-b001",
          "markdown_line": 197
        },
        {
          "kind": "image",
          "image_id": "p052-image-01",
          "pages": [
            52
          ],
          "url": "/go-bank/pdf-p052-01.png",
          "span_ids": [],
          "id": "q-p051-h03-b002",
          "markdown_line": 199
        },
        {
          "kind": "prose",
          "text": "运行中的容器是隔离的。准确地说，各容器共享操作系统内核及操作系统 API。",
          "language": null,
          "pages": [
            52
          ],
          "span_ids": [
            "p052-t0008",
            "p052-t0010",
            "p052-t0012",
            "p052-t0013",
            "p052-t0014"
          ],
          "operations": [],
          "id": "q-p051-h03-b003",
          "markdown_line": 201
        }
      ],
      "markdown_line": 193
    },
    {
      "id": "q-p052-h01",
      "title": "说说容器化技术与虚拟化技术的优缺点",
      "heading-id": "p052-h01",
      "source-page": 52,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p052-h01",
      "pages": [
        52
      ],
      "page-range": [
        52,
        52
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "不能像虚拟机那样在容器上运行与主机完全不同的操作系统。然而，可以在容器上运行不同的 Linux发布版，由于容器共享系统内核的缘故。容器的隔离性没有虚拟机那么健壮。事实上，在早期容器化技术实现上，存在某种方法使客户容器可接管整个主机系统。也可看到，载入新容器并运行，并不会像虚拟机那样装载一个新的操作系统进来。所有的容器共享同一系统内核，这也就是容器被认为非常轻量化的原因。同样的原因，不像虚拟机，你不须为容器预分配大量的内存空间，因为它不是运行新的整个的操作系统。这使得在一个操作系统主机上，可以同时运行成百上千个容器应用，在运行完整操作系统的虚拟机上，进行这么多的并行沙箱实验是不可能的",
          "language": null,
          "pages": [
            52
          ],
          "span_ids": [
            "p052-t0020",
            "p052-t0022",
            "p052-t0024",
            "p052-t0026",
            "p052-t0027",
            "p052-t0028",
            "p052-t0030",
            "p052-t0032",
            "p052-t0033",
            "p052-t0035",
            "p052-t0037",
            "p052-t0038",
            "p052-t0040",
            "p052-t0042",
            "p052-t0044",
            "p052-t0045",
            "p052-t0047",
            "p052-t0049",
            "p052-t0051",
            "p052-t0053",
            "p052-t0054",
            "p052-t0056",
            "p052-t0058",
            "p052-t0060",
            "p052-t0061",
            "p052-t0063"
          ],
          "operations": [],
          "id": "q-p052-h01-b001",
          "markdown_line": 207
        }
      ],
      "markdown_line": 203
    },
    {
      "id": "q-p052-h02",
      "title": "如何使 Docker 适应多种运行环境",
      "heading-id": "p052-h02",
      "source-page": 52,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p052-h02",
      "pages": [
        52
      ],
      "page-range": [
        52,
        52
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "您必然想改变您的 Docker 应用配置以更适应现实运行环境的变化。下面包含一些修改建议：移除应用代码中对任何固定存储卷的绑定，由于代码驻留在容器内部，而不能从外部进行修正。绑定应用端口到主机上的不同端口差异化设置环境变量（例如：减少日志冗余或者使能发电子邮件）设定重启策略（例如： restart: always），避免长时间宕机加入额外的服务（例如： log aggregator）由于以上原因，您更需要一个 Compose 配置文件，大概叫 production.yml，它配置了恰当的产品整合服务。这个配置文件只需包含您选择的合适的原始 Compose 配置文件中，你改动的部分",
          "language": null,
          "pages": [
            52
          ],
          "span_ids": [
            "p052-t0071",
            "p052-t0072",
            "p052-t0073",
            "p052-t0075",
            "p052-t0077",
            "p052-t0078",
            "p052-t0080",
            "p052-t0082",
            "p052-t0083",
            "p052-t0085",
            "p052-t0087",
            "p052-t0089",
            "p052-t0091",
            "p052-t0092",
            "p052-t0093",
            "p052-t0094",
            "p052-t0096",
            "p052-t0098",
            "p052-t0099",
            "p052-t0100",
            "p052-t0102",
            "p052-t0103",
            "p052-t0105",
            "p052-t0106",
            "p052-t0107",
            "p052-t0108",
            "p052-t0109",
            "p052-t0111",
            "p052-t0112",
            "p052-t0114",
            "p052-t0115",
            "p052-t0116"
          ],
          "operations": [],
          "id": "q-p052-h02-b001",
          "markdown_line": 213
        }
      ],
      "markdown_line": 209
    },
    {
      "id": "q-p052-h03",
      "title": "为什么 Docker compose 采取的是并不等待前面依赖服务项的容器启动就绪后再启动的组合容器启动策略？",
      "heading-id": "p052-h03",
      "source-page": 52,
      "section": "容器技术",
      "topic": "07-docker",
      "target": "/go-bank/07-docker#q-p052-h03",
      "pages": [
        52,
        53
      ],
      "page-range": [
        52,
        53
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Docker 的 Compose 配置总是以依赖启动序列来启动或停止 Compose 中的服务容器，依赖启动序列是由 Compose 配置文件中的 depends_on， links， volumes_from 和 network_mode: \"service : ...\"等这些配置指令所确定的。然而， Compose 启动中，各容器的启动并不等待其依赖容器（这必定是你整个应用中的某个依赖的服务或应用）启动就绪后才启动。使用这种策略较好的理由如下：等待一个数据库服务（举例）就绪这样的问题，在大型分布式系统中仅是相比其它大问题的某些小问题。在实际发布产品运维中，您的数据库服务会由于各种原因，或者迁移宿主机导致其不可访问。您发布的产品需要有应对这样状况的弹性。掌控这些，开发设计您的应用，使其在访问数据库失效的情况下，能够试图重连数据库，直至其连接到数据库为止。最佳的解决方案是在您的应用代码中检查是否有应对意外的发生，无论是任何原因导致的启动或连接失效都应考虑在内",
          "language": null,
          "pages": [
            52,
            53
          ],
          "span_ids": [
            "p052-t0125",
            "p052-t0126",
            "p052-t0127",
            "p052-t0128",
            "p052-t0129",
            "p052-t0130",
            "p052-t0132",
            "p052-t0134",
            "p052-t0135",
            "p052-t0136",
            "p052-t0137",
            "p052-t0138",
            "p052-t0139",
            "p052-t0140",
            "p052-t0141",
            "p052-t0142",
            "p052-t0143",
            "p052-t0144",
            "p052-t0145",
            "p052-t0147",
            "p052-t0149",
            "p052-t0150",
            "p052-t0151",
            "p052-t0153",
            "p052-t0154",
            "p052-t0156",
            "p052-t0158",
            "p052-t0160",
            "p052-t0162",
            "p052-t0164",
            "p052-t0165",
            "p052-t0167",
            "p052-t0169",
            "p052-t0171",
            "p052-t0173",
            "p052-t0174",
            "p052-t0176",
            "p052-t0178",
            "p052-t0180",
            "p052-t0182",
            "p053-t0001",
            "p053-t0003",
            "p053-t0005",
            "p053-t0007",
            "p053-t0009",
            "p053-t0010",
            "p053-t0012"
          ],
          "operations": [],
          "id": "q-p052-h03-b001",
          "markdown_line": 219
        }
      ],
      "markdown_line": 215
    },
    {
      "id": "q-p053-h01",
      "title": "什么是k8s？说出你的理解",
      "heading-id": "p053-h01",
      "source-page": 53,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p053-h01",
      "pages": [
        53
      ],
      "page-range": [
        53,
        53
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "K8s是kubernetes的简称，其本质是一个开源的容器编排系统，主要用于管理容器化的应用，其目标是让部署容器化的应用简单并且高效（powerful）,Kubernetes提供了应用部署，规划，更新，维护的一种机制。说简单点：k8s就是一个编排容器的系统，一个可以管理容器应用全生命周期的工具，从创建应用，应用的部署，应用提供服务，扩容缩容应用，应用更新，都非常的方便，而且还可以做到故障自愈，所以， k8s是一个非常强大的容器编排系统",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0018",
            "p053-t0019",
            "p053-t0020",
            "p053-t0021",
            "p053-t0022",
            "p053-t0023",
            "p053-t0024",
            "p053-t0025",
            "p053-t0026",
            "p053-t0027",
            "p053-t0028",
            "p053-t0029",
            "p053-t0030",
            "p053-t0031",
            "p053-t0032",
            "p053-t0033"
          ],
          "operations": [],
          "id": "q-p053-h01-b001",
          "markdown_line": 12
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p053-h02",
      "title": "k8s的组件有哪些，作用分别是什么",
      "heading-id": "p053-h02",
      "source-page": 53,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p053-h02",
      "pages": [
        53,
        54
      ],
      "page-range": [
        53,
        54
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "k8s主要由master节点和node节点构成。master节点负责管理集群，node节点是容器应用真正运行的地方。 master节点包含的组件有：kube-api-server、kube-controller-manager、kube-scheduler、etcd。 node节点包含的组件有：kubelet、kube-proxy、container-runtime。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0037",
            "p053-t0038",
            "p053-t0039",
            "p053-t0040",
            "p053-t0041",
            "p053-t0042",
            "p053-t0043",
            "p053-t0044",
            "p053-t0045",
            "p053-t0046",
            "p053-t0047",
            "p053-t0048",
            "p053-t0049",
            "p053-t0050",
            "p053-t0051",
            "p053-t0052",
            "p053-t0053",
            "p053-t0054",
            "p053-t0055",
            "p053-t0056",
            "p053-t0057",
            "p053-t0058",
            "p053-t0059",
            "p053-t0060",
            "p053-t0061",
            "p053-t0062",
            "p053-t0063",
            "p053-t0064",
            "p053-t0065"
          ],
          "operations": [],
          "id": "q-p053-h02-b001",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "kube-api-server：以下简称api-server，api-server是k8s最重要的核心组件之一，它是k8s集群管理的统一访问入口，提供了RESTful API接口, 实现了认证、授权和准入控制等安全功能；api-server还是其他组件之间的数据交互和通信的枢纽，其他组件彼此之间并不会直接通信，其他组件对资源对象的增、删、改、查和监听操作都是交由api-server处理后，api-server再提交给etcd数据库做持久化存储，只有api-server才能直接操作etcd数据库，其他组件都不能直接操作etcd数据库，其他组件都是通过api-server间接的读取，写入数据到etcd。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0066",
            "p053-t0067",
            "p053-t0068",
            "p053-t0069",
            "p053-t0070",
            "p053-t0071",
            "p053-t0072",
            "p053-t0073",
            "p053-t0074",
            "p053-t0075",
            "p053-t0076",
            "p053-t0077",
            "p053-t0078",
            "p053-t0079",
            "p053-t0080",
            "p053-t0081",
            "p053-t0082",
            "p053-t0083",
            "p053-t0084",
            "p053-t0085",
            "p053-t0086",
            "p053-t0087",
            "p053-t0088",
            "p053-t0089",
            "p053-t0090",
            "p053-t0091",
            "p053-t0092",
            "p053-t0093",
            "p053-t0094",
            "p053-t0095",
            "p053-t0096",
            "p053-t0097",
            "p053-t0098",
            "p053-t0099",
            "p053-t0100",
            "p053-t0101",
            "p053-t0102"
          ],
          "operations": [],
          "id": "q-p053-h02-b002",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "kube-controller-manager：以下简称controller-manager，controller-manager是k8s中各种控制器的的管理者，是k8s集群内部的管理控制中心，也是k8s自动化功能的核心；controller-manager内部包含replication controller、node controller、deployment controller、endpoint controller等各种资源对象的控制器，每种控制器都负责一种特定资源的控制流程，而controller-manager正是这些controller的核心管理者。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0103",
            "p053-t0104",
            "p053-t0105",
            "p053-t0106",
            "p053-t0107",
            "p053-t0108",
            "p053-t0109",
            "p053-t0110",
            "p053-t0111",
            "p053-t0112",
            "p053-t0113",
            "p053-t0114",
            "p053-t0115",
            "p053-t0116",
            "p053-t0117",
            "p053-t0118",
            "p053-t0119",
            "p053-t0120",
            "p053-t0121",
            "p053-t0122",
            "p053-t0123",
            "p053-t0124",
            "p053-t0125",
            "p053-t0126",
            "p053-t0127",
            "p053-t0128",
            "p053-t0129",
            "p053-t0130",
            "p053-t0131"
          ],
          "operations": [],
          "id": "q-p053-h02-b003",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "kube-scheduler：以下简称scheduler，scheduler负责集群资源调度，其作用是将待调度的pod通过一系列复杂的调度算法计算出最合适的node节点，然后将pod绑定到目标节点上。shceduler会根据pod的信息，全部节点信息列表，过滤掉不符合要求的节点，过滤出一批候选节点，然后给候选节点打分，选分最高的就是最佳节点，scheduler就会把目标pod安置到该节点。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0132",
            "p053-t0133",
            "p053-t0134",
            "p053-t0135",
            "p053-t0136",
            "p053-t0137",
            "p053-t0138",
            "p053-t0139",
            "p053-t0140",
            "p053-t0141",
            "p053-t0142",
            "p053-t0143",
            "p053-t0144",
            "p053-t0145",
            "p053-t0146",
            "p053-t0147",
            "p053-t0148",
            "p053-t0149",
            "p053-t0150",
            "p053-t0151",
            "p053-t0152",
            "p053-t0153",
            "p053-t0154"
          ],
          "operations": [],
          "id": "q-p053-h02-b004",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "Etcd：etcd是一个分布式的键值对存储数据库，主要是用于保存k8s集群状态数据，比如，pod，service等资源对象的信息；etcd可以是单个也可以有多个，多个就是etcd数据库集群，etcd通常部署奇数个实例，在大规模集群中，etcd有5个或7个节点就足够了；另外说明一点，etcd本质上可以不与master节点部署在一起，只要master节点能通过网络连接etcd数据库即可。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0155",
            "p053-t0156",
            "p053-t0157",
            "p053-t0158",
            "p053-t0159",
            "p053-t0160",
            "p053-t0161",
            "p053-t0162",
            "p053-t0163",
            "p053-t0164",
            "p053-t0165",
            "p053-t0166",
            "p053-t0167",
            "p053-t0168",
            "p053-t0169",
            "p053-t0170",
            "p053-t0171",
            "p053-t0172",
            "p053-t0173",
            "p053-t0174",
            "p053-t0175",
            "p053-t0176",
            "p053-t0177",
            "p053-t0178",
            "p053-t0179",
            "p053-t0180",
            "p053-t0181",
            "p053-t0182",
            "p053-t0183",
            "p053-t0184",
            "p053-t0185",
            "p053-t0186"
          ],
          "operations": [],
          "id": "q-p053-h02-b005",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "kubelet：每个node节点上都有一个kubelet服务进程，kubelet作为连接master和各node之间的桥梁，负责维护pod和容器的生命周期，当监听到master下发到本节点的任务时，比如创建、更新、终止pod等任务，kubelet 即通过控制docker来创建、更新、销毁容器；每个kubelet进程都会在api-server上注册本节点自身的信息，用于定期向master汇报本节点资源的使用情况。",
          "language": null,
          "pages": [
            53
          ],
          "span_ids": [
            "p053-t0187",
            "p053-t0188",
            "p053-t0189",
            "p053-t0190",
            "p053-t0191",
            "p053-t0192",
            "p053-t0193",
            "p053-t0194",
            "p053-t0195",
            "p053-t0196",
            "p053-t0197",
            "p053-t0198",
            "p053-t0199",
            "p053-t0200",
            "p053-t0201",
            "p053-t0202",
            "p053-t0203",
            "p053-t0204",
            "p053-t0205",
            "p053-t0206",
            "p053-t0207",
            "p053-t0208",
            "p053-t0209",
            "p053-t0210",
            "p053-t0211",
            "p053-t0212",
            "p053-t0213",
            "p053-t0214",
            "p053-t0215",
            "p053-t0216",
            "p053-t0217"
          ],
          "operations": [],
          "id": "q-p053-h02-b006",
          "markdown_line": 28
        },
        {
          "kind": "prose",
          "text": "kube-proxy：kube-proxy运行在node节点上，在Node节点上实现Pod网络代理，维护网络规则和四层负载均衡工作，kube-proxy会监听api-server中从而获取service和endpoint的变化情况，创建并维护路由规则以提供服务IP和负载均衡功能。简单理解此进程是Service的透明代理兼负载均衡器，其核心功能是将到某个Service的访问请求转发到后端的多个Pod实例上。 container-runtime：容器运行时环境，即运行容器所需要的一系列程序，目前k8s支持的容器运行时有很多，如docker、rkt或其他，比较受欢迎的是docker，但是新版的k8s已经宣布弃用docker",
          "language": null,
          "pages": [
            53,
            54
          ],
          "span_ids": [
            "p053-t0218",
            "p053-t0219",
            "p053-t0220",
            "p053-t0221",
            "p053-t0222",
            "p053-t0223",
            "p053-t0224",
            "p053-t0225",
            "p053-t0226",
            "p053-t0227",
            "p053-t0228",
            "p053-t0229",
            "p053-t0230",
            "p053-t0231",
            "p053-t0232",
            "p053-t0233",
            "p053-t0234",
            "p053-t0235",
            "p053-t0236",
            "p053-t0237",
            "p053-t0238",
            "p053-t0239",
            "p053-t0240",
            "p053-t0241",
            "p053-t0242",
            "p053-t0243",
            "p053-t0244",
            "p053-t0245",
            "p053-t0246",
            "p054-t0001",
            "p054-t0002",
            "p054-t0003",
            "p054-t0004",
            "p054-t0005",
            "p054-t0006",
            "p054-t0007",
            "p054-t0008",
            "p054-t0009",
            "p054-t0010",
            "p054-t0011",
            "p054-t0012",
            "p054-t0013",
            "p054-t0014"
          ],
          "operations": [],
          "id": "q-p053-h02-b007",
          "markdown_line": 30
        }
      ],
      "markdown_line": 14
    },
    {
      "id": "q-p054-h01",
      "title": "kubelet的功能、作用是什么？",
      "heading-id": "p054-h01",
      "source-page": 54,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p054-h01",
      "pages": [
        54
      ],
      "page-range": [
        54,
        54
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "kubelet部署在每个node节点上的，它主要有2个功能：",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0018",
            "p054-t0019",
            "p054-t0020",
            "p054-t0021",
            "p054-t0022",
            "p054-t0023"
          ],
          "operations": [],
          "id": "q-p054-h01-b001",
          "markdown_line": 36
        },
        {
          "kind": "prose",
          "text": "1、节点管理。kubelet启动时会向api-server进行注册，然后会定时的向api-server汇报本节点信息状态，资源使用状态等，这样master就能够知道node节点的资源剩余，节点是否失联等等相关的信息了。 master知道了整个集群所有节点的资源情况，这对于 pod 的调度和正常运行至关重要。",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0024",
            "p054-t0025",
            "p054-t0026",
            "p054-t0027",
            "p054-t0028",
            "p054-t0029",
            "p054-t0030",
            "p054-t0031",
            "p054-t0032",
            "p054-t0033",
            "p054-t0034",
            "p054-t0035",
            "p054-t0036",
            "p054-t0037",
            "p054-t0038",
            "p054-t0039",
            "p054-t0040"
          ],
          "operations": [],
          "id": "q-p054-h01-b002",
          "markdown_line": 38
        },
        {
          "kind": "prose",
          "text": "2、pod管理。kubelet负责维护node节点上pod的生命周期，当kubelet监听到master的下发到自己节点的任务时，比如要创建、更新、删除一个pod，kubelet 就会通过CRI（容器运行时接口）插件来调用不同的容器运行时来创建、更新、删除容器；常见的容器运行时有docker、containerd、rkt等等这些容器运行时，我们最熟悉的就是docker了，但在新版本的k8s已经弃用docker了，k8s1.24版本中已经使用containerd作为容器运行时了。",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0041",
            "p054-t0042",
            "p054-t0043",
            "p054-t0044",
            "p054-t0045",
            "p054-t0046",
            "p054-t0047",
            "p054-t0048",
            "p054-t0049",
            "p054-t0050",
            "p054-t0051",
            "p054-t0052",
            "p054-t0053",
            "p054-t0054",
            "p054-t0055",
            "p054-t0056",
            "p054-t0057",
            "p054-t0058",
            "p054-t0059",
            "p054-t0060",
            "p054-t0061",
            "p054-t0062",
            "p054-t0063",
            "p054-t0064",
            "p054-t0065",
            "p054-t0066",
            "p054-t0067",
            "p054-t0068",
            "p054-t0069",
            "p054-t0070",
            "p054-t0071",
            "p054-t0072",
            "p054-t0073",
            "p054-t0074",
            "p054-t0075",
            "p054-t0076",
            "p054-t0077",
            "p054-t0078",
            "p054-t0079"
          ],
          "operations": [],
          "id": "q-p054-h01-b003",
          "markdown_line": 40
        },
        {
          "kind": "prose",
          "text": "3、容器健康检查。pod中可以定义启动探针、存活探针、就绪探针等3种，我们最常用的就是存活探针、就绪探针，kubelet 会定期调用容器中的探针来检测容器是否存活，是否就绪，如果是存活探针，则会根据探测结果对检查失败的容器进行相应的重启策略；",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0080",
            "p054-t0081",
            "p054-t0082",
            "p054-t0083",
            "p054-t0084",
            "p054-t0085",
            "p054-t0086",
            "p054-t0087",
            "p054-t0088",
            "p054-t0089"
          ],
          "operations": [],
          "id": "q-p054-h01-b004",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "4、Metrics Server资源监控。在node节点上部署Metrics Server用于监控node节点、pod的CPU、内存、文件系统、网络使用等资源使用情况，而kubelet则通过Metrics Server获取所在节点及容器的上的数据。",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0090",
            "p054-t0091",
            "p054-t0092",
            "p054-t0093",
            "p054-t0094",
            "p054-t0095",
            "p054-t0096",
            "p054-t0097",
            "p054-t0098",
            "p054-t0099",
            "p054-t0100",
            "p054-t0101",
            "p054-t0102",
            "p054-t0103",
            "p054-t0104",
            "p054-t0105",
            "p054-t0106",
            "p054-t0107",
            "p054-t0108",
            "p054-t0109"
          ],
          "operations": [],
          "id": "q-p054-h01-b005",
          "markdown_line": 44
        }
      ],
      "markdown_line": 32
    },
    {
      "id": "q-p054-h02",
      "title": "kube-api-server的端口是多少？各个pod是如何访问kube-api-server的？",
      "heading-id": "p054-h02",
      "source-page": 54,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p054-h02",
      "pages": [
        54
      ],
      "page-range": [
        54,
        54
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "kube-api-server的端口是8080和6443，前者是http的端口，后者是https的端口，以我本机使用kubeadm安装的k8s为例：在命名空间的kube-system命名空间里，有一个名称为kube-api-master的pod，这个pod就是运行着kube-api-server进程，它绑定了master主机的ip地址和6443端口，但是在default命名空间下，存在一个叫kubernetes的服务，该服务对外暴露端口为443，目标端口6443，这个服务的ip地址是clusterip地址池里面的第一个地址，同时这个服务的yaml定义里面并没有指定标签选择器，也就是说这个kubernetes服务所对应的endpoint是手动创建的，该endpoint也是名称叫做kubernetes，该endpoint的yaml定义里面代理到master节点的6443端口，也就是kube-api-server的IP和端口。这样一来，其他pod访问kube-api-server的整个流程就是：pod创建后嵌入了环境变量，pod获取到了kubernetes这个服务的ip和443端口，请求到kubernetes这个服务其实就是转发到了master节点上的6443端口的kube-api-server这个pod里面",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0117",
            "p054-t0118",
            "p054-t0119",
            "p054-t0120",
            "p054-t0121",
            "p054-t0122",
            "p054-t0123",
            "p054-t0124",
            "p054-t0125",
            "p054-t0126",
            "p054-t0127",
            "p054-t0128",
            "p054-t0129",
            "p054-t0130",
            "p054-t0131",
            "p054-t0132",
            "p054-t0133",
            "p054-t0134",
            "p054-t0135",
            "p054-t0136",
            "p054-t0137",
            "p054-t0138",
            "p054-t0139",
            "p054-t0140",
            "p054-t0141",
            "p054-t0142",
            "p054-t0143",
            "p054-t0144",
            "p054-t0145",
            "p054-t0146",
            "p054-t0147",
            "p054-t0148",
            "p054-t0149",
            "p054-t0150",
            "p054-t0151",
            "p054-t0152",
            "p054-t0153",
            "p054-t0154",
            "p054-t0155",
            "p054-t0156",
            "p054-t0157",
            "p054-t0158",
            "p054-t0159",
            "p054-t0160",
            "p054-t0161",
            "p054-t0162",
            "p054-t0163",
            "p054-t0164",
            "p054-t0165",
            "p054-t0166",
            "p054-t0167",
            "p054-t0168",
            "p054-t0169",
            "p054-t0170",
            "p054-t0171",
            "p054-t0172",
            "p054-t0173",
            "p054-t0174",
            "p054-t0175",
            "p054-t0176",
            "p054-t0177",
            "p054-t0178",
            "p054-t0179",
            "p054-t0180",
            "p054-t0181",
            "p054-t0182",
            "p054-t0183",
            "p054-t0184",
            "p054-t0185",
            "p054-t0186",
            "p054-t0187",
            "p054-t0188",
            "p054-t0189",
            "p054-t0190",
            "p054-t0191",
            "p054-t0192",
            "p054-t0193",
            "p054-t0194",
            "p054-t0195",
            "p054-t0196",
            "p054-t0197",
            "p054-t0198",
            "p054-t0199",
            "p054-t0200",
            "p054-t0201",
            "p054-t0202",
            "p054-t0203",
            "p054-t0204",
            "p054-t0205",
            "p054-t0206",
            "p054-t0207",
            "p054-t0208",
            "p054-t0209"
          ],
          "operations": [],
          "id": "q-p054-h02-b001",
          "markdown_line": 50
        }
      ],
      "markdown_line": 46
    },
    {
      "id": "q-p054-h03",
      "title": "k8s中命名空间的作用是什么",
      "heading-id": "p054-h03",
      "source-page": 54,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p054-h03",
      "pages": [
        54
      ],
      "page-range": [
        54,
        54
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "namespace是kubernetes系统中的一种非常重要的资源，namespace的主要作用是用来实现多套环境的资源隔离，或者说是多租户的资源隔离。 k8s通过将集群内部的资源分配到不同的namespace中，可以形成逻辑上的隔离，以方便不同的资源进行隔离使用和管理。不同的命名空间可以存在同名的资源，命名空间为资源提供了一个作用域。可以通过k8s的授权机制，将不同的namespace交给不同的租户进行管理，这样就实现了多租户的资源隔离，还可以结合k8s的资源配额机制，限定不同的租户能占用的资源，例如CPU使用量、内存使用量等等来实现租户可用资源的管理",
          "language": null,
          "pages": [
            54
          ],
          "span_ids": [
            "p054-t0213",
            "p054-t0214",
            "p054-t0215",
            "p054-t0216",
            "p054-t0217",
            "p054-t0218",
            "p054-t0219",
            "p054-t0220",
            "p054-t0221",
            "p054-t0222",
            "p054-t0223",
            "p054-t0224",
            "p054-t0225",
            "p054-t0226",
            "p054-t0227",
            "p054-t0228",
            "p054-t0229",
            "p054-t0230",
            "p054-t0231",
            "p054-t0232",
            "p054-t0233",
            "p054-t0234",
            "p054-t0235"
          ],
          "operations": [],
          "id": "q-p054-h03-b001",
          "markdown_line": 56
        }
      ],
      "markdown_line": 52
    },
    {
      "id": "q-p055-h01",
      "title": "k8s提供了大量的REST接口，其中有一个是Kubernetes Proxy API接口，简述一下这个Proxy接口的作用，已经怎么使用",
      "heading-id": "p055-h01",
      "source-page": 55,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p055-h01",
      "pages": [
        55
      ],
      "page-range": [
        55,
        55
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "kubernetes proxy api接口，从名称中可以得知，proxy是代理的意思，其作用就是代理rest请求； Kubernets API server 将接收到的rest请求转发到某个node上的kubelet守护进程的rest接口，由该kubelet进程负责响应。我们可以使用这种Proxy接口来直接访问某个pod，这对于逐一排查pod异常问题很有帮助。",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0012",
            "p055-t0013",
            "p055-t0014",
            "p055-t0015",
            "p055-t0016",
            "p055-t0017",
            "p055-t0018",
            "p055-t0019",
            "p055-t0020",
            "p055-t0021",
            "p055-t0022",
            "p055-t0023",
            "p055-t0024",
            "p055-t0025",
            "p055-t0026",
            "p055-t0027",
            "p055-t0028",
            "p055-t0029",
            "p055-t0030",
            "p055-t0031",
            "p055-t0032",
            "p055-t0033",
            "p055-t0034",
            "p055-t0035",
            "p055-t0036"
          ],
          "operations": [],
          "id": "q-p055-h01-b001",
          "markdown_line": 62
        }
      ],
      "markdown_line": 58
    },
    {
      "id": "q-p055-h02",
      "title": "pod是什么",
      "heading-id": "p055-h02",
      "source-page": 55,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p055-h02",
      "pages": [
        55
      ],
      "page-range": [
        55,
        55
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在kubernetes的世界中，k8s并不直接处理容器，而是使用多个容器共存的理念，这组容器就叫做pod。 pod是k8s中可以创建和管理的最小单元，是资源对象模型中由用户创建或部署的最小资源对象模型，其他的资源对象都是用来支撑pod对象功能的，比如，pod控制器就是用来管理pod对象的，service或者imgress资源对象是用来暴露pod引用对象的，persistentvolume资源是用来为pod提供存储等等，简而言之，k8s不会直接处理容器，而是pod，pod才是k8s中可以创建和管理的最小单元，也是基本单元。",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0040",
            "p055-t0041",
            "p055-t0042",
            "p055-t0043",
            "p055-t0044",
            "p055-t0045",
            "p055-t0046",
            "p055-t0047",
            "p055-t0048",
            "p055-t0049",
            "p055-t0050",
            "p055-t0051",
            "p055-t0052",
            "p055-t0053",
            "p055-t0054",
            "p055-t0055",
            "p055-t0056",
            "p055-t0057",
            "p055-t0058",
            "p055-t0059",
            "p055-t0060",
            "p055-t0061",
            "p055-t0062",
            "p055-t0063",
            "p055-t0064",
            "p055-t0065",
            "p055-t0066",
            "p055-t0067",
            "p055-t0068",
            "p055-t0069",
            "p055-t0070",
            "p055-t0071",
            "p055-t0072",
            "p055-t0073",
            "p055-t0074",
            "p055-t0075",
            "p055-t0076"
          ],
          "operations": [],
          "id": "q-p055-h02-b001",
          "markdown_line": 68
        }
      ],
      "markdown_line": 64
    },
    {
      "id": "q-p055-h03",
      "title": "pod的原理是什么",
      "heading-id": "p055-h03",
      "source-page": 55,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p055-h03",
      "pages": [
        55
      ],
      "page-range": [
        55,
        55
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在微服务的概念里，一般的，一个容器会被设计为运行一个进程，除非进程本身产生子进程，这样，由于不能将多个进程聚集在同一个单独的容器中，所以需要一种更高级的结构将容器绑定在一起，并将它们作为一个单元进行管理，这就是k8s中pod的背后原理。",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0080",
            "p055-t0081",
            "p055-t0082",
            "p055-t0083",
            "p055-t0084",
            "p055-t0085",
            "p055-t0086"
          ],
          "operations": [],
          "id": "q-p055-h03-b001",
          "markdown_line": 74
        }
      ],
      "markdown_line": 70
    },
    {
      "id": "q-p055-h04",
      "title": "pod有什么特点？",
      "heading-id": "p055-h04",
      "source-page": 55,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p055-h04",
      "pages": [
        55
      ],
      "page-range": [
        55,
        55
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1、每个pod就像一个独立的逻辑机器，k8s会为每个pod分配一个集群内部唯一的IP地址，所以每个pod都拥有自己的IP地址、主机名、进程等；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0090",
            "p055-t0091",
            "p055-t0092",
            "p055-t0093",
            "p055-t0094",
            "p055-t0095",
            "p055-t0096",
            "p055-t0097",
            "p055-t0098",
            "p055-t0099",
            "p055-t0100",
            "p055-t0101",
            "p055-t0102",
            "p055-t0103"
          ],
          "operations": [],
          "id": "q-p055-h04-b001",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "2、一个pod可以包含1个或多个容器，1个容器一般被设计成只运行1个进程，1个pod只可能运行在单个节点上，即不可能1个pod跨节点运行，pod的生命周期是短暂，也就是说pod可能随时被消亡（如节点异常，pod异常等情况）；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0104",
            "p055-t0105",
            "p055-t0106",
            "p055-t0107",
            "p055-t0108",
            "p055-t0109",
            "p055-t0110",
            "p055-t0111",
            "p055-t0112",
            "p055-t0113",
            "p055-t0114",
            "p055-t0115",
            "p055-t0116",
            "p055-t0117",
            "p055-t0118",
            "p055-t0119",
            "p055-t0120",
            "p055-t0121",
            "p055-t0122",
            "p055-t0123",
            "p055-t0124",
            "p055-t0125",
            "p055-t0126",
            "p055-t0127",
            "p055-t0128",
            "p055-t0129"
          ],
          "operations": [],
          "id": "q-p055-h04-b002",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "2、每一个pod都有一个特殊的被称为\"根容器\"的pause容器，也称info容器，pause容器对应的镜像属于k8s平台的一部分，除了pause容器，每个pod还包含一个或多个跑业务相关组件的应用容器；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0130",
            "p055-t0131",
            "p055-t0132",
            "p055-t0133",
            "p055-t0134",
            "p055-t0135",
            "p055-t0136",
            "p055-t0137",
            "p055-t0138",
            "p055-t0139",
            "p055-t0140",
            "p055-t0141",
            "p055-t0142",
            "p055-t0143",
            "p055-t0144",
            "p055-t0145",
            "p055-t0146",
            "p055-t0147",
            "p055-t0148",
            "p055-t0149"
          ],
          "operations": [],
          "id": "q-p055-h04-b003",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "3、一个pod中的容器共享network命名空间；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0150",
            "p055-t0151",
            "p055-t0152",
            "p055-t0153",
            "p055-t0154",
            "p055-t0155"
          ],
          "operations": [],
          "id": "q-p055-h04-b004",
          "markdown_line": 86
        },
        {
          "kind": "prose",
          "text": "4、一个pod里的多个容器共享pod IP，这就意味着1个pod里面的多个容器的进程所占用的端口不能相同，否则在这个pod里面就会产生端口冲突；既然每个pod都有自己的IP和端口空间，那么对不同的两个pod来说就不可能存在端口冲突；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0156",
            "p055-t0157",
            "p055-t0158",
            "p055-t0159",
            "p055-t0160",
            "p055-t0161",
            "p055-t0162",
            "p055-t0163",
            "p055-t0164",
            "p055-t0165",
            "p055-t0166",
            "p055-t0167",
            "p055-t0168",
            "p055-t0169",
            "p055-t0170",
            "p055-t0171",
            "p055-t0172",
            "p055-t0173",
            "p055-t0174"
          ],
          "operations": [],
          "id": "q-p055-h04-b005",
          "markdown_line": 88
        },
        {
          "kind": "prose",
          "text": "5、应该将应用程序组织到多个pod中，而每个pod只包含紧密相关的组件或进程；",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0175",
            "p055-t0176",
            "p055-t0177",
            "p055-t0178",
            "p055-t0179",
            "p055-t0180"
          ],
          "operations": [],
          "id": "q-p055-h04-b006",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "6、pod是k8s中扩容、缩容的基本单位，也就是说k8s中扩容缩容是针对pod而言而非容器。",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0181",
            "p055-t0182",
            "p055-t0183",
            "p055-t0184",
            "p055-t0185",
            "p055-t0186",
            "p055-t0187",
            "p055-t0188",
            "p055-t0189",
            "p055-t0190"
          ],
          "operations": [],
          "id": "q-p055-h04-b007",
          "markdown_line": 92
        }
      ],
      "markdown_line": 76
    },
    {
      "id": "q-p055-h05",
      "title": "pause容器作用是什么",
      "heading-id": "p055-h05",
      "source-page": 55,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p055-h05",
      "pages": [
        55
      ],
      "page-range": [
        55,
        55
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "每个pod里运行着一个特殊的被称之为pause的容器，也称根容器，而其他容器则称为业务容器；创建pause容器主要是为了为业务容器提供 Linux命名空间，共享基础：包括 pid、icp、net 等，以及启动init 进程，并收割僵尸进程；这些业务容器共享pause容器的网络命名空间和volume挂载卷，当pod被创建时，pod首先会创建pause容器，从而把其他业务容器加入pause容器，从而让所有业务容器都在同一个命名空间中，这样可以就可以实现网络共享。pod还可以共享存储，在pod级别引入数据卷volume，业务容器都可以挂载这个数据卷从而实现持久化存储",
          "language": null,
          "pages": [
            55
          ],
          "span_ids": [
            "p055-t0194",
            "p055-t0195",
            "p055-t0196",
            "p055-t0197",
            "p055-t0198",
            "p055-t0199",
            "p055-t0200",
            "p055-t0201",
            "p055-t0202",
            "p055-t0203",
            "p055-t0204",
            "p055-t0205",
            "p055-t0206",
            "p055-t0207",
            "p055-t0208",
            "p055-t0210",
            "p055-t0211",
            "p055-t0212",
            "p055-t0213",
            "p055-t0214",
            "p055-t0215",
            "p055-t0216",
            "p055-t0217",
            "p055-t0218",
            "p055-t0219",
            "p055-t0220",
            "p055-t0221",
            "p055-t0222",
            "p055-t0223",
            "p055-t0224",
            "p055-t0225",
            "p055-t0226",
            "p055-t0227",
            "p055-t0228",
            "p055-t0229",
            "p055-t0230",
            "p055-t0231",
            "p055-t0232"
          ],
          "operations": [],
          "id": "q-p055-h05-b001",
          "markdown_line": 98
        }
      ],
      "markdown_line": 94
    },
    {
      "id": "q-p056-h01",
      "title": "pod的重启策略有哪些",
      "heading-id": "p056-h01",
      "source-page": 56,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p056-h01",
      "pages": [
        56
      ],
      "page-range": [
        56,
        56
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "pod重启容器策略是指针对pod内所有容器的重启策略，不是重启pod，其可以通过restartPolicy字段配置pod重启容器的策略，如下: Always: 当容器终止退出后，总是重启容器，默认策略就是Always。 OnFailure: 当容器异常退出，退出状态码非0时，才重启容器。 Never: 当容器终止退出，不管退出状态码是什么，从不重启容器。",
          "language": null,
          "pages": [
            56
          ],
          "span_ids": [
            "p056-t0004",
            "p056-t0005",
            "p056-t0006",
            "p056-t0007",
            "p056-t0008",
            "p056-t0009",
            "p056-t0010",
            "p056-t0011",
            "p056-t0012",
            "p056-t0013",
            "p056-t0014",
            "p056-t0015",
            "p056-t0016",
            "p056-t0017",
            "p056-t0018",
            "p056-t0019",
            "p056-t0020",
            "p056-t0021",
            "p056-t0022",
            "p056-t0023",
            "p056-t0024",
            "p056-t0025"
          ],
          "operations": [],
          "id": "q-p056-h01-b001",
          "markdown_line": 104
        }
      ],
      "markdown_line": 100
    },
    {
      "id": "q-p056-h02",
      "title": "pod的镜像拉取策略有哪几种",
      "heading-id": "p056-h02",
      "source-page": 56,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p056-h02",
      "pages": [
        56
      ],
      "page-range": [
        56,
        56
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "pod镜像拉取策略可以通过imagePullPolicy字段配置镜像拉取策略，主要有3中镜像拉取策略，如下： IfNotPresent: 默认值，镜像在node节点宿主机上不存在时才拉取。 Always: 总是重新拉取，即每次创建pod都会重新从镜像仓库拉取一次镜像。 Never: 永远不会主动拉取镜像，仅使用本地镜像，需要你手动拉取镜像到node节点，如果node节点不存在镜像则pod启动失败。",
          "language": null,
          "pages": [
            56
          ],
          "span_ids": [
            "p056-t0029",
            "p056-t0030",
            "p056-t0031",
            "p056-t0032",
            "p056-t0033",
            "p056-t0034",
            "p056-t0035",
            "p056-t0036",
            "p056-t0037",
            "p056-t0038",
            "p056-t0039",
            "p056-t0040",
            "p056-t0041",
            "p056-t0042",
            "p056-t0043",
            "p056-t0044",
            "p056-t0045",
            "p056-t0046",
            "p056-t0047",
            "p056-t0048",
            "p056-t0049",
            "p056-t0050",
            "p056-t0051"
          ],
          "operations": [],
          "id": "q-p056-h02-b001",
          "markdown_line": 110
        }
      ],
      "markdown_line": 106
    },
    {
      "id": "q-p056-h03",
      "title": "pod的存活探针有哪几种？",
      "heading-id": "p056-h03",
      "source-page": 56,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p056-h03",
      "pages": [
        56
      ],
      "page-range": [
        56,
        56
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "kubernetes可以通过存活探针检查容器是否还在运行，可以为pod中的每个容器单独定义存活探针， kubernetes将定期执行探针，如果探测失败，将杀死容器，并根据restartPolicy策略来决定是否重启容器，kubernetes提供了3种探测容器的存活探针，如下： httpGet：通过容器的IP、端口、路径发送http 请求，返回200-400范围内的状态码表示成功。 exec：在容器内执行shell命令，根据命令退出状态码是否为0进行判断，0表示健康，非0表示不健康。 TCPSocket：与容器的IP、端口建立TCP Socket链接，能建立则说明探测成功，不能建立则说明探测失败。 grpc: 通过容器的IP、容器的端口向服务发送gRPC请求，返回serving则表示成功",
          "language": null,
          "pages": [
            56
          ],
          "span_ids": [
            "p056-t0055",
            "p056-t0056",
            "p056-t0057",
            "p056-t0058",
            "p056-t0059",
            "p056-t0060",
            "p056-t0061",
            "p056-t0062",
            "p056-t0063",
            "p056-t0064",
            "p056-t0065",
            "p056-t0066",
            "p056-t0067",
            "p056-t0068",
            "p056-t0069",
            "p056-t0070",
            "p056-t0071",
            "p056-t0072",
            "p056-t0073",
            "p056-t0074",
            "p056-t0075",
            "p056-t0076",
            "p056-t0077",
            "p056-t0078",
            "p056-t0079",
            "p056-t0080",
            "p056-t0081",
            "p056-t0082",
            "p056-t0083",
            "p056-t0084",
            "p056-t0085",
            "p056-t0086",
            "p056-t0087",
            "p056-t0088",
            "p056-t0089",
            "p056-t0090",
            "p056-t0091",
            "p056-t0092",
            "p056-t0093",
            "p056-t0094",
            "p056-t0095",
            "p056-t0096",
            "p056-t0097",
            "p056-t0098",
            "p056-t0099",
            "p056-t0100"
          ],
          "operations": [],
          "id": "q-p056-h03-b001",
          "markdown_line": 116
        }
      ],
      "markdown_line": 112
    },
    {
      "id": "q-p056-h04",
      "title": "存活探针的属性参数有哪几个？",
      "heading-id": "p056-h04",
      "source-page": 56,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p056-h04",
      "pages": [
        56
      ],
      "page-range": [
        56,
        56
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "initialDelaySeconds：表示在容器启动后延时多久秒才开始探测； periodSeconds：表示执行探测的频率，即间隔多少秒探测一次，默认间隔周期是10秒，最小1秒； timeoutSeconds：表示探测超时时间，默认1秒，最小1秒，表示容器必须在超时时间范围内做出响应，否则视为本次探测失败； successThreshold：表示最少连续探测成功多少次才被认定为成功，默认是1，对于liveness必须是1，最小值是1； failureThreshold：表示连续探测失败多少次才被认定为失败，默认是3，连续3次失败，k8s 将根据pod重启策略对容器做出决定；",
          "language": null,
          "pages": [
            56
          ],
          "span_ids": [
            "p056-t0103",
            "p056-t0104",
            "p056-t0105",
            "p056-t0106",
            "p056-t0107",
            "p056-t0108",
            "p056-t0109",
            "p056-t0110",
            "p056-t0111",
            "p056-t0112",
            "p056-t0113",
            "p056-t0114",
            "p056-t0115",
            "p056-t0116",
            "p056-t0117",
            "p056-t0118",
            "p056-t0119",
            "p056-t0120",
            "p056-t0121",
            "p056-t0122",
            "p056-t0123",
            "p056-t0124",
            "p056-t0125",
            "p056-t0126",
            "p056-t0127",
            "p056-t0128",
            "p056-t0129",
            "p056-t0130",
            "p056-t0131",
            "p056-t0132",
            "p056-t0133",
            "p056-t0134",
            "p056-t0135",
            "p056-t0136",
            "p056-t0137",
            "p056-t0138"
          ],
          "operations": [],
          "id": "q-p056-h04-b001",
          "markdown_line": 122
        },
        {
          "kind": "prose",
          "text": "注意：定义存活探针时，一定要设置initialDelaySeconds属性，该属性为初始延时，如果不设置，默认容器启动时探针就开始探测了，这样可能会存在应用程序还未启动就绪，就会导致探针检测失败，k8s就会根据pod重启策略杀掉容器然后再重新创建容器的莫名其妙的问题。在生产环境中，一定要定义一个存活探针。",
          "language": null,
          "pages": [
            56
          ],
          "span_ids": [
            "p056-t0139",
            "p056-t0140",
            "p056-t0141",
            "p056-t0142",
            "p056-t0143",
            "p056-t0144",
            "p056-t0145",
            "p056-t0146",
            "p056-t0147",
            "p056-t0148",
            "p056-t0149"
          ],
          "operations": [],
          "id": "q-p056-h04-b002",
          "markdown_line": 124
        }
      ],
      "markdown_line": 118
    },
    {
      "id": "q-p056-h05",
      "title": "pod的就绪探针有哪几种？",
      "heading-id": "p056-h05",
      "source-page": 56,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p056-h05",
      "pages": [
        56,
        57
      ],
      "page-range": [
        56,
        57
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "我们知道，当一个pod启动后，就会立即加入service的endpoint ip列表中，并开始接收到客户端的链接请求，假若此时pod中的容器的业务进程还没有初始化完毕，那么这些客户端链接请求就会失败，为了解决这个问题，kubernetes提供了就绪探针来解决这个问题的。在pod中的容器定义一个就绪探针，就绪探针周期性检查容器，如果就绪探针检查失败了，说明该pod还未准备就绪，不能接受客户端链接，则该pod将从endpoint列表中移除，被剔除了service就不会把请求分发给该pod，然后就绪探针继续检查，如果随后容器就绪，则再重新把pod加回endpoint列表。k8s提供了3种就绪探针，如下： httpGet：通过容器的IP、容器的端口以及路径来发送http get请求，返回200-400范围内的状态码表示请求成功。 exec：在容器内执行shell命令，它根据shell命令退出状态码是否为0进行判断，0表示健康，非0表示不健康。 TCPSocket：通过容器的IP、端口建立TCP Socket链接，能正常建立链接，则说明探针成功，不能正常建立链接，则探针失败。 grpc: 通过容器的IP、容器的端口向服务发送gRPC请求，返回serving则表示成功",
          "language": null,
          "pages": [
            56,
            57
          ],
          "span_ids": [
            "p056-t0153",
            "p056-t0154",
            "p056-t0155",
            "p056-t0156",
            "p056-t0157",
            "p056-t0158",
            "p056-t0159",
            "p056-t0160",
            "p056-t0161",
            "p056-t0162",
            "p056-t0163",
            "p056-t0164",
            "p056-t0165",
            "p056-t0166",
            "p056-t0167",
            "p056-t0168",
            "p056-t0169",
            "p056-t0170",
            "p056-t0171",
            "p056-t0172",
            "p056-t0173",
            "p056-t0174",
            "p056-t0175",
            "p056-t0176",
            "p056-t0177",
            "p056-t0178",
            "p056-t0179",
            "p056-t0180",
            "p056-t0181",
            "p056-t0182",
            "p056-t0183",
            "p056-t0184",
            "p056-t0185",
            "p056-t0186",
            "p057-t0001",
            "p057-t0002",
            "p057-t0003",
            "p057-t0004",
            "p057-t0005",
            "p057-t0006",
            "p057-t0007",
            "p057-t0008",
            "p057-t0009",
            "p057-t0010",
            "p057-t0011",
            "p057-t0012",
            "p057-t0013",
            "p057-t0014",
            "p057-t0015",
            "p057-t0016",
            "p057-t0017",
            "p057-t0018",
            "p057-t0019",
            "p057-t0020",
            "p057-t0021",
            "p057-t0022",
            "p057-t0023",
            "p057-t0024",
            "p057-t0025",
            "p057-t0026",
            "p057-t0027",
            "p057-t0028",
            "p057-t0029",
            "p057-t0030",
            "p057-t0031",
            "p057-t0032",
            "p057-t0033",
            "p057-t0034",
            "p057-t0035",
            "p057-t0036",
            "p057-t0037",
            "p057-t0038",
            "p057-t0039",
            "p057-t0040"
          ],
          "operations": [],
          "id": "q-p056-h05-b001",
          "markdown_line": 130
        }
      ],
      "markdown_line": 126
    },
    {
      "id": "q-p057-h01",
      "title": "就绪探针的属性参数有哪些",
      "heading-id": "p057-h01",
      "source-page": 57,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p057-h01",
      "pages": [
        57
      ],
      "page-range": [
        57,
        57
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "initialDelaySeconds：延时秒数，即容器启动多少秒后才开始探测，不写默认容器启动就探测； periodSeconds：执行探测的频率（秒），默认为10秒，最低值为1； timeoutSeconds：超时时间，表示探测时在超时时间内必须得到响应，负责视为本次探测失败，默认为1秒，最小值为1； failureThreshold：连续探测失败的次数，视为本次探测失败，默认为3次，最小值为1次； successThreshold：连续探测成功的次数，视为本次探测成功，默认为1次，最小值为1次；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0043",
            "p057-t0044",
            "p057-t0045",
            "p057-t0046",
            "p057-t0047",
            "p057-t0048",
            "p057-t0049",
            "p057-t0050",
            "p057-t0051",
            "p057-t0052",
            "p057-t0053",
            "p057-t0054",
            "p057-t0055",
            "p057-t0056",
            "p057-t0057",
            "p057-t0058",
            "p057-t0059",
            "p057-t0060",
            "p057-t0061",
            "p057-t0062",
            "p057-t0063",
            "p057-t0064",
            "p057-t0065",
            "p057-t0066",
            "p057-t0067",
            "p057-t0068"
          ],
          "operations": [],
          "id": "q-p057-h01-b001",
          "markdown_line": 136
        }
      ],
      "markdown_line": 132
    },
    {
      "id": "q-p057-h02",
      "title": "就绪探针与存活探针区别是什么",
      "heading-id": "p057-h02",
      "source-page": 57,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p057-h02",
      "pages": [
        57
      ],
      "page-range": [
        57,
        57
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "两者作用不一样，存活探针是将检查失败的容器杀死，创建新的启动容器来保持pod正常工作；就绪探针是，当就绪探针检查失败，并不重启容器，而是将pod移出endpoint，就绪探针确保了service中的pod都是可用的，确保客户端只与正常的pod交互并且客户端永远不会知道系统存在问题",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0071",
            "p057-t0072",
            "p057-t0073",
            "p057-t0074",
            "p057-t0075",
            "p057-t0076",
            "p057-t0077",
            "p057-t0078",
            "p057-t0079",
            "p057-t0080",
            "p057-t0081",
            "p057-t0082",
            "p057-t0083",
            "p057-t0084"
          ],
          "operations": [],
          "id": "q-p057-h02-b001",
          "markdown_line": 142
        }
      ],
      "markdown_line": 138
    },
    {
      "id": "q-p057-h03",
      "title": "简单讲一下 pod创建过程",
      "heading-id": "p057-h03",
      "source-page": 57,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p057-h03",
      "pages": [
        57,
        58
      ],
      "page-range": [
        57,
        58
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "情况一、如果面试官问的是使用kubectl run命令创建的pod，可以这样说： #注意：kubectl run 在旧版本中创建的是deployment，但在新的版本中创建的是pod则其创建过程不涉及deployment如果是单独的创建一个pod，则其创建过程是这样的：",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0089",
            "p057-t0090",
            "p057-t0091",
            "p057-t0092",
            "p057-t0093",
            "p057-t0094",
            "p057-t0095",
            "p057-t0096",
            "p057-t0097",
            "p057-t0098",
            "p057-t0099",
            "p057-t0100",
            "p057-t0101",
            "p057-t0102",
            "p057-t0103",
            "p057-t0104",
            "p057-t0105",
            "p057-t0106"
          ],
          "operations": [],
          "id": "q-p057-h03-b001",
          "markdown_line": 148
        },
        {
          "kind": "prose",
          "text": "1、首先，用户通过kubectl或其他api客户端工具提交需要创建的pod信息给apiserver；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0107",
            "p057-t0108",
            "p057-t0109",
            "p057-t0110",
            "p057-t0111",
            "p057-t0112",
            "p057-t0113",
            "p057-t0114",
            "p057-t0115",
            "p057-t0116"
          ],
          "operations": [],
          "id": "q-p057-h03-b002",
          "markdown_line": 150
        },
        {
          "kind": "prose",
          "text": "2、apiserver验证客户端的用户权限信息，验证通过开始处理创建请求生成pod对象信息，并将信息存入etcd，然后返回确认信息给客户端；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0117",
            "p057-t0118",
            "p057-t0119",
            "p057-t0120",
            "p057-t0121",
            "p057-t0122",
            "p057-t0123",
            "p057-t0124"
          ],
          "operations": [],
          "id": "q-p057-h03-b003",
          "markdown_line": 152
        },
        {
          "kind": "prose",
          "text": "3、apiserver开始反馈etcd中pod对象的变化，其他组件使用watch机制跟踪apiserver上的变动；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0125",
            "p057-t0126",
            "p057-t0127",
            "p057-t0128",
            "p057-t0129",
            "p057-t0130",
            "p057-t0131",
            "p057-t0132",
            "p057-t0133",
            "p057-t0134",
            "p057-t0135",
            "p057-t0136"
          ],
          "operations": [],
          "id": "q-p057-h03-b004",
          "markdown_line": 154
        },
        {
          "kind": "prose",
          "text": "4、scheduler发现有新的pod对象要创建，开始调用内部算法机制为pod分配最佳的主机，并将结果信息更新至apiserver；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0137",
            "p057-t0138",
            "p057-t0139",
            "p057-t0140",
            "p057-t0141",
            "p057-t0142",
            "p057-t0143",
            "p057-t0144",
            "p057-t0145",
            "p057-t0146",
            "p057-t0147"
          ],
          "operations": [],
          "id": "q-p057-h03-b005",
          "markdown_line": 156
        },
        {
          "kind": "prose",
          "text": "5、node节点上的kubelet通过watch机制跟踪apiserver发现有pod调度到本节点，尝试调用docker启动容器，并将结果反馈apiserver；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0148",
            "p057-t0149",
            "p057-t0150",
            "p057-t0151",
            "p057-t0152",
            "p057-t0153",
            "p057-t0154",
            "p057-t0155",
            "p057-t0156",
            "p057-t0157",
            "p057-t0158",
            "p057-t0159",
            "p057-t0160",
            "p057-t0161",
            "p057-t0162",
            "p057-t0163",
            "p057-t0164"
          ],
          "operations": [],
          "id": "q-p057-h03-b006",
          "markdown_line": 158
        },
        {
          "kind": "prose",
          "text": "6、apiserver将收到的pod状态信息存入etcd中。至此，整个pod创建完毕。",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0165",
            "p057-t0166",
            "p057-t0167",
            "p057-t0168",
            "p057-t0169",
            "p057-t0170",
            "p057-t0171",
            "p057-t0172",
            "p057-t0173",
            "p057-t0174",
            "p057-t0175"
          ],
          "operations": [],
          "id": "q-p057-h03-b007",
          "markdown_line": 160
        },
        {
          "kind": "prose",
          "text": "情况二、如果面试官说的是使用deployment来创建pod，则可以这样回答：",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0176",
            "p057-t0177",
            "p057-t0178",
            "p057-t0179",
            "p057-t0180"
          ],
          "operations": [],
          "id": "q-p057-h03-b008",
          "markdown_line": 162
        },
        {
          "kind": "prose",
          "text": "1、首先，用户使用kubectl create命令或者kubectl apply命令提交了要创建一个deployment资源请求；",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0181",
            "p057-t0182",
            "p057-t0183",
            "p057-t0184",
            "p057-t0185",
            "p057-t0186",
            "p057-t0187",
            "p057-t0188",
            "p057-t0189"
          ],
          "operations": [],
          "id": "q-p057-h03-b009",
          "markdown_line": 164
        },
        {
          "kind": "prose",
          "text": "2、api-server收到创建资源的请求后，会对客户端操作进行身份认证，在客户端的~/.kube文件夹下，已经设置好了相关的用户认证信息，这样api-server会知道我是哪个用户，并对此用户进行鉴权，当api-server确定客户端的请求合法后，就会接受本次操作，并把相关的信息保存到etcd中，然后返回确认信息给客户端。",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0190",
            "p057-t0191",
            "p057-t0192",
            "p057-t0193",
            "p057-t0194",
            "p057-t0195",
            "p057-t0196",
            "p057-t0197",
            "p057-t0198",
            "p057-t0199",
            "p057-t0200",
            "p057-t0201",
            "p057-t0202",
            "p057-t0203",
            "p057-t0204"
          ],
          "operations": [],
          "id": "q-p057-h03-b010",
          "markdown_line": 166
        },
        {
          "kind": "prose",
          "text": "3、apiserver开始反馈etcd中过程创建的对象的变化，其他组件使用watch机制跟踪apiserver上的变动。",
          "language": null,
          "pages": [
            57
          ],
          "span_ids": [
            "p057-t0205",
            "p057-t0206",
            "p057-t0207",
            "p057-t0208",
            "p057-t0209",
            "p057-t0210",
            "p057-t0211",
            "p057-t0212",
            "p057-t0213",
            "p057-t0214",
            "p057-t0215"
          ],
          "operations": [],
          "id": "q-p057-h03-b011",
          "markdown_line": 168
        },
        {
          "kind": "prose",
          "text": "4、controller-manager组件会监听api-server的信息，controller-manager是有多个类型的，比如Deployment Controller, 它的作用就是负责监听Deployment，此时Deployment Controller发现有新的deployment要创建，那么它就会去创建一个ReplicaSet，一个ReplicaSet的产生，又被另一个叫做ReplicaSet Controller监听到了，紧接着它就会去分析ReplicaSet的语义，它了解到是要依照ReplicaSet的template去创建Pod, 它一看这个Pod并不存在，那么就新建此Pod，当Pod刚被创建时，它的nodeName属性值为空，代表着此Pod未被调度。",
          "language": null,
          "pages": [
            57,
            58
          ],
          "span_ids": [
            "p057-t0216",
            "p057-t0217",
            "p057-t0218",
            "p057-t0219",
            "p057-t0220",
            "p057-t0221",
            "p057-t0222",
            "p057-t0223",
            "p057-t0224",
            "p057-t0225",
            "p057-t0226",
            "p057-t0227",
            "p057-t0228",
            "p057-t0229",
            "p058-t0001",
            "p058-t0002",
            "p058-t0003",
            "p058-t0004",
            "p058-t0005",
            "p058-t0006",
            "p058-t0007",
            "p058-t0008",
            "p058-t0009",
            "p058-t0010",
            "p058-t0011",
            "p058-t0012",
            "p058-t0013",
            "p058-t0014",
            "p058-t0015",
            "p058-t0016",
            "p058-t0017",
            "p058-t0018",
            "p058-t0019",
            "p058-t0020",
            "p058-t0021",
            "p058-t0022",
            "p058-t0023",
            "p058-t0024",
            "p058-t0025",
            "p058-t0026"
          ],
          "operations": [],
          "id": "q-p057-h03-b012",
          "markdown_line": 170
        },
        {
          "kind": "prose",
          "text": "5、调度器Scheduler组件开始介入工作，Scheduler也是通过watch机制跟踪apiserver上的变动，发现有未调度的Pod，则根据内部算法、节点资源情况，pod定义的亲和性反亲和性等等，调度器会综合的选出一批候选节点，在候选节点中选择一个最优的节点，然后将pod绑定该该节点，将信息反馈给api-server。",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0027",
            "p058-t0028",
            "p058-t0029",
            "p058-t0030",
            "p058-t0031",
            "p058-t0032",
            "p058-t0033",
            "p058-t0034",
            "p058-t0035",
            "p058-t0036",
            "p058-t0037",
            "p058-t0038",
            "p058-t0039",
            "p058-t0040",
            "p058-t0041",
            "p058-t0042",
            "p058-t0043",
            "p058-t0044",
            "p058-t0045",
            "p058-t0046",
            "p058-t0047"
          ],
          "operations": [],
          "id": "q-p057-h03-b013",
          "markdown_line": 172
        },
        {
          "kind": "prose",
          "text": "6、kubelet组件布署于Node之上，它也是通过watch机制跟踪apiserver上的变动，监听到有一个Pod应该要被调度到自身所在Node上来，kubelet首先判断本地是否在此Pod，如果不存在，则会进入创建Pod流程，创建Pod有分为几种情况，第一种是容器不需要挂载外部存储，则相当于直接docker run把容器启动，但不会直接挂载docker网络，而是通过CNI调用网络插件配置容器网络，如果需要挂载外部存储，则还要调用CSI来挂载存储。kubelet创建完pod，将信息反馈给api-server，api-servier将pod信息写入etcd。",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0048",
            "p058-t0049",
            "p058-t0050",
            "p058-t0051",
            "p058-t0052",
            "p058-t0053",
            "p058-t0054",
            "p058-t0055",
            "p058-t0056",
            "p058-t0057",
            "p058-t0058",
            "p058-t0059",
            "p058-t0060",
            "p058-t0061",
            "p058-t0062",
            "p058-t0063",
            "p058-t0064",
            "p058-t0065",
            "p058-t0066",
            "p058-t0067",
            "p058-t0068",
            "p058-t0069",
            "p058-t0070",
            "p058-t0071",
            "p058-t0072",
            "p058-t0073",
            "p058-t0074",
            "p058-t0075",
            "p058-t0076",
            "p058-t0077",
            "p058-t0078",
            "p058-t0079",
            "p058-t0080",
            "p058-t0081",
            "p058-t0082",
            "p058-t0083",
            "p058-t0084",
            "p058-t0085",
            "p058-t0086",
            "p058-t0087",
            "p058-t0088",
            "p058-t0089",
            "p058-t0090",
            "p058-t0091",
            "p058-t0092",
            "p058-t0093"
          ],
          "operations": [],
          "id": "q-p057-h03-b014",
          "markdown_line": 174
        },
        {
          "kind": "prose",
          "text": "7、Pod建立成功后，ReplicaSet Controller会对其持续进行关注，如果Pod因意外或被我们手动退出， ReplicaSet Controller会知道，并创建新的Pod，以保持replicas数量期望值。",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0094",
            "p058-t0095",
            "p058-t0096",
            "p058-t0097",
            "p058-t0098",
            "p058-t0099",
            "p058-t0100",
            "p058-t0101",
            "p058-t0102",
            "p058-t0103",
            "p058-t0104",
            "p058-t0105",
            "p058-t0106",
            "p058-t0107"
          ],
          "operations": [],
          "id": "q-p057-h03-b015",
          "markdown_line": 176
        }
      ],
      "markdown_line": 144
    },
    {
      "id": "q-p058-h01",
      "title": "简单描述一下pod的终止过程",
      "heading-id": "p058-h01",
      "source-page": 58,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p058-h01",
      "pages": [
        58
      ],
      "page-range": [
        58,
        58
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1、用户向apiserver发送删除pod对象的命令；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0112",
            "p058-t0113",
            "p058-t0114",
            "p058-t0115",
            "p058-t0116",
            "p058-t0117"
          ],
          "operations": [],
          "id": "q-p058-h01-b001",
          "markdown_line": 182
        },
        {
          "kind": "prose",
          "text": "2、apiserver中的pod对象信息会随着时间的推移而更新，在宽限期内（默认30s），pod被视为dead；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0118",
            "p058-t0119",
            "p058-t0120",
            "p058-t0121",
            "p058-t0122",
            "p058-t0123",
            "p058-t0124",
            "p058-t0125",
            "p058-t0126",
            "p058-t0127",
            "p058-t0128",
            "p058-t0129"
          ],
          "operations": [],
          "id": "q-p058-h01-b002",
          "markdown_line": 184
        },
        {
          "kind": "prose",
          "text": "3、将pod标记为terminating状态；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0130",
            "p058-t0131",
            "p058-t0132",
            "p058-t0133",
            "p058-t0134",
            "p058-t0135"
          ],
          "operations": [],
          "id": "q-p058-h01-b003",
          "markdown_line": 186
        },
        {
          "kind": "prose",
          "text": "4、kubectl在监控到pod对象为terminating状态了就会启动pod关闭过程；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0136",
            "p058-t0137",
            "p058-t0138",
            "p058-t0139",
            "p058-t0140",
            "p058-t0141",
            "p058-t0142",
            "p058-t0143",
            "p058-t0144",
            "p058-t0145"
          ],
          "operations": [],
          "id": "q-p058-h01-b004",
          "markdown_line": 188
        },
        {
          "kind": "prose",
          "text": "5、endpoint控制器监控到pod对象的关闭行为时将其从所有匹配到此endpoint的server资源endpoint列表中删除；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0146",
            "p058-t0147",
            "p058-t0148",
            "p058-t0149",
            "p058-t0150",
            "p058-t0151",
            "p058-t0152",
            "p058-t0153",
            "p058-t0154",
            "p058-t0155",
            "p058-t0156",
            "p058-t0157"
          ],
          "operations": [],
          "id": "q-p058-h01-b005",
          "markdown_line": 190
        },
        {
          "kind": "prose",
          "text": "6、如果当前pod对象定义了preStop钩子处理器，则在其被标记为terminating后会意同步的方式启动执行；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0158",
            "p058-t0159",
            "p058-t0160",
            "p058-t0161",
            "p058-t0162",
            "p058-t0163",
            "p058-t0164",
            "p058-t0165",
            "p058-t0166"
          ],
          "operations": [],
          "id": "q-p058-h01-b006",
          "markdown_line": 192
        },
        {
          "kind": "prose",
          "text": "7、pod对象中的容器进程收到停止信息；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0167",
            "p058-t0168",
            "p058-t0169",
            "p058-t0170"
          ],
          "operations": [],
          "id": "q-p058-h01-b007",
          "markdown_line": 194
        },
        {
          "kind": "prose",
          "text": "8、宽限期结束后，若pod中还存在运行的进程，那么pod对象会收到立即终止的信息；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0171",
            "p058-t0172",
            "p058-t0173",
            "p058-t0174",
            "p058-t0175",
            "p058-t0176"
          ],
          "operations": [],
          "id": "q-p058-h01-b008",
          "markdown_line": 196
        },
        {
          "kind": "prose",
          "text": "9、kubelet请求apiserver将此pod资源的宽限期设置为0从而完成删除操作，此时pod对用户已不可见。",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0177",
            "p058-t0178",
            "p058-t0179",
            "p058-t0180",
            "p058-t0181",
            "p058-t0182",
            "p058-t0183",
            "p058-t0184",
            "p058-t0185",
            "p058-t0186",
            "p058-t0187",
            "p058-t0188"
          ],
          "operations": [],
          "id": "q-p058-h01-b009",
          "markdown_line": 198
        }
      ],
      "markdown_line": 178
    },
    {
      "id": "q-p058-h02",
      "title": "pod的生命周期有哪几种",
      "heading-id": "p058-h02",
      "source-page": 58,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p058-h02",
      "pages": [
        58
      ],
      "page-range": [
        58,
        58
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Pending（挂起）：API server已经创建pod，但是该pod还有一个或多个容器的镜像没有创建，包括正在下载镜像的过程； Running（运行中）：Pod内所有的容器已经创建，且至少有一个容器处于运行状态、正在启动括正在重启状态； Succeed（成功）：Pod内所有容器均已退出，且不会再重启； Failed（失败）：Pod内所有容器均已退出，且至少有一个容器为退出失败状态Unknown（未知）：某于某种原因apiserver无法获取该pod的状态，可能由于网络通行问题导致；",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0192",
            "p058-t0193",
            "p058-t0194",
            "p058-t0195",
            "p058-t0196",
            "p058-t0197",
            "p058-t0198",
            "p058-t0199",
            "p058-t0200",
            "p058-t0201",
            "p058-t0202",
            "p058-t0203",
            "p058-t0204",
            "p058-t0205",
            "p058-t0206",
            "p058-t0207",
            "p058-t0208",
            "p058-t0209",
            "p058-t0210",
            "p058-t0211",
            "p058-t0212",
            "p058-t0213",
            "p058-t0214",
            "p058-t0215",
            "p058-t0216",
            "p058-t0217",
            "p058-t0218",
            "p058-t0219"
          ],
          "operations": [],
          "id": "q-p058-h02-b001",
          "markdown_line": 204
        }
      ],
      "markdown_line": 200
    },
    {
      "id": "q-p058-h03",
      "title": "pod一致处于pending状态一般有哪些情况，怎么排查？",
      "heading-id": "p058-h03",
      "source-page": 58,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p058-h03",
      "pages": [
        58,
        59
      ],
      "page-range": [
        58,
        59
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一个pod一开始创建的时候，它本身就是会处于pending状态，这时可能是正在拉取镜像，正在创建容器的过程。如果等了一会发现pod一直处于pending状态，那么我们可以使用kubectl describe命令查看一下pod的Events详细信息。一般可能会有这么几种情况导致pod一直处于pending状态：",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0225",
            "p058-t0226",
            "p058-t0227",
            "p058-t0228",
            "p058-t0229",
            "p058-t0230",
            "p058-t0231",
            "p058-t0232",
            "p058-t0233",
            "p058-t0234",
            "p058-t0235",
            "p058-t0236",
            "p058-t0237",
            "p058-t0238",
            "p058-t0239",
            "p058-t0240",
            "p058-t0241",
            "p058-t0242",
            "p058-t0243",
            "p058-t0244",
            "p058-t0245"
          ],
          "operations": [],
          "id": "q-p058-h03-b001",
          "markdown_line": 210
        },
        {
          "kind": "prose",
          "text": "1、调度器调度失败。Scheduer调度器无法为pod分配一个合适的node节点。而这又会有很多种情况，比如，node节点处在cpu、内存压力，导致无节点可调度；pod定义了资源请求，没有node节点满足资源请求；node节点上有污点而pod没有定义容忍；pod中定义了亲和性或反亲和性而没有节点满足这些亲和性或反亲和性；以上是调度器调度失败的几种情况。",
          "language": null,
          "pages": [
            58
          ],
          "span_ids": [
            "p058-t0246",
            "p058-t0247",
            "p058-t0248",
            "p058-t0249",
            "p058-t0250",
            "p058-t0251",
            "p058-t0252",
            "p058-t0253",
            "p058-t0254",
            "p058-t0255",
            "p058-t0256",
            "p058-t0257",
            "p058-t0258",
            "p058-t0259",
            "p058-t0260",
            "p058-t0261",
            "p058-t0262",
            "p058-t0263",
            "p058-t0264",
            "p058-t0265",
            "p058-t0266",
            "p058-t0267",
            "p058-t0268",
            "p058-t0269",
            "p058-t0270"
          ],
          "operations": [],
          "id": "q-p058-h03-b002",
          "markdown_line": 212
        },
        {
          "kind": "prose",
          "text": "2、pvc、pv无法动态创建。如果因为pvc或pv无法动态创建，那么pod也会一直处于pending状态，比如要使用StatefulSet 创建redis集群，因为粗心大意，定义的storageClassName名称写错了，那么会造成无法创建pvc，这种情况pod也会一直处于pending状态，或者，即使pvc是正常创建了，但是由于某些异常原因导致动态供应存储无法正常创建pv，那么这种情况pod也会一直处于pending状态。",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0001",
            "p059-t0002",
            "p059-t0003",
            "p059-t0004",
            "p059-t0005",
            "p059-t0006",
            "p059-t0007",
            "p059-t0008",
            "p059-t0009",
            "p059-t0010",
            "p059-t0011",
            "p059-t0012",
            "p059-t0013",
            "p059-t0014",
            "p059-t0015",
            "p059-t0016",
            "p059-t0017",
            "p059-t0018",
            "p059-t0019",
            "p059-t0020",
            "p059-t0021",
            "p059-t0022",
            "p059-t0023",
            "p059-t0024",
            "p059-t0025",
            "p059-t0026",
            "p059-t0027",
            "p059-t0028",
            "p059-t0029",
            "p059-t0030",
            "p059-t0031",
            "p059-t0032",
            "p059-t0033",
            "p059-t0034",
            "p059-t0035",
            "p059-t0036",
            "p059-t0037"
          ],
          "operations": [],
          "id": "q-p058-h03-b003",
          "markdown_line": 214
        }
      ],
      "markdown_line": 206
    },
    {
      "id": "q-p059-h01",
      "title": "pod的初始化容器是干什么的？",
      "heading-id": "p059-h01",
      "source-page": 59,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p059-h01",
      "pages": [
        59
      ],
      "page-range": [
        59,
        59
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "init container，初始化容器用于在启动应用容器之前完成应用容器所需要的前置条件，初始化容器本质上和应用容器是一样的，但是初始化容器是仅允许一次就结束的任务，初始化容器具有两大特征：",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0041",
            "p059-t0042",
            "p059-t0043"
          ],
          "operations": [],
          "id": "q-p059-h01-b001",
          "markdown_line": 220
        },
        {
          "kind": "prose",
          "text": "1、初始化容器必须运行完成直至结束，若某初始化容器运行失败，那么kubernetes需要重启它直到成功完成；",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0044",
            "p059-t0045",
            "p059-t0046",
            "p059-t0047",
            "p059-t0048"
          ],
          "operations": [],
          "id": "q-p059-h01-b002",
          "markdown_line": 222
        },
        {
          "kind": "prose",
          "text": "2、初始化容器必须按照定义的顺序执行，当且仅当前一个初始化容器成功之后，后面的一个初始化容器才能运行；",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0049",
            "p059-t0050",
            "p059-t0051"
          ],
          "operations": [],
          "id": "q-p059-h01-b003",
          "markdown_line": 224
        }
      ],
      "markdown_line": 216
    },
    {
      "id": "q-p059-h02",
      "title": "pod的资源请求、限制如何定义？",
      "heading-id": "p059-h02",
      "source-page": 59,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p059-h02",
      "pages": [
        59
      ],
      "page-range": [
        59,
        59
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "pod的资源请求、资源限制可以直接在pod中定义，主要包括两块内容，limits，限制pod能使用的最大cpu和内存，requests，pod启动时申请的cpu和内存。",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0055",
            "p059-t0056",
            "p059-t0057",
            "p059-t0058",
            "p059-t0059",
            "p059-t0060",
            "p059-t0061",
            "p059-t0062",
            "p059-t0063",
            "p059-t0064",
            "p059-t0065",
            "p059-t0066",
            "p059-t0067",
            "p059-t0068",
            "p059-t0069",
            "p059-t0070"
          ],
          "operations": [],
          "id": "q-p059-h02-b001",
          "markdown_line": 230
        },
        {
          "kind": "code",
          "text": " resources:                 #资源配额\n      limits:                   #限制最大资源，上限\n        cpu: 2                  #CPU限制，单位是code数\n        memory: 2G              #内存最大限制\n      requests:                 #请求资源（最小，下限）\n        cpu: 1                  #CPU请求，单位是code数\n        memory: 500G            #内存最小请求",
          "language": "yaml",
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0176",
            "p059-t0175",
            "p059-t0178",
            "p059-t0177",
            "p059-t0180",
            "p059-t0182",
            "p059-t0179",
            "p059-t0181",
            "p059-t0184",
            "p059-t0183",
            "p059-t0186",
            "p059-t0185",
            "p059-t0188",
            "p059-t0190",
            "p059-t0187",
            "p059-t0189",
            "p059-t0192",
            "p059-t0191"
          ],
          "operations": [],
          "id": "q-p059-h02-b002",
          "markdown_line": 232
        }
      ],
      "markdown_line": 226
    },
    {
      "id": "q-p059-h03",
      "title": "pod的定义中有个command和args参数，这两个参数不会和docker镜像的entrypointc冲突吗",
      "heading-id": "p059-h03",
      "source-page": 59,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p059-h03",
      "pages": [
        59
      ],
      "page-range": [
        59,
        59
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "不会。在pod中定义的command参数用于指定容器的启动命令列表，如果不指定，则默认使用Dockerfile打包时的启动命令，args参数用于容器的启动命令需要的参数列表；特别说明： kubernetes中的command、args其实是实现覆盖dockerfile中的ENTRYPOINT的功能的。当",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0083",
            "p059-t0084",
            "p059-t0085",
            "p059-t0086",
            "p059-t0087",
            "p059-t0088",
            "p059-t0089",
            "p059-t0090",
            "p059-t0091",
            "p059-t0092",
            "p059-t0093",
            "p059-t0094",
            "p059-t0095",
            "p059-t0096",
            "p059-t0097",
            "p059-t0098",
            "p059-t0099",
            "p059-t0100",
            "p059-t0101",
            "p059-t0102",
            "p059-t0103",
            "p059-t0104"
          ],
          "operations": [],
          "id": "q-p059-h03-b001",
          "markdown_line": 246
        },
        {
          "kind": "prose",
          "text": "1、如果command和args均没有写，那么使用Dockerfile的配置；",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0105",
            "p059-t0106",
            "p059-t0107",
            "p059-t0108",
            "p059-t0109",
            "p059-t0110",
            "p059-t0111",
            "p059-t0112"
          ],
          "operations": [],
          "id": "q-p059-h03-b002",
          "markdown_line": 248
        },
        {
          "kind": "prose",
          "text": "2、如果command写了但args没写，那么Dockerfile默认的配置会被忽略，执行指定的command；",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0113",
            "p059-t0114",
            "p059-t0115",
            "p059-t0116",
            "p059-t0117",
            "p059-t0118",
            "p059-t0119",
            "p059-t0120",
            "p059-t0121",
            "p059-t0122"
          ],
          "operations": [],
          "id": "q-p059-h03-b003",
          "markdown_line": 250
        },
        {
          "kind": "prose",
          "text": "3、如果command没写但args写了，那么Dockerfile中的ENTRYPOINT的会被执行，使用当前args的参数；",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0123",
            "p059-t0124",
            "p059-t0125",
            "p059-t0126",
            "p059-t0127",
            "p059-t0128",
            "p059-t0129",
            "p059-t0130",
            "p059-t0131",
            "p059-t0132",
            "p059-t0133",
            "p059-t0134",
            "p059-t0135"
          ],
          "operations": [],
          "id": "q-p059-h03-b004",
          "markdown_line": 252
        },
        {
          "kind": "prose",
          "text": "4、如果command和args都写了，那么Dockerfile会被忽略，执行输入的command和args。",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0136",
            "p059-t0137",
            "p059-t0138",
            "p059-t0139",
            "p059-t0140",
            "p059-t0141",
            "p059-t0142",
            "p059-t0143",
            "p059-t0144",
            "p059-t0145",
            "p059-t0146",
            "p059-t0147"
          ],
          "operations": [],
          "id": "q-p059-h03-b005",
          "markdown_line": 254
        }
      ],
      "markdown_line": 242
    },
    {
      "id": "q-p059-h04",
      "title": "标签及标签选择器是什么，如何使用",
      "heading-id": "p059-h04",
      "source-page": 59,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p059-h04",
      "pages": [
        59
      ],
      "page-range": [
        59,
        59
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "标签是键值对类型，标签可以附加到任何资源对象上，主要用于管理对象，查询和筛选。标签常被用于标签选择器的匹配度检查，从而完成资源筛选；一个资源可以定义一个或多个标签在其上面。",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0150",
            "p059-t0151"
          ],
          "operations": [],
          "id": "q-p059-h04-b001",
          "markdown_line": 260
        },
        {
          "kind": "prose",
          "text": "标签选择器，标签要与标签选择器结合在一起，标签选择器允许我们选择标记有特定标签的资源对象子集，如pod，并对这些特定标签的pod进行查询，删除等操作。标签和标签选择器最重要的使用之一在于，在deployment中，在pod模板中定义pod的标签，然后在deployment定义标签选择器，这样就通过标签选择器来选择哪些pod是受其控制的，service也是通过标签选择器来关联哪些pod最后其服务后端pod",
          "language": null,
          "pages": [
            59
          ],
          "span_ids": [
            "p059-t0152",
            "p059-t0153",
            "p059-t0154",
            "p059-t0155",
            "p059-t0156",
            "p059-t0157",
            "p059-t0158",
            "p059-t0159",
            "p059-t0160",
            "p059-t0161",
            "p059-t0162",
            "p059-t0163",
            "p059-t0164",
            "p059-t0165",
            "p059-t0166",
            "p059-t0167",
            "p059-t0168",
            "p059-t0169",
            "p059-t0170",
            "p059-t0171",
            "p059-t0172",
            "p059-t0173",
            "p059-t0174"
          ],
          "operations": [],
          "id": "q-p059-h04-b002",
          "markdown_line": 262
        }
      ],
      "markdown_line": 256
    },
    {
      "id": "q-p060-h01",
      "title": "service是如何与pod关联的",
      "heading-id": "p060-h01",
      "source-page": 60,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p060-h01",
      "pages": [
        60
      ],
      "page-range": [
        60,
        60
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "答案是通过标签选择器，每一个由deployment创建的pod都带有标签，这样，service就可以定义标签选择器来关联哪些pod是作为其后端了，就是这样，service就与pod管联在一起了。",
          "language": null,
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0006",
            "p060-t0007",
            "p060-t0008",
            "p060-t0009",
            "p060-t0010",
            "p060-t0011",
            "p060-t0012",
            "p060-t0013",
            "p060-t0014",
            "p060-t0015",
            "p060-t0016",
            "p060-t0017",
            "p060-t0018",
            "p060-t0019"
          ],
          "operations": [],
          "id": "q-p060-h01-b001",
          "markdown_line": 268
        }
      ],
      "markdown_line": 264
    },
    {
      "id": "q-p060-h02",
      "title": "service的域名解析格式、pod的域名解析格式",
      "heading-id": "p060-h02",
      "source-page": 60,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p060-h02",
      "pages": [
        60
      ],
      "page-range": [
        60,
        60
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "service的DNS域名表示格式为..svc.，servicename是service的名称，namespace是service所处的命名空间，clusterdomain是k8s集群设置的域名后缀，一般默认为 cluster.local，一般的，我们不会去改k8s集群设置的域名后缀，同时，当pod要链接的svc处于同一个命名空间时，可以省略以及后面的.svc不写，这样，就可以有下面三种方式来表示svc的域名",
          "language": null,
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0025",
            "p060-t0026",
            "p060-t0027",
            "p060-t0028",
            "p060-t0029",
            "p060-t0030",
            "p060-t0031",
            "p060-t0032",
            "p060-t0033",
            "p060-t0034",
            "p060-t0035",
            "p060-t0036",
            "p060-t0037",
            "p060-t0038",
            "p060-t0039",
            "p060-t0040",
            "p060-t0041",
            "p060-t0042",
            "p060-t0043",
            "p060-t0044",
            "p060-t0045",
            "p060-t0046",
            "p060-t0047",
            "p060-t0048",
            "p060-t0049",
            "p060-t0050",
            "p060-t0051",
            "p060-t0052",
            "p060-t0053",
            "p060-t0054",
            "p060-t0055",
            "p060-t0056"
          ],
          "operations": [],
          "id": "q-p060-h02-b001",
          "markdown_line": 274
        },
        {
          "kind": "code",
          "text": "svc-nginx.default.svc.cluster.local             #完整的写法\nsvc-nginx.default                               #带命名空间写法,省略了后面的.svc.<clusterdomain>\nsvc-nginx                                       #如果pod与svc在同一个命名空间，可以将命名空间省略不写",
          "language": "text",
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0149",
            "p060-t0148",
            "p060-t0152",
            "p060-t0154",
            "p060-t0151",
            "p060-t0153",
            "p060-t0155",
            "p060-t0156",
            "p060-t0158",
            "p060-t0160",
            "p060-t0162",
            "p060-t0157",
            "p060-t0159",
            "p060-t0161",
            "p060-t0163"
          ],
          "operations": [
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 363.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 404.0
            }
          ],
          "id": "q-p060-h02-b002",
          "markdown_line": 276
        },
        {
          "kind": "prose",
          "text": "pod的DNS域名格式为：..pod.，其中，pod-ip需要使用-将ip直接的点替换掉，namespace为pod所在的命名空间，clusterdomain是k8s集群设置的域名后缀，一般默认为 cluster.local，如果没有改变k8s集群默认的域名后缀，则可以省略该后缀不写。除此之外，其他的均不可省略，这一点与svc域名有所不同。",
          "language": null,
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0057",
            "p060-t0058",
            "p060-t0059",
            "p060-t0060",
            "p060-t0061",
            "p060-t0062",
            "p060-t0063",
            "p060-t0064",
            "p060-t0065",
            "p060-t0066",
            "p060-t0067",
            "p060-t0068",
            "p060-t0069",
            "p060-t0070",
            "p060-t0071",
            "p060-t0072",
            "p060-t0073",
            "p060-t0074",
            "p060-t0075",
            "p060-t0076",
            "p060-t0077",
            "p060-t0078",
            "p060-t0079",
            "p060-t0080",
            "p060-t0081",
            "p060-t0082",
            "p060-t0083",
            "p060-t0084"
          ],
          "operations": [],
          "id": "q-p060-h02-b003",
          "markdown_line": 282
        },
        {
          "kind": "code",
          "text": "#进入default命名空间的busybox pod里面，测试下载文件\nkubectl -n default exec -it deployment-busybox-567674bd67-lmrgw -- sh\nwget 10-244-166-167.helm.pod.cluster.local:80       #可以正常下载，这里下载的是helm命名空间里的IP为10.244.166.167的pod\nwget 10-244-166-167.helm.pod:80                     #可以正常下载，这里把k8s集群设置的域名后缀默认省略了\nwget 10-244-166-143.default.pod:80                  #可以正常下载，这里下载的是default命名空间里的IP为10.244.166.143的pod\nwget 10-244-166-143.default:80                      #报错了，错误写法，说明不能省略pod关键字\nwget 10-244-166-143:80                              #报错了，错误写法，说明不能省略命名空间和pod关键字",
          "language": "bash",
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0165",
            "p060-t0167",
            "p060-t0169",
            "p060-t0164",
            "p060-t0166",
            "p060-t0168",
            "p060-t0170",
            "p060-t0172",
            "p060-t0174",
            "p060-t0171",
            "p060-t0173",
            "p060-t0175",
            "p060-t0177",
            "p060-t0179",
            "p060-t0176",
            "p060-t0178",
            "p060-t0180",
            "p060-t0182",
            "p060-t0184",
            "p060-t0181",
            "p060-t0183",
            "p060-t0185",
            "p060-t0188",
            "p060-t0187",
            "p060-t0190",
            "p060-t0192",
            "p060-t0194",
            "p060-t0189",
            "p060-t0191",
            "p060-t0193",
            "p060-t0195",
            "p060-t0197",
            "p060-t0196",
            "p060-t0198",
            "p060-t0199",
            "p060-t0201",
            "p060-t0200",
            "p060-t0202",
            "p060-t0204",
            "p060-t0203"
          ],
          "operations": [
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 634.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 676.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 718.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 761.0
            },
            {
              "kind": "join-pdf-code-wrap",
              "page": 60,
              "top": 802.0
            }
          ],
          "id": "q-p060-h02-b004",
          "markdown_line": 284
        },
        {
          "kind": "prose",
          "text": "对于StatefulSet创建的pod，statefulset.spec.serviceName字段解释如下：也就是说StatefulSet创建的pod，其pod的域名为：pod-specific-string.serviceName.default.svc.cluster.local，而pod-specific-string就是pod的名称。例如：redis-sts-0.redis-svc.default.svc.cluster.local:6379,redis-sts-1.redis-svc.default.svc.cluster.local:6379,redis-sts-2.redis-svc.default.svc.cluster.local:6379,redis-sts-3.redis-svc.default.svc.cluster.local:6379,redis-sts-4.redis-svc.default.svc.cluster.local:6379,redis-sts-5.redis-svc.default.svc.cluster.local:6379，pod里面的应用程序就可以拿这串字符串去连接Redis集群了",
          "language": null,
          "pages": [
            60
          ],
          "span_ids": [
            "p060-t0085",
            "p060-t0086",
            "p060-t0087",
            "p060-t0088",
            "p060-t0089",
            "p060-t0090",
            "p060-t0091",
            "p060-t0092",
            "p060-t0093",
            "p060-t0094",
            "p060-t0095",
            "p060-t0096",
            "p060-t0097",
            "p060-t0098",
            "p060-t0099",
            "p060-t0100",
            "p060-t0101",
            "p060-t0102",
            "p060-t0103",
            "p060-t0104",
            "p060-t0105",
            "p060-t0106",
            "p060-t0107",
            "p060-t0108",
            "p060-t0109",
            "p060-t0110",
            "p060-t0111",
            "p060-t0112",
            "p060-t0113",
            "p060-t0114",
            "p060-t0115",
            "p060-t0116"
          ],
          "operations": [],
          "id": "q-p060-h02-b005",
          "markdown_line": 294
        }
      ],
      "markdown_line": 270
    },
    {
      "id": "q-p060-h03",
      "title": "service的类型有哪几种",
      "heading-id": "p060-h03",
      "source-page": 60,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p060-h03",
      "pages": [
        60,
        61
      ],
      "page-range": [
        60,
        61
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "ClusterIP：表示service仅供集群内部使用，默认值就是ClusterIP类型NodePort：表示service可以对外访问应用，会在每个节点上暴露一个端口，这样外部浏览器访问地址为：任意节点的IP：NodePort就能连上service了LoadBalancer：表示service对外访问应用，这种类型的service是公有云环境下的service，此模式需要外部云厂商的支持，需要有一个公网IP地址ExternalName：这种类型的service会把集群外部的服务引入集群内部，这样集群内直接访问service就可以间接的使用集群外部服务了一般情况下，service都是ClusterIP类型的，通过ingress接入的外部流量。",
          "language": null,
          "pages": [
            60,
            61
          ],
          "span_ids": [
            "p060-t0120",
            "p060-t0121",
            "p060-t0122",
            "p060-t0123",
            "p060-t0124",
            "p060-t0125",
            "p060-t0126",
            "p060-t0127",
            "p060-t0128",
            "p060-t0129",
            "p060-t0130",
            "p060-t0131",
            "p060-t0132",
            "p060-t0133",
            "p060-t0134",
            "p060-t0135",
            "p060-t0136",
            "p060-t0137",
            "p060-t0138",
            "p060-t0139",
            "p060-t0140",
            "p060-t0141",
            "p060-t0142",
            "p060-t0143",
            "p060-t0144",
            "p060-t0145",
            "p060-t0146",
            "p060-t0147",
            "p061-t0001",
            "p061-t0002",
            "p061-t0003",
            "p061-t0004",
            "p061-t0005",
            "p061-t0006",
            "p061-t0007",
            "p061-t0008",
            "p061-t0009",
            "p061-t0010",
            "p061-t0011",
            "p061-t0012",
            "p061-t0013",
            "p061-t0014"
          ],
          "operations": [],
          "id": "q-p060-h03-b001",
          "markdown_line": 300
        }
      ],
      "markdown_line": 296
    },
    {
      "id": "q-p061-h01",
      "title": "一个应用pod是如何发现service的，或者说，pod里面的容器用于是如何连接service的？",
      "heading-id": "p061-h01",
      "source-page": 61,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p061-h01",
      "pages": [
        61
      ],
      "page-range": [
        61,
        61
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "有两种方式，一种是通过环境变量，另一种是通过service的dns域名方式。",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0026",
            "p061-t0027",
            "p061-t0028",
            "p061-t0029",
            "p061-t0030"
          ],
          "operations": [],
          "id": "q-p061-h01-b001",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "1、环境变量：当pod被创建之后，k8s系统会自动为容器注入集群内有效的service名称和端口号等信息为环境变量的形式，这样容器应用直接通过取环境变量值就能访问service了，如curl http://${WEBAPP_SERVICE_HOST}:{WEBAPP_SERVICE_PORT}",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0031",
            "p061-t0032",
            "p061-t0033",
            "p061-t0034",
            "p061-t0035",
            "p061-t0036",
            "p061-t0037",
            "p061-t0038",
            "p061-t0039",
            "p061-t0040",
            "p061-t0041",
            "p061-t0042",
            "p061-t0043"
          ],
          "operations": [],
          "id": "q-p061-h01-b002",
          "markdown_line": 308
        },
        {
          "kind": "prose",
          "text": "2、DNS方式：使用dns域名解析的前提是k8s集群内有DNS域名解析服务器，默认k8s中会有一个CoreDNS作为k8s集群的默认DNS服务器提供域名解析服务器；service的DNS域名表示格式为..svc.， servicename是service的名称，namespace是service所处的命名空间，clusterdomain是k8s集群设置的域名后缀，一般默认为 cluster.local，这样容器应用直接通过service域名就能访问service了，如wget http://svc-deployment-nginx.default.svc.cluster.local:80，另外，service的port端口如果定义了名称，那么port也可以通过DNS进行解析，格式为：....svc.",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0044",
            "p061-t0045",
            "p061-t0046",
            "p061-t0047",
            "p061-t0048",
            "p061-t0049",
            "p061-t0050",
            "p061-t0051",
            "p061-t0052",
            "p061-t0053",
            "p061-t0054",
            "p061-t0055",
            "p061-t0056",
            "p061-t0057",
            "p061-t0058",
            "p061-t0059",
            "p061-t0060",
            "p061-t0061",
            "p061-t0062",
            "p061-t0063",
            "p061-t0064",
            "p061-t0065",
            "p061-t0066",
            "p061-t0067",
            "p061-t0068",
            "p061-t0069",
            "p061-t0070",
            "p061-t0071",
            "p061-t0072",
            "p061-t0073",
            "p061-t0074",
            "p061-t0075",
            "p061-t0076",
            "p061-t0077",
            "p061-t0078",
            "p061-t0079",
            "p061-t0080",
            "p061-t0081",
            "p061-t0082",
            "p061-t0083",
            "p061-t0084",
            "p061-t0085",
            "p061-t0086",
            "p061-t0087",
            "p061-t0088",
            "p061-t0089",
            "p061-t0090",
            "p061-t0091",
            "p061-t0092",
            "p061-t0093",
            "p061-t0094",
            "p061-t0095",
            "p061-t0096",
            "p061-t0097",
            "p061-t0098",
            "p061-t0099",
            "p061-t0100"
          ],
          "operations": [],
          "id": "q-p061-h01-b003",
          "markdown_line": 310
        }
      ],
      "markdown_line": 302
    },
    {
      "id": "q-p061-h02",
      "title": "如何创建一个service代理外部的服务，或者换句话来说，在k8s集群内的应用如何访问外部的服务，如数据库服务，缓存服务等?",
      "heading-id": "p061-h02",
      "source-page": 61,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p061-h02",
      "pages": [
        61
      ],
      "page-range": [
        61,
        61
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "可以通过创建一个没有标签选择器的service来代理集群外部的服务。",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0110",
            "p061-t0111",
            "p061-t0112"
          ],
          "operations": [],
          "id": "q-p061-h02-b001",
          "markdown_line": 316
        },
        {
          "kind": "prose",
          "text": "1、创建service时不指定selector标签选择器，但需要指定service的port端口、端口的name、端口协议等，这样创建出来的service因为没有指定标签选择器就不会自动创建endpoint；",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0113",
            "p061-t0114",
            "p061-t0115",
            "p061-t0116",
            "p061-t0117",
            "p061-t0118",
            "p061-t0119",
            "p061-t0120",
            "p061-t0121",
            "p061-t0122",
            "p061-t0123",
            "p061-t0124",
            "p061-t0125",
            "p061-t0126",
            "p061-t0127",
            "p061-t0128",
            "p061-t0129"
          ],
          "operations": [],
          "id": "q-p061-h02-b002",
          "markdown_line": 318
        },
        {
          "kind": "prose",
          "text": "2、手动创建一个与service同名的endpoint，endpoint中定义外部服务的IP和端口，endpoint的名称一定要与service的名称一样，端口协议也要一样，端口的name也要与service的端口的name一样，不然endpoint不能与service进行关联。完成以上两步，k8s会自动将service和同名的endpoint进行关联，这样，k8s集群内的应用服务直接访问这个service就可以相当于访问外部的服务了。",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0130",
            "p061-t0131",
            "p061-t0132",
            "p061-t0133",
            "p061-t0134",
            "p061-t0135",
            "p061-t0136",
            "p061-t0137",
            "p061-t0138",
            "p061-t0139",
            "p061-t0140",
            "p061-t0141",
            "p061-t0142",
            "p061-t0143",
            "p061-t0144",
            "p061-t0145",
            "p061-t0146",
            "p061-t0147",
            "p061-t0148",
            "p061-t0149",
            "p061-t0150",
            "p061-t0151",
            "p061-t0152",
            "p061-t0153",
            "p061-t0154",
            "p061-t0155",
            "p061-t0156",
            "p061-t0157",
            "p061-t0158",
            "p061-t0159",
            "p061-t0160",
            "p061-t0161",
            "p061-t0162",
            "p061-t0163",
            "p061-t0164",
            "p061-t0165",
            "p061-t0166"
          ],
          "operations": [],
          "id": "q-p061-h02-b003",
          "markdown_line": 320
        }
      ],
      "markdown_line": 312
    },
    {
      "id": "q-p061-h03",
      "title": "service、endpoint、kube-proxys三种的关系是什么？",
      "heading-id": "p061-h03",
      "source-page": 61,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p061-h03",
      "pages": [
        61
      ],
      "page-range": [
        61,
        61
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "service：在kubernetes中，service是一种为一组功能相同的pod提供单一不变的接入点的资源。当service被建立时，service的IP和端口不会改变，这样外部的客户端（也可以是集群内部的客户端）通过service的IP和端口来建立链接，这些链接会被路由到提供该服务的任意一个pod上。通过这样的方式，客户端不需要知道每个单独提供服务的pod地址，这样pod就可以在集群中随时被创建或销毁。 endpoint：service维护一个叫endpoint的资源列表，endpoint资源对象保存着service关联的pod的ip和端口。从表面上看，当pod消失，service会在endpoint列表中剔除pod，当有新的pod加入，service就会将pod ip加入endpoint列表；但是正在底层的逻辑是，endpoint的这种自动剔除、添加、更新pod的地址其实底层是由endpoint controller控制的，endpoint controller负责监听service和对应的pod副本的变化，如果监听到service被删除，则删除和该service同名的endpoint对象，如果监听到新的service被创建或者修改，则根据该service信息获取得相关pod列表，然后创建或更新service对应的endpoint对象，如果监听到pod事件，则更新它所对应的service的endpoint对象。 kube-proxy：kube-proxy运行在node节点上，在Node节点上实现Pod网络代理，维护网络规则和四层负载均衡工作，kube-proxy会监听api-server中从而获取service和endpoint的变化情况，创建并维护路由规则以提供服务IP和负载均衡功能。简单理解此进程是Service的透明代理兼负载均衡器，其核心功能是将到某个Service的访问请求转发到后端的多个Pod实例上",
          "language": null,
          "pages": [
            61
          ],
          "span_ids": [
            "p061-t0174",
            "p061-t0175",
            "p061-t0176",
            "p061-t0177",
            "p061-t0178",
            "p061-t0179",
            "p061-t0180",
            "p061-t0181",
            "p061-t0182",
            "p061-t0183",
            "p061-t0184",
            "p061-t0185",
            "p061-t0186",
            "p061-t0187",
            "p061-t0188",
            "p061-t0189",
            "p061-t0190",
            "p061-t0191",
            "p061-t0192",
            "p061-t0193",
            "p061-t0194",
            "p061-t0195",
            "p061-t0196",
            "p061-t0197",
            "p061-t0198",
            "p061-t0199",
            "p061-t0200",
            "p061-t0201",
            "p061-t0202",
            "p061-t0203",
            "p061-t0204",
            "p061-t0205",
            "p061-t0206",
            "p061-t0207",
            "p061-t0208",
            "p061-t0209",
            "p061-t0210",
            "p061-t0211",
            "p061-t0212",
            "p061-t0213",
            "p061-t0214",
            "p061-t0215",
            "p061-t0216",
            "p061-t0217",
            "p061-t0218",
            "p061-t0219",
            "p061-t0220",
            "p061-t0221",
            "p061-t0222",
            "p061-t0223",
            "p061-t0224",
            "p061-t0225",
            "p061-t0226",
            "p061-t0227",
            "p061-t0228",
            "p061-t0229",
            "p061-t0230",
            "p061-t0231",
            "p061-t0232",
            "p061-t0233",
            "p061-t0234",
            "p061-t0235",
            "p061-t0236",
            "p061-t0237",
            "p061-t0238",
            "p061-t0239",
            "p061-t0240",
            "p061-t0241",
            "p061-t0242",
            "p061-t0243",
            "p061-t0244",
            "p061-t0245",
            "p061-t0246",
            "p061-t0247",
            "p061-t0248",
            "p061-t0249",
            "p061-t0250",
            "p061-t0251",
            "p061-t0252",
            "p061-t0253",
            "p061-t0254",
            "p061-t0255",
            "p061-t0256",
            "p061-t0257",
            "p061-t0258",
            "p061-t0259",
            "p061-t0260",
            "p061-t0261",
            "p061-t0262",
            "p061-t0263",
            "p061-t0264",
            "p061-t0265",
            "p061-t0266",
            "p061-t0267",
            "p061-t0268",
            "p061-t0269",
            "p061-t0270",
            "p061-t0271",
            "p061-t0272",
            "p061-t0273",
            "p061-t0274",
            "p061-t0275",
            "p061-t0276",
            "p061-t0277",
            "p061-t0278",
            "p061-t0279",
            "p061-t0280",
            "p061-t0281",
            "p061-t0282",
            "p061-t0283",
            "p061-t0284",
            "p061-t0285",
            "p061-t0286",
            "p061-t0287",
            "p061-t0288",
            "p061-t0289",
            "p061-t0290",
            "p061-t0291",
            "p061-t0292",
            "p061-t0293",
            "p061-t0294",
            "p061-t0295",
            "p061-t0296"
          ],
          "operations": [],
          "id": "q-p061-h03-b001",
          "markdown_line": 326
        }
      ],
      "markdown_line": 322
    },
    {
      "id": "q-p062-h01",
      "title": "无头service和普通的service有什么区别，无头service使用场景是什么",
      "heading-id": "p062-h01",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h01",
      "pages": [
        62
      ],
      "page-range": [
        62,
        62
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "无头service没有cluster ip，在定义service时将 service.spec.clusterIP：None，就表示创建的是无头service。普通的service是用于为一组后端pod提供请求连接的负载均衡，让客户端能通过固定的service ip地址来访问pod，这类的pod是没有状态的，同时service还具有负载均衡和服务发现的功能。普通service跟我们平时使用的nginx反向代理很相识。但是，试想这样一种情况，有6个redis pod ,它们相互之间要通信并要组成一个redis集群，不在需要所谓的service负载均衡，这时无头service就是派上用场了，无头service由于没有cluster ip，kube-proxy就不会处理它也就不会对它生成规则负载均衡，无头service直接绑定的是pod 的ip。无头service仍会有标签选择器，有标签选择器就会有endpoint资源。使用场景：无头service一般用于有状态的应用场景，如Kaka集群、Redis集群等，这类pod之间需要相互通信相互组成集群，不在需要所谓的service负载均衡。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0010",
            "p062-t0011",
            "p062-t0012",
            "p062-t0013",
            "p062-t0014",
            "p062-t0015",
            "p062-t0016",
            "p062-t0017",
            "p062-t0018",
            "p062-t0019",
            "p062-t0020",
            "p062-t0021",
            "p062-t0022",
            "p062-t0023",
            "p062-t0024",
            "p062-t0025",
            "p062-t0026",
            "p062-t0027",
            "p062-t0028",
            "p062-t0029",
            "p062-t0030",
            "p062-t0031",
            "p062-t0032",
            "p062-t0033",
            "p062-t0034",
            "p062-t0035",
            "p062-t0036",
            "p062-t0037",
            "p062-t0038",
            "p062-t0039",
            "p062-t0040",
            "p062-t0041",
            "p062-t0042",
            "p062-t0043",
            "p062-t0044",
            "p062-t0045",
            "p062-t0046",
            "p062-t0047",
            "p062-t0048",
            "p062-t0049",
            "p062-t0050",
            "p062-t0051",
            "p062-t0052",
            "p062-t0053",
            "p062-t0054",
            "p062-t0055",
            "p062-t0056",
            "p062-t0057",
            "p062-t0058",
            "p062-t0059",
            "p062-t0060",
            "p062-t0061",
            "p062-t0062",
            "p062-t0063",
            "p062-t0064",
            "p062-t0065",
            "p062-t0066",
            "p062-t0067",
            "p062-t0068",
            "p062-t0069",
            "p062-t0070",
            "p062-t0071",
            "p062-t0072",
            "p062-t0073",
            "p062-t0074",
            "p062-t0075",
            "p062-t0076",
            "p062-t0077",
            "p062-t0078",
            "p062-t0079",
            "p062-t0080",
            "p062-t0081",
            "p062-t0082",
            "p062-t0083"
          ],
          "operations": [],
          "id": "q-p062-h01-b001",
          "markdown_line": 332
        }
      ],
      "markdown_line": 328
    },
    {
      "id": "q-p062-h02",
      "title": "deployment怎么扩容或缩容？",
      "heading-id": "p062-h02",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h02",
      "pages": [
        62
      ],
      "page-range": [
        62,
        62
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "直接修改pod副本数即可，可以通过下面的方式来修改pod副本数：",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0087",
            "p062-t0088",
            "p062-t0089",
            "p062-t0090",
            "p062-t0091"
          ],
          "operations": [],
          "id": "q-p062-h02-b001",
          "markdown_line": 338
        },
        {
          "kind": "prose",
          "text": "1、直接修改yaml文件的replicas字段数值，然后kubectl apply -f xxx.yaml来实现更新；",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0092",
            "p062-t0093",
            "p062-t0094",
            "p062-t0095",
            "p062-t0096",
            "p062-t0097",
            "p062-t0098",
            "p062-t0099"
          ],
          "operations": [],
          "id": "q-p062-h02-b002",
          "markdown_line": 340
        },
        {
          "kind": "prose",
          "text": "2、使用kubectl edit deployment xxx 修改replicas来实现在线更新；",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0100",
            "p062-t0101",
            "p062-t0102",
            "p062-t0103",
            "p062-t0104",
            "p062-t0105"
          ],
          "operations": [],
          "id": "q-p062-h02-b003",
          "markdown_line": 342
        },
        {
          "kind": "prose",
          "text": "3、使用kubectl scale --replicas=5 deployment/deployment-nginx命令来扩容缩容。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0106",
            "p062-t0107",
            "p062-t0108",
            "p062-t0109"
          ],
          "operations": [],
          "id": "q-p062-h02-b004",
          "markdown_line": 344
        }
      ],
      "markdown_line": 334
    },
    {
      "id": "q-p062-h03",
      "title": "deployment的更新升级策略有哪些？",
      "heading-id": "p062-h03",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h03",
      "pages": [
        62
      ],
      "page-range": [
        62,
        62
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "deployment的升级策略主要有两种。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0113",
            "p062-t0114"
          ],
          "operations": [],
          "id": "q-p062-h03-b001",
          "markdown_line": 350
        },
        {
          "kind": "prose",
          "text": "1、Recreate 重建更新：这种更新策略会杀掉所有正在运行的pod，然后再重新创建的pod；",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0115",
            "p062-t0116",
            "p062-t0117",
            "p062-t0118",
            "p062-t0119",
            "p062-t0120",
            "p062-t0121",
            "p062-t0122"
          ],
          "operations": [],
          "id": "q-p062-h03-b002",
          "markdown_line": 352
        },
        {
          "kind": "prose",
          "text": "2、rollingUpdate 滚动更新：这种更新策略，deployment会以滚动更新的方式来逐个更新pod，同时通过设置滚动更新的两个参数maxUnavailable、maxSurge来控制更新的过程。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0123",
            "p062-t0124",
            "p062-t0125",
            "p062-t0126",
            "p062-t0127",
            "p062-t0128",
            "p062-t0129",
            "p062-t0130",
            "p062-t0131",
            "p062-t0132",
            "p062-t0133",
            "p062-t0134",
            "p062-t0135"
          ],
          "operations": [],
          "id": "q-p062-h03-b003",
          "markdown_line": 354
        }
      ],
      "markdown_line": 346
    },
    {
      "id": "q-p062-h04",
      "title": "deployment的滚动更新策略有两个特别主要的参数，解释一下它们是什么意思",
      "heading-id": "p062-h04",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h04",
      "pages": [
        62
      ],
      "page-range": [
        62,
        62
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "maxUnavailable：最大不可用数，maxUnavailable用于指定deployment在更新的过程中不可用状态的pod的最大数量，maxUnavailable的值可以是一个整数值，也可以是pod期望副本的百分比，如25%，计算时向下取整。 maxSurge：最大激增数，maxSurge指定deployment在更新的过程中pod的总数量最大能超过pod副本数多少个，maxUnavailable的值可以是一个整数值，也可以是pod期望副本的百分比，如25%，计算时向上取整。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0140",
            "p062-t0141",
            "p062-t0142",
            "p062-t0143",
            "p062-t0144",
            "p062-t0145",
            "p062-t0146",
            "p062-t0147",
            "p062-t0148",
            "p062-t0149",
            "p062-t0150",
            "p062-t0151",
            "p062-t0152",
            "p062-t0153",
            "p062-t0154",
            "p062-t0155",
            "p062-t0156",
            "p062-t0157",
            "p062-t0158",
            "p062-t0159",
            "p062-t0160",
            "p062-t0161",
            "p062-t0162",
            "p062-t0163",
            "p062-t0164",
            "p062-t0165",
            "p062-t0166",
            "p062-t0167",
            "p062-t0168",
            "p062-t0169",
            "p062-t0170",
            "p062-t0171",
            "p062-t0172"
          ],
          "operations": [],
          "id": "q-p062-h04-b001",
          "markdown_line": 360
        }
      ],
      "markdown_line": 356
    },
    {
      "id": "q-p062-h05",
      "title": "deployment更新的命令有哪些",
      "heading-id": "p062-h05",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h05",
      "pages": [
        62
      ],
      "page-range": [
        62,
        62
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "可以通过三种方式来实现更新deployment。",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0176",
            "p062-t0177",
            "p062-t0178"
          ],
          "operations": [],
          "id": "q-p062-h05-b001",
          "markdown_line": 366
        },
        {
          "kind": "prose",
          "text": "1、直接修改yaml文件的镜像版本，然后kubectl apply -f xxx.yaml来实现更新；",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0179",
            "p062-t0180",
            "p062-t0181",
            "p062-t0182",
            "p062-t0183",
            "p062-t0184"
          ],
          "operations": [],
          "id": "q-p062-h05-b002",
          "markdown_line": 368
        },
        {
          "kind": "prose",
          "text": "2、使用kubectl edit deployment xxx 实现在线更新；",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0185",
            "p062-t0186",
            "p062-t0187",
            "p062-t0188"
          ],
          "operations": [],
          "id": "q-p062-h05-b003",
          "markdown_line": 370
        },
        {
          "kind": "prose",
          "text": "3、使用kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1 命令来更新",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0189",
            "p062-t0190",
            "p062-t0191",
            "p062-t0192"
          ],
          "operations": [],
          "id": "q-p062-h05-b004",
          "markdown_line": 372
        }
      ],
      "markdown_line": 362
    },
    {
      "id": "q-p062-h06",
      "title": "简述一下deployment的更新过程",
      "heading-id": "p062-h06",
      "source-page": 62,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p062-h06",
      "pages": [
        62,
        63
      ],
      "page-range": [
        62,
        63
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "eployment是通过控制replicaset来实现，由replicaset真正创建pod副本，每更新一次deployment，都会创建新的replicaset，下面来举例deployment的更新过程：假设要升级一个nginx-deployment的版本镜像为nginx:1.9，deployment的定义滚动更新参数如下：",
          "language": null,
          "pages": [
            62
          ],
          "span_ids": [
            "p062-t0197",
            "p062-t0198",
            "p062-t0199",
            "p062-t0200",
            "p062-t0201",
            "p062-t0202",
            "p062-t0203",
            "p062-t0204",
            "p062-t0205",
            "p062-t0206",
            "p062-t0207",
            "p062-t0208",
            "p062-t0209",
            "p062-t0210",
            "p062-t0211",
            "p062-t0212",
            "p062-t0213",
            "p062-t0214",
            "p062-t0215",
            "p062-t0216",
            "p062-t0217",
            "p062-t0218"
          ],
          "operations": [],
          "id": "q-p062-h06-b001",
          "markdown_line": 378
        },
        {
          "kind": "code",
          "text": "replicas: 3\ndeployment.spec.strategy.type: RollingUpdate\nmaxUnavailable：25%\nmaxSurge：25%",
          "language": "yaml",
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0209",
            "p063-t0210",
            "p063-t0212",
            "p063-t0211",
            "p063-t0213",
            "p063-t0215",
            "p063-t0214",
            "p063-t0216"
          ],
          "operations": [],
          "id": "q-p062-h06-b002",
          "markdown_line": 380
        },
        {
          "kind": "prose",
          "text": "通过计算我们得出，3*25%=0.75，maxUnavailable是向下取整，则maxUnavailable=0，maxSurge是向上取整，则maxSurge=1，所以我们得出在整个deployment升级镜像过程中，不管旧的pod和新的pod是如何创建消亡的，pod总数最大不能超过3+maxSurge=4个，最大pod不可用数3-maxUnavailable=3个。",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0054",
            "p063-t0055",
            "p063-t0056",
            "p063-t0057",
            "p063-t0058",
            "p063-t0059",
            "p063-t0060",
            "p063-t0061",
            "p063-t0062",
            "p063-t0063",
            "p063-t0064",
            "p063-t0065",
            "p063-t0066",
            "p063-t0067",
            "p063-t0068",
            "p063-t0069",
            "p063-t0070",
            "p063-t0071",
            "p063-t0072",
            "p063-t0073",
            "p063-t0074",
            "p063-t0075",
            "p063-t0076",
            "p063-t0077",
            "p063-t0078",
            "p063-t0079",
            "p063-t0080"
          ],
          "operations": [],
          "id": "q-p062-h06-b003",
          "markdown_line": 387
        },
        {
          "kind": "prose",
          "text": "现在具体讲一下deployment的更新升级过程：使用kubectl set image deployment/nginx nginx=nginx:1.9 --record 命令来更新；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0081",
            "p063-t0082",
            "p063-t0083",
            "p063-t0084",
            "p063-t0085",
            "p063-t0086"
          ],
          "operations": [],
          "id": "q-p062-h06-b004",
          "markdown_line": 389
        },
        {
          "kind": "prose",
          "text": "1、deployment创建一个新的replaceset，先新增1个新版本pod，此时pod总数为4个，不能再新增了，再新增就超过pod总数4个了；旧=3，新=1，总=4；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0087",
            "p063-t0088",
            "p063-t0089",
            "p063-t0090",
            "p063-t0091",
            "p063-t0092",
            "p063-t0093",
            "p063-t0094",
            "p063-t0095",
            "p063-t0096",
            "p063-t0097",
            "p063-t0098",
            "p063-t0099",
            "p063-t0100",
            "p063-t0101",
            "p063-t0102",
            "p063-t0103",
            "p063-t0104",
            "p063-t0105",
            "p063-t0106",
            "p063-t0107",
            "p063-t0108",
            "p063-t0109",
            "p063-t0110",
            "p063-t0111"
          ],
          "operations": [],
          "id": "q-p062-h06-b005",
          "markdown_line": 391
        },
        {
          "kind": "prose",
          "text": "2、减少一个旧版本的pod，此时pod总数为3个，这时不能再减少了，再减少就不满足最大pod不可用数3个了；旧=2，新=1，总=3；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0112",
            "p063-t0113",
            "p063-t0114",
            "p063-t0115",
            "p063-t0116",
            "p063-t0117",
            "p063-t0118",
            "p063-t0119",
            "p063-t0120",
            "p063-t0121",
            "p063-t0122",
            "p063-t0123",
            "p063-t0124",
            "p063-t0125",
            "p063-t0126",
            "p063-t0127",
            "p063-t0128",
            "p063-t0129"
          ],
          "operations": [],
          "id": "q-p062-h06-b006",
          "markdown_line": 393
        },
        {
          "kind": "prose",
          "text": "3、再新增一个新版本的pod，此时pod总数为4个，不能再新增了；旧=2，新=2，总=4；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0130",
            "p063-t0131",
            "p063-t0132",
            "p063-t0133",
            "p063-t0134",
            "p063-t0135",
            "p063-t0136",
            "p063-t0137",
            "p063-t0138",
            "p063-t0139",
            "p063-t0140",
            "p063-t0141",
            "p063-t0142",
            "p063-t0143"
          ],
          "operations": [],
          "id": "q-p062-h06-b007",
          "markdown_line": 395
        },
        {
          "kind": "prose",
          "text": "4、减少一个旧版本的pod，此时pod总数为3个，这时不能再减少了；旧=1，新=2，总=3；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0144",
            "p063-t0145",
            "p063-t0146",
            "p063-t0147",
            "p063-t0148",
            "p063-t0149",
            "p063-t0150",
            "p063-t0151",
            "p063-t0152",
            "p063-t0153",
            "p063-t0154",
            "p063-t0155",
            "p063-t0156",
            "p063-t0157"
          ],
          "operations": [],
          "id": "q-p062-h06-b008",
          "markdown_line": 397
        },
        {
          "kind": "prose",
          "text": "5、再新增一个新版本的pod，此时pod总数为4个，不能再新增了；旧=1，新=3，总=4；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0158",
            "p063-t0159",
            "p063-t0160",
            "p063-t0161",
            "p063-t0162",
            "p063-t0163",
            "p063-t0164",
            "p063-t0165",
            "p063-t0166",
            "p063-t0167",
            "p063-t0168",
            "p063-t0169",
            "p063-t0170",
            "p063-t0171"
          ],
          "operations": [],
          "id": "q-p062-h06-b009",
          "markdown_line": 399
        },
        {
          "kind": "prose",
          "text": "6、减少一个旧版本的pod，此时pod总数为3个，更新完成，pod都是新版本了；旧=0，新=3，总=3；",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0172",
            "p063-t0173",
            "p063-t0174",
            "p063-t0175",
            "p063-t0176",
            "p063-t0177",
            "p063-t0178",
            "p063-t0179",
            "p063-t0180",
            "p063-t0181",
            "p063-t0182",
            "p063-t0183",
            "p063-t0184",
            "p063-t0185",
            "p063-t0186",
            "p063-t0187"
          ],
          "operations": [],
          "id": "q-p062-h06-b010",
          "markdown_line": 401
        }
      ],
      "markdown_line": 374
    },
    {
      "id": "q-p063-h01",
      "title": "deployment的回滚使用什么命令",
      "heading-id": "p063-h01",
      "source-page": 63,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p063-h01",
      "pages": [
        63
      ],
      "page-range": [
        63,
        63
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在升级deployment时kubectl set image 命令加上 --record 参数可以记录具体的升级历史信息，使用kubectl rollout history deployment/deployment-nginx 命令来查看指定的deployment升级历史记录，如果需要回滚到某个指定的版本，可以使用kubectl rollout undo deployment/deployment-nginx --to-revision=2 命令来实现。",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0191",
            "p063-t0192",
            "p063-t0193",
            "p063-t0194",
            "p063-t0195",
            "p063-t0196",
            "p063-t0197",
            "p063-t0198",
            "p063-t0199",
            "p063-t0200",
            "p063-t0201",
            "p063-t0202",
            "p063-t0203",
            "p063-t0204",
            "p063-t0205"
          ],
          "operations": [],
          "id": "q-p063-h01-b001",
          "markdown_line": 407
        }
      ],
      "markdown_line": 403
    },
    {
      "id": "q-p063-h02",
      "title": "讲一下都有哪些存储卷，作用分别是什么?",
      "heading-id": "p063-h02",
      "source-page": 63,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p063-h02",
      "pages": [
        63,
        64
      ],
      "page-range": [
        63,
        64
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "卷作用常用场景",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0001",
            "p063-t0002",
            "p063-t0003"
          ],
          "operations": [],
          "id": "q-p063-h02-b001",
          "markdown_line": 413
        },
        {
          "kind": "prose",
          "text": "一个pod中的多个容器需要共享彼此的数emptyDir用于存储临时数据的简单空目录据，emptyDir的数据随着容器的消亡也会销毁",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0006",
            "p063-t0007",
            "p063-t0008",
            "p063-t0004",
            "p063-t0005",
            "p063-t0009",
            "p063-t0011",
            "p063-t0012",
            "p063-t0013",
            "p063-t0014"
          ],
          "operations": [],
          "id": "q-p063-h02-b002",
          "markdown_line": 415
        },
        {
          "kind": "prose",
          "text": "不常用，缺点是，pod的调度不是固定的，也就是当pod消失后deployment重用于将目录从工作节点的文件系统hostPath新创建一个pod，而这pod如果不是被调挂载到pod中度到之前pod的节点，那么该pod就不能访问之前的数据",
          "language": null,
          "pages": [
            63
          ],
          "span_ids": [
            "p063-t0020",
            "p063-t0021",
            "p063-t0022",
            "p063-t0023",
            "p063-t0024",
            "p063-t0025",
            "p063-t0026",
            "p063-t0027",
            "p063-t0016",
            "p063-t0015",
            "p063-t0028",
            "p063-t0029",
            "p063-t0030",
            "p063-t0031",
            "p063-t0032",
            "p063-t0017",
            "p063-t0018",
            "p063-t0019",
            "p063-t0033",
            "p063-t0034",
            "p063-t0035",
            "p063-t0036",
            "p063-t0037",
            "p063-t0038"
          ],
          "operations": [],
          "id": "q-p063-h02-b003",
          "markdown_line": 417
        },
        {
          "kind": "prose",
          "text": "用于将非敏感的数据保存到键值对将应用程序的不敏感配置文件创建为中，使用时可以使用作为环境变configMapconfigmap卷，在pod中挂载configmap量、命令行参数arg，存储卷被卷，可是实现热更新pods挂载使用卷作用常用场景",
          "language": null,
          "pages": [
            63,
            64
          ],
          "span_ids": [
            "p063-t0040",
            "p063-t0047",
            "p063-t0041",
            "p063-t0039",
            "p063-t0048",
            "p063-t0049",
            "p063-t0050",
            "p063-t0051",
            "p063-t0052",
            "p063-t0042",
            "p063-t0043",
            "p063-t0044",
            "p063-t0053",
            "p063-t0045",
            "p063-t0046",
            "p064-t0001",
            "p064-t0002",
            "p064-t0003"
          ],
          "operations": [],
          "id": "q-p063-h02-b004",
          "markdown_line": 419
        },
        {
          "kind": "prose",
          "text": "主要用于存储和管理一些敏感数据，然后通过在 Pod 的容器里挂载 Volume 的方式或者环境变量的将应用程序的账号密码等敏感信息通过secret方式访问到这些 Secret 里保存的secret卷的形式挂载到pod中使用信息了，pod会自动解密Secret 的信息",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0005",
            "p064-t0006",
            "p064-t0007",
            "p064-t0008",
            "p064-t0009",
            "p064-t0010",
            "p064-t0011",
            "p064-t0021",
            "p064-t0004",
            "p064-t0012",
            "p064-t0013",
            "p064-t0014",
            "p064-t0022",
            "p064-t0023",
            "p064-t0024",
            "p064-t0025",
            "p064-t0015",
            "p064-t0016",
            "p064-t0017",
            "p064-t0018",
            "p064-t0019",
            "p064-t0020"
          ],
          "operations": [],
          "id": "q-p063-h02-b005",
          "markdown_line": 421
        },
        {
          "kind": "prose",
          "text": "pod中的应用程序需要指定pod的name主要用于暴露pod元数据，如pod downwardApi等元数据，就可以通过downwardApi 卷的名字的形式挂载给pod使用",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0032",
            "p064-t0033",
            "p064-t0034",
            "p064-t0035",
            "p064-t0036",
            "p064-t0027",
            "p064-t0028",
            "p064-t0029",
            "p064-t0030",
            "p064-t0026",
            "p064-t0037",
            "p064-t0038",
            "p064-t0039",
            "p064-t0031",
            "p064-t0040",
            "p064-t0041",
            "p064-t0042"
          ],
          "operations": [],
          "id": "q-p063-h02-b006",
          "markdown_line": 423
        },
        {
          "kind": "prose",
          "text": "这是一种特殊的卷，用于将上面这projected将上面这些卷一次性的挂载给pod使用些卷一次性的挂载给pod使用",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0044",
            "p064-t0043",
            "p064-t0048",
            "p064-t0049",
            "p064-t0050",
            "p064-t0045",
            "p064-t0046",
            "p064-t0047"
          ],
          "operations": [],
          "id": "q-p063-h02-b007",
          "markdown_line": 425
        },
        {
          "kind": "prose",
          "text": "通常会创建pvc表示对存储的申请，然后pvcpvc是存储卷声明在pod中使用pvc",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0054",
            "p064-t0055",
            "p064-t0056",
            "p064-t0051",
            "p064-t0052",
            "p064-t0053",
            "p064-t0057",
            "p064-t0058",
            "p064-t0059",
            "p064-t0060"
          ],
          "operations": [],
          "id": "q-p063-h02-b008",
          "markdown_line": 427
        },
        {
          "kind": "prose",
          "text": "pod挂载网络存储卷，这样就能将常见的网络存储卷有nfs存储、glusterfs网络存储卷数据持久化到后端的存储里卷、ceph rbd存储卷",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0062",
            "p064-t0063",
            "p064-t0065",
            "p064-t0066",
            "p064-t0067",
            "p064-t0068",
            "p064-t0061",
            "p064-t0064",
            "p064-t0069",
            "p064-t0070",
            "p064-t0071"
          ],
          "operations": [],
          "id": "q-p063-h02-b009",
          "markdown_line": 429
        }
      ],
      "markdown_line": 409
    },
    {
      "id": "q-p064-h01",
      "title": "pv的访问模式有哪几种",
      "heading-id": "p064-h01",
      "source-page": 64,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p064-h01",
      "pages": [
        64
      ],
      "page-range": [
        64,
        64
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "ReadWriteOnce，简写：RWO表示，只仅允许单个节点以读写方式挂载； ReadOnlyMany，简写：ROX表示，可以被许多节点以只读方式挂载； ReadWriteMany，简写：RWX表示，可以被多个节点以读写方式挂载；",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0075",
            "p064-t0076",
            "p064-t0077",
            "p064-t0078",
            "p064-t0079",
            "p064-t0080",
            "p064-t0081",
            "p064-t0082",
            "p064-t0083",
            "p064-t0084",
            "p064-t0085",
            "p064-t0086"
          ],
          "operations": [],
          "id": "q-p064-h01-b001",
          "markdown_line": 435
        }
      ],
      "markdown_line": 431
    },
    {
      "id": "q-p064-h02",
      "title": "pv的回收策略有哪几种",
      "heading-id": "p064-h02",
      "source-page": 64,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p064-h02",
      "pages": [
        64
      ],
      "page-range": [
        64,
        64
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "主要有2中回收策略：retain 保留、delete 删除。 Retain：保留，该策略允许手动回收资源，当删除PVC时，PV仍然存在，PV被视为已释放，管理员可以手动回收卷。 Delete：删除，如果Volume插件支持，删除PVC时会同时删除PV，动态卷默认为Delete，目前支持Delete的存储后端包括AWS EBS，GCE PD，Azure Disk，OpenStack Cinder等。",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0090",
            "p064-t0091",
            "p064-t0092",
            "p064-t0093",
            "p064-t0094",
            "p064-t0095",
            "p064-t0096",
            "p064-t0097",
            "p064-t0098",
            "p064-t0099",
            "p064-t0100",
            "p064-t0101",
            "p064-t0102",
            "p064-t0103",
            "p064-t0104",
            "p064-t0105",
            "p064-t0106",
            "p064-t0107",
            "p064-t0108",
            "p064-t0109",
            "p064-t0110",
            "p064-t0111",
            "p064-t0112",
            "p064-t0113",
            "p064-t0114",
            "p064-t0115",
            "p064-t0116",
            "p064-t0117",
            "p064-t0118",
            "p064-t0119",
            "p064-t0120",
            "p064-t0121",
            "p064-t0122",
            "p064-t0123",
            "p064-t0124",
            "p064-t0125"
          ],
          "operations": [],
          "id": "q-p064-h02-b001",
          "markdown_line": 441
        }
      ],
      "markdown_line": 437
    },
    {
      "id": "q-p064-h03",
      "title": "在pv的生命周期中，一般有几种状态",
      "heading-id": "p064-h03",
      "source-page": 64,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p064-h03",
      "pages": [
        64
      ],
      "page-range": [
        64,
        64
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "pv一共有4中状态，分别是：创建pv后，pv的的状态有以下4种：Available（可用）、Bound（已绑定）、Released（已释放）、 Failed（失败） Available，表示pv已经创建正常，处于可用状态； Bound，表示pv已经被某个pvc绑定，注意，一个pv一旦被某个pvc绑定，那么该pvc就独占该pv，其他pvc不能再与该pv绑定； Released，表示pvc被删除了，pv状态就会变成已释放； Failed，表示pv的自动回收失败；",
          "language": null,
          "pages": [
            64
          ],
          "span_ids": [
            "p064-t0130",
            "p064-t0131",
            "p064-t0132",
            "p064-t0133",
            "p064-t0134",
            "p064-t0135",
            "p064-t0136",
            "p064-t0137",
            "p064-t0138",
            "p064-t0139",
            "p064-t0140",
            "p064-t0141",
            "p064-t0142",
            "p064-t0143",
            "p064-t0144",
            "p064-t0145",
            "p064-t0146",
            "p064-t0147",
            "p064-t0148",
            "p064-t0149",
            "p064-t0150",
            "p064-t0151",
            "p064-t0152",
            "p064-t0153",
            "p064-t0154",
            "p064-t0155",
            "p064-t0156",
            "p064-t0157",
            "p064-t0158",
            "p064-t0159",
            "p064-t0160",
            "p064-t0161",
            "p064-t0162",
            "p064-t0163",
            "p064-t0164",
            "p064-t0165",
            "p064-t0166",
            "p064-t0167",
            "p064-t0168",
            "p064-t0169",
            "p064-t0170",
            "p064-t0171",
            "p064-t0172",
            "p064-t0173",
            "p064-t0174",
            "p064-t0175",
            "p064-t0176",
            "p064-t0177",
            "p064-t0178",
            "p064-t0179",
            "p064-t0180"
          ],
          "operations": [],
          "id": "q-p064-h03-b001",
          "markdown_line": 447
        }
      ],
      "markdown_line": 443
    },
    {
      "id": "q-p065-h01",
      "title": "存储类的资源回收策略",
      "heading-id": "p065-h01",
      "source-page": 65,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p065-h01",
      "pages": [
        65
      ],
      "page-range": [
        65,
        65
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "主要有2中回收策略，delete 删除，默认就是delete策略、retain 保留。 Retain：保留，该策略允许手动回收资源，当删除PVC时，PV仍然存在，PV被视为已释放，管理员可以手动回收卷。 Delete：删除，如果Volume插件支持，删除PVC时会同时删除PV，动态卷默认为Delete，目前支持Delete的存储后端包括AWS EBS，GCE PD，Azure Disk，OpenStack Cinder等。",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0003",
            "p065-t0004",
            "p065-t0005",
            "p065-t0006",
            "p065-t0007",
            "p065-t0008",
            "p065-t0009",
            "p065-t0010",
            "p065-t0011",
            "p065-t0012",
            "p065-t0013",
            "p065-t0014",
            "p065-t0015",
            "p065-t0016",
            "p065-t0017",
            "p065-t0018",
            "p065-t0019",
            "p065-t0020",
            "p065-t0021",
            "p065-t0022",
            "p065-t0023",
            "p065-t0024",
            "p065-t0025",
            "p065-t0026",
            "p065-t0027",
            "p065-t0028",
            "p065-t0029",
            "p065-t0030",
            "p065-t0031",
            "p065-t0032",
            "p065-t0033",
            "p065-t0034",
            "p065-t0035",
            "p065-t0036",
            "p065-t0037",
            "p065-t0038",
            "p065-t0039",
            "p065-t0040"
          ],
          "operations": [],
          "id": "q-p065-h01-b001",
          "markdown_line": 453
        }
      ],
      "markdown_line": 449
    },
    {
      "id": "q-p065-h02",
      "title": "怎么使一个node脱离集群调度，比如要停机维护单又不能影响业务应用",
      "heading-id": "p065-h02",
      "source-page": 65,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p065-h02",
      "pages": [
        65
      ],
      "page-range": [
        65,
        65
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "crodon背后的原理其实就是打污点使用kubectl drain 命令",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0046",
            "p065-t0047",
            "p065-t0048",
            "p065-t0049",
            "p065-t0050"
          ],
          "operations": [],
          "id": "q-p065-h02-b001",
          "markdown_line": 459
        }
      ],
      "markdown_line": 455
    },
    {
      "id": "q-p065-h03",
      "title": "pv存储空间不足怎么扩容",
      "heading-id": "p065-h03",
      "source-page": 65,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p065-h03",
      "pages": [
        65
      ],
      "page-range": [
        65,
        65
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一般的，我们会使用动态分配存储资源，在创建storageclass时指定参数 allowVolumeExpansion： true，表示允许用户通过修改pvc申请的存储空间自动完成pv的扩容，当增大pvc的存储空间时，不会重新创建一个pv，而是扩容其绑定的后端pv。这样就能完成扩容了。但是allowVolumeExpansion这个特性只支持扩容空间不支持减少空间。",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0054",
            "p065-t0055",
            "p065-t0056",
            "p065-t0057",
            "p065-t0058",
            "p065-t0059",
            "p065-t0060",
            "p065-t0061",
            "p065-t0062",
            "p065-t0063",
            "p065-t0064",
            "p065-t0065",
            "p065-t0066",
            "p065-t0067",
            "p065-t0068",
            "p065-t0069",
            "p065-t0070",
            "p065-t0071",
            "p065-t0072",
            "p065-t0073",
            "p065-t0074"
          ],
          "operations": [],
          "id": "q-p065-h03-b001",
          "markdown_line": 465
        }
      ],
      "markdown_line": 461
    },
    {
      "id": "q-p065-h04",
      "title": "k8s生产中遇到什么特别影响深刻的问题吗，问题排查解决思路是怎么样的？",
      "heading-id": "p065-h04",
      "source-page": 65,
      "section": "容器技术",
      "topic": "08-kubernetes",
      "target": "/go-bank/08-kubernetes#q-p065-h04",
      "pages": [
        65,
        66
      ],
      "page-range": [
        65,
        66
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "前端的lb负载均衡服务器上的keepalived出现过脑裂现象。",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0079",
            "p065-t0080",
            "p065-t0081",
            "p065-t0082",
            "p065-t0083"
          ],
          "operations": [],
          "id": "q-p065-h04-b001",
          "markdown_line": 471
        },
        {
          "kind": "prose",
          "text": "1、当时问题现象是这样的，vip同时出现在主服务器和备服务器上，但业务上又没受到影响；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0084",
            "p065-t0085",
            "p065-t0086",
            "p065-t0087"
          ],
          "operations": [],
          "id": "q-p065-h04-b002",
          "markdown_line": 473
        },
        {
          "kind": "prose",
          "text": "2、这时首先去查看备服务器上的keepalived日志，发现有日志信息显示凌晨的时候备服务器出现了vrrp协议超时，所以才导致了备服务器接管了vip；查看主服务器上的keepalived日志，没有发现明显的报错信息，继续查看主服务器和备服务器上的keepalived进程状态，都是running状态的；查看主服务器上检测脚本所检测的进程，其进程也是正常的，也就是说主服务器根本没有成功执行检测脚本（成功执行检查脚本是会kill掉keepalived进程，脚本里面其实就是配置了检查nginx进程是否存活，如果检查到nginx不存活则kill掉keepalived，这样来实现备服务器接管vip）；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0088",
            "p065-t0089",
            "p065-t0090",
            "p065-t0091",
            "p065-t0092",
            "p065-t0093",
            "p065-t0094",
            "p065-t0095",
            "p065-t0096",
            "p065-t0097",
            "p065-t0098",
            "p065-t0099",
            "p065-t0100",
            "p065-t0101",
            "p065-t0102",
            "p065-t0103",
            "p065-t0104",
            "p065-t0105",
            "p065-t0106",
            "p065-t0107",
            "p065-t0108",
            "p065-t0109",
            "p065-t0110",
            "p065-t0111",
            "p065-t0112",
            "p065-t0113",
            "p065-t0114",
            "p065-t0115",
            "p065-t0116",
            "p065-t0117",
            "p065-t0118"
          ],
          "operations": [],
          "id": "q-p065-h04-b003",
          "markdown_line": 475
        },
        {
          "kind": "prose",
          "text": "3、排查服务器上的防火墙、selinux，防火墙状态和selinux状态都是关闭着的；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0119",
            "p065-t0120",
            "p065-t0121",
            "p065-t0122",
            "p065-t0123",
            "p065-t0124"
          ],
          "operations": [],
          "id": "q-p065-h04-b004",
          "markdown_line": 477
        },
        {
          "kind": "prose",
          "text": "4、使用tcpdump工具在备服务器上进行抓取数据包分析，分析发现，现在确实是备接管的vip，也确实是备服务器也在对外发送vrrp心跳包，所以现在外部流量应该都是流入备服务器上的vip；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0125",
            "p065-t0126",
            "p065-t0127",
            "p065-t0128",
            "p065-t0129",
            "p065-t0130",
            "p065-t0131",
            "p065-t0132",
            "p065-t0133",
            "p065-t0134",
            "p065-t0135"
          ],
          "operations": [],
          "id": "q-p065-h04-b005",
          "markdown_line": 479
        },
        {
          "kind": "prose",
          "text": "5、怀疑：主服务器上设置的vrrp心跳包时间间隔太长，以及检测脚本设置的检测时间设置不合理导致该问题；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0136",
            "p065-t0137",
            "p065-t0138",
            "p065-t0139",
            "p065-t0140"
          ],
          "operations": [],
          "id": "q-p065-h04-b006",
          "markdown_line": 481
        },
        {
          "kind": "prose",
          "text": "6、修改vrrp协议的心跳包时间间隔，由原来的2秒改成1秒就发送一次心跳包；检测脚本的检测时间也修改短一点，同时还修改检测脚本的检测失败的次数，比如连续检测2次失败才认定为检测失败；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0141",
            "p065-t0142",
            "p065-t0143",
            "p065-t0144",
            "p065-t0145",
            "p065-t0146",
            "p065-t0147",
            "p065-t0148",
            "p065-t0149",
            "p065-t0150",
            "p065-t0151"
          ],
          "operations": [],
          "id": "q-p065-h04-b007",
          "markdown_line": 483
        },
        {
          "kind": "prose",
          "text": "7、重启主备上的keepalived，现在keepalived是正常的，主服务器上有vip，备服务器上没有vip；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0152",
            "p065-t0153",
            "p065-t0154",
            "p065-t0155",
            "p065-t0156",
            "p065-t0157",
            "p065-t0158",
            "p065-t0159",
            "p065-t0160",
            "p065-t0161"
          ],
          "operations": [],
          "id": "q-p065-h04-b008",
          "markdown_line": 485
        },
        {
          "kind": "prose",
          "text": "8、持续观察：第二天又发现keepalived出现过脑裂现象，vip又同时出现在主服务器和备服务器上，又是凌晨的时候备服务器显示vrrp心跳包超时，所以才导致备服务器接管了vip；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0162",
            "p065-t0163",
            "p065-t0164",
            "p065-t0165",
            "p065-t0166",
            "p065-t0167",
            "p065-t0168",
            "p065-t0169",
            "p065-t0170",
            "p065-t0171",
            "p065-t0172"
          ],
          "operations": [],
          "id": "q-p065-h04-b009",
          "markdown_line": 487
        },
        {
          "kind": "prose",
          "text": "9、同样的时间，都是凌晨，vrrp协议超时；很奇怪，很有理由怀疑是网络问题，询问第三方厂家上层路由器是否禁止了vrrp协议，第三方厂家回复，没有禁止vrrp协议；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0173",
            "p065-t0174",
            "p065-t0175",
            "p065-t0176",
            "p065-t0177",
            "p065-t0178",
            "p065-t0179",
            "p065-t0180",
            "p065-t0181"
          ],
          "operations": [],
          "id": "q-p065-h04-b010",
          "markdown_line": 489
        },
        {
          "kind": "prose",
          "text": "10、百度、看官方文档求解；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0182",
            "p065-t0183"
          ],
          "operations": [],
          "id": "q-p065-h04-b011",
          "markdown_line": 491
        },
        {
          "kind": "prose",
          "text": "11、百度、看官网文档得知，keepalived有2种传播模式，一种是组播模式，一种是单播模式， keepalived默认在组播模式下工作，主服务器会往主播地址224.0.0.18发送心跳包，当局域网内有多个keepalived实例的时候，如果都用主播模式，会存在冲突干扰的情况，所以官方建议使用单播模式通信，单播模式就是点对点通行，即主向备服务器一对一的发送心跳包；",
          "language": null,
          "pages": [
            65
          ],
          "span_ids": [
            "p065-t0184",
            "p065-t0185",
            "p065-t0186",
            "p065-t0187",
            "p065-t0188",
            "p065-t0189",
            "p065-t0190",
            "p065-t0191",
            "p065-t0192",
            "p065-t0193",
            "p065-t0194",
            "p065-t0195",
            "p065-t0196"
          ],
          "operations": [],
          "id": "q-p065-h04-b012",
          "markdown_line": 493
        },
        {
          "kind": "prose",
          "text": "12、将keepalived模式改为单播模式，继续观察，无再发生脑裂现象。问题得以解决。答：测试环境二进制搭建etcd集群，etcd集群出现2个leader的现象。",
          "language": null,
          "pages": [
            65,
            66
          ],
          "span_ids": [
            "p065-t0197",
            "p065-t0198",
            "p065-t0199",
            "p065-t0200",
            "p066-t0001",
            "p066-t0002",
            "p066-t0003",
            "p066-t0004",
            "p066-t0005",
            "p066-t0006",
            "p066-t0007",
            "p066-t0008",
            "p066-t0009"
          ],
          "operations": [],
          "id": "q-p065-h04-b013",
          "markdown_line": 495
        },
        {
          "kind": "prose",
          "text": "1、问题现象就是：刚搭建的k8s集群，是测试环境的，搭建完成之后发现，使用kubectl get nodes 显示没有资源，kubectl get namespace 一会能正常显示全部的命名空间，一会又显示不了命名空间，这种奇怪情况。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0010",
            "p066-t0011",
            "p066-t0012",
            "p066-t0013",
            "p066-t0014",
            "p066-t0015",
            "p066-t0016",
            "p066-t0017",
            "p066-t0018",
            "p066-t0019"
          ],
          "operations": [],
          "id": "q-p065-h04-b014",
          "markdown_line": 497
        },
        {
          "kind": "prose",
          "text": "2、当时经验不是很足，第一点想到的是不是因为网络插件calico没装导致的，但是想想，即使没有安装网络插件，最多是node节点状态是notready，也不可能是没有资源发现呀；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0020",
            "p066-t0021",
            "p066-t0022",
            "p066-t0023",
            "p066-t0024",
            "p066-t0025",
            "p066-t0026",
            "p066-t0027",
            "p066-t0028"
          ],
          "operations": [],
          "id": "q-p065-h04-b015",
          "markdown_line": 499
        },
        {
          "kind": "prose",
          "text": "3、然后想到etcd数据库，k8s的资源都是存储在etcd数据库中的；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0029",
            "p066-t0030",
            "p066-t0031",
            "p066-t0032",
            "p066-t0033",
            "p066-t0034",
            "p066-t0035",
            "p066-t0036"
          ],
          "operations": [],
          "id": "q-p065-h04-b016",
          "markdown_line": 501
        },
        {
          "kind": "prose",
          "text": "4、查看etcd进程服务的启动状态，发现etcd服务状态是处于running状态，但是日志有大量的报错信息，日志大概报错信息就是集群节点的id不匹配，存在冲突等等报错信息；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0037",
            "p066-t0038",
            "p066-t0039",
            "p066-t0040",
            "p066-t0041",
            "p066-t0042",
            "p066-t0043",
            "p066-t0044",
            "p066-t0045",
            "p066-t0046",
            "p066-t0047"
          ],
          "operations": [],
          "id": "q-p065-h04-b017",
          "markdown_line": 503
        },
        {
          "kind": "prose",
          "text": "5、使用etcdctl命令查看etcd集群的健康状态，发现集群是health状态，但是居然显示有2个leader，这很奇怪（当初安装etcd的时候其实也只是简单看到了集群是健康状态，然后没注意到有2个leader，也没太关注etcd服务进程的日志报错信息，以为etcd集群状态是health状态就可以了）",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0048",
            "p066-t0049",
            "p066-t0050",
            "p066-t0051",
            "p066-t0052",
            "p066-t0053",
            "p066-t0054",
            "p066-t0055",
            "p066-t0056",
            "p066-t0057",
            "p066-t0058",
            "p066-t0059",
            "p066-t0060",
            "p066-t0061",
            "p066-t0062",
            "p066-t0063",
            "p066-t0064",
            "p066-t0065",
            "p066-t0066",
            "p066-t0067",
            "p066-t0068",
            "p066-t0069",
            "p066-t0070",
            "p066-t0071",
            "p066-t0072",
            "p066-t0073"
          ],
          "operations": [],
          "id": "q-p065-h04-b018",
          "markdown_line": 505
        },
        {
          "kind": "prose",
          "text": "6、现在etcd出现了2个leader，肯定是存在问题的；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0074",
            "p066-t0075",
            "p066-t0076",
            "p066-t0077",
            "p066-t0078",
            "p066-t0079",
            "p066-t0080",
            "p066-t0081"
          ],
          "operations": [],
          "id": "q-p065-h04-b019",
          "markdown_line": 507
        },
        {
          "kind": "prose",
          "text": "7、全部检测一遍etcd的各个节点的配置文件，确认配置文件里面各个参数配置都没有问题，重启etcd集群，报错信息仍未解决，仍然存在2个leader；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0082",
            "p066-t0083",
            "p066-t0084",
            "p066-t0085",
            "p066-t0086",
            "p066-t0087",
            "p066-t0088",
            "p066-t0089",
            "p066-t0090",
            "p066-t0091",
            "p066-t0092"
          ],
          "operations": [],
          "id": "q-p065-h04-b020",
          "markdown_line": 509
        },
        {
          "kind": "prose",
          "text": "8、尝试把其中一个leader节点踢出集群，然后再重新添加它进入集群，仍然是报错，仍然显示有2个leader；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0093",
            "p066-t0094",
            "p066-t0095",
            "p066-t0096",
            "p066-t0097",
            "p066-t0098",
            "p066-t0099",
            "p066-t0100"
          ],
          "operations": [],
          "id": "q-p065-h04-b021",
          "markdown_line": 511
        },
        {
          "kind": "prose",
          "text": "9、尝试重新生成etcd的证书，重新颁发etcd的证书，问题仍然存在，仍然显示有2个leader；日志仍是报错集群节点的id不匹配，存在冲突；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0101",
            "p066-t0102",
            "p066-t0103",
            "p066-t0104",
            "p066-t0105",
            "p066-t0106",
            "p066-t0107",
            "p066-t0108",
            "p066-t0109",
            "p066-t0110",
            "p066-t0111",
            "p066-t0112",
            "p066-t0113"
          ],
          "operations": [],
          "id": "q-p065-h04-b022",
          "markdown_line": 513
        },
        {
          "kind": "prose",
          "text": "10、计算etcd命令的MD5值，确保各个节点的etcd命令是相同的，确保在scp传输的时候没有损耗等等，问题仍未解决；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0114",
            "p066-t0115",
            "p066-t0116",
            "p066-t0117",
            "p066-t0118",
            "p066-t0119",
            "p066-t0120",
            "p066-t0121",
            "p066-t0122",
            "p066-t0123",
            "p066-t0124"
          ],
          "operations": [],
          "id": "q-p065-h04-b023",
          "markdown_line": 515
        },
        {
          "kind": "prose",
          "text": "11、无解，请求同事，架构师介入帮忙排查问题，仍未解决；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0125",
            "p066-t0126"
          ],
          "operations": [],
          "id": "q-p065-h04-b024",
          "markdown_line": 517
        },
        {
          "kind": "prose",
          "text": "12、删除全部etcd相关的文件，重新部署etcd集群，etcd集群正常了，现在只有一个leader，使用命令kubectl get nodes 查看节点，也能正常显示了；",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0127",
            "p066-t0128",
            "p066-t0129",
            "p066-t0130",
            "p066-t0131",
            "p066-t0132",
            "p066-t0133",
            "p066-t0134",
            "p066-t0135",
            "p066-t0136",
            "p066-t0137",
            "p066-t0138"
          ],
          "operations": [],
          "id": "q-p065-h04-b025",
          "markdown_line": 519
        },
        {
          "kind": "prose",
          "text": "13、最终问题的原因也没有定位出来，只能怀疑是环境问题了，由于是刚部署的k8s测试环境，etcd里面没有数据，所以可以删除重新创建etcd集群，如果是线上环境的etcd集群出现这种问题，就不能随便删除etcd集群了，必须要先进行数据备份才能进行其他方法的处理。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0139",
            "p066-t0140",
            "p066-t0141",
            "p066-t0142",
            "p066-t0143",
            "p066-t0144",
            "p066-t0145",
            "p066-t0146",
            "p066-t0147",
            "p066-t0148",
            "p066-t0149",
            "p066-t0150",
            "p066-t0151",
            "p066-t0152"
          ],
          "operations": [],
          "id": "q-p065-h04-b026",
          "markdown_line": 521
        }
      ],
      "markdown_line": 467
    },
    {
      "id": "q-p066-h02",
      "title": "什么是 Redis?",
      "heading-id": "p066-h02",
      "source-page": 66,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p066-h02",
      "pages": [
        66
      ],
      "page-range": [
        66,
        66
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 是完全开源免费的，遵守 BSD 协议，是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点：",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0158",
            "p066-t0159",
            "p066-t0160",
            "p066-t0161",
            "p066-t0162",
            "p066-t0163",
            "p066-t0165",
            "p066-t0167",
            "p066-t0168",
            "p066-t0169",
            "p066-t0170"
          ],
          "operations": [],
          "id": "q-p066-h02-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "1. Redis 支持数据的持久化，可以将内存中的数据保存在磁盘中，重启的时候可以再次加载进行使用。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0172",
            "p066-t0173",
            "p066-t0175",
            "p066-t0176"
          ],
          "operations": [],
          "id": "q-p066-h02-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "2. Redis 不仅仅支持简单的 key-value 类型的数据，同时还提供 list， set，zset，hash 等数据结构的存储。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0178",
            "p066-t0179",
            "p066-t0180",
            "p066-t0181",
            "p066-t0182",
            "p066-t0183",
            "p066-t0184",
            "p066-t0185",
            "p066-t0186",
            "p066-t0187",
            "p066-t0188",
            "p066-t0189",
            "p066-t0190"
          ],
          "operations": [],
          "id": "q-p066-h02-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "3. Redis 支持数据的备份，即 master-slave 模式的数据备份。 Redis 优势：",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0192",
            "p066-t0193",
            "p066-t0194",
            "p066-t0195",
            "p066-t0196",
            "p066-t0197"
          ],
          "operations": [],
          "id": "q-p066-h02-b004",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "4. 性能极高 – Redis 能读的速度是 110000 次/s,写的速度是 81000 次 /s。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0199",
            "p066-t0200",
            "p066-t0201",
            "p066-t0202",
            "p066-t0203",
            "p066-t0204",
            "p066-t0205",
            "p066-t0206",
            "p066-t0207",
            "p066-t0208",
            "p066-t0209",
            "p066-t0210"
          ],
          "operations": [],
          "id": "q-p066-h02-b005",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "5. 丰富的数据类型 – Redis 支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0212",
            "p066-t0213",
            "p066-t0214",
            "p066-t0215",
            "p066-t0216",
            "p066-t0217",
            "p066-t0218",
            "p066-t0219",
            "p066-t0220"
          ],
          "operations": [],
          "id": "q-p066-h02-b006",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "6. 原子 – Redis 的所有操作都是原子性的，意思就是要么成功执行要么失败完全不执行。单个操作是原子性的。多个操作也支持事务，即原子性，通过 MULTI 和 EXEC 指令包起来。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0222",
            "p066-t0223",
            "p066-t0224",
            "p066-t0225",
            "p066-t0227",
            "p066-t0228",
            "p066-t0230",
            "p066-t0231",
            "p066-t0232",
            "p066-t0233",
            "p066-t0234"
          ],
          "operations": [],
          "id": "q-p066-h02-b007",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "7. 丰富的特性 – Redis 还支持 publish/subscribe, 通知, key 过期等等特性。",
          "language": null,
          "pages": [
            66
          ],
          "span_ids": [
            "p066-t0236",
            "p066-t0237",
            "p066-t0238",
            "p066-t0239",
            "p066-t0240",
            "p066-t0241",
            "p066-t0242",
            "p066-t0243",
            "p066-t0245"
          ],
          "operations": [],
          "id": "q-p066-h02-b008",
          "markdown_line": 26
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p067-h01",
      "title": "Redis 与其他 key-value 存储有什么不同？",
      "heading-id": "p067-h01",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h01",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Redis 有着更为复杂的数据结构并且提供对他们的原子性操作，这是一个不同于其他数据库的进化路径。Redis 的数据类型都是基于基本数据结构的同时对程序员透明，无需进行额外的抽象。",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0007",
            "p067-t0008",
            "p067-t0010",
            "p067-t0011",
            "p067-t0012",
            "p067-t0013",
            "p067-t0015",
            "p067-t0017"
          ],
          "operations": [],
          "id": "q-p067-h01-b001",
          "markdown_line": 32
        },
        {
          "kind": "prose",
          "text": "2. Redis 运行在内存中但是可以持久化到磁盘，所以在对不同数据集进行高速读写时需要权衡内存，因为数据量不能大于硬件内存。在内存数据库方面的另一个优点是，相比在磁盘上相同的复杂的数据结构，在内存中操作起来非常简单，这样 Redis 可以做很多内部复杂性很强的事情。同时，在磁盘格式方面他们是紧凑的以追加的方式产生的，因为他们并不需要进行随机访问",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0019",
            "p067-t0020",
            "p067-t0022",
            "p067-t0023",
            "p067-t0025",
            "p067-t0027",
            "p067-t0028",
            "p067-t0030",
            "p067-t0032",
            "p067-t0033",
            "p067-t0034",
            "p067-t0036",
            "p067-t0038",
            "p067-t0040"
          ],
          "operations": [],
          "id": "q-p067-h01-b002",
          "markdown_line": 34
        }
      ],
      "markdown_line": 28
    },
    {
      "id": "q-p067-h02",
      "title": "Redis 的数据类型？",
      "heading-id": "p067-h02",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h02",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 支持五种数据类型：string（字符串），hash（哈希），list（列表），set（集合）及zsetsorted set：有序集合)。我们实际项目中比较常用的是 string，hash 如果你是 Redis 中高级用户，还需要加上下面几种数据结构 HyperLogLog、Geo、Pub/Sub。如果你说还玩过 Redis Module，像BloomFilter，RedisSearch，Redis-ML，面试官得眼睛就开始发亮了。",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0046",
            "p067-t0047",
            "p067-t0048",
            "p067-t0049",
            "p067-t0050",
            "p067-t0051",
            "p067-t0052",
            "p067-t0053",
            "p067-t0055",
            "p067-t0056",
            "p067-t0057",
            "p067-t0059",
            "p067-t0060",
            "p067-t0061",
            "p067-t0062",
            "p067-t0064",
            "p067-t0065",
            "p067-t0066",
            "p067-t0067",
            "p067-t0068",
            "p067-t0069",
            "p067-t0070",
            "p067-t0071",
            "p067-t0073",
            "p067-t0074",
            "p067-t0075",
            "p067-t0076",
            "p067-t0077",
            "p067-t0078",
            "p067-t0079",
            "p067-t0081",
            "p067-t0082",
            "p067-t0083",
            "p067-t0085",
            "p067-t0086",
            "p067-t0087",
            "p067-t0088",
            "p067-t0089",
            "p067-t0090",
            "p067-t0092"
          ],
          "operations": [],
          "id": "q-p067-h02-b001",
          "markdown_line": 40
        }
      ],
      "markdown_line": 36
    },
    {
      "id": "q-p067-h03",
      "title": "使用 Redis 有哪些好处？",
      "heading-id": "p067-h03",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h03",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 速度快，因为数据存在内存中，类似于 HashMap，HashMap 的优势就是查找和操作的时间复杂度都是 O1)",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0099",
            "p067-t0100",
            "p067-t0101",
            "p067-t0102",
            "p067-t0103",
            "p067-t0104",
            "p067-t0106",
            "p067-t0107",
            "p067-t0108"
          ],
          "operations": [],
          "id": "q-p067-h03-b001",
          "markdown_line": 46
        },
        {
          "kind": "prose",
          "text": "2. 支持丰富数据类型，支持 string，list，set，Zset，hash 等",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0109",
            "p067-t0110",
            "p067-t0111",
            "p067-t0112",
            "p067-t0113",
            "p067-t0114",
            "p067-t0115",
            "p067-t0116",
            "p067-t0117",
            "p067-t0118",
            "p067-t0119",
            "p067-t0120"
          ],
          "operations": [],
          "id": "q-p067-h03-b002",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "3. 支持事务，操作都是原子性，所谓的原子性就是对数据的更改要么全部执行，要么全部不执行",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0122",
            "p067-t0123",
            "p067-t0125"
          ],
          "operations": [],
          "id": "q-p067-h03-b003",
          "markdown_line": 50
        },
        {
          "kind": "prose",
          "text": "4. 丰富的特性：可用于缓存，消息，按 key 设置过期时间，过期后将会自动删除",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0127",
            "p067-t0128",
            "p067-t0129",
            "p067-t0130"
          ],
          "operations": [],
          "id": "q-p067-h03-b004",
          "markdown_line": 52
        }
      ],
      "markdown_line": 42
    },
    {
      "id": "q-p067-h04",
      "title": "Redis 相比 Memcached 有哪些优势？",
      "heading-id": "p067-h04",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h04",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Memcached 所有的值均是简单的字符串，redis 作为其替代者，支持更为丰富的数据类",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0137",
            "p067-t0138",
            "p067-t0139",
            "p067-t0140",
            "p067-t0142"
          ],
          "operations": [],
          "id": "q-p067-h04-b001",
          "markdown_line": 58
        },
        {
          "kind": "prose",
          "text": "2. Redis 的速度比 Memcached 快很",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0144",
            "p067-t0145",
            "p067-t0146",
            "p067-t0147"
          ],
          "operations": [],
          "id": "q-p067-h04-b002",
          "markdown_line": 60
        },
        {
          "kind": "prose",
          "text": "3. Redis 可以持久化其数据",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0149",
            "p067-t0150"
          ],
          "operations": [],
          "id": "q-p067-h04-b003",
          "markdown_line": 62
        }
      ],
      "markdown_line": 54
    },
    {
      "id": "q-p067-h05",
      "title": "Memcache 与 Redis 的区别都有哪些？",
      "heading-id": "p067-h05",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h05",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 存储方式 Memecache 把数据全部存在内存之中，断电后会挂掉，数据不能超过内存大小。 Redis有部份存在硬盘上，这样能保证数据的持久性。",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0158",
            "p067-t0159",
            "p067-t0160",
            "p067-t0161",
            "p067-t0163",
            "p067-t0164",
            "p067-t0165"
          ],
          "operations": [],
          "id": "q-p067-h05-b001",
          "markdown_line": 68
        },
        {
          "kind": "prose",
          "text": "2. 数据支持类型 Memcache 对数据类型支持相对简单。 Redis 有复杂的数据类型。",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0167",
            "p067-t0168",
            "p067-t0169",
            "p067-t0170",
            "p067-t0171",
            "p067-t0172",
            "p067-t0174"
          ],
          "operations": [],
          "id": "q-p067-h05-b002",
          "markdown_line": 70
        },
        {
          "kind": "prose",
          "text": "3. 使用底层模型不同它们之间底层实现方式以及与客户端之间通信的应用协议不一样。 Redis 直接自己构建了 VM 机制，因为一般的系统调用系统函数的话，会浪费一定的时间去移动和请求",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0176",
            "p067-t0177",
            "p067-t0179",
            "p067-t0181",
            "p067-t0183",
            "p067-t0184",
            "p067-t0185",
            "p067-t0186",
            "p067-t0187",
            "p067-t0188",
            "p067-t0190",
            "p067-t0192",
            "p067-t0194"
          ],
          "operations": [],
          "id": "q-p067-h05-b003",
          "markdown_line": 72
        }
      ],
      "markdown_line": 64
    },
    {
      "id": "q-p067-h06",
      "title": "Redis 是单进程单线程的",
      "heading-id": "p067-h06",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h06",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 是单进程单线程的，redis 利用队列技术将并发访问变为串行访问，消除了传统数据库串行控制的开销",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0200",
            "p067-t0201",
            "p067-t0202",
            "p067-t0203",
            "p067-t0205",
            "p067-t0207",
            "p067-t0208"
          ],
          "operations": [],
          "id": "q-p067-h06-b001",
          "markdown_line": 78
        }
      ],
      "markdown_line": 74
    },
    {
      "id": "q-p067-h07",
      "title": "一个字符串类型的值能存储最大容量是多少",
      "heading-id": "p067-h07",
      "source-page": 67,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p067-h07",
      "pages": [
        67
      ],
      "page-range": [
        67,
        67
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "513M",
          "language": null,
          "pages": [
            67
          ],
          "span_ids": [
            "p067-t0213"
          ],
          "operations": [],
          "id": "q-p067-h07-b001",
          "markdown_line": 84
        }
      ],
      "markdown_line": 80
    },
    {
      "id": "q-p068-h01",
      "title": "Redis 的持久化机制是什么？各自的优缺点？",
      "heading-id": "p068-h01",
      "source-page": 68,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p068-h01",
      "pages": [
        68
      ],
      "page-range": [
        68,
        68
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 提供两种持久化机制 RDB 和 AOF 机制： RDBRedis DataBase)持久化方式：是指用数据集快照的方式半持久化模式)记录 Redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件，持久化结束后，用这个临时文件替换上次持久化的文件，达到数据恢复。优点：",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0005",
            "p068-t0006",
            "p068-t0007",
            "p068-t0008",
            "p068-t0009",
            "p068-t0010",
            "p068-t0011",
            "p068-t0012",
            "p068-t0014",
            "p068-t0015",
            "p068-t0016",
            "p068-t0017",
            "p068-t0018",
            "p068-t0019",
            "p068-t0020",
            "p068-t0022",
            "p068-t0023",
            "p068-t0025",
            "p068-t0027"
          ],
          "operations": [],
          "id": "q-p068-h01-b001",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "1. 只有一个文件 dump.rdb，方便持久化。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0029",
            "p068-t0030",
            "p068-t0031",
            "p068-t0032"
          ],
          "operations": [],
          "id": "q-p068-h01-b002",
          "markdown_line": 92
        },
        {
          "kind": "prose",
          "text": "2. 容灾性好，一个文件可以保存到安全的磁盘。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0034",
            "p068-t0035"
          ],
          "operations": [],
          "id": "q-p068-h01-b003",
          "markdown_line": 94
        },
        {
          "kind": "prose",
          "text": "3. 性能最大化，fork 子进程来完成写操作，让主进程继续处理命令，所以是 IO 最大化。使用单独子进程来进行持久化，主进程不会进行任何 IO 操作，保证了 Redis 的高性能)",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0037",
            "p068-t0038",
            "p068-t0039",
            "p068-t0040",
            "p068-t0042",
            "p068-t0043",
            "p068-t0044",
            "p068-t0045",
            "p068-t0046",
            "p068-t0047",
            "p068-t0049",
            "p068-t0050",
            "p068-t0051",
            "p068-t0052"
          ],
          "operations": [],
          "id": "q-p068-h01-b004",
          "markdown_line": 96
        },
        {
          "kind": "prose",
          "text": "4. 相对于数据集大时，比 AOF 的启动效率更高。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0053",
            "p068-t0054",
            "p068-t0055",
            "p068-t0056"
          ],
          "operations": [],
          "id": "q-p068-h01-b005",
          "markdown_line": 98
        },
        {
          "kind": "prose",
          "text": "缺点：",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0058"
          ],
          "operations": [],
          "id": "q-p068-h01-b006",
          "markdown_line": 100
        },
        {
          "kind": "prose",
          "text": "1. 数据安全性低。RDB 是间隔一段时间进行持久化，如果持久化之间 Redis 发生故障，会发生数据丢失。所以这种方式更适合数据要求不严谨的时候。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0060",
            "p068-t0061",
            "p068-t0062",
            "p068-t0063",
            "p068-t0064",
            "p068-t0065",
            "p068-t0067",
            "p068-t0068"
          ],
          "operations": [],
          "id": "q-p068-h01-b007",
          "markdown_line": 102
        },
        {
          "kind": "prose",
          "text": "AOFAppend-only file)持久化方式：是指所有的命令行记录以 Redis 命令请求协议的格式完全持久化存储)保存为 aof 文件。优点：",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0070",
            "p068-t0071",
            "p068-t0073",
            "p068-t0074",
            "p068-t0075",
            "p068-t0076",
            "p068-t0077",
            "p068-t0078",
            "p068-t0079",
            "p068-t0081"
          ],
          "operations": [],
          "id": "q-p068-h01-b008",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "1. 数据安全，aof 持久化可以配置 appendfsync 属性，有 always，每进行一次命令操作就记录到aof 文件中一次。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0083",
            "p068-t0084",
            "p068-t0085",
            "p068-t0086",
            "p068-t0087",
            "p068-t0088",
            "p068-t0089",
            "p068-t0090",
            "p068-t0092",
            "p068-t0094",
            "p068-t0095"
          ],
          "operations": [],
          "id": "q-p068-h01-b009",
          "markdown_line": 106
        },
        {
          "kind": "prose",
          "text": "2. 通过 append 模式写文件，即使中途服务器宕机，可以通过 redis check-aof 工具解决数据一致性问题。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0097",
            "p068-t0098",
            "p068-t0099",
            "p068-t0100",
            "p068-t0101",
            "p068-t0102",
            "p068-t0103"
          ],
          "operations": [],
          "id": "q-p068-h01-b010",
          "markdown_line": 108
        },
        {
          "kind": "prose",
          "text": "3. AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前（文件过大时会对命令进行合并重写），可以删除其中的某些命令（比如误操作的 flushall）)",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0105",
            "p068-t0106",
            "p068-t0107",
            "p068-t0108",
            "p068-t0109",
            "p068-t0110",
            "p068-t0111",
            "p068-t0112",
            "p068-t0114",
            "p068-t0115",
            "p068-t0116",
            "p068-t0117",
            "p068-t0118"
          ],
          "operations": [],
          "id": "q-p068-h01-b011",
          "markdown_line": 110
        },
        {
          "kind": "prose",
          "text": "缺点：",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0119"
          ],
          "operations": [],
          "id": "q-p068-h01-b012",
          "markdown_line": 112
        },
        {
          "kind": "prose",
          "text": "1. AOF 文件比 RDB 文件大，且恢复速度慢。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0121",
            "p068-t0122",
            "p068-t0123",
            "p068-t0124"
          ],
          "operations": [],
          "id": "q-p068-h01-b013",
          "markdown_line": 114
        },
        {
          "kind": "prose",
          "text": "2. 数据集大的时候，比 rdb 启动效率低",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0126",
            "p068-t0127",
            "p068-t0128",
            "p068-t0129"
          ],
          "operations": [],
          "id": "q-p068-h01-b014",
          "markdown_line": 116
        }
      ],
      "markdown_line": 86
    },
    {
      "id": "q-p068-h02",
      "title": "Redis 常见性能问题和解决方案：",
      "heading-id": "p068-h02",
      "source-page": 68,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p068-h02",
      "pages": [
        68
      ],
      "page-range": [
        68,
        68
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Master 最好不要写内存快照，如果 Master 写内存快照，save 命令调度 rdbSave 函数，会阻塞主线程的工作，当快照比较大时对性能影响是非常大的，会间断性暂停服务",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0135",
            "p068-t0136",
            "p068-t0137",
            "p068-t0138",
            "p068-t0139",
            "p068-t0140",
            "p068-t0141",
            "p068-t0142",
            "p068-t0143",
            "p068-t0145"
          ],
          "operations": [],
          "id": "q-p068-h02-b001",
          "markdown_line": 122
        },
        {
          "kind": "prose",
          "text": "2. 如果数据比较重要，某个 Slave 开启 AOF 备份数据，策略设置为每秒同步一（",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0147",
            "p068-t0148",
            "p068-t0149",
            "p068-t0150",
            "p068-t0151",
            "p068-t0152",
            "p068-t0154",
            "p068-t0156"
          ],
          "operations": [],
          "id": "q-p068-h02-b002",
          "markdown_line": 124
        },
        {
          "kind": "prose",
          "text": "3. 为了主从复制的速度和连接的稳定性，Master 和 Slave 最好在同一个局域网",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0157",
            "p068-t0158",
            "p068-t0159",
            "p068-t0160",
            "p068-t0161",
            "p068-t0162",
            "p068-t0164"
          ],
          "operations": [],
          "id": "q-p068-h02-b003",
          "markdown_line": 126
        },
        {
          "kind": "prose",
          "text": "4. 尽量避免在压力很大的主库上增加从",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0166",
            "p068-t0167"
          ],
          "operations": [],
          "id": "q-p068-h02-b004",
          "markdown_line": 128
        },
        {
          "kind": "prose",
          "text": "5. 主从复制不要用图状结构，用单向链表结构更为稳定，即：Master <- Slave1<- Slave2 <- Slave3…这样的结构方便解决单点故障问题，实现 Slave 对 Master 的替换。如果 Master 挂了，可以立刻启用 Slave1 做 Master，其他不变。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0169",
            "p068-t0170",
            "p068-t0171",
            "p068-t0172",
            "p068-t0173",
            "p068-t0174",
            "p068-t0175",
            "p068-t0176",
            "p068-t0177",
            "p068-t0178",
            "p068-t0179",
            "p068-t0180",
            "p068-t0181",
            "p068-t0182",
            "p068-t0183",
            "p068-t0185"
          ],
          "operations": [],
          "id": "q-p068-h02-b005",
          "markdown_line": 130
        }
      ],
      "markdown_line": 118
    },
    {
      "id": "q-p068-h03",
      "title": "Redis 过期键的删除策略？、",
      "heading-id": "p068-h03",
      "source-page": 68,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p068-h03",
      "pages": [
        68,
        69
      ],
      "page-range": [
        68,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 定时删除:在设置键的过期时间的同时，创建一个定时器 timer). 让定时器在键的过期时间来临时，立即执行对键的删除操作。",
          "language": null,
          "pages": [
            68
          ],
          "span_ids": [
            "p068-t0192",
            "p068-t0193",
            "p068-t0194",
            "p068-t0195",
            "p068-t0196",
            "p068-t0197",
            "p068-t0199",
            "p068-t0200"
          ],
          "operations": [],
          "id": "q-p068-h03-b001",
          "markdown_line": 136
        },
        {
          "kind": "prose",
          "text": "2. 惰性删除:放任键过期不管，但是每次从键空间中获取键时，都检查取得的键是否过期，如果过期的话，就删除该键;如果没有过期，就返回该键。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0001",
            "p069-t0002",
            "p069-t0003",
            "p069-t0004",
            "p069-t0006",
            "p069-t0007",
            "p069-t0008",
            "p069-t0009"
          ],
          "operations": [],
          "id": "q-p068-h03-b002",
          "markdown_line": 138
        },
        {
          "kind": "prose",
          "text": "3. 定期删除:每隔一段时间程序就对数据库进行一次检查，删除里面的过期键。至于要删除多少过期键，以及要检查多少个数据库，则由算法决定。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0011",
            "p069-t0012",
            "p069-t0013",
            "p069-t0014",
            "p069-t0016",
            "p069-t0017"
          ],
          "operations": [],
          "id": "q-p068-h03-b003",
          "markdown_line": 140
        }
      ],
      "markdown_line": 132
    },
    {
      "id": "q-p069-h01",
      "title": "Redis 的回收策略（淘汰策略）?",
      "heading-id": "p069-h01",
      "source-page": 69,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p069-h01",
      "pages": [
        69
      ],
      "page-range": [
        69,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. volatile-lru：从已设置过期时间的数据集（server.db[i].expires）中挑选最近最少使用的数据淘汰",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0023",
            "p069-t0024",
            "p069-t0025",
            "p069-t0026",
            "p069-t0028"
          ],
          "operations": [],
          "id": "q-p069-h01-b001",
          "markdown_line": 146
        },
        {
          "kind": "prose",
          "text": "2. volatile-ttl：从已设置过期时间的数据集（server.db[i].expires）中挑选将要过期的数据淘汰",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0030",
            "p069-t0031",
            "p069-t0032",
            "p069-t0033",
            "p069-t0035"
          ],
          "operations": [],
          "id": "q-p069-h01-b002",
          "markdown_line": 148
        },
        {
          "kind": "prose",
          "text": "3. volatile-random：从已设置过期时间的数据集（server.db[i].expires）中任意选择数据淘汰",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0037",
            "p069-t0038",
            "p069-t0039",
            "p069-t0040",
            "p069-t0042"
          ],
          "operations": [],
          "id": "q-p069-h01-b003",
          "markdown_line": 150
        },
        {
          "kind": "prose",
          "text": "4. allkeys-lru：从数据集（server.db[i].dict）中挑选最近最少使用的数据淘汰",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0044",
            "p069-t0045",
            "p069-t0046",
            "p069-t0047",
            "p069-t0049"
          ],
          "operations": [],
          "id": "q-p069-h01-b004",
          "markdown_line": 152
        },
        {
          "kind": "prose",
          "text": "5. allkeys-random：从数据集（server.db[i].dict）中任意选择数据淘汰",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0051",
            "p069-t0052",
            "p069-t0053",
            "p069-t0054"
          ],
          "operations": [],
          "id": "q-p069-h01-b005",
          "markdown_line": 154
        },
        {
          "kind": "prose",
          "text": "6. no-enviction（驱逐）：禁止驱逐数据注意这里的 6 种机制，volatile 和 allkeys 规定了是对已设置过期时间的数据集淘汰数据还是从全部数据集淘汰数据，后面的 lru、ttl 以及 random 是三种不同的淘汰策略，再加上一种 no-enviction 永不回收的策略。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0055",
            "p069-t0056",
            "p069-t0058",
            "p069-t0059",
            "p069-t0060",
            "p069-t0061",
            "p069-t0062",
            "p069-t0063",
            "p069-t0064",
            "p069-t0065",
            "p069-t0067",
            "p069-t0068",
            "p069-t0069",
            "p069-t0070",
            "p069-t0071",
            "p069-t0072",
            "p069-t0073",
            "p069-t0075",
            "p069-t0076",
            "p069-t0077",
            "p069-t0078"
          ],
          "operations": [],
          "id": "q-p069-h01-b006",
          "markdown_line": 156
        },
        {
          "kind": "subheading",
          "text": "使用策略规则：",
          "span_ids": [
            "p069-t0080"
          ],
          "pages": [
            69
          ],
          "id": "q-p069-h01-b007",
          "markdown_line": 158
        },
        {
          "kind": "prose",
          "text": "1. 如果数据呈现幂律分布，也就是一部分数据访问频率高，一部分数据访问频率低，则使用 allkeys-lr",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0083",
            "p069-t0084",
            "p069-t0086",
            "p069-t0087",
            "p069-t0088"
          ],
          "operations": [],
          "id": "q-p069-h01-b008",
          "markdown_line": 160
        },
        {
          "kind": "prose",
          "text": "2. 如果数据呈现平等分布，也就是所有的数据访问频率都相同，则使用 allkeys-random",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0089",
            "p069-t0090",
            "p069-t0091"
          ],
          "operations": [],
          "id": "q-p069-h01-b009",
          "markdown_line": 162
        }
      ],
      "markdown_line": 142
    },
    {
      "id": "q-p069-h03",
      "title": "为什么 Redis 需要把所有数据放到内存中？",
      "heading-id": "p069-h03",
      "source-page": 69,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p069-h03",
      "pages": [
        69
      ],
      "page-range": [
        69,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Redis 为了达到最快的读写速度将数据都读到内存中，并通过异步的方式将数据写入磁盘。所以Redis 具有快速和数据持久化的特征。如果不将数据放在内存中，磁盘 I/O 速度为严重影响 Redis的性能。在内存越来越便宜的今天， Redis 将会越来越受欢迎。如果设置了最大使用的内存，则数据已有记录数达到内存限值后不能继续插入新值。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0097",
            "p069-t0098",
            "p069-t0100",
            "p069-t0102",
            "p069-t0104",
            "p069-t0105",
            "p069-t0107",
            "p069-t0109",
            "p069-t0110",
            "p069-t0111",
            "p069-t0112",
            "p069-t0113",
            "p069-t0115",
            "p069-t0116",
            "p069-t0117",
            "p069-t0118",
            "p069-t0120",
            "p069-t0122"
          ],
          "operations": [],
          "id": "q-p069-h03-b001",
          "markdown_line": 168
        }
      ],
      "markdown_line": 164
    },
    {
      "id": "q-p069-h04",
      "title": "Redis 的同步机制了解么？",
      "heading-id": "p069-h04",
      "source-page": 69,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p069-h04",
      "pages": [
        69
      ],
      "page-range": [
        69,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Redis 可以使用主从同步，从从同步。第一次同步时，主节点做一次 bgsave，并同时将后续修改操作记录到内存 buffer，待完成后将 rdb 文件全量同步到复制节点，复制节点接受完成后将 rdb镜像加载到内存。加载完成后，再通知主节点将期间修改的操作记录同步到复制节点进行重放就完成了同步过程。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0128",
            "p069-t0129",
            "p069-t0130",
            "p069-t0131",
            "p069-t0133",
            "p069-t0134",
            "p069-t0135",
            "p069-t0136",
            "p069-t0137",
            "p069-t0138",
            "p069-t0140",
            "p069-t0142",
            "p069-t0143",
            "p069-t0144",
            "p069-t0146",
            "p069-t0148",
            "p069-t0149"
          ],
          "operations": [],
          "id": "q-p069-h04-b001",
          "markdown_line": 174
        }
      ],
      "markdown_line": 170
    },
    {
      "id": "q-p069-h05",
      "title": "Pipeline 有什么好处，为什么要用 Pipeline？",
      "heading-id": "p069-h05",
      "source-page": 69,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p069-h05",
      "pages": [
        69
      ],
      "page-range": [
        69,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "可以将多次 IO 往返的时间缩减为一次，前提是 pipeline 执行的指令之间没有因果相关性。使用 Redis-benchmark 进行压测的时候可以发现影响 Redis 的 QPS 峰值的一个重要因素是 pipeline 批次指令的数目。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0157",
            "p069-t0158",
            "p069-t0159",
            "p069-t0160",
            "p069-t0161",
            "p069-t0163",
            "p069-t0165",
            "p069-t0166",
            "p069-t0167",
            "p069-t0168",
            "p069-t0169",
            "p069-t0170",
            "p069-t0171",
            "p069-t0172",
            "p069-t0173",
            "p069-t0174",
            "p069-t0175"
          ],
          "operations": [],
          "id": "q-p069-h05-b001",
          "markdown_line": 180
        }
      ],
      "markdown_line": 176
    },
    {
      "id": "q-p069-h06",
      "title": "是否使用过 Redis 集群，集群的原理是什么？",
      "heading-id": "p069-h06",
      "source-page": 69,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p069-h06",
      "pages": [
        69
      ],
      "page-range": [
        69,
        69
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Redis Sentinal 着眼于高可用，在 master 宕机时会自动将 slave 提升为 master，继续提供服务。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0182",
            "p069-t0183",
            "p069-t0184",
            "p069-t0185",
            "p069-t0186",
            "p069-t0187",
            "p069-t0189",
            "p069-t0190",
            "p069-t0191"
          ],
          "operations": [],
          "id": "q-p069-h06-b001",
          "markdown_line": 186
        },
        {
          "kind": "prose",
          "text": "2. Redis Cluster 着眼于扩展性，在单个 Redis 内存不足时，使用 Cluster 进行分片存储。",
          "language": null,
          "pages": [
            69
          ],
          "span_ids": [
            "p069-t0193",
            "p069-t0194",
            "p069-t0195",
            "p069-t0196",
            "p069-t0197",
            "p069-t0198"
          ],
          "operations": [],
          "id": "q-p069-h06-b002",
          "markdown_line": 188
        }
      ],
      "markdown_line": 182
    },
    {
      "id": "q-p070-h01",
      "title": "Redis 集群方案什么情况下会导致整个集群不可用？",
      "heading-id": "p070-h01",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h01",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "有 A，B，C 三个节点的集群,在没有复制模型的情况下,如果节点 B 失败了，那么整个集群就会以为缺少5501-11000 这个范围的槽而不可用。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0005",
            "p070-t0006",
            "p070-t0007",
            "p070-t0008",
            "p070-t0009",
            "p070-t0010",
            "p070-t0011",
            "p070-t0012",
            "p070-t0013",
            "p070-t0014",
            "p070-t0015",
            "p070-t0016",
            "p070-t0017",
            "p070-t0019",
            "p070-t0021",
            "p070-t0022"
          ],
          "operations": [],
          "id": "q-p070-h01-b001",
          "markdown_line": 194
        }
      ],
      "markdown_line": 190
    },
    {
      "id": "q-p070-h02",
      "title": "Redis 如何设置密码及验证密码？",
      "heading-id": "p070-h02",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h02",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "设置密码：config set requirepass 123456授权密码：auth 123456",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0027",
            "p070-t0028",
            "p070-t0029",
            "p070-t0030"
          ],
          "operations": [],
          "id": "q-p070-h02-b001",
          "markdown_line": 200
        }
      ],
      "markdown_line": 196
    },
    {
      "id": "q-p070-h03",
      "title": "说说 Redis 哈希槽的概念？",
      "heading-id": "p070-h03",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h03",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念，Redis 集群有 16384 个哈希槽，每个 key通过 CRC16 校验后对 16384 取模来决定放置哪个槽，集群的每个节点负责一部分 hash 槽。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0036",
            "p070-t0037",
            "p070-t0038",
            "p070-t0039",
            "p070-t0040",
            "p070-t0041",
            "p070-t0043",
            "p070-t0044",
            "p070-t0045",
            "p070-t0046",
            "p070-t0047",
            "p070-t0048",
            "p070-t0049",
            "p070-t0050",
            "p070-t0051",
            "p070-t0053",
            "p070-t0055",
            "p070-t0056",
            "p070-t0057"
          ],
          "operations": [],
          "id": "q-p070-h03-b001",
          "markdown_line": 206
        }
      ],
      "markdown_line": 202
    },
    {
      "id": "q-p070-h04",
      "title": "Redis 集群的主从复制模型是怎样的？",
      "heading-id": "p070-h04",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h04",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用，所以集群使用了主从复制模型,每个节点都会有 N-1 个复制品。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0063",
            "p070-t0065",
            "p070-t0067",
            "p070-t0068",
            "p070-t0069",
            "p070-t0070",
            "p070-t0071"
          ],
          "operations": [],
          "id": "q-p070-h04-b001",
          "markdown_line": 212
        }
      ],
      "markdown_line": 208
    },
    {
      "id": "q-p070-h05",
      "title": "Redis 集群会有写操作丢失吗？为什么？",
      "heading-id": "p070-h05",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h05",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 并不能保证数据的强一致性，这意味这在实际中集群在特定的条件下可能会丢失写操作。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0076",
            "p070-t0077",
            "p070-t0079",
            "p070-t0081"
          ],
          "operations": [],
          "id": "q-p070-h05-b001",
          "markdown_line": 218
        }
      ],
      "markdown_line": 214
    },
    {
      "id": "q-p070-h06",
      "title": "Redis 集群之间是如何复制的？",
      "heading-id": "p070-h06",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h06",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "异步复制",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0087"
          ],
          "operations": [],
          "id": "q-p070-h06-b001",
          "markdown_line": 224
        }
      ],
      "markdown_line": 220
    },
    {
      "id": "q-p070-h07",
      "title": "Redis 集群最大节点个数是多少？",
      "heading-id": "p070-h07",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h07",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "16384 个。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0093",
            "p070-t0094"
          ],
          "operations": [],
          "id": "q-p070-h07-b001",
          "markdown_line": 230
        }
      ],
      "markdown_line": 226
    },
    {
      "id": "q-p070-h08",
      "title": "Redis 集群如何选择数据库？",
      "heading-id": "p070-h08",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h08",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 集群目前无法做数据库选择，默认在 0 数据库。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0100",
            "p070-t0101",
            "p070-t0102",
            "p070-t0103"
          ],
          "operations": [],
          "id": "q-p070-h08-b001",
          "markdown_line": 236
        }
      ],
      "markdown_line": 232
    },
    {
      "id": "q-p070-h09",
      "title": "怎么测试 Redis 的连通性",
      "heading-id": "p070-h09",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h09",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "使用 ping 命令。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0109",
            "p070-t0110",
            "p070-t0111"
          ],
          "operations": [],
          "id": "q-p070-h09-b001",
          "markdown_line": 242
        }
      ],
      "markdown_line": 238
    },
    {
      "id": "q-p070-h10",
      "title": "怎么理解 Redis 事务？",
      "heading-id": "p070-h10",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h10",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 事务是一个单独的隔离操作：事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中，不会被其他客户端发送来的命令请求所打断。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0117",
            "p070-t0118",
            "p070-t0120",
            "p070-t0121"
          ],
          "operations": [],
          "id": "q-p070-h10-b001",
          "markdown_line": 248
        },
        {
          "kind": "prose",
          "text": "2. 事务是一个原子操作：事务中的命令要么全部被执行，要么全部都不执行。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0123",
            "p070-t0124",
            "p070-t0126"
          ],
          "operations": [],
          "id": "q-p070-h10-b002",
          "markdown_line": 250
        }
      ],
      "markdown_line": 244
    },
    {
      "id": "q-p070-h11",
      "title": "Redis 事务相关的命令有哪几个？",
      "heading-id": "p070-h11",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h11",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "MULTI、EXEC、DISCARD、WATCH",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0131",
            "p070-t0132",
            "p070-t0133",
            "p070-t0134",
            "p070-t0135",
            "p070-t0136",
            "p070-t0137"
          ],
          "operations": [],
          "id": "q-p070-h11-b001",
          "markdown_line": 256
        }
      ],
      "markdown_line": 252
    },
    {
      "id": "q-p070-h12",
      "title": "Redis key 的过期时间和永久有效分别怎么设置？",
      "heading-id": "p070-h12",
      "source-page": 70,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p070-h12",
      "pages": [
        70
      ],
      "page-range": [
        70,
        70
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "EXPIRE 和 PERSIST 命令。",
          "language": null,
          "pages": [
            70
          ],
          "span_ids": [
            "p070-t0142",
            "p070-t0143",
            "p070-t0144",
            "p070-t0145"
          ],
          "operations": [],
          "id": "q-p070-h12-b001",
          "markdown_line": 262
        }
      ],
      "markdown_line": 258
    },
    {
      "id": "q-p071-h01",
      "title": "Redis 如何做内存优化？",
      "heading-id": "p071-h01",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h01",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "尽可能使用散列表（hashes），散列表（是说散列表里面存储的数少）使用的内存非常小，所以你应该尽可能的将你的数据模型抽象到一个散列表里面。比如你的 web 系统中有一个用户对象，不要为这个用户的名称，姓氏，邮箱，密码设置单独的 key,而是应该把这个用户的所有信息存储到一张散列表里面。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0005",
            "p071-t0006",
            "p071-t0007",
            "p071-t0009",
            "p071-t0010",
            "p071-t0012",
            "p071-t0013",
            "p071-t0014",
            "p071-t0015",
            "p071-t0017",
            "p071-t0018",
            "p071-t0019"
          ],
          "operations": [],
          "id": "q-p071-h01-b001",
          "markdown_line": 268
        }
      ],
      "markdown_line": 264
    },
    {
      "id": "q-p071-h02",
      "title": "Redis 回收进程如何工作的？",
      "heading-id": "p071-h02",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h02",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一个客户端运行了新的命令，添加了新的数据。Redi 检查内存使用情况，如果大于 maxmemory 的限制, 则根据设定好的策略进行回收。一个新的命令被执行，等等。所以我们不断地穿越内存限制的边界，通过不断达到边界然后不断地回收回到边界以下。如果一个命令的结果导致大量内存被使用（例如很大的集合的交集保存到一个新的键），不用多久内存限制就会被这个内存使用量超越。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0025",
            "p071-t0026",
            "p071-t0027",
            "p071-t0029",
            "p071-t0031",
            "p071-t0032",
            "p071-t0033",
            "p071-t0034",
            "p071-t0035",
            "p071-t0036",
            "p071-t0038",
            "p071-t0040",
            "p071-t0041",
            "p071-t0043",
            "p071-t0045",
            "p071-t0046",
            "p071-t0048",
            "p071-t0050",
            "p071-t0052"
          ],
          "operations": [],
          "id": "q-p071-h02-b001",
          "markdown_line": 274
        }
      ],
      "markdown_line": 270
    },
    {
      "id": "q-p071-h03",
      "title": "都有哪些办法可以降低 Redis 的内存使用情况呢？",
      "heading-id": "p071-h03",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h03",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果你使用的是 32 位的 Redis 实例，可以好好利用 Hash,list,sorted set,set 等集合类型数据，因为通常情况下很多小的 Key-Value 可以用更紧凑的方式存放到一起。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0058",
            "p071-t0059",
            "p071-t0060",
            "p071-t0061",
            "p071-t0062",
            "p071-t0063",
            "p071-t0064",
            "p071-t0065",
            "p071-t0066",
            "p071-t0067",
            "p071-t0069"
          ],
          "operations": [],
          "id": "q-p071-h03-b001",
          "markdown_line": 280
        }
      ],
      "markdown_line": 276
    },
    {
      "id": "q-p071-h04",
      "title": "Redis 的内存用完了会发生什么？",
      "heading-id": "p071-h04",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h04",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果达到设置的上限，Redis 的写命令会返回错误信息（但是读命令还可以正常返回。）或者你可以将Redis 当缓存来使用配置淘汰机制，当 Redis 达到内存上限时会冲刷掉旧的内容。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0075",
            "p071-t0076",
            "p071-t0077",
            "p071-t0079",
            "p071-t0081",
            "p071-t0083",
            "p071-t0084",
            "p071-t0085",
            "p071-t0086",
            "p071-t0088"
          ],
          "operations": [],
          "id": "q-p071-h04-b001",
          "markdown_line": 286
        }
      ],
      "markdown_line": 282
    },
    {
      "id": "q-p071-h05",
      "title": "一个 Redis 实例最多能存放多少的 keys？",
      "heading-id": "p071-h05",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h05",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "List、Set、 Sorted Set 他们最多能存放多少元素？理论上 Redis 可以处理多达 2的32次方的 keys，并且在实际中进行了测试，每个实例至少存放了 2 亿 5 千万的 keys。我们正在测试一些较大的值。任何list、 set、和 sorted set 都可以放 232 个元素。换句话说，Redis 的存储极限是系统中的可用内存值。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0097",
            "p071-t0098",
            "p071-t0099",
            "p071-t0100",
            "p071-t0101",
            "p071-t0102",
            "p071-t0104",
            "p071-t0105",
            "p071-t0106",
            "p071-t0107",
            "p071-t0108",
            "p071-t0109",
            "p071-t0110",
            "p071-t0112",
            "p071-t0113",
            "p071-t0114",
            "p071-t0115",
            "p071-t0117",
            "p071-t0118",
            "p071-t0119",
            "p071-t0120",
            "p071-t0121",
            "p071-t0122",
            "p071-t0123",
            "p071-t0125",
            "p071-t0126",
            "p071-t0127",
            "p071-t0128",
            "p071-t0129",
            "p071-t0130",
            "p071-t0131",
            "p071-t0132",
            "p071-t0133",
            "p071-t0134",
            "p071-t0136"
          ],
          "operations": [],
          "id": "q-p071-h05-b001",
          "markdown_line": 292
        }
      ],
      "markdown_line": 288
    },
    {
      "id": "q-p071-h06",
      "title": "MySQL 里有 2000w 数据，Redis 中只存 20w 的数据，如何保证 Redis 中的数据都是热点数据？",
      "heading-id": "p071-h06",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h06",
      "pages": [
        71
      ],
      "page-range": [
        71,
        71
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 内存数据集大小上升到一定大小的时候，就会施行数据淘汰策略。相关知识：Redis 提供 6 种数据淘汰策略： volatile-lru：从已设置过期时间的数据集（server.db[i].expires）中挑选最近最少使用的数据淘汰volatile-ttl：从已设置过期时间的数据集（server.db[i].expires）中挑选将要过期的数据淘汰volatile-random：从已设置过期时间的数据集（server.db[i].expires）中任意选择数据淘汰allkeys-lru：从数据集（server.db[i].dict）中挑选最近最少使用的数据淘汰allkeys-random：从数据集（server.db[i].dict）中任意选择数据淘汰no-enviction（驱逐）：禁止驱逐数据",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0151",
            "p071-t0152",
            "p071-t0154",
            "p071-t0156",
            "p071-t0157",
            "p071-t0158",
            "p071-t0159",
            "p071-t0160",
            "p071-t0161",
            "p071-t0163",
            "p071-t0164",
            "p071-t0165",
            "p071-t0166",
            "p071-t0168",
            "p071-t0170",
            "p071-t0171",
            "p071-t0172",
            "p071-t0173",
            "p071-t0175",
            "p071-t0177",
            "p071-t0178",
            "p071-t0179",
            "p071-t0180",
            "p071-t0182",
            "p071-t0184",
            "p071-t0185",
            "p071-t0186",
            "p071-t0187",
            "p071-t0189",
            "p071-t0191",
            "p071-t0192",
            "p071-t0193",
            "p071-t0194",
            "p071-t0196",
            "p071-t0197"
          ],
          "operations": [],
          "id": "q-p071-h06-b001",
          "markdown_line": 298
        }
      ],
      "markdown_line": 294
    },
    {
      "id": "q-p071-h07",
      "title": "Redis 最适合的场景？",
      "heading-id": "p071-h07",
      "source-page": 71,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p071-h07",
      "pages": [
        71,
        72
      ],
      "page-range": [
        71,
        72
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 会话缓存（Session Cache）最常用的一种使用 Redis 的情景是会话缓存（session cache）。用Redis 缓存会话比其他存储（如 Memcached）的优势在于：Redis 提供持久化。当维护一个不是严格要求一致性的缓存时，如果用户的购物车信息全部丢失，大部分人都会不高兴的，现在，他们还会这样吗？幸运的是，随着 Redis 这些年的改进，很容易找到怎么恰当的使用 Redis 来缓存会话的文档。甚至广为人知的商业平台 Magento 也提供 Redis 的插件。",
          "language": null,
          "pages": [
            71
          ],
          "span_ids": [
            "p071-t0202",
            "p071-t0203",
            "p071-t0204",
            "p071-t0205",
            "p071-t0207",
            "p071-t0208",
            "p071-t0209",
            "p071-t0210",
            "p071-t0211",
            "p071-t0213",
            "p071-t0214",
            "p071-t0216",
            "p071-t0217",
            "p071-t0218",
            "p071-t0219",
            "p071-t0220",
            "p071-t0222",
            "p071-t0223",
            "p071-t0225",
            "p071-t0226",
            "p071-t0228",
            "p071-t0229",
            "p071-t0230",
            "p071-t0232",
            "p071-t0233",
            "p071-t0234",
            "p071-t0235",
            "p071-t0237",
            "p071-t0238",
            "p071-t0239",
            "p071-t0240",
            "p071-t0241"
          ],
          "operations": [],
          "id": "q-p071-h07-b001",
          "markdown_line": 304
        },
        {
          "kind": "prose",
          "text": "2. 全页缓存（FPC）除基本的会话 token 之外，Redis 还提供很简便的 FPC 平台。回到一致性问题，即使重启了 Redis 实例，因为有磁盘的持久化，用户也不会看到页面加载速度的下降，这是一个极大改进，类似 PHP 本地 FPC。再次以 Magento 为例，Magento 提供一个插件来使用 Redis 作为全页缓存后端。此外，对 WordPress 的用户来说，Pantheon 有一个非常好的插件 wp-redis，这个插件能帮助你以最快速度加载你曾浏览过的页面。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0001",
            "p072-t0002",
            "p072-t0003",
            "p072-t0004",
            "p072-t0006",
            "p072-t0007",
            "p072-t0008",
            "p072-t0009",
            "p072-t0010",
            "p072-t0011",
            "p072-t0012",
            "p072-t0014",
            "p072-t0015",
            "p072-t0016",
            "p072-t0017",
            "p072-t0019",
            "p072-t0020",
            "p072-t0021",
            "p072-t0022",
            "p072-t0023",
            "p072-t0024",
            "p072-t0026",
            "p072-t0027",
            "p072-t0028",
            "p072-t0030",
            "p072-t0031",
            "p072-t0032",
            "p072-t0033",
            "p072-t0034",
            "p072-t0035",
            "p072-t0037",
            "p072-t0038",
            "p072-t0039",
            "p072-t0040",
            "p072-t0041",
            "p072-t0042",
            "p072-t0043",
            "p072-t0044",
            "p072-t0046"
          ],
          "operations": [],
          "id": "q-p071-h07-b002",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "3. 队列 Redis 在内存存储引擎领域的一大优点是提供 list 和 set 操作，这使得 Redis 能作为一个很好的消息队列平台来使用。Redis 作为队列使用的操作，就类似于本地程序语言（如 Python）对 list的 push/pop 操作。如果你快速的在 Google 中搜索“Redis queues”，你马上就能找到大量的开源项目，这些项目的目的就是利用 Redis 创建非常好的后端工具，以满足各种队列需求。例如， Celery 有一个后台就是使用 Redis 作为 broker，你可以从这里去查看。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0048",
            "p072-t0049",
            "p072-t0050",
            "p072-t0051",
            "p072-t0052",
            "p072-t0053",
            "p072-t0054",
            "p072-t0055",
            "p072-t0056",
            "p072-t0057",
            "p072-t0058",
            "p072-t0059",
            "p072-t0060",
            "p072-t0062",
            "p072-t0063",
            "p072-t0064",
            "p072-t0065",
            "p072-t0066",
            "p072-t0067",
            "p072-t0068",
            "p072-t0070",
            "p072-t0072",
            "p072-t0073",
            "p072-t0074",
            "p072-t0075",
            "p072-t0076",
            "p072-t0077",
            "p072-t0079",
            "p072-t0080",
            "p072-t0081",
            "p072-t0083",
            "p072-t0084",
            "p072-t0085",
            "p072-t0086",
            "p072-t0087",
            "p072-t0088",
            "p072-t0089",
            "p072-t0091"
          ],
          "operations": [],
          "id": "q-p071-h07-b003",
          "markdown_line": 308
        },
        {
          "kind": "prose",
          "text": "4. 排行榜/计数器 Redis 在内存中对数字进行递增或递减的操作实现的非常好。集合（Set）和有序集合（Sorted Set）也使得我们在执行这些操作的时候变的非常简单，Redis 只是正好提供了这两种数据结构。所以，我们要从排序集合中获取到排名最靠前的 10 个用户–我们称之为“user_scores”，我们只需要像下面一样执行即可：当然，这是假定你是根据你用户的分数做递增的排序。如果你想返回用户及用户的分数，你需要这样执行： ZRANGE user_scores 0 10 WITHSCORES Agora Games 就是一个很好的例子，用 Ruby 实现的，它的排行榜就是使用 Redis来存储数据的，你可以在这里看到。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0093",
            "p072-t0094",
            "p072-t0095",
            "p072-t0096",
            "p072-t0097",
            "p072-t0098",
            "p072-t0099",
            "p072-t0100",
            "p072-t0102",
            "p072-t0103",
            "p072-t0104",
            "p072-t0105",
            "p072-t0106",
            "p072-t0107",
            "p072-t0108",
            "p072-t0110",
            "p072-t0111",
            "p072-t0112",
            "p072-t0113",
            "p072-t0114",
            "p072-t0115",
            "p072-t0116",
            "p072-t0118",
            "p072-t0120",
            "p072-t0121",
            "p072-t0123",
            "p072-t0124",
            "p072-t0125",
            "p072-t0126",
            "p072-t0127",
            "p072-t0128",
            "p072-t0129",
            "p072-t0130"
          ],
          "operations": [],
          "id": "q-p071-h07-b004",
          "markdown_line": 310
        },
        {
          "kind": "prose",
          "text": "5. 发布/订阅最后（但肯定不是最不重要的）是 Redis 的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们在社交网络连接中使用，还可作为基于发布/订阅的脚本触发器，甚至用Redis 的发布/订阅功能来建立聊天系统！",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0132",
            "p072-t0133",
            "p072-t0134",
            "p072-t0135",
            "p072-t0137",
            "p072-t0138",
            "p072-t0139",
            "p072-t0140",
            "p072-t0141",
            "p072-t0142",
            "p072-t0143",
            "p072-t0145",
            "p072-t0146",
            "p072-t0147",
            "p072-t0148",
            "p072-t0150",
            "p072-t0152",
            "p072-t0153",
            "p072-t0154",
            "p072-t0155"
          ],
          "operations": [],
          "id": "q-p071-h07-b005",
          "markdown_line": 312
        }
      ],
      "markdown_line": 300
    },
    {
      "id": "q-p072-h01",
      "title": "假如 Redis 里面有 1 亿个 key，其中有 10w 个 key 是以某个固定的已知的前缀开头的，如果将它们全部找出来？",
      "heading-id": "p072-h01",
      "source-page": 72,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p072-h01",
      "pages": [
        72
      ],
      "page-range": [
        72,
        72
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "使用 keys 指令可以扫出指定模式的 key 列表。对方接着追问：如果这个 Redis 正在给线上的业务提供服务，那使用 keys 指令会有什么问题？这个时候你要回答 Redis 关键的一个特性：Redis 的单线程的。keys 指令会导致线程阻塞一段时间，线上服务会停顿，直到指令执行完毕，服务才能恢复。这个时候可以使用 scan 指令，scan 指令可以无阻塞的提取出指定模式的 70 key 列表，但是会有一定的重复概率，在客户端做一次去重就可以了，但是整体所花费的时间会比直接用 keys 指令长。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0171",
            "p072-t0172",
            "p072-t0173",
            "p072-t0174",
            "p072-t0175",
            "p072-t0177",
            "p072-t0178",
            "p072-t0179",
            "p072-t0180",
            "p072-t0181",
            "p072-t0182",
            "p072-t0184",
            "p072-t0186",
            "p072-t0187",
            "p072-t0188",
            "p072-t0189",
            "p072-t0190",
            "p072-t0191",
            "p072-t0192",
            "p072-t0193",
            "p072-t0195",
            "p072-t0197",
            "p072-t0198",
            "p072-t0199",
            "p072-t0200",
            "p072-t0201",
            "p072-t0202",
            "p072-t0203",
            "p072-t0204",
            "p072-t0205",
            "p072-t0207",
            "p072-t0208",
            "p072-t0209"
          ],
          "operations": [],
          "id": "q-p072-h01-b001",
          "markdown_line": 318
        }
      ],
      "markdown_line": 314
    },
    {
      "id": "q-p072-h02",
      "title": "如果有大量的 key 需要设置同一时间过期，一般需要注意什么？",
      "heading-id": "p072-h02",
      "source-page": 72,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p072-h02",
      "pages": [
        72
      ],
      "page-range": [
        72,
        72
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果大量的 key 过期时间设置的过于集中，到过期的那个时间点，Redis 可能会出现短暂的卡顿现象。一般需要在时间上加一个随机值，使得过期时间分散一些。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0218",
            "p072-t0219",
            "p072-t0220",
            "p072-t0221",
            "p072-t0222",
            "p072-t0224",
            "p072-t0225",
            "p072-t0227",
            "p072-t0229"
          ],
          "operations": [],
          "id": "q-p072-h02-b001",
          "markdown_line": 324
        }
      ],
      "markdown_line": 320
    },
    {
      "id": "q-p072-h03",
      "title": "使用过 Redis 做异步队列么，你是怎么用的？",
      "heading-id": "p072-h03",
      "source-page": 72,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p072-h03",
      "pages": [
        72
      ],
      "page-range": [
        72,
        72
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一般使用 list 结构作为队列，rpush 生产消息，lpop 消费消息。当 lpop 没有消息的时候，要适当 sleep一会再重试。如果对方追问可不可以不用 sleep 呢？ list 还有个指令叫 blpop，在没有消息的时候，它会阻塞住直到消息到来。如果对方追问能不能生产一次消费多次呢？使用 pub/sub 主题订阅者模式，可以实现 1:N 的消息队列。如果对方追问 pub/sub 有什么缺点？在消费者下线的情况下，生产的消息会丢失，得使用专业的消息队列如 RabbitMQ 等。如果对方追问 Redis 如何实现延时队列？使用 sortedset，拿时间戳作为 score，消息内容作为 key 调用 zadd 来生产消息，消费者用zrangebyscore 指令获取 N 秒之前的数据轮询进行处理。",
          "language": null,
          "pages": [
            72
          ],
          "span_ids": [
            "p072-t0235",
            "p072-t0236",
            "p072-t0237",
            "p072-t0238",
            "p072-t0239",
            "p072-t0240",
            "p072-t0241",
            "p072-t0242",
            "p072-t0243",
            "p072-t0245",
            "p072-t0246",
            "p072-t0247",
            "p072-t0249",
            "p072-t0251",
            "p072-t0252",
            "p072-t0253",
            "p072-t0255",
            "p072-t0256",
            "p072-t0257",
            "p072-t0258",
            "p072-t0260",
            "p072-t0262",
            "p072-t0264",
            "p072-t0265",
            "p072-t0266",
            "p072-t0268",
            "p072-t0269",
            "p072-t0270",
            "p072-t0272",
            "p072-t0273",
            "p072-t0274",
            "p072-t0276",
            "p072-t0277",
            "p072-t0278",
            "p072-t0280",
            "p072-t0281",
            "p072-t0282",
            "p072-t0284",
            "p072-t0285",
            "p072-t0286",
            "p072-t0288",
            "p072-t0289",
            "p072-t0290",
            "p072-t0291",
            "p072-t0292",
            "p072-t0293",
            "p072-t0294",
            "p072-t0296",
            "p072-t0297",
            "p072-t0298",
            "p072-t0299"
          ],
          "operations": [],
          "id": "q-p072-h03-b001",
          "markdown_line": 330
        }
      ],
      "markdown_line": 326
    },
    {
      "id": "q-p073-h01",
      "title": "使用过 Redis 分布式锁么，它是什么回事先拿",
      "heading-id": "p073-h01",
      "source-page": 73,
      "section": "redis",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p073-h01",
      "pages": [
        73
      ],
      "page-range": [
        73,
        73
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "setnx 来争抢锁，抢到之后，再用 expire 给锁加一个过期时间防止锁忘记了释放。这时候对方会告诉你说你回答得不错，然后接着问如果在 setnx 之后执行 expire 之前进程意外 crash 或者要重启维护了，那会怎么样？可以同时把 setnx 和 expire 合成一条指令来用的！",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0008",
            "p073-t0009",
            "p073-t0010",
            "p073-t0011",
            "p073-t0013",
            "p073-t0015",
            "p073-t0016",
            "p073-t0017",
            "p073-t0018",
            "p073-t0019",
            "p073-t0020",
            "p073-t0021",
            "p073-t0022",
            "p073-t0023",
            "p073-t0024",
            "p073-t0025",
            "p073-t0026",
            "p073-t0027"
          ],
          "operations": [],
          "id": "q-p073-h01-b001",
          "markdown_line": 336
        }
      ],
      "markdown_line": 332
    },
    {
      "id": "q-p073-h03",
      "title": "据库三大范式是什么",
      "heading-id": "p073-h03",
      "source-page": 73,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p073-h03",
      "pages": [
        73
      ],
      "page-range": [
        73,
        73
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 第一范式：每个列都不可以再拆分。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0033",
            "p073-t0034"
          ],
          "operations": [],
          "id": "q-p073-h03-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "2. 第二范式：在第一范式的基础上，非主键列完全依赖于主键，而不能是依赖于主键的一部分。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0036",
            "p073-t0037",
            "p073-t0039"
          ],
          "operations": [],
          "id": "q-p073-h03-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "3. 第三范式：在第二范式的基础上，非主键列只依赖于主键，不依赖于其他非主键。在设计数据库结构的时候，要尽量遵守三范式，如果不遵守，必须有足够的理由。比如性能。事实上我们经常会为了性能而妥协数据库的设计。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0040",
            "p073-t0041",
            "p073-t0043",
            "p073-t0045",
            "p073-t0046",
            "p073-t0048",
            "p073-t0049"
          ],
          "operations": [],
          "id": "q-p073-h03-b003",
          "markdown_line": 16
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p073-h04",
      "title": "MySQL 有关权限的表都有哪几个？",
      "heading-id": "p073-h04",
      "source-page": 73,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p073-h04",
      "pages": [
        73
      ],
      "page-range": [
        73,
        73
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "MySQL 服务器通过权限表来控制用户对数据库的访问，权限表存放在 MySQL 数据库里，由mysql_install_db 脚本初始化。这些权限表分别 user，db， table_priv，columns_priv 和 host。下面分别介绍一下这些表的结构和内容：",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0055",
            "p073-t0056",
            "p073-t0057",
            "p073-t0058",
            "p073-t0060",
            "p073-t0062",
            "p073-t0063",
            "p073-t0064",
            "p073-t0065",
            "p073-t0066",
            "p073-t0067",
            "p073-t0068",
            "p073-t0069",
            "p073-t0070",
            "p073-t0071",
            "p073-t0072",
            "p073-t0073",
            "p073-t0074"
          ],
          "operations": [],
          "id": "q-p073-h04-b001",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "1. user 权限表：记录允许连接到服务器的用户帐号信息，里面的权限是全局级的。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0076",
            "p073-t0077",
            "p073-t0079"
          ],
          "operations": [],
          "id": "q-p073-h04-b002",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "2. db 权限表：记录各个帐号在各个数据库上的操作权限。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0081",
            "p073-t0082"
          ],
          "operations": [],
          "id": "q-p073-h04-b003",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "3. table_priv 权限表：记录数据表级的操作权限。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0084",
            "p073-t0085"
          ],
          "operations": [],
          "id": "q-p073-h04-b004",
          "markdown_line": 28
        },
        {
          "kind": "prose",
          "text": "4. columns_priv 权限表：记录数据列级的操作权限。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0087",
            "p073-t0088"
          ],
          "operations": [],
          "id": "q-p073-h04-b005",
          "markdown_line": 30
        },
        {
          "kind": "prose",
          "text": "5. host 权限表：配合 db 权限表对给定主机上数据库级操作权限作更细致的控制。这个权限表不受GRANT 和 REVOKE 语句的影响。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0090",
            "p073-t0091",
            "p073-t0092",
            "p073-t0093",
            "p073-t0095",
            "p073-t0097",
            "p073-t0098",
            "p073-t0099",
            "p073-t0100"
          ],
          "operations": [],
          "id": "q-p073-h04-b006",
          "markdown_line": 32
        }
      ],
      "markdown_line": 18
    },
    {
      "id": "q-p073-h05",
      "title": "MySQL 的 Binlog 有有几种录入格式？分别有什么区别？",
      "heading-id": "p073-h05",
      "source-page": 73,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p073-h05",
      "pages": [
        73
      ],
      "page-range": [
        73,
        73
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "有三种格式，statement，row 和 mixed。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0108",
            "p073-t0109",
            "p073-t0110",
            "p073-t0111",
            "p073-t0112",
            "p073-t0113",
            "p073-t0114"
          ],
          "operations": [],
          "id": "q-p073-h05-b001",
          "markdown_line": 38
        },
        {
          "kind": "prose",
          "text": "1. statement 模式下，每一条会修改数据的 SQL 都会记录在 Binlog 中。不需要记录每一行的变化，减少了 Binlog 日志量，节约了 IO，提高性能。由于 sql 的执行是有上下文的，因此在保存的时候需要保存相关的信息，同时还有一些使用了函数之类的语句无法被记录复制。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0116",
            "p073-t0117",
            "p073-t0118",
            "p073-t0119",
            "p073-t0120",
            "p073-t0121",
            "p073-t0123",
            "p073-t0124",
            "p073-t0125",
            "p073-t0126",
            "p073-t0127",
            "p073-t0128",
            "p073-t0129",
            "p073-t0130",
            "p073-t0131",
            "p073-t0133"
          ],
          "operations": [],
          "id": "q-p073-h05-b002",
          "markdown_line": 40
        },
        {
          "kind": "prose",
          "text": "2. row 级别下，不记录 SQL 语句上下文相关信息，仅保存哪条记录被修改。记录单元为每一行的改动，基本是可以全部记下来但是由于很多操作，会导致大量行的改动(比如 alter table)，因此这种模式的文件保存的信息太多，日志量太大。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0135",
            "p073-t0136",
            "p073-t0137",
            "p073-t0138",
            "p073-t0140",
            "p073-t0141",
            "p073-t0143",
            "p073-t0144",
            "p073-t0145",
            "p073-t0146",
            "p073-t0147",
            "p073-t0148",
            "p073-t0150"
          ],
          "operations": [],
          "id": "q-p073-h05-b003",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "3. mixed，一种折中的方案，普通操作使用 statement 记录，当无法使用 statement 的时候使用 row",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0152",
            "p073-t0153",
            "p073-t0154",
            "p073-t0155",
            "p073-t0156",
            "p073-t0157",
            "p073-t0158"
          ],
          "operations": [],
          "id": "q-p073-h05-b004",
          "markdown_line": 44
        }
      ],
      "markdown_line": 34
    },
    {
      "id": "q-p073-h06",
      "title": "MySQL 存储引擎 MyISAM 与 InnoDB 区别",
      "heading-id": "p073-h06",
      "source-page": 73,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p073-h06",
      "pages": [
        73,
        74
      ],
      "page-range": [
        73,
        74
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 锁粒度方面：由于锁粒度不同，InnoDB 比 MyISAM 支持更高的并发;InnoDB 的锁粒度为行锁、 MyISAM 的锁粒度为表锁、行锁需要对每一行进行加锁， 73 所以锁的开销更大，但是能解决脏读和不可重复读的问题，相对来说也更容易发生死锁",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0167",
            "p073-t0168",
            "p073-t0169",
            "p073-t0170",
            "p073-t0171",
            "p073-t0172",
            "p073-t0173",
            "p073-t0174",
            "p073-t0175",
            "p073-t0176",
            "p073-t0177",
            "p073-t0178",
            "p073-t0179",
            "p073-t0181"
          ],
          "operations": [],
          "id": "q-p073-h06-b001",
          "markdown_line": 50
        },
        {
          "kind": "prose",
          "text": "2. 可恢复性上：由于 InnoDB 是有事务日志的，所以在产生由于数据库崩溃等条件后，可以根据日志文件进行恢复。而 MyISAM 则没有事务日志。",
          "language": null,
          "pages": [
            73
          ],
          "span_ids": [
            "p073-t0183",
            "p073-t0184",
            "p073-t0185",
            "p073-t0186",
            "p073-t0188",
            "p073-t0189",
            "p073-t0190",
            "p073-t0191"
          ],
          "operations": [],
          "id": "q-p073-h06-b002",
          "markdown_line": 52
        },
        {
          "kind": "prose",
          "text": "3. 查询性能上:MylSAM 要优于 InnoDB 因为 InnoDB 在查询过程中，是需要维护数据缓存，而且查询过程是先定位到行所在的数据块，然后在从数据块中定位到要查找的行;而 MyISAM 可以直接定位到数据所在的内存地址，可以直接找到数据。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0001",
            "p074-t0002",
            "p074-t0003",
            "p074-t0004",
            "p074-t0005",
            "p074-t0006",
            "p074-t0007",
            "p074-t0008",
            "p074-t0010",
            "p074-t0011",
            "p074-t0013",
            "p074-t0014",
            "p074-t0015",
            "p074-t0016",
            "p074-t0017",
            "p074-t0018",
            "p074-t0020"
          ],
          "operations": [],
          "id": "q-p073-h06-b003",
          "markdown_line": 54
        },
        {
          "kind": "prose",
          "text": "4. 表结构文件上:MyISAM 的表结构文件包括:frm(表结构定义),.MYI(索引),.MYD(数据);而 InnoDB 的表数据文件为:ibd 和 frm(表结构定义)。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0022",
            "p074-t0023",
            "p074-t0024",
            "p074-t0025",
            "p074-t0026",
            "p074-t0027",
            "p074-t0028",
            "p074-t0029",
            "p074-t0031",
            "p074-t0032",
            "p074-t0033",
            "p074-t0034",
            "p074-t0035",
            "p074-t0036",
            "p074-t0037",
            "p074-t0038",
            "p074-t0039",
            "p074-t0040",
            "p074-t0041",
            "p074-t0042",
            "p074-t0043",
            "p074-t0044"
          ],
          "operations": [],
          "id": "q-p073-h06-b004",
          "markdown_line": 56
        }
      ],
      "markdown_line": 46
    },
    {
      "id": "q-p074-h01",
      "title": "MyISAM 索引与 InnoDB 索引的区别？",
      "heading-id": "p074-h01",
      "source-page": 74,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p074-h01",
      "pages": [
        74
      ],
      "page-range": [
        74,
        74
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. InnoDB 索引是聚簇索引，MyISAM 索引是非聚簇索引。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0052",
            "p074-t0053",
            "p074-t0054",
            "p074-t0055"
          ],
          "operations": [],
          "id": "q-p074-h01-b001",
          "markdown_line": 62
        },
        {
          "kind": "prose",
          "text": "2. InnoDB 的主键索引的叶子节点存储着行数据，因此主键索引非常高效。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0057",
            "p074-t0058"
          ],
          "operations": [],
          "id": "q-p074-h01-b002",
          "markdown_line": 64
        },
        {
          "kind": "prose",
          "text": "3. MyISAM 索引的叶子节点存储的是行数据地址，需要再寻址一次才能得到数据。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0060",
            "p074-t0061",
            "p074-t0063"
          ],
          "operations": [],
          "id": "q-p074-h01-b003",
          "markdown_line": 66
        },
        {
          "kind": "prose",
          "text": "4. InnoDB 非主键索引的叶子节点存储的是主键和其他带索引的列数据，因此查询时做到覆盖索引会非常高效。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0065",
            "p074-t0066",
            "p074-t0068",
            "p074-t0069"
          ],
          "operations": [],
          "id": "q-p074-h01-b004",
          "markdown_line": 68
        }
      ],
      "markdown_line": 58
    },
    {
      "id": "q-p074-h02",
      "title": "什么是索引",
      "heading-id": "p074-h02",
      "source-page": 74,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p074-h02",
      "pages": [
        74
      ],
      "page-range": [
        74,
        74
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "索引是一种特殊的文件(InnoDB 数据表上的索引是表空间的一个组成部分)，它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引，是数据库管理系统中一个排序的数据结构，以协助快速查询、更新数据库表中数据。索引的实现通常使用 B 树及其变种 B+树。更通俗的说，索引就相当于目录。为了方便查找书中的内容，通过对内容建立索引形成目录。索引是一个文件，它是要占据物理空间的。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0075",
            "p074-t0076",
            "p074-t0077",
            "p074-t0078",
            "p074-t0079",
            "p074-t0081",
            "p074-t0082",
            "p074-t0084",
            "p074-t0086",
            "p074-t0087",
            "p074-t0088",
            "p074-t0089",
            "p074-t0091",
            "p074-t0092",
            "p074-t0093",
            "p074-t0095",
            "p074-t0096",
            "p074-t0098",
            "p074-t0099"
          ],
          "operations": [],
          "id": "q-p074-h02-b001",
          "markdown_line": 74
        }
      ],
      "markdown_line": 70
    },
    {
      "id": "q-p074-h03",
      "title": "索引有哪些优缺点",
      "heading-id": "p074-h03",
      "source-page": 74,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p074-h03",
      "pages": [
        74
      ],
      "page-range": [
        74,
        74
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "索引的优点",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0105"
          ],
          "operations": [],
          "id": "q-p074-h03-b001",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "1. 可以大大加快数据的检索速度，这也是创建索引的最主要的原因。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0107",
            "p074-t0108"
          ],
          "operations": [],
          "id": "q-p074-h03-b002",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "2. 通过使用索引，可以在查询的过程中，使用优化隐藏器，提高系统的性能。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0110",
            "p074-t0111",
            "p074-t0113"
          ],
          "operations": [],
          "id": "q-p074-h03-b003",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "索引的缺点",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0115"
          ],
          "operations": [],
          "id": "q-p074-h03-b004",
          "markdown_line": 86
        },
        {
          "kind": "prose",
          "text": "1. 时间方面：创建索引和维护索引要耗费时间，具体地，当对表中的数据进行增加、删除和修改的时候，索引也要动态的维护，会降低增/改/删的执行效率；",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0117",
            "p074-t0118",
            "p074-t0120",
            "p074-t0121",
            "p074-t0122",
            "p074-t0123",
            "p074-t0124",
            "p074-t0125",
            "p074-t0127"
          ],
          "operations": [],
          "id": "q-p074-h03-b005",
          "markdown_line": 88
        },
        {
          "kind": "prose",
          "text": "2. 空间方面：索引需要占物理空间",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0129",
            "p074-t0130"
          ],
          "operations": [],
          "id": "q-p074-h03-b006",
          "markdown_line": 90
        }
      ],
      "markdown_line": 76
    },
    {
      "id": "q-p074-h04",
      "title": "索引有哪几种类型？",
      "heading-id": "p074-h04",
      "source-page": 74,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p074-h04",
      "pages": [
        74,
        75
      ],
      "page-range": [
        74,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "主键索引:数据列不允许重复，不允许为 NULL，一个表只能有一个主键。唯一索引:数据列不允许重复，允许为 NULL 值，一个表允许多个列创建唯一索引。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0135",
            "p074-t0136",
            "p074-t0137",
            "p074-t0138",
            "p074-t0139",
            "p074-t0141",
            "p074-t0142",
            "p074-t0143",
            "p074-t0144",
            "p074-t0145"
          ],
          "operations": [],
          "id": "q-p074-h04-b001",
          "markdown_line": 96
        },
        {
          "kind": "prose",
          "text": "1. 可以通过 ALTER TABLE table_name ADD UNIQUE (column); 创建唯一索引。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0147",
            "p074-t0148",
            "p074-t0149",
            "p074-t0150",
            "p074-t0152"
          ],
          "operations": [],
          "id": "q-p074-h04-b002",
          "markdown_line": 98
        },
        {
          "kind": "prose",
          "text": "2. 可以通过 ALTER TABLE table_name ADD UNIQUE (column1,column2); 创建唯一组合索引。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0154",
            "p074-t0155",
            "p074-t0156",
            "p074-t0157",
            "p074-t0159"
          ],
          "operations": [],
          "id": "q-p074-h04-b003",
          "markdown_line": 100
        },
        {
          "kind": "prose",
          "text": "普通索引:基本的索引类型，没有唯一性的限制，允许为 NULL 值。",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0161",
            "p074-t0162",
            "p074-t0163",
            "p074-t0164",
            "p074-t0165"
          ],
          "operations": [],
          "id": "q-p074-h04-b004",
          "markdown_line": 102
        },
        {
          "kind": "prose",
          "text": "1. 可以通过 ALTER TABLE table_name ADD INDEX index_name (column);创建普通索引",
          "language": null,
          "pages": [
            74
          ],
          "span_ids": [
            "p074-t0167",
            "p074-t0168",
            "p074-t0169",
            "p074-t0170",
            "p074-t0172"
          ],
          "operations": [],
          "id": "q-p074-h04-b005",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "2. 可以通过 ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);创建组合索引。全文索引：是目前搜索引擎使用的一种关键技术。",
          "language": null,
          "pages": [
            74,
            75
          ],
          "span_ids": [
            "p074-t0174",
            "p074-t0175",
            "p074-t0176",
            "p074-t0177",
            "p074-t0178",
            "p075-t0001",
            "p075-t0003"
          ],
          "operations": [],
          "id": "q-p074-h04-b006",
          "markdown_line": 106
        },
        {
          "kind": "prose",
          "text": "1. 可以通过 ALTER TABLE table_name ADD FULLTEXT (column);创建全文索引。",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0005",
            "p075-t0006",
            "p075-t0007",
            "p075-t0008"
          ],
          "operations": [],
          "id": "q-p074-h04-b007",
          "markdown_line": 108
        }
      ],
      "markdown_line": 92
    },
    {
      "id": "q-p075-h01",
      "title": "MySQL 中有哪几种锁？",
      "heading-id": "p075-h01",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h01",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 表级锁：开销小，加锁快；不会出现死锁；锁定粒度大，发生锁冲突的概率最高，并发度最低。",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0014",
            "p075-t0015",
            "p075-t0017"
          ],
          "operations": [],
          "id": "q-p075-h01-b001",
          "markdown_line": 114
        },
        {
          "kind": "prose",
          "text": "2. 行级锁：开销大，加锁慢；会出现死锁；锁定粒度最小，发生锁冲突的概率最低，并发度也最高。",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0019",
            "p075-t0020",
            "p075-t0022"
          ],
          "operations": [],
          "id": "q-p075-h01-b002",
          "markdown_line": 116
        },
        {
          "kind": "prose",
          "text": "3. 页面锁：开销和加锁时间界于表锁和行锁之间；会出现死锁；锁定粒度界于表锁和行锁之间，并发度一般。",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0024",
            "p075-t0025",
            "p075-t0027",
            "p075-t0028"
          ],
          "operations": [],
          "id": "q-p075-h01-b003",
          "markdown_line": 118
        }
      ],
      "markdown_line": 110
    },
    {
      "id": "q-p075-h02",
      "title": "MySQL 中 InnoDB 支持的四种事务隔离级别名称，以及逐级之间的区别？",
      "heading-id": "p075-h02",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h02",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. SQL 标准定义的四个隔离级别为：",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0039",
            "p075-t0040"
          ],
          "operations": [],
          "id": "q-p075-h02-b001",
          "markdown_line": 124
        },
        {
          "kind": "prose",
          "text": "2. read uncommited：读到未提交数据",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0042",
            "p075-t0043"
          ],
          "operations": [],
          "id": "q-p075-h02-b002",
          "markdown_line": 126
        },
        {
          "kind": "prose",
          "text": "3. read committed：脏读，不可重复读",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0045",
            "p075-t0046"
          ],
          "operations": [],
          "id": "q-p075-h02-b003",
          "markdown_line": 128
        },
        {
          "kind": "prose",
          "text": "4. repeatable read：可重读",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0048",
            "p075-t0049"
          ],
          "operations": [],
          "id": "q-p075-h02-b004",
          "markdown_line": 130
        },
        {
          "kind": "prose",
          "text": "5. serializable：串行事物",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0051",
            "p075-t0052"
          ],
          "operations": [],
          "id": "q-p075-h02-b005",
          "markdown_line": 132
        }
      ],
      "markdown_line": 120
    },
    {
      "id": "q-p075-h03",
      "title": "char 和 varchar 的区别？",
      "heading-id": "p075-h03",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h03",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. char 和 varchar 类型在存储和检索方面有所不同",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0060",
            "p075-t0061",
            "p075-t0062",
            "p075-t0063"
          ],
          "operations": [],
          "id": "q-p075-h03-b001",
          "markdown_line": 138
        },
        {
          "kind": "prose",
          "text": "2. char 列长度固定为创建表时声明的长度，长度值范围是 1 到 255",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0065",
            "p075-t0066",
            "p075-t0067",
            "p075-t0068",
            "p075-t0069"
          ],
          "operations": [],
          "id": "q-p075-h03-b002",
          "markdown_line": 140
        },
        {
          "kind": "prose",
          "text": "3. 当 char 值被存储时，它们被用空格填充到特定长度，检索 char 值时需删除尾随空格。",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0070",
            "p075-t0071",
            "p075-t0072",
            "p075-t0073",
            "p075-t0074",
            "p075-t0075",
            "p075-t0077"
          ],
          "operations": [],
          "id": "q-p075-h03-b003",
          "markdown_line": 142
        }
      ],
      "markdown_line": 134
    },
    {
      "id": "q-p075-h04",
      "title": "主键和候选键有什么区别？",
      "heading-id": "p075-h04",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h04",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "表格的每一行都由主键唯一标识,一个表只有一个主键。主键也是候选键。按照惯例，候选键可以被指定为主键，并且可以用于任何外键引用",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0083",
            "p075-t0084",
            "p075-t0085",
            "p075-t0087",
            "p075-t0088",
            "p075-t0090"
          ],
          "operations": [],
          "id": "q-p075-h04-b001",
          "markdown_line": 148
        }
      ],
      "markdown_line": 144
    },
    {
      "id": "q-p075-h05",
      "title": "如何在 Unix 和 MySQL 时间戳之间进行转换？",
      "heading-id": "p075-h05",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h05",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "UNIX_TIMESTAMP 是从 MySQL 时间戳转换为 Unix 时间戳的命令 FROM_UNIXTIME 是从 Unix 时间戳转换为 MySQL 时间戳的命令",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0099",
            "p075-t0100",
            "p075-t0101",
            "p075-t0102",
            "p075-t0103",
            "p075-t0104",
            "p075-t0105",
            "p075-t0106",
            "p075-t0107",
            "p075-t0108",
            "p075-t0109",
            "p075-t0110",
            "p075-t0111"
          ],
          "operations": [],
          "id": "q-p075-h05-b001",
          "markdown_line": 154
        }
      ],
      "markdown_line": 150
    },
    {
      "id": "q-p075-h06",
      "title": "MyISAM 表类型将在哪里存储，并且还提供其存储格式？",
      "heading-id": "p075-h06",
      "source-page": 75,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p075-h06",
      "pages": [
        75
      ],
      "page-range": [
        75,
        75
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "每个 MyISAM 表格以三种格式存储在磁盘上：",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0117",
            "p075-t0118",
            "p075-t0119"
          ],
          "operations": [],
          "id": "q-p075-h06-b001",
          "markdown_line": 160
        },
        {
          "kind": "prose",
          "text": "1. “.frm”文件存储表定义",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0120",
            "p075-t0121",
            "p075-t0123"
          ],
          "operations": [],
          "id": "q-p075-h06-b002",
          "markdown_line": 162
        },
        {
          "kind": "prose",
          "text": "2. 数据文件具有“.MYD”（MYData）扩展名",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0124",
            "p075-t0125",
            "p075-t0126",
            "p075-t0127",
            "p075-t0128",
            "p075-t0129"
          ],
          "operations": [],
          "id": "q-p075-h06-b003",
          "markdown_line": 164
        },
        {
          "kind": "prose",
          "text": "3. 索引文件具有“.MYI”（MYIndex）扩展名",
          "language": null,
          "pages": [
            75
          ],
          "span_ids": [
            "p075-t0131",
            "p075-t0132",
            "p075-t0133",
            "p075-t0134",
            "p075-t0135",
            "p075-t0136"
          ],
          "operations": [],
          "id": "q-p075-h06-b004",
          "markdown_line": 166
        }
      ],
      "markdown_line": 156
    },
    {
      "id": "q-p076-h01",
      "title": "MySQL 里记录货币用什么字段类型好",
      "heading-id": "p076-h01",
      "source-page": 76,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p076-h01",
      "pages": [
        76
      ],
      "page-range": [
        76,
        76
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "NUMERIC 和 DECIMAL 类型被 MySQL 实现为同样的类型，这在 SQL92 标准允许。他们被用于保存值，该值的准确精度是极其重要的值，例如与金钱有关的数据。当声明一个类是这些类型之一时，精度和规模的能被(并且通常是)指定。例如： salary DECIMAL(9,2) 在这个例子中，9(precision)代表将被用于存储值的总的小数位数，而 2(scale)代表将被用于存储小数点后的位数。因此，在这种情况下，能被存储在 salary 列中的值的范围是从-9999999.99 到 9999999.99。",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0005",
            "p076-t0006",
            "p076-t0007",
            "p076-t0008",
            "p076-t0009",
            "p076-t0010",
            "p076-t0011",
            "p076-t0012",
            "p076-t0014",
            "p076-t0015",
            "p076-t0017",
            "p076-t0018",
            "p076-t0019",
            "p076-t0020",
            "p076-t0021",
            "p076-t0022",
            "p076-t0024",
            "p076-t0025",
            "p076-t0026",
            "p076-t0027",
            "p076-t0028",
            "p076-t0029",
            "p076-t0030",
            "p076-t0031",
            "p076-t0033",
            "p076-t0034",
            "p076-t0035",
            "p076-t0036",
            "p076-t0037",
            "p076-t0038",
            "p076-t0039",
            "p076-t0040"
          ],
          "operations": [],
          "id": "q-p076-h01-b001",
          "markdown_line": 172
        }
      ],
      "markdown_line": 168
    },
    {
      "id": "q-p076-h02",
      "title": "创建索引时需要注意什么？",
      "heading-id": "p076-h02",
      "source-page": 76,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p076-h02",
      "pages": [
        76
      ],
      "page-range": [
        76,
        76
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 非空字段：应该指定列为 NOT NULL，除非你想存储 NULL。在 MySQL 中，含有空值的列很难进行查询优化，因为它们使得索引、索引的统计信息以及比较运算更加复杂。应该用 0、一个特殊的值或者一个空串代替空值；",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0045",
            "p076-t0046",
            "p076-t0047",
            "p076-t0048",
            "p076-t0049",
            "p076-t0050",
            "p076-t0051",
            "p076-t0052",
            "p076-t0054",
            "p076-t0055",
            "p076-t0057",
            "p076-t0058",
            "p076-t0059",
            "p076-t0060"
          ],
          "operations": [],
          "id": "q-p076-h02-b001",
          "markdown_line": 178
        },
        {
          "kind": "prose",
          "text": "2. 取值离散大的字段：（变量各个取值之间的差异程度）的列放到联合索引的前面，可以通过count()函数查看字段的差异值，返回值越大说明字段的唯一值越多字段的离散程度高；",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0062",
            "p076-t0063",
            "p076-t0065",
            "p076-t0067",
            "p076-t0068",
            "p076-t0070"
          ],
          "operations": [],
          "id": "q-p076-h02-b002",
          "markdown_line": 180
        },
        {
          "kind": "prose",
          "text": "3. 索引字段越小越好：数据库的数据存储以页为单位一页存储的数据越多一次 I/O 操作获取的数据越大效率越高",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0072",
            "p076-t0073",
            "p076-t0075",
            "p076-t0076",
            "p076-t0077",
            "p076-t0078"
          ],
          "operations": [],
          "id": "q-p076-h02-b003",
          "markdown_line": 182
        }
      ],
      "markdown_line": 174
    },
    {
      "id": "q-p076-h03",
      "title": "使用索引查询一定能提高查询的性能吗？为什么",
      "heading-id": "p076-h03",
      "source-page": 76,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p076-h03",
      "pages": [
        76
      ],
      "page-range": [
        76,
        76
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "通常，通过索引查询数据比全表扫描要快。但是我们也必须注意到它的代价。索引需要空间来存储，也需要定期维护，每当有记录在表中增减或索引列被修改时，索引本身也会被修改。这意味着每条记录的INSERT，DELETE，UPDATE 将为此多付出 4，5 次的磁盘 I/O。因为索引需要额外的存储空间和处理，那些不必要的索引反而会使查询反应时间变慢。使用索引查询不一定能提高查询性能，索引范围查询(INDEX RANGE SCAN)适用于两种情况:",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0083",
            "p076-t0085",
            "p076-t0086",
            "p076-t0088",
            "p076-t0090",
            "p076-t0092",
            "p076-t0094",
            "p076-t0095",
            "p076-t0096",
            "p076-t0097",
            "p076-t0098",
            "p076-t0099",
            "p076-t0100",
            "p076-t0101",
            "p076-t0102",
            "p076-t0103",
            "p076-t0104",
            "p076-t0105",
            "p076-t0107",
            "p076-t0108",
            "p076-t0110",
            "p076-t0112",
            "p076-t0113",
            "p076-t0114",
            "p076-t0115"
          ],
          "operations": [],
          "id": "q-p076-h03-b001",
          "markdown_line": 188
        },
        {
          "kind": "prose",
          "text": "1. 基于一个范围的检索，一般查询返回结果集小于表中记录数的 30%",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0116",
            "p076-t0117",
            "p076-t0118"
          ],
          "operations": [],
          "id": "q-p076-h03-b002",
          "markdown_line": 190
        },
        {
          "kind": "prose",
          "text": "2. 基于非唯一性索引的检索",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0119",
            "p076-t0120"
          ],
          "operations": [],
          "id": "q-p076-h03-b003",
          "markdown_line": 192
        }
      ],
      "markdown_line": 184
    },
    {
      "id": "q-p076-h04",
      "title": "百万级别或以上的数据如何删除",
      "heading-id": "p076-h04",
      "source-page": 76,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p076-h04",
      "pages": [
        76
      ],
      "page-range": [
        76,
        76
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "关于索引：由于索引需要额外的维护成本，因为索引文件是单独存在的文件,所以当我们对数据的增加,修改,删除,都会产生额外的对索引文件的操作,这些操作需要消耗额外的 IO,会降低增/改/删的执行效率。所以，在我们删除数据库百万级别数据的时候，查询 MySQL 官方手册得知删除数据的速度和创建的索引数量是成正比的。",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0125",
            "p076-t0126",
            "p076-t0127",
            "p076-t0129",
            "p076-t0130",
            "p076-t0131",
            "p076-t0132",
            "p076-t0133",
            "p076-t0134",
            "p076-t0135",
            "p076-t0136",
            "p076-t0137",
            "p076-t0138",
            "p076-t0140",
            "p076-t0141",
            "p076-t0142",
            "p076-t0143",
            "p076-t0144",
            "p076-t0145",
            "p076-t0146",
            "p076-t0147",
            "p076-t0149",
            "p076-t0150",
            "p076-t0151",
            "p076-t0153"
          ],
          "operations": [],
          "id": "q-p076-h04-b001",
          "markdown_line": 198
        },
        {
          "kind": "prose",
          "text": "1. 所以我们想要删除百万数据的时候可以先删除索引（此时大概耗时三分多钟）",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0155",
            "p076-t0156",
            "p076-t0158"
          ],
          "operations": [],
          "id": "q-p076-h04-b002",
          "markdown_line": 200
        },
        {
          "kind": "prose",
          "text": "2. 然后删除其中无用数据（此过程需要不到两分钟）",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0160",
            "p076-t0161"
          ],
          "operations": [],
          "id": "q-p076-h04-b003",
          "markdown_line": 202
        },
        {
          "kind": "prose",
          "text": "3. 删除完成后重新创建索引(此时数据较少了)创建索引也非常快，约十分钟左右。",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0163",
            "p076-t0164",
            "p076-t0165",
            "p076-t0166",
            "p076-t0167",
            "p076-t0168",
            "p076-t0170"
          ],
          "operations": [],
          "id": "q-p076-h04-b004",
          "markdown_line": 204
        },
        {
          "kind": "prose",
          "text": "4. 与之前的直接删除绝对是要快速很多，更别说万一删除中断,一切删除会回滚。那更是坑了。",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0172",
            "p076-t0173",
            "p076-t0174",
            "p076-t0175",
            "p076-t0177"
          ],
          "operations": [],
          "id": "q-p076-h04-b005",
          "markdown_line": 206
        }
      ],
      "markdown_line": 194
    },
    {
      "id": "q-p076-h05",
      "title": "什么是最左前缀原则？什么是最左匹配原则",
      "heading-id": "p076-h05",
      "source-page": 76,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p076-h05",
      "pages": [
        76
      ],
      "page-range": [
        76,
        76
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "顾名思义，就是最左优先，在创建多列索引时，要根据业务需求，where 子句中使用最频繁的一列放在最左边。最左前缀匹配原则，非常重要的原则，MySQL 会一直向右匹配直到遇到范围查询(>、<、 between、like)就停止匹配，比如 a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引，d是用不到索引的，如果建立 (a,b,d,c)的索引则都可以用到，a,b,d 的顺序可以任意调整。 =和 in 可以乱序，比如 a = 1 and b = 2 and c = 3 建立(a,b,c)索引可以任意顺序，MySQL 的查询优化器会帮你优化成索引可以识别的形式。",
          "language": null,
          "pages": [
            76
          ],
          "span_ids": [
            "p076-t0182",
            "p076-t0183",
            "p076-t0184",
            "p076-t0186",
            "p076-t0187",
            "p076-t0189",
            "p076-t0190",
            "p076-t0191",
            "p076-t0193",
            "p076-t0194",
            "p076-t0195",
            "p076-t0196",
            "p076-t0197",
            "p076-t0198",
            "p076-t0199",
            "p076-t0200",
            "p076-t0201",
            "p076-t0202",
            "p076-t0203",
            "p076-t0204",
            "p076-t0205",
            "p076-t0206",
            "p076-t0207",
            "p076-t0208",
            "p076-t0209",
            "p076-t0210",
            "p076-t0211",
            "p076-t0212",
            "p076-t0213",
            "p076-t0214",
            "p076-t0215",
            "p076-t0216",
            "p076-t0217",
            "p076-t0218",
            "p076-t0219",
            "p076-t0220",
            "p076-t0222",
            "p076-t0223",
            "p076-t0224",
            "p076-t0225"
          ],
          "operations": [],
          "id": "q-p076-h05-b001",
          "markdown_line": 212
        }
      ],
      "markdown_line": 208
    },
    {
      "id": "q-p077-h01",
      "title": "什么是聚簇索引？何时使用聚簇索引与非聚簇索引",
      "heading-id": "p077-h01",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h01",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 聚簇索引：将数据存储与索引放到了一块，找到索引也就找到了数据",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0004",
            "p077-t0005"
          ],
          "operations": [],
          "id": "q-p077-h01-b001",
          "markdown_line": 218
        },
        {
          "kind": "prose",
          "text": "2. 非聚簇索引：将数据存储于索引分开结构，索引结构的叶子节点指向了数据的对应行，myisam 通过 key_buffer 把索引先缓存到内存中，当需要访问数据时（通过索引访问数据），在内存中直接搜索索引，然后通过索引找到磁盘相应数据，这也就是为什么索引不在 key buffer 命中时，速度慢的原因。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0007",
            "p077-t0008",
            "p077-t0010",
            "p077-t0011",
            "p077-t0012",
            "p077-t0013",
            "p077-t0014",
            "p077-t0015",
            "p077-t0017",
            "p077-t0018",
            "p077-t0020",
            "p077-t0021",
            "p077-t0022",
            "p077-t0023",
            "p077-t0025"
          ],
          "operations": [],
          "id": "q-p077-h01-b002",
          "markdown_line": 220
        }
      ],
      "markdown_line": 214
    },
    {
      "id": "q-p077-h02",
      "title": "MySQL 连接器",
      "heading-id": "p077-h02",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h02",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "首先需要在 MySQL 客户端登陆才能使用，所以需要个连接器来连接用户和 MySQL 数据库，我们一般是使用 mysql-u 用户名-p 密码来进行 MySQL 登陆，和服务端建立连接。在完成 TCP 握手后，连接器会根据你输入的用户名和密码验证你的登录身份。如果用户名或者密码错误，MySQL 就会提示 Access denied for user，来结束执行。如果登录成功后，MySQL 会根据权限表中的记录来判定你的权限。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0031",
            "p077-t0032",
            "p077-t0033",
            "p077-t0035",
            "p077-t0037",
            "p077-t0038",
            "p077-t0039",
            "p077-t0041",
            "p077-t0042",
            "p077-t0043",
            "p077-t0044",
            "p077-t0045",
            "p077-t0046",
            "p077-t0048",
            "p077-t0049",
            "p077-t0050",
            "p077-t0051",
            "p077-t0052",
            "p077-t0054",
            "p077-t0055",
            "p077-t0056",
            "p077-t0057",
            "p077-t0059",
            "p077-t0060",
            "p077-t0061",
            "p077-t0062",
            "p077-t0063",
            "p077-t0064",
            "p077-t0066"
          ],
          "operations": [],
          "id": "q-p077-h02-b001",
          "markdown_line": 226
        }
      ],
      "markdown_line": 222
    },
    {
      "id": "q-p077-h03",
      "title": "MySQL 查询缓存",
      "heading-id": "p077-h03",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h03",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "连接完成后，你就可以执行 SQL 语句了，这行逻辑就会来到第二步:查询缓存。 MySQL 在得到一个执行请求后，会首先去查询缓存中查找，是否执行过这条 SQL 语句，之前执行过的语句以及结果会以 key-value 对的形式，被直接放在内存中。key 是查询语句，value 是查询的结果。如果通过 key 能够查找到这条 SQL 语句，就直接妾返回 SQL 的执行结果。如果语句不在查询缓存中，就会继续后面的执行阶段。执行完成后，执行结果就会被放入查询缓存中。可以看到，如果查询命中缓存，MySQL 不需要执行后面的复杂操作，就可以直接返回结果，效率会很高。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0072",
            "p077-t0073",
            "p077-t0074",
            "p077-t0075",
            "p077-t0076",
            "p077-t0077",
            "p077-t0078",
            "p077-t0079",
            "p077-t0081",
            "p077-t0082",
            "p077-t0083",
            "p077-t0084",
            "p077-t0085",
            "p077-t0086",
            "p077-t0088",
            "p077-t0089",
            "p077-t0090",
            "p077-t0091",
            "p077-t0092",
            "p077-t0094",
            "p077-t0095",
            "p077-t0096",
            "p077-t0097",
            "p077-t0098",
            "p077-t0099",
            "p077-t0100",
            "p077-t0101",
            "p077-t0102",
            "p077-t0104",
            "p077-t0106",
            "p077-t0107",
            "p077-t0108",
            "p077-t0109",
            "p077-t0111"
          ],
          "operations": [],
          "id": "q-p077-h03-b001",
          "markdown_line": 232
        }
      ],
      "markdown_line": 228
    },
    {
      "id": "q-p077-h04",
      "title": "MySQL 分析器",
      "heading-id": "p077-h04",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h04",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果没有命中查询，就开始执行真正的 SQL 语句。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0117",
            "p077-t0118",
            "p077-t0119"
          ],
          "operations": [],
          "id": "q-p077-h04-b001",
          "markdown_line": 238
        },
        {
          "kind": "prose",
          "text": "1. 首先，MySQL 会根据你写的 SQL 语句进行解析，分析器会先做词法分析，你写的 SQL 就是由多个字符串和空格组成的一条 SQL 语句，MySQL 需要识别出里面的字符串是什么，代表什么。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0121",
            "p077-t0122",
            "p077-t0123",
            "p077-t0124",
            "p077-t0125",
            "p077-t0126",
            "p077-t0128",
            "p077-t0129",
            "p077-t0130",
            "p077-t0131",
            "p077-t0132",
            "p077-t0133",
            "p077-t0134",
            "p077-t0135",
            "p077-t0137"
          ],
          "operations": [],
          "id": "q-p077-h04-b002",
          "markdown_line": 240
        },
        {
          "kind": "prose",
          "text": "2. 然后进行语法分析，根据词法分析的结果，语法分析器会根据语法规则，判断你输入的这个 SQL语句是否满足 MySQL 语法。如果 SQL 语句不正确，就会提示 You have an error in your SQL syntax",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0139",
            "p077-t0140",
            "p077-t0142",
            "p077-t0143",
            "p077-t0144",
            "p077-t0145",
            "p077-t0146",
            "p077-t0147",
            "p077-t0148",
            "p077-t0150",
            "p077-t0151",
            "p077-t0152"
          ],
          "operations": [],
          "id": "q-p077-h04-b003",
          "markdown_line": 242
        }
      ],
      "markdown_line": 234
    },
    {
      "id": "q-p077-h05",
      "title": "MySQL 优化器",
      "heading-id": "p077-h05",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h05",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "经过分析器的词法分析和语法分析后，你这条 SQL 就合法了，MySQL 就知道你要做什么了。但是在执行前，还需要进行优化器的处理，优化器会判断你使用了哪种索引，使用了何种连接，优化器的作用就是确定效率最高的执行方案",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0157",
            "p077-t0158",
            "p077-t0159",
            "p077-t0160",
            "p077-t0161",
            "p077-t0163",
            "p077-t0164",
            "p077-t0166",
            "p077-t0167"
          ],
          "operations": [],
          "id": "q-p077-h05-b001",
          "markdown_line": 248
        }
      ],
      "markdown_line": 244
    },
    {
      "id": "q-p077-h06",
      "title": "MySQL 执行器",
      "heading-id": "p077-h06",
      "source-page": 77,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p077-h06",
      "pages": [
        77
      ],
      "page-range": [
        77,
        77
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "MySQL 通过分析器知道了你的 SQL 语句是否合法，你想要做什么操作，通过优化器知道了该怎么做效率最高，然后就进入了执行阶段，开始执行这条 SQL 语句在执行阶段，MySQL 首先会判断你有没有执行这条语句的权限，没有权限的话，就会返回没有权限的错误。如果有权限，就打开表继续执行。打开表的时候，执行器就会根据表的引擎定义，去使用这个引擎提供的接口。对于有索引的表，执行的逻辑也差不多。",
          "language": null,
          "pages": [
            77
          ],
          "span_ids": [
            "p077-t0173",
            "p077-t0174",
            "p077-t0175",
            "p077-t0176",
            "p077-t0178",
            "p077-t0179",
            "p077-t0180",
            "p077-t0181",
            "p077-t0183",
            "p077-t0184",
            "p077-t0185",
            "p077-t0186",
            "p077-t0188",
            "p077-t0189",
            "p077-t0190"
          ],
          "operations": [],
          "id": "q-p077-h06-b001",
          "markdown_line": 254
        }
      ],
      "markdown_line": 250
    },
    {
      "id": "q-p078-h01",
      "title": "什么是临时表，何时删除临时表？",
      "heading-id": "p078-h01",
      "source-page": 78,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p078-h01",
      "pages": [
        78
      ],
      "page-range": [
        78,
        78
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "什么是临时表?MySQL 在执行 SQL 语句的过程中通常会临时创建一些存储中间结果集的表，临时表只对当前连接可见，在连接关闭时，临时表会被删除并释放所有表空间。临时表分为两种:一种是内存临时表，一种是磁盘临时表，什么区别呢?内存临时表使用的是 MEMORY 存储引擎，而临时表采用的是MylSAM 存储引擎。 MySQL 会在下面这几种情况产生临时表。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0004",
            "p078-t0005",
            "p078-t0006",
            "p078-t0007",
            "p078-t0008",
            "p078-t0010",
            "p078-t0012",
            "p078-t0014",
            "p078-t0015",
            "p078-t0017",
            "p078-t0019",
            "p078-t0020",
            "p078-t0021",
            "p078-t0022",
            "p078-t0023",
            "p078-t0024",
            "p078-t0026",
            "p078-t0027",
            "p078-t0028",
            "p078-t0030",
            "p078-t0031",
            "p078-t0032",
            "p078-t0033"
          ],
          "operations": [],
          "id": "q-p078-h01-b001",
          "markdown_line": 260
        },
        {
          "kind": "prose",
          "text": "1. 使用 UNION 查询:UNION 有两种，一种是 UNION，一种是 UNION ALL，它们都用于联合查询;区别是使用 UNION 会去掉两个表中的重复数据，相当于对结果集做了一下去重(distinct)。使用UNIONALL，则不会排重，返回所有的行。使用 UNION 查询会产生临时表。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0035",
            "p078-t0036",
            "p078-t0037",
            "p078-t0038",
            "p078-t0039",
            "p078-t0040",
            "p078-t0041",
            "p078-t0042",
            "p078-t0043",
            "p078-t0044",
            "p078-t0046",
            "p078-t0047",
            "p078-t0048",
            "p078-t0049",
            "p078-t0050",
            "p078-t0051",
            "p078-t0053",
            "p078-t0055",
            "p078-t0056",
            "p078-t0057",
            "p078-t0059",
            "p078-t0060",
            "p078-t0062",
            "p078-t0063",
            "p078-t0064"
          ],
          "operations": [],
          "id": "q-p078-h01-b002",
          "markdown_line": 262
        },
        {
          "kind": "prose",
          "text": "2. 使用 TEMPTABLE 算法或者是 UNION 查询中的视图。TEMPTABLE 算法是一种创建临时表的算法，它是将结果放置到临时表中，意味这要 MySQL 要先创建好一个临时表，然后将结果放到临时表中去，然后再使用这个临时表进行相应的查询。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0066",
            "p078-t0067",
            "p078-t0068",
            "p078-t0069",
            "p078-t0070",
            "p078-t0071",
            "p078-t0072",
            "p078-t0073",
            "p078-t0075",
            "p078-t0076",
            "p078-t0077",
            "p078-t0078",
            "p078-t0080",
            "p078-t0081",
            "p078-t0083"
          ],
          "operations": [],
          "id": "q-p078-h01-b003",
          "markdown_line": 264
        },
        {
          "kind": "prose",
          "text": "3. ORDER BY 和 GROUPBY 的子句不一样时也会产生临时表。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0085",
            "p078-t0086",
            "p078-t0087",
            "p078-t0088"
          ],
          "operations": [],
          "id": "q-p078-h01-b004",
          "markdown_line": 266
        },
        {
          "kind": "prose",
          "text": "4. DISTINCT 查询并且加上 ORDER BY 时;",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0089",
            "p078-t0090",
            "p078-t0091",
            "p078-t0092",
            "p078-t0093"
          ],
          "operations": [],
          "id": "q-p078-h01-b005",
          "markdown_line": 268
        },
        {
          "kind": "prose",
          "text": "5. SQL 中用到 SQL_SMALL_RESULT 选项时;如果查询结果比较小的时候，可以加上 SQL SMALL RESULT 来优化，产生临时表",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0094",
            "p078-t0095",
            "p078-t0096",
            "p078-t0097",
            "p078-t0098",
            "p078-t0099",
            "p078-t0101",
            "p078-t0102",
            "p078-t0103",
            "p078-t0104"
          ],
          "operations": [],
          "id": "q-p078-h01-b006",
          "markdown_line": 270
        },
        {
          "kind": "prose",
          "text": "6. FROM 中的子查询;",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0106",
            "p078-t0107",
            "p078-t0108"
          ],
          "operations": [],
          "id": "q-p078-h01-b007",
          "markdown_line": 272
        },
        {
          "kind": "prose",
          "text": "7. EXPLAIN 查看执行计划结果的 Extra 列中，如果使用 Using Temporary 就表示会用到临时表",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0109",
            "p078-t0110",
            "p078-t0111",
            "p078-t0112",
            "p078-t0113",
            "p078-t0114",
            "p078-t0116"
          ],
          "operations": [],
          "id": "q-p078-h01-b008",
          "markdown_line": 274
        }
      ],
      "markdown_line": 256
    },
    {
      "id": "q-p078-h02",
      "title": "谈谈 SQL 优化的经验",
      "heading-id": "p078-h02",
      "source-page": 78,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p078-h02",
      "pages": [
        78
      ],
      "page-range": [
        78,
        78
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 查询语句无论是使用哪种判断条件等于、小于、大于，WHERE 左侧的条件查询字段不要使用函数或者表达式",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0123",
            "p078-t0124",
            "p078-t0125",
            "p078-t0126",
            "p078-t0128",
            "p078-t0129"
          ],
          "operations": [],
          "id": "q-p078-h02-b001",
          "markdown_line": 280
        },
        {
          "kind": "prose",
          "text": "2. 使用 EXPLAIN 命令优化你的 SELECT 查询，对于复杂、效率低的 SQL 语句，我们通常是使用explainsql 来分析这条 SQL 语句，这样方便我们分析，进行优化。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0131",
            "p078-t0132",
            "p078-t0133",
            "p078-t0134",
            "p078-t0135",
            "p078-t0136",
            "p078-t0137",
            "p078-t0138",
            "p078-t0140",
            "p078-t0142",
            "p078-t0143",
            "p078-t0144",
            "p078-t0145",
            "p078-t0147"
          ],
          "operations": [],
          "id": "q-p078-h02-b002",
          "markdown_line": 282
        },
        {
          "kind": "prose",
          "text": "3. 当你的 SELECT 查询语句只需要使用一条记录时，要使用 LIMIT 1。不要直接使用 SELECT*，而应该使用具体需要查询的表字段，因为使用 EXPLAIN 进行分析时，SELECT\"使用的是全表扫描，也就是 type =all。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0149",
            "p078-t0150",
            "p078-t0151",
            "p078-t0152",
            "p078-t0153",
            "p078-t0154",
            "p078-t0156",
            "p078-t0157",
            "p078-t0158",
            "p078-t0159",
            "p078-t0160",
            "p078-t0161",
            "p078-t0162",
            "p078-t0163",
            "p078-t0164",
            "p078-t0165",
            "p078-t0166"
          ],
          "operations": [],
          "id": "q-p078-h02-b003",
          "markdown_line": 284
        },
        {
          "kind": "prose",
          "text": "4. 为每一张表设置一个 ID 属性。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0168",
            "p078-t0169",
            "p078-t0170",
            "p078-t0171"
          ],
          "operations": [],
          "id": "q-p078-h02-b004",
          "markdown_line": 286
        },
        {
          "kind": "prose",
          "text": "5. 避免在 MHERE 字句中对字段进行 NULL",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0173",
            "p078-t0174",
            "p078-t0175",
            "p078-t0176",
            "p078-t0177"
          ],
          "operations": [],
          "id": "q-p078-h02-b005",
          "markdown_line": 288
        },
        {
          "kind": "prose",
          "text": "6. 判断避免在 WHERE 中使用!或>操作符",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0178",
            "p078-t0179",
            "p078-t0180",
            "p078-t0181",
            "p078-t0182",
            "p078-t0183",
            "p078-t0184",
            "p078-t0185"
          ],
          "operations": [],
          "id": "q-p078-h02-b006",
          "markdown_line": 290
        },
        {
          "kind": "prose",
          "text": "7. 使用 BETWEEN AND 替代 IN",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0187",
            "p078-t0188",
            "p078-t0189",
            "p078-t0190",
            "p078-t0191"
          ],
          "operations": [],
          "id": "q-p078-h02-b007",
          "markdown_line": 292
        },
        {
          "kind": "prose",
          "text": "8. 为搜索字段创建索引",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0192",
            "p078-t0193"
          ],
          "operations": [],
          "id": "q-p078-h02-b008",
          "markdown_line": 294
        },
        {
          "kind": "prose",
          "text": "9. 选择正确的存储引擎，InnoDB、MyISAM、MEMORY 等",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0195",
            "p078-t0196",
            "p078-t0197",
            "p078-t0198",
            "p078-t0199",
            "p078-t0200",
            "p078-t0201",
            "p078-t0202"
          ],
          "operations": [],
          "id": "q-p078-h02-b009",
          "markdown_line": 296
        },
        {
          "kind": "prose",
          "text": "10. 使用 LIKE%abc%不会走索引，而使用 LIKE abc%会走索引。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0204",
            "p078-t0205",
            "p078-t0206",
            "p078-t0207",
            "p078-t0208",
            "p078-t0209"
          ],
          "operations": [],
          "id": "q-p078-h02-b010",
          "markdown_line": 298
        },
        {
          "kind": "prose",
          "text": "11. 对于枚举类型的字段(即有固定罗列值的字段)，建议使用 ENUM 而不是 VARCHAR，如性别、星期、类型、类别等。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0211",
            "p078-t0212",
            "p078-t0213",
            "p078-t0214",
            "p078-t0215",
            "p078-t0216",
            "p078-t0217",
            "p078-t0218",
            "p078-t0219",
            "p078-t0220",
            "p078-t0221"
          ],
          "operations": [],
          "id": "q-p078-h02-b011",
          "markdown_line": 300
        },
        {
          "kind": "prose",
          "text": "12. 拆分大的 DELETE 或 INSERT 语句",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0223",
            "p078-t0224",
            "p078-t0225",
            "p078-t0226",
            "p078-t0227",
            "p078-t0228"
          ],
          "operations": [],
          "id": "q-p078-h02-b012",
          "markdown_line": 302
        },
        {
          "kind": "prose",
          "text": "13. 选择合适的字段类型，选择标准是尽可能小、尽可能定长、尽可能使用整数。",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0230",
            "p078-t0231",
            "p078-t0233"
          ],
          "operations": [],
          "id": "q-p078-h02-b013",
          "markdown_line": 304
        },
        {
          "kind": "prose",
          "text": "14. 字段设计尽可能使用 NOT NULL",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0235",
            "p078-t0236",
            "p078-t0237"
          ],
          "operations": [],
          "id": "q-p078-h02-b014",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "15. 进行水平切割或者垂直分割",
          "language": null,
          "pages": [
            78
          ],
          "span_ids": [
            "p078-t0238",
            "p078-t0239"
          ],
          "operations": [],
          "id": "q-p078-h02-b015",
          "markdown_line": 308
        }
      ],
      "markdown_line": 276
    },
    {
      "id": "q-p079-h01",
      "title": "什么叫外链接？",
      "heading-id": "p079-h01",
      "source-page": 79,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p079-h01",
      "pages": [
        79
      ],
      "page-range": [
        79,
        79
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "外连接分为三种，分别是是左外连接(LEFT OUTER J0IN 或 LEFT JOIN 右外连接(RIGHT OUTER JOIN 或RIC GHT JOIN、全外连接(FULL OUTER JOIN 或 FULLJOIN)。左外连接:又称为左连接，这种连接方式会显示左表不符合条件的数据行，右边不符合条件的数据行直接显示 NULL。右外连接:也被称为右连接，他与左连接相对，这种连接方式会显示右表不符合条件的数据行，左表不符合条件的数据行直接显示NULL",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0004",
            "p079-t0005",
            "p079-t0006",
            "p079-t0007",
            "p079-t0008",
            "p079-t0010",
            "p079-t0011",
            "p079-t0012",
            "p079-t0014",
            "p079-t0015",
            "p079-t0016",
            "p079-t0017",
            "p079-t0018",
            "p079-t0019",
            "p079-t0021",
            "p079-t0022",
            "p079-t0023",
            "p079-t0024",
            "p079-t0026",
            "p079-t0027",
            "p079-t0028",
            "p079-t0030",
            "p079-t0031",
            "p079-t0032",
            "p079-t0033",
            "p079-t0035",
            "p079-t0037"
          ],
          "operations": [],
          "id": "q-p079-h01-b001",
          "markdown_line": 314
        }
      ],
      "markdown_line": 310
    },
    {
      "id": "q-p079-h02",
      "title": "什么叫内链接？",
      "heading-id": "p079-h02",
      "source-page": 79,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p079-h02",
      "pages": [
        79
      ],
      "page-range": [
        79,
        79
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "结合两个表中相同的字段，返回关联字段相符的记录就是内链接",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0041"
          ],
          "operations": [],
          "id": "q-p079-h02-b001",
          "markdown_line": 320
        }
      ],
      "markdown_line": 316
    },
    {
      "id": "q-p079-h03",
      "title": "使用 union 和 union all 时需要注意些什么？",
      "heading-id": "p079-h03",
      "source-page": 79,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p079-h03",
      "pages": [
        79
      ],
      "page-range": [
        79,
        79
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "通过 union 连接的 SQL 分别单独取出的列数必须相同。使用 union 时，多个相等的行将会被合并，由于合升比较耗时，一般不直接使用 union 进行合并，而是通常采用 union all 进行合并。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0051",
            "p079-t0052",
            "p079-t0053",
            "p079-t0054",
            "p079-t0055",
            "p079-t0057",
            "p079-t0058",
            "p079-t0059",
            "p079-t0060",
            "p079-t0062",
            "p079-t0063",
            "p079-t0064",
            "p079-t0065",
            "p079-t0066"
          ],
          "operations": [],
          "id": "q-p079-h03-b001",
          "markdown_line": 326
        }
      ],
      "markdown_line": 322
    },
    {
      "id": "q-p079-h04",
      "title": "MyISAM 存储引擎的特点",
      "heading-id": "p079-h04",
      "source-page": 79,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p079-h04",
      "pages": [
        79
      ],
      "page-range": [
        79,
        79
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在 5.1 版本之前，MyISAM 是 MySQL 的默认存储引擎，MylSAM 并发性比较差，使用的场景比较少主要特点是:",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0072",
            "p079-t0073",
            "p079-t0074",
            "p079-t0075",
            "p079-t0076",
            "p079-t0077",
            "p079-t0078",
            "p079-t0079",
            "p079-t0080",
            "p079-t0082",
            "p079-t0083",
            "p079-t0084"
          ],
          "operations": [],
          "id": "q-p079-h04-b001",
          "markdown_line": 332
        },
        {
          "kind": "prose",
          "text": "1. 不支持事务操作，ACID 的特性也就不存在了，这一设计是为了性能和效率考虑的，",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0085",
            "p079-t0086",
            "p079-t0087",
            "p079-t0088",
            "p079-t0090"
          ],
          "operations": [],
          "id": "q-p079-h04-b002",
          "markdown_line": 334
        },
        {
          "kind": "prose",
          "text": "2. 不支持外键操作，如果强行增加外键，MySQL 不会报错，只不过外键不起作用。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0092",
            "p079-t0093",
            "p079-t0094",
            "p079-t0095",
            "p079-t0097"
          ],
          "operations": [],
          "id": "q-p079-h04-b003",
          "markdown_line": 336
        },
        {
          "kind": "prose",
          "text": "3. MyISAM 默认的锁粒度是表级锁，所以并发性能比较差，加锁比较快，锁冲突比较少，不太容易发生死锁的情况。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0099",
            "p079-t0100",
            "p079-t0102",
            "p079-t0103"
          ],
          "operations": [],
          "id": "q-p079-h04-b004",
          "markdown_line": 338
        },
        {
          "kind": "prose",
          "text": "4. MyISAM 会在磁盘上存储三个文件，文件名和表名相同，扩展名分别是 frm(存储表定义)、 MYD(MYData，存储数据)、MYI(MyIndex，存储索引)。这里需要特别注意的是 MyISAM 只缓存索引文件，并不缓存数据文件。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0105",
            "p079-t0106",
            "p079-t0107",
            "p079-t0108",
            "p079-t0109",
            "p079-t0110",
            "p079-t0111",
            "p079-t0112",
            "p079-t0113",
            "p079-t0114",
            "p079-t0115",
            "p079-t0116",
            "p079-t0117",
            "p079-t0118",
            "p079-t0120",
            "p079-t0121",
            "p079-t0122",
            "p079-t0124"
          ],
          "operations": [],
          "id": "q-p079-h04-b005",
          "markdown_line": 340
        },
        {
          "kind": "prose",
          "text": "5. MyISAM 支持的索引类型有全局索引(Full-Text)、B-Tree 索引、R-Tree 索引 Full-Text 索引:它的出现是为了解决针对文本的模糊查询效率较低的问题。 B-Tree 索引:所有的索引节点都按照平衡树的数据结构来存储，所有的索引数据节点都在叶节点 R-Tree 索引:它的存储方式和 B-Tree 索引有一些区别，主要设计用于存储空间和多维数据的字段做索引目前的 MySQL 版本仅支持geometry 类型的字段作索引，相对于 BTREE,RTREE 的优势在于范围查找。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0126",
            "p079-t0127",
            "p079-t0128",
            "p079-t0129",
            "p079-t0130",
            "p079-t0131",
            "p079-t0132",
            "p079-t0133",
            "p079-t0135",
            "p079-t0136",
            "p079-t0137",
            "p079-t0138",
            "p079-t0139",
            "p079-t0140",
            "p079-t0142",
            "p079-t0143",
            "p079-t0144",
            "p079-t0145",
            "p079-t0146",
            "p079-t0147",
            "p079-t0149",
            "p079-t0150",
            "p079-t0151",
            "p079-t0152",
            "p079-t0153",
            "p079-t0154",
            "p079-t0155",
            "p079-t0156",
            "p079-t0158",
            "p079-t0159",
            "p079-t0160",
            "p079-t0162",
            "p079-t0163",
            "p079-t0164",
            "p079-t0165"
          ],
          "operations": [],
          "id": "q-p079-h04-b006",
          "markdown_line": 342
        },
        {
          "kind": "prose",
          "text": "6. 数据库所在主机如果宕机，MyISAM 的数据文件容易损坏，而且难以恢复。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0167",
            "p079-t0168",
            "p079-t0169",
            "p079-t0170"
          ],
          "operations": [],
          "id": "q-p079-h04-b007",
          "markdown_line": 344
        },
        {
          "kind": "prose",
          "text": "7. 增删改查性能方面:SELECT 性能较高，适用于查询较多的情况",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0172",
            "p079-t0173",
            "p079-t0174",
            "p079-t0175"
          ],
          "operations": [],
          "id": "q-p079-h04-b008",
          "markdown_line": 346
        }
      ],
      "markdown_line": 328
    },
    {
      "id": "q-p079-h05",
      "title": "InnoDB 存储引擎的特点",
      "heading-id": "p079-h05",
      "source-page": 79,
      "section": "mysql",
      "topic": "10-mysql",
      "target": "/go-bank/10-mysql#q-p079-h05",
      "pages": [
        79,
        80
      ],
      "page-range": [
        79,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "自从 MySQL5.1 之后，默认的存储引擎变成了 InnoDB 存储引擎，相对于 MylSAM，InnoDB 存储引擎有了较大的改变，它的主要特点是",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0181",
            "p079-t0182",
            "p079-t0183",
            "p079-t0184",
            "p079-t0185",
            "p079-t0186",
            "p079-t0187",
            "p079-t0188",
            "p079-t0189",
            "p079-t0190"
          ],
          "operations": [],
          "id": "q-p079-h05-b001",
          "markdown_line": 352
        },
        {
          "kind": "prose",
          "text": "1. 支持事务操作，具有事务 ACID 隔离特性，默认的隔离级别是可重复读 (repetable-read)、通过MVCC(并发版本控制)来实现的。能够解决脏读和不可重复读的问题。 InnoDB 支持外键操作。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0191",
            "p079-t0192",
            "p079-t0193",
            "p079-t0194",
            "p079-t0195",
            "p079-t0196",
            "p079-t0198",
            "p079-t0199",
            "p079-t0200",
            "p079-t0201",
            "p079-t0203",
            "p079-t0205",
            "p079-t0207",
            "p079-t0209",
            "p079-t0210",
            "p079-t0211"
          ],
          "operations": [],
          "id": "q-p079-h05-b002",
          "markdown_line": 354
        },
        {
          "kind": "prose",
          "text": "2. InnoDB 默认的锁粒度行级锁，并发性能比较好，会发生死锁的情况。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0213",
            "p079-t0214"
          ],
          "operations": [],
          "id": "q-p079-h05-b003",
          "markdown_line": 356
        },
        {
          "kind": "prose",
          "text": "3. 和 MyISAM 一样的是，InnoDB 存储引擎也有 frm 文件存储表结构定义，但是不同的是，InnoDB的表数据与索引数据是存储在一起的，都位于 B+数的叶子节点上，而 MylSAM 的表数据和索引数据是分开的。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0216",
            "p079-t0217",
            "p079-t0218",
            "p079-t0219",
            "p079-t0220",
            "p079-t0221",
            "p079-t0222",
            "p079-t0223",
            "p079-t0225",
            "p079-t0226",
            "p079-t0227",
            "p079-t0228",
            "p079-t0229",
            "p079-t0231",
            "p079-t0232",
            "p079-t0233",
            "p079-t0234"
          ],
          "operations": [],
          "id": "q-p079-h05-b004",
          "markdown_line": 358
        },
        {
          "kind": "prose",
          "text": "4. InnoDB 有安全的日志文件，这个日志文件用于恢复因数据库崩溃或其他情况导致的数据丢失问题，保证数据的一致性。",
          "language": null,
          "pages": [
            79
          ],
          "span_ids": [
            "p079-t0236",
            "p079-t0237",
            "p079-t0239",
            "p079-t0240"
          ],
          "operations": [],
          "id": "q-p079-h05-b005",
          "markdown_line": 360
        },
        {
          "kind": "prose",
          "text": "5. InnoDB 和 MylSAM 支持的索引类型相同，但具体实现因为文件结构的不同有很大差异。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0001",
            "p080-t0002",
            "p080-t0003",
            "p080-t0004",
            "p080-t0006"
          ],
          "operations": [],
          "id": "q-p079-h05-b006",
          "markdown_line": 362
        },
        {
          "kind": "prose",
          "text": "6. 增删改查性能方面，果执行大量的增删改操作，推荐使用 InnoDB 存储引擎，它在删除操作时是对行删除，不会重建表。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0008",
            "p080-t0009",
            "p080-t0010",
            "p080-t0011",
            "p080-t0013",
            "p080-t0014"
          ],
          "operations": [],
          "id": "q-p079-h05-b007",
          "markdown_line": 364
        }
      ],
      "markdown_line": 348
    },
    {
      "id": "q-p080-h02",
      "title": "什么是 Linux",
      "heading-id": "p080-h02",
      "source-page": 80,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p080-h02",
      "pages": [
        80
      ],
      "page-range": [
        80,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Linux 是一套免费使用和自由传播的类 Unix 操作系统，是一个基于 POSIX和 Unix 的多用户、多任务、支持多线程和多 CPU的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议。它支持32 位和64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想，是一个性能稳定的多用户网络操作系统",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0021",
            "p080-t0022",
            "p080-t0023",
            "p080-t0024",
            "p080-t0025",
            "p080-t0026",
            "p080-t0027",
            "p080-t0028",
            "p080-t0029",
            "p080-t0031",
            "p080-t0032",
            "p080-t0033",
            "p080-t0034",
            "p080-t0035",
            "p080-t0036",
            "p080-t0037",
            "p080-t0038",
            "p080-t0039",
            "p080-t0040",
            "p080-t0041",
            "p080-t0042",
            "p080-t0043",
            "p080-t0044"
          ],
          "operations": [],
          "id": "q-p080-h02-b001",
          "markdown_line": 12
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p080-h03",
      "title": "Unix 和 Linux 有什么区别",
      "heading-id": "p080-h03",
      "source-page": 80,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p080-h03",
      "pages": [
        80
      ],
      "page-range": [
        80,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Linux 和 Unix 都是功能强大的操作系统，都是应用广泛的服务器操作系统，有很多相似之处，甚至有一部分人错误地认为 Unix 和 Linux 操作系统是一样的，然而，事实并非如此，以下是两者的区别。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0052",
            "p080-t0053",
            "p080-t0054",
            "p080-t0055",
            "p080-t0056",
            "p080-t0058",
            "p080-t0059",
            "p080-t0060",
            "p080-t0061",
            "p080-t0062"
          ],
          "operations": [],
          "id": "q-p080-h03-b001",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "1. 开源性：Linux 是一款开源操作系统，不需要付费，即可使用；Unix 是一款对源码实行知识产权保护的传统商业软件，使用需要付费授权使用。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0064",
            "p080-t0065",
            "p080-t0066",
            "p080-t0067",
            "p080-t0068",
            "p080-t0069",
            "p080-t0070",
            "p080-t0072"
          ],
          "operations": [],
          "id": "q-p080-h03-b002",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "2. 跨平台性：Linux 操作系统具有良好的跨平台性能，可运行在多种硬件平台上；Unix 操作系统跨平台性能较弱，大多需与硬件配套使用。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0074",
            "p080-t0075",
            "p080-t0076",
            "p080-t0077",
            "p080-t0078",
            "p080-t0079",
            "p080-t0080",
            "p080-t0082"
          ],
          "operations": [],
          "id": "q-p080-h03-b003",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "3. 可视化界面：Linux 除了进行命令行操作，还有窗体管理系统；Unix 只是命令行下的系统。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0084",
            "p080-t0085",
            "p080-t0086",
            "p080-t0087",
            "p080-t0088",
            "p080-t0089"
          ],
          "operations": [],
          "id": "q-p080-h03-b004",
          "markdown_line": 24
        },
        {
          "kind": "prose",
          "text": "4. 硬件环境：Linux 操作系统对硬件的要求较低，安装方法更易掌握；Unix 对硬件要求比较苛刻，按照难度较大。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0091",
            "p080-t0092",
            "p080-t0093",
            "p080-t0094",
            "p080-t0095",
            "p080-t0096",
            "p080-t0097",
            "p080-t0099"
          ],
          "operations": [],
          "id": "q-p080-h03-b005",
          "markdown_line": 26
        },
        {
          "kind": "prose",
          "text": "5. 用户群体：Linux 的用户群体很广泛，个人和企业均可使用；Unix 的用户群体比较窄，多是安全性要求高的大型企业使用，如银行、电信部⻔等，或者 Unix 硬件厂商使用，如 Sun等。相比于 Unix操作系统，Linux 操作系统更受广大计算机爱好者的喜爱，主要原因是 Linux 操作系统具有 Unix 操作系统的全部功能，并且能够在普通 PC计算机上实现全部的 Unix 特性，开源免费的特性，更容易普及使用",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0101",
            "p080-t0102",
            "p080-t0103",
            "p080-t0104",
            "p080-t0105",
            "p080-t0106",
            "p080-t0107",
            "p080-t0109",
            "p080-t0110",
            "p080-t0111",
            "p080-t0112",
            "p080-t0113",
            "p080-t0114",
            "p080-t0115",
            "p080-t0116",
            "p080-t0117",
            "p080-t0118",
            "p080-t0119",
            "p080-t0120",
            "p080-t0121",
            "p080-t0122",
            "p080-t0124",
            "p080-t0125",
            "p080-t0126",
            "p080-t0127",
            "p080-t0128",
            "p080-t0129"
          ],
          "operations": [],
          "id": "q-p080-h03-b006",
          "markdown_line": 28
        }
      ],
      "markdown_line": 14
    },
    {
      "id": "q-p080-h04",
      "title": "什么是 Linux 内核？",
      "heading-id": "p080-h04",
      "source-page": 80,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p080-h04",
      "pages": [
        80
      ],
      "page-range": [
        80,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Linux 系统的核心是内核。内核控制着计算机系统上的所有硬件和软件，在必要时分配硬件，并根据需要执行软件。系统内存管理应用程序管理硬件设备管理文件系统管理",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0136",
            "p080-t0137",
            "p080-t0138",
            "p080-t0140",
            "p080-t0142",
            "p080-t0144",
            "p080-t0146",
            "p080-t0148"
          ],
          "operations": [],
          "id": "q-p080-h04-b001",
          "markdown_line": 34
        }
      ],
      "markdown_line": 30
    },
    {
      "id": "q-p080-h05",
      "title": "Linux 的基本组件是什么？",
      "heading-id": "p080-h05",
      "source-page": 80,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p080-h05",
      "pages": [
        80
      ],
      "page-range": [
        80,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "就像任何其他典型的操作系统一样，Linux 拥有所有这些组件：内核，shell 和 GUI，系统实用程序和应用程序。 Linux 比其他操作系统更具优势的是每个方面都附带其他功能，所有代码都可以免费下载",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0154",
            "p080-t0155",
            "p080-t0156",
            "p080-t0157",
            "p080-t0158",
            "p080-t0159",
            "p080-t0160",
            "p080-t0161",
            "p080-t0162",
            "p080-t0163"
          ],
          "operations": [],
          "id": "q-p080-h05-b001",
          "markdown_line": 40
        }
      ],
      "markdown_line": 36
    },
    {
      "id": "q-p080-h06",
      "title": "Linux 的体系结构",
      "heading-id": "p080-h06",
      "source-page": 80,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p080-h06",
      "pages": [
        80
      ],
      "page-range": [
        80,
        80
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "从大的方面讲，Linux 体系结构可以分为两块：用户空间(User Space)：用户空间又包括用户的应用程序(User Applications)、C 库(C Library)。内核空间(Kernel Space)：内核空间又包括系统调用接口(System Call Interface)、内核(Kernel)、平台架构相关的代码(Architecture - Dependent Kernel Code)。为什么 Linux 体系结构要分为用户空间和内核空间的原因？",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0169",
            "p080-t0170",
            "p080-t0171",
            "p080-t0173",
            "p080-t0174",
            "p080-t0175",
            "p080-t0176",
            "p080-t0177",
            "p080-t0178",
            "p080-t0179",
            "p080-t0180",
            "p080-t0181",
            "p080-t0183",
            "p080-t0184",
            "p080-t0185",
            "p080-t0186",
            "p080-t0187",
            "p080-t0188",
            "p080-t0189",
            "p080-t0191",
            "p080-t0192",
            "p080-t0193",
            "p080-t0194",
            "p080-t0196",
            "p080-t0197",
            "p080-t0198"
          ],
          "operations": [],
          "id": "q-p080-h06-b001",
          "markdown_line": 46
        },
        {
          "kind": "prose",
          "text": "1. 现代 CPU 实现了不同的工作模式，不同模式下 CPU 可以执行的指令和访问的寄存器不同。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0200",
            "p080-t0201",
            "p080-t0202",
            "p080-t0203",
            "p080-t0204",
            "p080-t0205"
          ],
          "operations": [],
          "id": "q-p080-h06-b002",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "2. Linux 从 CPU 的⻆度出发，为了保护内核的安全，把系统分成了两部分。用户空间和内核空间是程序执行的两种不同的状态，我们可以通过两种方式完成用户空间到内核空间的转移：1）系统调用；2）硬件中断。",
          "language": null,
          "pages": [
            80
          ],
          "span_ids": [
            "p080-t0207",
            "p080-t0208",
            "p080-t0209",
            "p080-t0210",
            "p080-t0211",
            "p080-t0213",
            "p080-t0214",
            "p080-t0215",
            "p080-t0216",
            "p080-t0217",
            "p080-t0218"
          ],
          "operations": [],
          "id": "q-p080-h06-b003",
          "markdown_line": 50
        }
      ],
      "markdown_line": 42
    },
    {
      "id": "q-p081-h01",
      "title": "BASH 和 DOS 之间的基本区别是什么？",
      "heading-id": "p081-h01",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h01",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "BASH和 DOS控制台之间的主要区别在于3 个方面：",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0007",
            "p081-t0008",
            "p081-t0009",
            "p081-t0010",
            "p081-t0011",
            "p081-t0012"
          ],
          "operations": [],
          "id": "q-p081-h01-b001",
          "markdown_line": 56
        },
        {
          "kind": "prose",
          "text": "1. BASH命令区分大小写，而 DOS命令则不区分;",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0014",
            "p081-t0015",
            "p081-t0016",
            "p081-t0017",
            "p081-t0018"
          ],
          "operations": [],
          "id": "q-p081-h01-b002",
          "markdown_line": 58
        },
        {
          "kind": "prose",
          "text": "2. 在 BASH下，/ character 是目录分隔符，\\作为转义字符。在 DOS下，/用作命令参数分隔符，\\是目录分隔符",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0019",
            "p081-t0020",
            "p081-t0021",
            "p081-t0022",
            "p081-t0023",
            "p081-t0024",
            "p081-t0025",
            "p081-t0026",
            "p081-t0027",
            "p081-t0028",
            "p081-t0029",
            "p081-t0030",
            "p081-t0031",
            "p081-t0032",
            "p081-t0033"
          ],
          "operations": [],
          "id": "q-p081-h01-b003",
          "markdown_line": 60
        },
        {
          "kind": "prose",
          "text": "3. DOS遵循命名文件中的约定，即8 个字符的文件名后跟一个点，扩展名为3 个字符。BASH没有遵循这样的惯例",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0035",
            "p081-t0036",
            "p081-t0037",
            "p081-t0038",
            "p081-t0039",
            "p081-t0040",
            "p081-t0041",
            "p081-t0042",
            "p081-t0043",
            "p081-t0045"
          ],
          "operations": [],
          "id": "q-p081-h01-b004",
          "markdown_line": 62
        }
      ],
      "markdown_line": 52
    },
    {
      "id": "q-p081-h02",
      "title": "Linux 开机启动过程？",
      "heading-id": "p081-h02",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h02",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 主机加电自检，加载 BIOS 硬件信息",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0051",
            "p081-t0052",
            "p081-t0053",
            "p081-t0054"
          ],
          "operations": [],
          "id": "q-p081-h02-b001",
          "markdown_line": 68
        },
        {
          "kind": "prose",
          "text": "2. 读取 MBR 的引导文件(GRUB、LILO)",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0056",
            "p081-t0057",
            "p081-t0058",
            "p081-t0059",
            "p081-t0060",
            "p081-t0061",
            "p081-t0062"
          ],
          "operations": [],
          "id": "q-p081-h02-b002",
          "markdown_line": 70
        },
        {
          "kind": "prose",
          "text": "3. 引导 Linux 内核",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0063",
            "p081-t0064",
            "p081-t0065",
            "p081-t0066"
          ],
          "operations": [],
          "id": "q-p081-h02-b003",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "4. 运行第一个进程 init (进程号永远为 1 )",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0068",
            "p081-t0069",
            "p081-t0070",
            "p081-t0071",
            "p081-t0072"
          ],
          "operations": [],
          "id": "q-p081-h02-b004",
          "markdown_line": 74
        },
        {
          "kind": "prose",
          "text": "5. 进入相应的运行级别",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0073",
            "p081-t0074"
          ],
          "operations": [],
          "id": "q-p081-h02-b005",
          "markdown_line": 76
        },
        {
          "kind": "prose",
          "text": "6. 运行终端，输入用户名和密码",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0076",
            "p081-t0077"
          ],
          "operations": [],
          "id": "q-p081-h02-b006",
          "markdown_line": 78
        }
      ],
      "markdown_line": 64
    },
    {
      "id": "q-p081-h03",
      "title": "Linux 系统缺省的运行级别？",
      "heading-id": "p081-h03",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h03",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "关机单机用户模式字符界面的多用户模式(不支持网络)字符界面的多用户模式未分配使用图形界面的多用户模式重启",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0082",
            "p081-t0084",
            "p081-t0085",
            "p081-t0086",
            "p081-t0087",
            "p081-t0088",
            "p081-t0089",
            "p081-t0091",
            "p081-t0093",
            "p081-t0095"
          ],
          "operations": [],
          "id": "q-p081-h03-b001",
          "markdown_line": 84
        }
      ],
      "markdown_line": 80
    },
    {
      "id": "q-p081-h04",
      "title": "Linux 使用的进程间通信方式？",
      "heading-id": "p081-h04",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h04",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "管道(pipe)、流管道(s_pipe)、有名管道(FIFO)信号(signal)消息队列共享内存信号量套接字(socket)",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0102",
            "p081-t0103",
            "p081-t0104",
            "p081-t0105",
            "p081-t0106",
            "p081-t0107",
            "p081-t0108",
            "p081-t0109",
            "p081-t0111",
            "p081-t0113",
            "p081-t0116",
            "p081-t0118",
            "p081-t0119"
          ],
          "operations": [],
          "id": "q-p081-h04-b001",
          "markdown_line": 90
        }
      ],
      "markdown_line": 86
    },
    {
      "id": "q-p081-h05",
      "title": "Linux 有哪些系统日志文件？",
      "heading-id": "p081-h05",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h05",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "比较重要的是 /var/log/messages 日志文件该日志文件是许多进程日志文件的汇总，从该文件可以看出任何入侵企图或成功的入侵。另外，如果胖友的系统里有 ELK 日志集中收集，它也会被收集进去。",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0125",
            "p081-t0126",
            "p081-t0127",
            "p081-t0129",
            "p081-t0131",
            "p081-t0133",
            "p081-t0134",
            "p081-t0135",
            "p081-t0136",
            "p081-t0138"
          ],
          "operations": [],
          "id": "q-p081-h05-b001",
          "markdown_line": 96
        }
      ],
      "markdown_line": 92
    },
    {
      "id": "q-p081-h06",
      "title": "什么是交换空间",
      "heading-id": "p081-h06",
      "source-page": 81,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p081-h06",
      "pages": [
        81
      ],
      "page-range": [
        81,
        81
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "交换空间是 Linux 使用的一定空间，用于临时保存一些并发运行的程序。当 RAM 没有足够的内存来容纳正在执行的所有程序时，就会发生这种情况",
          "language": null,
          "pages": [
            81
          ],
          "span_ids": [
            "p081-t0144",
            "p081-t0145",
            "p081-t0146",
            "p081-t0147",
            "p081-t0148",
            "p081-t0149"
          ],
          "operations": [],
          "id": "q-p081-h06-b001",
          "markdown_line": 102
        }
      ],
      "markdown_line": 98
    },
    {
      "id": "q-p082-h01",
      "title": "什么是 Root 帐户",
      "heading-id": "p082-h01",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h01",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "root 帐户就像一个系统管理员帐户，允许你完全控制系统。你可以在此处创建和维护用户帐户，为每个帐户分配不同的权限。每次安装 Linux 时都是默认帐户",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0006",
            "p082-t0007",
            "p082-t0009",
            "p082-t0010",
            "p082-t0011",
            "p082-t0012",
            "p082-t0014"
          ],
          "operations": [],
          "id": "q-p082-h01-b001",
          "markdown_line": 108
        }
      ],
      "markdown_line": 104
    },
    {
      "id": "q-p082-h02",
      "title": "什么是 LILO？",
      "heading-id": "p082-h02",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h02",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "LILO 是 Linux 的引导加载程序。它主要用于将 Linux 操作系统加载到主内存中，以便它可以开始运行。",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0021",
            "p082-t0022",
            "p082-t0023",
            "p082-t0024",
            "p082-t0025",
            "p082-t0026",
            "p082-t0028"
          ],
          "operations": [],
          "id": "q-p082-h02-b001",
          "markdown_line": 114
        }
      ],
      "markdown_line": 110
    },
    {
      "id": "q-p082-h03",
      "title": "什么是 BASH？",
      "heading-id": "p082-h03",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h03",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "BASH 是 Bourne Again SHell 的缩写。它由 Steve Bourne 编写，作为原始 Bourne Shell（由/ bin / sh表示）的替代品。它结合了原始版本的 Bourne Shell 的所有功能，以及其他功能，使其更容易使用。从那以后，它已被改编为运行 Linux 的大多数系统的默认 shell。",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0035",
            "p082-t0036",
            "p082-t0037",
            "p082-t0038",
            "p082-t0039",
            "p082-t0040",
            "p082-t0041",
            "p082-t0042",
            "p082-t0043",
            "p082-t0044",
            "p082-t0045",
            "p082-t0046",
            "p082-t0047",
            "p082-t0049",
            "p082-t0050",
            "p082-t0051",
            "p082-t0052",
            "p082-t0053"
          ],
          "operations": [],
          "id": "q-p082-h03-b001",
          "markdown_line": 120
        }
      ],
      "markdown_line": 116
    },
    {
      "id": "q-p082-h04",
      "title": "什么是 CLI？",
      "heading-id": "p082-h04",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h04",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "命令行界面（英语：command-line interface，缩写]：CLI）是在图形用户界面得到普及之前使用最为广泛的用户界面，它通常不支持鼠标，用户通过键盘输入指令，计算机接收到指令后，予以执行。也有人称之为字符用户界面（CUI）。通常认为，命令行界面（CLI）没有图形用户界面（GUI）那么方便用户操作。因为，命令行界面的软件通常需要用户记忆操作的命令，但是，由于其本身的特点，命令行界面要较图形用户界面节约计算机系统的资源。在熟记命令的前提下，使用命令行界面往往要较使用图形用户界面的操作速度要快。所以，图形用户界面的操作系统中，都保留着可选的命令行界面",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0060",
            "p082-t0061",
            "p082-t0062",
            "p082-t0063",
            "p082-t0064",
            "p082-t0065",
            "p082-t0066",
            "p082-t0068",
            "p082-t0069",
            "p082-t0071",
            "p082-t0072",
            "p082-t0074",
            "p082-t0075",
            "p082-t0076",
            "p082-t0078",
            "p082-t0079",
            "p082-t0080",
            "p082-t0081",
            "p082-t0082",
            "p082-t0083",
            "p082-t0085",
            "p082-t0087",
            "p082-t0088",
            "p082-t0090",
            "p082-t0091",
            "p082-t0093"
          ],
          "operations": [],
          "id": "q-p082-h04-b001",
          "markdown_line": 126
        }
      ],
      "markdown_line": 122
    },
    {
      "id": "q-p082-h05",
      "title": "什么是 GUI？",
      "heading-id": "p082-h05",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h05",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "图形用户界面（Graphical User Interface，简称 GUI，又称图形用户接口）是指采用图形方式显示的计算机操作用户界面。 91 图形用户界面是一种人与计算机通信的界面显示格式，允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项，以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比，图形用户界面有许多优点",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0100",
            "p082-t0101",
            "p082-t0102",
            "p082-t0103",
            "p082-t0104",
            "p082-t0106",
            "p082-t0107",
            "p082-t0108",
            "p082-t0109",
            "p082-t0111",
            "p082-t0113",
            "p082-t0114",
            "p082-t0116"
          ],
          "operations": [],
          "id": "q-p082-h05-b001",
          "markdown_line": 132
        }
      ],
      "markdown_line": 128
    },
    {
      "id": "q-p082-h06",
      "title": "开源的优势是什么？",
      "heading-id": "p082-h06",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h06",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "开源允许你将软件（包括源代码）免费分发给任何感兴趣的人。然后，人们可以添加功能，甚至可以调试和更正源代码中的错误。它们甚至可以让它运行得更好，然后再次自由地重新分配这些增强的源代码。这最终使社区中的每个人受益",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0122",
            "p082-t0124",
            "p082-t0125",
            "p082-t0127",
            "p082-t0128",
            "p082-t0130"
          ],
          "operations": [],
          "id": "q-p082-h06-b001",
          "markdown_line": 138
        }
      ],
      "markdown_line": 134
    },
    {
      "id": "q-p082-h07",
      "title": "GNU 项目的重要性是什么",
      "heading-id": "p082-h07",
      "source-page": 82,
      "section": "linux",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p082-h07",
      "pages": [
        82
      ],
      "page-range": [
        82,
        82
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "这种所谓的自由软件运动具有多种优势，例如可以自由地运行程序以及根据你的需要自由学习和修改程序。它还允许你将软件副本重新分发给其他人，以及自由改进软件并将其发布给公众",
          "language": null,
          "pages": [
            82
          ],
          "span_ids": [
            "p082-t0137",
            "p082-t0139",
            "p082-t0140",
            "p082-t0142"
          ],
          "operations": [],
          "id": "q-p082-h07-b001",
          "markdown_line": 144
        }
      ],
      "markdown_line": 140
    },
    {
      "id": "q-p083-h02",
      "title": "缓存如何实现高性能？",
      "heading-id": "p083-h02",
      "source-page": 83,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p083-h02",
      "pages": [
        83
      ],
      "page-range": [
        83,
        83
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p083-image-01",
          "pages": [
            83
          ],
          "url": "/go-bank/pdf-p083-01.png",
          "span_ids": [],
          "id": "q-p083-h02-b001",
          "markdown_line": 342
        }
      ],
      "markdown_line": 338
    },
    {
      "id": "q-p083-h03",
      "title": "缓存如何实现高并发",
      "heading-id": "p083-h03",
      "source-page": 83,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p083-h03",
      "pages": [
        83
      ],
      "page-range": [
        83,
        83
      ],
      "blocks": [
        {
          "kind": "image",
          "image_id": "p083-image-02",
          "pages": [
            83
          ],
          "url": "/go-bank/pdf-p083-02.png",
          "span_ids": [],
          "id": "q-p083-h03-b001",
          "markdown_line": 348
        }
      ],
      "markdown_line": 344
    },
    {
      "id": "q-p083-h04",
      "title": "Redis 和 Memcached 的区别",
      "heading-id": "p083-h04",
      "source-page": 83,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p083-h04",
      "pages": [
        83
      ],
      "page-range": [
        83,
        83
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Redis 拥有更多的数据结构和丰富的数据操作 Redis 内存利用率高于 Memcached Redis 是单线程， Memcached 是多线程，在存储大数据的情况下，Redis 比 Memcached 稍有逊色 Memcached 没有原生的集群模式，Redis 官方支持 Redis Cluster 集群模式",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0015",
            "p083-t0016",
            "p083-t0017",
            "p083-t0018",
            "p083-t0019",
            "p083-t0020",
            "p083-t0021",
            "p083-t0022",
            "p083-t0023",
            "p083-t0024",
            "p083-t0025",
            "p083-t0026",
            "p083-t0027",
            "p083-t0028",
            "p083-t0029",
            "p083-t0030",
            "p083-t0031",
            "p083-t0032",
            "p083-t0033"
          ],
          "operations": [],
          "id": "q-p083-h04-b001",
          "markdown_line": 354
        }
      ],
      "markdown_line": 350
    },
    {
      "id": "q-p083-h05",
      "title": "用缓存可能出现的问题",
      "heading-id": "p083-h05",
      "source-page": 83,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p083-h05",
      "pages": [
        83
      ],
      "page-range": [
        83,
        83
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 数据不一致",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0038",
            "p083-t0039"
          ],
          "operations": [],
          "id": "q-p083-h05-b001",
          "markdown_line": 360
        },
        {
          "kind": "prose",
          "text": "2. 缓存雪崩",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0041",
            "p083-t0042"
          ],
          "operations": [],
          "id": "q-p083-h05-b002",
          "markdown_line": 362
        },
        {
          "kind": "prose",
          "text": "3. 缓存穿透",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0044",
            "p083-t0045"
          ],
          "operations": [],
          "id": "q-p083-h05-b003",
          "markdown_line": 364
        },
        {
          "kind": "prose",
          "text": "4. 缓存并发竞争",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0047",
            "p083-t0048"
          ],
          "operations": [],
          "id": "q-p083-h05-b004",
          "markdown_line": 366
        }
      ],
      "markdown_line": 356
    },
    {
      "id": "q-p083-h06",
      "title": "当查询缓存报错，怎么提高可用性？",
      "heading-id": "p083-h06",
      "source-page": 83,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p083-h06",
      "pages": [
        83
      ],
      "page-range": [
        83,
        83
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓存可以极大的提高查询性能，但是缓存数据丢失和缓存不可用不能影响应用的正常工作。因此，一般情况下，如果缓存出现异常，需要手动捕获这个异常，并且记录日志，并且从数据库查询数据返回给用户，而不应该导致业务不可用",
          "language": null,
          "pages": [
            83
          ],
          "span_ids": [
            "p083-t0054",
            "p083-t0056",
            "p083-t0057",
            "p083-t0059",
            "p083-t0060",
            "p083-t0062"
          ],
          "operations": [],
          "id": "q-p083-h06-b001",
          "markdown_line": 372
        }
      ],
      "markdown_line": 368
    },
    {
      "id": "q-p084-h01",
      "title": "如果避免缓存”穿透”的问题？",
      "heading-id": "p084-h01",
      "source-page": 84,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p084-h01",
      "pages": [
        84
      ],
      "page-range": [
        84,
        84
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓存穿透，是指查询一个一定不存在的数据，由于缓存是不命中时被动写，并且处于容错考虑，如果从DB 查不到数据则不写入缓存，这将导致这个不存在的数据每次请求都要到 DB 去查询，失去了缓存的意义。如何解决有两种方案可以解决：",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0008",
            "p084-t0010",
            "p084-t0012",
            "p084-t0013",
            "p084-t0015",
            "p084-t0016",
            "p084-t0017",
            "p084-t0018",
            "p084-t0020",
            "p084-t0022",
            "p084-t0024"
          ],
          "operations": [],
          "id": "q-p084-h01-b001",
          "markdown_line": 378
        },
        {
          "kind": "prose",
          "text": "1. 方案一，缓存空对象。当从 DB 查询数据为空，我们仍然将这个空结果进行缓存，具体的值需要使用特殊的标识，能和真正缓存的数据区分开。另外，需要设置较短的过期时间，一般建议不要超过5 分钟。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0025",
            "p084-t0026",
            "p084-t0028",
            "p084-t0029",
            "p084-t0030",
            "p084-t0031",
            "p084-t0033",
            "p084-t0035",
            "p084-t0037",
            "p084-t0038"
          ],
          "operations": [],
          "id": "q-p084-h01-b002",
          "markdown_line": 380
        },
        {
          "kind": "prose",
          "text": "2. 方案二，BloomFilter 布隆过滤器。在缓存服务的基础上，构建 BloomFilter 数据结构，在BloomFilter 中存储对应的 KEY 是否存在，如果存在，说明该 KEY 对应的值不为空",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0040",
            "p084-t0041",
            "p084-t0042",
            "p084-t0043",
            "p084-t0045",
            "p084-t0046",
            "p084-t0047",
            "p084-t0049",
            "p084-t0050",
            "p084-t0052",
            "p084-t0053",
            "p084-t0054",
            "p084-t0055",
            "p084-t0056"
          ],
          "operations": [],
          "id": "q-p084-h01-b003",
          "markdown_line": 382
        }
      ],
      "markdown_line": 374
    },
    {
      "id": "q-p084-h02",
      "title": "如何避免缓存“雪崩”的问题",
      "heading-id": "p084-h02",
      "source-page": 84,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p084-h02",
      "pages": [
        84
      ],
      "page-range": [
        84,
        84
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓存雪崩，是指缓存由于某些原因无法提供服务( 例如，缓存挂掉了 )，所有请求全部达到 DB 中，导致DB 负荷大增，最终挂掉的情况。预防和解决缓存雪崩的问题，可以从以下多个方面进行共同着手。 1）缓存高可用：通过搭建缓存的高可用，避免缓存挂掉导致无法提供服务的情况，从而降低出现缓存雪崩的情况。假设我们使用 Redis 作为缓存，则可以使用 Redis Sentinel 或 Redis Cluster 实现高可用。 2）本地缓存：如果使用本地缓存时，即使分布式缓存挂了，也可以将 DB 查询到的结果缓存到本地，避免后续请求全部到达 DB 中。如果我们使用 JVM，则可以使用 Ehcache、Guava Cache 实现本地缓存的功能。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0065",
            "p084-t0066",
            "p084-t0067",
            "p084-t0068",
            "p084-t0069",
            "p084-t0071",
            "p084-t0072",
            "p084-t0073",
            "p084-t0075",
            "p084-t0076",
            "p084-t0077",
            "p084-t0078",
            "p084-t0079",
            "p084-t0080",
            "p084-t0082",
            "p084-t0083",
            "p084-t0084",
            "p084-t0085",
            "p084-t0087",
            "p084-t0088",
            "p084-t0089",
            "p084-t0090",
            "p084-t0091",
            "p084-t0092",
            "p084-t0093",
            "p084-t0094",
            "p084-t0095",
            "p084-t0096",
            "p084-t0098",
            "p084-t0099",
            "p084-t0100",
            "p084-t0101",
            "p084-t0102",
            "p084-t0103",
            "p084-t0105",
            "p084-t0106",
            "p084-t0107",
            "p084-t0108",
            "p084-t0109"
          ],
          "operations": [],
          "id": "q-p084-h02-b001",
          "markdown_line": 388
        }
      ],
      "markdown_line": 384
    },
    {
      "id": "q-p084-h03",
      "title": "如何避免缓存“击穿”的问题",
      "heading-id": "p084-h03",
      "source-page": 84,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p084-h03",
      "pages": [
        84
      ],
      "page-range": [
        84,
        84
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓存击穿，是指某个极度“热点”数据在某个时间点过期时，恰好在这个时间点对这个 KEY 有大量的并发请求过来，这些请求发现缓存过期一般都会从 DB 加载数据并回设到缓存，但是这个时候大并发的请求可能会瞬间 DB 压垮。对于一些设置了过期时间的 KEY，如果这些 KEY 可能会在某些时间点被超高并发地访问，是一种非常“热点”的数据。这个时候，需要考虑这个问题。区别：",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0121",
            "p084-t0122",
            "p084-t0123",
            "p084-t0124",
            "p084-t0125",
            "p084-t0127",
            "p084-t0128",
            "p084-t0129",
            "p084-t0130",
            "p084-t0131",
            "p084-t0132",
            "p084-t0133",
            "p084-t0134",
            "p084-t0135",
            "p084-t0137",
            "p084-t0138",
            "p084-t0139",
            "p084-t0140",
            "p084-t0141",
            "p084-t0143",
            "p084-t0144",
            "p084-t0145",
            "p084-t0146",
            "p084-t0147",
            "p084-t0148",
            "p084-t0150"
          ],
          "operations": [],
          "id": "q-p084-h03-b001",
          "markdown_line": 394
        },
        {
          "kind": "prose",
          "text": "1. 和缓存“雪崩“”的区别在于，前者针对某一 KEY 缓存，后者则是很多 KEY。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0152",
            "p084-t0153",
            "p084-t0154",
            "p084-t0155",
            "p084-t0156",
            "p084-t0157",
            "p084-t0158",
            "p084-t0159",
            "p084-t0160",
            "p084-t0161"
          ],
          "operations": [],
          "id": "q-p084-h03-b002",
          "markdown_line": 396
        },
        {
          "kind": "prose",
          "text": "2. 和缓存“穿透“”的区别在于，这个 KEY 是真实存在对应的值的",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0163",
            "p084-t0164",
            "p084-t0165",
            "p084-t0166",
            "p084-t0167",
            "p084-t0168",
            "p084-t0169",
            "p084-t0170"
          ],
          "operations": [],
          "id": "q-p084-h03-b003",
          "markdown_line": 398
        },
        {
          "kind": "prose",
          "text": "有两种方案可以解决：",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0173"
          ],
          "operations": [],
          "id": "q-p084-h03-b004",
          "markdown_line": 400
        },
        {
          "kind": "prose",
          "text": "1. 方案一，使用互斥锁。请求发现缓存不存在后，去查询 DB 前，使用分布式锁，保证有且只有一个线程去查询 DB，并更新到缓存。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0174",
            "p084-t0175",
            "p084-t0176",
            "p084-t0177",
            "p084-t0179",
            "p084-t0180",
            "p084-t0181",
            "p084-t0182"
          ],
          "operations": [],
          "id": "q-p084-h03-b005",
          "markdown_line": 402
        },
        {
          "kind": "prose",
          "text": "2. 方案二，手动过期。缓存上从不设置过期时间，功能上将过期时间存在 KEY 对应的 VALUE 里。流程如下：",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0183",
            "p084-t0184",
            "p084-t0185",
            "p084-t0186",
            "p084-t0187",
            "p084-t0188",
            "p084-t0189"
          ],
          "operations": [],
          "id": "q-p084-h03-b006",
          "markdown_line": 404
        },
        {
          "kind": "prose",
          "text": "1. 获取缓存。通过 VALUE 的过期时间，判断是否过期。如果未过期，则直接返回；如果已过期，继续往下执行。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0191",
            "p084-t0192",
            "p084-t0193",
            "p084-t0194",
            "p084-t0196",
            "p084-t0197"
          ],
          "operations": [],
          "id": "q-p084-h03-b007",
          "markdown_line": 406
        },
        {
          "kind": "prose",
          "text": "2. 通过一个后台的异步线程进行缓存的构建，也就是“手动”过期。通过后台的异步线程，保证有且只有一个线程去查询 DB。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0199",
            "p084-t0200",
            "p084-t0201",
            "p084-t0202",
            "p084-t0203",
            "p084-t0204",
            "p084-t0206",
            "p084-t0207",
            "p084-t0208",
            "p084-t0209"
          ],
          "operations": [],
          "id": "q-p084-h03-b008",
          "markdown_line": 408
        },
        {
          "kind": "prose",
          "text": "3. 同时，虽然 VALUE 已经过期，还是直接返回。通过这样的方式，保证服务的可用性，虽然损失了一定的时效性。",
          "language": null,
          "pages": [
            84
          ],
          "span_ids": [
            "p084-t0211",
            "p084-t0212",
            "p084-t0213",
            "p084-t0214",
            "p084-t0216",
            "p084-t0217"
          ],
          "operations": [],
          "id": "q-p084-h03-b009",
          "markdown_line": 410
        }
      ],
      "markdown_line": 390
    },
    {
      "id": "q-p085-h01",
      "title": "什么是缓存预热？如何实现缓存预热",
      "heading-id": "p085-h01",
      "source-page": 85,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p085-h01",
      "pages": [
        85
      ],
      "page-range": [
        85,
        85
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓存预热在刚启动的缓存系统中，如果缓存中没有任何数据，如果依靠用户请求的方式重建缓存数据，那么对数据库的压力非常大，而且系统的性能开销也是巨大的。此时，最好的策略是启动时就把热点数据加载好。这样，用户请求时，直接读取的就是缓存的数据，而无需去读取 DB 重建缓存数据。举个例子，热门的或者推荐的商品，需要提前预热到缓存中如何实现一般来说，有如下几种方式来实现：数据量不大时，项目启动时，自动进行初始化。写个修复数据脚本，手动执行该脚本。写个管理界面，可以手动点击，预热对应的数据到缓存中。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0005",
            "p085-t0007",
            "p085-t0009",
            "p085-t0010",
            "p085-t0012",
            "p085-t0014",
            "p085-t0015",
            "p085-t0017",
            "p085-t0018",
            "p085-t0019",
            "p085-t0020",
            "p085-t0022",
            "p085-t0024",
            "p085-t0026",
            "p085-t0028",
            "p085-t0030",
            "p085-t0031",
            "p085-t0033"
          ],
          "operations": [],
          "id": "q-p085-h01-b001",
          "markdown_line": 416
        }
      ],
      "markdown_line": 412
    },
    {
      "id": "q-p085-h02",
      "title": "缓存数据的淘汰策略有哪些？",
      "heading-id": "p085-h02",
      "source-page": 85,
      "section": "缓存",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p085-h02",
      "pages": [
        85
      ],
      "page-range": [
        85,
        85
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "除了缓存服务器自带的缓存自动失效策略之外，我们还可以根据具体的业务需求进行自定义的“手动”缓存淘汰，常见的策略有两种： 1、定时去清理过期的缓存。 2、当有用户请求过来时，再判断这个请求所用到的缓存是否过期，过期的话就去底层系统得到新数据并更新缓存。两者各有优劣，第一种的缺点是维护大量缓存的 key 是比较麻烦的，第二种的缺点就是每次用户请求过来都要判断缓存失效，逻辑相对比较复杂！具体用哪种方案，大家可以根据自己的应用场景来权衡。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0039",
            "p085-t0041",
            "p085-t0042",
            "p085-t0043",
            "p085-t0044",
            "p085-t0045",
            "p085-t0046",
            "p085-t0047",
            "p085-t0048",
            "p085-t0049",
            "p085-t0050",
            "p085-t0051",
            "p085-t0053",
            "p085-t0055",
            "p085-t0056",
            "p085-t0057",
            "p085-t0058",
            "p085-t0060",
            "p085-t0061",
            "p085-t0063"
          ],
          "operations": [],
          "id": "q-p085-h02-b001",
          "markdown_line": 422
        }
      ],
      "markdown_line": 418
    },
    {
      "id": "q-p085-h04",
      "title": "进程和线程的区别？",
      "heading-id": "p085-h04",
      "source-page": 85,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p085-h04",
      "pages": [
        85
      ],
      "page-range": [
        85,
        85
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 调度：进程是资源管理的基本单位，线程是程序执行的基本单位。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0071",
            "p085-t0072"
          ],
          "operations": [],
          "id": "q-p085-h04-b001",
          "markdown_line": 150
        },
        {
          "kind": "prose",
          "text": "2. 切换：线程上下文切换比进程上下文切换要快得多。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0074",
            "p085-t0075"
          ],
          "operations": [],
          "id": "q-p085-h04-b002",
          "markdown_line": 152
        },
        {
          "kind": "prose",
          "text": "3. 拥有资源：进程是拥有资源的一个独立单位，线程不拥有系统资源，但是可以访问隶属于进程的资源。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0076",
            "p085-t0077",
            "p085-t0079",
            "p085-t0081",
            "p085-t0082"
          ],
          "operations": [],
          "id": "q-p085-h04-b003",
          "markdown_line": 154
        },
        {
          "kind": "prose",
          "text": "4. 系统开销：创建或撤销进程时，系统都要为之分配或回收系统资源，如内存空间，I/O 设备等，OS所付出的开销显著大于在创建或撤销线程时的开销，进程切换的开销也远大于线程切换的开销。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0083",
            "p085-t0084",
            "p085-t0086",
            "p085-t0088",
            "p085-t0089",
            "p085-t0090",
            "p085-t0091",
            "p085-t0092",
            "p085-t0094"
          ],
          "operations": [],
          "id": "q-p085-h04-b004",
          "markdown_line": 156
        }
      ],
      "markdown_line": 146
    },
    {
      "id": "q-p085-h05",
      "title": "协程与线程的区别？",
      "heading-id": "p085-h05",
      "source-page": 85,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p085-h05",
      "pages": [
        85
      ],
      "page-range": [
        85,
        85
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 线程和进程都是同步机制，而协程是异步机制。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0099",
            "p085-t0100"
          ],
          "operations": [],
          "id": "q-p085-h05-b001",
          "markdown_line": 162
        },
        {
          "kind": "prose",
          "text": "2. 线程是抢占式，而协程是非抢占式的。需要用户释放使用权切换到其他协程，因此同一时间其实只有一个协程拥有运行权，相当于单线程的能力。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0102",
            "p085-t0103",
            "p085-t0105",
            "p085-t0106"
          ],
          "operations": [],
          "id": "q-p085-h05-b002",
          "markdown_line": 164
        },
        {
          "kind": "prose",
          "text": "3. 一个线程可以有多个协程，一个进程也可以有多个协程。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0108",
            "p085-t0109"
          ],
          "operations": [],
          "id": "q-p085-h05-b003",
          "markdown_line": 166
        },
        {
          "kind": "prose",
          "text": "4. 协程不被操作系统内核管理，而完全是由程序控制。线程是被分割的 CPU 资源，协程是组织好的代码流程，线程是协程的资源。但协程不会直接使用线程，协程直接利用的是执行器关联任意线程或线程池。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0111",
            "p085-t0112",
            "p085-t0113",
            "p085-t0114",
            "p085-t0115",
            "p085-t0117",
            "p085-t0118"
          ],
          "operations": [],
          "id": "q-p085-h05-b004",
          "markdown_line": 168
        },
        {
          "kind": "prose",
          "text": "5. 协程能保留上一次调用时的状态。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0120",
            "p085-t0121"
          ],
          "operations": [],
          "id": "q-p085-h05-b005",
          "markdown_line": 170
        }
      ],
      "markdown_line": 158
    },
    {
      "id": "q-p085-h06",
      "title": "并发和并行有什么区别？",
      "heading-id": "p085-h06",
      "source-page": 85,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p085-h06",
      "pages": [
        85
      ],
      "page-range": [
        85,
        85
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "并发就是在一段时间内，多个任务都会被处理；但在某一时刻，只有一个任务在执行。单核处理器可以做到并发。比如有两个进程 A 和 B，A 运行一个时间 98 片之后，切换到 B，B 运行一个时间片之后又切换到 A。因为切换速度足够快，所以宏观上表现为在一段时间内能同时运行多个程序。并行就是在同一时刻，有多个任务在执行。这个需要多核处理器才能完成，在微观上就能同时执行多条指令，不同的程序被放到不同的处理器上运行，这个是物理上的多个进程同时进行。",
          "language": null,
          "pages": [
            85
          ],
          "span_ids": [
            "p085-t0126",
            "p085-t0128",
            "p085-t0129",
            "p085-t0130",
            "p085-t0131",
            "p085-t0132",
            "p085-t0133",
            "p085-t0134",
            "p085-t0135",
            "p085-t0136",
            "p085-t0137",
            "p085-t0138",
            "p085-t0139",
            "p085-t0140",
            "p085-t0141",
            "p085-t0142",
            "p085-t0143",
            "p085-t0144",
            "p085-t0146",
            "p085-t0148",
            "p085-t0149",
            "p085-t0151",
            "p085-t0152",
            "p085-t0154"
          ],
          "operations": [],
          "id": "q-p085-h06-b001",
          "markdown_line": 176
        }
      ],
      "markdown_line": 172
    },
    {
      "id": "q-p086-h01",
      "title": "进程与线程的切换流程",
      "heading-id": "p086-h01",
      "source-page": 86,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p086-h01",
      "pages": [
        86
      ],
      "page-range": [
        86,
        86
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "进程切换分两步：",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0005"
          ],
          "operations": [],
          "id": "q-p086-h01-b001",
          "markdown_line": 182
        },
        {
          "kind": "prose",
          "text": "1. 切换页表以使用新的地址空间，一旦去切换上下文，处理器中所有已经缓存的内存地址一瞬间都作废了。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0007",
            "p086-t0008",
            "p086-t0010",
            "p086-t0011"
          ],
          "operations": [],
          "id": "q-p086-h01-b002",
          "markdown_line": 184
        },
        {
          "kind": "prose",
          "text": "2. 切换内核栈和硬件上下文。对于 linux 来说，线程和进程的最大区别就在于地址空间，对于线程切换，第 1 步是不需要做的，第 2 步是进程和线程切换都要做的。因为每个进程都有自己的虚拟地址空间，而线程是共享所在进程的虚拟地址空间的，因此同一个进程中的线程进行线程切换时不涉及虚拟地址空间的转换",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0013",
            "p086-t0014",
            "p086-t0016",
            "p086-t0017",
            "p086-t0018",
            "p086-t0019",
            "p086-t0020",
            "p086-t0021",
            "p086-t0022",
            "p086-t0023",
            "p086-t0025",
            "p086-t0026",
            "p086-t0028",
            "p086-t0029"
          ],
          "operations": [],
          "id": "q-p086-h01-b003",
          "markdown_line": 186
        }
      ],
      "markdown_line": 178
    },
    {
      "id": "q-p086-h02",
      "title": "为什么虚拟地址空间切换会比较耗时？",
      "heading-id": "p086-h02",
      "source-page": 86,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p086-h02",
      "pages": [
        86
      ],
      "page-range": [
        86,
        86
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "进程都有自己的虚拟地址空间，把虚拟地址转换为物理地址需要查找页表，页表查找是一个很慢的过程，因此通常使用 Cache 来缓存常用的地址映射，这样可以加速页表查找，这个 Cache 就是 TLB （translation Lookaside Buffer， TLB 本质上就是一个 Cache，是用来加速页表查找的）。由于每个进程都有自己的虚拟地址空间，那么显然每个进程都有自己的页表，那么当进程切换后页表也要进行切换，页表切换后 TLB 就失效了，Cache 失效导致命中率降低，那么虚拟地址转换为物理地址就会变慢，表现出来的就是程序运行会变慢，而线程切换则不会导致 TLB 失效，因为线程无需切换地址空间，因此我们通常说线程切换要比较进程切换块，原因就在这里",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0035",
            "p086-t0037",
            "p086-t0038",
            "p086-t0039",
            "p086-t0040",
            "p086-t0042",
            "p086-t0043",
            "p086-t0044",
            "p086-t0045",
            "p086-t0046",
            "p086-t0047",
            "p086-t0048",
            "p086-t0049",
            "p086-t0050",
            "p086-t0051",
            "p086-t0052",
            "p086-t0054",
            "p086-t0055",
            "p086-t0057",
            "p086-t0058",
            "p086-t0059",
            "p086-t0060",
            "p086-t0061",
            "p086-t0062",
            "p086-t0064",
            "p086-t0065",
            "p086-t0067",
            "p086-t0068",
            "p086-t0069",
            "p086-t0071",
            "p086-t0072"
          ],
          "operations": [],
          "id": "q-p086-h02-b001",
          "markdown_line": 192
        }
      ],
      "markdown_line": 188
    },
    {
      "id": "q-p086-h03",
      "title": "进程间通信方式有哪些？",
      "heading-id": "p086-h03",
      "source-page": 86,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p086-h03",
      "pages": [
        86,
        87
      ],
      "page-range": [
        86,
        87
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 管道：管道这种通讯方式有两种限制，一是半双工的通信，数据只能单向流动，二是只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。管道可以分为两类：匿名管道和命名管道。匿名管道是单向的，只能在有亲缘关系的进程间通信；命名管道以磁盘文件的方式存在，可以实现本机任意两个进程通信。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0077",
            "p086-t0078",
            "p086-t0080",
            "p086-t0081",
            "p086-t0083",
            "p086-t0085",
            "p086-t0086",
            "p086-t0088",
            "p086-t0089",
            "p086-t0091"
          ],
          "operations": [],
          "id": "q-p086-h03-b001",
          "markdown_line": 198
        },
        {
          "kind": "prose",
          "text": "2. 信号：信号是一种比较复杂的通信方式，信号可以在任何时候发给某一进程，而无需知道该进程的状态 Linux 系统中常用信号：",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0093",
            "p086-t0094",
            "p086-t0096",
            "p086-t0097",
            "p086-t0098",
            "p086-t0099"
          ],
          "operations": [],
          "id": "q-p086-h03-b002",
          "markdown_line": 200
        },
        {
          "kind": "prose",
          "text": "1. SIGHUP：用户从终端注销，所有已启动进程都将收到该进程。系统缺省状态下对该信号的处理是终止进程。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0101",
            "p086-t0102",
            "p086-t0104",
            "p086-t0105"
          ],
          "operations": [],
          "id": "q-p086-h03-b003",
          "markdown_line": 202
        },
        {
          "kind": "prose",
          "text": "2. SIGINT：程序终止信号。程序运行过程中，按 Ctrl+C 键将产生该信号。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0107",
            "p086-t0108",
            "p086-t0109",
            "p086-t0110"
          ],
          "operations": [],
          "id": "q-p086-h03-b004",
          "markdown_line": 204
        },
        {
          "kind": "prose",
          "text": "3. SIGQUIT：程序退出信号。程序运行过程中，按 Ctrl+\\键将产生该信号。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0112",
            "p086-t0113",
            "p086-t0114",
            "p086-t0115",
            "p086-t0117"
          ],
          "operations": [],
          "id": "q-p086-h03-b005",
          "markdown_line": 206
        },
        {
          "kind": "prose",
          "text": "4. SIGBUS 和 SIGSEGV：进程访问非法地址。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0118",
            "p086-t0119",
            "p086-t0120",
            "p086-t0121"
          ],
          "operations": [],
          "id": "q-p086-h03-b006",
          "markdown_line": 208
        },
        {
          "kind": "prose",
          "text": "5. SIGFPE：运算中出现致命错误，如除零操作、数据溢出等。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0123",
            "p086-t0124"
          ],
          "operations": [],
          "id": "q-p086-h03-b007",
          "markdown_line": 210
        },
        {
          "kind": "prose",
          "text": "6. SIGKILL：用户终止进程执行信号。shell 下执行 kill -9 发送该信号。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0126",
            "p086-t0127",
            "p086-t0128",
            "p086-t0129",
            "p086-t0130",
            "p086-t0131"
          ],
          "operations": [],
          "id": "q-p086-h03-b008",
          "markdown_line": 212
        },
        {
          "kind": "prose",
          "text": "7. SIGTERM：结束进程信号。shell 下执行 kill 进程 pid 发送该信号。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0133",
            "p086-t0134",
            "p086-t0135",
            "p086-t0136",
            "p086-t0137",
            "p086-t0138",
            "p086-t0139",
            "p086-t0140"
          ],
          "operations": [],
          "id": "q-p086-h03-b009",
          "markdown_line": 214
        },
        {
          "kind": "prose",
          "text": "8. SIGALRM：定时器信号。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0142",
            "p086-t0143"
          ],
          "operations": [],
          "id": "q-p086-h03-b010",
          "markdown_line": 216
        },
        {
          "kind": "prose",
          "text": "9. SIGCLD：子进程退出信号。如果其父进程没有忽略该信号也没有处理该信号，则子进程退出后将形成僵尸进程",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0145",
            "p086-t0146",
            "p086-t0148",
            "p086-t0149"
          ],
          "operations": [],
          "id": "q-p086-h03-b011",
          "markdown_line": 218
        },
        {
          "kind": "prose",
          "text": "3. 信号量：信号量是一个计数器，可以用来控制多个进程对共享资源的访问。它常作为一种锁机制，防止某进程正在访问共享资源时，其他进程也访问该资源。因此，主要作为进程间以及同一进程内不同线程之间的同步手段",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0151",
            "p086-t0152",
            "p086-t0154",
            "p086-t0155",
            "p086-t0157",
            "p086-t0158",
            "p086-t0160"
          ],
          "operations": [],
          "id": "q-p086-h03-b012",
          "markdown_line": 220
        },
        {
          "kind": "prose",
          "text": "4. 消息队列：消息队列是消息的链接表，包括 Posix 消息队列和 System V 消息队列。有足够权限的进程可以向队列中添加消息，被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少，管道只能承载无格式字节流以及缓冲区大小受限等缺点。",
          "language": null,
          "pages": [
            86
          ],
          "span_ids": [
            "p086-t0162",
            "p086-t0163",
            "p086-t0164",
            "p086-t0165",
            "p086-t0166",
            "p086-t0167",
            "p086-t0169",
            "p086-t0170",
            "p086-t0171",
            "p086-t0173"
          ],
          "operations": [],
          "id": "q-p086-h03-b013",
          "markdown_line": 222
        },
        {
          "kind": "prose",
          "text": "5. 共享内存：共享内存就是映射一段能被其他进程所访问的内存，这段共享内存由一个进程创建，但多个进程都可以访问。共享内存是最快的 IPC 方式，它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制，如信号量，配合使用，来实现进程间的同步和通信",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0001",
            "p087-t0002",
            "p087-t0004",
            "p087-t0005",
            "p087-t0006",
            "p087-t0007",
            "p087-t0009",
            "p087-t0010",
            "p087-t0012"
          ],
          "operations": [],
          "id": "q-p086-h03-b014",
          "markdown_line": 224
        },
        {
          "kind": "prose",
          "text": "6. Socket：与其他通信机制不同的是，它可用于不同机器间的进程通信",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0014",
            "p087-t0015"
          ],
          "operations": [],
          "id": "q-p086-h03-b015",
          "markdown_line": 226
        },
        {
          "kind": "prose",
          "text": "优缺点：",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0018"
          ],
          "operations": [],
          "id": "q-p086-h03-b016",
          "markdown_line": 228
        },
        {
          "kind": "prose",
          "text": "1. 管道：速度慢，容量有限；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0020",
            "p087-t0021"
          ],
          "operations": [],
          "id": "q-p086-h03-b017",
          "markdown_line": 230
        },
        {
          "kind": "prose",
          "text": "2. Socket：任何进程间都能通讯，但速度慢；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0022",
            "p087-t0023"
          ],
          "operations": [],
          "id": "q-p086-h03-b018",
          "markdown_line": 232
        },
        {
          "kind": "prose",
          "text": "3. 消息队列：容量受到系统限制，且要注意第一次读的时候，要考虑上一次没有读完数据的问题；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0025",
            "p087-t0026",
            "p087-t0028"
          ],
          "operations": [],
          "id": "q-p086-h03-b019",
          "markdown_line": 234
        },
        {
          "kind": "prose",
          "text": "4. 信号量：不能传递复杂消息，只能用来同步；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0029",
            "p087-t0030"
          ],
          "operations": [],
          "id": "q-p086-h03-b020",
          "markdown_line": 236
        },
        {
          "kind": "prose",
          "text": "5. 共享内存区：能够很容易控制容量，速度快，但要保持同步，比如一个进程在写的时候，另一个进程要注意读写的问题，相当于线程中的线程安全，当然，共享内存区同样可以用作线程间通讯，不过没这个必要，线程间本来就已经共享了同一进程内的一块内存。",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0031",
            "p087-t0032",
            "p087-t0034",
            "p087-t0035",
            "p087-t0037",
            "p087-t0038",
            "p087-t0040"
          ],
          "operations": [],
          "id": "q-p086-h03-b021",
          "markdown_line": 238
        }
      ],
      "markdown_line": 194
    },
    {
      "id": "q-p087-h01",
      "title": "进程间同步的方式有哪些",
      "heading-id": "p087-h01",
      "source-page": 87,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p087-h01",
      "pages": [
        87
      ],
      "page-range": [
        87,
        87
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "临界区：通过对多线程的串行化来访问公共资源或一段代码，速度快，适合控制数据访问。优点：保证在某一时刻只有一个线程能访问数据的简便办法。缺点：虽然临界区同步速度很快，但却只能用来同步本进程内的线程，而不可用来同步多个进程中的线程互斥量：为协调共同对一个共享资源的单独访问而设计的。互斥量跟临界区很相似，比临界区复杂，互斥对象只有一个，只有拥有互斥对象的线程才具有访问资源的权限。优点：使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享，而且可以在不同应用程序的线程之间实现对资源的安全共享。缺点：",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0046",
            "p087-t0048",
            "p087-t0050",
            "p087-t0052",
            "p087-t0054",
            "p087-t0056",
            "p087-t0057",
            "p087-t0058",
            "p087-t0060",
            "p087-t0062",
            "p087-t0063",
            "p087-t0065",
            "p087-t0067",
            "p087-t0069",
            "p087-t0070",
            "p087-t0072"
          ],
          "operations": [],
          "id": "q-p087-h01-b001",
          "markdown_line": 244
        },
        {
          "kind": "prose",
          "text": "1. 互斥量是可以命名的，也就是说它可以跨越进程使用，所以创建互斥量需要的资源更多，所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0074",
            "p087-t0075",
            "p087-t0077",
            "p087-t0078",
            "p087-t0080"
          ],
          "operations": [],
          "id": "q-p087-h01-b002",
          "markdown_line": 246
        },
        {
          "kind": "prose",
          "text": "2. 通过互斥量可以指定资源被独占的方式使用，但如果有下面一种情况通过互斥量就无法处理，比如现在一位用户购买了一份三个并发访问许可的数据库系统，可以根据用户购买的访问许可数量来决定有多少个线程/进程能同时进行数据库操作，这时候如果利用互斥量就没有办法完成这个要求，信号量对象可以说是一种资源计数器",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0082",
            "p087-t0083",
            "p087-t0085",
            "p087-t0086",
            "p087-t0088",
            "p087-t0089",
            "p087-t0090",
            "p087-t0091",
            "p087-t0093",
            "p087-t0095"
          ],
          "operations": [],
          "id": "q-p087-h01-b003",
          "markdown_line": 248
        },
        {
          "kind": "prose",
          "text": "信号量：为控制一个具有有限数量用户资源而设计。它允许多个线程在同一时刻访问同一资源，但是需要限制在同一时刻访问此资源的最大线程数目。互斥量是信号量的一种特殊情况，当信号量的最大资源数=1 就是互斥量了。优点：适用于对 Socket（套接字）程序中线程的同步缺点:",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0098",
            "p087-t0100",
            "p087-t0102",
            "p087-t0103",
            "p087-t0105",
            "p087-t0106",
            "p087-t0107",
            "p087-t0108",
            "p087-t0110",
            "p087-t0111",
            "p087-t0112",
            "p087-t0114",
            "p087-t0115"
          ],
          "operations": [],
          "id": "q-p087-h01-b004",
          "markdown_line": 250
        },
        {
          "kind": "prose",
          "text": "1. 信号量机制必须有公共内存，不能用于分布式操作系统，这是它最大的弱点；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0116",
            "p087-t0117",
            "p087-t0119"
          ],
          "operations": [],
          "id": "q-p087-h01-b005",
          "markdown_line": 252
        },
        {
          "kind": "prose",
          "text": "2. 信号量机制功能强大，但使用时对信号量的操作分散，而且难以控制，读写和维护都很困难，加重了程序员的编码负担；",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0121",
            "p087-t0122",
            "p087-t0124",
            "p087-t0126",
            "p087-t0127"
          ],
          "operations": [],
          "id": "q-p087-h01-b006",
          "markdown_line": 254
        },
        {
          "kind": "prose",
          "text": "3. 核心操作 P-V 分散在各用户程序的代码中，不易控制和管理，一旦错误，后果严重，且不易发现和纠正。",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0129",
            "p087-t0130",
            "p087-t0131",
            "p087-t0132",
            "p087-t0134",
            "p087-t0135"
          ],
          "operations": [],
          "id": "q-p087-h01-b007",
          "markdown_line": 256
        },
        {
          "kind": "prose",
          "text": "事件：用来通知线程有一些事件已发生，从而启动后继任务的开始。 102 优点：事件对象通过通知操作的方式来保持线程的同步，并且可以实现不同进程中的线程同步操作。",
          "language": null,
          "pages": [
            87
          ],
          "span_ids": [
            "p087-t0138",
            "p087-t0140",
            "p087-t0141",
            "p087-t0142",
            "p087-t0143",
            "p087-t0145"
          ],
          "operations": [],
          "id": "q-p087-h01-b008",
          "markdown_line": 258
        }
      ],
      "markdown_line": 240
    },
    {
      "id": "q-p088-h01",
      "title": "线程同步的方式有哪些",
      "heading-id": "p088-h01",
      "source-page": 88,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p088-h01",
      "pages": [
        88
      ],
      "page-range": [
        88,
        88
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 临界区：当多个线程访问一个独占性共享资源时，可以使用临界区对象。拥有临界区的线程可以访问被保护起来的资源或代码段，其他线程若想访问，则被挂起，直到拥有临界区的线程放弃临界区为止，以此达到用原子方式操作共享资源的目的。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0004",
            "p088-t0005",
            "p088-t0007",
            "p088-t0008",
            "p088-t0010",
            "p088-t0011",
            "p088-t0013",
            "p088-t0015"
          ],
          "operations": [],
          "id": "q-p088-h01-b001",
          "markdown_line": 264
        },
        {
          "kind": "prose",
          "text": "2. 事件：事件机制，则允许一个线程在处理完一个任务后，主动唤醒另外一个线程执行任务。互斥量：互斥对象和临界区对象非常相似，只是其允许在进程间使用，而临界区只限制与同一进程的各个线程之间使用，但是更节省资源，更有效率。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0017",
            "p088-t0018",
            "p088-t0020",
            "p088-t0022",
            "p088-t0023",
            "p088-t0025",
            "p088-t0026"
          ],
          "operations": [],
          "id": "q-p088-h01-b002",
          "markdown_line": 266
        },
        {
          "kind": "prose",
          "text": "3. 信号量：当需要一个计数器来限制可以使用某共享资源的线程数目时，可以使用“信号量”对象区别：",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0028",
            "p088-t0029",
            "p088-t0031",
            "p088-t0032",
            "p088-t0033",
            "p088-t0034",
            "p088-t0035",
            "p088-t0037",
            "p088-t0038"
          ],
          "operations": [],
          "id": "q-p088-h01-b003",
          "markdown_line": 268
        },
        {
          "kind": "prose",
          "text": "1. 互斥量与临界区的作用非常相似，但互斥量是可以命名的，也就是说互斥量可以跨越进程使用，但创建互斥量需要的资源更多，所以如果只为了在进程内部是用的话使用临界区会带来速度上的优势并能够减少资源占用量。因为互斥量是跨进程的互斥量一旦被创建，就可以通过名字打开它。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0040",
            "p088-t0041",
            "p088-t0043",
            "p088-t0044",
            "p088-t0046",
            "p088-t0047",
            "p088-t0049",
            "p088-t0051",
            "p088-t0052"
          ],
          "operations": [],
          "id": "q-p088-h01-b004",
          "markdown_line": 270
        },
        {
          "kind": "prose",
          "text": "2. 互斥量，信号量，事件都可以被跨越进程使用来进行同步数据操作。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0054",
            "p088-t0055"
          ],
          "operations": [],
          "id": "q-p088-h01-b005",
          "markdown_line": 272
        }
      ],
      "markdown_line": 260
    },
    {
      "id": "q-p088-h02",
      "title": "线程的分类",
      "heading-id": "p088-h02",
      "source-page": 88,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p088-h02",
      "pages": [
        88
      ],
      "page-range": [
        88,
        88
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "从线程的运行空间来说，分为用户级线程（user-level thread, ULT）和内核级线程（kernel-level, KLT）内核级线程：这类线程依赖于内核，又称为内核支持的线程或轻量级进程。无论是在用户程序中的线程还是系统进程中的线程，它们的创建、撤销和切换都由内核实现。比如英特尔 i5-8250U 是 4 核 8 线程，这里的线程就是内核级线程用户级线程：它仅存在于用户级中，这种线程是不依赖于操作系统核心的。应用进程利用线程库来完成其创建和管理，速度比较快，操作系统内核无法感知用户级线程的存在。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0061",
            "p088-t0062",
            "p088-t0063",
            "p088-t0065",
            "p088-t0066",
            "p088-t0067",
            "p088-t0068",
            "p088-t0070",
            "p088-t0072",
            "p088-t0073",
            "p088-t0075",
            "p088-t0076",
            "p088-t0077",
            "p088-t0078",
            "p088-t0079",
            "p088-t0080",
            "p088-t0081",
            "p088-t0082",
            "p088-t0084",
            "p088-t0086",
            "p088-t0087",
            "p088-t0089"
          ],
          "operations": [],
          "id": "q-p088-h02-b001",
          "markdown_line": 278
        }
      ],
      "markdown_line": 274
    },
    {
      "id": "q-p088-h03",
      "title": "什么是临界区，如何解决冲突？",
      "heading-id": "p088-h03",
      "source-page": 88,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p088-h03",
      "pages": [
        88
      ],
      "page-range": [
        88,
        88
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "每个进程中访问临界资源的那段程序称为临界区，一次仅允许一个进程使用的资源称为临界资源。解决冲突的办法：",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0095",
            "p088-t0097",
            "p088-t0099",
            "p088-t0100",
            "p088-t0102"
          ],
          "operations": [],
          "id": "q-p088-h03-b001",
          "markdown_line": 284
        },
        {
          "kind": "prose",
          "text": "1. 如果有若干进程要求进入空闲的临界区，一次仅允许一个进程进入，如已有进程进入自己的临界区，则其它所有试图进入临界区的进程必须等待；",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0103",
            "p088-t0104",
            "p088-t0106",
            "p088-t0107"
          ],
          "operations": [],
          "id": "q-p088-h03-b002",
          "markdown_line": 286
        },
        {
          "kind": "prose",
          "text": "2. 进入临界区的进程要在有限时间内退出。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0109",
            "p088-t0110"
          ],
          "operations": [],
          "id": "q-p088-h03-b003",
          "markdown_line": 288
        },
        {
          "kind": "prose",
          "text": "3. 如果进程不能进入自己的临界区，则应让出 CPU，避免进程出现“忙等”现象。",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0112",
            "p088-t0113",
            "p088-t0114",
            "p088-t0115",
            "p088-t0116",
            "p088-t0117",
            "p088-t0118",
            "p088-t0119",
            "p088-t0121"
          ],
          "operations": [],
          "id": "q-p088-h03-b004",
          "markdown_line": 290
        }
      ],
      "markdown_line": 280
    },
    {
      "id": "q-p088-h04",
      "title": "什么是死锁？死锁产生的条件？",
      "heading-id": "p088-h04",
      "source-page": 88,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p088-h04",
      "pages": [
        88,
        89
      ],
      "page-range": [
        88,
        89
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "什么是死锁：在两个或者多个并发进程中，如果每个进程持有某种资源而又等待其它进程释放它或它们现在保持着的资源，在未改变这种状态之前都不能向前推进，称这一组进程产生了死锁。通俗的讲就是两个或多个进程无限期的阻塞、相互等待的一种状态。死锁产生的四个必要条件",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0127",
            "p088-t0129",
            "p088-t0131",
            "p088-t0132",
            "p088-t0134",
            "p088-t0135",
            "p088-t0137",
            "p088-t0139"
          ],
          "operations": [],
          "id": "q-p088-h04-b001",
          "markdown_line": 296
        },
        {
          "kind": "prose",
          "text": "1. 互斥条件：一个资源一次只能被一个进程使用",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0141",
            "p088-t0142"
          ],
          "operations": [],
          "id": "q-p088-h04-b002",
          "markdown_line": 298
        },
        {
          "kind": "prose",
          "text": "2. 请求与保持条件：一个进程因请求资源而阻塞时，对已获得资源保持不放",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0144",
            "p088-t0145"
          ],
          "operations": [],
          "id": "q-p088-h04-b003",
          "markdown_line": 300
        },
        {
          "kind": "prose",
          "text": "3. 不剥夺条件：进程获得的资源，在未完全使用完之前，不能强行剥夺",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0147",
            "p088-t0148"
          ],
          "operations": [],
          "id": "q-p088-h04-b004",
          "markdown_line": 302
        },
        {
          "kind": "prose",
          "text": "4. 循环等待条件：若干进程之间形成一种头尾相接的环形等待资源关系",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0150",
            "p088-t0151"
          ],
          "operations": [],
          "id": "q-p088-h04-b005",
          "markdown_line": 304
        },
        {
          "kind": "prose",
          "text": "如何处理死锁问题",
          "language": null,
          "pages": [
            88
          ],
          "span_ids": [
            "p088-t0154"
          ],
          "operations": [],
          "id": "q-p088-h04-b006",
          "markdown_line": 306
        },
        {
          "kind": "prose",
          "text": "1. 忽略该问题。例如鸵鸟算法，该算法可以应用在极少发生死锁的的情况下。为什么叫鸵鸟算法呢，因为传说中鸵鸟看到危险就把头埋在地底下，可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗铃有点像。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0001",
            "p089-t0002",
            "p089-t0004",
            "p089-t0005",
            "p089-t0007",
            "p089-t0008"
          ],
          "operations": [],
          "id": "q-p088-h04-b007",
          "markdown_line": 308
        },
        {
          "kind": "prose",
          "text": "2. 检测死锁并且恢复。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0010",
            "p089-t0011"
          ],
          "operations": [],
          "id": "q-p088-h04-b008",
          "markdown_line": 310
        },
        {
          "kind": "prose",
          "text": "3. 仔细地对资源进行动态分配，以避免死锁。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0013",
            "p089-t0014"
          ],
          "operations": [],
          "id": "q-p088-h04-b009",
          "markdown_line": 312
        },
        {
          "kind": "prose",
          "text": "4. 通过破除死锁四个必要条件之一，来防止死锁产生。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0016",
            "p089-t0017"
          ],
          "operations": [],
          "id": "q-p088-h04-b010",
          "markdown_line": 314
        }
      ],
      "markdown_line": 292
    },
    {
      "id": "q-p089-h01",
      "title": "进程调度策略有哪几种",
      "heading-id": "p089-h01",
      "source-page": 89,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p089-h01",
      "pages": [
        89
      ],
      "page-range": [
        89,
        89
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 先来先服务：非抢占式的调度算法，按照请求的顺序进行调度。有利于长作业，但不利于短作业，因为短作业必须一直等待前面的长作业执行完毕才能执行，而长作业又需要执行很长时间，造成了短作业等待时间过长。另外，对 I/O 密集型进程也不利，因为这种进程每次进行 I/O 操作之后又得重新排队",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0022",
            "p089-t0023",
            "p089-t0025",
            "p089-t0026",
            "p089-t0028",
            "p089-t0029",
            "p089-t0031",
            "p089-t0032",
            "p089-t0033",
            "p089-t0034",
            "p089-t0035",
            "p089-t0037",
            "p089-t0038"
          ],
          "operations": [],
          "id": "q-p089-h01-b001",
          "markdown_line": 320
        },
        {
          "kind": "prose",
          "text": "2. 短作业优先：非抢占式的调度算法，按估计运行时间最短的顺序进行调度。长作业有可能会饿死，处于一直等待短作业执行完毕的状态。因为如果一直有短作业到来，那么长作业永远得不到调度。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0040",
            "p089-t0041",
            "p089-t0043",
            "p089-t0044",
            "p089-t0046"
          ],
          "operations": [],
          "id": "q-p089-h01-b002",
          "markdown_line": 322
        },
        {
          "kind": "prose",
          "text": "3. 最短剩余时间优先：最短作业优先的抢占式版本，按剩余运行时间的顺序进行调度。当一个新的作业到达时，其整个运行时间与当前进程的剩余时间作比较。如果新的进程需要的时间更少，则挂起当前进程，运行新的进程。否则新的进程等待",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0048",
            "p089-t0049",
            "p089-t0051",
            "p089-t0053",
            "p089-t0054",
            "p089-t0056",
            "p089-t0057",
            "p089-t0059"
          ],
          "operations": [],
          "id": "q-p089-h01-b003",
          "markdown_line": 324
        },
        {
          "kind": "prose",
          "text": "4. 时间片轮转：将所有就绪进程按 FCFS 的原则排成一个队列，每次调度时，把 CPU 时间分配给队首进程，该进程可以执行一个时间片。当时间片用完时，由计时器发出时钟中断，调度程序便停止该进程的执行，并将它送往就绪队列的末尾，同时继续把 CPU 时间分配给队首的进程。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0061",
            "p089-t0062",
            "p089-t0063",
            "p089-t0064",
            "p089-t0065",
            "p089-t0066",
            "p089-t0067",
            "p089-t0069",
            "p089-t0070",
            "p089-t0072",
            "p089-t0073",
            "p089-t0074"
          ],
          "operations": [],
          "id": "q-p089-h01-b004",
          "markdown_line": 326
        },
        {
          "kind": "prose",
          "text": "1. 时间片轮转算法的效率和时间片的大小有很大关系：因为进程切换都要保存进程的信息并且载入新进程的信息，如果时间片太小，会导致进程切换得太频繁，在进程切换上就会花过多时间。而如果时间片过长，那么实时性就不能得到保证",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0076",
            "p089-t0077",
            "p089-t0079",
            "p089-t0080",
            "p089-t0082",
            "p089-t0083",
            "p089-t0085",
            "p089-t0087"
          ],
          "operations": [],
          "id": "q-p089-h01-b005",
          "markdown_line": 328
        },
        {
          "kind": "prose",
          "text": "5. 优先级调度：为每个进程分配一个优先级，按优先级进行调度。为了防止低优先级的进程永远等不到调度，可以随着时间的推移增加等待进程的优先级",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0089",
            "p089-t0090",
            "p089-t0092",
            "p089-t0093",
            "p089-t0095"
          ],
          "operations": [],
          "id": "q-p089-h01-b006",
          "markdown_line": 330
        }
      ],
      "markdown_line": 316
    },
    {
      "id": "q-p089-h02",
      "title": "进程有哪些状态",
      "heading-id": "p089-h02",
      "source-page": 89,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p089-h02",
      "pages": [
        89,
        90
      ],
      "page-range": [
        89,
        90
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "进程一共有 5 种状态，分别是创建、就绪、运行（执行）、终止、阻塞。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0101",
            "p089-t0102",
            "p089-t0103"
          ],
          "operations": [],
          "id": "q-p089-h02-b001",
          "markdown_line": 336
        },
        {
          "kind": "image",
          "image_id": "p089-image-01",
          "pages": [
            89
          ],
          "url": "/go-bank/pdf-p089-01.png",
          "span_ids": [],
          "id": "q-p089-h02-b002",
          "markdown_line": 338
        },
        {
          "kind": "prose",
          "text": "1. 运行状态就是进程正在 CPU 上运行。在单处理机环境下，每一时刻最多只有一个进程处于运行状态。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0104",
            "p089-t0105",
            "p089-t0106",
            "p089-t0107",
            "p089-t0109",
            "p089-t0110"
          ],
          "operations": [],
          "id": "q-p089-h02-b003",
          "markdown_line": 340
        },
        {
          "kind": "prose",
          "text": "2. 就绪状态就是说进程已处于准备运行的状态，即进程获得了除 CPU 之外的一切所需资源，一旦得到 CPU 即可运行。",
          "language": null,
          "pages": [
            89
          ],
          "span_ids": [
            "p089-t0112",
            "p089-t0113",
            "p089-t0114",
            "p089-t0115",
            "p089-t0117",
            "p089-t0118",
            "p089-t0119",
            "p089-t0120"
          ],
          "operations": [],
          "id": "q-p089-h02-b004",
          "markdown_line": 342
        },
        {
          "kind": "prose",
          "text": "3. 阻塞状态就是进程正在等待某一事件而暂停运行，比如等待某资源为可用或等待 I/O 完成。即使CPU 空闲，该进程也不能运行。",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0001",
            "p090-t0002",
            "p090-t0004",
            "p090-t0005",
            "p090-t0006",
            "p090-t0008",
            "p090-t0009"
          ],
          "operations": [],
          "id": "q-p089-h02-b005",
          "markdown_line": 344
        },
        {
          "kind": "prose",
          "text": "4. 运行态→阻塞态：往往是由于等待外设，等待主存等资源分配或等待人工干预而引起的。",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0011",
            "p090-t0012",
            "p090-t0014",
            "p090-t0016",
            "p090-t0013"
          ],
          "operations": [],
          "id": "q-p089-h02-b006",
          "markdown_line": 346
        },
        {
          "kind": "prose",
          "text": "5. 阻塞态→就绪态：则是等待的条件已满足，只需分配到处理器后就能运行。",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0018",
            "p090-t0019",
            "p090-t0021",
            "p090-t0020"
          ],
          "operations": [],
          "id": "q-p089-h02-b007",
          "markdown_line": 348
        },
        {
          "kind": "prose",
          "text": "6. 运行态→就绪态：不是由于自身原因，而是由外界原因使运行状态的进程让出处理器，这时候就变成就绪态。例如时间片用完，或有更高优先级的进程来抢占处理器等。",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0023",
            "p090-t0024",
            "p090-t0026",
            "p090-t0028",
            "p090-t0025",
            "p090-t0029",
            "p090-t0031"
          ],
          "operations": [],
          "id": "q-p089-h02-b008",
          "markdown_line": 350
        },
        {
          "kind": "prose",
          "text": "7. 就绪态→运行态：系统按某种策略选中就绪队列中的一个进程占用处理器，此时就变成了运行态",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0033",
            "p090-t0034",
            "p090-t0036",
            "p090-t0038",
            "p090-t0035"
          ],
          "operations": [],
          "id": "q-p089-h02-b009",
          "markdown_line": 352
        }
      ],
      "markdown_line": 332
    },
    {
      "id": "q-p090-h01",
      "title": "什么是分页？",
      "heading-id": "p090-h01",
      "source-page": 90,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p090-h01",
      "pages": [
        90
      ],
      "page-range": [
        90,
        90
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "把内存空间划分为大小相等且固定的块，作为主存的基本单位。因为程序数据存储在不同的页面中，而页面又离散的分布在内存中，因此需要一个页表来记录映射关系，以实现从页号到物理块号的映射。访问分页系统中内存数据需要两次的内存访问 (一次是从内存中访问页表，从中找到指定的物理块号，加上页内偏移得到实际物理地址；第二次就是根据第一次得到的物理地址访问内存取出数据)。",
          "language": null,
          "pages": [
            90
          ],
          "span_ids": [
            "p090-t0044",
            "p090-t0046",
            "p090-t0047",
            "p090-t0049",
            "p090-t0051",
            "p090-t0052",
            "p090-t0053",
            "p090-t0054",
            "p090-t0056",
            "p090-t0057",
            "p090-t0059",
            "p090-t0060",
            "p090-t0061"
          ],
          "operations": [],
          "id": "q-p090-h01-b001",
          "markdown_line": 358
        },
        {
          "kind": "image",
          "image_id": "p090-image-01",
          "pages": [
            90
          ],
          "url": "/go-bank/pdf-p090-01.png",
          "span_ids": [],
          "id": "q-p090-h01-b002",
          "markdown_line": 360
        }
      ],
      "markdown_line": 354
    },
    {
      "id": "q-p090-h02",
      "title": "什么是分段",
      "heading-id": "p090-h02",
      "source-page": 90,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p090-h02",
      "pages": [
        90,
        91
      ],
      "page-range": [
        90,
        91
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "分页是为了提高内存利用率，而分段是为了满足程序员在编写代码的时候的一些逻辑需求(比如数据共享，数据保护，动态链接等)。分段内存管理当中，地址是二维的，一维是段号，二维是段内地址；其中每个段的长度是不一样的，而且每个段内部都是从 0 开始编址的。由于分段管理中，每个段内部是连续内存分配，但是段和段之间是离散分配的，因此也存在一个逻辑地址到物理地址的映射关系，相应的就是段表机制。",
          "language": null,
          "pages": [
            90,
            91
          ],
          "span_ids": [
            "p090-t0066",
            "p090-t0068",
            "p090-t0069",
            "p090-t0070",
            "p090-t0071",
            "p090-t0072",
            "p090-t0073",
            "p090-t0075",
            "p090-t0076",
            "p090-t0078",
            "p090-t0079",
            "p090-t0080",
            "p090-t0082",
            "p090-t0083",
            "p090-t0085",
            "p091-t0001"
          ],
          "operations": [],
          "id": "q-p090-h02-b001",
          "markdown_line": 366
        },
        {
          "kind": "image",
          "image_id": "p091-image-01",
          "pages": [
            91
          ],
          "url": "/go-bank/pdf-p091-01.png",
          "span_ids": [],
          "id": "q-p090-h02-b002",
          "markdown_line": 368
        }
      ],
      "markdown_line": 362
    },
    {
      "id": "q-p091-h01",
      "title": "分页和分段有什区别",
      "heading-id": "p091-h01",
      "source-page": 91,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p091-h01",
      "pages": [
        91
      ],
      "page-range": [
        91,
        91
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 分页对程序员是透明的，但是分段需要程序员显式划分每个段。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0005",
            "p091-t0006"
          ],
          "operations": [],
          "id": "q-p091-h01-b001",
          "markdown_line": 374
        },
        {
          "kind": "prose",
          "text": "2. 分页的地址空间是一维地址空间，分段是二维的。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0008",
            "p091-t0009"
          ],
          "operations": [],
          "id": "q-p091-h01-b002",
          "markdown_line": 376
        },
        {
          "kind": "prose",
          "text": "3. 页的大小不可变，段的大小可以动态改变。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0011",
            "p091-t0012"
          ],
          "operations": [],
          "id": "q-p091-h01-b003",
          "markdown_line": 378
        },
        {
          "kind": "prose",
          "text": "4. 分页主要用于实现虚拟内存，从而获得更大的地址空间；分段主要是为了使程序和数据可以被划分为逻辑上独立的地址空间并且有助于共享和保护。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0014",
            "p091-t0015",
            "p091-t0016",
            "p091-t0018"
          ],
          "operations": [],
          "id": "q-p091-h01-b004",
          "markdown_line": 380
        }
      ],
      "markdown_line": 370
    },
    {
      "id": "q-p091-h02",
      "title": "什么是交换空间",
      "heading-id": "p091-h02",
      "source-page": 91,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p091-h02",
      "pages": [
        91
      ],
      "page-range": [
        91,
        91
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "操作系统把物理内存(physical RAM)分成一块一块的小内存，每一块内存被称为页(page)。当内存资源不足时，Linux 把某些页的内容转移至硬盘上的一块空间上，以释放内存空间。硬盘上的那块空间叫做交换空间(swap space),而这一过程被称为交换(swapping)。物理内存和交换空间的总容量就是虚拟内存的可用容量。用途：",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0024",
            "p091-t0025",
            "p091-t0026",
            "p091-t0028",
            "p091-t0029",
            "p091-t0030",
            "p091-t0031",
            "p091-t0032",
            "p091-t0033",
            "p091-t0035",
            "p091-t0036",
            "p091-t0037",
            "p091-t0038",
            "p091-t0040",
            "p091-t0041",
            "p091-t0042",
            "p091-t0043",
            "p091-t0045",
            "p091-t0047"
          ],
          "operations": [],
          "id": "q-p091-h02-b001",
          "markdown_line": 386
        },
        {
          "kind": "prose",
          "text": "1. 物理内存不足时一些不常用的页可以被交换出去，腾给系统。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0049",
            "p091-t0050"
          ],
          "operations": [],
          "id": "q-p091-h02-b002",
          "markdown_line": 388
        },
        {
          "kind": "prose",
          "text": "2. 程序启动时很多内存页被用来初始化，之后便不再需要，可以交换出去",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0052",
            "p091-t0053"
          ],
          "operations": [],
          "id": "q-p091-h02-b003",
          "markdown_line": 390
        }
      ],
      "markdown_line": 382
    },
    {
      "id": "q-p091-h03",
      "title": "页面替换算法有哪些",
      "heading-id": "p091-h03",
      "source-page": 91,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p091-h03",
      "pages": [
        91,
        92
      ],
      "page-range": [
        91,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在程序运行过程中，如果要访问的页面不在内存中，就发生缺页中断从而将该页调入内存中。此时如果内存已无空闲空间，系统必须从内存中调出一个页面到磁盘对换区中来腾出空间。包括以下算法：",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0059",
            "p091-t0061",
            "p091-t0062",
            "p091-t0064",
            "p091-t0066"
          ],
          "operations": [],
          "id": "q-p091-h03-b001",
          "markdown_line": 396
        },
        {
          "kind": "prose",
          "text": "1. 最佳算法：所选择的被换出的页面将是最长时间内不再被访问，通常可以保证获得最低的缺页率。这是一种理论上的算法，因为无法知道一个页面多长时间不再被访问。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0068",
            "p091-t0069",
            "p091-t0071",
            "p091-t0072",
            "p091-t0074"
          ],
          "operations": [],
          "id": "q-p091-h03-b002",
          "markdown_line": 398
        },
        {
          "kind": "prose",
          "text": "2. 先进先出：选择换出的页面是最先进入的页面。该算法将那些经常被访问的页面也被换出，从而使缺页率升高。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0076",
            "p091-t0077",
            "p091-t0079",
            "p091-t0080"
          ],
          "operations": [],
          "id": "q-p091-h03-b003",
          "markdown_line": 400
        },
        {
          "kind": "prose",
          "text": "3. LRU：虽然无法知道将来要使用的页面情况，但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。为了实现 LRU，需要在内存中维护一个所有页面的链表。当一个页面被访问时，将这个页面移到链表表头。这样就能保证链表表尾的页面是最近最久未访问的。因为每次访问都需要更新链表，因此这种方式实现的 LRU 代价很高。",
          "language": null,
          "pages": [
            91
          ],
          "span_ids": [
            "p091-t0082",
            "p091-t0083",
            "p091-t0085",
            "p091-t0086",
            "p091-t0087",
            "p091-t0088",
            "p091-t0089",
            "p091-t0090",
            "p091-t0092",
            "p091-t0093",
            "p091-t0095",
            "p091-t0096",
            "p091-t0098",
            "p091-t0099",
            "p091-t0100"
          ],
          "operations": [],
          "id": "q-p091-h03-b004",
          "markdown_line": 402
        },
        {
          "kind": "prose",
          "text": "4. 时钟算法：时钟算法使用环形链表将页面连接起来，再使用一个指针指向最老的页面。它将整个环形链表的每一个页面做一个标记，如果标记是 0，那么暂时就不会被替换，然后时钟算法遍历整个环，遇到标记为 1 的就替换，否则将标记为 0 的标记为 1",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0001",
            "p092-t0002",
            "p092-t0004",
            "p092-t0005",
            "p092-t0006",
            "p092-t0007",
            "p092-t0009",
            "p092-t0010",
            "p092-t0011",
            "p092-t0012",
            "p092-t0014",
            "p092-t0015",
            "p092-t0016",
            "p092-t0017"
          ],
          "operations": [],
          "id": "q-p091-h03-b005",
          "markdown_line": 404
        }
      ],
      "markdown_line": 392
    },
    {
      "id": "q-p092-h01",
      "title": "什么是缓冲区溢出？有什么危害？",
      "heading-id": "p092-h01",
      "source-page": 92,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p092-h01",
      "pages": [
        92
      ],
      "page-range": [
        92,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量，溢出的数据覆盖在合法数据上。危害有以下两点：",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0022",
            "p092-t0024",
            "p092-t0025",
            "p092-t0027"
          ],
          "operations": [],
          "id": "q-p092-h01-b001",
          "markdown_line": 410
        },
        {
          "kind": "prose",
          "text": "1. 程序崩溃，导致拒绝额服务",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0029",
            "p092-t0030"
          ],
          "operations": [],
          "id": "q-p092-h01-b002",
          "markdown_line": 412
        },
        {
          "kind": "prose",
          "text": "2. 跳转并且执行一段恶意代码",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0032",
            "p092-t0033"
          ],
          "operations": [],
          "id": "q-p092-h01-b003",
          "markdown_line": 414
        },
        {
          "kind": "prose",
          "text": "造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0035"
          ],
          "operations": [],
          "id": "q-p092-h01-b004",
          "markdown_line": 416
        }
      ],
      "markdown_line": 406
    },
    {
      "id": "q-p092-h02",
      "title": "什么是虚拟内存",
      "heading-id": "p092-h02",
      "source-page": 92,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p092-h02",
      "pages": [
        92
      ],
      "page-range": [
        92,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "虚拟内存就是说，让物理内存扩充成更大的逻辑内存，从而让程序获得更多的可用内存。虚拟内存使用部分加载的技术，让一个进程或者资源的某些页面加载进内存，从而能够加载更多的进程，甚至能加载比内存大的进程，这样看起来好像内存变大了，这部分内存其实包含了磁盘或者硬盘，并且就叫做虚拟内存",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0040",
            "p092-t0042",
            "p092-t0043",
            "p092-t0045",
            "p092-t0046",
            "p092-t0048",
            "p092-t0049"
          ],
          "operations": [],
          "id": "q-p092-h02-b001",
          "markdown_line": 422
        }
      ],
      "markdown_line": 418
    },
    {
      "id": "q-p092-h03",
      "title": "讲一讲 IO 多路复用？",
      "heading-id": "p092-h03",
      "source-page": 92,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p092-h03",
      "pages": [
        92
      ],
      "page-range": [
        92,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "IO 多路复用是指内核一旦发现进程指定的一个或者多个 IO 条件准备读取，它就通知该进程。IO 多路复用适用如下场合：",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0056",
            "p092-t0057",
            "p092-t0058",
            "p092-t0059",
            "p092-t0061",
            "p092-t0062",
            "p092-t0063",
            "p092-t0064"
          ],
          "operations": [],
          "id": "q-p092-h03-b001",
          "markdown_line": 428
        },
        {
          "kind": "prose",
          "text": "1. 当客户处理多个描述字时（一般是交互式输入和网络套接口），必须使用 I/O 复用。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0066",
            "p092-t0067",
            "p092-t0068",
            "p092-t0069"
          ],
          "operations": [],
          "id": "q-p092-h03-b002",
          "markdown_line": 430
        },
        {
          "kind": "prose",
          "text": "2. 当一个客户同时处理多个套接口时，而这种情况是可能的，但很少出现。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0071",
            "p092-t0072"
          ],
          "operations": [],
          "id": "q-p092-h03-b003",
          "markdown_line": 432
        },
        {
          "kind": "prose",
          "text": "3. 如果一个 TCP 服务器既要处理监听套接口，又要处理已连接套接口，一般也要用到 I/O 复用。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0074",
            "p092-t0075",
            "p092-t0076",
            "p092-t0077",
            "p092-t0079",
            "p092-t0080",
            "p092-t0081"
          ],
          "operations": [],
          "id": "q-p092-h03-b004",
          "markdown_line": 434
        },
        {
          "kind": "prose",
          "text": "4. 如果一个服务器即要处理 TCP，又要处理 UDP，一般要使用 I/O 复用。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0083",
            "p092-t0084",
            "p092-t0085",
            "p092-t0086",
            "p092-t0087",
            "p092-t0088",
            "p092-t0089",
            "p092-t0090"
          ],
          "operations": [],
          "id": "q-p092-h03-b005",
          "markdown_line": 436
        },
        {
          "kind": "prose",
          "text": "5. 如果一个服务器要处理多个服务或多个协议，一般要使用 I/O 复用。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0092",
            "p092-t0093",
            "p092-t0094",
            "p092-t0095"
          ],
          "operations": [],
          "id": "q-p092-h03-b006",
          "markdown_line": 438
        },
        {
          "kind": "prose",
          "text": "6. 与多进程和多线程技术相比，I/O 多路复用技术的最大优势是系统开销小，系统不必创建进程/线程，也不必维护这些进程/线程，从而大大减小了系统的开销",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0097",
            "p092-t0098",
            "p092-t0099",
            "p092-t0100",
            "p092-t0102",
            "p092-t0103",
            "p092-t0104",
            "p092-t0105",
            "p092-t0106",
            "p092-t0107",
            "p092-t0109"
          ],
          "operations": [],
          "id": "q-p092-h03-b007",
          "markdown_line": 440
        }
      ],
      "markdown_line": 424
    },
    {
      "id": "q-p092-h04",
      "title": "硬链接和软链接有什么区别",
      "heading-id": "p092-h04",
      "source-page": 92,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p092-h04",
      "pages": [
        92
      ],
      "page-range": [
        92,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 硬链接就是在目录下创建一个条目，记录着文件名与 inode 编号，这个 inode 就是源文件的inode。删除任意一个条目，文件还是存在，只要引用数量不为 0。但是硬链接有限制，它不能跨越文件系统，也不能对目录进行链接",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0114",
            "p092-t0115",
            "p092-t0116",
            "p092-t0117",
            "p092-t0118",
            "p092-t0119",
            "p092-t0121",
            "p092-t0122",
            "p092-t0124",
            "p092-t0125",
            "p092-t0126",
            "p092-t0127",
            "p092-t0129"
          ],
          "operations": [],
          "id": "q-p092-h04-b001",
          "markdown_line": 446
        },
        {
          "kind": "prose",
          "text": "2. 符号链接文件保存着源文件所在的绝对路径，在读取时会定位到源文件上，可以理解为 Windows的快捷方式。当源文件被删除了，链接文件就打不开了。因为记录的是路径，所以可以为目录建立符号链接",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0131",
            "p092-t0132",
            "p092-t0134",
            "p092-t0135",
            "p092-t0136",
            "p092-t0138",
            "p092-t0139"
          ],
          "operations": [],
          "id": "q-p092-h04-b002",
          "markdown_line": 448
        }
      ],
      "markdown_line": 442
    },
    {
      "id": "q-p092-h05",
      "title": "中断的处理过程",
      "heading-id": "p092-h05",
      "source-page": 92,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p092-h05",
      "pages": [
        92
      ],
      "page-range": [
        92,
        92
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 保护现场：将当前执行程序的相关数据保存在寄存器中，然后入栈。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0144",
            "p092-t0145"
          ],
          "operations": [],
          "id": "q-p092-h05-b001",
          "markdown_line": 454
        },
        {
          "kind": "prose",
          "text": "2. 开中断：以便执行中断时能响应较高级别的中断请求。",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0147",
            "p092-t0148"
          ],
          "operations": [],
          "id": "q-p092-h05-b002",
          "markdown_line": 456
        },
        {
          "kind": "prose",
          "text": "3. 中断处理",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0150",
            "p092-t0151"
          ],
          "operations": [],
          "id": "q-p092-h05-b003",
          "markdown_line": 458
        },
        {
          "kind": "prose",
          "text": "4. 关中断：保证恢复现场时不被新中断打扰",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0153",
            "p092-t0154"
          ],
          "operations": [],
          "id": "q-p092-h05-b004",
          "markdown_line": 460
        },
        {
          "kind": "prose",
          "text": "5. 恢复现场：从堆栈中按序取出程序数据，恢复中断前的执行状态",
          "language": null,
          "pages": [
            92
          ],
          "span_ids": [
            "p092-t0156",
            "p092-t0157"
          ],
          "operations": [],
          "id": "q-p092-h05-b005",
          "markdown_line": 462
        }
      ],
      "markdown_line": 450
    },
    {
      "id": "q-p093-h01",
      "title": "中断和轮询有什么区别？",
      "heading-id": "p093-h01",
      "source-page": 93,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p093-h01",
      "pages": [
        93
      ],
      "page-range": [
        93,
        93
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 轮询：CPU 对特定设备轮流询问。中断：通过特定事件提醒 CPU。",
          "language": null,
          "pages": [
            93
          ],
          "span_ids": [
            "p093-t0004",
            "p093-t0005",
            "p093-t0006",
            "p093-t0007",
            "p093-t0008",
            "p093-t0009"
          ],
          "operations": [],
          "id": "q-p093-h01-b001",
          "markdown_line": 468
        },
        {
          "kind": "prose",
          "text": "2. 轮询：效率低等待时间长，CPU 利用率不高。中断：容易遗漏问题，CPU 利用率不高",
          "language": null,
          "pages": [
            93
          ],
          "span_ids": [
            "p093-t0011",
            "p093-t0012",
            "p093-t0013",
            "p093-t0014",
            "p093-t0015",
            "p093-t0016",
            "p093-t0018"
          ],
          "operations": [],
          "id": "q-p093-h01-b002",
          "markdown_line": 470
        }
      ],
      "markdown_line": 464
    },
    {
      "id": "q-p093-h02",
      "title": "请详细介绍一下 TCP 的三次握手机制，为什么要三次握手？",
      "heading-id": "p093-h02",
      "source-page": 93,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p093-h02",
      "pages": [
        93
      ],
      "page-range": [
        93,
        93
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在讲三次握手之前首先要介绍 TCP 报文中两个重要的字段：一个是序号字段，另一个是确认号字段，这两个字段将在握手阶段以及整个信息传输过程起到重要作用。第一步：客户端 TCP 向服务端的 TCP 发送一个不带额外数据的特殊 TCP 报文段，该报文段的 SYN 标志位会被置 1，所以把它称为 SYN 报文段。这时客户端会选取一个初始序列号（假设为 client_num），并将此编号放置在序号字段中。该报文段会被封装在一个 IP 数据报中发送给服务器。第二步：服务器接收到 SYN 报文段后，会为该 TCP 分配缓存和变量，并发送允许连接的确认报文。在允许连接的报文中，SYN 标志位仍被置为 1，确认号字段填的是 client_num + 1 的值。最后服务端也会选取一个 server_num 存放到序号字段中，这个报文段称为 SYNACK 报文段。第三步：在接收到 SYNACK 报文段后，客户端最后也要向服务端发送一个确认报文，这个报文和前两个不一样，SYN 标志位置 0，在确认号字段中填上 server_num + 1 的值，并且这个报文段可以携带数据。一旦完成这 3 个步骤，客户端和服务器之间就可以相互发送包含数据的报文了。如果不是三次握手，二次两次的话，服务器就不知道客户端是否接收到了自己的 SYNACK 报文段，从而无法建立连接；四次握手就显得多余了。",
          "language": null,
          "pages": [
            93
          ],
          "span_ids": [
            "p093-t0026",
            "p093-t0027",
            "p093-t0028",
            "p093-t0030",
            "p093-t0031",
            "p093-t0033",
            "p093-t0035",
            "p093-t0036",
            "p093-t0037",
            "p093-t0038",
            "p093-t0039",
            "p093-t0040",
            "p093-t0041",
            "p093-t0043",
            "p093-t0044",
            "p093-t0045",
            "p093-t0046",
            "p093-t0047",
            "p093-t0048",
            "p093-t0049",
            "p093-t0050",
            "p093-t0052",
            "p093-t0053",
            "p093-t0054",
            "p093-t0055",
            "p093-t0057",
            "p093-t0058",
            "p093-t0059",
            "p093-t0060",
            "p093-t0061",
            "p093-t0062",
            "p093-t0063",
            "p093-t0064",
            "p093-t0066",
            "p093-t0067",
            "p093-t0068",
            "p093-t0069",
            "p093-t0070",
            "p093-t0071",
            "p093-t0073",
            "p093-t0074",
            "p093-t0075",
            "p093-t0076",
            "p093-t0077",
            "p093-t0078",
            "p093-t0080",
            "p093-t0081",
            "p093-t0082",
            "p093-t0084",
            "p093-t0085",
            "p093-t0086",
            "p093-t0088",
            "p093-t0089",
            "p093-t0090",
            "p093-t0091",
            "p093-t0092",
            "p093-t0093",
            "p093-t0094",
            "p093-t0095",
            "p093-t0096",
            "p093-t0097",
            "p093-t0098",
            "p093-t0100",
            "p093-t0102",
            "p093-t0103",
            "p093-t0105",
            "p093-t0106",
            "p093-t0107",
            "p093-t0108"
          ],
          "operations": [],
          "id": "q-p093-h02-b001",
          "markdown_line": 476
        }
      ],
      "markdown_line": 472
    },
    {
      "id": "q-p093-h03",
      "title": "讲一讲 SYN 超时，洪泛攻击，以及解决策略",
      "heading-id": "p093-h03",
      "source-page": 93,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p093-h03",
      "pages": [
        93
      ],
      "page-range": [
        93,
        93
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "什么 SYN 是洪泛攻击？在 TCP 的三次握手机制的第一步中，客户端会向服务器发送 SYN 报文段。服务器接收到 SYN 报文段后会为该 TCP 分配缓存和变量，如果攻击分子大量地往服务器发送 SYN 报文段，服务器的连接资源终将被耗尽，导致内存溢出无法继续服务。解决策略：当服务器接受到 SYN 报文段时，不直接为该 TCP 分配资源，而只是打开一个半开的套接字。接着会使用 SYN 报文段的源 Id，目的Id，端口号以及只有服务器自己知道的一个秘密函数生成一个 cookie，并把 cookie 作为序列号响应给客户端。如果客户端是正常建立连接，将会返回一个确认字段为 cookie + 1 的报文段。接下来服务器会根据确认报文的源 Id，目的 Id，端口号以及秘密函数计算出一个结果，如果结果的值 + 1 等于确认字段的值，则证明是刚刚请求连接的客户端，这时候才为该 TCP 分配资源这样一来就不会为恶意攻击的SYN 报文段分配资源空间，避免了攻击",
          "language": null,
          "pages": [
            93
          ],
          "span_ids": [
            "p093-t0115",
            "p093-t0116",
            "p093-t0117",
            "p093-t0119",
            "p093-t0120",
            "p093-t0121",
            "p093-t0123",
            "p093-t0124",
            "p093-t0125",
            "p093-t0126",
            "p093-t0127",
            "p093-t0128",
            "p093-t0129",
            "p093-t0130",
            "p093-t0132",
            "p093-t0133",
            "p093-t0134",
            "p093-t0135",
            "p093-t0137",
            "p093-t0139",
            "p093-t0141",
            "p093-t0142",
            "p093-t0143",
            "p093-t0144",
            "p093-t0145",
            "p093-t0146",
            "p093-t0148",
            "p093-t0149",
            "p093-t0150",
            "p093-t0151",
            "p093-t0152",
            "p093-t0154",
            "p093-t0155",
            "p093-t0157",
            "p093-t0158",
            "p093-t0159",
            "p093-t0160",
            "p093-t0161",
            "p093-t0163",
            "p093-t0164",
            "p093-t0166",
            "p093-t0167",
            "p093-t0168",
            "p093-t0170",
            "p093-t0171",
            "p093-t0172",
            "p093-t0173",
            "p093-t0174",
            "p093-t0175",
            "p093-t0177",
            "p093-t0178",
            "p093-t0179",
            "p093-t0180",
            "p093-t0182",
            "p093-t0183",
            "p093-t0184",
            "p093-t0186",
            "p093-t0188",
            "p093-t0189"
          ],
          "operations": [],
          "id": "q-p093-h03-b001",
          "markdown_line": 482
        }
      ],
      "markdown_line": 478
    },
    {
      "id": "q-p093-h04",
      "title": "详细介绍一下 TCP 的四次挥手机制，为什么要有TIME_WAIT 状态，为什么需要四次握手？服务器出现了大量 CLOSE_WAIT 状态如何解决？",
      "heading-id": "p093-h04",
      "source-page": 93,
      "section": "网络和操作系统",
      "topic": "11-linux-network-os",
      "target": "/go-bank/11-linux-network-os#q-p093-h04",
      "pages": [
        93
      ],
      "page-range": [
        93,
        93
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "当客户端要服务器断开连接时，客户端 TCP 会向服务器发送一个特殊的报文段，该报文段的 FIN 标志位会被置 1，接着服务器会向客户端发送一个确认报文段。然后服务器也会客户端发送一个 FIN 标志位为 1 的终止报文段，随后客户端回送一个确认报文段，服务器立即断开连接。客户端等待一段时间后也断开连接。其实四次挥手的过程是很容易理解的，由于 TCP 协议是全双工的，也就是说客户端和服务端都可以发起断开连接。两边各发起一次断开连接的申请，加上各自的两次确认，看起来就像执行了四次挥手。为什么要有 TIME_WAIT 状态？因为客户端最后向服务器发送的确认 ACK 是有可能丢失的，当出现超时，服务端会再次发送 FIN 报文段，如果客户端已经关闭了就收不到了。还有一点是避免新旧连接混杂。大量 CLOSE_WAIT 表示程序出现了问题，对方的 socket 已经关闭连接，而我方忙于读或写没有及时关闭连接，需要检查代码，特别是释放资源的代码，或者是处理请求的线程配置",
          "language": null,
          "pages": [
            93
          ],
          "span_ids": [
            "p093-t0203",
            "p093-t0204",
            "p093-t0205",
            "p093-t0207",
            "p093-t0208",
            "p093-t0209",
            "p093-t0210",
            "p093-t0211",
            "p093-t0212",
            "p093-t0214",
            "p093-t0215",
            "p093-t0216",
            "p093-t0217",
            "p093-t0218",
            "p093-t0219",
            "p093-t0221",
            "p093-t0222",
            "p093-t0224",
            "p093-t0225",
            "p093-t0226",
            "p093-t0228",
            "p093-t0229",
            "p093-t0231",
            "p093-t0232",
            "p093-t0234",
            "p093-t0235",
            "p093-t0236",
            "p093-t0237",
            "p093-t0238",
            "p093-t0240",
            "p093-t0241",
            "p093-t0242",
            "p093-t0243",
            "p093-t0245",
            "p093-t0246",
            "p093-t0248",
            "p093-t0249",
            "p093-t0250",
            "p093-t0251",
            "p093-t0252",
            "p093-t0254",
            "p093-t0255",
            "p093-t0257"
          ],
          "operations": [],
          "id": "q-p093-h04-b001",
          "markdown_line": 488
        }
      ],
      "markdown_line": 484
    },
    {
      "id": "q-p094-h02",
      "title": "Kafka 是什么？主要应用场景有哪些？",
      "heading-id": "p094-h02",
      "source-page": 94,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p094-h02",
      "pages": [
        94
      ],
      "page-range": [
        94,
        94
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Kafka 是一个分布式流式处理平台。流平台具有三个关键功能：",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0007",
            "p094-t0008",
            "p094-t0010"
          ],
          "operations": [],
          "id": "q-p094-h02-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "1. 消息队列：发布和订阅消息流，这个功能类似于消息队列，这也是 Kafka 也被归类为消息队列的原因。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0012",
            "p094-t0013",
            "p094-t0014",
            "p094-t0015",
            "p094-t0016"
          ],
          "operations": [],
          "id": "q-p094-h02-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "2. 容错的持久方式存储记录消息流：Kafka 会把消息持久化到磁盘，有效避免了消息丢失的风险。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0018",
            "p094-t0019",
            "p094-t0020",
            "p094-t0021",
            "p094-t0023"
          ],
          "operations": [],
          "id": "q-p094-h02-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "3. 流式处理平台：在消息发布的时候进行处理，Kafka 提供了一个完整的流式处理类库。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0025",
            "p094-t0026",
            "p094-t0027",
            "p094-t0028",
            "p094-t0030"
          ],
          "operations": [],
          "id": "q-p094-h02-b004",
          "markdown_line": 18
        },
        {
          "kind": "prose",
          "text": "Kafka 主要有两大应用场景：",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0032",
            "p094-t0033"
          ],
          "operations": [],
          "id": "q-p094-h02-b005",
          "markdown_line": 20
        },
        {
          "kind": "prose",
          "text": "1. 消息队列：建立实时流数据管道，以可靠地在系统或应用程序之间获取数据。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0035",
            "p094-t0036",
            "p094-t0038"
          ],
          "operations": [],
          "id": "q-p094-h02-b006",
          "markdown_line": 22
        },
        {
          "kind": "prose",
          "text": "2. 数据处理：构建实时的流数据处理程序来转换或处理数据流",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0040",
            "p094-t0041"
          ],
          "operations": [],
          "id": "q-p094-h02-b007",
          "markdown_line": 24
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p094-h03",
      "title": "和其他消息队列相比，Kafka 的优势在哪里？",
      "heading-id": "p094-h03",
      "source-page": 94,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p094-h03",
      "pages": [
        94
      ],
      "page-range": [
        94,
        94
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "我们现在经常提到 Kafka 的时候就已经默认它是一个非常优秀的消息队列了，我们也会经常拿它跟RocketMQ、RabbitMQ 对比。我觉得 Kafka 相比其他消息队列主要的优势如下 :",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0049",
            "p094-t0050",
            "p094-t0051",
            "p094-t0053",
            "p094-t0055",
            "p094-t0056",
            "p094-t0057",
            "p094-t0058",
            "p094-t0059",
            "p094-t0060",
            "p094-t0062",
            "p094-t0063"
          ],
          "operations": [],
          "id": "q-p094-h03-b001",
          "markdown_line": 30
        },
        {
          "kind": "prose",
          "text": "1. 极致的性能：基于 Scala 和 Java 语言开发，设计中大量使用了批量处理和异步的思想，最高可以每秒处理千万级别的消息",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0064",
            "p094-t0065",
            "p094-t0067",
            "p094-t0068",
            "p094-t0069",
            "p094-t0070",
            "p094-t0071",
            "p094-t0073",
            "p094-t0074"
          ],
          "operations": [],
          "id": "q-p094-h03-b002",
          "markdown_line": 32
        },
        {
          "kind": "prose",
          "text": "2. 生态系统兼容性无可匹敌：Kafka 与周边生态系统的兼容性是最好的没有之一，尤其在大数据和流计算领域",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0076",
            "p094-t0077",
            "p094-t0079",
            "p094-t0080",
            "p094-t0081",
            "p094-t0083",
            "p094-t0084"
          ],
          "operations": [],
          "id": "q-p094-h03-b003",
          "markdown_line": 34
        },
        {
          "kind": "prose",
          "text": "实际上在早期的时候 Kafka 并不是一个合格的消息队列，早期的 Kafka 在消息队列领域就像是一个衣衫褴褛的孩子一样，功能不完备并且有一些小问题比如丢失消息、不保证消息可靠性等等。当然，这也和LinkedIn 最早开发 Kafka 用于处理海量的日志有很大关系，哈哈哈，人家本来最开始就不是为了作为消息队列滴，谁知道后面误打误撞在消息队列领域占据了一席之地",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0087",
            "p094-t0088",
            "p094-t0089",
            "p094-t0090",
            "p094-t0091",
            "p094-t0093",
            "p094-t0094",
            "p094-t0096",
            "p094-t0098",
            "p094-t0099",
            "p094-t0100",
            "p094-t0101",
            "p094-t0103",
            "p094-t0104"
          ],
          "operations": [],
          "id": "q-p094-h03-b004",
          "markdown_line": 36
        }
      ],
      "markdown_line": 26
    },
    {
      "id": "q-p094-h04",
      "title": "什么是 Producer、Consumer、Broker、Topic、 Partition？",
      "heading-id": "p094-h04",
      "source-page": 94,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p094-h04",
      "pages": [
        94
      ],
      "page-range": [
        94,
        94
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Kafka 将生产者发布的消息发送到 Topic（主题）中，需要这些消息的消费者可以订阅这些 Topic（主题）。Kafka 比较重要的几个概念：",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0120",
            "p094-t0121",
            "p094-t0122",
            "p094-t0123",
            "p094-t0125",
            "p094-t0127",
            "p094-t0128",
            "p094-t0129",
            "p094-t0130",
            "p094-t0131",
            "p094-t0132"
          ],
          "operations": [],
          "id": "q-p094-h04-b001",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "1. Producer（生产者） : 产生消息的一方。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0134",
            "p094-t0135",
            "p094-t0136",
            "p094-t0137"
          ],
          "operations": [],
          "id": "q-p094-h04-b002",
          "markdown_line": 44
        },
        {
          "kind": "prose",
          "text": "2. Consumer（消费者） : 消费消息的一方。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0139",
            "p094-t0140",
            "p094-t0141",
            "p094-t0142"
          ],
          "operations": [],
          "id": "q-p094-h04-b003",
          "markdown_line": 46
        },
        {
          "kind": "prose",
          "text": "3. Broker（代理） : 可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个 Kafka Cluster。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0144",
            "p094-t0145",
            "p094-t0146",
            "p094-t0147",
            "p094-t0148",
            "p094-t0149",
            "p094-t0150",
            "p094-t0151",
            "p094-t0152",
            "p094-t0153",
            "p094-t0154"
          ],
          "operations": [],
          "id": "q-p094-h04-b004",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "4. Topic（主题） : Producer 将消息发送到特定的主题，Consumer 通过订阅特定的 Topic(主题) 来消费消息。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0156",
            "p094-t0157",
            "p094-t0158",
            "p094-t0159",
            "p094-t0160",
            "p094-t0161",
            "p094-t0163",
            "p094-t0164",
            "p094-t0165",
            "p094-t0166",
            "p094-t0167",
            "p094-t0168"
          ],
          "operations": [],
          "id": "q-p094-h04-b005",
          "markdown_line": 50
        },
        {
          "kind": "prose",
          "text": "5. Partition（分区） : Partition 属于 Topic 的一部分。一个 Topic 可以有多个 Partition，并且同一Topic 下的 Partition 可以分布在不同的 Broker 上，这也就表明一个 Topic 可以横跨多个 Broker。",
          "language": null,
          "pages": [
            94
          ],
          "span_ids": [
            "p094-t0170",
            "p094-t0171",
            "p094-t0172",
            "p094-t0173",
            "p094-t0174",
            "p094-t0175",
            "p094-t0176",
            "p094-t0177",
            "p094-t0179",
            "p094-t0180",
            "p094-t0181",
            "p094-t0183",
            "p094-t0184",
            "p094-t0185",
            "p094-t0186",
            "p094-t0188",
            "p094-t0189",
            "p094-t0190",
            "p094-t0191",
            "p094-t0192",
            "p094-t0193",
            "p094-t0194"
          ],
          "operations": [],
          "id": "q-p094-h04-b006",
          "markdown_line": 52
        }
      ],
      "markdown_line": 38
    },
    {
      "id": "q-p095-h01",
      "title": "Kafka 的多副本机制了解吗？",
      "heading-id": "p095-h01",
      "source-page": 95,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p095-h01",
      "pages": [
        95
      ],
      "page-range": [
        95,
        95
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Kafka 为分区（Partition）引入了多副本（Replica）机制。分区（Partition）中的多个副本之间会有一个叫做 leader 的家伙，其他副本称为 follower。我们发送的消息会被发送到 leader 副本，然后follower 副本才能从 leader 副本中拉取消息进行同步。生产者和消费者只与 leader 副本交互。你可以理解为其他副本只是 leader 副本的拷贝，它们的存在只是为了保证消息存储的安全性。当 leader 副本发生故障时会从 follower 中选举出一个 leader,但是 follower 中如果有和 leader 同步程度达不到要求的参加不了 leader 的竞选",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0005",
            "p095-t0006",
            "p095-t0007",
            "p095-t0008",
            "p095-t0009",
            "p095-t0010",
            "p095-t0012",
            "p095-t0013",
            "p095-t0014",
            "p095-t0015",
            "p095-t0016",
            "p095-t0017",
            "p095-t0018",
            "p095-t0019",
            "p095-t0020",
            "p095-t0021",
            "p095-t0023",
            "p095-t0024",
            "p095-t0026",
            "p095-t0027",
            "p095-t0028",
            "p095-t0030",
            "p095-t0031",
            "p095-t0032",
            "p095-t0033",
            "p095-t0034",
            "p095-t0035",
            "p095-t0036",
            "p095-t0037",
            "p095-t0038",
            "p095-t0040",
            "p095-t0041",
            "p095-t0042",
            "p095-t0043",
            "p095-t0044",
            "p095-t0045",
            "p095-t0046",
            "p095-t0047",
            "p095-t0048",
            "p095-t0049",
            "p095-t0050",
            "p095-t0051"
          ],
          "operations": [],
          "id": "q-p095-h01-b001",
          "markdown_line": 58
        }
      ],
      "markdown_line": 54
    },
    {
      "id": "q-p095-h02",
      "title": "Kafka 的多分区（Partition）以及多副本（Replica）机制有什么好处呢",
      "heading-id": "p095-h02",
      "source-page": 95,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p095-h02",
      "pages": [
        95
      ],
      "page-range": [
        95,
        95
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Kafka 通过给特定 Topic 指定多个 Partition, 而各个 Partition 可以分布在不同的 Broker 上, 这样便能提供比较好的并发能力（负载均衡）。",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0064",
            "p095-t0065",
            "p095-t0066",
            "p095-t0067",
            "p095-t0068",
            "p095-t0069",
            "p095-t0070",
            "p095-t0071",
            "p095-t0073",
            "p095-t0074",
            "p095-t0075",
            "p095-t0076",
            "p095-t0077",
            "p095-t0078",
            "p095-t0080"
          ],
          "operations": [],
          "id": "q-p095-h02-b001",
          "markdown_line": 64
        },
        {
          "kind": "prose",
          "text": "2. Partition 可以指定对应的 Replica 数, 这也极大地提高了消息存储的安全性, 提高了容灾能力，不过也相应的增加了所需要的存储空间。",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0081",
            "p095-t0082",
            "p095-t0083",
            "p095-t0084",
            "p095-t0085",
            "p095-t0086",
            "p095-t0088",
            "p095-t0089",
            "p095-t0090",
            "p095-t0091"
          ],
          "operations": [],
          "id": "q-p095-h02-b002",
          "markdown_line": 66
        }
      ],
      "markdown_line": 60
    },
    {
      "id": "q-p095-h03",
      "title": "Zookeeper 在 Kafka 中的作用知道吗？",
      "heading-id": "p095-h03",
      "source-page": 95,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p095-h03",
      "pages": [
        95
      ],
      "page-range": [
        95,
        95
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Broker 注册：在 Zookeeper 上会有一个专门用来进行 Broker 服务器列表记录的节点。每个Broker 在启动时，都会到 Zookeeper 上进行注册，即到 /brokers/ids 下创建属于自己的节点。每个 Broker 就会将自己的 IP 地址和端口等信息记录到该节点中去",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0099",
            "p095-t0100",
            "p095-t0102",
            "p095-t0103",
            "p095-t0104",
            "p095-t0105",
            "p095-t0106",
            "p095-t0108",
            "p095-t0110",
            "p095-t0111",
            "p095-t0112",
            "p095-t0113",
            "p095-t0115",
            "p095-t0116",
            "p095-t0117",
            "p095-t0118",
            "p095-t0119",
            "p095-t0120",
            "p095-t0122",
            "p095-t0123",
            "p095-t0124"
          ],
          "operations": [],
          "id": "q-p095-h03-b001",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "2. Topic 注册：在 Kafka 中，同一个 Topic 的消息会被分成多个分区并将其分布在多个 Broker 上，这些分区信息及与 Broker 的对应关系也都是由 Zookeeper 在维护。比如我创建了一个名字为 my-topic 的主题并且它有两个分区，对应到 zookeeper 中会创建这些文件夹： /brokers/topics/my-topic/Partitions/0、/brokers/topics/my topic/Partitions/1",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0126",
            "p095-t0127",
            "p095-t0129",
            "p095-t0131",
            "p095-t0132",
            "p095-t0133",
            "p095-t0134",
            "p095-t0135",
            "p095-t0137",
            "p095-t0138",
            "p095-t0139",
            "p095-t0140",
            "p095-t0141",
            "p095-t0142",
            "p095-t0144",
            "p095-t0145",
            "p095-t0146",
            "p095-t0147",
            "p095-t0148",
            "p095-t0149",
            "p095-t0151",
            "p095-t0152",
            "p095-t0153",
            "p095-t0154",
            "p095-t0155",
            "p095-t0156",
            "p095-t0157"
          ],
          "operations": [],
          "id": "q-p095-h03-b002",
          "markdown_line": 74
        },
        {
          "kind": "prose",
          "text": "3. 负载均衡：上面也说过了 Kafka 通过给特定 Topic 指定多个 Partition, 而各个 Partition 可以分布在不同的 Broker 上, 这样便能提供比较好的并发能力。对于同一个 Topic 的不同 Partition， Kafka 会尽力将这些 Partition 分布到不同的 Broker 服务器上。当生产者产生消息后也会尽量投递到不同 Broker 的 Partition 里面。当 Consumer 消费的时候，Zookeeper 可以根据当前的Partition 数量以及 Consumer 数量来实现动态负载均衡。",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0158",
            "p095-t0159",
            "p095-t0161",
            "p095-t0162",
            "p095-t0163",
            "p095-t0164",
            "p095-t0165",
            "p095-t0166",
            "p095-t0167",
            "p095-t0168",
            "p095-t0169",
            "p095-t0170",
            "p095-t0171",
            "p095-t0172",
            "p095-t0173",
            "p095-t0174",
            "p095-t0176",
            "p095-t0178",
            "p095-t0179",
            "p095-t0180",
            "p095-t0181",
            "p095-t0182",
            "p095-t0183",
            "p095-t0184",
            "p095-t0185",
            "p095-t0186",
            "p095-t0187",
            "p095-t0188",
            "p095-t0190",
            "p095-t0191",
            "p095-t0192",
            "p095-t0193",
            "p095-t0194",
            "p095-t0195",
            "p095-t0196",
            "p095-t0197",
            "p095-t0199",
            "p095-t0200",
            "p095-t0201",
            "p095-t0203",
            "p095-t0204",
            "p095-t0205",
            "p095-t0206",
            "p095-t0208"
          ],
          "operations": [],
          "id": "q-p095-h03-b003",
          "markdown_line": 76
        }
      ],
      "markdown_line": 68
    },
    {
      "id": "q-p095-h04",
      "title": "Kafka 如何保证消息的消费顺序？",
      "heading-id": "p095-h04",
      "source-page": 95,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p095-h04",
      "pages": [
        95,
        96
      ],
      "page-range": [
        95,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "我们在使用消息队列的过程中经常有业务场景需要严格保证消息的消费顺序，比如我们同时发了 2 个消息，这 2 个消息对应的操作分别对应的数据库操作是：",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0215",
            "p095-t0217",
            "p095-t0218",
            "p095-t0219",
            "p095-t0220",
            "p095-t0221",
            "p095-t0222",
            "p095-t0224"
          ],
          "operations": [],
          "id": "q-p095-h04-b001",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "1. 更改用户会员等级。",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0226",
            "p095-t0227"
          ],
          "operations": [],
          "id": "q-p095-h04-b002",
          "markdown_line": 84
        },
        {
          "kind": "prose",
          "text": "2. 根据会员等级计算订单价格。",
          "language": null,
          "pages": [
            95
          ],
          "span_ids": [
            "p095-t0229",
            "p095-t0230"
          ],
          "operations": [],
          "id": "q-p095-h04-b003",
          "markdown_line": 86
        },
        {
          "kind": "prose",
          "text": "假如这两条消息的消费顺序不一样造成的最终结果就会截然不同。 Kafka 中 Partition(分区)是真正保存消息的地方，我们发送的消息都被放在了这里。而我们的 Partition(分区) 又存在于 Topic(主题) 这个概念中，并且我们可以给特定 Topic 指定多个 Partition。每次添加消息到 Partition(分区) 的时候都会采用尾加法，如上图所示。 Kafka 只能为我们保证 Partition(分区) 中的消息有序。消息在被追加到 Partition(分区)的时候都会分配一个特定的偏移量（offset）。Kafka 通过偏移量（offset）来保证消息在分区内的顺序性。所以，我们就有一种很简单的保证消息消费顺序的方法：1 个Topic 只对应一个 Partition。这样当然可以解决问题，但是破坏了 Kafka 的设计初衷。 Kafka 中发送 1条消息的时候，可以指定 topic, partition, key,data（数据） 4 个参数。如果你发送消息的时候指定了Partition 的话，所有消息都会被发送到指定的 Partition。并且，同一个 key 的消息可以保证只发送到同一个 partition，这个我们可以采用表/对象的 id 来作为 key。总结一下，对于如何保证 Kafka 中消息消费的顺序，有了下面两种方法：",
          "language": null,
          "pages": [
            95,
            96
          ],
          "span_ids": [
            "p095-t0233",
            "p095-t0234",
            "p095-t0235",
            "p095-t0236",
            "p095-t0237",
            "p095-t0238",
            "p095-t0239",
            "p095-t0240",
            "p095-t0242",
            "p095-t0243",
            "p095-t0244",
            "p095-t0245",
            "p095-t0246",
            "p095-t0247",
            "p095-t0248",
            "p095-t0249",
            "p095-t0250",
            "p095-t0251",
            "p095-t0253",
            "p095-t0254",
            "p095-t0255",
            "p095-t0256",
            "p095-t0257",
            "p095-t0259",
            "p095-t0260",
            "p095-t0261",
            "p095-t0262",
            "p095-t0263",
            "p095-t0264",
            "p095-t0265",
            "p095-t0266",
            "p095-t0267",
            "p095-t0268",
            "p095-t0269",
            "p095-t0270",
            "p095-t0272",
            "p095-t0273",
            "p095-t0274",
            "p095-t0275",
            "p095-t0276",
            "p095-t0278",
            "p095-t0279",
            "p095-t0280",
            "p095-t0281",
            "p095-t0282",
            "p095-t0283",
            "p095-t0284",
            "p095-t0285",
            "p095-t0287",
            "p095-t0288",
            "p095-t0289",
            "p095-t0291",
            "p095-t0292",
            "p095-t0294",
            "p095-t0295",
            "p095-t0296",
            "p095-t0297",
            "p095-t0298",
            "p095-t0299",
            "p095-t0300",
            "p095-t0301",
            "p095-t0302",
            "p095-t0303",
            "p095-t0304",
            "p095-t0306",
            "p095-t0307",
            "p095-t0308",
            "p095-t0310",
            "p095-t0311",
            "p095-t0313",
            "p095-t0314",
            "p095-t0315",
            "p095-t0316",
            "p095-t0317",
            "p096-t0001",
            "p096-t0003",
            "p096-t0004",
            "p096-t0005",
            "p096-t0006",
            "p096-t0007",
            "p096-t0008",
            "p096-t0009",
            "p096-t0010",
            "p096-t0011",
            "p096-t0013",
            "p096-t0014",
            "p096-t0015"
          ],
          "operations": [],
          "id": "q-p095-h04-b004",
          "markdown_line": 88
        },
        {
          "kind": "prose",
          "text": "1. 1 个 Topic 只对应一个 Partition。",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0017",
            "p096-t0018",
            "p096-t0019",
            "p096-t0020",
            "p096-t0021",
            "p096-t0022"
          ],
          "operations": [],
          "id": "q-p095-h04-b005",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "2. 发送消息的时候指定 key/Partition",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0024",
            "p096-t0025",
            "p096-t0026"
          ],
          "operations": [],
          "id": "q-p095-h04-b006",
          "markdown_line": 92
        }
      ],
      "markdown_line": 78
    },
    {
      "id": "q-p096-h01",
      "title": "Kafka 如何保证消息不丢失？",
      "heading-id": "p096-h01",
      "source-page": 96,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p096-h01",
      "pages": [
        96
      ],
      "page-range": [
        96,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "生产者丢失消息的情况生产者(Producer) 调用 send 方法发送消息之后，消息可能因为网络问题并没有发送过去。所以，我们不能默认在调用 send 方法发送消息之后消息发送成功了。为了确定消息是发送成功，我们要判断消息发送的结果。但是要注意的是 Kafka 生产者 (Producer) 使用 send 方法发送消息实际上是异步的操作，我们可以通过 get()方法获取调用结果，但是这样也让它变为了同步操作消费者丢失消息的情况我们知道消息在被追加到 Partition(分区)的时候都会分配一个特定的偏移量（offset）。偏移量（offset)表示 Consumer 当前消费到的 Partition(分区) 的所在的位置。Kafka 通过偏移量（offset）可以保证消息在分区内的顺序性。当消费者拉取到了分区的某个消息之后，消费者会自动提交了 offset。自动提交的话会有一个问题，试想一下，当消费者刚拿到这个消息准备进行真正消费的时候，突然挂掉了，消息实际上并没有被消费，但是 offset 却被自动提交了。解决办法也比较粗暴，我们手动关闭自动提交offset，每次在真正消费完消息之后再自己手动提交 offset。但是，细心的朋友一定会发现，这样会带来消息被重新消费的问题。比如你刚刚消费完消息之后，还没提交 offset，结果自己挂掉了，那么这个消息理论上就会被消费两次",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0032",
            "p096-t0034",
            "p096-t0035",
            "p096-t0036",
            "p096-t0037",
            "p096-t0038",
            "p096-t0040",
            "p096-t0042",
            "p096-t0043",
            "p096-t0044",
            "p096-t0045",
            "p096-t0047",
            "p096-t0048",
            "p096-t0049",
            "p096-t0050",
            "p096-t0051",
            "p096-t0052",
            "p096-t0053",
            "p096-t0054",
            "p096-t0055",
            "p096-t0057",
            "p096-t0058",
            "p096-t0059",
            "p096-t0061",
            "p096-t0063",
            "p096-t0064",
            "p096-t0065",
            "p096-t0066",
            "p096-t0067",
            "p096-t0069",
            "p096-t0070",
            "p096-t0071",
            "p096-t0072",
            "p096-t0073",
            "p096-t0074",
            "p096-t0075",
            "p096-t0076",
            "p096-t0077",
            "p096-t0078",
            "p096-t0079",
            "p096-t0080",
            "p096-t0081",
            "p096-t0082",
            "p096-t0083",
            "p096-t0084",
            "p096-t0086",
            "p096-t0088",
            "p096-t0089",
            "p096-t0090",
            "p096-t0092",
            "p096-t0093",
            "p096-t0095",
            "p096-t0096",
            "p096-t0097",
            "p096-t0098",
            "p096-t0100",
            "p096-t0102",
            "p096-t0104",
            "p096-t0105",
            "p096-t0107",
            "p096-t0108",
            "p096-t0109",
            "p096-t0111",
            "p096-t0112",
            "p096-t0114",
            "p096-t0115",
            "p096-t0116",
            "p096-t0118",
            "p096-t0119"
          ],
          "operations": [],
          "id": "q-p096-h01-b001",
          "markdown_line": 98
        }
      ],
      "markdown_line": 94
    },
    {
      "id": "q-p096-h02",
      "title": "Kafka 判断一个节点是否还活着有那两个条件？",
      "heading-id": "p096-h02",
      "source-page": 96,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p096-h02",
      "pages": [
        96
      ],
      "page-range": [
        96,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 节点必须可以维护和 ZooKeeper 的连接，Zookeeper 通过心跳机制检查每个节点的连接；",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0125",
            "p096-t0126",
            "p096-t0127",
            "p096-t0128",
            "p096-t0129",
            "p096-t0130",
            "p096-t0132"
          ],
          "operations": [],
          "id": "q-p096-h02-b001",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "2. 如果节点是个 follower,他必须能及时的同步 leader 的写操作，延时不能太久",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0133",
            "p096-t0134",
            "p096-t0135",
            "p096-t0136",
            "p096-t0137",
            "p096-t0138"
          ],
          "operations": [],
          "id": "q-p096-h02-b002",
          "markdown_line": 106
        }
      ],
      "markdown_line": 100
    },
    {
      "id": "q-p096-h03",
      "title": "producer 是否直接将数据发送到 broker 的 leader（主节点）",
      "heading-id": "p096-h03",
      "source-page": 96,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p096-h03",
      "pages": [
        96
      ],
      "page-range": [
        96,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "producer 直接将数据发送到 broker 的 leader(主节点)，不需要在多个节点进行分发，为了帮助producer 做到这点，所有的 Kafka 节点都可以及时的告知:哪些节点是活动的，目标 topic 目标分区的leader 在哪。这样 producer 就可以直接将消息发送到目的地了",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0150",
            "p096-t0151",
            "p096-t0152",
            "p096-t0153",
            "p096-t0154",
            "p096-t0155",
            "p096-t0156",
            "p096-t0157",
            "p096-t0159",
            "p096-t0161",
            "p096-t0163",
            "p096-t0164",
            "p096-t0165",
            "p096-t0166",
            "p096-t0167",
            "p096-t0168",
            "p096-t0170",
            "p096-t0171",
            "p096-t0172",
            "p096-t0174",
            "p096-t0175",
            "p096-t0176",
            "p096-t0177",
            "p096-t0179"
          ],
          "operations": [],
          "id": "q-p096-h03-b001",
          "markdown_line": 112
        }
      ],
      "markdown_line": 108
    },
    {
      "id": "q-p096-h04",
      "title": "Kafka consumer 是否可以消费指定分区消息吗？",
      "heading-id": "p096-h04",
      "source-page": 96,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p096-h04",
      "pages": [
        96
      ],
      "page-range": [
        96,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Kafa consumer 消费消息时，向 broker 发出\"fetch\"请求去消费特定分区的消息，consumer 指定消息在日志中的偏移量（offset），就可以消费从这个位置开始的消息，customer 拥有了 offset 的控制权，可以向后回滚去重新消费之前的消息，这是很有意义的",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0185",
            "p096-t0186",
            "p096-t0187",
            "p096-t0188",
            "p096-t0189",
            "p096-t0190",
            "p096-t0192",
            "p096-t0193",
            "p096-t0194",
            "p096-t0195",
            "p096-t0196",
            "p096-t0197",
            "p096-t0199",
            "p096-t0200",
            "p096-t0201",
            "p096-t0202",
            "p096-t0203",
            "p096-t0204",
            "p096-t0206"
          ],
          "operations": [],
          "id": "q-p096-h04-b001",
          "markdown_line": 118
        }
      ],
      "markdown_line": 114
    },
    {
      "id": "q-p096-h05",
      "title": "Kafka 高效文件存储设计特点是什么",
      "heading-id": "p096-h05",
      "source-page": 96,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p096-h05",
      "pages": [
        96
      ],
      "page-range": [
        96,
        96
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Kafka 把 topic 中一个 parition 大文件分成多个小文件段，通过多个小文件段，就容易定期清除或删除已经消费完文件，减少磁盘占用。",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0212",
            "p096-t0213",
            "p096-t0214",
            "p096-t0215",
            "p096-t0216",
            "p096-t0217",
            "p096-t0219",
            "p096-t0220"
          ],
          "operations": [],
          "id": "q-p096-h05-b001",
          "markdown_line": 124
        },
        {
          "kind": "prose",
          "text": "2. 通过索引信息可以快速定位 message 和确定 response 的最大大小。",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0222",
            "p096-t0223",
            "p096-t0224",
            "p096-t0225",
            "p096-t0226",
            "p096-t0227"
          ],
          "operations": [],
          "id": "q-p096-h05-b002",
          "markdown_line": 126
        },
        {
          "kind": "prose",
          "text": "3. 通过 index 元数据全部映射到 memory，可以避免 segment file 的 IO 磁盘操作。",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0229",
            "p096-t0230",
            "p096-t0231",
            "p096-t0232",
            "p096-t0233",
            "p096-t0234",
            "p096-t0235",
            "p096-t0236",
            "p096-t0237",
            "p096-t0238"
          ],
          "operations": [],
          "id": "q-p096-h05-b003",
          "markdown_line": 128
        },
        {
          "kind": "prose",
          "text": "4. 通过索引文件稀疏存储，可以大幅降低 index 文件元数据占用空间大小。",
          "language": null,
          "pages": [
            96
          ],
          "span_ids": [
            "p096-t0240",
            "p096-t0241",
            "p096-t0242",
            "p096-t0243"
          ],
          "operations": [],
          "id": "q-p096-h05-b004",
          "markdown_line": 130
        }
      ],
      "markdown_line": 120
    },
    {
      "id": "q-p097-h01",
      "title": "partition 的数据如何保存到硬盘",
      "heading-id": "p097-h01",
      "source-page": 97,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p097-h01",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "topic 中的多个 partition 以文件夹的形式保存到 broker，每个分区序号从 0 递增，且消息有序。 Partition 文件下有多个 segment（xxx.index，xxx.log） segment 文件里的大小和配置文件大小一致可以根据要求修改，默认为 1g。如果大小大于 1g 时，会滚动一个新的 segment 并且以上一个segment 最后一条消息的偏移量命名",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0005",
            "p097-t0006",
            "p097-t0007",
            "p097-t0008",
            "p097-t0009",
            "p097-t0010",
            "p097-t0011",
            "p097-t0012",
            "p097-t0014",
            "p097-t0015",
            "p097-t0016",
            "p097-t0017",
            "p097-t0018",
            "p097-t0019",
            "p097-t0020",
            "p097-t0021",
            "p097-t0022",
            "p097-t0023",
            "p097-t0025",
            "p097-t0026",
            "p097-t0027",
            "p097-t0028",
            "p097-t0030",
            "p097-t0031",
            "p097-t0032",
            "p097-t0033",
            "p097-t0034",
            "p097-t0036",
            "p097-t0037",
            "p097-t0039"
          ],
          "operations": [],
          "id": "q-p097-h01-b001",
          "markdown_line": 136
        }
      ],
      "markdown_line": 132
    },
    {
      "id": "q-p097-h02",
      "title": "kafka 生产数据时数据的分组策略是怎样的",
      "heading-id": "p097-h02",
      "source-page": 97,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p097-h02",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "生产者决定数据产生到集群的哪个 partition 中，每一条消息都是以（key， value）格式，Key 是由生产者发送数据传入，所以生产者（key）决定了数据产生到集群的哪个 partition",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0046",
            "p097-t0047",
            "p097-t0048",
            "p097-t0049",
            "p097-t0050",
            "p097-t0051",
            "p097-t0052",
            "p097-t0053",
            "p097-t0054",
            "p097-t0055",
            "p097-t0056",
            "p097-t0057",
            "p097-t0059",
            "p097-t0060"
          ],
          "operations": [],
          "id": "q-p097-h02-b001",
          "markdown_line": 142
        }
      ],
      "markdown_line": 138
    },
    {
      "id": "q-p097-h03",
      "title": "consumer 是推还是拉？",
      "heading-id": "p097-h03",
      "source-page": 97,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p097-h03",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "customer 应该从 brokes 拉取消息还是 brokers 将消息推送到 consumer，也就是 pull 还 push。在这方面，Kafka 遵循了一种大部分消息系统共同的传统的设计：producer 将消息推送到 broker， consumer 从 broker 拉取消息。 push 模式，将消息推送到下游的 consumer。这样做有好处也有坏处：由 broker 决定消息推送的速率，对于不同消费速率的 consumer 就不太好处理了。消息系统都致力于让 consumer 以最大的速率最快速的消费消息，但不幸的是，push 模式下，当 broker 推送的速率远大于 consumer 消费的速率时， consumer 恐怕就要崩溃了。最终 Kafka 还是选取了传统的 pull 模式",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0065",
            "p097-t0066",
            "p097-t0067",
            "p097-t0068",
            "p097-t0069",
            "p097-t0070",
            "p097-t0071",
            "p097-t0072",
            "p097-t0074",
            "p097-t0075",
            "p097-t0076",
            "p097-t0077",
            "p097-t0078",
            "p097-t0079",
            "p097-t0080",
            "p097-t0081",
            "p097-t0083",
            "p097-t0084",
            "p097-t0085",
            "p097-t0086",
            "p097-t0087",
            "p097-t0088",
            "p097-t0089",
            "p097-t0090",
            "p097-t0091",
            "p097-t0093",
            "p097-t0094",
            "p097-t0095",
            "p097-t0096",
            "p097-t0097",
            "p097-t0098",
            "p097-t0099",
            "p097-t0100",
            "p097-t0101",
            "p097-t0103",
            "p097-t0104",
            "p097-t0105",
            "p097-t0106",
            "p097-t0108",
            "p097-t0109",
            "p097-t0110",
            "p097-t0111",
            "p097-t0112",
            "p097-t0113",
            "p097-t0114",
            "p097-t0116",
            "p097-t0117",
            "p097-t0118",
            "p097-t0119",
            "p097-t0120",
            "p097-t0121"
          ],
          "operations": [],
          "id": "q-p097-h03-b001",
          "markdown_line": 148
        }
      ],
      "markdown_line": 144
    },
    {
      "id": "q-p097-h04",
      "title": "Kafka 维护消费状态跟踪的方法有什么？",
      "heading-id": "p097-h04",
      "source-page": 97,
      "section": "消息队列",
      "topic": "12-kafka",
      "target": "/go-bank/12-kafka#q-p097-h04",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "大部分消息系统在 broker 端的维护消息被消费的记录：一个消息被分发到 consumer 后 broker 就马上进行标记或者等待 customer 的通知后进行标记。这样也可以在消息在消费后立马就删除以减少空间占用",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0128",
            "p097-t0129",
            "p097-t0130",
            "p097-t0131",
            "p097-t0132",
            "p097-t0133",
            "p097-t0134",
            "p097-t0135",
            "p097-t0136",
            "p097-t0137",
            "p097-t0139",
            "p097-t0140"
          ],
          "operations": [],
          "id": "q-p097-h04-b001",
          "markdown_line": 154
        }
      ],
      "markdown_line": 150
    },
    {
      "id": "q-p097-h06",
      "title": "分布式服务接口的幂等性如何设计",
      "heading-id": "p097-h06",
      "source-page": 97,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p097-h06",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "所谓幂等性，就是说一个接口，多次发起同一个请求，你这个接口得保证结果是准确得。比如不能多扣款。不能多插入一条数据，不能将统计值多加了 1，这就是幂等性。其实保证幂等性主要是三点：",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0148",
            "p097-t0150",
            "p097-t0151",
            "p097-t0152",
            "p097-t0153",
            "p097-t0155",
            "p097-t0157"
          ],
          "operations": [],
          "id": "q-p097-h06-b001",
          "markdown_line": 12
        },
        {
          "kind": "prose",
          "text": "1. 对于每个请求必须有一个唯一的标识，举个例子：订单支付请求，肯定得包含订单 ID，一个订单ID 最多支付一次",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0158",
            "p097-t0159",
            "p097-t0161",
            "p097-t0162",
            "p097-t0163",
            "p097-t0165",
            "p097-t0166"
          ],
          "operations": [],
          "id": "q-p097-h06-b002",
          "markdown_line": 14
        },
        {
          "kind": "prose",
          "text": "2. 每次处理完请求之后，必须有一个记录标识这个请求处理过了，比如说常见得方案是再 MySQL 中记录个状态啥得，比如支付之前记录一条这个订单得支付流水，而且支付流水采用 order id 作为唯一键（unique key）。只有成功插入这个支付流水，才可以执行实际得支付扣款",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0168",
            "p097-t0169",
            "p097-t0171",
            "p097-t0172",
            "p097-t0173",
            "p097-t0174",
            "p097-t0176",
            "p097-t0177",
            "p097-t0178",
            "p097-t0179",
            "p097-t0180",
            "p097-t0181",
            "p097-t0183"
          ],
          "operations": [],
          "id": "q-p097-h06-b003",
          "markdown_line": 16
        },
        {
          "kind": "prose",
          "text": "3. 每次接收请求需要进行判断之前是否处理过得逻辑处理，比如说，如果有一个订单已经支付了，就已经有了一条支付流水，那么如果重复发送这个请求，则此时先插入支付流水，order id 已经存在了，唯一键约束生效，报错插入不进去得。然后你就不用再扣款了",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0185",
            "p097-t0186",
            "p097-t0188",
            "p097-t0189",
            "p097-t0191",
            "p097-t0192",
            "p097-t0193",
            "p097-t0194",
            "p097-t0196"
          ],
          "operations": [],
          "id": "q-p097-h06-b004",
          "markdown_line": 18
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p097-h07",
      "title": "分布式系统中的接口调用如何保证顺序性",
      "heading-id": "p097-h07",
      "source-page": 97,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p097-h07",
      "pages": [
        97
      ],
      "page-range": [
        97,
        97
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "可以接入 MQ，如果是系统 A 使用多线程处理的话，可以使用内存队列，来保证顺序性，如果你要100%的顺序性，当然可以使用分布式锁来搞，会影响系统的并发性",
          "language": null,
          "pages": [
            97
          ],
          "span_ids": [
            "p097-t0202",
            "p097-t0203",
            "p097-t0204",
            "p097-t0205",
            "p097-t0206",
            "p097-t0208",
            "p097-t0210",
            "p097-t0211",
            "p097-t0213"
          ],
          "operations": [],
          "id": "q-p097-h07-b001",
          "markdown_line": 24
        }
      ],
      "markdown_line": 20
    },
    {
      "id": "q-p098-h01",
      "title": "说说 ZooKeeper 一般都有哪些使用场景",
      "heading-id": "p098-h01",
      "source-page": 98,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p098-h01",
      "pages": [
        98
      ],
      "page-range": [
        98,
        98
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 分布式协调：这个其实就是 ZooKeeper 很经典的一个用法，简单来说，就好比，你系统 A 发送个请求到 MQ，然后 B 消费了之后处理。那 A 系统如何指导 B 系统的处理结果？用 ZooKeeper 就可以实现分布式系统之间的协调工作。A 系统发送请求之后可以在 ZooKeeper 上对某个节点的值注册个监听器，一旦 B 系统处理完了就修改 ZooKeeper 那个节点的值，A 立马就可以收到通知，完美解决",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0006",
            "p098-t0007",
            "p098-t0008",
            "p098-t0009",
            "p098-t0011",
            "p098-t0012",
            "p098-t0013",
            "p098-t0014",
            "p098-t0015",
            "p098-t0016",
            "p098-t0017",
            "p098-t0018",
            "p098-t0019",
            "p098-t0020",
            "p098-t0022",
            "p098-t0023",
            "p098-t0024",
            "p098-t0025",
            "p098-t0026",
            "p098-t0027",
            "p098-t0029",
            "p098-t0030",
            "p098-t0031",
            "p098-t0032",
            "p098-t0033",
            "p098-t0034",
            "p098-t0036",
            "p098-t0037",
            "p098-t0038",
            "p098-t0039",
            "p098-t0040",
            "p098-t0041",
            "p098-t0042",
            "p098-t0044",
            "p098-t0045"
          ],
          "operations": [],
          "id": "q-p098-h01-b001",
          "markdown_line": 30
        },
        {
          "kind": "prose",
          "text": "2. 分布所锁：对某一个数据联系发出两个修改操作，两台机器同时收到请求，但是只能一台机器先执行另外一个机器再执行，那么此时就可以使用 ZooKeeper 分布式锁，一个机器接收到了请求之后先获取 ZooKeeper 上的一把分布式锁，就是可以去创建一个 znode，接着执行操作，然后另外一个机器也尝试去创建那个 znode，结果发现自己创建不了，因为被别人创建了，那只能等着，等等一个机器执行完了自己再执行",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0047",
            "p098-t0048",
            "p098-t0050",
            "p098-t0051",
            "p098-t0052",
            "p098-t0053",
            "p098-t0054",
            "p098-t0055",
            "p098-t0056",
            "p098-t0058",
            "p098-t0059",
            "p098-t0060",
            "p098-t0061",
            "p098-t0063",
            "p098-t0064",
            "p098-t0065",
            "p098-t0067",
            "p098-t0068"
          ],
          "operations": [],
          "id": "q-p098-h01-b002",
          "markdown_line": 32
        },
        {
          "kind": "prose",
          "text": "3. 配置信息管理：ZooKeeper 可以用作很多系统的配置信息的管理，比如 Kafka，storm 等等很多分布式系统都会选用 zk 来做一些元数据，配置信息的管理，包括 Dubbo 注册中心不也支持ZooKeeper 么",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0070",
            "p098-t0071",
            "p098-t0072",
            "p098-t0073",
            "p098-t0074",
            "p098-t0075",
            "p098-t0076",
            "p098-t0077",
            "p098-t0078",
            "p098-t0079",
            "p098-t0080",
            "p098-t0082",
            "p098-t0083",
            "p098-t0084",
            "p098-t0086",
            "p098-t0087"
          ],
          "operations": [],
          "id": "q-p098-h01-b003",
          "markdown_line": 34
        },
        {
          "kind": "prose",
          "text": "4. HA 高可用性：这个应该是很常见的，比如 hdfs，yarn 等很多大数据系统，都选择基于ZooKeeper 来开发 HA 高可用机制，就是一个重要进程一般会主备两个，主进程挂了立马通过ZooKeeper 感知到切换到备份进程。",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0089",
            "p098-t0090",
            "p098-t0091",
            "p098-t0092",
            "p098-t0093",
            "p098-t0094",
            "p098-t0096",
            "p098-t0098",
            "p098-t0099",
            "p098-t0100",
            "p098-t0101",
            "p098-t0103",
            "p098-t0105",
            "p098-t0106"
          ],
          "operations": [],
          "id": "q-p098-h01-b004",
          "markdown_line": 36
        }
      ],
      "markdown_line": 26
    },
    {
      "id": "q-p098-h02",
      "title": "分布式事务了解吗？",
      "heading-id": "p098-h02",
      "source-page": 98,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p098-h02",
      "pages": [
        98
      ],
      "page-range": [
        98,
        98
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. XA 方案/两阶段提交方案第一个阶段（先询问）第二个阶段（再执行）",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0111",
            "p098-t0112",
            "p098-t0113",
            "p098-t0114",
            "p098-t0116",
            "p098-t0118"
          ],
          "operations": [],
          "id": "q-p098-h02-b001",
          "markdown_line": 42
        },
        {
          "kind": "prose",
          "text": "2. TCC 方案 TCC 的全程是：Try、Confirm、Cancel 这个其实是用到了补偿的概念，分为了三个阶段Try 阶段：这个阶段说的是对各个服务的资源做检测以及对资源进行锁定或者预留 Confirm 阶段：这个阶段说的是在各个服务中执行实际的操作 Cancel 阶段：如果任何一个服务的业务方法执行出错，那么这里就需要进行补偿，就是执行已经成功的业务逻辑的回滚操作",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0120",
            "p098-t0121",
            "p098-t0122",
            "p098-t0123",
            "p098-t0124",
            "p098-t0125",
            "p098-t0126",
            "p098-t0127",
            "p098-t0128",
            "p098-t0129",
            "p098-t0131",
            "p098-t0132",
            "p098-t0134",
            "p098-t0135",
            "p098-t0136",
            "p098-t0137",
            "p098-t0138",
            "p098-t0139",
            "p098-t0140",
            "p098-t0142"
          ],
          "operations": [],
          "id": "q-p098-h02-b002",
          "markdown_line": 44
        },
        {
          "kind": "prose",
          "text": "3. 本地消息表",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0144",
            "p098-t0145"
          ],
          "operations": [],
          "id": "q-p098-h02-b003",
          "markdown_line": 46
        },
        {
          "kind": "prose",
          "text": "4. 可靠消息最终一致性方案",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0147",
            "p098-t0148"
          ],
          "operations": [],
          "id": "q-p098-h02-b004",
          "markdown_line": 48
        },
        {
          "kind": "prose",
          "text": "5. 最大努力通知方案",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0150",
            "p098-t0151"
          ],
          "operations": [],
          "id": "q-p098-h02-b005",
          "markdown_line": 50
        }
      ],
      "markdown_line": 38
    },
    {
      "id": "q-p098-h03",
      "title": "那常见的分布式锁有哪些解决方案",
      "heading-id": "p098-h03",
      "source-page": 98,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p098-h03",
      "pages": [
        98
      ],
      "page-range": [
        98,
        98
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Reids 的分布式锁，很多大公司会基于 Reidis 做扩展开发",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0156",
            "p098-t0157",
            "p098-t0158",
            "p098-t0159"
          ],
          "operations": [],
          "id": "q-p098-h03-b001",
          "markdown_line": 56
        },
        {
          "kind": "prose",
          "text": "2. 基于 etcd",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0161",
            "p098-t0162",
            "p098-t0163"
          ],
          "operations": [],
          "id": "q-p098-h03-b002",
          "markdown_line": 58
        },
        {
          "kind": "prose",
          "text": "3. 基于数据库，比如 MySQL",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0164",
            "p098-t0165",
            "p098-t0166"
          ],
          "operations": [],
          "id": "q-p098-h03-b003",
          "markdown_line": 60
        }
      ],
      "markdown_line": 52
    },
    {
      "id": "q-p098-h04",
      "title": "MySQL 如何做分布式锁",
      "heading-id": "p098-h04",
      "source-page": 98,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p098-h04",
      "pages": [
        98
      ],
      "page-range": [
        98,
        98
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "方法一：利用 MySQL 的锁表，创建一张表，设置一个 UNIQUE KEY 这个 KEY 就是要锁的 KEY，所以同一个 KEY 在 MySQL 表里只能插入一次了，这样对锁的竞争就交给了数据库，处理同一个 KEY 数据库保证了只有一个节点能插入成功，其他节点都会插入失败。 DB 分布式锁的实现：通过主键 id 的唯一性进行加锁，说白了就是加锁的形式是向一张表中插入一条数据，该条数据的 ID 就是一把分布式锁，例如当一次请求插入了一条 ID 为 1 的数据，其他想要进行插入数据的并发请求必须等第一次请求执行完成后删除这条 ID 为 1 的数据才能继续插入，实现了分布式锁的功能方法二：使用流水号+时间戳做幂等操作，可以看作是一个不会释放的锁",
          "language": null,
          "pages": [
            98
          ],
          "span_ids": [
            "p098-t0172",
            "p098-t0174",
            "p098-t0175",
            "p098-t0176",
            "p098-t0177",
            "p098-t0178",
            "p098-t0179",
            "p098-t0180",
            "p098-t0182",
            "p098-t0183",
            "p098-t0184",
            "p098-t0185",
            "p098-t0186",
            "p098-t0187",
            "p098-t0188",
            "p098-t0189",
            "p098-t0191",
            "p098-t0192",
            "p098-t0193",
            "p098-t0194",
            "p098-t0196",
            "p098-t0197",
            "p098-t0198",
            "p098-t0199",
            "p098-t0200",
            "p098-t0201",
            "p098-t0203",
            "p098-t0204",
            "p098-t0205",
            "p098-t0206",
            "p098-t0208",
            "p098-t0209",
            "p098-t0210",
            "p098-t0211",
            "p098-t0212",
            "p098-t0214",
            "p098-t0215",
            "p098-t0216",
            "p098-t0217",
            "p098-t0218",
            "p098-t0219",
            "p098-t0221",
            "p098-t0223",
            "p098-t0225",
            "p098-t0226",
            "p098-t0227"
          ],
          "operations": [],
          "id": "q-p098-h04-b001",
          "markdown_line": 66
        }
      ],
      "markdown_line": 62
    },
    {
      "id": "q-p098-h05",
      "title": "你了解业界哪些大公司的分布式锁框架",
      "heading-id": "p098-h05",
      "source-page": 98,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p098-h05",
      "pages": [
        98,
        99
      ],
      "page-range": [
        98,
        99
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Google:Chubby Chubby 是一套分布式协调系统，内部使用 Paxos 协调 Master 与 Replicas。 Chubby lock service 被应用在 GFS, BigTable 等项目中，其首要设计目标是高可靠性，而不是高性能。 Chubby 被作为粗粒度锁使用，例如被用于选主。持有锁的时间跨度一般为小时或天，而不是秒级。 Chubby 对外提供类似于文件系统的 API，在 Chubby 创建文件路径即加锁操作。 Chubby 使用 Delay 和 SequenceNumber 来优化锁机制。Delay 保证客户端异常释放锁时，Chubby 仍认为该客户端一直持有锁。Sequence number 指锁的持有者向 Chubby 服务端请求一个序号（包括几个属性），然后之后在需要使用锁的时候将该序号一并发给 Chubby 服务器，服务端检查序号的合法性，包括 number 是否有效等。",
          "language": null,
          "pages": [
            98,
            99
          ],
          "span_ids": [
            "p098-t0232",
            "p099-t0001",
            "p099-t0002",
            "p099-t0003",
            "p099-t0004",
            "p099-t0005",
            "p099-t0006",
            "p099-t0007",
            "p099-t0008",
            "p099-t0009",
            "p099-t0010",
            "p099-t0011",
            "p099-t0012",
            "p099-t0013",
            "p099-t0015",
            "p099-t0016",
            "p099-t0017",
            "p099-t0018",
            "p099-t0020",
            "p099-t0021",
            "p099-t0022",
            "p099-t0023",
            "p099-t0024",
            "p099-t0025",
            "p099-t0026",
            "p099-t0027",
            "p099-t0028",
            "p099-t0029",
            "p099-t0030",
            "p099-t0031",
            "p099-t0032",
            "p099-t0033",
            "p099-t0034",
            "p099-t0035",
            "p099-t0036",
            "p099-t0037",
            "p099-t0038",
            "p099-t0039",
            "p099-t0040",
            "p099-t0041",
            "p099-t0043",
            "p099-t0044",
            "p099-t0045",
            "p099-t0047",
            "p099-t0048",
            "p099-t0049",
            "p099-t0050",
            "p099-t0051"
          ],
          "operations": [],
          "id": "q-p098-h05-b001",
          "markdown_line": 72
        },
        {
          "kind": "prose",
          "text": "2. 京东 SharkLock",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0053",
            "p099-t0054",
            "p099-t0055"
          ],
          "operations": [],
          "id": "q-p098-h05-b002",
          "markdown_line": 74
        },
        {
          "kind": "prose",
          "text": "SharkLock 是基于 Redis 实现的分布式锁。锁的排他性由 SETNX 原语实现，使用 timeout 与续租机制实现锁的强制释放",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0056",
            "p099-t0057",
            "p099-t0058",
            "p099-t0059",
            "p099-t0060",
            "p099-t0061",
            "p099-t0063",
            "p099-t0064",
            "p099-t0065",
            "p099-t0066"
          ],
          "operations": [],
          "id": "q-p098-h05-b003",
          "markdown_line": 76
        },
        {
          "kind": "prose",
          "text": "3. 蚂蚁金服 SOFAJRaft-RheaKV 分布式锁",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0068",
            "p099-t0069",
            "p099-t0070",
            "p099-t0071"
          ],
          "operations": [],
          "id": "q-p098-h05-b004",
          "markdown_line": 78
        },
        {
          "kind": "prose",
          "text": "RheaKV 是基于 SOFAJRaft 和 RocksDB 实现的嵌入式、分布式、高可用、强一致的 KV 存储类库。 RheaKV 对外提供 lock 接口，为了优化数据的读写，按不同的存储类型，提供不同的锁特性。RheaKV提供 wathcdog 调度器来控制锁的自动续租机制，避免锁在任务完成前提前释放，和锁永不释放造成死锁",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0073",
            "p099-t0074",
            "p099-t0075",
            "p099-t0076",
            "p099-t0077",
            "p099-t0078",
            "p099-t0080",
            "p099-t0081",
            "p099-t0082",
            "p099-t0084",
            "p099-t0085",
            "p099-t0086",
            "p099-t0087",
            "p099-t0089",
            "p099-t0090",
            "p099-t0091",
            "p099-t0092",
            "p099-t0093",
            "p099-t0095",
            "p099-t0096"
          ],
          "operations": [],
          "id": "q-p098-h05-b005",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "4. Netflix: Curator",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0098"
          ],
          "operations": [],
          "id": "q-p098-h05-b006",
          "markdown_line": 82
        },
        {
          "kind": "prose",
          "text": "Curator 是 ZooKeeper 的客户端封装，其分布式锁的实现完全由 ZooKeeper 完成。在 ZooKeeper 创建 EPHEMERAL_SEQUENTIAL 节点视为加锁，节点的 EPHEMERAL 特性保证了锁持有者与 ZooKeeper断开时强制释放锁；节点的 SEQUENTIAL 特性避免了加锁较多时的惊群效应",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0099",
            "p099-t0100",
            "p099-t0101",
            "p099-t0102",
            "p099-t0103",
            "p099-t0104",
            "p099-t0106",
            "p099-t0108",
            "p099-t0109",
            "p099-t0110",
            "p099-t0111",
            "p099-t0112",
            "p099-t0113",
            "p099-t0114",
            "p099-t0115",
            "p099-t0116",
            "p099-t0117",
            "p099-t0118",
            "p099-t0119"
          ],
          "operations": [],
          "id": "q-p098-h05-b007",
          "markdown_line": 84
        }
      ],
      "markdown_line": 68
    },
    {
      "id": "q-p099-h01",
      "title": "请讲一下你对 CAP 理论的理解",
      "heading-id": "p099-h01",
      "source-page": 99,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p099-h01",
      "pages": [
        99
      ],
      "page-range": [
        99,
        99
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在理论计算机科学中，CAP 定理（CAP theorem），又被称作布鲁尔定理（Brewer’s theorem），它指出对于一个分布式计算系统来说，不可能同时满足以下三点：",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0127",
            "p099-t0128",
            "p099-t0129",
            "p099-t0130",
            "p099-t0131",
            "p099-t0133",
            "p099-t0134",
            "p099-t0135",
            "p099-t0136",
            "p099-t0138"
          ],
          "operations": [],
          "id": "q-p099-h01-b001",
          "markdown_line": 90
        },
        {
          "kind": "prose",
          "text": "1. Consistency（一致性）指数据在多个副本之间能够保持一致的特性（严格的一致性）",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0140",
            "p099-t0141",
            "p099-t0143",
            "p099-t0145"
          ],
          "operations": [],
          "id": "q-p099-h01-b002",
          "markdown_line": 92
        },
        {
          "kind": "prose",
          "text": "2. Availability（可用性）指系统提供的服务必须一直处于可用的状态，每次请求都能获取到非错的响应（不保证获取的数据为最新数据）",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0147",
            "p099-t0148",
            "p099-t0150",
            "p099-t0152",
            "p099-t0153"
          ],
          "operations": [],
          "id": "q-p099-h01-b003",
          "markdown_line": 94
        },
        {
          "kind": "prose",
          "text": "3. Partition tolerance（分区容错性）分布式系统在遇到任何网络分区故障的时候，仍然能够对外提供满足一致性和可用性的服务，除非整个网络环境都发生了故障",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0155",
            "p099-t0156",
            "p099-t0158",
            "p099-t0160",
            "p099-t0161",
            "p099-t0163"
          ],
          "operations": [],
          "id": "q-p099-h01-b004",
          "markdown_line": 96
        },
        {
          "kind": "prose",
          "text": "Spring Cloud 在 CAP 法则上主要满足的是 A 和 P 法则，Dubbo 和 Zookeeper 在 CAP 法则主要满足的是 C 和 P 法则。 CAP 仅适用于原子读写的 NOSQL 场景中，并不适合数据库系统。现在的分布式系统具有更多特性比如扩展性、可用性等等，在进行系统设计和开发时，我们不应该仅仅局限在 CAP 问题上。现实生活中，大部分人解释这一定律时，常常简单的表述为：“一致性、可用性、分区容忍性三者你只能同时达到其中两个，不可能同时达到”。实际上这是一个非常具有误导性质的说法，而且在 CAP 理论诞生 12 年之后，CAP 之父也在 2012 年重写了之前的论文。当发生网络分区的时候，如果我们要继续服务，那么强一致性和可用性只能 2 选 1。也就是说当网络分区之后 P 是前提，决定了 P 之后才有 C 和 A的选择。也就是说分区容错性（Partition tolerance）我们是必须要实现的。",
          "language": null,
          "pages": [
            99
          ],
          "span_ids": [
            "p099-t0165",
            "p099-t0166",
            "p099-t0167",
            "p099-t0168",
            "p099-t0169",
            "p099-t0170",
            "p099-t0171",
            "p099-t0172",
            "p099-t0173",
            "p099-t0174",
            "p099-t0175",
            "p099-t0176",
            "p099-t0177",
            "p099-t0178",
            "p099-t0179",
            "p099-t0180",
            "p099-t0181",
            "p099-t0182",
            "p099-t0183",
            "p099-t0184",
            "p099-t0185",
            "p099-t0186",
            "p099-t0187",
            "p099-t0189",
            "p099-t0190",
            "p099-t0192",
            "p099-t0193",
            "p099-t0194",
            "p099-t0196",
            "p099-t0197",
            "p099-t0198",
            "p099-t0200",
            "p099-t0201",
            "p099-t0202",
            "p099-t0203",
            "p099-t0205",
            "p099-t0206",
            "p099-t0207",
            "p099-t0208",
            "p099-t0209",
            "p099-t0210",
            "p099-t0211",
            "p099-t0212",
            "p099-t0214",
            "p099-t0215",
            "p099-t0216",
            "p099-t0218",
            "p099-t0219",
            "p099-t0220",
            "p099-t0221",
            "p099-t0222",
            "p099-t0223",
            "p099-t0224",
            "p099-t0225",
            "p099-t0226",
            "p099-t0227",
            "p099-t0228",
            "p099-t0229",
            "p099-t0230",
            "p099-t0231",
            "p099-t0233",
            "p099-t0234",
            "p099-t0235"
          ],
          "operations": [],
          "id": "q-p099-h01-b005",
          "markdown_line": 98
        }
      ],
      "markdown_line": 86
    },
    {
      "id": "q-p099-h02",
      "title": "请讲一下你对 BASE 理论的理解",
      "heading-id": "p099-h02",
      "source-page": 99,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p099-h02",
      "pages": [
        99,
        100
      ],
      "page-range": [
        99,
        100
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "BASE 理论由 eBay 架构师 Dan Pritchett 提出，在 2008 年上被分表为论文，并且 eBay 给出了他们在实践中总结的基于 BASE 理论的一套新的分布式事务解决方案。 BASE 是 Basically Available（基本可用）、Soft-state（软状态）和 Eventually Consistent（最终一致性）三个短语的缩写。BASE 理论是对 CAP 中一致性和可用性权衡的结果，其来源于对大规模互联网系统分布式实践的总结，是基于 CAP定理逐步演化而来的，它大大降低了我们对系统的要求。 BASE 理论的核心思想是即使无法做到强一致性，但每个应用都可以根据自身业务特点，采用适当的方式来使系统达到最终一致性。也就是牺牲数据的一致性来满足系统的高可用性，系统中一部分数据不可用或者不一致时，仍需要保持系统整体“主要可用”。针对数据库领域，BASE 思想的主要实现是对业务数据进行拆分，让不同的数据分布在不同的机器上，以提升系统的可用性，当前主要有以下两种做法：",
          "language": null,
          "pages": [
            99,
            100
          ],
          "span_ids": [
            "p099-t0242",
            "p099-t0243",
            "p099-t0244",
            "p099-t0245",
            "p099-t0246",
            "p099-t0247",
            "p099-t0248",
            "p099-t0249",
            "p099-t0251",
            "p099-t0252",
            "p099-t0253",
            "p099-t0254",
            "p099-t0255",
            "p099-t0256",
            "p099-t0258",
            "p099-t0259",
            "p099-t0260",
            "p099-t0261",
            "p099-t0262",
            "p099-t0263",
            "p099-t0265",
            "p099-t0266",
            "p099-t0267",
            "p099-t0269",
            "p099-t0270",
            "p099-t0271",
            "p099-t0273",
            "p099-t0274",
            "p099-t0275",
            "p099-t0276",
            "p099-t0277",
            "p099-t0278",
            "p099-t0280",
            "p099-t0281",
            "p099-t0282",
            "p099-t0283",
            "p099-t0284",
            "p099-t0285",
            "p099-t0287",
            "p100-t0001",
            "p100-t0003",
            "p100-t0005",
            "p100-t0006",
            "p100-t0007",
            "p100-t0008",
            "p100-t0009",
            "p100-t0010",
            "p100-t0012",
            "p100-t0013",
            "p100-t0014",
            "p100-t0016",
            "p100-t0017"
          ],
          "operations": [],
          "id": "q-p099-h02-b001",
          "markdown_line": 104
        },
        {
          "kind": "prose",
          "text": "1. 按功能划分数据库",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0019",
            "p100-t0020"
          ],
          "operations": [],
          "id": "q-p099-h02-b002",
          "markdown_line": 106
        },
        {
          "kind": "prose",
          "text": "2. 分片（如开源的 MyCat、Amoeba 等）",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0022",
            "p100-t0023",
            "p100-t0024",
            "p100-t0025",
            "p100-t0026",
            "p100-t0027"
          ],
          "operations": [],
          "id": "q-p099-h02-b003",
          "markdown_line": 108
        }
      ],
      "markdown_line": 100
    },
    {
      "id": "q-p100-h01",
      "title": "请讲一下 BASE 理论的三要素",
      "heading-id": "p100-h01",
      "source-page": 100,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p100-h01",
      "pages": [
        100
      ],
      "page-range": [
        100,
        100
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "基本可用基本可用是指分布式系统在出现不可预知故障的时候，允许损失部分可用性。但是，这绝不等价于系统不可用。比如：",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0034",
            "p100-t0036",
            "p100-t0038",
            "p100-t0039",
            "p100-t0041"
          ],
          "operations": [],
          "id": "q-p100-h01-b001",
          "markdown_line": 114
        },
        {
          "kind": "prose",
          "text": "1. 响应时间上的损失：正常情况下，一个在线搜索引擎需要在 0.5 秒之内返回给用户相应的查询结果，但由于出现故障，查询结果的响应时间增加了 1~2 秒",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0043",
            "p100-t0044",
            "p100-t0045",
            "p100-t0046",
            "p100-t0048",
            "p100-t0049",
            "p100-t0050",
            "p100-t0051"
          ],
          "operations": [],
          "id": "q-p100-h01-b002",
          "markdown_line": 116
        },
        {
          "kind": "prose",
          "text": "2. 系统功能上的损失：正常情况下，在一个电子商务网站上进行购物的时候，消费者几乎能够顺利完成每一笔订单，但是在一些节日大促购物高峰的时候，由于消费者的购物行为激增，为了保护购物系统的稳定性，部分消费者可能会被引导到一个降级页面",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0053",
            "p100-t0054",
            "p100-t0056",
            "p100-t0057",
            "p100-t0059",
            "p100-t0060",
            "p100-t0062"
          ],
          "operations": [],
          "id": "q-p100-h01-b003",
          "markdown_line": 118
        },
        {
          "kind": "prose",
          "text": "软状态软状态指允许系统中的数据存在中间状态，并认为该中间状态的存在不会影响系统的整体可用性，即允许系统在不同节点的数据副本之间进行数据同步的过程存在延时最终一致性强调的是系统中所有的数据副本，在经过一段时间的同步后，最终能够达到一个一致的状态。因此，最终一致性的本质是需要系统保证最终数据能够达到一致，而不需要实时保证系统数据的强一致性",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0064",
            "p100-t0066",
            "p100-t0068",
            "p100-t0069",
            "p100-t0071",
            "p100-t0072",
            "p100-t0073",
            "p100-t0075",
            "p100-t0076",
            "p100-t0078"
          ],
          "operations": [],
          "id": "q-p100-h01-b004",
          "markdown_line": 120
        }
      ],
      "markdown_line": 110
    },
    {
      "id": "q-p100-h02",
      "title": "分布式与集群的区别是什么",
      "heading-id": "p100-h02",
      "source-page": 100,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p100-h02",
      "pages": [
        100
      ],
      "page-range": [
        100,
        100
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "分布式：一个业务分拆多个子业务，部署在不同的服务器上集群：同一个业务，部署在多个服务器上。比如之前做电商网站搭的 redis 集群以及 solr 集群都是属于将 Redis 服务器提供的缓存服务以及 solr 服务器提供的搜索服务部署在多个服务器上以提高系统性能、并发量解决海量存储问题。",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0084",
            "p100-t0086",
            "p100-t0087",
            "p100-t0088",
            "p100-t0089",
            "p100-t0091",
            "p100-t0092",
            "p100-t0093",
            "p100-t0094",
            "p100-t0095",
            "p100-t0096",
            "p100-t0097",
            "p100-t0098",
            "p100-t0100",
            "p100-t0102"
          ],
          "operations": [],
          "id": "q-p100-h02-b001",
          "markdown_line": 126
        }
      ],
      "markdown_line": 122
    },
    {
      "id": "q-p100-h03",
      "title": "请说一下对两阶段提交协议的理解",
      "heading-id": "p100-h03",
      "source-page": 100,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p100-h03",
      "pages": [
        100,
        101
      ],
      "page-range": [
        100,
        101
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "分布式系统的一个难点是如何保证架构下多个节点在进行事务性操作的时候保持一致性。为实现这个目的，二阶段提交算法的成立基于以下假设：",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0108",
            "p100-t0110",
            "p100-t0111"
          ],
          "operations": [],
          "id": "q-p100-h03-b001",
          "markdown_line": 132
        },
        {
          "kind": "prose",
          "text": "1. 该分布式系统中，存在一个节点作为协调者(Coordinator)，其他节点作为参与者(Cohorts)。且节点之间可以进行网络通信。",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0112",
            "p100-t0113",
            "p100-t0114",
            "p100-t0115",
            "p100-t0117",
            "p100-t0118",
            "p100-t0119",
            "p100-t0120"
          ],
          "operations": [],
          "id": "q-p100-h03-b002",
          "markdown_line": 134
        },
        {
          "kind": "prose",
          "text": "2. 所有节点都采用预写式日志，且日志被写入后即被保持在可靠的存储设备上，即使节点损坏不会导致日志数据的消失。",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0121",
            "p100-t0122",
            "p100-t0124",
            "p100-t0125"
          ],
          "operations": [],
          "id": "q-p100-h03-b003",
          "markdown_line": 136
        },
        {
          "kind": "prose",
          "text": "3. 所有节点不会永久性损坏，即使损坏后仍然可以恢复",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0127",
            "p100-t0128"
          ],
          "operations": [],
          "id": "q-p100-h03-b004",
          "markdown_line": 138
        },
        {
          "kind": "prose",
          "text": "第一阶段（投票阶段）",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0131"
          ],
          "operations": [],
          "id": "q-p100-h03-b005",
          "markdown_line": 140
        },
        {
          "kind": "prose",
          "text": "1. 协调者节点向所有参与者节点询问是否可以执行提交操作(vote)，并开始等待各参与者节点的响应。",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0133",
            "p100-t0134",
            "p100-t0135",
            "p100-t0136",
            "p100-t0138",
            "p100-t0139"
          ],
          "operations": [],
          "id": "q-p100-h03-b006",
          "markdown_line": 142
        },
        {
          "kind": "prose",
          "text": "2. 参与者节点执行询问发起为止的所有事务操作，并将 Undo 信息和 Redo 信息写入日志。（注意：若成功这里其实每个参与者已经执行了事务操作）",
          "language": null,
          "pages": [
            100
          ],
          "span_ids": [
            "p100-t0141",
            "p100-t0142",
            "p100-t0143",
            "p100-t0144",
            "p100-t0145",
            "p100-t0146",
            "p100-t0148",
            "p100-t0149"
          ],
          "operations": [],
          "id": "q-p100-h03-b007",
          "markdown_line": 144
        },
        {
          "kind": "prose",
          "text": "3. 各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实际执行成功，则它返回一个”同意”消息；如果参与者节点的事务操作实际执行失败，则它返回一个”中止”消息第二阶段（提交执行阶段）当协调者节点从所有参与者节点获得的相应消息都为”同意”：",
          "language": null,
          "pages": [
            100,
            101
          ],
          "span_ids": [
            "p100-t0151",
            "p100-t0152",
            "p100-t0154",
            "p100-t0155",
            "p100-t0156",
            "p100-t0157",
            "p100-t0158",
            "p100-t0159",
            "p100-t0161",
            "p100-t0162",
            "p100-t0163",
            "p100-t0164",
            "p100-t0165",
            "p101-t0002",
            "p101-t0004",
            "p101-t0005",
            "p101-t0006",
            "p101-t0007",
            "p101-t0008"
          ],
          "operations": [],
          "id": "q-p100-h03-b008",
          "markdown_line": 146
        },
        {
          "kind": "prose",
          "text": "1. 协调者节点向所有参与者节点发出”正式提交(commit)”的请求。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0010",
            "p101-t0011",
            "p101-t0012",
            "p101-t0013",
            "p101-t0014",
            "p101-t0015"
          ],
          "operations": [],
          "id": "q-p100-h03-b009",
          "markdown_line": 148
        },
        {
          "kind": "prose",
          "text": "2. 参与者节点正式完成操作，并释放在整个事务期间内占用的资源。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0017",
            "p101-t0018"
          ],
          "operations": [],
          "id": "q-p100-h03-b010",
          "markdown_line": 150
        },
        {
          "kind": "prose",
          "text": "3. 参与者节点向协调者节点发送”完成”消息。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0019",
            "p101-t0020",
            "p101-t0021",
            "p101-t0022",
            "p101-t0023",
            "p101-t0024"
          ],
          "operations": [],
          "id": "q-p100-h03-b011",
          "markdown_line": 152
        },
        {
          "kind": "prose",
          "text": "4. 协调者节点受到所有参与者节点反馈的”完成”消息后，完成事务",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0026",
            "p101-t0027",
            "p101-t0028",
            "p101-t0029",
            "p101-t0030",
            "p101-t0031"
          ],
          "operations": [],
          "id": "q-p100-h03-b012",
          "markdown_line": 154
        },
        {
          "kind": "prose",
          "text": "如果任一参与者节点在第一阶段返回的响应消息为”中止”：",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0034",
            "p101-t0035",
            "p101-t0036",
            "p101-t0037",
            "p101-t0038"
          ],
          "operations": [],
          "id": "q-p100-h03-b013",
          "markdown_line": 156
        },
        {
          "kind": "prose",
          "text": "1. 协调者节点向所有参与者节点发出”回滚操作(rollback)”的请求。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0040",
            "p101-t0041",
            "p101-t0042",
            "p101-t0043",
            "p101-t0044",
            "p101-t0045"
          ],
          "operations": [],
          "id": "q-p100-h03-b014",
          "markdown_line": 158
        },
        {
          "kind": "prose",
          "text": "2. 参与者节点利用之前写入的 Undo 信息执行回滚，并释放在整个事务期间内占用的资源。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0047",
            "p101-t0048",
            "p101-t0049",
            "p101-t0050",
            "p101-t0052"
          ],
          "operations": [],
          "id": "q-p100-h03-b015",
          "markdown_line": 160
        },
        {
          "kind": "prose",
          "text": "3. 参与者节点向协调者节点发送”回滚完成”消息。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0054",
            "p101-t0055",
            "p101-t0056",
            "p101-t0057",
            "p101-t0058",
            "p101-t0059"
          ],
          "operations": [],
          "id": "q-p100-h03-b016",
          "markdown_line": 162
        },
        {
          "kind": "prose",
          "text": "4. 协调者节点受到所有参与者节点反馈的”回滚完成”消息后，取消事务",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0061",
            "p101-t0062",
            "p101-t0063",
            "p101-t0064",
            "p101-t0065",
            "p101-t0066"
          ],
          "operations": [],
          "id": "q-p100-h03-b017",
          "markdown_line": 164
        }
      ],
      "markdown_line": 128
    },
    {
      "id": "q-p101-h01",
      "title": "请讲一下对 TCC 协议的理解",
      "heading-id": "p101-h01",
      "source-page": 101,
      "section": "分布式",
      "topic": "13-distributed",
      "target": "/go-bank/13-distributed#q-p101-h01",
      "pages": [
        101
      ],
      "page-range": [
        101,
        101
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Try Confirm Cancel Try：尝试待执行的业务，这个过程并未执行业务，只是完成所有业务的一致性检查，并预留好执行所需的全部资源。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0073",
            "p101-t0074",
            "p101-t0075",
            "p101-t0077",
            "p101-t0079",
            "p101-t0080"
          ],
          "operations": [],
          "id": "q-p101-h01-b001",
          "markdown_line": 170
        },
        {
          "kind": "prose",
          "text": "1. Confirm：执行业务，这个过程真正开始执行业务，由于 Try 阶段已经完成了一致性检查，因此本过程直接执行，而不做任何检查。并且在执行的过程中，会使用到 Try 阶段预留的业务资源。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0082",
            "p101-t0083",
            "p101-t0084",
            "p101-t0085",
            "p101-t0087",
            "p101-t0088",
            "p101-t0090",
            "p101-t0091",
            "p101-t0092"
          ],
          "operations": [],
          "id": "q-p101-h01-b002",
          "markdown_line": 172
        },
        {
          "kind": "prose",
          "text": "2. Cancel：取消执行的业务，若业务执行失败，则进入 Cancel 阶段，它会释放所有占用的业务资源，并回滚 Confirm 阶段执行的操作。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0094",
            "p101-t0095",
            "p101-t0096",
            "p101-t0097",
            "p101-t0099",
            "p101-t0100",
            "p101-t0101",
            "p101-t0102"
          ],
          "operations": [],
          "id": "q-p101-h01-b003",
          "markdown_line": 174
        }
      ],
      "markdown_line": 166
    },
    {
      "id": "q-p101-h03",
      "title": "Memcached 的多线程是什么？如何使用它们？",
      "heading-id": "p101-h03",
      "source-page": 101,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p101-h03",
      "pages": [
        101
      ],
      "page-range": [
        101,
        101
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "线程就是定律（threads rule）！在 Steven Grimm 和 Facebook 的努力下， Memcached 1.2 及更高版本拥有了多线程模式。多线程模式允许 Memcached 能够充分利用多个 CPU，并在 CPU 之间共享所有的缓存数据。 Memcached 使用一种简单的锁机制来保证数据更新操作的互斥。相比在同一个物理机器上运行多个 Memcached 实例，这种方式能够更有效地处理 multi gets。如果你的系统负载并不重，也许你不需要启用多线程工作模式。如果你在运行一个拥有大规模硬件的、庞大的网站，你将会看到多线程的好处。简单地总结一下：命令解析（Memcached 在这里花了大部分时间）可以运行在多线程模式下。Memcached 内部对数据的操作是基于很多全局锁的（因此这部分工作不是多线程的）。未来对多线程模式的改进，将移除大量的全局锁，提高 Memcached 在负载极高的场景下的性能。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0111",
            "p101-t0112",
            "p101-t0113",
            "p101-t0114",
            "p101-t0115",
            "p101-t0116",
            "p101-t0117",
            "p101-t0118",
            "p101-t0119",
            "p101-t0120",
            "p101-t0122",
            "p101-t0123",
            "p101-t0124",
            "p101-t0125",
            "p101-t0126",
            "p101-t0127",
            "p101-t0128",
            "p101-t0129",
            "p101-t0130",
            "p101-t0131",
            "p101-t0133",
            "p101-t0134",
            "p101-t0135",
            "p101-t0136",
            "p101-t0137",
            "p101-t0138",
            "p101-t0140",
            "p101-t0141",
            "p101-t0143",
            "p101-t0145",
            "p101-t0146",
            "p101-t0148",
            "p101-t0149",
            "p101-t0150",
            "p101-t0152",
            "p101-t0154",
            "p101-t0155",
            "p101-t0156",
            "p101-t0157",
            "p101-t0159",
            "p101-t0160",
            "p101-t0162",
            "p101-t0164",
            "p101-t0165",
            "p101-t0166"
          ],
          "operations": [],
          "id": "q-p101-h03-b001",
          "markdown_line": 428
        }
      ],
      "markdown_line": 424
    },
    {
      "id": "q-p101-h04",
      "title": "Memcached 是什么，有什么作用",
      "heading-id": "p101-h04",
      "source-page": 101,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p101-h04",
      "pages": [
        101
      ],
      "page-range": [
        101,
        101
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Memcached 是一个开源的，高性能的内存绶存软件，从名称上看 Mem 就是内存的意思，而 Cache 就是缓存的意思。Memcached 的作用：通过在事先规划好的内存空间中临时绶存数据库中的各类数据，以达到减少业务对数据库的直接高并发访问，从而达到提升数据库的访问性能，加速网站集群动态应用服务的能力",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0172",
            "p101-t0173",
            "p101-t0174",
            "p101-t0175",
            "p101-t0177",
            "p101-t0178",
            "p101-t0179",
            "p101-t0180",
            "p101-t0182",
            "p101-t0183",
            "p101-t0184",
            "p101-t0186",
            "p101-t0187",
            "p101-t0189",
            "p101-t0191",
            "p101-t0192",
            "p101-t0194"
          ],
          "operations": [],
          "id": "q-p101-h04-b001",
          "markdown_line": 434
        }
      ],
      "markdown_line": 430
    },
    {
      "id": "q-p101-h05",
      "title": "Memcached 与 Redis 的区别？",
      "heading-id": "p101-h05",
      "source-page": 101,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p101-h05",
      "pages": [
        101,
        102
      ],
      "page-range": [
        101,
        102
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. Redis 不仅仅支持简单的 K/V类型的数据，同时还提供 list，set，zset， hash 等数据结构的存储。而 memcache 只支持简单数据类型，需要客户端自己处理复杂对象。",
          "language": null,
          "pages": [
            101
          ],
          "span_ids": [
            "p101-t0202",
            "p101-t0203",
            "p101-t0204",
            "p101-t0205",
            "p101-t0206",
            "p101-t0207",
            "p101-t0208",
            "p101-t0209",
            "p101-t0210",
            "p101-t0211",
            "p101-t0212",
            "p101-t0213",
            "p101-t0214",
            "p101-t0215",
            "p101-t0216",
            "p101-t0218"
          ],
          "operations": [],
          "id": "q-p101-h05-b001",
          "markdown_line": 440
        },
        {
          "kind": "prose",
          "text": "2. Redis 支持数据的持久化，可以将内存中的数据保持在磁盘中，重启的时候可以再次加载进行使用（PS：持久化在 rdb、aof）。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0001",
            "p102-t0002",
            "p102-t0004",
            "p102-t0005",
            "p102-t0006",
            "p102-t0007",
            "p102-t0008",
            "p102-t0009",
            "p102-t0010",
            "p102-t0011"
          ],
          "operations": [],
          "id": "q-p101-h05-b002",
          "markdown_line": 442
        },
        {
          "kind": "prose",
          "text": "3. 由于 Memcache 没有持久化机制，因此宕机所有缓存数据失效。Redis 配置为持久化，宕机重启后，将自动加载宕机时刻的数据到缓存系统中。具有更好的灾备机制。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0013",
            "p102-t0014",
            "p102-t0015",
            "p102-t0016",
            "p102-t0017",
            "p102-t0018",
            "p102-t0020",
            "p102-t0021",
            "p102-t0023"
          ],
          "operations": [],
          "id": "q-p101-h05-b003",
          "markdown_line": 444
        },
        {
          "kind": "prose",
          "text": "4. Memcache 可以使用 Magent 在客户端进行一致性 hash 做分布式。 Redis 支持在服务器端做分布式（PS:Twemproxy/Codis/Redis-cluster 多种分布式实现方式）。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0025",
            "p102-t0026",
            "p102-t0027",
            "p102-t0028",
            "p102-t0029",
            "p102-t0030",
            "p102-t0031",
            "p102-t0032",
            "p102-t0033",
            "p102-t0034",
            "p102-t0035",
            "p102-t0037"
          ],
          "operations": [],
          "id": "q-p101-h05-b004",
          "markdown_line": 446
        },
        {
          "kind": "prose",
          "text": "5. Memcached 的简单限制就是键（key）和 Value 的限制。最大键⻓为 250 个字符。可以接受的储存数据不能超过 1MB（可修改配置文件变大），因为这是典型 slab 的最大值，不适合虚拟机使用。而 Redis 的 Key ⻓度支持到 512K。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0039",
            "p102-t0040",
            "p102-t0041",
            "p102-t0042",
            "p102-t0043",
            "p102-t0044",
            "p102-t0045",
            "p102-t0046",
            "p102-t0047",
            "p102-t0048",
            "p102-t0049",
            "p102-t0051",
            "p102-t0052",
            "p102-t0053",
            "p102-t0055",
            "p102-t0056",
            "p102-t0057",
            "p102-t0058",
            "p102-t0059",
            "p102-t0060",
            "p102-t0062",
            "p102-t0063",
            "p102-t0064"
          ],
          "operations": [],
          "id": "q-p101-h05-b005",
          "markdown_line": 448
        },
        {
          "kind": "prose",
          "text": "6. Redis 使用的是单线程模型，保证了数据按顺序提交。Memcache 需要使用 cas 保证数据一致性。 CAS（Check and Set）是一个确保并发一致性的机制，属于“乐观锁”范畴；原理很简单：拿版本号，操作，对比版本号，如果一致就操作，不一致就放弃任何操作。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0066",
            "p102-t0067",
            "p102-t0068",
            "p102-t0069",
            "p102-t0071",
            "p102-t0072",
            "p102-t0073",
            "p102-t0074",
            "p102-t0075",
            "p102-t0076",
            "p102-t0077",
            "p102-t0079",
            "p102-t0080",
            "p102-t0081",
            "p102-t0082",
            "p102-t0083",
            "p102-t0085",
            "p102-t0086",
            "p102-t0088"
          ],
          "operations": [],
          "id": "q-p101-h05-b006",
          "markdown_line": 450
        },
        {
          "kind": "prose",
          "text": "7. CPU 利用：由于 Redis 只使用单核，而 Memcached 可以使用多核，所以平均每一个核上 Redis在存储小数据时比 Memcached 性能更高。而在 100k 以上的数据中，Memcached 性能要高于Redis。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0090",
            "p102-t0091",
            "p102-t0092",
            "p102-t0093",
            "p102-t0094",
            "p102-t0095",
            "p102-t0097",
            "p102-t0098",
            "p102-t0099",
            "p102-t0100",
            "p102-t0101",
            "p102-t0102",
            "p102-t0103",
            "p102-t0104",
            "p102-t0105",
            "p102-t0107",
            "p102-t0109",
            "p102-t0110"
          ],
          "operations": [],
          "id": "q-p101-h05-b007",
          "markdown_line": 452
        },
        {
          "kind": "prose",
          "text": "8. Memcached 内存管理：使用 Slab Allocation。原理相当简单，预先分配一系列大小固定的组，然后根据数据大小选择最合适的块存储。避免了内存碎片。（缺点：不能变⻓，浪费了一定空间） Memcached 默认情况下下一个 slab 的最大值为前一个的 1.25 倍。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0112",
            "p102-t0113",
            "p102-t0114",
            "p102-t0115",
            "p102-t0117",
            "p102-t0118",
            "p102-t0120",
            "p102-t0122",
            "p102-t0123",
            "p102-t0124",
            "p102-t0126",
            "p102-t0127",
            "p102-t0128",
            "p102-t0129",
            "p102-t0130"
          ],
          "operations": [],
          "id": "q-p101-h05-b008",
          "markdown_line": 454
        },
        {
          "kind": "prose",
          "text": "9. Redis 内存管理： Redis 通过定义一个数组来记录所有的内存分配情况， Redis 采用的是包装的malloc/free，相较于 Memcached 的内存管理方法来说，要简单很多。由于 malloc 首先以链表的方式搜索已管理的内存中可用的空间分配，导致内存碎片比较多。",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0132",
            "p102-t0133",
            "p102-t0134",
            "p102-t0135",
            "p102-t0136",
            "p102-t0137",
            "p102-t0139",
            "p102-t0140",
            "p102-t0141",
            "p102-t0142",
            "p102-t0144",
            "p102-t0146",
            "p102-t0147",
            "p102-t0148",
            "p102-t0150",
            "p102-t0151",
            "p102-t0153"
          ],
          "operations": [],
          "id": "q-p101-h05-b009",
          "markdown_line": 456
        }
      ],
      "markdown_line": 436
    },
    {
      "id": "q-p102-h01",
      "title": "如果缓存数据在导出导入之间过期了，你又怎么处理这些数据呢",
      "heading-id": "p102-h01",
      "source-page": 102,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p102-h01",
      "pages": [
        102
      ],
      "page-range": [
        102,
        102
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "因此，批量导出导入数据并不像你想象中的那么有用。不过在一个场景倒是很有用。如果你有大量的从不变化的数据，并且希望缓存很快热（warm）起来，批量导入缓存数据是很有帮助的。虽然这个场景并不典型，但却经常发生，因此我们会考虑在将来实现批量导出导入的功能。如果一个 Memcached 节点 down 了让你很痛苦，那么你还会陷入其他很多麻烦。你的系统太脆弱了。你需要做一些优化工作。比如处理”惊群”问题（比如 Memcached 节点都失效了，反复的查询让你的数据库不堪重负…这个问题在 FAQ 的其他提到过），或者优化不好的查询。记住，Memcached 并不是你逃避优化查询的借口",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0259",
            "p102-t0261",
            "p102-t0263",
            "p102-t0267",
            "p102-t0269",
            "p102-t0258",
            "p102-t0260",
            "p102-t0262",
            "p102-t0264",
            "p102-t0266",
            "p102-t0268",
            "p102-t0270",
            "p102-t0278",
            "p102-t0271",
            "p102-t0273",
            "p102-t0274",
            "p102-t0275",
            "p102-t0277",
            "p102-t0279",
            "p102-t0282",
            "p102-t0284",
            "p102-t0288",
            "p102-t0280",
            "p102-t0283",
            "p102-t0285",
            "p102-t0287",
            "p102-t0289",
            "p102-t0291",
            "p102-t0293",
            "p102-t0290",
            "p102-t0292",
            "p102-t0295",
            "p102-t0300",
            "p102-t0302",
            "p102-t0304",
            "p102-t0294",
            "p102-t0296",
            "p102-t0298",
            "p102-t0301",
            "p102-t0303",
            "p102-t0305",
            "p102-t0307",
            "p102-t0309",
            "p102-t0306",
            "p102-t0308",
            "p102-t0311",
            "p102-t0310",
            "p102-t0313",
            "p102-t0314",
            "p102-t0315",
            "p102-t0316",
            "p102-t0317",
            "p102-t0319",
            "p102-t0321",
            "p102-t0322",
            "p102-t0323",
            "p102-t0329",
            "p102-t0324",
            "p102-t0326",
            "p102-t0328",
            "p102-t0325"
          ],
          "operations": [],
          "id": "q-p102-h01-b001",
          "markdown_line": 462
        }
      ],
      "markdown_line": 458
    },
    {
      "id": "q-p102-h02",
      "title": "如何实现集群中的 session 共享存储",
      "heading-id": "p102-h02",
      "source-page": 102,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p102-h02",
      "pages": [
        102,
        103
      ],
      "page-range": [
        102,
        103
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Session 是运行在一台服务器上的，所有的访问都会到达我们的唯一服务器上，这样我们可以根据客户端传来的 sessionID，来获取 session，或在对应 Session 不存在的情况下（session 生命周期到了/用户第一次登录），创建一个新的 Session；但是，如果我们在集群环境下，假设我们有两台服务器 A， B，用户的请求会由 Nginx 服务器进行转发（别的方案也是同理），用户登录时，Nginx 将请求转发至服务器 A 上，A 创建了新的 session，并将 SessionID 返回给客户端，用户在浏览其他⻚面时，客户端验证登录状态， Nginx 将请求转发至服务器 B，由于 B 上并没有对应客户端发来 sessionId 的 session，所以会重新创建一个新的 session，并且再将这个新的 sessionID 返回给客户端，这样，我们可以想象一下，用户每一次操作都有 1/2 的概率进行再次的登录，这样不仅对用户体验特别差，还会让服务器上的 session 激增，加大服务器的运行压力。为了解决集群环境下的 seesion 共享问题，共有 4 种解决方案：",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0164",
            "p102-t0165",
            "p102-t0167",
            "p102-t0168",
            "p102-t0169",
            "p102-t0170",
            "p102-t0171",
            "p102-t0172",
            "p102-t0173",
            "p102-t0174",
            "p102-t0175",
            "p102-t0176",
            "p102-t0177",
            "p102-t0178",
            "p102-t0179",
            "p102-t0181",
            "p102-t0183",
            "p102-t0184",
            "p102-t0185",
            "p102-t0186",
            "p102-t0187",
            "p102-t0189",
            "p102-t0190",
            "p102-t0191",
            "p102-t0192",
            "p102-t0194",
            "p102-t0196",
            "p102-t0197",
            "p102-t0198",
            "p102-t0199",
            "p102-t0200",
            "p102-t0201",
            "p102-t0202",
            "p102-t0203",
            "p102-t0204",
            "p102-t0205",
            "p102-t0206",
            "p102-t0207",
            "p102-t0208",
            "p102-t0209",
            "p102-t0210",
            "p102-t0211",
            "p102-t0212",
            "p102-t0213",
            "p102-t0214",
            "p102-t0215",
            "p102-t0216",
            "p102-t0217",
            "p102-t0218",
            "p102-t0219",
            "p102-t0220",
            "p102-t0221",
            "p102-t0222",
            "p102-t0223",
            "p102-t0225",
            "p102-t0226",
            "p102-t0227",
            "p102-t0228",
            "p102-t0230",
            "p102-t0232",
            "p102-t0233",
            "p102-t0234",
            "p102-t0235",
            "p102-t0237",
            "p102-t0239",
            "p102-t0240",
            "p102-t0241",
            "p102-t0242",
            "p102-t0243",
            "p102-t0244"
          ],
          "operations": [],
          "id": "q-p102-h02-b001",
          "markdown_line": 468
        },
        {
          "kind": "prose",
          "text": "1. 粘性 session 粘性 session 是指 Ngnix 每次都将同一用户的所有请求转发至同一台服务器上，即将用户与服务器绑定",
          "language": null,
          "pages": [
            102
          ],
          "span_ids": [
            "p102-t0246",
            "p102-t0247",
            "p102-t0248",
            "p102-t0249",
            "p102-t0250",
            "p102-t0251",
            "p102-t0252",
            "p102-t0253",
            "p102-t0255",
            "p102-t0256"
          ],
          "operations": [],
          "id": "q-p102-h02-b002",
          "markdown_line": 470
        },
        {
          "kind": "prose",
          "text": "2. 服务器 session 复制即每次 session 发生变化时，创建或者修改，就广播给所有集群中的服务器，使所有的服务器上的 session 相同。",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0001",
            "p103-t0002",
            "p103-t0003",
            "p103-t0004",
            "p103-t0006",
            "p103-t0007",
            "p103-t0008",
            "p103-t0010",
            "p103-t0011",
            "p103-t0012"
          ],
          "operations": [],
          "id": "q-p102-h02-b003",
          "markdown_line": 472
        },
        {
          "kind": "prose",
          "text": "3. session 共享缓存 session，使用 Redis， Memcached。",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0014",
            "p103-t0015",
            "p103-t0017",
            "p103-t0018",
            "p103-t0019",
            "p103-t0020",
            "p103-t0021",
            "p103-t0022",
            "p103-t0023"
          ],
          "operations": [],
          "id": "q-p102-h02-b004",
          "markdown_line": 474
        },
        {
          "kind": "prose",
          "text": "4. session 持久化将 session 存储至数据库中，像操作数据一样才做 session。",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0025",
            "p103-t0026",
            "p103-t0028",
            "p103-t0029",
            "p103-t0030",
            "p103-t0031",
            "p103-t0032"
          ],
          "operations": [],
          "id": "q-p102-h02-b005",
          "markdown_line": 476
        }
      ],
      "markdown_line": 464
    },
    {
      "id": "q-p103-h01",
      "title": "Memcached 和 MySQL 的 query cache 相比，有什么优缺点",
      "heading-id": "p103-h01",
      "source-page": 103,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p103-h01",
      "pages": [
        103
      ],
      "page-range": [
        103,
        103
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "把 Memcached 引入应用中，还是需要不少工作量的。MySQL 有个使用方便的 query cache，可以自动地缓存 SQL 查询的结果，被缓存的 SQL 查询可以被反复地快速执行。Memcached 与之相比，怎么样呢？MySQL 的 query cache 是集中式的，连接到该 query cache 的 MySQL 服务器都会受益",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0044",
            "p103-t0045",
            "p103-t0046",
            "p103-t0047",
            "p103-t0048",
            "p103-t0050",
            "p103-t0051",
            "p103-t0052",
            "p103-t0053",
            "p103-t0054",
            "p103-t0055",
            "p103-t0056",
            "p103-t0057",
            "p103-t0059",
            "p103-t0060",
            "p103-t0061",
            "p103-t0062",
            "p103-t0063",
            "p103-t0064",
            "p103-t0065",
            "p103-t0066",
            "p103-t0067",
            "p103-t0068",
            "p103-t0069",
            "p103-t0070"
          ],
          "operations": [],
          "id": "q-p103-h01-b001",
          "markdown_line": 482
        },
        {
          "kind": "prose",
          "text": "1. 当你修改表时，MySQL 的 query cache 会立刻被刷新（flush）。存储一个 Memcached item 只需要很少的时间，但是当写操作很频繁时，MySQL 的 query cache 会经常让所有缓存数据都失效",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0072",
            "p103-t0073",
            "p103-t0074",
            "p103-t0075",
            "p103-t0076",
            "p103-t0077",
            "p103-t0078",
            "p103-t0079",
            "p103-t0081",
            "p103-t0082",
            "p103-t0083",
            "p103-t0084",
            "p103-t0085",
            "p103-t0086",
            "p103-t0087",
            "p103-t0088",
            "p103-t0090"
          ],
          "operations": [],
          "id": "q-p103-h01-b002",
          "markdown_line": 484
        },
        {
          "kind": "prose",
          "text": "2. 在多核 CPU 上，MySQL 的 query cache 会遇到扩展问题（scalability issues）。在多核 CPU 上， query cache 会增加一个全局锁（global lock）, 由于需要刷新更多的缓存数据，速度会变得更慢",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0092",
            "p103-t0093",
            "p103-t0094",
            "p103-t0095",
            "p103-t0096",
            "p103-t0097",
            "p103-t0098",
            "p103-t0099",
            "p103-t0100",
            "p103-t0101",
            "p103-t0102",
            "p103-t0103",
            "p103-t0104",
            "p103-t0105",
            "p103-t0106",
            "p103-t0107",
            "p103-t0108",
            "p103-t0109"
          ],
          "operations": [],
          "id": "q-p103-h01-b003",
          "markdown_line": 486
        },
        {
          "kind": "prose",
          "text": "3. 在 MySQL 的 query cache 中，我们是不能存储任意的数据的（只能是 SQL 查询结果）。而利用Memcached，我们可以搭建出各种高效的缓存。比如，可以执行多个独立的查询，构建出一个用户对象（user object），然后将用户对象缓存到 Memcached 中。而 query cache 是 SQL 语句级别的，不可能做到这一点。在小的网站中，query cache 会有所帮助，但随着网站规模的增加， query cache 的弊将大于利。",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0111",
            "p103-t0112",
            "p103-t0113",
            "p103-t0114",
            "p103-t0115",
            "p103-t0116",
            "p103-t0117",
            "p103-t0118",
            "p103-t0120",
            "p103-t0121",
            "p103-t0123",
            "p103-t0124",
            "p103-t0126",
            "p103-t0127",
            "p103-t0128",
            "p103-t0130",
            "p103-t0131",
            "p103-t0132",
            "p103-t0133",
            "p103-t0134",
            "p103-t0135",
            "p103-t0136",
            "p103-t0137",
            "p103-t0139",
            "p103-t0141",
            "p103-t0142",
            "p103-t0143",
            "p103-t0145",
            "p103-t0146",
            "p103-t0147",
            "p103-t0149"
          ],
          "operations": [],
          "id": "q-p103-h01-b004",
          "markdown_line": 488
        },
        {
          "kind": "prose",
          "text": "4. query cache 能够利用的内存容量受到 MySQL 服务器空闲内存空间的限制。给数据库服务器增加更多的内存来缓存数据，固然是很好的。但是，有了 Memcached，只要你有空闲的内存，都可以用来增加 Memcached 集群的规模，然后你就可以缓存更多的数据",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0151",
            "p103-t0152",
            "p103-t0153",
            "p103-t0154",
            "p103-t0156",
            "p103-t0157",
            "p103-t0159",
            "p103-t0160",
            "p103-t0161",
            "p103-t0162",
            "p103-t0163",
            "p103-t0164",
            "p103-t0166"
          ],
          "operations": [],
          "id": "q-p103-h01-b005",
          "markdown_line": 490
        }
      ],
      "markdown_line": 478
    },
    {
      "id": "q-p103-h02",
      "title": "Memcached 是原子的吗？",
      "heading-id": "p103-h02",
      "source-page": 103,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p103-h02",
      "pages": [
        103
      ],
      "page-range": [
        103,
        103
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "所有的被发送到 Memcached 的单个命令是完全原子的。如果你针对同一份数据同时发送了一个 set 命令和一个 get 命令，它们不会影响对方。它们将被串行化、先后执行。即使在多线程模式，所有的命令都是原子的，除非程序有 bug。命令序列不是原子的。如果你通过 get 命令获取了一个 item，修改了它，然后想把它 set 回 Memcached，我们不保证这个 item 没有被其他进程（process，未必是操作系统中的进程）操作过。在并发的情况下，你也可能覆写了一个被其他进程 set 的 item。 Memcached",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0173",
            "p103-t0174",
            "p103-t0175",
            "p103-t0177",
            "p103-t0178",
            "p103-t0179",
            "p103-t0180",
            "p103-t0181",
            "p103-t0182",
            "p103-t0184",
            "p103-t0186",
            "p103-t0187",
            "p103-t0188",
            "p103-t0189",
            "p103-t0191",
            "p103-t0192",
            "p103-t0193",
            "p103-t0194",
            "p103-t0195",
            "p103-t0196",
            "p103-t0198",
            "p103-t0199",
            "p103-t0200",
            "p103-t0201",
            "p103-t0202",
            "p103-t0204",
            "p103-t0205",
            "p103-t0206",
            "p103-t0208",
            "p103-t0209",
            "p103-t0210",
            "p103-t0211",
            "p103-t0213",
            "p103-t0215",
            "p103-t0216",
            "p103-t0217",
            "p103-t0218",
            "p103-t0219",
            "p103-t0220"
          ],
          "operations": [],
          "id": "q-p103-h02-b001",
          "markdown_line": 496
        },
        {
          "kind": "prose",
          "text": "1.2.5 以及更高版本，提供了 gets 和 cas 命令，它们可以解决上面的问题。如果你使用 gets 命令查询某个 key 的 item，Memcached 会给你返回该 item 当前值的唯一标识。如果你覆写了这个 item 并想把它写回到 Memcached 中，你可以通过 cas 命令把那个唯一标识一起发送给 Memcached。如果该item 存放在 Memcached 中的唯一标识与你提供的一致，你的写操作将会成功。如果另一个进程在这期间也修改了这个 item，那么该 item 存放在 Memcached 中的唯一标识将会改变，你的写操作就会失败",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0221",
            "p103-t0222",
            "p103-t0223",
            "p103-t0224",
            "p103-t0225",
            "p103-t0226",
            "p103-t0228",
            "p103-t0229",
            "p103-t0230",
            "p103-t0232",
            "p103-t0233",
            "p103-t0234",
            "p103-t0235",
            "p103-t0236",
            "p103-t0237",
            "p103-t0238",
            "p103-t0239",
            "p103-t0241",
            "p103-t0242",
            "p103-t0243",
            "p103-t0244",
            "p103-t0245",
            "p103-t0246",
            "p103-t0248",
            "p103-t0249",
            "p103-t0250",
            "p103-t0251",
            "p103-t0252",
            "p103-t0253",
            "p103-t0254",
            "p103-t0256",
            "p103-t0257",
            "p103-t0258",
            "p103-t0259",
            "p103-t0261",
            "p103-t0262",
            "p103-t0263",
            "p103-t0264",
            "p103-t0266",
            "p103-t0267",
            "p103-t0268",
            "p103-t0269",
            "p103-t0270",
            "p103-t0272"
          ],
          "operations": [],
          "id": "q-p103-h02-b002",
          "markdown_line": 498
        }
      ],
      "markdown_line": 492
    },
    {
      "id": "q-p103-h03",
      "title": "Memcached 能够更有效地使用内存吗",
      "heading-id": "p103-h03",
      "source-page": 103,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p103-h03",
      "pages": [
        103
      ],
      "page-range": [
        103,
        103
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Memcache 客户端仅根据哈希算法来决定将某个 key 存储在哪个节点上，而不考虑节点的内存大小。因此，你可以在不同的节点上使用大小不等的缓存。但是一般都是这样做的：拥有较多内存的节点上可以运行多个 Memcached 实例，每个实例使用的内存跟其他节点上的实例相同",
          "language": null,
          "pages": [
            103
          ],
          "span_ids": [
            "p103-t0278",
            "p103-t0279",
            "p103-t0280",
            "p103-t0281",
            "p103-t0283",
            "p103-t0284",
            "p103-t0286",
            "p103-t0288",
            "p103-t0289",
            "p103-t0290",
            "p103-t0291",
            "p103-t0293"
          ],
          "operations": [],
          "id": "q-p103-h03-b001",
          "markdown_line": 504
        }
      ],
      "markdown_line": 500
    },
    {
      "id": "q-p104-h01",
      "title": "Memcached 的内存分配器是如何工作的？为什么不适用malloc/free？为何要使用 slabs？",
      "heading-id": "p104-h01",
      "source-page": 104,
      "section": "Memcached",
      "topic": "09-redis-cache",
      "target": "/go-bank/09-redis-cache#q-p104-h01",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "实际上，这是一个编译时选项。默认会使用内部的 slab 分配器。你确实确实应该使用内建的 slab 分配器。最早的时候，Memcached 只使用 malloc/free 来管理内存。然而，这种方式不能与 OS 的内存管理以前很好地工作。反复地 malloc/free 造成了内存碎片，OS 最终花费大量的时间去查找连续的内存块来满足 malloc 的请求，而不是运行 Memcached 进程。如果你不同意，当然可以使用 malloc。 slab分配器就是为了解决这个问题而生的。内存被分配并划分成 chunks，一直被重复使用。因为内存被划分成大小不等的 slabs，如果 item 的大小与被选择存放它的 slab 不是很合适的话，就会浪费一些内存。 Steven Grimm 正在这方面已经做出了有效的改进",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0013",
            "p104-t0014",
            "p104-t0015",
            "p104-t0017",
            "p104-t0018",
            "p104-t0019",
            "p104-t0020",
            "p104-t0022",
            "p104-t0023",
            "p104-t0024",
            "p104-t0025",
            "p104-t0026",
            "p104-t0027",
            "p104-t0028",
            "p104-t0029",
            "p104-t0031",
            "p104-t0032",
            "p104-t0033",
            "p104-t0034",
            "p104-t0035",
            "p104-t0036",
            "p104-t0038",
            "p104-t0039",
            "p104-t0040",
            "p104-t0042",
            "p104-t0043",
            "p104-t0044",
            "p104-t0046",
            "p104-t0047",
            "p104-t0048",
            "p104-t0049",
            "p104-t0050",
            "p104-t0051",
            "p104-t0052",
            "p104-t0054",
            "p104-t0055",
            "p104-t0057",
            "p104-t0058",
            "p104-t0059",
            "p104-t0060",
            "p104-t0061",
            "p104-t0063",
            "p104-t0064",
            "p104-t0065",
            "p104-t0066",
            "p104-t0067",
            "p104-t0069"
          ],
          "operations": [],
          "id": "q-p104-h01-b001",
          "markdown_line": 510
        }
      ],
      "markdown_line": 506
    },
    {
      "id": "q-p104-h03",
      "title": "ObjectID 有哪些部分组成",
      "heading-id": "p104-h03",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "一共有四部分组成:时间戳、客户端 ID、客户进程 ID、三个字节的增量计数器",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0080",
            "p104-t0081",
            "p104-t0082",
            "p104-t0083",
            "p104-t0084",
            "p104-t0085",
            "p104-t0086",
            "p104-t0088"
          ],
          "operations": [],
          "id": "q-p104-h03-b001",
          "markdown_line": 12
        }
      ],
      "markdown_line": 8
    },
    {
      "id": "q-p104-h04",
      "title": "当我试图更新一个正在被迁移的块(chunk)上的文档时会发生什么",
      "heading-id": "p104-h04",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "更新操作会立即发生在旧的分片(shard)上,然后更改才会在所有权转移 (ownership transfers)前复制到新的分片上",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0099",
            "p104-t0100",
            "p104-t0101",
            "p104-t0102",
            "p104-t0103",
            "p104-t0104",
            "p104-t0105",
            "p104-t0106",
            "p104-t0108"
          ],
          "operations": [],
          "id": "q-p104-h04-b001",
          "markdown_line": 18
        }
      ],
      "markdown_line": 14
    },
    {
      "id": "q-p104-h05",
      "title": "为什么要在 MongoDB 中使用分析器",
      "heading-id": "p104-h05",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "MongoDB 中包括了一个可以显示数据库中每个操作性能特点的数据库分析器。通过这个分析器你可以找到比预期慢的查询(或写操作);利用这一信息,比如, 可以确定是否需要添加索引。",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0115",
            "p104-t0116",
            "p104-t0118",
            "p104-t0119",
            "p104-t0121",
            "p104-t0122",
            "p104-t0123",
            "p104-t0124",
            "p104-t0125",
            "p104-t0126",
            "p104-t0127",
            "p104-t0128",
            "p104-t0129"
          ],
          "operations": [],
          "id": "q-p104-h05-b001",
          "markdown_line": 24
        }
      ],
      "markdown_line": 20
    },
    {
      "id": "q-p104-h06",
      "title": "解释一下 MongoDB 中的索引是什么",
      "heading-id": "p104-h06",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "索引是 MongoDB 中的特殊结构，它以易于遍历的形式存储一小部分数据集。索引按索引中指定的字段的值排序，存储特定字段或一组字段的值",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0137",
            "p104-t0138",
            "p104-t0139",
            "p104-t0141",
            "p104-t0142"
          ],
          "operations": [],
          "id": "q-p104-h06-b001",
          "markdown_line": 30
        }
      ],
      "markdown_line": 26
    },
    {
      "id": "q-p104-h07",
      "title": "什么是集合（表）",
      "heading-id": "p104-h07",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "集合就是一组 MongoDB 文档。它相当于关系型数据库（RDBMS）中的表这种概念。集合位于单独的一个数据库中。一个集合内的多个文档可以有多个不同的字段。一般来说，集合中的文档都有着相同或相关的目的。",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0148",
            "p104-t0149",
            "p104-t0150",
            "p104-t0151",
            "p104-t0152",
            "p104-t0154",
            "p104-t0155",
            "p104-t0157",
            "p104-t0159",
            "p104-t0160"
          ],
          "operations": [],
          "id": "q-p104-h07-b001",
          "markdown_line": 36
        }
      ],
      "markdown_line": 32
    },
    {
      "id": "q-p104-h08",
      "title": "什么是 NoSQL 数据库？NoSQL 和 RDBMS 有什么区别？在哪些情况下使用和不使用 NoSQL 数据库？",
      "heading-id": "p104-h08",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "NoSQL 是非关系型数据库，NoSQL = Not Only SQL。关系型数据库采用的结构化的数据，NoSQL 采用的是键值对的方式存储数据。在处理非结构化/半结构化的大数据时；在水平方向上进行扩展时，随时应对动态增加的数据项时可以优先考虑。使用 NoSQL 数据库。在考虑数据库的成熟度；支持；分析和商业智能；管理及专业性等问题时，应优先考虑关系型数据库",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0178",
            "p104-t0179",
            "p104-t0180",
            "p104-t0181",
            "p104-t0183",
            "p104-t0184",
            "p104-t0185",
            "p104-t0186",
            "p104-t0188",
            "p104-t0190",
            "p104-t0191",
            "p104-t0192",
            "p104-t0193",
            "p104-t0195",
            "p104-t0197",
            "p104-t0199",
            "p104-t0200",
            "p104-t0201",
            "p104-t0203",
            "p104-t0204",
            "p104-t0206",
            "p104-t0208"
          ],
          "operations": [],
          "id": "q-p104-h08-b001",
          "markdown_line": 42
        }
      ],
      "markdown_line": 38
    },
    {
      "id": "q-p104-h09",
      "title": "提及插入文档的命令语法是什么？",
      "heading-id": "p104-h09",
      "source-page": 104,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
      "pages": [
        104
      ],
      "page-range": [
        104,
        104
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "用于插入文档的命令语法是 database.collection.insert（文档）",
          "language": null,
          "pages": [
            104
          ],
          "span_ids": [
            "p104-t0214",
            "p104-t0215",
            "p104-t0216"
          ],
          "operations": [],
          "id": "q-p104-h09-b001",
          "markdown_line": 48
        }
      ],
      "markdown_line": 44
    },
    {
      "id": "q-p105-h01",
      "title": "如果在一个分片（shard）停止或者很慢的时候,我发起一个查询会怎样",
      "heading-id": "p105-h01",
      "source-page": 105,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "如果一个分片（shard）停止了，除非查询设置了“partial”选项,否则查询会返回一个错误。如果一个分片（shard）响应很慢，MongoDB 则会等待它的响应",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0012",
            "p105-t0013",
            "p105-t0014",
            "p105-t0015",
            "p105-t0016",
            "p105-t0017",
            "p105-t0018",
            "p105-t0020",
            "p105-t0021",
            "p105-t0023",
            "p105-t0024",
            "p105-t0025",
            "p105-t0026",
            "p105-t0027",
            "p105-t0029"
          ],
          "operations": [],
          "id": "q-p105-h01-b001",
          "markdown_line": 54
        }
      ],
      "markdown_line": 50
    },
    {
      "id": "q-p105-h02",
      "title": "如何执行事务/加锁？",
      "heading-id": "p105-h02",
      "source-page": 105,
      "section": "MongoDB 面试题",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "因为 MongoDB 设计就是轻量高性能，所以没有传统的锁和复杂的事务的回滚",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0037",
            "p105-t0038",
            "p105-t0039"
          ],
          "operations": [],
          "id": "q-p105-h02-b001",
          "markdown_line": 60
        }
      ],
      "markdown_line": 56
    },
    {
      "id": "q-p105-h04",
      "title": "Elasticsearch 读取数据",
      "heading-id": "p105-h04",
      "source-page": 105,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "使用 RestFul API 向对应的 node 发送查询请求，根据 did 来判断在哪个 shard 上，返回的是 primary和 replica 的 node 节点集合。这样会负载均衡地把查询发送到对应节点，之后对应节点接收到请求，将document 数据返回协调节点，协调节点把 document 返回给客户端。",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0048",
            "p105-t0049",
            "p105-t0050",
            "p105-t0051",
            "p105-t0052",
            "p105-t0053",
            "p105-t0054",
            "p105-t0055",
            "p105-t0056",
            "p105-t0057",
            "p105-t0058",
            "p105-t0059",
            "p105-t0060",
            "p105-t0061",
            "p105-t0062",
            "p105-t0064",
            "p105-t0066",
            "p105-t0067",
            "p105-t0068",
            "p105-t0069"
          ],
          "operations": [],
          "id": "q-p105-h04-b001",
          "markdown_line": 66
        },
        {
          "kind": "image",
          "image_id": "p105-image-01",
          "pages": [
            105
          ],
          "url": "/go-bank/pdf-p105-01.png",
          "span_ids": [],
          "id": "q-p105-h04-b002",
          "markdown_line": 68
        }
      ],
      "markdown_line": 62
    },
    {
      "id": "q-p105-h05",
      "title": "您能解释一下 X-Pack for Elasticsearch 的功能和重要性吗",
      "heading-id": "p105-h05",
      "source-page": 105,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "X-Pack 是与 Elasticsearch 一起安装的扩展程序。 X-Pack 的各种功能包括安全性（基于⻆色的访问，特权/权限，⻆色和用户安全性），监视，报告，警报等。",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0076",
            "p105-t0077",
            "p105-t0078",
            "p105-t0079",
            "p105-t0080",
            "p105-t0081",
            "p105-t0082",
            "p105-t0083",
            "p105-t0084",
            "p105-t0086"
          ],
          "operations": [],
          "id": "q-p105-h05-b001",
          "markdown_line": 74
        }
      ],
      "markdown_line": 70
    },
    {
      "id": "q-p105-h06",
      "title": "Elasticsearch 中的节点（比如共 20 个），其中的 10 个选了一个 master，另外 10 个选了另一个 master，怎么办",
      "heading-id": "p105-h06",
      "source-page": 105,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "1. 当集群 master 候选数量不小于 3 个时，可以通过设置最少投票通过数量（discovery.zen.minimum_master_nodes）超过所有候选节点一半以上来解决脑裂问题；",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0105",
            "p105-t0106",
            "p105-t0107",
            "p105-t0108",
            "p105-t0109",
            "p105-t0110",
            "p105-t0112",
            "p105-t0113",
            "p105-t0114",
            "p105-t0116"
          ],
          "operations": [],
          "id": "q-p105-h06-b001",
          "markdown_line": 80
        },
        {
          "kind": "prose",
          "text": "2. 当候选数量为两个时，只能修改为唯一的一个 master 候选，其他作为data 节点，避免脑裂问题",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0118",
            "p105-t0119",
            "p105-t0120",
            "p105-t0121",
            "p105-t0122",
            "p105-t0123"
          ],
          "operations": [],
          "id": "q-p105-h06-b002",
          "markdown_line": 82
        }
      ],
      "markdown_line": 76
    },
    {
      "id": "q-p105-h07",
      "title": "解释一下 Elasticsearch 集群中的索引的概念？",
      "heading-id": "p105-h07",
      "source-page": 105,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
      "pages": [
        105
      ],
      "page-range": [
        105,
        105
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Elasticsearch 集群可以包含多个索引，与关系数据库相比，它们相当于数据库表",
          "language": null,
          "pages": [
            105
          ],
          "span_ids": [
            "p105-t0134",
            "p105-t0135"
          ],
          "operations": [],
          "id": "q-p105-h07-b001",
          "markdown_line": 88
        }
      ],
      "markdown_line": 84
    },
    {
      "id": "q-p106-h01",
      "title": "你可以列出 Elasticsearch 各种类型的分析器吗",
      "heading-id": "p106-h01",
      "source-page": 106,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
      "pages": [
        106
      ],
      "page-range": [
        106,
        106
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "Elasticsearch Analyzer 的类型为内置分析器和自定义分析器。 Standard Analyzer 标准分析器是默认分词器，如果未指定，则使用该分词器。它基于 Unicode 文本分割算法，适用于大多数语言。 Whitespace Analyzer 基于空格字符切词。 Stop Analyzer 在 simple Analyzer 的基础上，移除停用词。 Keyword Analyzer 不切词，将输入的整个串一起返回。自定义分词器的模板自定义分词器的在Mapping 的 Setting 部分设置",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0006",
            "p106-t0007",
            "p106-t0008",
            "p106-t0009",
            "p106-t0010",
            "p106-t0012",
            "p106-t0013",
            "p106-t0014",
            "p106-t0016",
            "p106-t0018",
            "p106-t0019",
            "p106-t0020",
            "p106-t0021",
            "p106-t0022",
            "p106-t0023",
            "p106-t0025",
            "p106-t0026",
            "p106-t0028",
            "p106-t0030",
            "p106-t0032",
            "p106-t0033",
            "p106-t0034",
            "p106-t0035"
          ],
          "operations": [],
          "id": "q-p106-h01-b001",
          "markdown_line": 94
        },
        {
          "kind": "code",
          "text": "PUT my\\_custom\\_index\n{\n \"settings\":{\n \"analysis\":{\n \"char\\_filter\":{\n },\n \"tokenizer\":{\n },\n \"filter\":{\n },\n \"analyzer\":{\n }\n }\n }\n}",
          "language": "http",
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0185",
            "p106-t0186",
            "p106-t0187",
            "p106-t0188",
            "p106-t0189",
            "p106-t0190",
            "p106-t0191",
            "p106-t0192",
            "p106-t0193",
            "p106-t0194",
            "p106-t0195",
            "p106-t0196",
            "p106-t0197",
            "p106-t0198",
            "p106-t0199"
          ],
          "operations": [],
          "id": "q-p106-h01-b002",
          "markdown_line": 96
        },
        {
          "kind": "prose",
          "text": "其中： “char_filter”:{},——对应字符过滤部分； “tokenizer”:{},——对应文本切分为分词部分； “filter”: {},——对应分词后再过滤部分； “analyzer”:{}——对应分词器组成部分，其中会包含：1. 2. 3",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0038",
            "p106-t0039",
            "p106-t0040",
            "p106-t0041",
            "p106-t0042",
            "p106-t0043",
            "p106-t0044",
            "p106-t0045",
            "p106-t0046",
            "p106-t0047",
            "p106-t0048"
          ],
          "operations": [],
          "id": "q-p106-h01-b003",
          "markdown_line": 114
        }
      ],
      "markdown_line": 90
    },
    {
      "id": "q-p106-h02",
      "title": "解释一下 Elasticsearch Node？",
      "heading-id": "p106-h02",
      "source-page": 106,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
      "pages": [
        106
      ],
      "page-range": [
        106,
        106
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "节点是 Elasticsearch 的实例。实际业务中，我们会说：ES 集群包含 3 个节点、7 个节点。这里节点实际就是：一个独立的 Elasticsearch 进程，一般将一个节点部署到一台独立的服务器或者虚拟机、容器中。不同节点根据⻆色不同，可以划分为：主节点帮助配置和管理在整个集群中添加和删除节点。数据节点存储数据并执行诸如 CRUD（创建/读取/更新/删除）操作，对数据进行搜索和聚合的操作。客户端节点（或者说：协调节点）将集群请求转发到主节点，将与数据相关的请求转发到数据节点。摄取节点用于在索引之前对文档进行预处理",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0055",
            "p106-t0056",
            "p106-t0057",
            "p106-t0058",
            "p106-t0059",
            "p106-t0060",
            "p106-t0061",
            "p106-t0063",
            "p106-t0064",
            "p106-t0065",
            "p106-t0067",
            "p106-t0068",
            "p106-t0069",
            "p106-t0070",
            "p106-t0072",
            "p106-t0074",
            "p106-t0075",
            "p106-t0077",
            "p106-t0079",
            "p106-t0081",
            "p106-t0083",
            "p106-t0084",
            "p106-t0086",
            "p106-t0087",
            "p106-t0088",
            "p106-t0089",
            "p106-t0090",
            "p106-t0091",
            "p106-t0092",
            "p106-t0093",
            "p106-t0094",
            "p106-t0096",
            "p106-t0098",
            "p106-t0099",
            "p106-t0101",
            "p106-t0103",
            "p106-t0105",
            "p106-t0106",
            "p106-t0108"
          ],
          "operations": [],
          "id": "q-p106-h02-b001",
          "markdown_line": 120
        }
      ],
      "markdown_line": 116
    },
    {
      "id": "q-p106-h03",
      "title": "Elasticsearch 在部署时，对 Linux 的设置有哪些优化方法",
      "heading-id": "p106-h03",
      "source-page": 106,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
      "pages": [
        106
      ],
      "page-range": [
        106,
        106
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "关闭缓存 swap; 堆内存设置为：Min（节点内存/2, 32GB）; 设置最大文件句柄数；线程池+队列大小根据业务需要做调整；磁盘存储 raid 方式——存储有条件使用 RAID10，增加单节点性能以及避免单节点存储故障",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0117",
            "p106-t0118",
            "p106-t0119",
            "p106-t0120",
            "p106-t0121",
            "p106-t0122",
            "p106-t0123",
            "p106-t0124",
            "p106-t0125",
            "p106-t0127",
            "p106-t0128",
            "p106-t0129",
            "p106-t0130",
            "p106-t0132",
            "p106-t0133",
            "p106-t0134",
            "p106-t0135",
            "p106-t0136",
            "p106-t0137",
            "p106-t0138",
            "p106-t0140",
            "p106-t0141"
          ],
          "operations": [],
          "id": "q-p106-h03-b001",
          "markdown_line": 126
        }
      ],
      "markdown_line": 122
    },
    {
      "id": "q-p106-h04",
      "title": "请解释有关 Elasticsearch 的 NRT",
      "heading-id": "p106-h04",
      "source-page": 106,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
      "pages": [
        106
      ],
      "page-range": [
        106,
        106
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "从文档索引（写入）到可搜索到之间的延迟默认一秒钟，因此 Elasticsearch 是近实时（NRT）搜索平台。也就是说：文档写入，最快一秒钟被索引到，不能再快了。写入调优的时候，我们通常会动态调整： refresh_interval = 30s 或者更达值，以使得写入数据更晚一点时间被搜索到",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0149",
            "p106-t0150",
            "p106-t0151",
            "p106-t0153",
            "p106-t0154",
            "p106-t0155",
            "p106-t0156",
            "p106-t0158",
            "p106-t0160",
            "p106-t0161",
            "p106-t0162",
            "p106-t0163",
            "p106-t0165"
          ],
          "operations": [],
          "id": "q-p106-h04-b001",
          "markdown_line": 132
        }
      ],
      "markdown_line": 128
    },
    {
      "id": "q-p106-h05",
      "title": "elasticsearch 的 document 设计",
      "heading-id": "p106-h05",
      "source-page": 106,
      "section": "Elasticsearch",
      "topic": "14-mongodb-elasticsearch",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
      "pages": [
        106
      ],
      "page-range": [
        106,
        106
      ],
      "blocks": [
        {
          "kind": "prose",
          "text": "在使用 es 时避免使用复杂的查询语句（Join、聚合），就是在建立索引时，就根据查询语句建立好对应的元数据",
          "language": null,
          "pages": [
            106
          ],
          "span_ids": [
            "p106-t0174",
            "p106-t0175",
            "p106-t0176",
            "p106-t0178",
            "p106-t0179",
            "p106-t0180",
            "p106-t0182",
            "p106-t0183"
          ],
          "operations": [],
          "id": "q-p106-h05-b001",
          "markdown_line": 138
        }
      ],
      "markdown_line": 134
    }
  ],
  "pages": [
    {
      "source-page": 1,
      "source_span_count": 81,
      "imported_span_count": 79,
      "excluded_span_ids": [
        "p001-t0001",
        "p001-t0003"
      ],
      "missing_span_ids": [],
      "source_characters": 717,
      "targets": [
        "/go-bank/01-go-basics#q-p001-h02",
        "/go-bank/01-go-basics#q-p001-h03",
        "/go-bank/01-go-basics#q-p001-h04",
        "/go-bank/02-go-concurrency#q-p001-h05",
        "/go-bank/02-go-concurrency#q-p001-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 2,
      "source_span_count": 144,
      "imported_span_count": 144,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 983,
      "targets": [
        "/go-bank/01-go-basics#q-p002-h02",
        "/go-bank/01-go-basics#q-p002-h04",
        "/go-bank/01-go-basics#q-p002-h05",
        "/go-bank/01-go-basics#q-p002-h06",
        "/go-bank/02-go-concurrency#q-p001-h06",
        "/go-bank/02-go-concurrency#q-p002-h01",
        "/go-bank/02-go-concurrency#q-p002-h07",
        "/go-bank/05-go-frameworks#q-p002-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 3,
      "source_span_count": 128,
      "imported_span_count": 128,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 961,
      "targets": [
        "/go-bank/01-go-basics#q-p003-h01",
        "/go-bank/01-go-basics#q-p003-h02",
        "/go-bank/01-go-basics#q-p003-h03",
        "/go-bank/01-go-basics#q-p003-h04",
        "/go-bank/01-go-basics#q-p003-h05",
        "/go-bank/02-go-concurrency#q-p003-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 4,
      "source_span_count": 158,
      "imported_span_count": 158,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1436,
      "targets": [
        "/go-bank/01-go-basics#q-p004-h01",
        "/go-bank/01-go-basics#q-p004-h03",
        "/go-bank/02-go-concurrency#q-p004-h02",
        "/go-bank/04-go-coding#q-p004-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 5,
      "source_span_count": 123,
      "imported_span_count": 123,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1129,
      "targets": [
        "/go-bank/01-go-basics#q-p005-h01",
        "/go-bank/01-go-basics#q-p005-h02",
        "/go-bank/01-go-basics#q-p005-h03",
        "/go-bank/01-go-basics#q-p005-h04",
        "/go-bank/04-go-coding#q-p004-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 6,
      "source_span_count": 169,
      "imported_span_count": 169,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1166,
      "targets": [
        "/go-bank/01-go-basics#q-p006-h01",
        "/go-bank/01-go-basics#q-p006-h02",
        "/go-bank/01-go-basics#q-p006-h03",
        "/go-bank/02-go-concurrency#q-p006-h04",
        "/go-bank/02-go-concurrency#q-p006-h05"
      ],
      "image_ids": [
        "p006-image-01"
      ]
    },
    {
      "source-page": 7,
      "source_span_count": 111,
      "imported_span_count": 111,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 842,
      "targets": [
        "/go-bank/02-go-concurrency#q-p006-h05",
        "/go-bank/02-go-concurrency#q-p007-h01",
        "/go-bank/04-go-coding#q-p007-h03",
        "/go-bank/04-go-coding#q-p007-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 8,
      "source_span_count": 60,
      "imported_span_count": 60,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1095,
      "targets": [
        "/go-bank/04-go-coding#q-p007-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 9,
      "source_span_count": 98,
      "imported_span_count": 98,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1000,
      "targets": [
        "/go-bank/04-go-coding#q-p009-h01",
        "/go-bank/04-go-coding#q-p009-h02",
        "/go-bank/04-go-coding#q-p009-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 10,
      "source_span_count": 79,
      "imported_span_count": 79,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 909,
      "targets": [
        "/go-bank/04-go-coding#q-p009-h03",
        "/go-bank/04-go-coding#q-p010-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 11,
      "source_span_count": 79,
      "imported_span_count": 79,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 717,
      "targets": [
        "/go-bank/04-go-coding#q-p011-h01",
        "/go-bank/04-go-coding#q-p011-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 12,
      "source_span_count": 72,
      "imported_span_count": 72,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 886,
      "targets": [
        "/go-bank/04-go-coding#q-p011-h02",
        "/go-bank/04-go-coding#q-p012-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 13,
      "source_span_count": 76,
      "imported_span_count": 76,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 698,
      "targets": [
        "/go-bank/04-go-coding#q-p013-h01",
        "/go-bank/04-go-coding#q-p013-h02",
        "/go-bank/04-go-coding#q-p013-h03",
        "/go-bank/04-go-coding#q-p013-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 14,
      "source_span_count": 51,
      "imported_span_count": 51,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1161,
      "targets": [
        "/go-bank/04-go-coding#q-p013-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 15,
      "source_span_count": 87,
      "imported_span_count": 87,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1020,
      "targets": [
        "/go-bank/01-go-basics#q-p015-h01",
        "/go-bank/04-go-coding#q-p013-h04",
        "/go-bank/04-go-coding#q-p015-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 16,
      "source_span_count": 70,
      "imported_span_count": 70,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 748,
      "targets": [
        "/go-bank/01-go-basics#q-p016-h01",
        "/go-bank/04-go-coding#q-p015-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 17,
      "source_span_count": 89,
      "imported_span_count": 89,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 917,
      "targets": [
        "/go-bank/01-go-basics#q-p016-h01",
        "/go-bank/03-go-runtime#q-p017-h02",
        "/go-bank/04-go-coding#q-p017-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 18,
      "source_span_count": 123,
      "imported_span_count": 123,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1134,
      "targets": [
        "/go-bank/03-go-runtime#q-p017-h02",
        "/go-bank/03-go-runtime#q-p018-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 19,
      "source_span_count": 74,
      "imported_span_count": 74,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1251,
      "targets": [
        "/go-bank/03-go-runtime#q-p018-h01",
        "/go-bank/03-go-runtime#q-p019-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 20,
      "source_span_count": 43,
      "imported_span_count": 43,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 873,
      "targets": [
        "/go-bank/03-go-runtime#q-p019-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 21,
      "source_span_count": 93,
      "imported_span_count": 93,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1821,
      "targets": [
        "/go-bank/03-go-runtime#q-p019-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 22,
      "source_span_count": 55,
      "imported_span_count": 55,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 587,
      "targets": [
        "/go-bank/01-go-basics#q-p022-h01",
        "/go-bank/04-go-coding#q-p022-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 23,
      "source_span_count": 79,
      "imported_span_count": 79,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 843,
      "targets": [
        "/go-bank/04-go-coding#q-p023-h01",
        "/go-bank/04-go-coding#q-p023-h02",
        "/go-bank/04-go-coding#q-p023-h03",
        "/go-bank/04-go-coding#q-p023-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 24,
      "source_span_count": 203,
      "imported_span_count": 203,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1288,
      "targets": [
        "/go-bank/02-go-concurrency#q-p024-h02",
        "/go-bank/04-go-coding#q-p023-h04"
      ],
      "image_ids": [
        "p024-image-01"
      ]
    },
    {
      "source-page": 25,
      "source_span_count": 146,
      "imported_span_count": 146,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1089,
      "targets": [
        "/go-bank/02-go-concurrency#q-p024-h02",
        "/go-bank/02-go-concurrency#q-p025-h01"
      ],
      "image_ids": [
        "p025-image-01",
        "p025-image-02"
      ]
    },
    {
      "source-page": 26,
      "source_span_count": 85,
      "imported_span_count": 85,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 575,
      "targets": [
        "/go-bank/02-go-concurrency#q-p025-h01"
      ],
      "image_ids": [
        "p026-image-01"
      ]
    },
    {
      "source-page": 27,
      "source_span_count": 71,
      "imported_span_count": 71,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 403,
      "targets": [
        "/go-bank/02-go-concurrency#q-p025-h01",
        "/go-bank/02-go-concurrency#q-p027-h01"
      ],
      "image_ids": [
        "p027-image-01",
        "p027-image-02"
      ]
    },
    {
      "source-page": 28,
      "source_span_count": 125,
      "imported_span_count": 125,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1181,
      "targets": [
        "/go-bank/02-go-concurrency#q-p027-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 29,
      "source_span_count": 135,
      "imported_span_count": 135,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1638,
      "targets": [
        "/go-bank/02-go-concurrency#q-p027-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 30,
      "source_span_count": 161,
      "imported_span_count": 161,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1619,
      "targets": [
        "/go-bank/02-go-concurrency#q-p027-h01",
        "/go-bank/02-go-concurrency#q-p030-h01",
        "/go-bank/02-go-concurrency#q-p030-h02",
        "/go-bank/02-go-concurrency#q-p030-h03",
        "/go-bank/02-go-concurrency#q-p030-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 31,
      "source_span_count": 149,
      "imported_span_count": 149,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1193,
      "targets": [
        "/go-bank/02-go-concurrency#q-p030-h04",
        "/go-bank/02-go-concurrency#q-p031-h01",
        "/go-bank/02-go-concurrency#q-p031-h02",
        "/go-bank/02-go-concurrency#q-p031-h03",
        "/go-bank/02-go-concurrency#q-p031-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 32,
      "source_span_count": 155,
      "imported_span_count": 155,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1186,
      "targets": [
        "/go-bank/02-go-concurrency#q-p032-h01",
        "/go-bank/02-go-concurrency#q-p032-h02",
        "/go-bank/02-go-concurrency#q-p032-h03",
        "/go-bank/02-go-concurrency#q-p032-h04",
        "/go-bank/02-go-concurrency#q-p032-h05",
        "/go-bank/02-go-concurrency#q-p032-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 33,
      "source_span_count": 217,
      "imported_span_count": 217,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1291,
      "targets": [
        "/go-bank/02-go-concurrency#q-p033-h01",
        "/go-bank/02-go-concurrency#q-p033-h02",
        "/go-bank/03-go-runtime#q-p033-h04",
        "/go-bank/03-go-runtime#q-p033-h05",
        "/go-bank/03-go-runtime#q-p033-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 34,
      "source_span_count": 226,
      "imported_span_count": 226,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1099,
      "targets": [
        "/go-bank/03-go-runtime#q-p034-h01",
        "/go-bank/03-go-runtime#q-p034-h02",
        "/go-bank/03-go-runtime#q-p034-h03",
        "/go-bank/03-go-runtime#q-p034-h04"
      ],
      "image_ids": [
        "p034-image-01"
      ]
    },
    {
      "source-page": 35,
      "source_span_count": 142,
      "imported_span_count": 142,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 853,
      "targets": [
        "/go-bank/03-go-runtime#q-p034-h04",
        "/go-bank/03-go-runtime#q-p035-h01",
        "/go-bank/03-go-runtime#q-p035-h02",
        "/go-bank/03-go-runtime#q-p035-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 36,
      "source_span_count": 20,
      "imported_span_count": 20,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 212,
      "targets": [
        "/go-bank/03-go-runtime#q-p036-h01"
      ],
      "image_ids": [
        "p036-image-01"
      ]
    },
    {
      "source-page": 37,
      "source_span_count": 27,
      "imported_span_count": 27,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 203,
      "targets": [
        "/go-bank/03-go-runtime#q-p037-h01"
      ],
      "image_ids": [
        "p037-image-01",
        "p037-image-02"
      ]
    },
    {
      "source-page": 38,
      "source_span_count": 158,
      "imported_span_count": 158,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1201,
      "targets": [
        "/go-bank/03-go-runtime#q-p037-h01",
        "/go-bank/03-go-runtime#q-p038-h01",
        "/go-bank/03-go-runtime#q-p038-h02",
        "/go-bank/03-go-runtime#q-p038-h03",
        "/go-bank/03-go-runtime#q-p038-h04",
        "/go-bank/03-go-runtime#q-p038-h05",
        "/go-bank/03-go-runtime#q-p038-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 39,
      "source_span_count": 103,
      "imported_span_count": 103,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1319,
      "targets": [
        "/go-bank/03-go-runtime#q-p039-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 40,
      "source_span_count": 89,
      "imported_span_count": 89,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 929,
      "targets": [
        "/go-bank/03-go-runtime#q-p039-h01"
      ],
      "image_ids": [
        "p040-image-01"
      ]
    },
    {
      "source-page": 41,
      "source_span_count": 36,
      "imported_span_count": 36,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 511,
      "targets": [
        "/go-bank/06-microservices#q-p041-h02",
        "/go-bank/06-microservices#q-p041-h03"
      ],
      "image_ids": [
        "p041-image-01"
      ]
    },
    {
      "source-page": 42,
      "source_span_count": 78,
      "imported_span_count": 78,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 570,
      "targets": [
        "/go-bank/06-microservices#q-p041-h03",
        "/go-bank/06-microservices#q-p042-h01",
        "/go-bank/06-microservices#q-p042-h02",
        "/go-bank/06-microservices#q-p042-h03"
      ],
      "image_ids": [
        "p042-image-01"
      ]
    },
    {
      "source-page": 43,
      "source_span_count": 43,
      "imported_span_count": 43,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 401,
      "targets": [
        "/go-bank/06-microservices#q-p043-h01",
        "/go-bank/06-microservices#q-p043-h02",
        "/go-bank/06-microservices#q-p043-h03"
      ],
      "image_ids": [
        "p043-image-01"
      ]
    },
    {
      "source-page": 44,
      "source_span_count": 22,
      "imported_span_count": 22,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 227,
      "targets": [
        "/go-bank/06-microservices#q-p043-h03",
        "/go-bank/06-microservices#q-p044-h01",
        "/go-bank/06-microservices#q-p044-h02"
      ],
      "image_ids": [
        "p044-image-01",
        "p044-image-02"
      ]
    },
    {
      "source-page": 45,
      "source_span_count": 39,
      "imported_span_count": 39,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 395,
      "targets": [
        "/go-bank/06-microservices#q-p045-h01",
        "/go-bank/06-microservices#q-p045-h02",
        "/go-bank/06-microservices#q-p045-h03",
        "/go-bank/06-microservices#q-p045-h04",
        "/go-bank/06-microservices#q-p045-h05",
        "/go-bank/06-microservices#q-p045-h06"
      ],
      "image_ids": [
        "p045-image-01",
        "p045-image-02"
      ]
    },
    {
      "source-page": 46,
      "source_span_count": 74,
      "imported_span_count": 74,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 834,
      "targets": [
        "/go-bank/06-microservices#q-p046-h01",
        "/go-bank/07-docker#q-p046-h03",
        "/go-bank/07-docker#q-p046-h04",
        "/go-bank/07-docker#q-p046-h05",
        "/go-bank/07-docker#q-p046-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 47,
      "source_span_count": 154,
      "imported_span_count": 154,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1231,
      "targets": [
        "/go-bank/07-docker#q-p047-h01",
        "/go-bank/07-docker#q-p047-h02",
        "/go-bank/07-docker#q-p047-h03",
        "/go-bank/07-docker#q-p047-h04",
        "/go-bank/07-docker#q-p047-h05",
        "/go-bank/07-docker#q-p047-h06",
        "/go-bank/07-docker#q-p047-h07"
      ],
      "image_ids": []
    },
    {
      "source-page": 48,
      "source_span_count": 188,
      "imported_span_count": 188,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1492,
      "targets": [
        "/go-bank/07-docker#q-p048-h01",
        "/go-bank/07-docker#q-p048-h02",
        "/go-bank/07-docker#q-p048-h03",
        "/go-bank/07-docker#q-p048-h04",
        "/go-bank/07-docker#q-p048-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 49,
      "source_span_count": 124,
      "imported_span_count": 124,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1091,
      "targets": [
        "/go-bank/07-docker#q-p048-h05",
        "/go-bank/07-docker#q-p049-h01",
        "/go-bank/07-docker#q-p049-h02",
        "/go-bank/07-docker#q-p049-h03",
        "/go-bank/07-docker#q-p049-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 50,
      "source_span_count": 53,
      "imported_span_count": 53,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 585,
      "targets": [
        "/go-bank/07-docker#q-p050-h01",
        "/go-bank/07-docker#q-p050-h02"
      ],
      "image_ids": [
        "p050-image-01",
        "p050-image-02"
      ]
    },
    {
      "source-page": 51,
      "source_span_count": 153,
      "imported_span_count": 153,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1308,
      "targets": [
        "/go-bank/07-docker#q-p050-h02",
        "/go-bank/07-docker#q-p051-h01",
        "/go-bank/07-docker#q-p051-h02",
        "/go-bank/07-docker#q-p051-h03"
      ],
      "image_ids": [
        "p051-image-01"
      ]
    },
    {
      "source-page": 52,
      "source_span_count": 117,
      "imported_span_count": 117,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1130,
      "targets": [
        "/go-bank/07-docker#q-p051-h03",
        "/go-bank/07-docker#q-p052-h01",
        "/go-bank/07-docker#q-p052-h02",
        "/go-bank/07-docker#q-p052-h03"
      ],
      "image_ids": [
        "p052-image-01"
      ]
    },
    {
      "source-page": 53,
      "source_span_count": 238,
      "imported_span_count": 238,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1896,
      "targets": [
        "/go-bank/07-docker#q-p052-h03",
        "/go-bank/08-kubernetes#q-p053-h01",
        "/go-bank/08-kubernetes#q-p053-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 54,
      "source_span_count": 232,
      "imported_span_count": 232,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1695,
      "targets": [
        "/go-bank/08-kubernetes#q-p053-h02",
        "/go-bank/08-kubernetes#q-p054-h01",
        "/go-bank/08-kubernetes#q-p054-h02",
        "/go-bank/08-kubernetes#q-p054-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 55,
      "source_span_count": 226,
      "imported_span_count": 226,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1458,
      "targets": [
        "/go-bank/08-kubernetes#q-p055-h01",
        "/go-bank/08-kubernetes#q-p055-h02",
        "/go-bank/08-kubernetes#q-p055-h03",
        "/go-bank/08-kubernetes#q-p055-h04",
        "/go-bank/08-kubernetes#q-p055-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 56,
      "source_span_count": 181,
      "imported_span_count": 181,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1510,
      "targets": [
        "/go-bank/08-kubernetes#q-p056-h01",
        "/go-bank/08-kubernetes#q-p056-h02",
        "/go-bank/08-kubernetes#q-p056-h03",
        "/go-bank/08-kubernetes#q-p056-h04",
        "/go-bank/08-kubernetes#q-p056-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 57,
      "source_span_count": 226,
      "imported_span_count": 226,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1642,
      "targets": [
        "/go-bank/08-kubernetes#q-p056-h05",
        "/go-bank/08-kubernetes#q-p057-h01",
        "/go-bank/08-kubernetes#q-p057-h02",
        "/go-bank/08-kubernetes#q-p057-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 58,
      "source_span_count": 267,
      "imported_span_count": 267,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1781,
      "targets": [
        "/go-bank/08-kubernetes#q-p057-h03",
        "/go-bank/08-kubernetes#q-p058-h01",
        "/go-bank/08-kubernetes#q-p058-h02",
        "/go-bank/08-kubernetes#q-p058-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 59,
      "source_span_count": 188,
      "imported_span_count": 188,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1546,
      "targets": [
        "/go-bank/08-kubernetes#q-p058-h03",
        "/go-bank/08-kubernetes#q-p059-h01",
        "/go-bank/08-kubernetes#q-p059-h02",
        "/go-bank/08-kubernetes#q-p059-h03",
        "/go-bank/08-kubernetes#q-p059-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 60,
      "source_span_count": 199,
      "imported_span_count": 199,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 2013,
      "targets": [
        "/go-bank/08-kubernetes#q-p060-h01",
        "/go-bank/08-kubernetes#q-p060-h02",
        "/go-bank/08-kubernetes#q-p060-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 61,
      "source_span_count": 293,
      "imported_span_count": 293,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1983,
      "targets": [
        "/go-bank/08-kubernetes#q-p060-h03",
        "/go-bank/08-kubernetes#q-p061-h01",
        "/go-bank/08-kubernetes#q-p061-h02",
        "/go-bank/08-kubernetes#q-p061-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 62,
      "source_span_count": 212,
      "imported_span_count": 212,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1632,
      "targets": [
        "/go-bank/08-kubernetes#q-p062-h01",
        "/go-bank/08-kubernetes#q-p062-h02",
        "/go-bank/08-kubernetes#q-p062-h03",
        "/go-bank/08-kubernetes#q-p062-h04",
        "/go-bank/08-kubernetes#q-p062-h05",
        "/go-bank/08-kubernetes#q-p062-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 63,
      "source_span_count": 213,
      "imported_span_count": 213,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1277,
      "targets": [
        "/go-bank/08-kubernetes#q-p062-h06",
        "/go-bank/08-kubernetes#q-p063-h01",
        "/go-bank/08-kubernetes#q-p063-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 64,
      "source_span_count": 177,
      "imported_span_count": 177,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 970,
      "targets": [
        "/go-bank/08-kubernetes#q-p063-h02",
        "/go-bank/08-kubernetes#q-p064-h01",
        "/go-bank/08-kubernetes#q-p064-h02",
        "/go-bank/08-kubernetes#q-p064-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 65,
      "source_span_count": 196,
      "imported_span_count": 196,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1640,
      "targets": [
        "/go-bank/08-kubernetes#q-p065-h01",
        "/go-bank/08-kubernetes#q-p065-h02",
        "/go-bank/08-kubernetes#q-p065-h03",
        "/go-bank/08-kubernetes#q-p065-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 66,
      "source_span_count": 230,
      "imported_span_count": 230,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1597,
      "targets": [
        "/go-bank/08-kubernetes#q-p065-h04",
        "/go-bank/09-redis-cache#q-p066-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 67,
      "source_span_count": 156,
      "imported_span_count": 156,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1180,
      "targets": [
        "/go-bank/09-redis-cache#q-p067-h01",
        "/go-bank/09-redis-cache#q-p067-h02",
        "/go-bank/09-redis-cache#q-p067-h03",
        "/go-bank/09-redis-cache#q-p067-h04",
        "/go-bank/09-redis-cache#q-p067-h05",
        "/go-bank/09-redis-cache#q-p067-h06",
        "/go-bank/09-redis-cache#q-p067-h07"
      ],
      "image_ids": []
    },
    {
      "source-page": 68,
      "source_span_count": 160,
      "imported_span_count": 160,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1198,
      "targets": [
        "/go-bank/09-redis-cache#q-p068-h01",
        "/go-bank/09-redis-cache#q-p068-h02",
        "/go-bank/09-redis-cache#q-p068-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 69,
      "source_span_count": 150,
      "imported_span_count": 150,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1364,
      "targets": [
        "/go-bank/09-redis-cache#q-p068-h03",
        "/go-bank/09-redis-cache#q-p069-h01",
        "/go-bank/09-redis-cache#q-p069-h03",
        "/go-bank/09-redis-cache#q-p069-h04",
        "/go-bank/09-redis-cache#q-p069-h05",
        "/go-bank/09-redis-cache#q-p069-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 70,
      "source_span_count": 105,
      "imported_span_count": 105,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 770,
      "targets": [
        "/go-bank/09-redis-cache#q-p070-h01",
        "/go-bank/09-redis-cache#q-p070-h02",
        "/go-bank/09-redis-cache#q-p070-h03",
        "/go-bank/09-redis-cache#q-p070-h04",
        "/go-bank/09-redis-cache#q-p070-h05",
        "/go-bank/09-redis-cache#q-p070-h06",
        "/go-bank/09-redis-cache#q-p070-h07",
        "/go-bank/09-redis-cache#q-p070-h08",
        "/go-bank/09-redis-cache#q-p070-h09",
        "/go-bank/09-redis-cache#q-p070-h10",
        "/go-bank/09-redis-cache#q-p070-h11",
        "/go-bank/09-redis-cache#q-p070-h12"
      ],
      "image_ids": []
    },
    {
      "source-page": 71,
      "source_span_count": 181,
      "imported_span_count": 181,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1468,
      "targets": [
        "/go-bank/09-redis-cache#q-p071-h01",
        "/go-bank/09-redis-cache#q-p071-h02",
        "/go-bank/09-redis-cache#q-p071-h03",
        "/go-bank/09-redis-cache#q-p071-h04",
        "/go-bank/09-redis-cache#q-p071-h05",
        "/go-bank/09-redis-cache#q-p071-h06",
        "/go-bank/09-redis-cache#q-p071-h07"
      ],
      "image_ids": []
    },
    {
      "source-page": 72,
      "source_span_count": 243,
      "imported_span_count": 243,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1745,
      "targets": [
        "/go-bank/09-redis-cache#q-p071-h07",
        "/go-bank/09-redis-cache#q-p072-h01",
        "/go-bank/09-redis-cache#q-p072-h02",
        "/go-bank/09-redis-cache#q-p072-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 73,
      "source_span_count": 149,
      "imported_span_count": 149,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1323,
      "targets": [
        "/go-bank/09-redis-cache#q-p073-h01",
        "/go-bank/10-mysql#q-p073-h03",
        "/go-bank/10-mysql#q-p073-h04",
        "/go-bank/10-mysql#q-p073-h05",
        "/go-bank/10-mysql#q-p073-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 74,
      "source_span_count": 131,
      "imported_span_count": 131,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1180,
      "targets": [
        "/go-bank/10-mysql#q-p073-h06",
        "/go-bank/10-mysql#q-p074-h01",
        "/go-bank/10-mysql#q-p074-h02",
        "/go-bank/10-mysql#q-p074-h03",
        "/go-bank/10-mysql#q-p074-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 75,
      "source_span_count": 99,
      "imported_span_count": 99,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 834,
      "targets": [
        "/go-bank/10-mysql#q-p074-h04",
        "/go-bank/10-mysql#q-p075-h01",
        "/go-bank/10-mysql#q-p075-h02",
        "/go-bank/10-mysql#q-p075-h03",
        "/go-bank/10-mysql#q-p075-h04",
        "/go-bank/10-mysql#q-p075-h05",
        "/go-bank/10-mysql#q-p075-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 76,
      "source_span_count": 176,
      "imported_span_count": 176,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1474,
      "targets": [
        "/go-bank/10-mysql#q-p076-h01",
        "/go-bank/10-mysql#q-p076-h02",
        "/go-bank/10-mysql#q-p076-h03",
        "/go-bank/10-mysql#q-p076-h04",
        "/go-bank/10-mysql#q-p076-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 77,
      "source_span_count": 145,
      "imported_span_count": 145,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1293,
      "targets": [
        "/go-bank/10-mysql#q-p077-h01",
        "/go-bank/10-mysql#q-p077-h02",
        "/go-bank/10-mysql#q-p077-h03",
        "/go-bank/10-mysql#q-p077-h04",
        "/go-bank/10-mysql#q-p077-h05",
        "/go-bank/10-mysql#q-p077-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 78,
      "source_span_count": 196,
      "imported_span_count": 196,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1312,
      "targets": [
        "/go-bank/10-mysql#q-p078-h01",
        "/go-bank/10-mysql#q-p078-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 79,
      "source_span_count": 189,
      "imported_span_count": 189,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1478,
      "targets": [
        "/go-bank/10-mysql#q-p079-h01",
        "/go-bank/10-mysql#q-p079-h02",
        "/go-bank/10-mysql#q-p079-h03",
        "/go-bank/10-mysql#q-p079-h04",
        "/go-bank/10-mysql#q-p079-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 80,
      "source_span_count": 176,
      "imported_span_count": 176,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1469,
      "targets": [
        "/go-bank/10-mysql#q-p079-h05",
        "/go-bank/11-linux-network-os#q-p080-h02",
        "/go-bank/11-linux-network-os#q-p080-h03",
        "/go-bank/11-linux-network-os#q-p080-h04",
        "/go-bank/11-linux-network-os#q-p080-h05",
        "/go-bank/11-linux-network-os#q-p080-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 81,
      "source_span_count": 112,
      "imported_span_count": 112,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 677,
      "targets": [
        "/go-bank/11-linux-network-os#q-p081-h01",
        "/go-bank/11-linux-network-os#q-p081-h02",
        "/go-bank/11-linux-network-os#q-p081-h03",
        "/go-bank/11-linux-network-os#q-p081-h04",
        "/go-bank/11-linux-network-os#q-p081-h05",
        "/go-bank/11-linux-network-os#q-p081-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 82,
      "source_span_count": 99,
      "imported_span_count": 99,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1025,
      "targets": [
        "/go-bank/11-linux-network-os#q-p082-h01",
        "/go-bank/11-linux-network-os#q-p082-h02",
        "/go-bank/11-linux-network-os#q-p082-h03",
        "/go-bank/11-linux-network-os#q-p082-h04",
        "/go-bank/11-linux-network-os#q-p082-h05",
        "/go-bank/11-linux-network-os#q-p082-h06",
        "/go-bank/11-linux-network-os#q-p082-h07"
      ],
      "image_ids": []
    },
    {
      "source-page": 83,
      "source_span_count": 42,
      "imported_span_count": 42,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 359,
      "targets": [
        "/go-bank/09-redis-cache#q-p083-h02",
        "/go-bank/09-redis-cache#q-p083-h03",
        "/go-bank/09-redis-cache#q-p083-h04",
        "/go-bank/09-redis-cache#q-p083-h05",
        "/go-bank/09-redis-cache#q-p083-h06"
      ],
      "image_ids": [
        "p083-image-01",
        "p083-image-02"
      ]
    },
    {
      "source-page": 84,
      "source_span_count": 172,
      "imported_span_count": 172,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1231,
      "targets": [
        "/go-bank/09-redis-cache#q-p084-h01",
        "/go-bank/09-redis-cache#q-p084-h02",
        "/go-bank/09-redis-cache#q-p084-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 85,
      "source_span_count": 103,
      "imported_span_count": 103,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1177,
      "targets": [
        "/go-bank/09-redis-cache#q-p085-h01",
        "/go-bank/09-redis-cache#q-p085-h02",
        "/go-bank/11-linux-network-os#q-p085-h04",
        "/go-bank/11-linux-network-os#q-p085-h05",
        "/go-bank/11-linux-network-os#q-p085-h06"
      ],
      "image_ids": []
    },
    {
      "source-page": 86,
      "source_span_count": 125,
      "imported_span_count": 125,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1376,
      "targets": [
        "/go-bank/11-linux-network-os#q-p086-h01",
        "/go-bank/11-linux-network-os#q-p086-h02",
        "/go-bank/11-linux-network-os#q-p086-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 87,
      "source_span_count": 93,
      "imported_span_count": 93,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1246,
      "targets": [
        "/go-bank/11-linux-network-os#q-p086-h03",
        "/go-bank/11-linux-network-os#q-p087-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 88,
      "source_span_count": 98,
      "imported_span_count": 98,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1166,
      "targets": [
        "/go-bank/11-linux-network-os#q-p088-h01",
        "/go-bank/11-linux-network-os#q-p088-h02",
        "/go-bank/11-linux-network-os#q-p088-h03",
        "/go-bank/11-linux-network-os#q-p088-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 89,
      "source_span_count": 82,
      "imported_span_count": 82,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 965,
      "targets": [
        "/go-bank/11-linux-network-os#q-p088-h04",
        "/go-bank/11-linux-network-os#q-p089-h01",
        "/go-bank/11-linux-network-os#q-p089-h02"
      ],
      "image_ids": [
        "p089-image-01"
      ]
    },
    {
      "source-page": 90,
      "source_span_count": 58,
      "imported_span_count": 58,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 635,
      "targets": [
        "/go-bank/11-linux-network-os#q-p089-h02",
        "/go-bank/11-linux-network-os#q-p090-h01",
        "/go-bank/11-linux-network-os#q-p090-h02"
      ],
      "image_ids": [
        "p090-image-01"
      ]
    },
    {
      "source-page": 91,
      "source_span_count": 66,
      "imported_span_count": 66,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 790,
      "targets": [
        "/go-bank/11-linux-network-os#q-p090-h02",
        "/go-bank/11-linux-network-os#q-p091-h01",
        "/go-bank/11-linux-network-os#q-p091-h02",
        "/go-bank/11-linux-network-os#q-p091-h03"
      ],
      "image_ids": [
        "p091-image-01"
      ]
    },
    {
      "source-page": 92,
      "source_span_count": 111,
      "imported_span_count": 111,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1090,
      "targets": [
        "/go-bank/11-linux-network-os#q-p091-h03",
        "/go-bank/11-linux-network-os#q-p092-h01",
        "/go-bank/11-linux-network-os#q-p092-h02",
        "/go-bank/11-linux-network-os#q-p092-h03",
        "/go-bank/11-linux-network-os#q-p092-h04",
        "/go-bank/11-linux-network-os#q-p092-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 93,
      "source_span_count": 200,
      "imported_span_count": 200,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1662,
      "targets": [
        "/go-bank/11-linux-network-os#q-p093-h01",
        "/go-bank/11-linux-network-os#q-p093-h02",
        "/go-bank/11-linux-network-os#q-p093-h03",
        "/go-bank/11-linux-network-os#q-p093-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 94,
      "source_span_count": 148,
      "imported_span_count": 148,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1148,
      "targets": [
        "/go-bank/12-kafka#q-p094-h02",
        "/go-bank/12-kafka#q-p094-h03",
        "/go-bank/12-kafka#q-p094-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 95,
      "source_span_count": 261,
      "imported_span_count": 261,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1860,
      "targets": [
        "/go-bank/12-kafka#q-p095-h01",
        "/go-bank/12-kafka#q-p095-h02",
        "/go-bank/12-kafka#q-p095-h03",
        "/go-bank/12-kafka#q-p095-h04"
      ],
      "image_ids": []
    },
    {
      "source-page": 96,
      "source_span_count": 190,
      "imported_span_count": 190,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1469,
      "targets": [
        "/go-bank/12-kafka#q-p095-h04",
        "/go-bank/12-kafka#q-p096-h01",
        "/go-bank/12-kafka#q-p096-h02",
        "/go-bank/12-kafka#q-p096-h03",
        "/go-bank/12-kafka#q-p096-h04",
        "/go-bank/12-kafka#q-p096-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 97,
      "source_span_count": 163,
      "imported_span_count": 163,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1360,
      "targets": [
        "/go-bank/12-kafka#q-p097-h01",
        "/go-bank/12-kafka#q-p097-h02",
        "/go-bank/12-kafka#q-p097-h03",
        "/go-bank/12-kafka#q-p097-h04",
        "/go-bank/13-distributed#q-p097-h06",
        "/go-bank/13-distributed#q-p097-h07"
      ],
      "image_ids": []
    },
    {
      "source-page": 98,
      "source_span_count": 180,
      "imported_span_count": 180,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1387,
      "targets": [
        "/go-bank/13-distributed#q-p098-h01",
        "/go-bank/13-distributed#q-p098-h02",
        "/go-bank/13-distributed#q-p098-h03",
        "/go-bank/13-distributed#q-p098-h04",
        "/go-bank/13-distributed#q-p098-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 99,
      "source_span_count": 237,
      "imported_span_count": 237,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1946,
      "targets": [
        "/go-bank/13-distributed#q-p098-h05",
        "/go-bank/13-distributed#q-p099-h01",
        "/go-bank/13-distributed#q-p099-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 100,
      "source_span_count": 116,
      "imported_span_count": 116,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1189,
      "targets": [
        "/go-bank/13-distributed#q-p099-h02",
        "/go-bank/13-distributed#q-p100-h01",
        "/go-bank/13-distributed#q-p100-h02",
        "/go-bank/13-distributed#q-p100-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 101,
      "source_span_count": 167,
      "imported_span_count": 167,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1336,
      "targets": [
        "/go-bank/09-redis-cache#q-p101-h03",
        "/go-bank/09-redis-cache#q-p101-h04",
        "/go-bank/09-redis-cache#q-p101-h05",
        "/go-bank/13-distributed#q-p100-h03",
        "/go-bank/13-distributed#q-p101-h01"
      ],
      "image_ids": []
    },
    {
      "source-page": 102,
      "source_span_count": 269,
      "imported_span_count": 269,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1841,
      "targets": [
        "/go-bank/09-redis-cache#q-p101-h05",
        "/go-bank/09-redis-cache#q-p102-h01",
        "/go-bank/09-redis-cache#q-p102-h02"
      ],
      "image_ids": []
    },
    {
      "source-page": 103,
      "source_span_count": 236,
      "imported_span_count": 236,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1723,
      "targets": [
        "/go-bank/09-redis-cache#q-p102-h02",
        "/go-bank/09-redis-cache#q-p103-h01",
        "/go-bank/09-redis-cache#q-p103-h02",
        "/go-bank/09-redis-cache#q-p103-h03"
      ],
      "image_ids": []
    },
    {
      "source-page": 104,
      "source_span_count": 153,
      "imported_span_count": 153,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1173,
      "targets": [
        "/go-bank/09-redis-cache#q-p104-h01",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "/go-bank/14-mongodb-elasticsearch#q-p104-h09"
      ],
      "image_ids": []
    },
    {
      "source-page": 105,
      "source_span_count": 102,
      "imported_span_count": 102,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 780,
      "targets": [
        "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "/go-bank/14-mongodb-elasticsearch#q-p105-h07"
      ],
      "image_ids": [
        "p105-image-01"
      ]
    },
    {
      "source-page": 106,
      "source_span_count": 149,
      "imported_span_count": 149,
      "excluded_span_ids": [],
      "missing_span_ids": [],
      "source_characters": 1230,
      "targets": [
        "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "/go-bank/14-mongodb-elasticsearch#q-p106-h05"
      ],
      "image_ids": []
    },
    {
      "source-page": 107,
      "source_span_count": 2,
      "imported_span_count": 0,
      "excluded_span_ids": [
        "p107-t0001",
        "p107-t0003"
      ],
      "missing_span_ids": [],
      "source_characters": 26,
      "targets": [],
      "image_ids": []
    }
  ],
  "images": [
    {
      "id": "p006-image-01",
      "page": 6,
      "top": 841.0,
      "left": 112.0,
      "width": 614.0,
      "height": 338.0,
      "filename": "pdf-p006-01.png",
      "target": "/go-bank/02-go-concurrency#q-p006-h05",
      "sha256": "6ea12e1be2c78114accc0e22a3b9d0b12cd3434ec4ea5132e26b0a50f33e1d66",
      "url": "/go-bank/pdf-p006-01.png"
    },
    {
      "id": "p024-image-01",
      "page": 24,
      "top": 735.0,
      "left": 112.0,
      "width": 668.0,
      "height": 183.0,
      "filename": "pdf-p024-01.png",
      "target": "/go-bank/02-go-concurrency#q-p024-h02",
      "sha256": "3a50421cada99b7caf7a36e674cccf67673e599bba1f0bcd2210073d2f4351d4",
      "url": "/go-bank/pdf-p024-01.png"
    },
    {
      "id": "p025-image-01",
      "page": 25,
      "top": 42.0,
      "left": 112.0,
      "width": 670.0,
      "height": 373.0,
      "filename": "pdf-p025-01.png",
      "target": "/go-bank/02-go-concurrency#q-p024-h02",
      "sha256": "68cb4b925f7e1ea14d1c43b2d006713b8145a03494b9486179c156146f7f2ff1",
      "url": "/go-bank/pdf-p025-01.png"
    },
    {
      "id": "p025-image-02",
      "page": 25,
      "top": 969.0,
      "left": 112.0,
      "width": 671.0,
      "height": 154.0,
      "filename": "pdf-p025-02.png",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "sha256": "9aa4226ea64b4e0e061b05274e8859b0929af7625aa15dd5ef083b0a35b9eb96",
      "url": "/go-bank/pdf-p025-02.png"
    },
    {
      "id": "p026-image-01",
      "page": 26,
      "top": 208.0,
      "left": 112.0,
      "width": 671.0,
      "height": 506.0,
      "filename": "pdf-p026-01.png",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "sha256": "3f338a755557c1736f52b23edad3a9351104cd694c830dd3aa2f7c2128b810a4",
      "url": "/go-bank/pdf-p026-01.png"
    },
    {
      "id": "p027-image-01",
      "page": 27,
      "top": 42.0,
      "left": 112.0,
      "width": 671.0,
      "height": 405.0,
      "filename": "pdf-p027-01.png",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "sha256": "52bc5a6214b8eb6ac1bbf5d61893c3f98a8aa10d2529466def6247ac06ce85eb",
      "url": "/go-bank/pdf-p027-01.png"
    },
    {
      "id": "p027-image-02",
      "page": 27,
      "top": 588.0,
      "left": 112.0,
      "width": 671.0,
      "height": 388.0,
      "filename": "pdf-p027-02.png",
      "target": "/go-bank/02-go-concurrency#q-p025-h01",
      "sha256": "31fb988cb0783ce8238ee5af59e8118dc5adde7c2033dcdd585160058a67ea3d",
      "url": "/go-bank/pdf-p027-02.png"
    },
    {
      "id": "p034-image-01",
      "page": 34,
      "top": 89.0,
      "left": 112.0,
      "width": 671.0,
      "height": 384.0,
      "filename": "pdf-p034-01.png",
      "target": "/go-bank/03-go-runtime#q-p034-h01",
      "sha256": "72a80e3e366318f995f7c4d1ca97f1a4a624e92f086ce80d3a4789fa480f8255",
      "url": "/go-bank/pdf-p034-01.png"
    },
    {
      "id": "p036-image-01",
      "page": 36,
      "top": 113.0,
      "left": 112.0,
      "width": 671.0,
      "height": 480.0,
      "filename": "pdf-p036-01.png",
      "target": "/go-bank/03-go-runtime#q-p036-h01",
      "sha256": "dee2f443e964c5bfb3294199643d5285e024f2ac64518605e0ff4d834dcbcc6f",
      "url": "/go-bank/pdf-p036-01.png"
    },
    {
      "id": "p037-image-01",
      "page": 37,
      "top": 135.0,
      "left": 112.0,
      "width": 671.0,
      "height": 458.0,
      "filename": "pdf-p037-01.png",
      "target": "/go-bank/03-go-runtime#q-p037-h01",
      "sha256": "dc10347e26c69bc9b6a3324b4e0a0016c2cdfba088881fdf412e0c76187bfc92",
      "url": "/go-bank/pdf-p037-01.png"
    },
    {
      "id": "p037-image-02",
      "page": 37,
      "top": 640.0,
      "left": 112.0,
      "width": 671.0,
      "height": 512.0,
      "filename": "pdf-p037-02.png",
      "target": "/go-bank/03-go-runtime#q-p037-h01",
      "sha256": "8ce2d08bf1a203a895f2ef900379f0e460ff7cca26792e2ae763129140eb9643",
      "url": "/go-bank/pdf-p037-02.png"
    },
    {
      "id": "p040-image-01",
      "page": 40,
      "top": 382.0,
      "left": 112.0,
      "width": 671.0,
      "height": 313.0,
      "filename": "pdf-p040-01.png",
      "target": "/go-bank/03-go-runtime#q-p039-h01",
      "sha256": "6ac4fa1b4dd8f2a8da6e55d3fcb640126d7030e8df304978d930d6f3115bf02b",
      "url": "/go-bank/pdf-p040-01.png"
    },
    {
      "id": "p041-image-01",
      "page": 41,
      "top": 285.0,
      "left": 112.0,
      "width": 671.0,
      "height": 666.0,
      "filename": "pdf-p041-01.png",
      "target": "/go-bank/06-microservices#q-p041-h02",
      "sha256": "c856e50075bc3bb15f412623f70148f12dab69d83b08a6c0759ef15695f619d1",
      "url": "/go-bank/pdf-p041-01.png"
    },
    {
      "id": "p042-image-01",
      "page": 42,
      "top": 450.0,
      "left": 112.0,
      "width": 671.0,
      "height": 371.0,
      "filename": "pdf-p042-01.png",
      "target": "/go-bank/06-microservices#q-p042-h02",
      "sha256": "cbd852a44791a9e510113bb9f7a826a311d87b5465ad1e93bf43258878283aa2",
      "url": "/go-bank/pdf-p042-01.png"
    },
    {
      "id": "p043-image-01",
      "page": 43,
      "top": 587.0,
      "left": 112.0,
      "width": 671.0,
      "height": 430.0,
      "filename": "pdf-p043-01.png",
      "target": "/go-bank/06-microservices#q-p043-h02",
      "sha256": "0a48c0fea496194a7d915f004b36ec06b87881887062dd006793e3fe29526d83",
      "url": "/go-bank/pdf-p043-01.png"
    },
    {
      "id": "p044-image-01",
      "page": 44,
      "top": 266.0,
      "left": 112.0,
      "width": 670.0,
      "height": 438.0,
      "filename": "pdf-p044-01.png",
      "target": "/go-bank/06-microservices#q-p044-h01",
      "sha256": "6da16b2bb2e52627726eeaf39bc2f632c3edef245d9b98d89ff713bba463fefd",
      "url": "/go-bank/pdf-p044-01.png"
    },
    {
      "id": "p044-image-02",
      "page": 44,
      "top": 765.0,
      "left": 112.0,
      "width": 671.0,
      "height": 184.0,
      "filename": "pdf-p044-02.png",
      "target": "/go-bank/06-microservices#q-p044-h02",
      "sha256": "88bcbc2b8b7721671c88d24c28a3c4e7dba9902042b613a12f8758d19a918366",
      "url": "/go-bank/pdf-p044-02.png"
    },
    {
      "id": "p045-image-01",
      "page": 45,
      "top": 89.0,
      "left": 112.0,
      "width": 671.0,
      "height": 224.0,
      "filename": "pdf-p045-01.png",
      "target": "/go-bank/06-microservices#q-p045-h01",
      "sha256": "1b9dac597f0feb2d72f77707a0d445721ea7a846018bcc6e74ac2c6f7fd139ef",
      "url": "/go-bank/pdf-p045-01.png"
    },
    {
      "id": "p045-image-02",
      "page": 45,
      "top": 375.0,
      "left": 112.0,
      "width": 671.0,
      "height": 360.0,
      "filename": "pdf-p045-02.png",
      "target": "/go-bank/06-microservices#q-p045-h02",
      "sha256": "96bf39d1b6339ce5efb25f847af1f5767179e283ecbaa6a2c0f3257ad4d04f1b",
      "url": "/go-bank/pdf-p045-02.png"
    },
    {
      "id": "p050-image-01",
      "page": 50,
      "top": 159.0,
      "left": 112.0,
      "width": 670.0,
      "height": 291.0,
      "filename": "pdf-p050-01.png",
      "target": "/go-bank/07-docker#q-p050-h01",
      "sha256": "eb8c47ec1740ca6db65fa03fd585eba010068b8585fc341f04f11a7ef2affcb7",
      "url": "/go-bank/pdf-p050-01.png"
    },
    {
      "id": "p050-image-02",
      "page": 50,
      "top": 675.0,
      "left": 112.0,
      "width": 671.0,
      "height": 474.0,
      "filename": "pdf-p050-02.png",
      "target": "/go-bank/07-docker#q-p050-h02",
      "sha256": "de991eef25d79a61753501b7faf9862aab877f89371c4807b033f712958201cf",
      "url": "/go-bank/pdf-p050-02.png"
    },
    {
      "id": "p051-image-01",
      "page": 51,
      "top": 562.0,
      "left": 112.0,
      "width": 671.0,
      "height": 227.0,
      "filename": "pdf-p051-01.png",
      "target": "/go-bank/07-docker#q-p051-h02",
      "sha256": "bd30e36c84285efbb300f76f5d8899f8f34b9054556a5126a335bdc9444e9ac3",
      "url": "/go-bank/pdf-p051-01.png"
    },
    {
      "id": "p052-image-01",
      "page": 52,
      "top": 89.0,
      "left": 112.0,
      "width": 670.0,
      "height": 380.0,
      "filename": "pdf-p052-01.png",
      "target": "/go-bank/07-docker#q-p051-h03",
      "sha256": "a118db644ce3ad6690cd55a87cf12820b1885e78f1d9e10c745aaf9de332be76",
      "url": "/go-bank/pdf-p052-01.png"
    },
    {
      "id": "p083-image-01",
      "page": 83,
      "top": 144.0,
      "left": 112.0,
      "width": 671.0,
      "height": 252.0,
      "filename": "pdf-p083-01.png",
      "target": "/go-bank/09-redis-cache#q-p083-h02",
      "sha256": "93d210ec61a1980909f8681843031c17f39bb71695c5a22e12203f07dad6444a",
      "url": "/go-bank/pdf-p083-01.png"
    },
    {
      "id": "p083-image-02",
      "page": 83,
      "top": 457.0,
      "left": 112.0,
      "width": 671.0,
      "height": 312.0,
      "filename": "pdf-p083-02.png",
      "target": "/go-bank/09-redis-cache#q-p083-h03",
      "sha256": "150acfbfff0fa3e00125077e09f97592f809c7e764d579210b858728e3e16ba0",
      "url": "/go-bank/pdf-p083-02.png"
    },
    {
      "id": "p089-image-01",
      "page": 89,
      "top": 786.0,
      "left": 112.0,
      "width": 670.0,
      "height": 290.0,
      "filename": "pdf-p089-01.png",
      "target": "/go-bank/11-linux-network-os#q-p089-h02",
      "sha256": "e98e21270e8dec004e34d693ef50e2389c2a90789c7977311d95f23aa0f8d107",
      "url": "/go-bank/pdf-p089-01.png"
    },
    {
      "id": "p090-image-01",
      "page": 90,
      "top": 391.0,
      "left": 112.0,
      "width": 671.0,
      "height": 382.0,
      "filename": "pdf-p090-01.png",
      "target": "/go-bank/11-linux-network-os#q-p090-h01",
      "sha256": "dcf0089dbd9ea28dfdc0bfacf703f9ae19cd7aa2290eb57b50d6d0c140ea54ec",
      "url": "/go-bank/pdf-p090-01.png"
    },
    {
      "id": "p091-image-01",
      "page": 91,
      "top": 66.0,
      "left": 112.0,
      "width": 671.0,
      "height": 300.0,
      "filename": "pdf-p091-01.png",
      "target": "/go-bank/11-linux-network-os#q-p090-h02",
      "sha256": "5568b816208e4bac3d0bb12c951bf4c445dfd2ddd1b9f0810c4ce957aa8eeb07",
      "url": "/go-bank/pdf-p091-01.png"
    },
    {
      "id": "p105-image-01",
      "page": 105,
      "top": 439.0,
      "left": 112.0,
      "width": 671.0,
      "height": 333.0,
      "filename": "pdf-p105-01.png",
      "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
      "sha256": "5ee411c14bec1990e2f45d253cdb57ac934e5fb62f984c7210c5818ad39d6579",
      "url": "/go-bank/pdf-p105-01.png"
    }
  ],
  "fonts": {
    "0": {
      "id": "0",
      "size": "33",
      "family": "AAAAAA+MicrosoftYaHei",
      "color": "#333333"
    },
    "1": {
      "id": "1",
      "size": "33",
      "family": "BAAAAA+OpenSans",
      "color": "#4182c3"
    },
    "2": {
      "id": "2",
      "size": "15",
      "family": "CAAAAA+OpenSans",
      "color": "#4182c3"
    },
    "3": {
      "id": "3",
      "size": "33",
      "family": "BAAAAA+OpenSans",
      "color": "#333333"
    },
    "4": {
      "id": "4",
      "size": "26",
      "family": "AAAAAA+MicrosoftYaHei",
      "color": "#333333"
    },
    "5": {
      "id": "5",
      "size": "26",
      "family": "BAAAAA+OpenSans",
      "color": "#333333"
    },
    "6": {
      "id": "6",
      "size": "26",
      "family": "BAAAAA+OpenSans",
      "color": "#4182c3"
    },
    "7": {
      "id": "7",
      "size": "15",
      "family": "CAAAAA+OpenSans",
      "color": "#333333"
    },
    "8": {
      "id": "8",
      "size": "15",
      "family": "DAAAAA+MicrosoftYaHei",
      "color": "#333333"
    },
    "9": {
      "id": "9",
      "size": "13",
      "family": "EAAAAA+LucidaConsole",
      "color": "#333333"
    },
    "10": {
      "id": "10",
      "size": "13",
      "family": "FAAAAA+NSimSun",
      "color": "#333333"
    },
    "11": {
      "id": "11",
      "size": "13",
      "family": "DAAAAA+MicrosoftYaHei",
      "color": "#333333"
    },
    "12": {
      "id": "12",
      "size": "15",
      "family": "GAAAAA+OpenSans",
      "color": "#333333"
    },
    "13": {
      "id": "13",
      "size": "15",
      "family": "HAAAAA+ArialMT",
      "color": "#333333"
    },
    "14": {
      "id": "14",
      "size": "15",
      "family": "AAAAAA+MicrosoftYaHei",
      "color": "#333333"
    }
  },
  "source_spans": [
    {
      "id": "p001-t0001",
      "page": 1,
      "ordinal": 1,
      "text": "关注我们",
      "top": 56.0,
      "left": 112.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "excluded": "advertisement-follow-us"
    },
    {
      "id": "p001-t0003",
      "page": 1,
      "ordinal": 3,
      "text": "https://it.0voice.com/",
      "top": 116.0,
      "left": 112.0,
      "width": 145.0,
      "height": 20.0,
      "font": "2",
      "size": 15,
      "links": [
        "https://it.0voice.com/"
      ],
      "excluded": "advertisement-follow-us"
    },
    {
      "id": "p001-t0004",
      "page": 1,
      "ordinal": 4,
      "text": "golang",
      "top": 149.0,
      "left": 112.0,
      "width": 109.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h01"
      }
    },
    {
      "id": "p001-t0005",
      "page": 1,
      "ordinal": 5,
      "text": "基础",
      "top": 149.0,
      "left": 221.0,
      "width": 66.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h01"
      }
    },
    {
      "id": "p001-t0007",
      "page": 1,
      "ordinal": 7,
      "text": "与其他语⾔相⽐，使⽤",
      "top": 205.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02"
      }
    },
    {
      "id": "p001-t0008",
      "page": 1,
      "ordinal": 8,
      "text": " Go ",
      "top": 205.0,
      "left": 368.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02"
      }
    },
    {
      "id": "p001-t0009",
      "page": 1,
      "ordinal": 9,
      "text": "有什么好处？",
      "top": 205.0,
      "left": 415.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02"
      }
    },
    {
      "id": "p001-t0012",
      "page": 1,
      "ordinal": 12,
      "text": "1. ",
      "top": 256.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0013",
      "page": 1,
      "ordinal": 13,
      "text": "与其他作为学术实验开始的语⾔不同，",
      "top": 256.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0014",
      "page": 1,
      "ordinal": 14,
      "text": "Go ",
      "top": 256.0,
      "left": 394.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0015",
      "page": 1,
      "ordinal": 15,
      "text": "代码的设计是务实的。每个功能和语法决策都旨在让程",
      "top": 256.0,
      "left": 417.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0016",
      "page": 1,
      "ordinal": 16,
      "text": "序员的⽣活",
      "top": 280.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0018",
      "page": 1,
      "ordinal": 18,
      "text": "更轻松。",
      "top": 280.0,
      "left": 222.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b001"
      }
    },
    {
      "id": "p001-t0020",
      "page": 1,
      "ordinal": 20,
      "text": "2. Golang ",
      "top": 310.0,
      "left": 129.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b002"
      }
    },
    {
      "id": "p001-t0021",
      "page": 1,
      "ordinal": 21,
      "text": "针对并发进⾏了优化，并且在规模上运⾏良好。",
      "top": 310.0,
      "left": 198.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b002"
      }
    },
    {
      "id": "p001-t0023",
      "page": 1,
      "ordinal": 23,
      "text": "3. ",
      "top": 341.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b003"
      }
    },
    {
      "id": "p001-t0024",
      "page": 1,
      "ordinal": 24,
      "text": "由于单⼀的标准代码格式，",
      "top": 341.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b003"
      }
    },
    {
      "id": "p001-t0025",
      "page": 1,
      "ordinal": 25,
      "text": "Golang ",
      "top": 341.0,
      "left": 321.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b003"
      }
    },
    {
      "id": "p001-t0026",
      "page": 1,
      "ordinal": 26,
      "text": "通常被认为⽐其他语⾔更具可读性。",
      "top": 341.0,
      "left": 373.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b003"
      }
    },
    {
      "id": "p001-t0028",
      "page": 1,
      "ordinal": 28,
      "text": "4. ",
      "top": 372.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0029",
      "page": 1,
      "ordinal": 29,
      "text": "⾃动垃圾收集明显⽐",
      "top": 372.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0030",
      "page": 1,
      "ordinal": 30,
      "text": " Java ",
      "top": 372.0,
      "left": 277.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0031",
      "page": 1,
      "ordinal": 31,
      "text": "或",
      "top": 372.0,
      "left": 312.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0032",
      "page": 1,
      "ordinal": 32,
      "text": " Python ",
      "top": 372.0,
      "left": 327.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0033",
      "page": 1,
      "ordinal": 33,
      "text": "更有效，因为它与程序同时执⾏。",
      "top": 372.0,
      "left": 383.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h02",
        "heading_id": "p001-h02",
        "block_id": "q-p001-h02-b004"
      }
    },
    {
      "id": "p001-t0035",
      "page": 1,
      "ordinal": 35,
      "text": "Golang ",
      "top": 406.0,
      "left": 112.0,
      "width": 96.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03"
      }
    },
    {
      "id": "p001-t0036",
      "page": 1,
      "ordinal": 36,
      "text": "使⽤什么数据类型？",
      "top": 406.0,
      "left": 207.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03"
      }
    },
    {
      "id": "p001-t0039",
      "page": 1,
      "ordinal": 39,
      "text": "1. Method",
      "top": 456.0,
      "left": 129.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b001"
      }
    },
    {
      "id": "p001-t0040",
      "page": 1,
      "ordinal": 40,
      "text": "2. Boolean",
      "top": 487.0,
      "left": 129.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b002"
      }
    },
    {
      "id": "p001-t0041",
      "page": 1,
      "ordinal": 41,
      "text": "3. Numeric",
      "top": 518.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b003"
      }
    },
    {
      "id": "p001-t0042",
      "page": 1,
      "ordinal": 42,
      "text": "4. String",
      "top": 549.0,
      "left": 129.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b004"
      }
    },
    {
      "id": "p001-t0043",
      "page": 1,
      "ordinal": 43,
      "text": "5. Array",
      "top": 579.0,
      "left": 129.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b005"
      }
    },
    {
      "id": "p001-t0044",
      "page": 1,
      "ordinal": 44,
      "text": "6. Slice",
      "top": 611.0,
      "left": 129.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b006"
      }
    },
    {
      "id": "p001-t0045",
      "page": 1,
      "ordinal": 45,
      "text": "7. Struct",
      "top": 641.0,
      "left": 129.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b007"
      }
    },
    {
      "id": "p001-t0046",
      "page": 1,
      "ordinal": 46,
      "text": "8. Pointer",
      "top": 671.0,
      "left": 129.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b008"
      }
    },
    {
      "id": "p001-t0047",
      "page": 1,
      "ordinal": 47,
      "text": "9. Function",
      "top": 703.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b009"
      }
    },
    {
      "id": "p001-t0048",
      "page": 1,
      "ordinal": 48,
      "text": "10. Interface",
      "top": 733.0,
      "left": 121.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b010"
      }
    },
    {
      "id": "p001-t0049",
      "page": 1,
      "ordinal": 49,
      "text": "11. Map",
      "top": 764.0,
      "left": 121.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b011"
      }
    },
    {
      "id": "p001-t0050",
      "page": 1,
      "ordinal": 50,
      "text": "12. Channe  ",
      "top": 794.0,
      "left": 121.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p001-h03",
        "heading_id": "p001-h03",
        "block_id": "q-p001-h03-b012"
      }
    },
    {
      "id": "p001-t0051",
      "page": 1,
      "ordinal": 51,
      "text": "整型切片有哪些初始化的方式",
      "top": 829.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p001-h04",
        "heading_id": "p001-h04"
      }
    },
    {
      "id": "p001-t0053",
      "page": 1,
      "ordinal": 53,
      "text": "Go ",
      "top": 976.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05"
      }
    },
    {
      "id": "p001-t0054",
      "page": 1,
      "ordinal": 54,
      "text": "当中同步锁有什么特点？作用是什么",
      "top": 976.0,
      "left": 153.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05"
      }
    },
    {
      "id": "p001-t0057",
      "page": 1,
      "ordinal": 57,
      "text": "当一个",
      "top": 1027.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0058",
      "page": 1,
      "ordinal": 58,
      "text": " Goroutine",
      "top": 1027.0,
      "left": 156.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0059",
      "page": 1,
      "ordinal": 59,
      "text": "（协程）获得了",
      "top": 1027.0,
      "left": 229.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0060",
      "page": 1,
      "ordinal": 60,
      "text": " Mutex ",
      "top": 1027.0,
      "left": 331.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0061",
      "page": 1,
      "ordinal": 61,
      "text": "后，其他",
      "top": 1027.0,
      "left": 382.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0062",
      "page": 1,
      "ordinal": 62,
      "text": " Goroutine",
      "top": 1027.0,
      "left": 440.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0063",
      "page": 1,
      "ordinal": 63,
      "text": "（协程）就只能乖",
      "top": 1027.0,
      "left": 514.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0065",
      "page": 1,
      "ordinal": 65,
      "text": "乖的等待，除非该",
      "top": 1027.0,
      "left": 634.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0067",
      "page": 1,
      "ordinal": 67,
      "text": "Goroutine ",
      "top": 1050.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0068",
      "page": 1,
      "ordinal": 68,
      "text": "释放了该",
      "top": 1050.0,
      "left": 185.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0069",
      "page": 1,
      "ordinal": 69,
      "text": " Mutex",
      "top": 1050.0,
      "left": 243.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0070",
      "page": 1,
      "ordinal": 70,
      "text": "。",
      "top": 1050.0,
      "left": 290.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0071",
      "page": 1,
      "ordinal": 71,
      "text": "RWMutex ",
      "top": 1050.0,
      "left": 305.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0072",
      "page": 1,
      "ordinal": 72,
      "text": "在读锁占用的情况下，",
      "top": 1050.0,
      "left": 375.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0074",
      "page": 1,
      "ordinal": 74,
      "text": "会阻止写，但不阻止读",
      "top": 1050.0,
      "left": 525.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0075",
      "page": 1,
      "ordinal": 75,
      "text": " RWMutex",
      "top": 1050.0,
      "left": 671.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0076",
      "page": 1,
      "ordinal": 76,
      "text": "。",
      "top": 1050.0,
      "left": 740.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0078",
      "page": 1,
      "ordinal": 78,
      "text": "在",
      "top": 1050.0,
      "left": 759.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0079",
      "page": 1,
      "ordinal": 79,
      "text": "写锁占用情况下，会阻止任何其他",
      "top": 1074.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0080",
      "page": 1,
      "ordinal": 80,
      "text": " Goroutine",
      "top": 1074.0,
      "left": 331.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0081",
      "page": 1,
      "ordinal": 81,
      "text": "（无论读和写）进来，整个锁相当于由该",
      "top": 1074.0,
      "left": 404.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0082",
      "page": 1,
      "ordinal": 82,
      "text": " Goroutine ",
      "top": 1074.0,
      "left": 667.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0083",
      "page": 1,
      "ordinal": 83,
      "text": "独占",
      "top": 1074.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0085",
      "page": 1,
      "ordinal": 85,
      "text": "同步锁的作用是保证资源在使用时的独有性，不会因为并发而导致数据错乱，",
      "top": 1098.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0087",
      "page": 1,
      "ordinal": 87,
      "text": "保证系统的稳定性。",
      "top": 1098.0,
      "left": 613.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h05",
        "heading_id": "p001-h05",
        "block_id": "q-p001-h05-b001"
      }
    },
    {
      "id": "p001-t0089",
      "page": 1,
      "ordinal": 89,
      "text": "Go ",
      "top": 1131.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06"
      }
    },
    {
      "id": "p001-t0090",
      "page": 1,
      "ordinal": 90,
      "text": "语言当中",
      "top": 1131.0,
      "left": 153.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06"
      }
    },
    {
      "id": "p001-t0091",
      "page": 1,
      "ordinal": 91,
      "text": " Channel",
      "top": 1131.0,
      "left": 255.0,
      "width": 112.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06"
      }
    },
    {
      "id": "p001-t0092",
      "page": 1,
      "ordinal": 92,
      "text": "（通道）有什么特点，需要注意什",
      "top": 1131.0,
      "left": 367.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06"
      }
    },
    {
      "id": "p001-t0093",
      "page": 1,
      "ordinal": 93,
      "text": "么？",
      "top": 1163.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06"
      }
    },
    {
      "id": "p001-t0096",
      "page": 1,
      "ordinal": 96,
      "text": "1",
      "top": 1214.0,
      "left": 129.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0097",
      "page": 1,
      "ordinal": 97,
      "text": "如果给 个",
      "top": 1214.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0098",
      "page": 1,
      "ordinal": 98,
      "text": "nil",
      "top": 1214.0,
      "left": 222.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0099",
      "page": 1,
      "ordinal": 99,
      "text": "的",
      "top": 1214.0,
      "left": 243.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0100",
      "page": 1,
      "ordinal": 100,
      "text": "channel",
      "top": 1214.0,
      "left": 261.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0101",
      "page": 1,
      "ordinal": 101,
      "text": "发送数据 会造成永远阻塞",
      "top": 1214.0,
      "left": 319.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b001"
      }
    },
    {
      "id": "p001-t0102",
      "page": 1,
      "ordinal": 102,
      "text": "s:=make([]int,0)",
      "top": 893.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p001-h04",
        "heading_id": "p001-h04",
        "block_id": "q-p001-h04-b001"
      }
    },
    {
      "id": "p001-t0103",
      "page": 1,
      "ordinal": 103,
      "text": "s:= make([]int,5,10)",
      "top": 915.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p001-h04",
        "heading_id": "p001-h04",
        "block_id": "q-p001-h04-b001"
      }
    },
    {
      "id": "p001-t0104",
      "page": 1,
      "ordinal": 104,
      "text": "s:= []int{1,2,3,4,5}",
      "top": 936.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p001-h04",
        "heading_id": "p001-h04",
        "block_id": "q-p001-h04-b001"
      }
    },
    {
      "id": "p002-t0001",
      "page": 2,
      "ordinal": 1,
      "text": "1. ",
      "top": 33.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0002",
      "page": 2,
      "ordinal": 2,
      "text": "如果给一个",
      "top": 33.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0003",
      "page": 2,
      "ordinal": 3,
      "text": " nil ",
      "top": 33.0,
      "left": 219.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0004",
      "page": 2,
      "ordinal": 4,
      "text": "的",
      "top": 33.0,
      "left": 243.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0005",
      "page": 2,
      "ordinal": 5,
      "text": " channel ",
      "top": 33.0,
      "left": 257.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0006",
      "page": 2,
      "ordinal": 6,
      "text": "发送数据，会造成永远阻塞。",
      "top": 33.0,
      "left": 319.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b002"
      }
    },
    {
      "id": "p002-t0008",
      "page": 2,
      "ordinal": 8,
      "text": "2. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0009",
      "page": 2,
      "ordinal": 9,
      "text": "如果从一个",
      "top": 44.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0010",
      "page": 2,
      "ordinal": 10,
      "text": " nil ",
      "top": 44.0,
      "left": 219.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0011",
      "page": 2,
      "ordinal": 11,
      "text": "的",
      "top": 44.0,
      "left": 243.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0012",
      "page": 2,
      "ordinal": 12,
      "text": " channel ",
      "top": 44.0,
      "left": 257.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0013",
      "page": 2,
      "ordinal": 13,
      "text": "中接收数据，也会造成永久阻塞。",
      "top": 44.0,
      "left": 319.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b003"
      }
    },
    {
      "id": "p002-t0015",
      "page": 2,
      "ordinal": 15,
      "text": "3. ",
      "top": 74.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0016",
      "page": 2,
      "ordinal": 16,
      "text": "给一个已经关闭的",
      "top": 74.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0017",
      "page": 2,
      "ordinal": 17,
      "text": " channel ",
      "top": 74.0,
      "left": 263.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0018",
      "page": 2,
      "ordinal": 18,
      "text": "发送数据，",
      "top": 74.0,
      "left": 324.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0020",
      "page": 2,
      "ordinal": 20,
      "text": "会引起",
      "top": 74.0,
      "left": 401.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0021",
      "page": 2,
      "ordinal": 21,
      "text": " panic ",
      "top": 74.0,
      "left": 445.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b004"
      }
    },
    {
      "id": "p002-t0022",
      "page": 2,
      "ordinal": 22,
      "text": "4. ",
      "top": 105.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0023",
      "page": 2,
      "ordinal": 23,
      "text": "从一个已经关闭的",
      "top": 105.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0024",
      "page": 2,
      "ordinal": 24,
      "text": " channel ",
      "top": 105.0,
      "left": 263.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0025",
      "page": 2,
      "ordinal": 25,
      "text": "接收数据，",
      "top": 105.0,
      "left": 324.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0027",
      "page": 2,
      "ordinal": 27,
      "text": "如果缓冲区中为空，则返回一个零",
      "top": 105.0,
      "left": 401.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0029",
      "page": 2,
      "ordinal": 29,
      "text": "值。",
      "top": 105.0,
      "left": 624.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p001-h06",
        "heading_id": "p001-h06",
        "block_id": "q-p001-h06-b005"
      }
    },
    {
      "id": "p002-t0031",
      "page": 2,
      "ordinal": 31,
      "text": "Go ",
      "top": 139.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01"
      }
    },
    {
      "id": "p002-t0032",
      "page": 2,
      "ordinal": 32,
      "text": "语言当中",
      "top": 139.0,
      "left": 153.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01"
      }
    },
    {
      "id": "p002-t0033",
      "page": 2,
      "ordinal": 33,
      "text": " Channel ",
      "top": 139.0,
      "left": 255.0,
      "width": 118.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01"
      }
    },
    {
      "id": "p002-t0034",
      "page": 2,
      "ordinal": 34,
      "text": "缓冲有什么特点？",
      "top": 139.0,
      "left": 374.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01"
      }
    },
    {
      "id": "p002-t0037",
      "page": 2,
      "ordinal": 37,
      "text": "无缓冲的",
      "top": 190.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01",
        "block_id": "q-p002-h01-b001"
      }
    },
    {
      "id": "p002-t0038",
      "page": 2,
      "ordinal": 38,
      "text": " channel ",
      "top": 190.0,
      "left": 170.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01",
        "block_id": "q-p002-h01-b001"
      }
    },
    {
      "id": "p002-t0039",
      "page": 2,
      "ordinal": 39,
      "text": "是同步的，而有缓冲的",
      "top": 190.0,
      "left": 232.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01",
        "block_id": "q-p002-h01-b001"
      }
    },
    {
      "id": "p002-t0040",
      "page": 2,
      "ordinal": 40,
      "text": " channel ",
      "top": 190.0,
      "left": 378.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01",
        "block_id": "q-p002-h01-b001"
      }
    },
    {
      "id": "p002-t0041",
      "page": 2,
      "ordinal": 41,
      "text": "是非同步的。",
      "top": 190.0,
      "left": 440.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h01",
        "heading_id": "p002-h01",
        "block_id": "q-p002-h01-b001"
      }
    },
    {
      "id": "p002-t0043",
      "page": 2,
      "ordinal": 43,
      "text": "Go ",
      "top": 224.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02"
      }
    },
    {
      "id": "p002-t0044",
      "page": 2,
      "ordinal": 44,
      "text": "语言中",
      "top": 224.0,
      "left": 153.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02"
      }
    },
    {
      "id": "p002-t0045",
      "page": 2,
      "ordinal": 45,
      "text": " cap ",
      "top": 224.0,
      "left": 230.0,
      "width": 58.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02"
      }
    },
    {
      "id": "p002-t0046",
      "page": 2,
      "ordinal": 46,
      "text": "函数可以作用于哪些内容？",
      "top": 224.0,
      "left": 288.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02"
      }
    },
    {
      "id": "p002-t0049",
      "page": 2,
      "ordinal": 49,
      "text": "1. array(",
      "top": 275.0,
      "left": 129.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b001"
      }
    },
    {
      "id": "p002-t0050",
      "page": 2,
      "ordinal": 50,
      "text": "数组",
      "top": 275.0,
      "left": 185.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b001"
      }
    },
    {
      "id": "p002-t0051",
      "page": 2,
      "ordinal": 51,
      "text": ") ",
      "top": 275.0,
      "left": 215.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b001"
      }
    },
    {
      "id": "p002-t0052",
      "page": 2,
      "ordinal": 52,
      "text": "2. slice(",
      "top": 306.0,
      "left": 129.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b002"
      }
    },
    {
      "id": "p002-t0053",
      "page": 2,
      "ordinal": 53,
      "text": "切片",
      "top": 306.0,
      "left": 179.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b002"
      }
    },
    {
      "id": "p002-t0054",
      "page": 2,
      "ordinal": 54,
      "text": ") ",
      "top": 306.0,
      "left": 209.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b002"
      }
    },
    {
      "id": "p002-t0055",
      "page": 2,
      "ordinal": 55,
      "text": "3. channel(",
      "top": 337.0,
      "left": 129.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b003"
      }
    },
    {
      "id": "p002-t0056",
      "page": 2,
      "ordinal": 56,
      "text": "通道",
      "top": 337.0,
      "left": 204.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b003"
      }
    },
    {
      "id": "p002-t0057",
      "page": 2,
      "ordinal": 57,
      "text": ")  ",
      "top": 337.0,
      "left": 233.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h02",
        "heading_id": "p002-h02",
        "block_id": "q-p002-h02-b003"
      }
    },
    {
      "id": "p002-t0058",
      "page": 2,
      "ordinal": 58,
      "text": "Go Convey ",
      "top": 371.0,
      "left": 112.0,
      "width": 141.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03"
      }
    },
    {
      "id": "p002-t0059",
      "page": 2,
      "ordinal": 59,
      "text": "是什么？一般用来做什么？",
      "top": 371.0,
      "left": 253.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03"
      }
    },
    {
      "id": "p002-t0062",
      "page": 2,
      "ordinal": 62,
      "text": "1. go convey ",
      "top": 422.0,
      "left": 129.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b001"
      }
    },
    {
      "id": "p002-t0063",
      "page": 2,
      "ordinal": 63,
      "text": "是一个支持",
      "top": 422.0,
      "left": 218.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b001"
      }
    },
    {
      "id": "p002-t0064",
      "page": 2,
      "ordinal": 64,
      "text": " Golang ",
      "top": 422.0,
      "left": 291.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b001"
      }
    },
    {
      "id": "p002-t0065",
      "page": 2,
      "ordinal": 65,
      "text": "的单元测试框架",
      "top": 422.0,
      "left": 347.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b001"
      }
    },
    {
      "id": "p002-t0067",
      "page": 2,
      "ordinal": 67,
      "text": "2. go convey ",
      "top": 452.0,
      "left": 129.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b002"
      }
    },
    {
      "id": "p002-t0068",
      "page": 2,
      "ordinal": 68,
      "text": "能够自动监控文件修改并启动测试，并可以将测试结果实时输出",
      "top": 452.0,
      "left": 218.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b002"
      }
    },
    {
      "id": "p002-t0070",
      "page": 2,
      "ordinal": 70,
      "text": "到",
      "top": 452.0,
      "left": 631.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b002"
      }
    },
    {
      "id": "p002-t0071",
      "page": 2,
      "ordinal": 71,
      "text": " Web ",
      "top": 452.0,
      "left": 646.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b002"
      }
    },
    {
      "id": "p002-t0072",
      "page": 2,
      "ordinal": 72,
      "text": "界面",
      "top": 452.0,
      "left": 684.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b002"
      }
    },
    {
      "id": "p002-t0074",
      "page": 2,
      "ordinal": 74,
      "text": "3. go convey ",
      "top": 483.0,
      "left": 129.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b003"
      }
    },
    {
      "id": "p002-t0075",
      "page": 2,
      "ordinal": 75,
      "text": "提供了丰富的断言简化测试用例的编写",
      "top": 483.0,
      "left": 218.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/05-go-frameworks#q-p002-h03",
        "heading_id": "p002-h03",
        "block_id": "q-p002-h03-b003"
      }
    },
    {
      "id": "p002-t0077",
      "page": 2,
      "ordinal": 77,
      "text": "输入",
      "top": 518.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04"
      }
    },
    {
      "id": "p002-t0078",
      "page": 2,
      "ordinal": 78,
      "text": " non-empty interface",
      "top": 518.0,
      "left": 141.0,
      "width": 143.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04"
      }
    },
    {
      "id": "p002-t0079",
      "page": 2,
      "ordinal": 79,
      "text": "1. ",
      "top": 553.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0080",
      "page": 2,
      "ordinal": 80,
      "text": "接⼝除了有静态类型，还有动态类型和动态值，",
      "top": 553.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0082",
      "page": 2,
      "ordinal": 82,
      "text": "当且仅当动态值和动态类型都为",
      "top": 553.0,
      "left": 456.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0083",
      "page": 2,
      "ordinal": 83,
      "text": " nil ",
      "top": 553.0,
      "left": 661.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0084",
      "page": 2,
      "ordinal": 84,
      "text": "时，接⼝类型",
      "top": 553.0,
      "left": 685.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0085",
      "page": 2,
      "ordinal": 85,
      "text": "值才为",
      "top": 577.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0086",
      "page": 2,
      "ordinal": 86,
      "text": " nil",
      "top": 577.0,
      "left": 189.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0087",
      "page": 2,
      "ordinal": 87,
      "text": "。",
      "top": 577.0,
      "left": 210.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0089",
      "page": 2,
      "ordinal": 89,
      "text": "这⾥的",
      "top": 577.0,
      "left": 228.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0090",
      "page": 2,
      "ordinal": 90,
      "text": " x ",
      "top": 577.0,
      "left": 272.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0091",
      "page": 2,
      "ordinal": 91,
      "text": "的动态类型是",
      "top": 577.0,
      "left": 287.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0092",
      "page": 2,
      "ordinal": 92,
      "text": " *int",
      "top": 577.0,
      "left": 375.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0093",
      "page": 2,
      "ordinal": 93,
      "text": "，所以",
      "top": 577.0,
      "left": 405.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0094",
      "page": 2,
      "ordinal": 94,
      "text": " x ",
      "top": 577.0,
      "left": 448.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0095",
      "page": 2,
      "ordinal": 95,
      "text": "不为",
      "top": 577.0,
      "left": 464.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0096",
      "page": 2,
      "ordinal": 96,
      "text": " nil",
      "top": 577.0,
      "left": 493.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b001"
      }
    },
    {
      "id": "p002-t0097",
      "page": 2,
      "ordinal": 97,
      "text": "2. ",
      "top": 607.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0098",
      "page": 2,
      "ordinal": 98,
      "text": "但是在此案例中，直接在",
      "top": 607.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0099",
      "page": 2,
      "ordinal": 99,
      "text": "main",
      "top": 607.0,
      "left": 306.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0100",
      "page": 2,
      "ordinal": 100,
      "text": "函数中的",
      "top": 607.0,
      "left": 341.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0101",
      "page": 2,
      "ordinal": 101,
      "text": "*int",
      "top": 607.0,
      "left": 399.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0102",
      "page": 2,
      "ordinal": 102,
      "text": "类型的",
      "top": 607.0,
      "left": 425.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0103",
      "page": 2,
      "ordinal": 103,
      "text": "x",
      "top": 607.0,
      "left": 469.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0104",
      "page": 2,
      "ordinal": 104,
      "text": "的值是",
      "top": 607.0,
      "left": 477.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0105",
      "page": 2,
      "ordinal": 105,
      "text": "nil",
      "top": 607.0,
      "left": 521.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h04",
        "heading_id": "p002-h04",
        "block_id": "q-p002-h04-b002"
      }
    },
    {
      "id": "p002-t0106",
      "page": 2,
      "ordinal": 106,
      "text": "Go ",
      "top": 642.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05"
      }
    },
    {
      "id": "p002-t0107",
      "page": 2,
      "ordinal": 107,
      "text": "语言当中",
      "top": 642.0,
      "left": 153.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05"
      }
    },
    {
      "id": "p002-t0108",
      "page": 2,
      "ordinal": 108,
      "text": " new ",
      "top": 642.0,
      "left": 255.0,
      "width": 67.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05"
      }
    },
    {
      "id": "p002-t0109",
      "page": 2,
      "ordinal": 109,
      "text": "的作用是什么",
      "top": 642.0,
      "left": 322.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05"
      }
    },
    {
      "id": "p002-t0112",
      "page": 2,
      "ordinal": 112,
      "text": "new ",
      "top": 693.0,
      "left": 112.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0113",
      "page": 2,
      "ordinal": 113,
      "text": "创建一个该类型的实例，并且返回指向该实例的指针。",
      "top": 693.0,
      "left": 144.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0114",
      "page": 2,
      "ordinal": 114,
      "text": "new ",
      "top": 693.0,
      "left": 495.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0115",
      "page": 2,
      "ordinal": 115,
      "text": "函数是内建函",
      "top": 693.0,
      "left": 527.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0117",
      "page": 2,
      "ordinal": 117,
      "text": "数，函数定义：",
      "top": 693.0,
      "left": 619.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0118",
      "page": 2,
      "ordinal": 118,
      "text": "   func ",
      "top": 693.0,
      "left": 721.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0119",
      "page": 2,
      "ordinal": 119,
      "text": "new(Type) *Type  ",
      "top": 716.0,
      "left": 112.0,
      "width": 122.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b001"
      }
    },
    {
      "id": "p002-t0120",
      "page": 2,
      "ordinal": 120,
      "text": "1. ",
      "top": 751.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b002"
      }
    },
    {
      "id": "p002-t0121",
      "page": 2,
      "ordinal": 121,
      "text": "使用",
      "top": 751.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b002"
      }
    },
    {
      "id": "p002-t0122",
      "page": 2,
      "ordinal": 122,
      "text": " new ",
      "top": 751.0,
      "left": 175.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b002"
      }
    },
    {
      "id": "p002-t0123",
      "page": 2,
      "ordinal": 123,
      "text": "函数来分配空间",
      "top": 751.0,
      "left": 211.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b002"
      }
    },
    {
      "id": "p002-t0125",
      "page": 2,
      "ordinal": 125,
      "text": "2. ",
      "top": 782.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b003"
      }
    },
    {
      "id": "p002-t0126",
      "page": 2,
      "ordinal": 126,
      "text": "传递给",
      "top": 782.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b003"
      }
    },
    {
      "id": "p002-t0127",
      "page": 2,
      "ordinal": 127,
      "text": " new ",
      "top": 782.0,
      "left": 189.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b003"
      }
    },
    {
      "id": "p002-t0128",
      "page": 2,
      "ordinal": 128,
      "text": "函数的是一个类型，而不是一个值",
      "top": 782.0,
      "left": 226.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b003"
      }
    },
    {
      "id": "p002-t0130",
      "page": 2,
      "ordinal": 130,
      "text": "3. ",
      "top": 812.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b004"
      }
    },
    {
      "id": "p002-t0131",
      "page": 2,
      "ordinal": 131,
      "text": "返回值是指向这个新分配的地址的指针",
      "top": 812.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h05",
        "heading_id": "p002-h05",
        "block_id": "q-p002-h05-b004"
      }
    },
    {
      "id": "p002-t0133",
      "page": 2,
      "ordinal": 133,
      "text": "Go ",
      "top": 847.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06"
      }
    },
    {
      "id": "p002-t0134",
      "page": 2,
      "ordinal": 134,
      "text": "语言中",
      "top": 847.0,
      "left": 153.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06"
      }
    },
    {
      "id": "p002-t0135",
      "page": 2,
      "ordinal": 135,
      "text": " make ",
      "top": 847.0,
      "left": 230.0,
      "width": 85.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06"
      }
    },
    {
      "id": "p002-t0136",
      "page": 2,
      "ordinal": 136,
      "text": "的作用是什么",
      "top": 847.0,
      "left": 314.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06"
      }
    },
    {
      "id": "p002-t0139",
      "page": 2,
      "ordinal": 139,
      "text": "关于",
      "top": 1015.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07"
      }
    },
    {
      "id": "p002-t0140",
      "page": 2,
      "ordinal": 140,
      "text": "select",
      "top": 1015.0,
      "left": 163.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07"
      }
    },
    {
      "id": "p002-t0141",
      "page": 2,
      "ordinal": 141,
      "text": "机制",
      "top": 1015.0,
      "left": 238.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07"
      }
    },
    {
      "id": "p002-t0143",
      "page": 2,
      "ordinal": 143,
      "text": "1. select",
      "top": 1066.0,
      "left": 129.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b001"
      }
    },
    {
      "id": "p002-t0144",
      "page": 2,
      "ordinal": 144,
      "text": "机制⽤来处理异步",
      "top": 1066.0,
      "left": 185.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b001"
      }
    },
    {
      "id": "p002-t0145",
      "page": 2,
      "ordinal": 145,
      "text": "IO",
      "top": 1066.0,
      "left": 302.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b001"
      }
    },
    {
      "id": "p002-t0146",
      "page": 2,
      "ordinal": 146,
      "text": "问题；",
      "top": 1066.0,
      "left": 317.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b001"
      }
    },
    {
      "id": "p002-t0148",
      "page": 2,
      "ordinal": 148,
      "text": "2. select",
      "top": 1097.0,
      "left": 129.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0149",
      "page": 2,
      "ordinal": 149,
      "text": "机制最⼤的⼀条限制就是每个",
      "top": 1097.0,
      "left": 185.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0150",
      "page": 2,
      "ordinal": 150,
      "text": "case",
      "top": 1097.0,
      "left": 375.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0151",
      "page": 2,
      "ordinal": 151,
      "text": "语句⾥必须是⼀个",
      "top": 1097.0,
      "left": 405.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0152",
      "page": 2,
      "ordinal": 152,
      "text": "IO",
      "top": 1097.0,
      "left": 522.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0153",
      "page": 2,
      "ordinal": 153,
      "text": "操作",
      "top": 1097.0,
      "left": 538.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b002"
      }
    },
    {
      "id": "p002-t0155",
      "page": 2,
      "ordinal": 155,
      "text": "3. golang",
      "top": 1127.0,
      "left": 129.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b003"
      }
    },
    {
      "id": "p002-t0156",
      "page": 2,
      "ordinal": 156,
      "text": "在语⾔级别⽀持",
      "top": 1127.0,
      "left": 191.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b003"
      }
    },
    {
      "id": "p002-t0157",
      "page": 2,
      "ordinal": 157,
      "text": "select",
      "top": 1127.0,
      "left": 294.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b003"
      }
    },
    {
      "id": "p002-t0158",
      "page": 2,
      "ordinal": 158,
      "text": "关键字",
      "top": 1127.0,
      "left": 333.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p002-h07",
        "heading_id": "p002-h07",
        "block_id": "q-p002-h07-b003"
      }
    },
    {
      "id": "p002-t0160",
      "page": 2,
      "ordinal": 160,
      "text": "make ",
      "top": 911.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0161",
      "page": 2,
      "ordinal": 161,
      "text": "的作用是为",
      "top": 910.0,
      "left": 166.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0162",
      "page": 2,
      "ordinal": 162,
      "text": " slice, map or chan ",
      "top": 911.0,
      "left": 232.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0163",
      "page": 2,
      "ordinal": 163,
      "text": "的初始化",
      "top": 910.0,
      "left": 390.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0165",
      "page": 2,
      "ordinal": 165,
      "text": "然后返回引用",
      "top": 910.0,
      "left": 451.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0166",
      "page": 2,
      "ordinal": 166,
      "text": " make ",
      "top": 911.0,
      "left": 530.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0167",
      "page": 2,
      "ordinal": 167,
      "text": "函数是内",
      "top": 910.0,
      "left": 578.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0169",
      "page": 2,
      "ordinal": 169,
      "text": "建函数，函数定义：",
      "top": 910.0,
      "left": 638.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b001"
      }
    },
    {
      "id": "p002-t0171",
      "page": 2,
      "ordinal": 171,
      "text": "func make(Type, size IntegerType) Type  ",
      "top": 933.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b002"
      }
    },
    {
      "id": "p002-t0172",
      "page": 2,
      "ordinal": 172,
      "text": "make(T, args)",
      "top": 954.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0173",
      "page": 2,
      "ordinal": 173,
      "text": "函数的目的和",
      "top": 953.0,
      "left": 229.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0174",
      "page": 2,
      "ordinal": 174,
      "text": " new(T)",
      "top": 954.0,
      "left": 308.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0175",
      "page": 2,
      "ordinal": 175,
      "text": "不同",
      "top": 953.0,
      "left": 364.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0177",
      "page": 2,
      "ordinal": 177,
      "text": "仅仅用于创建",
      "top": 953.0,
      "left": 398.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0178",
      "page": 2,
      "ordinal": 178,
      "text": " slice, map, channel ",
      "top": 954.0,
      "left": 477.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p002-t0179",
      "page": 2,
      "ordinal": 179,
      "text": "而且返回类型是实例",
      "top": 953.0,
      "left": 644.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p002-h06",
        "heading_id": "p002-h06",
        "block_id": "q-p002-h06-b003"
      }
    },
    {
      "id": "p003-t0001",
      "page": 3,
      "ordinal": 1,
      "text": "Go ",
      "top": 40.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01"
      }
    },
    {
      "id": "p003-t0002",
      "page": 3,
      "ordinal": 2,
      "text": "程序中的包是什么",
      "top": 40.0,
      "left": 153.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01"
      }
    },
    {
      "id": "p003-t0004",
      "page": 3,
      "ordinal": 4,
      "text": "Printf()",
      "top": 166.0,
      "left": 112.0,
      "width": 91.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0005",
      "page": 3,
      "ordinal": 5,
      "text": "，",
      "top": 166.0,
      "left": 202.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0006",
      "page": 3,
      "ordinal": 6,
      "text": "Sprintf()",
      "top": 166.0,
      "left": 228.0,
      "width": 105.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0007",
      "page": 3,
      "ordinal": 7,
      "text": "，",
      "top": 166.0,
      "left": 333.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0008",
      "page": 3,
      "ordinal": 8,
      "text": "FprintF() ",
      "top": 166.0,
      "left": 359.0,
      "width": 116.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0009",
      "page": 3,
      "ordinal": 9,
      "text": "都是格式化输出，有什么不",
      "top": 166.0,
      "left": 474.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [
        "af://n99"
      ],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0011",
      "page": 3,
      "ordinal": 11,
      "text": "同",
      "top": 197.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02"
      }
    },
    {
      "id": "p003-t0014",
      "page": 3,
      "ordinal": 14,
      "text": "1. Printf ",
      "top": 248.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b001"
      }
    },
    {
      "id": "p003-t0015",
      "page": 3,
      "ordinal": 15,
      "text": "是标准输出，一般是屏幕，也可以重定向",
      "top": 248.0,
      "left": 187.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b001"
      }
    },
    {
      "id": "p003-t0017",
      "page": 3,
      "ordinal": 17,
      "text": "2. Sprintf()",
      "top": 279.0,
      "left": 129.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b002"
      }
    },
    {
      "id": "p003-t0018",
      "page": 3,
      "ordinal": 18,
      "text": "是把格式化字符串输出到指定的字符串中",
      "top": 279.0,
      "left": 200.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b002"
      }
    },
    {
      "id": "p003-t0020",
      "page": 3,
      "ordinal": 20,
      "text": "3. Fprintf()",
      "top": 310.0,
      "left": 129.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b003"
      }
    },
    {
      "id": "p003-t0021",
      "page": 3,
      "ordinal": 21,
      "text": "是把格式化字符串输出到文件中",
      "top": 310.0,
      "left": 199.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h02",
        "heading_id": "p003-h02",
        "block_id": "q-p003-h02-b003"
      }
    },
    {
      "id": "p003-t0023",
      "page": 3,
      "ordinal": 23,
      "text": "Go ",
      "top": 344.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03"
      }
    },
    {
      "id": "p003-t0024",
      "page": 3,
      "ordinal": 24,
      "text": "语言当中数组和切片的区别是什么？",
      "top": 344.0,
      "left": 153.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03"
      }
    },
    {
      "id": "p003-t0027",
      "page": 3,
      "ordinal": 27,
      "text": "1. ",
      "top": 395.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0028",
      "page": 3,
      "ordinal": 28,
      "text": "数组，",
      "top": 395.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0030",
      "page": 3,
      "ordinal": 30,
      "text": "组固定长度。数组长度是数组类型的一部分，所以",
      "top": 395.0,
      "left": 193.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0031",
      "page": 3,
      "ordinal": 31,
      "text": "[3]int ",
      "top": 395.0,
      "left": 515.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0032",
      "page": 3,
      "ordinal": 32,
      "text": "和",
      "top": 395.0,
      "left": 555.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0033",
      "page": 3,
      "ordinal": 33,
      "text": "[4]int ",
      "top": 395.0,
      "left": 569.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0034",
      "page": 3,
      "ordinal": 34,
      "text": "是两种不",
      "top": 395.0,
      "left": 609.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0036",
      "page": 3,
      "ordinal": 36,
      "text": "同的数组类型数",
      "top": 395.0,
      "left": 671.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0037",
      "page": 3,
      "ordinal": 37,
      "text": "组需要指定大小，不指定也会根据初始化，自动推算出大小，",
      "top": 418.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0039",
      "page": 3,
      "ordinal": 39,
      "text": "大小不可改变。数组是通过值传递的",
      "top": 418.0,
      "left": 544.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b001"
      }
    },
    {
      "id": "p003-t0041",
      "page": 3,
      "ordinal": 41,
      "text": "2. ",
      "top": 449.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0042",
      "page": 3,
      "ordinal": 42,
      "text": "切片，",
      "top": 449.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0044",
      "page": 3,
      "ordinal": 44,
      "text": "可以改变长度。切片是轻量级的数据结构，三个属性，指针，长度，容量",
      "top": 449.0,
      "left": 193.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0046",
      "page": 3,
      "ordinal": 46,
      "text": "不需要指定大小切",
      "top": 449.0,
      "left": 665.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0047",
      "page": 3,
      "ordinal": 47,
      "text": "片是地址传递（引用传递）可以通过数组来初始化，也可以",
      "top": 472.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0049",
      "page": 3,
      "ordinal": 49,
      "text": "通过内置函数",
      "top": 472.0,
      "left": 530.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0050",
      "page": 3,
      "ordinal": 50,
      "text": " make()",
      "top": 472.0,
      "left": 617.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0051",
      "page": 3,
      "ordinal": 51,
      "text": "来初始化，初始",
      "top": 472.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0052",
      "page": 3,
      "ordinal": 52,
      "text": "化的时候",
      "top": 496.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0053",
      "page": 3,
      "ordinal": 53,
      "text": " len=cap",
      "top": 496.0,
      "left": 204.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0054",
      "page": 3,
      "ordinal": 54,
      "text": "，然后进行扩容",
      "top": 496.0,
      "left": 261.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h03",
        "heading_id": "p003-h03",
        "block_id": "q-p003-h03-b002"
      }
    },
    {
      "id": "p003-t0056",
      "page": 3,
      "ordinal": 56,
      "text": "拷贝大切片一定比小切片代价大吗？",
      "top": 530.0,
      "left": 112.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04"
      }
    },
    {
      "id": "p003-t0058",
      "page": 3,
      "ordinal": 58,
      "text": "切片底层结构",
      "top": 581.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b001"
      }
    },
    {
      "id": "p003-t0059",
      "page": 3,
      "ordinal": 59,
      "text": "所有切片的大小相同；三个字段（一个",
      "top": 761.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0060",
      "page": 3,
      "ordinal": 60,
      "text": " uintptr",
      "top": 761.0,
      "left": 360.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0061",
      "page": 3,
      "ordinal": 61,
      "text": "，两个",
      "top": 761.0,
      "left": 411.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0062",
      "page": 3,
      "ordinal": 62,
      "text": "int",
      "top": 761.0,
      "left": 455.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0063",
      "page": 3,
      "ordinal": 63,
      "text": "）。切片中的第一个字是指向切片底层数组的指",
      "top": 761.0,
      "left": 473.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0064",
      "page": 3,
      "ordinal": 64,
      "text": "针，这是切片的存储空间，第二个字段是切片的长度，第三个字段是容量。将一个",
      "top": 785.0,
      "left": 112.0,
      "width": 527.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0065",
      "page": 3,
      "ordinal": 65,
      "text": " slice ",
      "top": 785.0,
      "left": 638.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0066",
      "page": 3,
      "ordinal": 66,
      "text": "变量分配给另一",
      "top": 785.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0067",
      "page": 3,
      "ordinal": 67,
      "text": "个变量只会复制三个机器字。所以",
      "top": 809.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0069",
      "page": 3,
      "ordinal": 69,
      "text": "拷贝大切片跟小切片的代价应该是一样的。",
      "top": 809.0,
      "left": 335.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b003"
      }
    },
    {
      "id": "p003-t0070",
      "page": 3,
      "ordinal": 70,
      "text": "json",
      "top": 842.0,
      "left": 112.0,
      "width": 53.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05"
      }
    },
    {
      "id": "p003-t0071",
      "page": 3,
      "ordinal": 71,
      "text": "包变量不加",
      "top": 842.0,
      "left": 165.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05"
      }
    },
    {
      "id": "p003-t0072",
      "page": 3,
      "ordinal": 72,
      "text": "tag",
      "top": 842.0,
      "left": 293.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05"
      }
    },
    {
      "id": "p003-t0073",
      "page": 3,
      "ordinal": 73,
      "text": "会怎么样？",
      "top": 842.0,
      "left": 334.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05"
      }
    },
    {
      "id": "p003-t0075",
      "page": 3,
      "ordinal": 75,
      "text": "1. ",
      "top": 893.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0076",
      "page": 3,
      "ordinal": 76,
      "text": "如果变量首字母小写，则为",
      "top": 893.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0077",
      "page": 3,
      "ordinal": 77,
      "text": "private",
      "top": 893.0,
      "left": 321.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0078",
      "page": 3,
      "ordinal": 78,
      "text": "。无论如何不能转，因为",
      "top": 893.0,
      "left": 368.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0079",
      "page": 3,
      "ordinal": 79,
      "text": "json",
      "top": 893.0,
      "left": 529.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0080",
      "page": 3,
      "ordinal": 80,
      "text": "包里认为私有变量为不可导出的",
      "top": 893.0,
      "left": 558.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b001"
      }
    },
    {
      "id": "p003-t0081",
      "page": 3,
      "ordinal": 81,
      "text": "2. ",
      "top": 924.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0082",
      "page": 3,
      "ordinal": 82,
      "text": "如果变量首字母大写，则为",
      "top": 924.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0083",
      "page": 3,
      "ordinal": 83,
      "text": "public",
      "top": 924.0,
      "left": 321.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0084",
      "page": 3,
      "ordinal": 84,
      "text": "，不加",
      "top": 924.0,
      "left": 362.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0085",
      "page": 3,
      "ordinal": 85,
      "text": "tag",
      "top": 924.0,
      "left": 406.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0086",
      "page": 3,
      "ordinal": 86,
      "text": "，可以正常转为",
      "top": 924.0,
      "left": 427.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0087",
      "page": 3,
      "ordinal": 87,
      "text": "json",
      "top": 924.0,
      "left": 530.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0088",
      "page": 3,
      "ordinal": 88,
      "text": "里的字段，",
      "top": 924.0,
      "left": 558.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0089",
      "page": 3,
      "ordinal": 89,
      "text": "json",
      "top": 924.0,
      "left": 631.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0090",
      "page": 3,
      "ordinal": 90,
      "text": "内字段名跟结构体",
      "top": 924.0,
      "left": 660.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0091",
      "page": 3,
      "ordinal": 91,
      "text": "内字段原名一致",
      "top": 947.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b002"
      }
    },
    {
      "id": "p003-t0092",
      "page": 3,
      "ordinal": 92,
      "text": "3. ",
      "top": 978.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0093",
      "page": 3,
      "ordinal": 93,
      "text": "如果变量首字母大写，则为",
      "top": 978.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0094",
      "page": 3,
      "ordinal": 94,
      "text": "public",
      "top": 978.0,
      "left": 321.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0095",
      "page": 3,
      "ordinal": 95,
      "text": "，加了",
      "top": 978.0,
      "left": 362.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0096",
      "page": 3,
      "ordinal": 96,
      "text": "tag",
      "top": 978.0,
      "left": 406.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0097",
      "page": 3,
      "ordinal": 97,
      "text": "，从",
      "top": 978.0,
      "left": 427.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0098",
      "page": 3,
      "ordinal": 98,
      "text": "struct",
      "top": 978.0,
      "left": 457.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0099",
      "page": 3,
      "ordinal": 99,
      "text": "转",
      "top": 978.0,
      "left": 496.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0100",
      "page": 3,
      "ordinal": 100,
      "text": "json",
      "top": 978.0,
      "left": 511.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0101",
      "page": 3,
      "ordinal": 101,
      "text": "的时候，",
      "top": 978.0,
      "left": 539.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0102",
      "page": 3,
      "ordinal": 102,
      "text": "json",
      "top": 978.0,
      "left": 598.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0103",
      "page": 3,
      "ordinal": 103,
      "text": "的字段名就是",
      "top": 978.0,
      "left": 626.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0104",
      "page": 3,
      "ordinal": 104,
      "text": "tag",
      "top": 978.0,
      "left": 714.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0105",
      "page": 3,
      "ordinal": 105,
      "text": "里的字",
      "top": 978.0,
      "left": 735.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0106",
      "page": 3,
      "ordinal": 106,
      "text": "段名，原字段名已经没用",
      "top": 1001.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h05",
        "heading_id": "p003-h05",
        "block_id": "q-p003-h05-b003"
      }
    },
    {
      "id": "p003-t0107",
      "page": 3,
      "ordinal": 107,
      "text": "Log",
      "top": 1036.0,
      "left": 112.0,
      "width": 45.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06"
      }
    },
    {
      "id": "p003-t0108",
      "page": 3,
      "ordinal": 108,
      "text": "包线程安全吗",
      "top": 1036.0,
      "left": 157.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06"
      }
    },
    {
      "id": "p003-t0111",
      "page": 3,
      "ordinal": 111,
      "text": "包",
      "top": 104.0,
      "left": 126.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0112",
      "page": 3,
      "ordinal": 112,
      "text": "(pkg)",
      "top": 105.0,
      "left": 140.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0113",
      "page": 3,
      "ordinal": 113,
      "text": "是",
      "top": 104.0,
      "left": 179.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0114",
      "page": 3,
      "ordinal": 114,
      "text": " Go ",
      "top": 105.0,
      "left": 192.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0115",
      "page": 3,
      "ordinal": 115,
      "text": "⼯",
      "top": 101.0,
      "left": 224.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0116",
      "page": 3,
      "ordinal": 116,
      "text": "作区中包含",
      "top": 104.0,
      "left": 237.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0117",
      "page": 3,
      "ordinal": 117,
      "text": " Go ",
      "top": 105.0,
      "left": 303.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0118",
      "page": 3,
      "ordinal": 118,
      "text": "源",
      "top": 104.0,
      "left": 335.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0119",
      "page": 3,
      "ordinal": 119,
      "text": "⽂",
      "top": 101.0,
      "left": 348.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0120",
      "page": 3,
      "ordinal": 120,
      "text": "件或其他包的",
      "top": 104.0,
      "left": 361.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0121",
      "page": 3,
      "ordinal": 121,
      "text": "⽬",
      "top": 101.0,
      "left": 440.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0122",
      "page": 3,
      "ordinal": 122,
      "text": "录。源",
      "top": 104.0,
      "left": 453.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0123",
      "page": 3,
      "ordinal": 123,
      "text": "⽂",
      "top": 101.0,
      "left": 493.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0124",
      "page": 3,
      "ordinal": 124,
      "text": "件中的每个函数、变量和类型都存储在链接包",
      "top": 104.0,
      "left": 506.0,
      "width": 263.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0125",
      "page": 3,
      "ordinal": 125,
      "text": "中。每",
      "top": 125.0,
      "left": 126.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0127",
      "page": 3,
      "ordinal": 127,
      "text": "个",
      "top": 125.0,
      "left": 174.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0128",
      "page": 3,
      "ordinal": 128,
      "text": " Go ",
      "top": 126.0,
      "left": 187.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0129",
      "page": 3,
      "ordinal": 129,
      "text": "源",
      "top": 125.0,
      "left": 219.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0130",
      "page": 3,
      "ordinal": 130,
      "text": "⽂",
      "top": 123.0,
      "left": 232.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0131",
      "page": 3,
      "ordinal": 131,
      "text": "件都属于",
      "top": 125.0,
      "left": 245.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0132",
      "page": 3,
      "ordinal": 132,
      "text": "⼀",
      "top": 123.0,
      "left": 298.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0133",
      "page": 3,
      "ordinal": 133,
      "text": "个包，该包在",
      "top": 125.0,
      "left": 311.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0134",
      "page": 3,
      "ordinal": 134,
      "text": "⽂",
      "top": 123.0,
      "left": 390.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0135",
      "page": 3,
      "ordinal": 135,
      "text": "件顶部使",
      "top": 125.0,
      "left": 403.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0136",
      "page": 3,
      "ordinal": 136,
      "text": "⽤",
      "top": 123.0,
      "left": 456.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0137",
      "page": 3,
      "ordinal": 137,
      "text": " package",
      "top": 126.0,
      "left": 469.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0138",
      "page": 3,
      "ordinal": 138,
      "text": "关键词声明。使用",
      "top": 125.0,
      "left": 532.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0139",
      "page": 3,
      "ordinal": 139,
      "text": "import",
      "top": 126.0,
      "left": 638.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0140",
      "page": 3,
      "ordinal": 140,
      "text": "导入包。",
      "top": 125.0,
      "left": 685.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p003-h01",
        "heading_id": "p003-h01",
        "block_id": "q-p003-h01-b001"
      }
    },
    {
      "id": "p003-t0141",
      "page": 3,
      "ordinal": 141,
      "text": "type SliceHeader struct {",
      "top": 632.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b002"
      }
    },
    {
      "id": "p003-t0142",
      "page": 3,
      "ordinal": 142,
      "text": " Data uintptr",
      "top": 654.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b002"
      }
    },
    {
      "id": "p003-t0143",
      "page": 3,
      "ordinal": 143,
      "text": " Len  int",
      "top": 675.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b002"
      }
    },
    {
      "id": "p003-t0144",
      "page": 3,
      "ordinal": 144,
      "text": " Cap  int",
      "top": 696.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b002"
      }
    },
    {
      "id": "p003-t0145",
      "page": 3,
      "ordinal": 145,
      "text": "}",
      "top": 717.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p003-h04",
        "heading_id": "p003-h04",
        "block_id": "q-p003-h04-b002"
      }
    },
    {
      "id": "p003-t0146",
      "page": 3,
      "ordinal": 146,
      "text": "Golang",
      "top": 1100.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p003-t0147",
      "page": 3,
      "ordinal": 147,
      "text": "的标准库提供了",
      "top": 1099.0,
      "left": 174.0,
      "width": 92.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p003-t0148",
      "page": 3,
      "ordinal": 148,
      "text": "log",
      "top": 1100.0,
      "left": 266.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p003-t0149",
      "page": 3,
      "ordinal": 149,
      "text": "的机制，但是该模块的功能较为简单（看似简单，其实他有他的设计思路）。在输",
      "top": 1099.0,
      "left": 290.0,
      "width": 474.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p003-t0150",
      "page": 3,
      "ordinal": 150,
      "text": "出的",
      "top": 1121.0,
      "left": 126.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p003-t0152",
      "page": 3,
      "ordinal": 152,
      "text": "位置做了线程安全的保护",
      "top": 1121.0,
      "left": 161.0,
      "width": 145.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p003-h06",
        "heading_id": "p003-h06",
        "block_id": "q-p003-h06-b001"
      }
    },
    {
      "id": "p004-t0001",
      "page": 4,
      "ordinal": 1,
      "text": "Go ",
      "top": 40.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01"
      }
    },
    {
      "id": "p004-t0002",
      "page": 4,
      "ordinal": 2,
      "text": "语言当中数组和切片在传递的时候的区别是什么？",
      "top": 40.0,
      "left": 153.0,
      "width": 563.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01"
      }
    },
    {
      "id": "p004-t0005",
      "page": 4,
      "ordinal": 5,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01",
        "block_id": "q-p004-h01-b001"
      }
    },
    {
      "id": "p004-t0006",
      "page": 4,
      "ordinal": 6,
      "text": "数组是值传递",
      "top": 91.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01",
        "block_id": "q-p004-h01-b001"
      }
    },
    {
      "id": "p004-t0008",
      "page": 4,
      "ordinal": 8,
      "text": "2. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01",
        "block_id": "q-p004-h01-b002"
      }
    },
    {
      "id": "p004-t0009",
      "page": 4,
      "ordinal": 9,
      "text": "切片看上去像是引用传递，但其实是值传递",
      "top": 121.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h01",
        "heading_id": "p004-h01",
        "block_id": "q-p004-h01-b002"
      }
    },
    {
      "id": "p004-t0011",
      "page": 4,
      "ordinal": 11,
      "text": "Goroutine",
      "top": 156.0,
      "left": 112.0,
      "width": 130.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02"
      }
    },
    {
      "id": "p004-t0012",
      "page": 4,
      "ordinal": 12,
      "text": "和线程的区别",
      "top": 156.0,
      "left": 241.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02"
      }
    },
    {
      "id": "p004-t0013",
      "page": 4,
      "ordinal": 13,
      "text": "?  ",
      "top": 156.0,
      "left": 395.0,
      "width": 26.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02"
      }
    },
    {
      "id": "p004-t0016",
      "page": 4,
      "ordinal": 16,
      "text": "从调度上看，",
      "top": 207.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0017",
      "page": 4,
      "ordinal": 17,
      "text": "goroutine",
      "top": 207.0,
      "left": 203.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0018",
      "page": 4,
      "ordinal": 18,
      "text": "的调度开销远远⼩于线程调度开销。",
      "top": 207.0,
      "left": 270.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0019",
      "page": 4,
      "ordinal": 19,
      "text": " OS",
      "top": 207.0,
      "left": 504.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0020",
      "page": 4,
      "ordinal": 20,
      "text": "的线程由",
      "top": 207.0,
      "left": 527.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0021",
      "page": 4,
      "ordinal": 21,
      "text": "OS",
      "top": 207.0,
      "left": 586.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0022",
      "page": 4,
      "ordinal": 22,
      "text": "内核调度，每隔⼏毫秒，⼀",
      "top": 207.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0023",
      "page": 4,
      "ordinal": 23,
      "text": "个硬件时钟中断发到",
      "top": 230.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0024",
      "page": 4,
      "ordinal": 24,
      "text": "CPU",
      "top": 230.0,
      "left": 243.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0025",
      "page": 4,
      "ordinal": 25,
      "text": "，",
      "top": 230.0,
      "left": 272.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0026",
      "page": 4,
      "ordinal": 26,
      "text": "CPU",
      "top": 230.0,
      "left": 287.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0027",
      "page": 4,
      "ordinal": 27,
      "text": "调⽤⼀个调度器内核函数。这个函数暂",
      "top": 230.0,
      "left": 315.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0029",
      "page": 4,
      "ordinal": 29,
      "text": "停当前正在运⾏的线程，把他的",
      "top": 230.0,
      "left": 568.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0030",
      "page": 4,
      "ordinal": 30,
      "text": "寄存器信息保存到内存中，查看线程列表并决定接下来运⾏哪⼀个线程，再从内存",
      "top": 253.0,
      "left": 112.0,
      "width": 527.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0032",
      "page": 4,
      "ordinal": 32,
      "text": "中恢复线程的注册表",
      "top": 253.0,
      "left": 642.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0033",
      "page": 4,
      "ordinal": 33,
      "text": "信息，最后继续执⾏选中的线程。这种线程切换需要⼀个完整的上下⽂切换：即保存⼀个线程",
      "top": 276.0,
      "left": 112.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0035",
      "page": 4,
      "ordinal": 35,
      "text": "的状态到",
      "top": 276.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0036",
      "page": 4,
      "ordinal": 36,
      "text": "内存，再恢复另外⼀个线程的状态，最后更新调度器的数据结构。某种意义上，这种操作还是很慢的。",
      "top": 300.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0038",
      "page": 4,
      "ordinal": 38,
      "text": "Go",
      "top": 324.0,
      "left": 112.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0039",
      "page": 4,
      "ordinal": 39,
      "text": "运⾏的时候包涵⼀个⾃⼰的调度器，这个调度器使⽤⼀个称为⼀个",
      "top": 324.0,
      "left": 131.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0040",
      "page": 4,
      "ordinal": 40,
      "text": "M:N",
      "top": 324.0,
      "left": 555.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0041",
      "page": 4,
      "ordinal": 41,
      "text": "调度技术，",
      "top": 324.0,
      "left": 583.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0042",
      "page": 4,
      "ordinal": 42,
      "text": "m",
      "top": 324.0,
      "left": 657.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0043",
      "page": 4,
      "ordinal": 43,
      "text": "个",
      "top": 324.0,
      "left": 670.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0044",
      "page": 4,
      "ordinal": 44,
      "text": "goroutine",
      "top": 324.0,
      "left": 685.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0045",
      "page": 4,
      "ordinal": 45,
      "text": "到",
      "top": 324.0,
      "left": 752.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0046",
      "page": 4,
      "ordinal": 46,
      "text": "n",
      "top": 324.0,
      "left": 766.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0047",
      "page": 4,
      "ordinal": 47,
      "text": "个",
      "top": 347.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0048",
      "page": 4,
      "ordinal": 48,
      "text": "os",
      "top": 347.0,
      "left": 126.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0049",
      "page": 4,
      "ordinal": 49,
      "text": "线程",
      "top": 347.0,
      "left": 142.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0051",
      "page": 4,
      "ordinal": 51,
      "text": "（可以⽤",
      "top": 347.0,
      "left": 175.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0052",
      "page": 4,
      "ordinal": 52,
      "text": "GOMAXPROCS",
      "top": 347.0,
      "left": 234.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0053",
      "page": 4,
      "ordinal": 53,
      "text": "来控制",
      "top": 347.0,
      "left": 333.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0054",
      "page": 4,
      "ordinal": 54,
      "text": "n",
      "top": 347.0,
      "left": 377.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0055",
      "page": 4,
      "ordinal": 55,
      "text": "的数量），",
      "top": 347.0,
      "left": 386.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0056",
      "page": 4,
      "ordinal": 56,
      "text": "Go",
      "top": 347.0,
      "left": 459.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0057",
      "page": 4,
      "ordinal": 57,
      "text": "的调度器不是由硬件时钟来定期触发的，⽽是",
      "top": 347.0,
      "left": 479.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0058",
      "page": 4,
      "ordinal": 58,
      "text": "由特定的",
      "top": 370.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0059",
      "page": 4,
      "ordinal": 59,
      "text": "go",
      "top": 370.0,
      "left": 170.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0060",
      "page": 4,
      "ordinal": 60,
      "text": "语⾔结构",
      "top": 370.0,
      "left": 187.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0062",
      "page": 4,
      "ordinal": 62,
      "text": "来触发的，他不需要切换到内核语境，所以调度⼀个",
      "top": 370.0,
      "left": 249.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0063",
      "page": 4,
      "ordinal": 63,
      "text": "goroutine",
      "top": 370.0,
      "left": 586.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0064",
      "page": 4,
      "ordinal": 64,
      "text": "⽐调度⼀个线程的",
      "top": 370.0,
      "left": 652.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0065",
      "page": 4,
      "ordinal": 65,
      "text": "成本低很多。",
      "top": 393.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0067",
      "page": 4,
      "ordinal": 67,
      "text": "从栈空间上，",
      "top": 393.0,
      "left": 203.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0068",
      "page": 4,
      "ordinal": 68,
      "text": "goroutine",
      "top": 393.0,
      "left": 291.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0069",
      "page": 4,
      "ordinal": 69,
      "text": "的栈空间更加动态灵活。",
      "top": 393.0,
      "left": 358.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0071",
      "page": 4,
      "ordinal": 71,
      "text": "每个",
      "top": 393.0,
      "left": 522.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0072",
      "page": 4,
      "ordinal": 72,
      "text": "OS",
      "top": 393.0,
      "left": 552.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0073",
      "page": 4,
      "ordinal": 73,
      "text": "的线程都有⼀个固定⼤⼩的栈内",
      "top": 393.0,
      "left": 571.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0074",
      "page": 4,
      "ordinal": 74,
      "text": "存，通常是",
      "top": 417.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0075",
      "page": 4,
      "ordinal": 75,
      "text": "2MB",
      "top": 417.0,
      "left": 185.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0076",
      "page": 4,
      "ordinal": 76,
      "text": "，栈内存⽤于保存在其他函数调⽤期间哪些正在执⾏或者",
      "top": 417.0,
      "left": 216.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0078",
      "page": 4,
      "ordinal": 78,
      "text": "临时暂停的函数的局部变量。",
      "top": 417.0,
      "left": 585.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0079",
      "page": 4,
      "ordinal": 79,
      "text": "这个固定的栈⼤⼩，如果对于",
      "top": 441.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0080",
      "page": 4,
      "ordinal": 80,
      "text": "goroutine",
      "top": 441.0,
      "left": 302.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0081",
      "page": 4,
      "ordinal": 81,
      "text": "来说，可能是⼀种巨⼤的浪费。作为对⽐",
      "top": 441.0,
      "left": 369.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0082",
      "page": 4,
      "ordinal": 82,
      "text": " goroutine",
      "top": 441.0,
      "left": 632.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0083",
      "page": 4,
      "ordinal": 83,
      "text": "在⽣命周期",
      "top": 441.0,
      "left": 702.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0084",
      "page": 4,
      "ordinal": 84,
      "text": "开始只有⼀个很⼩的栈，典型情况是",
      "top": 464.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0085",
      "page": 4,
      "ordinal": 85,
      "text": "2KB, ",
      "top": 464.0,
      "left": 346.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0086",
      "page": 4,
      "ordinal": 86,
      "text": "在",
      "top": 464.0,
      "left": 380.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0087",
      "page": 4,
      "ordinal": 87,
      "text": "go",
      "top": 464.0,
      "left": 395.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0088",
      "page": 4,
      "ordinal": 88,
      "text": "程序中，⼀次创建⼗万左右的",
      "top": 464.0,
      "left": 411.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0089",
      "page": 4,
      "ordinal": 89,
      "text": "goroutine",
      "top": 464.0,
      "left": 602.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0090",
      "page": 4,
      "ordinal": 90,
      "text": "也不",
      "top": 464.0,
      "left": 668.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0092",
      "page": 4,
      "ordinal": 92,
      "text": "罕⻅",
      "top": 464.0,
      "left": 701.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0093",
      "page": 4,
      "ordinal": 93,
      "text": "（",
      "top": 487.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0094",
      "page": 4,
      "ordinal": 94,
      "text": "2KB*100,000=200MB",
      "top": 487.0,
      "left": 126.0,
      "width": 145.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0095",
      "page": 4,
      "ordinal": 95,
      "text": "）。⽽且",
      "top": 487.0,
      "left": 271.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0096",
      "page": 4,
      "ordinal": 96,
      "text": "goroutine",
      "top": 487.0,
      "left": 330.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0097",
      "page": 4,
      "ordinal": 97,
      "text": "的栈不是固定⼤⼩，它可以按需增⼤和缩⼩，最⼤限制可以",
      "top": 487.0,
      "left": 396.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0098",
      "page": 4,
      "ordinal": 98,
      "text": "到",
      "top": 510.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0099",
      "page": 4,
      "ordinal": 99,
      "text": " 1GB",
      "top": 510.0,
      "left": 126.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0100",
      "page": 4,
      "ordinal": 100,
      "text": "。",
      "top": 510.0,
      "left": 159.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0101",
      "page": 4,
      "ordinal": 101,
      "text": " goroutine",
      "top": 510.0,
      "left": 173.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0102",
      "page": 4,
      "ordinal": 102,
      "text": "没有⼀个特定的标识。",
      "top": 510.0,
      "left": 244.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0104",
      "page": 4,
      "ordinal": 104,
      "text": "在⼤部分⽀持多线程的操作系统和编程语⾔中，线程有⼀个",
      "top": 510.0,
      "left": 394.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0105",
      "page": 4,
      "ordinal": 105,
      "text": "独特的标识，通常是⼀个整数或者指针，这个特性可以",
      "top": 534.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0107",
      "page": 4,
      "ordinal": 107,
      "text": "让我们构建⼀个线程的局部存储，本质是⼀个全",
      "top": 534.0,
      "left": 467.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0108",
      "page": 4,
      "ordinal": 108,
      "text": "局的",
      "top": 558.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0109",
      "page": 4,
      "ordinal": 109,
      "text": "map",
      "top": 558.0,
      "left": 141.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0110",
      "page": 4,
      "ordinal": 110,
      "text": "，以线程的标识作为键，这样每个线程可以独⽴使⽤这个",
      "top": 558.0,
      "left": 172.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0111",
      "page": 4,
      "ordinal": 111,
      "text": " map",
      "top": 558.0,
      "left": 537.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0112",
      "page": 4,
      "ordinal": 112,
      "text": "存储和获取值，不受其他线程⼲",
      "top": 558.0,
      "left": 572.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0113",
      "page": 4,
      "ordinal": 113,
      "text": "扰。",
      "top": 581.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0114",
      "page": 4,
      "ordinal": 114,
      "text": " goroutine",
      "top": 581.0,
      "left": 141.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0115",
      "page": 4,
      "ordinal": 115,
      "text": "中没有可供程序员访问的标识，原因是⼀种纯函数的理念，不希望滥⽤线程局部存储导致",
      "top": 581.0,
      "left": 211.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0116",
      "page": 4,
      "ordinal": 116,
      "text": "⼀个不健康的",
      "top": 604.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0118",
      "page": 4,
      "ordinal": 118,
      "text": "超距作⽤，即函数的⾏为不仅取决于它的参数，还取决于运⾏它的线程标识。",
      "top": 604.0,
      "left": 203.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p004-h02",
        "heading_id": "p004-h02",
        "block_id": "q-p004-h02-b001"
      }
    },
    {
      "id": "p004-t0120",
      "page": 4,
      "ordinal": 120,
      "text": "Go ",
      "top": 638.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03"
      }
    },
    {
      "id": "p004-t0121",
      "page": 4,
      "ordinal": 121,
      "text": "语言是如何实现切片扩容的？",
      "top": 638.0,
      "left": 153.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03"
      }
    },
    {
      "id": "p004-t0125",
      "page": 4,
      "ordinal": 125,
      "text": "我们可以看下结果",
      "top": 874.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0127",
      "page": 4,
      "ordinal": 127,
      "text": "依次是",
      "top": 897.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0128",
      "page": 4,
      "ordinal": 128,
      "text": " 0,1,2,4,8,16,32,64,128,256,512,1024 ",
      "top": 897.0,
      "left": 159.0,
      "width": 248.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0129",
      "page": 4,
      "ordinal": 129,
      "text": "但到了",
      "top": 921.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0130",
      "page": 4,
      "ordinal": 130,
      "text": " 1024 ",
      "top": 921.0,
      "left": 156.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0131",
      "page": 4,
      "ordinal": 131,
      "text": "之后",
      "top": 921.0,
      "left": 197.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0132",
      "page": 4,
      "ordinal": 132,
      "text": ",",
      "top": 921.0,
      "left": 226.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0133",
      "page": 4,
      "ordinal": 133,
      "text": "就变成了",
      "top": 921.0,
      "left": 230.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0134",
      "page": 4,
      "ordinal": 134,
      "text": " 1024,1280,1696,2304 ",
      "top": 921.0,
      "left": 288.0,
      "width": 152.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0135",
      "page": 4,
      "ordinal": 135,
      "text": "每次都是扩容了四分之一左右",
      "top": 944.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b002"
      }
    },
    {
      "id": "p004-t0137",
      "page": 4,
      "ordinal": 137,
      "text": "看下面代码的",
      "top": 978.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0138",
      "page": 4,
      "ordinal": 138,
      "text": " defer ",
      "top": 978.0,
      "left": 265.0,
      "width": 81.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0139",
      "page": 4,
      "ordinal": 139,
      "text": "的执行顺序是什么？",
      "top": 978.0,
      "left": 347.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0140",
      "page": 4,
      "ordinal": 140,
      "text": " defer ",
      "top": 978.0,
      "left": 577.0,
      "width": 81.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0141",
      "page": 4,
      "ordinal": 141,
      "text": "的作用和",
      "top": 978.0,
      "left": 658.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0142",
      "page": 4,
      "ordinal": 142,
      "text": "特",
      "top": 1010.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0144",
      "page": 4,
      "ordinal": 144,
      "text": "点是什么？",
      "top": 1010.0,
      "left": 144.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04"
      }
    },
    {
      "id": "p004-t0147",
      "page": 4,
      "ordinal": 147,
      "text": " defer ",
      "top": 1061.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b001"
      }
    },
    {
      "id": "p004-t0148",
      "page": 4,
      "ordinal": 148,
      "text": "的作用是：",
      "top": 1061.0,
      "left": 156.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b001"
      }
    },
    {
      "id": "p004-t0150",
      "page": 4,
      "ordinal": 150,
      "text": "1. ",
      "top": 1095.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0151",
      "page": 4,
      "ordinal": 151,
      "text": "你只需要在调用普通函数或方法前加上关键字",
      "top": 1095.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0152",
      "page": 4,
      "ordinal": 152,
      "text": " defer",
      "top": 1095.0,
      "left": 438.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0153",
      "page": 4,
      "ordinal": 153,
      "text": "，就完成了",
      "top": 1095.0,
      "left": 478.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0154",
      "page": 4,
      "ordinal": 154,
      "text": " defer ",
      "top": 1095.0,
      "left": 551.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0155",
      "page": 4,
      "ordinal": 155,
      "text": "所需要",
      "top": 1095.0,
      "left": 595.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0157",
      "page": 4,
      "ordinal": 157,
      "text": "的语法。",
      "top": 1095.0,
      "left": 643.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b002"
      }
    },
    {
      "id": "p004-t0158",
      "page": 4,
      "ordinal": 158,
      "text": "2. ",
      "top": 1126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0159",
      "page": 4,
      "ordinal": 159,
      "text": "当",
      "top": 1126.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0160",
      "page": 4,
      "ordinal": 160,
      "text": " defer ",
      "top": 1126.0,
      "left": 160.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0161",
      "page": 4,
      "ordinal": 161,
      "text": "语句被执行时，跟在",
      "top": 1126.0,
      "left": 204.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0162",
      "page": 4,
      "ordinal": 162,
      "text": " defer ",
      "top": 1126.0,
      "left": 336.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0163",
      "page": 4,
      "ordinal": 163,
      "text": "后面的函数会被延迟执行。",
      "top": 1126.0,
      "left": 380.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b003"
      }
    },
    {
      "id": "p004-t0164",
      "page": 4,
      "ordinal": 164,
      "text": "3. ",
      "top": 1157.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0165",
      "page": 4,
      "ordinal": 165,
      "text": "直到",
      "top": 1157.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0167",
      "page": 4,
      "ordinal": 167,
      "text": "包含该",
      "top": 1157.0,
      "left": 179.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0168",
      "page": 4,
      "ordinal": 168,
      "text": " defer ",
      "top": 1157.0,
      "left": 222.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0169",
      "page": 4,
      "ordinal": 169,
      "text": "语句的函数执行完毕时，",
      "top": 1157.0,
      "left": 266.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0170",
      "page": 4,
      "ordinal": 170,
      "text": "defer ",
      "top": 1157.0,
      "left": 427.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0171",
      "page": 4,
      "ordinal": 171,
      "text": "后的函数才会被执行，不论包含",
      "top": 1157.0,
      "left": 467.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0172",
      "page": 4,
      "ordinal": 172,
      "text": " defer ",
      "top": 1157.0,
      "left": 672.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0173",
      "page": 4,
      "ordinal": 173,
      "text": "语句的函",
      "top": 1157.0,
      "left": 716.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0174",
      "page": 4,
      "ordinal": 174,
      "text": "数是通过",
      "top": 1181.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0175",
      "page": 4,
      "ordinal": 175,
      "text": " return ",
      "top": 1181.0,
      "left": 204.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0176",
      "page": 4,
      "ordinal": 176,
      "text": "正常结束，还是由于",
      "top": 1181.0,
      "left": 255.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0177",
      "page": 4,
      "ordinal": 177,
      "text": " panic ",
      "top": 1181.0,
      "left": 386.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0178",
      "page": 4,
      "ordinal": 178,
      "text": "导致的异常结束。",
      "top": 1181.0,
      "left": 431.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b004"
      }
    },
    {
      "id": "p004-t0180",
      "page": 4,
      "ordinal": 180,
      "text": "func main() {",
      "top": 703.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0181",
      "page": 4,
      "ordinal": 181,
      "text": " arr := make([]int, 0)",
      "top": 725.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0182",
      "page": 4,
      "ordinal": 182,
      "text": " for i := 0; i < 2000; i++ {",
      "top": 745.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0183",
      "page": 4,
      "ordinal": 183,
      "text": " fmt.Println(\"len ",
      "top": 766.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0184",
      "page": 4,
      "ordinal": 184,
      "text": "为",
      "top": 765.0,
      "left": 269.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0185",
      "page": 4,
      "ordinal": 185,
      "text": "\", len(arr), \"cap ",
      "top": 766.0,
      "left": 282.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0186",
      "page": 4,
      "ordinal": 186,
      "text": "为",
      "top": 765.0,
      "left": 425.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0187",
      "page": 4,
      "ordinal": 187,
      "text": "\", cap(arr))",
      "top": 766.0,
      "left": 438.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0188",
      "page": 4,
      "ordinal": 188,
      "text": " arr = append(arr, i)",
      "top": 788.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0189",
      "page": 4,
      "ordinal": 189,
      "text": " }",
      "top": 809.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p004-t0190",
      "page": 4,
      "ordinal": 190,
      "text": "}",
      "top": 829.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p004-h03",
        "heading_id": "p004-h03",
        "block_id": "q-p004-h03-b001"
      }
    },
    {
      "id": "p005-t0001",
      "page": 5,
      "ordinal": 1,
      "text": "4. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b005"
      }
    },
    {
      "id": "p005-t0002",
      "page": 5,
      "ordinal": 2,
      "text": "你可以在一个函数中执行多条",
      "top": 44.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b005"
      }
    },
    {
      "id": "p005-t0003",
      "page": 5,
      "ordinal": 3,
      "text": " defer ",
      "top": 44.0,
      "left": 336.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b005"
      }
    },
    {
      "id": "p005-t0004",
      "page": 5,
      "ordinal": 4,
      "text": "语句，它们的执行顺序与声明顺序相反。",
      "top": 44.0,
      "left": 380.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b005"
      }
    },
    {
      "id": "p005-t0006",
      "page": 5,
      "ordinal": 6,
      "text": "defer ",
      "top": 78.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b006"
      }
    },
    {
      "id": "p005-t0007",
      "page": 5,
      "ordinal": 7,
      "text": "的常用场景：",
      "top": 78.0,
      "left": 152.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b006"
      }
    },
    {
      "id": "p005-t0009",
      "page": 5,
      "ordinal": 9,
      "text": "1. defer ",
      "top": 113.0,
      "left": 129.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b007"
      }
    },
    {
      "id": "p005-t0010",
      "page": 5,
      "ordinal": 10,
      "text": "语句经常被用于处理成对的操作，如打开、关闭、连接、断开连接、",
      "top": 113.0,
      "left": 186.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b007"
      }
    },
    {
      "id": "p005-t0012",
      "page": 5,
      "ordinal": 12,
      "text": "加锁、释放锁。",
      "top": 113.0,
      "left": 628.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b007"
      }
    },
    {
      "id": "p005-t0014",
      "page": 5,
      "ordinal": 14,
      "text": "2. ",
      "top": 145.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b008"
      }
    },
    {
      "id": "p005-t0015",
      "page": 5,
      "ordinal": 15,
      "text": "通过",
      "top": 145.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b008"
      }
    },
    {
      "id": "p005-t0016",
      "page": 5,
      "ordinal": 16,
      "text": " defer ",
      "top": 145.0,
      "left": 175.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b008"
      }
    },
    {
      "id": "p005-t0017",
      "page": 5,
      "ordinal": 17,
      "text": "机制，不论函数逻辑多复杂，都能保证在任何执行路径下，资",
      "top": 145.0,
      "left": 219.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b008"
      }
    },
    {
      "id": "p005-t0019",
      "page": 5,
      "ordinal": 19,
      "text": "源被释放。",
      "top": 145.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b008"
      }
    },
    {
      "id": "p005-t0021",
      "page": 5,
      "ordinal": 21,
      "text": "3. ",
      "top": 175.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b009"
      }
    },
    {
      "id": "p005-t0022",
      "page": 5,
      "ordinal": 22,
      "text": "释放资源的",
      "top": 175.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b009"
      }
    },
    {
      "id": "p005-t0023",
      "page": 5,
      "ordinal": 23,
      "text": " defer ",
      "top": 175.0,
      "left": 219.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b009"
      }
    },
    {
      "id": "p005-t0024",
      "page": 5,
      "ordinal": 24,
      "text": "应该直接跟在请求资源的语句后",
      "top": 175.0,
      "left": 263.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p004-h04",
        "heading_id": "p004-h04",
        "block_id": "q-p004-h04-b009"
      }
    },
    {
      "id": "p005-t0026",
      "page": 5,
      "ordinal": 26,
      "text": "Golang Slice ",
      "top": 210.0,
      "left": 112.0,
      "width": 160.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01"
      }
    },
    {
      "id": "p005-t0027",
      "page": 5,
      "ordinal": 27,
      "text": "的底层实现",
      "top": 210.0,
      "left": 272.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01"
      }
    },
    {
      "id": "p005-t0031",
      "page": 5,
      "ordinal": 31,
      "text": "切片是基于数组实现的，它的底层是数组，它自己本身非常小，可以理解为对",
      "top": 261.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0033",
      "page": 5,
      "ordinal": 33,
      "text": "底层数组的抽象。因为基",
      "top": 261.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0034",
      "page": 5,
      "ordinal": 34,
      "text": "于数组实现，所以它的底层的内存是连续分配的，效",
      "top": 283.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0036",
      "page": 5,
      "ordinal": 36,
      "text": "率非常高，还可以通过索引获得数据",
      "top": 283.0,
      "left": 452.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0038",
      "page": 5,
      "ordinal": 38,
      "text": "切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用",
      "top": 307.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0040",
      "page": 5,
      "ordinal": 40,
      "text": "底层数组，设定相关属性",
      "top": 307.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0041",
      "page": 5,
      "ordinal": 41,
      "text": "将数据读写操作限定在指定的区域内。切片本身是一",
      "top": 330.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0043",
      "page": 5,
      "ordinal": 43,
      "text": "个只读对象，其工作机制类似数组指针的一种封",
      "top": 330.0,
      "left": 452.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0044",
      "page": 5,
      "ordinal": 44,
      "text": "装。",
      "top": 354.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0046",
      "page": 5,
      "ordinal": 46,
      "text": "切片对象非常小，是因为它是只有",
      "top": 354.0,
      "left": 145.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0047",
      "page": 5,
      "ordinal": 47,
      "text": " 3 ",
      "top": 354.0,
      "left": 364.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0048",
      "page": 5,
      "ordinal": 48,
      "text": "个字段的数据结构：",
      "top": 354.0,
      "left": 380.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b001"
      }
    },
    {
      "id": "p005-t0050",
      "page": 5,
      "ordinal": 50,
      "text": "1. ",
      "top": 389.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b002"
      }
    },
    {
      "id": "p005-t0051",
      "page": 5,
      "ordinal": 51,
      "text": "指向底层数组的指针",
      "top": 389.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b002"
      }
    },
    {
      "id": "p005-t0053",
      "page": 5,
      "ordinal": 53,
      "text": "2. ",
      "top": 419.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b003"
      }
    },
    {
      "id": "p005-t0054",
      "page": 5,
      "ordinal": 54,
      "text": "切片的长度",
      "top": 419.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b003"
      }
    },
    {
      "id": "p005-t0056",
      "page": 5,
      "ordinal": 56,
      "text": "3. ",
      "top": 451.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b004"
      }
    },
    {
      "id": "p005-t0057",
      "page": 5,
      "ordinal": 57,
      "text": "切片的容量",
      "top": 451.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h01",
        "heading_id": "p005-h01",
        "block_id": "q-p005-h01-b004"
      }
    },
    {
      "id": "p005-t0059",
      "page": 5,
      "ordinal": 59,
      "text": "Golang Slice ",
      "top": 484.0,
      "left": 112.0,
      "width": 160.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02"
      }
    },
    {
      "id": "p005-t0060",
      "page": 5,
      "ordinal": 60,
      "text": "的扩容机制，有什么注意点？",
      "top": 484.0,
      "left": 272.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02"
      }
    },
    {
      "id": "p005-t0063",
      "page": 5,
      "ordinal": 63,
      "text": " Go ",
      "top": 535.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b001"
      }
    },
    {
      "id": "p005-t0064",
      "page": 5,
      "ordinal": 64,
      "text": "中切片扩容的策略是这样的：",
      "top": 535.0,
      "left": 139.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b001"
      }
    },
    {
      "id": "p005-t0066",
      "page": 5,
      "ordinal": 66,
      "text": "1. ",
      "top": 570.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b002"
      }
    },
    {
      "id": "p005-t0067",
      "page": 5,
      "ordinal": 67,
      "text": "首先判断，如果新申请容量大于",
      "top": 570.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b002"
      }
    },
    {
      "id": "p005-t0068",
      "page": 5,
      "ordinal": 68,
      "text": " 2 ",
      "top": 570.0,
      "left": 350.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b002"
      }
    },
    {
      "id": "p005-t0069",
      "page": 5,
      "ordinal": 69,
      "text": "倍的旧容量，最终容量就是新申请的容",
      "top": 570.0,
      "left": 366.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b002"
      }
    },
    {
      "id": "p005-t0071",
      "page": 5,
      "ordinal": 71,
      "text": "量",
      "top": 570.0,
      "left": 619.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b002"
      }
    },
    {
      "id": "p005-t0073",
      "page": 5,
      "ordinal": 73,
      "text": "2. ",
      "top": 602.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b003"
      }
    },
    {
      "id": "p005-t0074",
      "page": 5,
      "ordinal": 74,
      "text": "否则判断，如果旧切片的长度小于",
      "top": 602.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b003"
      }
    },
    {
      "id": "p005-t0075",
      "page": 5,
      "ordinal": 75,
      "text": " 1024",
      "top": 602.0,
      "left": 365.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b003"
      }
    },
    {
      "id": "p005-t0076",
      "page": 5,
      "ordinal": 76,
      "text": "，则最终容量就是旧容量的两倍",
      "top": 602.0,
      "left": 402.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b003"
      }
    },
    {
      "id": "p005-t0078",
      "page": 5,
      "ordinal": 78,
      "text": "3. ",
      "top": 632.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0079",
      "page": 5,
      "ordinal": 79,
      "text": "否则判断，如果旧切片长度大于等于",
      "top": 632.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0080",
      "page": 5,
      "ordinal": 80,
      "text": " 1024",
      "top": 632.0,
      "left": 380.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0081",
      "page": 5,
      "ordinal": 81,
      "text": "，则最终容量从旧容量开始循环",
      "top": 632.0,
      "left": 417.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0083",
      "page": 5,
      "ordinal": 83,
      "text": "增加原来的",
      "top": 632.0,
      "left": 625.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0084",
      "page": 5,
      "ordinal": 84,
      "text": " 1/4, ",
      "top": 632.0,
      "left": 698.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0085",
      "page": 5,
      "ordinal": 85,
      "text": "直到最",
      "top": 632.0,
      "left": 732.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0086",
      "page": 5,
      "ordinal": 86,
      "text": "终容量大于等于新申请的容量",
      "top": 656.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b004"
      }
    },
    {
      "id": "p005-t0088",
      "page": 5,
      "ordinal": 88,
      "text": "4. ",
      "top": 686.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b005"
      }
    },
    {
      "id": "p005-t0089",
      "page": 5,
      "ordinal": 89,
      "text": "如果最终容量计算值溢出，则最终容量就是新申请容量",
      "top": 686.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h02",
        "heading_id": "p005-h02",
        "block_id": "q-p005-h02-b005"
      }
    },
    {
      "id": "p005-t0091",
      "page": 5,
      "ordinal": 91,
      "text": "扩容前后的",
      "top": 721.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03"
      }
    },
    {
      "id": "p005-t0092",
      "page": 5,
      "ordinal": 92,
      "text": " Slice ",
      "top": 721.0,
      "left": 240.0,
      "width": 71.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03"
      }
    },
    {
      "id": "p005-t0093",
      "page": 5,
      "ordinal": 93,
      "text": "是否相同？",
      "top": 721.0,
      "left": 311.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03"
      }
    },
    {
      "id": "p005-t0097",
      "page": 5,
      "ordinal": 97,
      "text": "情况一：",
      "top": 771.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0099",
      "page": 5,
      "ordinal": 99,
      "text": "原数组还有容量可以扩容（实际容量没有填充完），这种情况下，扩容以后的",
      "top": 795.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0101",
      "page": 5,
      "ordinal": 101,
      "text": "数组还是指向原来的数",
      "top": 795.0,
      "left": 613.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0102",
      "page": 5,
      "ordinal": 102,
      "text": "组，对一个切片的操作可能影响多个指针指向相同地址",
      "top": 818.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0104",
      "page": 5,
      "ordinal": 104,
      "text": "的",
      "top": 818.0,
      "left": 467.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0105",
      "page": 5,
      "ordinal": 105,
      "text": " Slice",
      "top": 818.0,
      "left": 481.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0106",
      "page": 5,
      "ordinal": 106,
      "text": "。",
      "top": 818.0,
      "left": 516.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0108",
      "page": 5,
      "ordinal": 108,
      "text": "情况二：",
      "top": 841.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0110",
      "page": 5,
      "ordinal": 110,
      "text": "原来数组的容量已经达到了最大值，再想扩容，",
      "top": 841.0,
      "left": 178.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0111",
      "page": 5,
      "ordinal": 111,
      "text": " Go ",
      "top": 841.0,
      "left": 485.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0112",
      "page": 5,
      "ordinal": 112,
      "text": "默认会先开一片内存区",
      "top": 841.0,
      "left": 512.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0114",
      "page": 5,
      "ordinal": 114,
      "text": "域，把原来的值拷",
      "top": 841.0,
      "left": 662.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0115",
      "page": 5,
      "ordinal": 115,
      "text": "贝过来，然后再执行",
      "top": 865.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0116",
      "page": 5,
      "ordinal": 116,
      "text": " append() ",
      "top": 865.0,
      "left": 243.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0117",
      "page": 5,
      "ordinal": 117,
      "text": "操作。这种情况丝毫不影响",
      "top": 865.0,
      "left": 312.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0119",
      "page": 5,
      "ordinal": 119,
      "text": "原数组。",
      "top": 865.0,
      "left": 491.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0121",
      "page": 5,
      "ordinal": 121,
      "text": "要复制一个",
      "top": 865.0,
      "left": 553.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0122",
      "page": 5,
      "ordinal": 122,
      "text": " Slice",
      "top": 865.0,
      "left": 627.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0123",
      "page": 5,
      "ordinal": 123,
      "text": "，最好使用",
      "top": 865.0,
      "left": 661.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0124",
      "page": 5,
      "ordinal": 124,
      "text": " Copy ",
      "top": 865.0,
      "left": 734.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0125",
      "page": 5,
      "ordinal": 125,
      "text": "函数。",
      "top": 888.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h03",
        "heading_id": "p005-h03",
        "block_id": "q-p005-h03-b001"
      }
    },
    {
      "id": "p005-t0127",
      "page": 5,
      "ordinal": 127,
      "text": "Golang ",
      "top": 923.0,
      "left": 112.0,
      "width": 96.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04"
      }
    },
    {
      "id": "p005-t0128",
      "page": 5,
      "ordinal": 128,
      "text": "的参数传递、引用类型",
      "top": 923.0,
      "left": 207.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04"
      }
    },
    {
      "id": "p005-t0131",
      "page": 5,
      "ordinal": 131,
      "text": " Go ",
      "top": 973.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0132",
      "page": 5,
      "ordinal": 132,
      "text": "语言中所有的传参都是值传递（传值），都是一个副本，一个拷贝。因为拷",
      "top": 973.0,
      "left": 139.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0134",
      "page": 5,
      "ordinal": 134,
      "text": "贝的内容有时候是非引",
      "top": 973.0,
      "left": 625.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0135",
      "page": 5,
      "ordinal": 135,
      "text": "用类型（",
      "top": 996.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0136",
      "page": 5,
      "ordinal": 136,
      "text": "int",
      "top": 996.0,
      "left": 170.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0137",
      "page": 5,
      "ordinal": 137,
      "text": "、",
      "top": 996.0,
      "left": 188.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0138",
      "page": 5,
      "ordinal": 138,
      "text": "string",
      "top": 996.0,
      "left": 203.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0139",
      "page": 5,
      "ordinal": 139,
      "text": "、",
      "top": 996.0,
      "left": 242.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0140",
      "page": 5,
      "ordinal": 140,
      "text": "struct ",
      "top": 996.0,
      "left": 256.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0141",
      "page": 5,
      "ordinal": 141,
      "text": "等这些），这样就在函",
      "top": 996.0,
      "left": 299.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0143",
      "page": 5,
      "ordinal": 143,
      "text": "数中就无法修改原内容数据；有的是引用类型（指",
      "top": 996.0,
      "left": 449.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0144",
      "page": 5,
      "ordinal": 144,
      "text": "针、",
      "top": 1020.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0145",
      "page": 5,
      "ordinal": 145,
      "text": "map",
      "top": 1020.0,
      "left": 141.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0146",
      "page": 5,
      "ordinal": 146,
      "text": "、",
      "top": 1020.0,
      "left": 172.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0147",
      "page": 5,
      "ordinal": 147,
      "text": "slice",
      "top": 1020.0,
      "left": 186.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0148",
      "page": 5,
      "ordinal": 148,
      "text": "、",
      "top": 1020.0,
      "left": 216.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0149",
      "page": 5,
      "ordinal": 149,
      "text": "chan ",
      "top": 1020.0,
      "left": 230.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0150",
      "page": 5,
      "ordinal": 150,
      "text": "等这",
      "top": 1020.0,
      "left": 267.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0152",
      "page": 5,
      "ordinal": 152,
      "text": "些），这样就可以修改原内容数据。",
      "top": 1020.0,
      "left": 300.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0153",
      "page": 5,
      "ordinal": 153,
      "text": " Golang ",
      "top": 1020.0,
      "left": 534.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0154",
      "page": 5,
      "ordinal": 154,
      "text": "的引用类型包括",
      "top": 1020.0,
      "left": 590.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0155",
      "page": 5,
      "ordinal": 155,
      "text": " slice",
      "top": 1020.0,
      "left": 693.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0156",
      "page": 5,
      "ordinal": 156,
      "text": "、",
      "top": 1020.0,
      "left": 726.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0157",
      "page": 5,
      "ordinal": 157,
      "text": "map ",
      "top": 1020.0,
      "left": 741.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0158",
      "page": 5,
      "ordinal": 158,
      "text": "和",
      "top": 1044.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0159",
      "page": 5,
      "ordinal": 159,
      "text": " channel",
      "top": 1044.0,
      "left": 126.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0160",
      "page": 5,
      "ordinal": 160,
      "text": "。它们有复杂的内部结构，除",
      "top": 1044.0,
      "left": 184.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0162",
      "page": 5,
      "ordinal": 162,
      "text": "了申请内存外，还需要初始化相关属性。内置函数",
      "top": 1044.0,
      "left": 378.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0163",
      "page": 5,
      "ordinal": 163,
      "text": " new ",
      "top": 1044.0,
      "left": 700.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0164",
      "page": 5,
      "ordinal": 164,
      "text": "计算类",
      "top": 1044.0,
      "left": 736.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0165",
      "page": 5,
      "ordinal": 165,
      "text": "型大小，为其分",
      "top": 1067.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0167",
      "page": 5,
      "ordinal": 167,
      "text": "配零值内存，返回指针。而",
      "top": 1067.0,
      "left": 218.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0168",
      "page": 5,
      "ordinal": 168,
      "text": " make ",
      "top": 1067.0,
      "left": 393.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0169",
      "page": 5,
      "ordinal": 169,
      "text": "会被编译器翻译成具体的创建函数，由其分",
      "top": 1067.0,
      "left": 439.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0171",
      "page": 5,
      "ordinal": 171,
      "text": "配内存和",
      "top": 1067.0,
      "left": 720.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p005-t0172",
      "page": 5,
      "ordinal": 172,
      "text": "初始化成员结构，返回对象而非指针",
      "top": 1090.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p005-h04",
        "heading_id": "p005-h04",
        "block_id": "q-p005-h04-b001"
      }
    },
    {
      "id": "p006-t0001",
      "page": 6,
      "ordinal": 1,
      "text": "Golang Map ",
      "top": 40.0,
      "left": 112.0,
      "width": 158.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01"
      }
    },
    {
      "id": "p006-t0002",
      "page": 6,
      "ordinal": 2,
      "text": "底层实现",
      "top": 40.0,
      "left": 270.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01"
      }
    },
    {
      "id": "p006-t0005",
      "page": 6,
      "ordinal": 5,
      "text": " Golang ",
      "top": 91.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0006",
      "page": 6,
      "ordinal": 6,
      "text": "中",
      "top": 91.0,
      "left": 168.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0007",
      "page": 6,
      "ordinal": 7,
      "text": " map ",
      "top": 91.0,
      "left": 182.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0008",
      "page": 6,
      "ordinal": 8,
      "text": "的底层实现是一个散列表，因此实现",
      "top": 91.0,
      "left": 221.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0009",
      "page": 6,
      "ordinal": 9,
      "text": " map ",
      "top": 91.0,
      "left": 455.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0010",
      "page": 6,
      "ordinal": 10,
      "text": "的过程实际上就是实现",
      "top": 91.0,
      "left": 493.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0012",
      "page": 6,
      "ordinal": 12,
      "text": "散表的过程。在这个",
      "top": 91.0,
      "left": 643.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0013",
      "page": 6,
      "ordinal": 13,
      "text": "散列表中，主要出现的结构体有两个，一个叫",
      "top": 114.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0014",
      "page": 6,
      "ordinal": 14,
      "text": " hmap(a header for a go map)",
      "top": 114.0,
      "left": 404.0,
      "width": 203.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0015",
      "page": 6,
      "ordinal": 15,
      "text": "，一个叫",
      "top": 114.0,
      "left": 607.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0016",
      "page": 6,
      "ordinal": 16,
      "text": " bmap(a bucket ",
      "top": 114.0,
      "left": 666.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0017",
      "page": 6,
      "ordinal": 17,
      "text": "for a Go map",
      "top": 137.0,
      "left": 112.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0018",
      "page": 6,
      "ordinal": 18,
      "text": "，通常叫其",
      "top": 137.0,
      "left": 201.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0019",
      "page": 6,
      "ordinal": 19,
      "text": " bucket)",
      "top": 137.0,
      "left": 274.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0020",
      "page": 6,
      "ordinal": 20,
      "text": "。",
      "top": 137.0,
      "left": 328.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h01",
        "heading_id": "p006-h01",
        "block_id": "q-p006-h01-b001"
      }
    },
    {
      "id": "p006-t0022",
      "page": 6,
      "ordinal": 22,
      "text": "Golang Map ",
      "top": 172.0,
      "left": 112.0,
      "width": 158.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02"
      }
    },
    {
      "id": "p006-t0023",
      "page": 6,
      "ordinal": 23,
      "text": "如何扩容",
      "top": 172.0,
      "left": 270.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02"
      }
    },
    {
      "id": "p006-t0026",
      "page": 6,
      "ordinal": 26,
      "text": "1. ",
      "top": 222.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0027",
      "page": 6,
      "ordinal": 27,
      "text": "双倍扩容：扩容采取了一种称为",
      "top": 222.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0028",
      "page": 6,
      "ordinal": 28,
      "text": "“",
      "top": 222.0,
      "left": 350.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0029",
      "page": 6,
      "ordinal": 29,
      "text": "渐进式",
      "top": 222.0,
      "left": 355.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0030",
      "page": 6,
      "ordinal": 30,
      "text": "”",
      "top": 222.0,
      "left": 399.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0031",
      "page": 6,
      "ordinal": 31,
      "text": "的方式，原有的",
      "top": 222.0,
      "left": 404.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0032",
      "page": 6,
      "ordinal": 32,
      "text": " key ",
      "top": 222.0,
      "left": 507.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0033",
      "page": 6,
      "ordinal": 33,
      "text": "并不会一",
      "top": 222.0,
      "left": 538.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0035",
      "page": 6,
      "ordinal": 35,
      "text": "次性搬迁完毕，每次最多只",
      "top": 222.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0036",
      "page": 6,
      "ordinal": 36,
      "text": "会搬迁",
      "top": 246.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0037",
      "page": 6,
      "ordinal": 37,
      "text": " 2 ",
      "top": 246.0,
      "left": 189.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0038",
      "page": 6,
      "ordinal": 38,
      "text": "个",
      "top": 246.0,
      "left": 205.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0039",
      "page": 6,
      "ordinal": 39,
      "text": " bucket  ",
      "top": 246.0,
      "left": 220.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b001"
      }
    },
    {
      "id": "p006-t0040",
      "page": 6,
      "ordinal": 40,
      "text": "2. ",
      "top": 276.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0041",
      "page": 6,
      "ordinal": 41,
      "text": "等量扩容：重新排列，极端情况下，重新排列也解决不了，",
      "top": 276.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0042",
      "page": 6,
      "ordinal": 42,
      "text": "map ",
      "top": 276.0,
      "left": 526.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0043",
      "page": 6,
      "ordinal": 43,
      "text": "存储就会蜕",
      "top": 276.0,
      "left": 560.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0045",
      "page": 6,
      "ordinal": 45,
      "text": "变成链表，性能大大",
      "top": 276.0,
      "left": 637.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0046",
      "page": 6,
      "ordinal": 46,
      "text": "降低，此时哈希因子",
      "top": 300.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0047",
      "page": 6,
      "ordinal": 47,
      "text": " hash0 ",
      "top": 300.0,
      "left": 277.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0048",
      "page": 6,
      "ordinal": 48,
      "text": "的设置，可以降低此类极",
      "top": 300.0,
      "left": 326.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0050",
      "page": 6,
      "ordinal": 50,
      "text": "端场景的发生",
      "top": 300.0,
      "left": 491.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h02",
        "heading_id": "p006-h02",
        "block_id": "q-p006-h02-b002"
      }
    },
    {
      "id": "p006-t0052",
      "page": 6,
      "ordinal": 52,
      "text": "Golang Map ",
      "top": 335.0,
      "left": 112.0,
      "width": 158.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03"
      }
    },
    {
      "id": "p006-t0053",
      "page": 6,
      "ordinal": 53,
      "text": "查找",
      "top": 335.0,
      "left": 270.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03"
      }
    },
    {
      "id": "p006-t0056",
      "page": 6,
      "ordinal": 56,
      "text": "介绍一下",
      "top": 566.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04"
      }
    },
    {
      "id": "p006-t0057",
      "page": 6,
      "ordinal": 57,
      "text": " Channel  ",
      "top": 566.0,
      "left": 214.0,
      "width": 125.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04"
      }
    },
    {
      "id": "p006-t0059",
      "page": 6,
      "ordinal": 59,
      "text": " Go ",
      "top": 617.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0060",
      "page": 6,
      "ordinal": 60,
      "text": "语言中，不要通过共享内存来通信，而要通过通信来实现内存共享。",
      "top": 617.0,
      "left": 139.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0061",
      "page": 6,
      "ordinal": 61,
      "text": "Go ",
      "top": 617.0,
      "left": 578.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0062",
      "page": 6,
      "ordinal": 62,
      "text": "的",
      "top": 617.0,
      "left": 601.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0063",
      "page": 6,
      "ordinal": 63,
      "text": " CSP(Communicating ",
      "top": 617.0,
      "left": 615.0,
      "width": 146.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0064",
      "page": 6,
      "ordinal": 64,
      "text": "Sequential Process)",
      "top": 640.0,
      "left": 112.0,
      "width": 133.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0065",
      "page": 6,
      "ordinal": 65,
      "text": "并发模型，中文可以叫做通信顺序进",
      "top": 640.0,
      "left": 245.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0067",
      "page": 6,
      "ordinal": 67,
      "text": "程，是通过",
      "top": 640.0,
      "left": 482.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0068",
      "page": 6,
      "ordinal": 68,
      "text": " goroutine ",
      "top": 640.0,
      "left": 556.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0069",
      "page": 6,
      "ordinal": 69,
      "text": "和",
      "top": 640.0,
      "left": 630.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0070",
      "page": 6,
      "ordinal": 70,
      "text": " channel ",
      "top": 640.0,
      "left": 644.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0071",
      "page": 6,
      "ordinal": 71,
      "text": "来实现的。",
      "top": 640.0,
      "left": 706.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0073",
      "page": 6,
      "ordinal": 73,
      "text": "channel ",
      "top": 663.0,
      "left": 112.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0074",
      "page": 6,
      "ordinal": 74,
      "text": "收发遵循先进先出",
      "top": 663.0,
      "left": 169.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0075",
      "page": 6,
      "ordinal": 75,
      "text": " FIFO ",
      "top": 663.0,
      "left": 286.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0076",
      "page": 6,
      "ordinal": 76,
      "text": "的原则。分为有缓冲区和无缓冲区，",
      "top": 663.0,
      "left": 325.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0077",
      "page": 6,
      "ordinal": 77,
      "text": "channel ",
      "top": 663.0,
      "left": 559.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0078",
      "page": 6,
      "ordinal": 78,
      "text": "中包括",
      "top": 663.0,
      "left": 616.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0079",
      "page": 6,
      "ordinal": 79,
      "text": " buffer",
      "top": 663.0,
      "left": 660.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0080",
      "page": 6,
      "ordinal": 80,
      "text": "、",
      "top": 663.0,
      "left": 706.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0081",
      "page": 6,
      "ordinal": 81,
      "text": "sendx ",
      "top": 663.0,
      "left": 721.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0082",
      "page": 6,
      "ordinal": 82,
      "text": "和",
      "top": 663.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0084",
      "page": 6,
      "ordinal": 84,
      "text": "recvx ",
      "top": 687.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0085",
      "page": 6,
      "ordinal": 85,
      "text": "收发的位置",
      "top": 687.0,
      "left": 152.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0086",
      "page": 6,
      "ordinal": 86,
      "text": "(ring buffer ",
      "top": 687.0,
      "left": 225.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0087",
      "page": 6,
      "ordinal": 87,
      "text": "记录实现",
      "top": 687.0,
      "left": 305.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0088",
      "page": 6,
      "ordinal": 88,
      "text": ")",
      "top": 687.0,
      "left": 364.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0089",
      "page": 6,
      "ordinal": 89,
      "text": "、",
      "top": 687.0,
      "left": 368.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0090",
      "page": 6,
      "ordinal": 90,
      "text": "sendq",
      "top": 687.0,
      "left": 383.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0091",
      "page": 6,
      "ordinal": 91,
      "text": "、",
      "top": 687.0,
      "left": 425.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0092",
      "page": 6,
      "ordinal": 92,
      "text": " recv",
      "top": 687.0,
      "left": 440.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0093",
      "page": 6,
      "ordinal": 93,
      "text": "。当",
      "top": 687.0,
      "left": 472.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0094",
      "page": 6,
      "ordinal": 94,
      "text": " channel ",
      "top": 687.0,
      "left": 501.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0095",
      "page": 6,
      "ordinal": 95,
      "text": "因为缓冲区不足而阻塞了队列，则",
      "top": 687.0,
      "left": 563.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0096",
      "page": 6,
      "ordinal": 96,
      "text": "使用双向链表存储",
      "top": 711.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h04",
        "heading_id": "p006-h04",
        "block_id": "q-p006-h04-b001"
      }
    },
    {
      "id": "p006-t0098",
      "page": 6,
      "ordinal": 98,
      "text": "Channel ",
      "top": 745.0,
      "left": 112.0,
      "width": 112.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05"
      }
    },
    {
      "id": "p006-t0099",
      "page": 6,
      "ordinal": 99,
      "text": "的",
      "top": 745.0,
      "left": 224.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05"
      }
    },
    {
      "id": "p006-t0100",
      "page": 6,
      "ordinal": 100,
      "text": " ring buffer ",
      "top": 745.0,
      "left": 249.0,
      "width": 150.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05"
      }
    },
    {
      "id": "p006-t0101",
      "page": 6,
      "ordinal": 101,
      "text": "实现",
      "top": 745.0,
      "left": 399.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05"
      }
    },
    {
      "id": "p006-t0104",
      "page": 6,
      "ordinal": 104,
      "text": " channel ",
      "top": 795.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0105",
      "page": 6,
      "ordinal": 105,
      "text": "中使用了",
      "top": 795.0,
      "left": 173.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0106",
      "page": 6,
      "ordinal": 106,
      "text": " ring buffer",
      "top": 795.0,
      "left": 232.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0107",
      "page": 6,
      "ordinal": 107,
      "text": "（环形缓冲区",
      "top": 795.0,
      "left": 308.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0108",
      "page": 6,
      "ordinal": 108,
      "text": ") ",
      "top": 795.0,
      "left": 396.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0109",
      "page": 6,
      "ordinal": 109,
      "text": "来缓存写入的数据。",
      "top": 795.0,
      "left": 404.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0110",
      "page": 6,
      "ordinal": 110,
      "text": "ring buffer ",
      "top": 795.0,
      "left": 536.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0111",
      "page": 6,
      "ordinal": 111,
      "text": "有很多好处，而且非常适",
      "top": 795.0,
      "left": 612.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0112",
      "page": 6,
      "ordinal": 112,
      "text": "合用来实现",
      "top": 819.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0113",
      "page": 6,
      "ordinal": 113,
      "text": " FIFO ",
      "top": 819.0,
      "left": 185.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0114",
      "page": 6,
      "ordinal": 114,
      "text": "式的固定长度队列。",
      "top": 819.0,
      "left": 223.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0116",
      "page": 6,
      "ordinal": 116,
      "text": "在",
      "top": 819.0,
      "left": 358.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0117",
      "page": 6,
      "ordinal": 117,
      "text": " channel ",
      "top": 819.0,
      "left": 373.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0118",
      "page": 6,
      "ordinal": 118,
      "text": "中，",
      "top": 819.0,
      "left": 435.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0119",
      "page": 6,
      "ordinal": 119,
      "text": "ring buffer ",
      "top": 819.0,
      "left": 464.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0120",
      "page": 6,
      "ordinal": 120,
      "text": "的实现如下：",
      "top": 819.0,
      "left": 540.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b001"
      }
    },
    {
      "id": "p006-t0121",
      "page": 6,
      "ordinal": 121,
      "text": "上图展示的是一个缓冲区为",
      "top": 1180.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0122",
      "page": 6,
      "ordinal": 122,
      "text": " 8 ",
      "top": 1180.0,
      "left": 287.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0123",
      "page": 6,
      "ordinal": 123,
      "text": "的",
      "top": 1180.0,
      "left": 303.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0124",
      "page": 6,
      "ordinal": 124,
      "text": " channel buffer",
      "top": 1180.0,
      "left": 318.0,
      "width": 104.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0125",
      "page": 6,
      "ordinal": 125,
      "text": "，",
      "top": 1180.0,
      "left": 421.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0126",
      "page": 6,
      "ordinal": 126,
      "text": "recvx ",
      "top": 1180.0,
      "left": 436.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0127",
      "page": 6,
      "ordinal": 127,
      "text": "指向最早被读取的数",
      "top": 1180.0,
      "left": 476.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0129",
      "page": 6,
      "ordinal": 129,
      "text": "据，",
      "top": 1180.0,
      "left": 611.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0130",
      "page": 6,
      "ordinal": 130,
      "text": "sendx ",
      "top": 1180.0,
      "left": 641.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0131",
      "page": 6,
      "ordinal": 131,
      "text": "指向再次写入",
      "top": 1180.0,
      "left": 685.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p006-t0132",
      "page": 6,
      "ordinal": 132,
      "text": "Go ",
      "top": 399.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0133",
      "page": 6,
      "ordinal": 133,
      "text": "语言中",
      "top": 399.0,
      "left": 150.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0134",
      "page": 6,
      "ordinal": 134,
      "text": " map ",
      "top": 399.0,
      "left": 190.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0135",
      "page": 6,
      "ordinal": 135,
      "text": "采用的是哈希查找表，由一个",
      "top": 399.0,
      "left": 229.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0136",
      "page": 6,
      "ordinal": 136,
      "text": " key ",
      "top": 399.0,
      "left": 400.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0137",
      "page": 6,
      "ordinal": 137,
      "text": "通过哈希函数得到哈希值，",
      "top": 399.0,
      "left": 440.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0138",
      "page": 6,
      "ordinal": 138,
      "text": "64 ",
      "top": 399.0,
      "left": 598.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0139",
      "page": 6,
      "ordinal": 139,
      "text": "位系统中就生成一个",
      "top": 399.0,
      "left": 622.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0141",
      "page": 6,
      "ordinal": 141,
      "text": "64bit ",
      "top": 420.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0142",
      "page": 6,
      "ordinal": 142,
      "text": "的哈希值，由这个哈希值将",
      "top": 419.0,
      "left": 174.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0143",
      "page": 6,
      "ordinal": 143,
      "text": " key ",
      "top": 420.0,
      "left": 332.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0144",
      "page": 6,
      "ordinal": 144,
      "text": "对应存到不同的桶",
      "top": 419.0,
      "left": 372.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0146",
      "page": 6,
      "ordinal": 146,
      "text": "（",
      "top": 419.0,
      "left": 485.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0147",
      "page": 6,
      "ordinal": 147,
      "text": "bucket",
      "top": 420.0,
      "left": 498.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0148",
      "page": 6,
      "ordinal": 148,
      "text": "）中，当有多个哈希映射到相同的的桶",
      "top": 419.0,
      "left": 546.0,
      "width": 224.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0149",
      "page": 6,
      "ordinal": 149,
      "text": "中时，使用链表解决哈希冲",
      "top": 440.0,
      "left": 126.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0151",
      "page": 6,
      "ordinal": 151,
      "text": "突。",
      "top": 440.0,
      "left": 292.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0153",
      "page": 6,
      "ordinal": 153,
      "text": "细节：",
      "top": 440.0,
      "left": 327.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0154",
      "page": 6,
      "ordinal": 154,
      "text": "key ",
      "top": 441.0,
      "left": 366.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0155",
      "page": 6,
      "ordinal": 155,
      "text": "经过",
      "top": 440.0,
      "left": 398.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0156",
      "page": 6,
      "ordinal": 156,
      "text": " hash ",
      "top": 441.0,
      "left": 424.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0157",
      "page": 6,
      "ordinal": 157,
      "text": "后共",
      "top": 440.0,
      "left": 472.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0158",
      "page": 6,
      "ordinal": 158,
      "text": " 64 ",
      "top": 441.0,
      "left": 498.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0159",
      "page": 6,
      "ordinal": 159,
      "text": "位，根据",
      "top": 440.0,
      "left": 530.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0160",
      "page": 6,
      "ordinal": 160,
      "text": " hmap ",
      "top": 441.0,
      "left": 582.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0161",
      "page": 6,
      "ordinal": 161,
      "text": "中",
      "top": 440.0,
      "left": 630.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0162",
      "page": 6,
      "ordinal": 162,
      "text": " B ",
      "top": 441.0,
      "left": 643.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0163",
      "page": 6,
      "ordinal": 163,
      "text": "的值，计算它到",
      "top": 440.0,
      "left": 667.0,
      "width": 92.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0164",
      "page": 6,
      "ordinal": 164,
      "text": "底要落在哪个",
      "top": 462.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0166",
      "page": 6,
      "ordinal": 166,
      "text": "桶时，桶的数量为",
      "top": 462.0,
      "left": 213.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0167",
      "page": 6,
      "ordinal": 167,
      "text": " 2^B",
      "top": 462.0,
      "left": 319.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0168",
      "page": 6,
      "ordinal": 168,
      "text": "，如",
      "top": 462.0,
      "left": 350.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0169",
      "page": 6,
      "ordinal": 169,
      "text": " B=5",
      "top": 462.0,
      "left": 377.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0170",
      "page": 6,
      "ordinal": 170,
      "text": "，那么用",
      "top": 462.0,
      "left": 408.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0171",
      "page": 6,
      "ordinal": 171,
      "text": " 64 ",
      "top": 462.0,
      "left": 461.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0172",
      "page": 6,
      "ordinal": 172,
      "text": "位最后",
      "top": 462.0,
      "left": 493.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0173",
      "page": 6,
      "ordinal": 173,
      "text": " 5 ",
      "top": 462.0,
      "left": 532.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0174",
      "page": 6,
      "ordinal": 174,
      "text": "位表示第几号桶，在用",
      "top": 462.0,
      "left": 556.0,
      "width": 132.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0175",
      "page": 6,
      "ordinal": 175,
      "text": " hash ",
      "top": 462.0,
      "left": 688.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0176",
      "page": 6,
      "ordinal": 176,
      "text": "值的",
      "top": 462.0,
      "left": 735.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0177",
      "page": 6,
      "ordinal": 177,
      "text": "高",
      "top": 483.0,
      "left": 126.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0178",
      "page": 6,
      "ordinal": 178,
      "text": " 8 ",
      "top": 484.0,
      "left": 140.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0179",
      "page": 6,
      "ordinal": 179,
      "text": "位确定在",
      "top": 483.0,
      "left": 163.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0180",
      "page": 6,
      "ordinal": 180,
      "text": " bucket ",
      "top": 484.0,
      "left": 216.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0181",
      "page": 6,
      "ordinal": 181,
      "text": "中的存储位置，当前",
      "top": 483.0,
      "left": 279.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0182",
      "page": 6,
      "ordinal": 182,
      "text": " bmap ",
      "top": 484.0,
      "left": 398.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0183",
      "page": 6,
      "ordinal": 183,
      "text": "中的",
      "top": 483.0,
      "left": 445.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0184",
      "page": 6,
      "ordinal": 184,
      "text": " bucket ",
      "top": 484.0,
      "left": 472.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0185",
      "page": 6,
      "ordinal": 185,
      "text": "未找",
      "top": 483.0,
      "left": 535.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0187",
      "page": 6,
      "ordinal": 187,
      "text": "到，则查询对应的",
      "top": 483.0,
      "left": 570.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0188",
      "page": 6,
      "ordinal": 188,
      "text": " overflow ",
      "top": 484.0,
      "left": 675.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0189",
      "page": 6,
      "ordinal": 189,
      "text": "bucket",
      "top": 504.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0190",
      "page": 6,
      "ordinal": 190,
      "text": "，对应位置有数据则对比完整的哈希值，",
      "top": 503.0,
      "left": 174.0,
      "width": 237.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0192",
      "page": 6,
      "ordinal": 192,
      "text": "确定是否是要查找的数据。如果当前",
      "top": 503.0,
      "left": 419.0,
      "width": 211.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0193",
      "page": 6,
      "ordinal": 193,
      "text": " map ",
      "top": 504.0,
      "left": 629.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0194",
      "page": 6,
      "ordinal": 194,
      "text": "处于数据搬移状",
      "top": 503.0,
      "left": 669.0,
      "width": 92.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0195",
      "page": 6,
      "ordinal": 195,
      "text": "态，则优先从",
      "top": 525.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0196",
      "page": 6,
      "ordinal": 196,
      "text": " oldbuckets ",
      "top": 525.0,
      "left": 205.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p006-t0197",
      "page": 6,
      "ordinal": 197,
      "text": "查找。",
      "top": 525.0,
      "left": 301.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p006-h03",
        "heading_id": "p006-h03",
        "block_id": "q-p006-h03-b001"
      }
    },
    {
      "id": "p007-t0001",
      "page": 7,
      "ordinal": 1,
      "text": "时插入的位置。",
      "top": 44.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p006-h05",
        "heading_id": "p006-h05",
        "block_id": "q-p006-h05-b003"
      }
    },
    {
      "id": "p007-t0003",
      "page": 7,
      "ordinal": 3,
      "text": "for",
      "top": 78.0,
      "left": 112.0,
      "width": 37.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0004",
      "page": 7,
      "ordinal": 4,
      "text": "循环",
      "top": 78.0,
      "left": 149.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0005",
      "page": 7,
      "ordinal": 5,
      "text": "select",
      "top": 78.0,
      "left": 200.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0006",
      "page": 7,
      "ordinal": 6,
      "text": "时，如果通道已经关闭会怎么样？如果",
      "top": 78.0,
      "left": 275.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0007",
      "page": 7,
      "ordinal": 7,
      "text": "select",
      "top": 110.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0008",
      "page": 7,
      "ordinal": 8,
      "text": "中的",
      "top": 110.0,
      "left": 187.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0009",
      "page": 7,
      "ordinal": 9,
      "text": "case",
      "top": 110.0,
      "left": 238.0,
      "width": 56.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0010",
      "page": 7,
      "ordinal": 10,
      "text": "只有一个，又会怎么样？",
      "top": 110.0,
      "left": 294.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01"
      }
    },
    {
      "id": "p007-t0012",
      "page": 7,
      "ordinal": 12,
      "text": "1. for",
      "top": 161.0,
      "left": 129.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0013",
      "page": 7,
      "ordinal": 13,
      "text": "循环",
      "top": 161.0,
      "left": 165.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0014",
      "page": 7,
      "ordinal": 14,
      "text": "select",
      "top": 161.0,
      "left": 195.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0015",
      "page": 7,
      "ordinal": 15,
      "text": "时，如果其中一个",
      "top": 161.0,
      "left": 234.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0016",
      "page": 7,
      "ordinal": 16,
      "text": "case",
      "top": 161.0,
      "left": 351.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0017",
      "page": 7,
      "ordinal": 17,
      "text": "通道已经关闭，则每次都会执行到这个",
      "top": 161.0,
      "left": 381.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0018",
      "page": 7,
      "ordinal": 18,
      "text": "case",
      "top": 161.0,
      "left": 630.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0019",
      "page": 7,
      "ordinal": 19,
      "text": "。",
      "top": 161.0,
      "left": 660.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b001"
      }
    },
    {
      "id": "p007-t0020",
      "page": 7,
      "ordinal": 20,
      "text": "2. ",
      "top": 191.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0021",
      "page": 7,
      "ordinal": 21,
      "text": "如果",
      "top": 191.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0022",
      "page": 7,
      "ordinal": 22,
      "text": "select",
      "top": 191.0,
      "left": 175.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0023",
      "page": 7,
      "ordinal": 23,
      "text": "里边只有一个",
      "top": 191.0,
      "left": 214.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0024",
      "page": 7,
      "ordinal": 24,
      "text": "case",
      "top": 191.0,
      "left": 302.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0025",
      "page": 7,
      "ordinal": 25,
      "text": "，而这个",
      "top": 191.0,
      "left": 332.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0026",
      "page": 7,
      "ordinal": 26,
      "text": "case",
      "top": 191.0,
      "left": 390.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0027",
      "page": 7,
      "ordinal": 27,
      "text": "被关闭了，则会出现死循环。",
      "top": 191.0,
      "left": 421.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p007-h01",
        "heading_id": "p007-h01",
        "block_id": "q-p007-h01-b002"
      }
    },
    {
      "id": "p007-t0028",
      "page": 7,
      "ordinal": 28,
      "text": "代码分析",
      "top": 225.0,
      "left": 112.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h02"
      }
    },
    {
      "id": "p007-t0030",
      "page": 7,
      "ordinal": 30,
      "text": "下⾯的代码是有问题的，请说明原因",
      "top": 281.0,
      "left": 112.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03"
      }
    },
    {
      "id": "p007-t0034",
      "page": 7,
      "ordinal": 34,
      "text": "解析：",
      "top": 579.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0036",
      "page": 7,
      "ordinal": 36,
      "text": "在",
      "top": 579.0,
      "left": 163.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0037",
      "page": 7,
      "ordinal": 37,
      "text": "golang",
      "top": 579.0,
      "left": 178.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0038",
      "page": 7,
      "ordinal": 38,
      "text": "中",
      "top": 579.0,
      "left": 224.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0039",
      "page": 7,
      "ordinal": 39,
      "text": " String() string ",
      "top": 579.0,
      "left": 238.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0040",
      "page": 7,
      "ordinal": 40,
      "text": "⽅法实际上是实现了",
      "top": 579.0,
      "left": 337.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0041",
      "page": 7,
      "ordinal": 41,
      "text": " String ",
      "top": 579.0,
      "left": 468.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0042",
      "page": 7,
      "ordinal": 42,
      "text": "的接⼝的，该接⼝定义在",
      "top": 579.0,
      "left": 516.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0043",
      "page": 7,
      "ordinal": 43,
      "text": " fmt/print.go ",
      "top": 579.0,
      "left": 677.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0044",
      "page": 7,
      "ordinal": 44,
      "text": "中：",
      "top": 603.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b002"
      }
    },
    {
      "id": "p007-t0046",
      "page": 7,
      "ordinal": 46,
      "text": "交替打印数字和字⺟",
      "top": 814.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04"
      }
    },
    {
      "id": "p007-t0049",
      "page": 7,
      "ordinal": 49,
      "text": "1. ",
      "top": 865.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b001"
      }
    },
    {
      "id": "p007-t0050",
      "page": 7,
      "ordinal": 50,
      "text": "问题描述",
      "top": 865.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b001"
      }
    },
    {
      "id": "p007-t0052",
      "page": 7,
      "ordinal": 52,
      "text": "使⽤两个",
      "top": 900.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0053",
      "page": 7,
      "ordinal": 53,
      "text": "  goroutine ",
      "top": 900.0,
      "left": 170.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0054",
      "page": 7,
      "ordinal": 54,
      "text": "交替打印序列，⼀个",
      "top": 900.0,
      "left": 248.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0055",
      "page": 7,
      "ordinal": 55,
      "text": "  goroutine ",
      "top": 900.0,
      "left": 380.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0056",
      "page": 7,
      "ordinal": 56,
      "text": "打印数字，",
      "top": 900.0,
      "left": 458.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0058",
      "page": 7,
      "ordinal": 58,
      "text": "另外⼀",
      "top": 900.0,
      "left": 535.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0060",
      "page": 7,
      "ordinal": 60,
      "text": "个",
      "top": 900.0,
      "left": 583.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0061",
      "page": 7,
      "ordinal": 61,
      "text": "  goroutine ",
      "top": 900.0,
      "left": 597.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0062",
      "page": 7,
      "ordinal": 62,
      "text": "打印字⺟，",
      "top": 900.0,
      "left": 675.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0064",
      "page": 7,
      "ordinal": 64,
      "text": "最终",
      "top": 900.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0065",
      "page": 7,
      "ordinal": 65,
      "text": "效果如下：",
      "top": 923.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b002"
      }
    },
    {
      "id": "p007-t0067",
      "page": 7,
      "ordinal": 67,
      "text": "2. ",
      "top": 1019.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b004"
      }
    },
    {
      "id": "p007-t0068",
      "page": 7,
      "ordinal": 68,
      "text": "解题思路",
      "top": 1019.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b004"
      }
    },
    {
      "id": "p007-t0069",
      "page": 7,
      "ordinal": 69,
      "text": "问题很简单，使⽤",
      "top": 1054.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0070",
      "page": 7,
      "ordinal": 70,
      "text": " channel ",
      "top": 1054.0,
      "left": 229.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0071",
      "page": 7,
      "ordinal": 71,
      "text": "来控制打印的进度。使⽤两个",
      "top": 1054.0,
      "left": 290.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0072",
      "page": 7,
      "ordinal": 72,
      "text": " channel ",
      "top": 1054.0,
      "left": 480.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0073",
      "page": 7,
      "ordinal": 73,
      "text": "，来分别控制数字和",
      "top": 1054.0,
      "left": 542.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0075",
      "page": 7,
      "ordinal": 75,
      "text": "字⺟的打印序",
      "top": 1054.0,
      "left": 677.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0076",
      "page": 7,
      "ordinal": 76,
      "text": "列，",
      "top": 1077.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0078",
      "page": 7,
      "ordinal": 78,
      "text": "数字打印完成后通过",
      "top": 1077.0,
      "left": 145.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0079",
      "page": 7,
      "ordinal": 79,
      "text": " channel ",
      "top": 1077.0,
      "left": 276.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0080",
      "page": 7,
      "ordinal": 80,
      "text": "通知字⺟打印",
      "top": 1077.0,
      "left": 338.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0081",
      "page": 7,
      "ordinal": 81,
      "text": ", ",
      "top": 1077.0,
      "left": 426.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0082",
      "page": 7,
      "ordinal": 82,
      "text": "字⺟打印完成后通知数",
      "top": 1077.0,
      "left": 433.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0084",
      "page": 7,
      "ordinal": 84,
      "text": "字打印，然后周⽽复始的⼯",
      "top": 1077.0,
      "left": 583.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0085",
      "page": 7,
      "ordinal": 85,
      "text": "作。",
      "top": 1101.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b005"
      }
    },
    {
      "id": "p007-t0086",
      "page": 7,
      "ordinal": 86,
      "text": "3. ",
      "top": 1136.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b006"
      }
    },
    {
      "id": "p007-t0087",
      "page": 7,
      "ordinal": 87,
      "text": "源码参考",
      "top": 1136.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b006"
      }
    },
    {
      "id": "p007-t0088",
      "page": 7,
      "ordinal": 88,
      "text": "type People struct { ",
      "top": 345.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0089",
      "page": 7,
      "ordinal": 89,
      "text": "Name string",
      "top": 366.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0090",
      "page": 7,
      "ordinal": 90,
      "text": "}",
      "top": 387.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0091",
      "page": 7,
      "ordinal": 91,
      "text": " func (p *People) String() string { ",
      "top": 408.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0092",
      "page": 7,
      "ordinal": 92,
      "text": "return fmt.Sprintf(\"print: %v\", p)",
      "top": 429.0,
      "left": 126.0,
      "width": 270.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0093",
      "page": 7,
      "ordinal": 93,
      "text": "}",
      "top": 450.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0094",
      "page": 7,
      "ordinal": 94,
      "text": " func main() { ",
      "top": 471.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0095",
      "page": 7,
      "ordinal": 95,
      "text": " p := &People{}",
      "top": 493.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0096",
      "page": 7,
      "ordinal": 96,
      "text": " p.String()",
      "top": 513.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0097",
      "page": 7,
      "ordinal": 97,
      "text": " }",
      "top": 534.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b001"
      }
    },
    {
      "id": "p007-t0098",
      "page": 7,
      "ordinal": 98,
      "text": "type Stringer interface {",
      "top": 654.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b003"
      }
    },
    {
      "id": "p007-t0099",
      "page": 7,
      "ordinal": 99,
      "text": "String() string",
      "top": 675.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b003"
      }
    },
    {
      "id": "p007-t0100",
      "page": 7,
      "ordinal": 100,
      "text": "}",
      "top": 696.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b003"
      }
    },
    {
      "id": "p007-t0101",
      "page": 7,
      "ordinal": 101,
      "text": "在使",
      "top": 752.0,
      "left": 126.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0102",
      "page": 7,
      "ordinal": 102,
      "text": "⽤",
      "top": 749.0,
      "left": 153.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0103",
      "page": 7,
      "ordinal": 103,
      "text": "  fmt ",
      "top": 753.0,
      "left": 166.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0104",
      "page": 7,
      "ordinal": 104,
      "text": "包中的打印",
      "top": 752.0,
      "left": 213.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0105",
      "page": 7,
      "ordinal": 105,
      "text": "⽅",
      "top": 749.0,
      "left": 279.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0106",
      "page": 7,
      "ordinal": 106,
      "text": "法时，如果类型实现了这个接",
      "top": 752.0,
      "left": 292.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0107",
      "page": 7,
      "ordinal": 107,
      "text": "⼝",
      "top": 749.0,
      "left": 464.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0108",
      "page": 7,
      "ordinal": 108,
      "text": "，会直接调",
      "top": 752.0,
      "left": 477.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0109",
      "page": 7,
      "ordinal": 109,
      "text": "⽤",
      "top": 749.0,
      "left": 543.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0110",
      "page": 7,
      "ordinal": 110,
      "text": "。",
      "top": 752.0,
      "left": 556.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0111",
      "page": 7,
      "ordinal": 111,
      "text": "⽽",
      "top": 749.0,
      "left": 569.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0112",
      "page": 7,
      "ordinal": 112,
      "text": "题",
      "top": 752.0,
      "left": 582.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0113",
      "page": 7,
      "ordinal": 113,
      "text": "⽬",
      "top": 749.0,
      "left": 595.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0114",
      "page": 7,
      "ordinal": 114,
      "text": "中打",
      "top": 752.0,
      "left": 608.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0116",
      "page": 7,
      "ordinal": 116,
      "text": "印",
      "top": 752.0,
      "left": 643.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0117",
      "page": 7,
      "ordinal": 117,
      "text": "  p ",
      "top": 753.0,
      "left": 656.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0118",
      "page": 7,
      "ordinal": 118,
      "text": "的时候会直接",
      "top": 752.0,
      "left": 687.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0119",
      "page": 7,
      "ordinal": 119,
      "text": "调",
      "top": 772.0,
      "left": 126.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0120",
      "page": 7,
      "ordinal": 120,
      "text": "⽤",
      "top": 770.0,
      "left": 140.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0121",
      "page": 7,
      "ordinal": 121,
      "text": "  p ",
      "top": 773.0,
      "left": 153.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0122",
      "page": 7,
      "ordinal": 122,
      "text": "实现的",
      "top": 772.0,
      "left": 184.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0123",
      "page": 7,
      "ordinal": 123,
      "text": "  String() ",
      "top": 773.0,
      "left": 224.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0124",
      "page": 7,
      "ordinal": 124,
      "text": "⽅",
      "top": 770.0,
      "left": 311.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0125",
      "page": 7,
      "ordinal": 125,
      "text": "法，然后就产",
      "top": 772.0,
      "left": 324.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0126",
      "page": 7,
      "ordinal": 126,
      "text": "⽣",
      "top": 770.0,
      "left": 403.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0127",
      "page": 7,
      "ordinal": 127,
      "text": "了循环调",
      "top": 772.0,
      "left": 416.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0128",
      "page": 7,
      "ordinal": 128,
      "text": "⽤",
      "top": 770.0,
      "left": 469.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h03",
        "heading_id": "p007-h03",
        "block_id": "q-p007-h03-b004"
      }
    },
    {
      "id": "p007-t0130",
      "page": 7,
      "ordinal": 130,
      "text": "12AB34CD56EF78GH910IJ1112KL1314MN1516OP1718QR1920ST2122UV2324WX2526YZ2728",
      "top": 975.0,
      "left": 126.0,
      "width": 579.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b003"
      }
    },
    {
      "id": "p007-t0131",
      "page": 7,
      "ordinal": 131,
      "text": "letter, number := make(chan bool), make(chan bool)",
      "top": 1188.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0001",
      "page": 8,
      "ordinal": 1,
      "text": "4. ",
      "top": 1016.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b008"
      }
    },
    {
      "id": "p008-t0002",
      "page": 8,
      "ordinal": 2,
      "text": "源码解析",
      "top": 1016.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b008"
      }
    },
    {
      "id": "p008-t0004",
      "page": 8,
      "ordinal": 4,
      "text": "这⾥⽤到了两个",
      "top": 1052.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0005",
      "page": 8,
      "ordinal": 5,
      "text": " channel ",
      "top": 1052.0,
      "left": 214.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0006",
      "page": 8,
      "ordinal": 6,
      "text": "负责通知，",
      "top": 1052.0,
      "left": 276.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0007",
      "page": 8,
      "ordinal": 7,
      "text": "letter",
      "top": 1052.0,
      "left": 349.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0008",
      "page": 8,
      "ordinal": 8,
      "text": "负责通知打印字⺟的",
      "top": 1052.0,
      "left": 385.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0009",
      "page": 8,
      "ordinal": 9,
      "text": "goroutine",
      "top": 1052.0,
      "left": 517.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0010",
      "page": 8,
      "ordinal": 10,
      "text": "来打印字⺟，",
      "top": 1052.0,
      "left": 583.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0011",
      "page": 8,
      "ordinal": 11,
      "text": " number",
      "top": 1052.0,
      "left": 671.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0012",
      "page": 8,
      "ordinal": 12,
      "text": "⽤来通",
      "top": 1052.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0013",
      "page": 8,
      "ordinal": 13,
      "text": "知打印数字的",
      "top": 1074.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0014",
      "page": 8,
      "ordinal": 14,
      "text": "goroutine",
      "top": 1074.0,
      "left": 200.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0015",
      "page": 8,
      "ordinal": 15,
      "text": "打印数字。",
      "top": 1074.0,
      "left": 266.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0016",
      "page": 8,
      "ordinal": 16,
      "text": " wait",
      "top": 1074.0,
      "left": 339.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0017",
      "page": 8,
      "ordinal": 17,
      "text": "⽤来等待字⺟打印完成后退出循环。",
      "top": 1074.0,
      "left": 371.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b009"
      }
    },
    {
      "id": "p008-t0019",
      "page": 8,
      "ordinal": 19,
      "text": "    wait := sync.WaitGroup{}",
      "top": 45.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0020",
      "page": 8,
      "ordinal": 20,
      "text": "    go func() {",
      "top": 66.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0021",
      "page": 8,
      "ordinal": 21,
      "text": "        i := 1",
      "top": 87.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0022",
      "page": 8,
      "ordinal": 22,
      "text": "        for {",
      "top": 108.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0023",
      "page": 8,
      "ordinal": 23,
      "text": "            select {",
      "top": 129.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0024",
      "page": 8,
      "ordinal": 24,
      "text": "            case <-number:",
      "top": 151.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0025",
      "page": 8,
      "ordinal": 25,
      "text": "                fmt.Print(i)",
      "top": 171.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0026",
      "page": 8,
      "ordinal": 26,
      "text": "                i++",
      "top": 192.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0027",
      "page": 8,
      "ordinal": 27,
      "text": "                fmt.Print(i)",
      "top": 214.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0028",
      "page": 8,
      "ordinal": 28,
      "text": "                i++",
      "top": 234.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0029",
      "page": 8,
      "ordinal": 29,
      "text": "                letter <- true",
      "top": 255.0,
      "left": 126.0,
      "width": 238.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0030",
      "page": 8,
      "ordinal": 30,
      "text": "                break",
      "top": 277.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0031",
      "page": 8,
      "ordinal": 31,
      "text": "            default:",
      "top": 298.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0032",
      "page": 8,
      "ordinal": 32,
      "text": "                break",
      "top": 318.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0033",
      "page": 8,
      "ordinal": 33,
      "text": "            }",
      "top": 340.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0034",
      "page": 8,
      "ordinal": 34,
      "text": "        }",
      "top": 361.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0035",
      "page": 8,
      "ordinal": 35,
      "text": "    }()",
      "top": 383.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0036",
      "page": 8,
      "ordinal": 36,
      "text": "    wait.Add(1)",
      "top": 403.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0037",
      "page": 8,
      "ordinal": 37,
      "text": "    go func(wait *sync.WaitGroup) {",
      "top": 424.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0038",
      "page": 8,
      "ordinal": 38,
      "text": "        str := \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"",
      "top": 446.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0039",
      "page": 8,
      "ordinal": 39,
      "text": "        i := 0",
      "top": 466.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0040",
      "page": 8,
      "ordinal": 40,
      "text": "        for {",
      "top": 487.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0041",
      "page": 8,
      "ordinal": 41,
      "text": "            select {",
      "top": 509.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0042",
      "page": 8,
      "ordinal": 42,
      "text": "            case <-letter:",
      "top": 530.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0043",
      "page": 8,
      "ordinal": 43,
      "text": "                if i >= strings.Count(str, \"\")-1 {",
      "top": 550.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0044",
      "page": 8,
      "ordinal": 44,
      "text": "                    wait.Done()",
      "top": 572.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0045",
      "page": 8,
      "ordinal": 45,
      "text": "                    return",
      "top": 593.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0046",
      "page": 8,
      "ordinal": 46,
      "text": "                }",
      "top": 613.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0047",
      "page": 8,
      "ordinal": 47,
      "text": "                fmt.Print(str[i : i+1])",
      "top": 635.0,
      "left": 126.0,
      "width": 309.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0048",
      "page": 8,
      "ordinal": 48,
      "text": "                i++",
      "top": 656.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0049",
      "page": 8,
      "ordinal": 49,
      "text": "                if i >= strings.Count(str, \"\") {",
      "top": 677.0,
      "left": 126.0,
      "width": 381.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0050",
      "page": 8,
      "ordinal": 50,
      "text": "                    i = 0",
      "top": 698.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0051",
      "page": 8,
      "ordinal": 51,
      "text": "                }",
      "top": 719.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0052",
      "page": 8,
      "ordinal": 52,
      "text": "                fmt.Print(str[i : i+1])",
      "top": 740.0,
      "left": 126.0,
      "width": 309.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0053",
      "page": 8,
      "ordinal": 53,
      "text": "                i++",
      "top": 761.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0054",
      "page": 8,
      "ordinal": 54,
      "text": "                number <- true",
      "top": 782.0,
      "left": 126.0,
      "width": 238.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0055",
      "page": 8,
      "ordinal": 55,
      "text": "                break",
      "top": 803.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0056",
      "page": 8,
      "ordinal": 56,
      "text": "            default:",
      "top": 825.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0057",
      "page": 8,
      "ordinal": 57,
      "text": "                break",
      "top": 845.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0058",
      "page": 8,
      "ordinal": 58,
      "text": "            }",
      "top": 866.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0059",
      "page": 8,
      "ordinal": 59,
      "text": "        }",
      "top": 888.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0060",
      "page": 8,
      "ordinal": 60,
      "text": "    }(&wait)",
      "top": 908.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0061",
      "page": 8,
      "ordinal": 61,
      "text": "    number <- true",
      "top": 929.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p008-t0062",
      "page": 8,
      "ordinal": 62,
      "text": "    wait.Wait()",
      "top": 951.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p007-h04",
        "heading_id": "p007-h04",
        "block_id": "q-p007-h04-b007"
      }
    },
    {
      "id": "p009-t0001",
      "page": 9,
      "ordinal": 1,
      "text": "下列代码是否会触发异常",
      "top": 40.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01"
      }
    },
    {
      "id": "p009-t0003",
      "page": 9,
      "ordinal": 3,
      "text": "不⼀定，当两个",
      "top": 401.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b002"
      }
    },
    {
      "id": "p009-t0004",
      "page": 9,
      "ordinal": 4,
      "text": "chan",
      "top": 401.0,
      "left": 214.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b002"
      }
    },
    {
      "id": "p009-t0005",
      "page": 9,
      "ordinal": 5,
      "text": "同时有值时，",
      "top": 401.0,
      "left": 247.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b002"
      }
    },
    {
      "id": "p009-t0006",
      "page": 9,
      "ordinal": 6,
      "text": "select ",
      "top": 401.0,
      "left": 335.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b002"
      }
    },
    {
      "id": "p009-t0007",
      "page": 9,
      "ordinal": 7,
      "text": "会随机选择⼀个可⽤通道做收发操作",
      "top": 401.0,
      "left": 378.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b002"
      }
    },
    {
      "id": "p009-t0009",
      "page": 9,
      "ordinal": 9,
      "text": "如何在运行时检查变量类型？",
      "top": 436.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02"
      }
    },
    {
      "id": "p009-t0012",
      "page": 9,
      "ordinal": 12,
      "text": "类型开关",
      "top": 487.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0013",
      "page": 9,
      "ordinal": 13,
      "text": "(Type Switch)",
      "top": 487.0,
      "left": 170.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0014",
      "page": 9,
      "ordinal": 14,
      "text": "是在运行时检查变量类型的最佳方式。类型开关按类型",
      "top": 487.0,
      "left": 260.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0016",
      "page": 9,
      "ordinal": 16,
      "text": "而不是值来评估变量。每",
      "top": 487.0,
      "left": 614.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0017",
      "page": 9,
      "ordinal": 17,
      "text": "个",
      "top": 510.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0018",
      "page": 9,
      "ordinal": 18,
      "text": " Switch ",
      "top": 510.0,
      "left": 126.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0019",
      "page": 9,
      "ordinal": 19,
      "text": "至少包含一个",
      "top": 510.0,
      "left": 178.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0020",
      "page": 9,
      "ordinal": 20,
      "text": " case ",
      "top": 510.0,
      "left": 266.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0021",
      "page": 9,
      "ordinal": 21,
      "text": "用作条件语句，如果没",
      "top": 510.0,
      "left": 304.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0023",
      "page": 9,
      "ordinal": 23,
      "text": "有一个",
      "top": 510.0,
      "left": 454.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0024",
      "page": 9,
      "ordinal": 24,
      "text": " case ",
      "top": 510.0,
      "left": 498.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0025",
      "page": 9,
      "ordinal": 25,
      "text": "为真，则执行",
      "top": 510.0,
      "left": 536.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0026",
      "page": 9,
      "ordinal": 26,
      "text": " default",
      "top": 510.0,
      "left": 623.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0027",
      "page": 9,
      "ordinal": 27,
      "text": "。",
      "top": 510.0,
      "left": 675.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b001"
      }
    },
    {
      "id": "p009-t0029",
      "page": 9,
      "ordinal": 29,
      "text": "判断字符串中字符是否全都不同",
      "top": 856.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03"
      }
    },
    {
      "id": "p009-t0031",
      "page": 9,
      "ordinal": 31,
      "text": "1. ",
      "top": 906.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b001"
      }
    },
    {
      "id": "p009-t0032",
      "page": 9,
      "ordinal": 32,
      "text": "问题描述",
      "top": 906.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b001"
      }
    },
    {
      "id": "p009-t0034",
      "page": 9,
      "ordinal": 34,
      "text": "请实现⼀个算法，确定⼀个字符串的所有字符【是否全都不同】。这⾥我们要求【不允",
      "top": 941.0,
      "left": 112.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0036",
      "page": 9,
      "ordinal": 36,
      "text": "许使⽤额外的存",
      "top": 941.0,
      "left": 671.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0037",
      "page": 9,
      "ordinal": 37,
      "text": "储结构】。",
      "top": 965.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0039",
      "page": 9,
      "ordinal": 39,
      "text": "给定⼀个",
      "top": 965.0,
      "left": 189.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0040",
      "page": 9,
      "ordinal": 40,
      "text": "string",
      "top": 965.0,
      "left": 247.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0041",
      "page": 9,
      "ordinal": 41,
      "text": "，请返回⼀个",
      "top": 965.0,
      "left": 286.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0042",
      "page": 9,
      "ordinal": 42,
      "text": "bool",
      "top": 965.0,
      "left": 374.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0043",
      "page": 9,
      "ordinal": 43,
      "text": "值",
      "top": 965.0,
      "left": 404.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0044",
      "page": 9,
      "ordinal": 44,
      "text": ",true",
      "top": 965.0,
      "left": 419.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0045",
      "page": 9,
      "ordinal": 45,
      "text": "代表所有字符全都",
      "top": 965.0,
      "left": 451.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0047",
      "page": 9,
      "ordinal": 47,
      "text": "不同，",
      "top": 965.0,
      "left": 571.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0048",
      "page": 9,
      "ordinal": 48,
      "text": "false",
      "top": 965.0,
      "left": 615.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0049",
      "page": 9,
      "ordinal": 49,
      "text": "代表存在相同的字",
      "top": 965.0,
      "left": 647.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0050",
      "page": 9,
      "ordinal": 50,
      "text": "符。",
      "top": 987.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0052",
      "page": 9,
      "ordinal": 52,
      "text": "保证字符串中的字符为【",
      "top": 987.0,
      "left": 145.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0053",
      "page": 9,
      "ordinal": 53,
      "text": "ASCII",
      "top": 987.0,
      "left": 306.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0054",
      "page": 9,
      "ordinal": 54,
      "text": "字符】。字符串的⻓",
      "top": 987.0,
      "left": 340.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0056",
      "page": 9,
      "ordinal": 56,
      "text": "度⼩于等于【",
      "top": 987.0,
      "left": 476.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0057",
      "page": 9,
      "ordinal": 57,
      "text": "3000",
      "top": 987.0,
      "left": 564.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0058",
      "page": 9,
      "ordinal": 58,
      "text": "】",
      "top": 987.0,
      "left": 597.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b002"
      }
    },
    {
      "id": "p009-t0060",
      "page": 9,
      "ordinal": 60,
      "text": "2. ",
      "top": 1023.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b003"
      }
    },
    {
      "id": "p009-t0061",
      "page": 9,
      "ordinal": 61,
      "text": "解题思路",
      "top": 1023.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b003"
      }
    },
    {
      "id": "p009-t0062",
      "page": 9,
      "ordinal": 62,
      "text": "这⾥有⼏个重点，第⼀个是",
      "top": 1058.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0063",
      "page": 9,
      "ordinal": 63,
      "text": " ASCII",
      "top": 1058.0,
      "left": 287.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0064",
      "page": 9,
      "ordinal": 64,
      "text": "字符",
      "top": 1058.0,
      "left": 326.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0066",
      "page": 9,
      "ordinal": 66,
      "text": "，",
      "top": 1058.0,
      "left": 359.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0067",
      "page": 9,
      "ordinal": 67,
      "text": " ASCII",
      "top": 1058.0,
      "left": 373.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0068",
      "page": 9,
      "ordinal": 68,
      "text": "字符",
      "top": 1058.0,
      "left": 412.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0070",
      "page": 9,
      "ordinal": 70,
      "text": "字符⼀共有",
      "top": 1058.0,
      "left": 445.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0071",
      "page": 9,
      "ordinal": 71,
      "text": "256",
      "top": 1058.0,
      "left": 518.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0072",
      "page": 9,
      "ordinal": 72,
      "text": "个，其中",
      "top": 1058.0,
      "left": 543.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0073",
      "page": 9,
      "ordinal": 73,
      "text": "128",
      "top": 1058.0,
      "left": 602.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0074",
      "page": 9,
      "ordinal": 74,
      "text": "个是常",
      "top": 1058.0,
      "left": 627.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0076",
      "page": 9,
      "ordinal": 76,
      "text": "⽤字符，可以在",
      "top": 1058.0,
      "left": 674.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0077",
      "page": 9,
      "ordinal": 77,
      "text": "键盘上输⼊。",
      "top": 1082.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0078",
      "page": 9,
      "ordinal": 78,
      "text": "128",
      "top": 1082.0,
      "left": 200.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0079",
      "page": 9,
      "ordinal": 79,
      "text": "之后的是键盘上⽆法找到的。",
      "top": 1082.0,
      "left": 225.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0081",
      "page": 9,
      "ordinal": 81,
      "text": "然后是全部不同，也就是字符串中的字符没有重复的，",
      "top": 1082.0,
      "left": 419.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0082",
      "page": 9,
      "ordinal": 82,
      "text": "再次，不准使⽤额外的储存结",
      "top": 1104.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0084",
      "page": 9,
      "ordinal": 84,
      "text": "构，且字符串⼩于等于",
      "top": 1104.0,
      "left": 306.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0085",
      "page": 9,
      "ordinal": 85,
      "text": "3000",
      "top": 1104.0,
      "left": 452.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0086",
      "page": 9,
      "ordinal": 86,
      "text": "。",
      "top": 1104.0,
      "left": 485.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0088",
      "page": 9,
      "ordinal": 88,
      "text": "如果允许其他额外储存结构，这个题⽬很好",
      "top": 1104.0,
      "left": 504.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0089",
      "page": 9,
      "ordinal": 89,
      "text": "做。如果不允许的话，可以使⽤",
      "top": 1128.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0090",
      "page": 9,
      "ordinal": 90,
      "text": "golang",
      "top": 1128.0,
      "left": 317.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0091",
      "page": 9,
      "ordinal": 91,
      "text": "内置",
      "top": 1128.0,
      "left": 362.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0093",
      "page": 9,
      "ordinal": 93,
      "text": "的⽅式实现。",
      "top": 1128.0,
      "left": 395.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b004"
      }
    },
    {
      "id": "p009-t0095",
      "page": 9,
      "ordinal": 95,
      "text": "3. ",
      "top": 1163.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b005"
      }
    },
    {
      "id": "p009-t0096",
      "page": 9,
      "ordinal": 96,
      "text": "源码参考",
      "top": 1163.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b005"
      }
    },
    {
      "id": "p009-t0097",
      "page": 9,
      "ordinal": 97,
      "text": "func Test59(t *testing.T) {",
      "top": 105.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0098",
      "page": 9,
      "ordinal": 98,
      "text": " runtime.GOMAXPROCS(1)",
      "top": 126.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0099",
      "page": 9,
      "ordinal": 99,
      "text": " intChan := make(chan int, 1)",
      "top": 146.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0100",
      "page": 9,
      "ordinal": 100,
      "text": " stringChan := make(chan string, 1)",
      "top": 168.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0101",
      "page": 9,
      "ordinal": 101,
      "text": " intChan <- 1",
      "top": 189.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0102",
      "page": 9,
      "ordinal": 102,
      "text": " stringChan <- \"hello\"",
      "top": 209.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0103",
      "page": 9,
      "ordinal": 103,
      "text": " select {",
      "top": 231.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0104",
      "page": 9,
      "ordinal": 104,
      "text": " case value := <-intChan:",
      "top": 252.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0105",
      "page": 9,
      "ordinal": 105,
      "text": " fmt.Println(value)",
      "top": 273.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0106",
      "page": 9,
      "ordinal": 106,
      "text": " case value := <-stringChan:",
      "top": 294.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0107",
      "page": 9,
      "ordinal": 107,
      "text": " panic(value)",
      "top": 315.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0108",
      "page": 9,
      "ordinal": 108,
      "text": " }",
      "top": 336.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0109",
      "page": 9,
      "ordinal": 109,
      "text": "}",
      "top": 357.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h01",
        "heading_id": "p009-h01",
        "block_id": "q-p009-h01-b001"
      }
    },
    {
      "id": "p009-t0110",
      "page": 9,
      "ordinal": 110,
      "text": "var value interface{}",
      "top": 561.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0111",
      "page": 9,
      "ordinal": 111,
      "text": "    value = \"abcd\"",
      "top": 583.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0112",
      "page": 9,
      "ordinal": 112,
      "text": "    switch value.(type) {",
      "top": 626.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0113",
      "page": 9,
      "ordinal": 113,
      "text": "    case string:",
      "top": 646.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0114",
      "page": 9,
      "ordinal": 114,
      "text": "        fmt.Println(\"string\")",
      "top": 667.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0115",
      "page": 9,
      "ordinal": 115,
      "text": "    case int:",
      "top": 689.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0116",
      "page": 9,
      "ordinal": 116,
      "text": "        fmt.Println(\"int\")",
      "top": 709.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0117",
      "page": 9,
      "ordinal": 117,
      "text": "    case bool:",
      "top": 730.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0118",
      "page": 9,
      "ordinal": 118,
      "text": "        fmt.Println(\"bool\")",
      "top": 752.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0119",
      "page": 9,
      "ordinal": 119,
      "text": "    default:",
      "top": 773.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0120",
      "page": 9,
      "ordinal": 120,
      "text": "        fmt.Println(\"default\")",
      "top": 793.0,
      "left": 126.0,
      "width": 238.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p009-t0121",
      "page": 9,
      "ordinal": 121,
      "text": "    }",
      "top": 815.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h02",
        "heading_id": "p009-h02",
        "block_id": "q-p009-h02-b002"
      }
    },
    {
      "id": "p010-t0001",
      "page": 10,
      "ordinal": 1,
      "text": "4. ",
      "top": 384.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b007"
      }
    },
    {
      "id": "p010-t0002",
      "page": 10,
      "ordinal": 2,
      "text": "源码解析",
      "top": 384.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b007"
      }
    },
    {
      "id": "p010-t0004",
      "page": 10,
      "ordinal": 4,
      "text": "以上两种⽅法都可以实现这个算法。",
      "top": 419.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0006",
      "page": 10,
      "ordinal": 6,
      "text": "第⼀个⽅法使⽤的是",
      "top": 419.0,
      "left": 350.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0007",
      "page": 10,
      "ordinal": 7,
      "text": "golang",
      "top": 419.0,
      "left": 481.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0008",
      "page": 10,
      "ordinal": 8,
      "text": "内置⽅法",
      "top": 419.0,
      "left": 527.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0009",
      "page": 10,
      "ordinal": 9,
      "text": " strings.Count ,",
      "top": 419.0,
      "left": 585.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0010",
      "page": 10,
      "ordinal": 10,
      "text": "可以⽤来判断",
      "top": 419.0,
      "left": 687.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0011",
      "page": 10,
      "ordinal": 11,
      "text": "在⼀个字符串中包含",
      "top": 443.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0013",
      "page": 10,
      "ordinal": 13,
      "text": "的另外⼀个字符串的数量。",
      "top": 443.0,
      "left": 247.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0015",
      "page": 10,
      "ordinal": 15,
      "text": "第⼆个⽅法使⽤的是",
      "top": 443.0,
      "left": 426.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0016",
      "page": 10,
      "ordinal": 16,
      "text": "golang",
      "top": 443.0,
      "left": 558.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0017",
      "page": 10,
      "ordinal": 17,
      "text": "内置⽅法",
      "top": 443.0,
      "left": 604.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0018",
      "page": 10,
      "ordinal": 18,
      "text": " strings.Index ",
      "top": 443.0,
      "left": 662.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0019",
      "page": 10,
      "ordinal": 19,
      "text": "和",
      "top": 443.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0021",
      "page": 10,
      "ordinal": 21,
      "text": "strings.LastIndex ",
      "top": 467.0,
      "left": 112.0,
      "width": 119.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0022",
      "page": 10,
      "ordinal": 22,
      "text": "，⽤来判断指",
      "top": 467.0,
      "left": 231.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0024",
      "page": 10,
      "ordinal": 24,
      "text": "定字符串在另外⼀个字符串的索引未知，分别是第⼀次发现位置和最后",
      "top": 467.0,
      "left": 323.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0025",
      "page": 10,
      "ordinal": 25,
      "text": "发现位置",
      "top": 489.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b008"
      }
    },
    {
      "id": "p010-t0026",
      "page": 10,
      "ordinal": 26,
      "text": "翻转字符串",
      "top": 524.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01"
      }
    },
    {
      "id": "p010-t0029",
      "page": 10,
      "ordinal": 29,
      "text": "1. ",
      "top": 575.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b001"
      }
    },
    {
      "id": "p010-t0030",
      "page": 10,
      "ordinal": 30,
      "text": "问题描述",
      "top": 575.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b001"
      }
    },
    {
      "id": "p010-t0032",
      "page": 10,
      "ordinal": 32,
      "text": "请实现⼀个算法，在不使⽤【额外数据结构和储存空间】的情况下，翻转⼀个给定的字",
      "top": 609.0,
      "left": 112.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0034",
      "page": 10,
      "ordinal": 34,
      "text": "符串",
      "top": 609.0,
      "left": 671.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0035",
      "page": 10,
      "ordinal": 35,
      "text": "(",
      "top": 609.0,
      "left": 701.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0036",
      "page": 10,
      "ordinal": 36,
      "text": "可以使⽤单",
      "top": 609.0,
      "left": 705.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0037",
      "page": 10,
      "ordinal": 37,
      "text": "个过程变量",
      "top": 633.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0038",
      "page": 10,
      "ordinal": 38,
      "text": ")",
      "top": 633.0,
      "left": 185.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0039",
      "page": 10,
      "ordinal": 39,
      "text": "。",
      "top": 633.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0041",
      "page": 10,
      "ordinal": 41,
      "text": "给定⼀个",
      "top": 633.0,
      "left": 208.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0042",
      "page": 10,
      "ordinal": 42,
      "text": "string",
      "top": 633.0,
      "left": 266.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0043",
      "page": 10,
      "ordinal": 43,
      "text": "，请返回⼀个",
      "top": 633.0,
      "left": 305.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0044",
      "page": 10,
      "ordinal": 44,
      "text": "string",
      "top": 633.0,
      "left": 393.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0045",
      "page": 10,
      "ordinal": 45,
      "text": "，为翻转后的字符串。保证字符串的⻓度⼩于等于",
      "top": 633.0,
      "left": 431.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0047",
      "page": 10,
      "ordinal": 47,
      "text": "5000",
      "top": 657.0,
      "left": 112.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0048",
      "page": 10,
      "ordinal": 48,
      "text": "。",
      "top": 657.0,
      "left": 145.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b002"
      }
    },
    {
      "id": "p010-t0050",
      "page": 10,
      "ordinal": 50,
      "text": "2. ",
      "top": 692.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b003"
      }
    },
    {
      "id": "p010-t0051",
      "page": 10,
      "ordinal": 51,
      "text": "解题思路",
      "top": 692.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b003"
      }
    },
    {
      "id": "p010-t0053",
      "page": 10,
      "ordinal": 53,
      "text": "翻转字符串其实是将⼀个字符串以中间字符为轴，前后翻转，即将",
      "top": 726.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0054",
      "page": 10,
      "ordinal": 54,
      "text": "str[len]",
      "top": 726.0,
      "left": 536.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0055",
      "page": 10,
      "ordinal": 55,
      "text": "赋值给",
      "top": 726.0,
      "left": 584.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0056",
      "page": 10,
      "ordinal": 56,
      "text": "str[0], ",
      "top": 726.0,
      "left": 628.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0057",
      "page": 10,
      "ordinal": 57,
      "text": "将",
      "top": 726.0,
      "left": 672.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0058",
      "page": 10,
      "ordinal": 58,
      "text": "str[0] ",
      "top": 726.0,
      "left": 686.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0059",
      "page": 10,
      "ordinal": 59,
      "text": "赋值",
      "top": 726.0,
      "left": 726.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0061",
      "page": 10,
      "ordinal": 61,
      "text": "str[len]",
      "top": 750.0,
      "left": 112.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0062",
      "page": 10,
      "ordinal": 62,
      "text": "。",
      "top": 750.0,
      "left": 160.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b004"
      }
    },
    {
      "id": "p010-t0064",
      "page": 10,
      "ordinal": 64,
      "text": "3. ",
      "top": 785.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b005"
      }
    },
    {
      "id": "p010-t0065",
      "page": 10,
      "ordinal": 65,
      "text": "源码参考：",
      "top": 785.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b005"
      }
    },
    {
      "id": "p010-t0066",
      "page": 10,
      "ordinal": 66,
      "text": "4. ",
      "top": 1092.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b007"
      }
    },
    {
      "id": "p010-t0067",
      "page": 10,
      "ordinal": 67,
      "text": "源码解析：",
      "top": 1092.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b007"
      }
    },
    {
      "id": "p010-t0069",
      "page": 10,
      "ordinal": 69,
      "text": "以字符串⻓度的",
      "top": 1127.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b008"
      }
    },
    {
      "id": "p010-t0070",
      "page": 10,
      "ordinal": 70,
      "text": "1/2",
      "top": 1127.0,
      "left": 218.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b008"
      }
    },
    {
      "id": "p010-t0071",
      "page": 10,
      "ordinal": 71,
      "text": "为轴，前后赋值",
      "top": 1127.0,
      "left": 240.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b008"
      }
    },
    {
      "id": "p010-t0073",
      "page": 10,
      "ordinal": 73,
      "text": "func isUniqueString(s string) bool {",
      "top": 66.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0074",
      "page": 10,
      "ordinal": 74,
      "text": "    if strings.Count(s, \"\") > 3000 {",
      "top": 87.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0075",
      "page": 10,
      "ordinal": 75,
      "text": "        return false",
      "top": 108.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0076",
      "page": 10,
      "ordinal": 76,
      "text": "    }",
      "top": 129.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0077",
      "page": 10,
      "ordinal": 77,
      "text": "    for _, v := range s {",
      "top": 151.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0078",
      "page": 10,
      "ordinal": 78,
      "text": "        if v > 127 {",
      "top": 171.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0079",
      "page": 10,
      "ordinal": 79,
      "text": "            return false",
      "top": 192.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0080",
      "page": 10,
      "ordinal": 80,
      "text": "        }",
      "top": 214.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0081",
      "page": 10,
      "ordinal": 81,
      "text": "        if strings.Count(s, string(v)) > 1 {",
      "top": 234.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0082",
      "page": 10,
      "ordinal": 82,
      "text": "            return false",
      "top": 255.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0083",
      "page": 10,
      "ordinal": 83,
      "text": "        }",
      "top": 277.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0084",
      "page": 10,
      "ordinal": 84,
      "text": "    }",
      "top": 298.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0085",
      "page": 10,
      "ordinal": 85,
      "text": "    return true",
      "top": 318.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0086",
      "page": 10,
      "ordinal": 86,
      "text": "}",
      "top": 340.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p009-h03",
        "heading_id": "p009-h03",
        "block_id": "q-p009-h03-b006"
      }
    },
    {
      "id": "p010-t0087",
      "page": 10,
      "ordinal": 87,
      "text": "func reverString(s string) (string, bool) {",
      "top": 837.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0088",
      "page": 10,
      "ordinal": 88,
      "text": "    str := []rune(s)",
      "top": 858.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0089",
      "page": 10,
      "ordinal": 89,
      "text": "    l := len(str)",
      "top": 879.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0090",
      "page": 10,
      "ordinal": 90,
      "text": "    if l > 5000 {",
      "top": 900.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0091",
      "page": 10,
      "ordinal": 91,
      "text": "        return s, false",
      "top": 921.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0092",
      "page": 10,
      "ordinal": 92,
      "text": "    }",
      "top": 943.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0093",
      "page": 10,
      "ordinal": 93,
      "text": "    for i := 0; i < l/2; i++ {",
      "top": 963.0,
      "left": 126.0,
      "width": 238.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0094",
      "page": 10,
      "ordinal": 94,
      "text": "        str[i], str[l-1-i] = str[l-1-i], str[i]",
      "top": 984.0,
      "left": 126.0,
      "width": 373.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0095",
      "page": 10,
      "ordinal": 95,
      "text": "    }",
      "top": 1006.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0096",
      "page": 10,
      "ordinal": 96,
      "text": "    return string(str), true",
      "top": 1026.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p010-t0097",
      "page": 10,
      "ordinal": 97,
      "text": "}",
      "top": 1047.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p010-h01",
        "heading_id": "p010-h01",
        "block_id": "q-p010-h01-b006"
      }
    },
    {
      "id": "p011-t0001",
      "page": 11,
      "ordinal": 1,
      "text": "翻转含有中文、数字、英文字母的字符串",
      "top": 40.0,
      "left": 112.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01"
      }
    },
    {
      "id": "p011-t0003",
      "page": 11,
      "ordinal": 3,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b001"
      }
    },
    {
      "id": "p011-t0004",
      "page": 11,
      "ordinal": 4,
      "text": "解题思路",
      "top": 91.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b001"
      }
    },
    {
      "id": "p011-t0005",
      "page": 11,
      "ordinal": 5,
      "text": "2. ",
      "top": 186.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b003"
      }
    },
    {
      "id": "p011-t0006",
      "page": 11,
      "ordinal": 6,
      "text": "源码参考",
      "top": 186.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b003"
      }
    },
    {
      "id": "p011-t0007",
      "page": 11,
      "ordinal": 7,
      "text": "3. ",
      "top": 620.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b005"
      }
    },
    {
      "id": "p011-t0008",
      "page": 11,
      "ordinal": 8,
      "text": "源码解析",
      "top": 620.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b005"
      }
    },
    {
      "id": "p011-t0009",
      "page": 11,
      "ordinal": 9,
      "text": "rune",
      "top": 656.0,
      "left": 112.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0010",
      "page": 11,
      "ordinal": 10,
      "text": "关键字，从",
      "top": 656.0,
      "left": 144.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0011",
      "page": 11,
      "ordinal": 11,
      "text": "golang",
      "top": 656.0,
      "left": 217.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0012",
      "page": 11,
      "ordinal": 12,
      "text": "源码中看出，它是",
      "top": 656.0,
      "left": 263.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0013",
      "page": 11,
      "ordinal": 13,
      "text": "int32",
      "top": 656.0,
      "left": 380.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0014",
      "page": 11,
      "ordinal": 14,
      "text": "的别名（",
      "top": 656.0,
      "left": 414.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0015",
      "page": 11,
      "ordinal": 15,
      "text": "-2^31 ~ 2^31-1",
      "top": 656.0,
      "left": 473.0,
      "width": 100.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0016",
      "page": 11,
      "ordinal": 16,
      "text": "），比起",
      "top": 656.0,
      "left": 572.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0017",
      "page": 11,
      "ordinal": 17,
      "text": "byte",
      "top": 656.0,
      "left": 631.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0018",
      "page": 11,
      "ordinal": 18,
      "text": "（",
      "top": 656.0,
      "left": 661.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0019",
      "page": 11,
      "ordinal": 19,
      "text": "-128",
      "top": 656.0,
      "left": 675.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0020",
      "page": 11,
      "ordinal": 20,
      "text": "～",
      "top": 656.0,
      "left": 705.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0021",
      "page": 11,
      "ordinal": 21,
      "text": "127",
      "top": 656.0,
      "left": 720.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0022",
      "page": 11,
      "ordinal": 22,
      "text": "），",
      "top": 656.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0023",
      "page": 11,
      "ordinal": 23,
      "text": "可表示更多的字符。",
      "top": 678.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0024",
      "page": 11,
      "ordinal": 24,
      "text": "由于",
      "top": 702.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0025",
      "page": 11,
      "ordinal": 25,
      "text": "rune",
      "top": 702.0,
      "left": 141.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0026",
      "page": 11,
      "ordinal": 26,
      "text": "可表示的范围更大，所以能处理一切字符，当然也包括中文字符。在平时计算中文字符，可用",
      "top": 702.0,
      "left": 173.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0027",
      "page": 11,
      "ordinal": 27,
      "text": "rune",
      "top": 725.0,
      "left": 112.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0028",
      "page": 11,
      "ordinal": 28,
      "text": "。",
      "top": 725.0,
      "left": 144.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0029",
      "page": 11,
      "ordinal": 29,
      "text": "因此将字符串转为",
      "top": 749.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0030",
      "page": 11,
      "ordinal": 30,
      "text": "rune",
      "top": 749.0,
      "left": 229.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0031",
      "page": 11,
      "ordinal": 31,
      "text": "的切片",
      "top": 749.0,
      "left": 261.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b006"
      }
    },
    {
      "id": "p011-t0032",
      "page": 11,
      "ordinal": 32,
      "text": "判断两个给定的字符串排序后是否⼀致",
      "top": 784.0,
      "left": 112.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02"
      }
    },
    {
      "id": "p011-t0035",
      "page": 11,
      "ordinal": 35,
      "text": "1. ",
      "top": 833.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b001"
      }
    },
    {
      "id": "p011-t0036",
      "page": 11,
      "ordinal": 36,
      "text": "问题描述",
      "top": 833.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b001"
      }
    },
    {
      "id": "p011-t0038",
      "page": 11,
      "ordinal": 38,
      "text": "给定两个字符串，请编写程序，确定其中⼀个字符串的字符重新排列后，能否变成另⼀",
      "top": 869.0,
      "left": 116.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0040",
      "page": 11,
      "ordinal": 40,
      "text": "个字符串。",
      "top": 869.0,
      "left": 675.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0042",
      "page": 11,
      "ordinal": 42,
      "text": "这⾥",
      "top": 869.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0043",
      "page": 11,
      "ordinal": 43,
      "text": "规定【⼤⼩写为不同字符】，且考虑字符串重点空格。给定⼀个",
      "top": 892.0,
      "left": 112.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0044",
      "page": 11,
      "ordinal": 44,
      "text": "string s1",
      "top": 892.0,
      "left": 521.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0045",
      "page": 11,
      "ordinal": 45,
      "text": "和⼀个",
      "top": 892.0,
      "left": 579.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0046",
      "page": 11,
      "ordinal": 46,
      "text": "string s2",
      "top": 892.0,
      "left": 623.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0047",
      "page": 11,
      "ordinal": 47,
      "text": "，请返回⼀个",
      "top": 892.0,
      "left": 681.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0048",
      "page": 11,
      "ordinal": 48,
      "text": "bool",
      "top": 915.0,
      "left": 112.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0049",
      "page": 11,
      "ordinal": 49,
      "text": "，代表两串是否重新排列后可相同。",
      "top": 915.0,
      "left": 142.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0051",
      "page": 11,
      "ordinal": 51,
      "text": "保证两串的",
      "top": 915.0,
      "left": 380.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0053",
      "page": 11,
      "ordinal": 53,
      "text": "⻓度都⼩于等于",
      "top": 915.0,
      "left": 457.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0054",
      "page": 11,
      "ordinal": 54,
      "text": "5000",
      "top": 915.0,
      "left": 559.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0055",
      "page": 11,
      "ordinal": 55,
      "text": "。",
      "top": 915.0,
      "left": 593.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b002"
      }
    },
    {
      "id": "p011-t0057",
      "page": 11,
      "ordinal": 57,
      "text": "2. ",
      "top": 950.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b003"
      }
    },
    {
      "id": "p011-t0058",
      "page": 11,
      "ordinal": 58,
      "text": "解题思路",
      "top": 950.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b003"
      }
    },
    {
      "id": "p011-t0061",
      "page": 11,
      "ordinal": 61,
      "text": "⾸先要保证字符串⻓度⼩于",
      "top": 986.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0062",
      "page": 11,
      "ordinal": 62,
      "text": "5000",
      "top": 986.0,
      "left": 291.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0063",
      "page": 11,
      "ordinal": 63,
      "text": "。之后只需要⼀次循环遍历",
      "top": 986.0,
      "left": 325.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0064",
      "page": 11,
      "ordinal": 64,
      "text": "s1",
      "top": 986.0,
      "left": 500.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0065",
      "page": 11,
      "ordinal": 65,
      "text": "中的字符在",
      "top": 986.0,
      "left": 515.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0066",
      "page": 11,
      "ordinal": 66,
      "text": "s2",
      "top": 986.0,
      "left": 588.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0067",
      "page": 11,
      "ordinal": 67,
      "text": "是否都存",
      "top": 986.0,
      "left": 604.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0069",
      "page": 11,
      "ordinal": 69,
      "text": "在即可。",
      "top": 986.0,
      "left": 666.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b004"
      }
    },
    {
      "id": "p011-t0071",
      "page": 11,
      "ordinal": 71,
      "text": "3. ",
      "top": 1021.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b005"
      }
    },
    {
      "id": "p011-t0072",
      "page": 11,
      "ordinal": 72,
      "text": "源码参考",
      "top": 1021.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b005"
      }
    },
    {
      "id": "p011-t0074",
      "page": 11,
      "ordinal": 74,
      "text": "解题思路",
      "top": 142.0,
      "left": 126.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b002"
      }
    },
    {
      "id": "p011-t0076",
      "page": 11,
      "ordinal": 76,
      "text": "翻转字符串其实是将",
      "top": 142.0,
      "left": 187.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b002"
      }
    },
    {
      "id": "p011-t0077",
      "page": 11,
      "ordinal": 77,
      "text": "⼀",
      "top": 140.0,
      "left": 305.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b002"
      }
    },
    {
      "id": "p011-t0078",
      "page": 11,
      "ordinal": 78,
      "text": "个字符串以中间字符为轴，前后翻转",
      "top": 142.0,
      "left": 319.0,
      "width": 211.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b002"
      }
    },
    {
      "id": "p011-t0079",
      "page": 11,
      "ordinal": 79,
      "text": "package main",
      "top": 239.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0080",
      "page": 11,
      "ordinal": 80,
      "text": "import \"fmt\"",
      "top": 281.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0081",
      "page": 11,
      "ordinal": 81,
      "text": "func main() {",
      "top": 323.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0082",
      "page": 11,
      "ordinal": 82,
      "text": "    src := \"nick ",
      "top": 344.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0083",
      "page": 11,
      "ordinal": 83,
      "text": "今天天气很好啊！",
      "top": 343.0,
      "left": 261.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0084",
      "page": 11,
      "ordinal": 84,
      "text": "1234\"",
      "top": 344.0,
      "left": 367.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0085",
      "page": 11,
      "ordinal": 85,
      "text": "    dst := reverse([]rune(src))",
      "top": 365.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0086",
      "page": 11,
      "ordinal": 86,
      "text": "    fmt.Printf(\"%v\\n\", string(dst))",
      "top": 386.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0087",
      "page": 11,
      "ordinal": 87,
      "text": "}",
      "top": 407.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0088",
      "page": 11,
      "ordinal": 88,
      "text": "func reverse(s []rune) []rune {",
      "top": 429.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0089",
      "page": 11,
      "ordinal": 89,
      "text": "    length := len(s)",
      "top": 449.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0090",
      "page": 11,
      "ordinal": 90,
      "text": "    for i := 0; i < length/2; i++ {",
      "top": 470.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0091",
      "page": 11,
      "ordinal": 91,
      "text": "        s[i], s[length-1-i] = s[length-1-i], s[i]",
      "top": 492.0,
      "left": 126.0,
      "width": 389.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0092",
      "page": 11,
      "ordinal": 92,
      "text": "    }",
      "top": 513.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0093",
      "page": 11,
      "ordinal": 93,
      "text": "    return s",
      "top": 533.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p011-t0094",
      "page": 11,
      "ordinal": 94,
      "text": "}",
      "top": 555.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h01",
        "heading_id": "p011-h01",
        "block_id": "q-p011-h01-b004"
      }
    },
    {
      "id": "p012-t0001",
      "page": 12,
      "ordinal": 1,
      "text": "4. ",
      "top": 352.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b007"
      }
    },
    {
      "id": "p012-t0002",
      "page": 12,
      "ordinal": 2,
      "text": "源码解析",
      "top": 352.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b007"
      }
    },
    {
      "id": "p012-t0004",
      "page": 12,
      "ordinal": 4,
      "text": "使⽤",
      "top": 388.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b008"
      }
    },
    {
      "id": "p012-t0005",
      "page": 12,
      "ordinal": 5,
      "text": "golang",
      "top": 388.0,
      "left": 141.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b008"
      }
    },
    {
      "id": "p012-t0006",
      "page": 12,
      "ordinal": 6,
      "text": "内置⽅法",
      "top": 388.0,
      "left": 187.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b008"
      }
    },
    {
      "id": "p012-t0007",
      "page": 12,
      "ordinal": 7,
      "text": "  strings.Count ",
      "top": 388.0,
      "left": 245.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b008"
      }
    },
    {
      "id": "p012-t0008",
      "page": 12,
      "ordinal": 8,
      "text": "来判断字符是否⼀致",
      "top": 388.0,
      "left": 347.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b008"
      }
    },
    {
      "id": "p012-t0010",
      "page": 12,
      "ordinal": 10,
      "text": "字符串替换问题",
      "top": 421.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01"
      }
    },
    {
      "id": "p012-t0013",
      "page": 12,
      "ordinal": 13,
      "text": "1. ",
      "top": 472.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b001"
      }
    },
    {
      "id": "p012-t0014",
      "page": 12,
      "ordinal": 14,
      "text": "问题描述",
      "top": 472.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b001"
      }
    },
    {
      "id": "p012-t0016",
      "page": 12,
      "ordinal": 16,
      "text": "请编写⼀个⽅法，将字符串中的空格全部替换为",
      "top": 507.0,
      "left": 116.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0017",
      "page": 12,
      "ordinal": 17,
      "text": "“%20”",
      "top": 507.0,
      "left": 423.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0018",
      "page": 12,
      "ordinal": 18,
      "text": "。",
      "top": 507.0,
      "left": 462.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0020",
      "page": 12,
      "ordinal": 20,
      "text": "假定该字符串有⾜够的空间存",
      "top": 507.0,
      "left": 480.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0022",
      "page": 12,
      "ordinal": 22,
      "text": "放新增的字符，",
      "top": 507.0,
      "left": 674.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0023",
      "page": 12,
      "ordinal": 23,
      "text": "并且知道字符串的真实⻓度",
      "top": 531.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0024",
      "page": 12,
      "ordinal": 24,
      "text": "(",
      "top": 531.0,
      "left": 287.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0025",
      "page": 12,
      "ordinal": 25,
      "text": "⼩于等于",
      "top": 531.0,
      "left": 292.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0026",
      "page": 12,
      "ordinal": 26,
      "text": "1000)",
      "top": 531.0,
      "left": 350.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0027",
      "page": 12,
      "ordinal": 27,
      "text": "，同时保证字符串由【⼤⼩",
      "top": 531.0,
      "left": 388.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0029",
      "page": 12,
      "ordinal": 29,
      "text": "写的英⽂字⺟组成】。",
      "top": 531.0,
      "left": 567.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0031",
      "page": 12,
      "ordinal": 31,
      "text": "给定⼀个",
      "top": 531.0,
      "left": 717.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0032",
      "page": 12,
      "ordinal": 32,
      "text": "string",
      "top": 554.0,
      "left": 112.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0033",
      "page": 12,
      "ordinal": 33,
      "text": "为原始的串，返回替换后的",
      "top": 554.0,
      "left": 151.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0034",
      "page": 12,
      "ordinal": 34,
      "text": "string",
      "top": 554.0,
      "left": 326.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0035",
      "page": 12,
      "ordinal": 35,
      "text": "。",
      "top": 554.0,
      "left": 365.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b002"
      }
    },
    {
      "id": "p012-t0037",
      "page": 12,
      "ordinal": 37,
      "text": "2. ",
      "top": 589.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b003"
      }
    },
    {
      "id": "p012-t0038",
      "page": 12,
      "ordinal": 38,
      "text": "解题思路",
      "top": 589.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b003"
      }
    },
    {
      "id": "p012-t0040",
      "page": 12,
      "ordinal": 40,
      "text": "两个问题，第⼀个是只能是英⽂字⺟，第⼆个是替换空格。",
      "top": 624.0,
      "left": 116.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b004"
      }
    },
    {
      "id": "p012-t0042",
      "page": 12,
      "ordinal": 42,
      "text": "3. ",
      "top": 660.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b005"
      }
    },
    {
      "id": "p012-t0043",
      "page": 12,
      "ordinal": 43,
      "text": "源码参考",
      "top": 660.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b005"
      }
    },
    {
      "id": "p012-t0044",
      "page": 12,
      "ordinal": 44,
      "text": "4. ",
      "top": 966.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b007"
      }
    },
    {
      "id": "p012-t0045",
      "page": 12,
      "ordinal": 45,
      "text": "源码解析",
      "top": 966.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b007"
      }
    },
    {
      "id": "p012-t0046",
      "page": 12,
      "ordinal": 46,
      "text": "func isRegroup(s1, s2 string) bool {",
      "top": 55.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0047",
      "page": 12,
      "ordinal": 47,
      "text": "    sl1 := len([]rune(s1))",
      "top": 77.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0048",
      "page": 12,
      "ordinal": 48,
      "text": "    sl2 := len([]rune(s2))",
      "top": 97.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0049",
      "page": 12,
      "ordinal": 49,
      "text": "    if sl1 > 5000 || sl2 > 5000 || sl1 != sl2 {",
      "top": 118.0,
      "left": 126.0,
      "width": 373.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0050",
      "page": 12,
      "ordinal": 50,
      "text": "        return false",
      "top": 140.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0051",
      "page": 12,
      "ordinal": 51,
      "text": "    }",
      "top": 161.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0052",
      "page": 12,
      "ordinal": 52,
      "text": "    for _, v := range s1 {",
      "top": 181.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0053",
      "page": 12,
      "ordinal": 53,
      "text": "        if strings.Count(s1, string(v)) != strings.Count(s2, string(v)) {",
      "top": 203.0,
      "left": 126.0,
      "width": 579.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0054",
      "page": 12,
      "ordinal": 54,
      "text": "            return false",
      "top": 224.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0055",
      "page": 12,
      "ordinal": 55,
      "text": "        }",
      "top": 244.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0056",
      "page": 12,
      "ordinal": 56,
      "text": "    }",
      "top": 266.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0057",
      "page": 12,
      "ordinal": 57,
      "text": "    return true",
      "top": 287.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0058",
      "page": 12,
      "ordinal": 58,
      "text": "}",
      "top": 308.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p011-h02",
        "heading_id": "p011-h02",
        "block_id": "q-p011-h02-b006"
      }
    },
    {
      "id": "p012-t0059",
      "page": 12,
      "ordinal": 59,
      "text": "func replaceBlank(s string) (string, bool) {",
      "top": 711.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0060",
      "page": 12,
      "ordinal": 60,
      "text": "    if len([]rune(s)) > 1000 {",
      "top": 732.0,
      "left": 126.0,
      "width": 238.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0061",
      "page": 12,
      "ordinal": 61,
      "text": "        return s, false",
      "top": 754.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0062",
      "page": 12,
      "ordinal": 62,
      "text": "    }",
      "top": 774.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0063",
      "page": 12,
      "ordinal": 63,
      "text": "    for _, v := range s {",
      "top": 795.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0064",
      "page": 12,
      "ordinal": 64,
      "text": "        if string(v) != \" \" && unicode.IsLetter(v) == false {",
      "top": 817.0,
      "left": 126.0,
      "width": 484.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0065",
      "page": 12,
      "ordinal": 65,
      "text": "            return s, false",
      "top": 838.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0066",
      "page": 12,
      "ordinal": 66,
      "text": "        }",
      "top": 858.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0067",
      "page": 12,
      "ordinal": 67,
      "text": "    }",
      "top": 880.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0068",
      "page": 12,
      "ordinal": 68,
      "text": "    return strings.Replace(s, \" \", \"%20\", -1), true",
      "top": 901.0,
      "left": 126.0,
      "width": 404.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0069",
      "page": 12,
      "ordinal": 69,
      "text": "}",
      "top": 923.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b006"
      }
    },
    {
      "id": "p012-t0070",
      "page": 12,
      "ordinal": 70,
      "text": "使",
      "top": 1017.0,
      "left": 126.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0071",
      "page": 12,
      "ordinal": 71,
      "text": "⽤",
      "top": 1015.0,
      "left": 140.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0072",
      "page": 12,
      "ordinal": 72,
      "text": "了",
      "top": 1017.0,
      "left": 153.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0073",
      "page": 12,
      "ordinal": 73,
      "text": "golang",
      "top": 1018.0,
      "left": 166.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0074",
      "page": 12,
      "ordinal": 74,
      "text": "内置",
      "top": 1017.0,
      "left": 213.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0075",
      "page": 12,
      "ordinal": 75,
      "text": "⽅",
      "top": 1015.0,
      "left": 240.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0076",
      "page": 12,
      "ordinal": 76,
      "text": "法",
      "top": 1017.0,
      "left": 253.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0077",
      "page": 12,
      "ordinal": 77,
      "text": " unicode.IsLetter ",
      "top": 1018.0,
      "left": 266.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0078",
      "page": 12,
      "ordinal": 78,
      "text": "判断字符是否是字",
      "top": 1017.0,
      "left": 409.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0079",
      "page": 12,
      "ordinal": 79,
      "text": "⺟",
      "top": 1015.0,
      "left": 514.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0080",
      "page": 12,
      "ordinal": 80,
      "text": "，之后使",
      "top": 1017.0,
      "left": 527.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0081",
      "page": 12,
      "ordinal": 81,
      "text": "⽤",
      "top": 1015.0,
      "left": 580.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0082",
      "page": 12,
      "ordinal": 82,
      "text": " strings.Replace ",
      "top": 1018.0,
      "left": 593.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0083",
      "page": 12,
      "ordinal": 83,
      "text": "来替换",
      "top": 1017.0,
      "left": 728.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p012-t0084",
      "page": 12,
      "ordinal": 84,
      "text": "空格",
      "top": 1039.0,
      "left": 126.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p012-h01",
        "heading_id": "p012-h01",
        "block_id": "q-p012-h01-b008"
      }
    },
    {
      "id": "p013-t0001",
      "page": 13,
      "ordinal": 1,
      "text": "下列代码有什么问题",
      "top": 40.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01"
      }
    },
    {
      "id": "p013-t0004",
      "page": 13,
      "ordinal": 4,
      "text": "go",
      "top": 254.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b002"
      }
    },
    {
      "id": "p013-t0005",
      "page": 13,
      "ordinal": 5,
      "text": "语言中，常量无法寻址，是不能进行取地址操作的",
      "top": 254.0,
      "left": 129.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b002"
      }
    },
    {
      "id": "p013-t0006",
      "page": 13,
      "ordinal": 6,
      "text": "下列代码输出什么",
      "top": 289.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02"
      }
    },
    {
      "id": "p013-t0009",
      "page": 13,
      "ordinal": 9,
      "text": "对于切片，",
      "top": 503.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0010",
      "page": 13,
      "ordinal": 10,
      "text": "range",
      "top": 503.0,
      "left": 185.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0011",
      "page": 13,
      "ordinal": 11,
      "text": "一个返回值时，返回的是切片的下标即索引。返回两个值时，第一个是下标，第二个是",
      "top": 503.0,
      "left": 224.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0012",
      "page": 13,
      "ordinal": 12,
      "text": "值。",
      "top": 526.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0013",
      "page": 13,
      "ordinal": 13,
      "text": "对于集合，",
      "top": 550.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0014",
      "page": 13,
      "ordinal": 14,
      "text": "range",
      "top": 550.0,
      "left": 185.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0015",
      "page": 13,
      "ordinal": 15,
      "text": "一个返回值时，返回的是集合的",
      "top": 550.0,
      "left": 224.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0016",
      "page": 13,
      "ordinal": 16,
      "text": "key",
      "top": 550.0,
      "left": 429.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0017",
      "page": 13,
      "ordinal": 17,
      "text": "值。返回两个值时，第一个是",
      "top": 550.0,
      "left": 452.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0018",
      "page": 13,
      "ordinal": 18,
      "text": "key",
      "top": 550.0,
      "left": 642.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0019",
      "page": 13,
      "ordinal": 19,
      "text": "，第二个是值",
      "top": 550.0,
      "left": 666.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0020",
      "page": 13,
      "ordinal": 20,
      "text": "因此，以上代码输出",
      "top": 573.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0021",
      "page": 13,
      "ordinal": 21,
      "text": " 012",
      "top": 573.0,
      "left": 243.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b002"
      }
    },
    {
      "id": "p013-t0022",
      "page": 13,
      "ordinal": 22,
      "text": "下列代码输出什么",
      "top": 607.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03"
      }
    },
    {
      "id": "p013-t0025",
      "page": 13,
      "ordinal": 25,
      "text": "机器⼈坐标问题",
      "top": 944.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04"
      }
    },
    {
      "id": "p013-t0027",
      "page": 13,
      "ordinal": 27,
      "text": "1. ",
      "top": 995.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b001"
      }
    },
    {
      "id": "p013-t0028",
      "page": 13,
      "ordinal": 28,
      "text": "问题描述",
      "top": 995.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b001"
      }
    },
    {
      "id": "p013-t0031",
      "page": 13,
      "ordinal": 31,
      "text": "有⼀个机器⼈，给⼀串指令，",
      "top": 1030.0,
      "left": 116.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0032",
      "page": 13,
      "ordinal": 32,
      "text": "L",
      "top": 1030.0,
      "left": 306.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0033",
      "page": 13,
      "ordinal": 33,
      "text": "左转",
      "top": 1030.0,
      "left": 313.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0034",
      "page": 13,
      "ordinal": 34,
      "text": " R",
      "top": 1030.0,
      "left": 343.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0035",
      "page": 13,
      "ordinal": 35,
      "text": "右转，",
      "top": 1030.0,
      "left": 355.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0036",
      "page": 13,
      "ordinal": 36,
      "text": "F",
      "top": 1030.0,
      "left": 399.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0037",
      "page": 13,
      "ordinal": 37,
      "text": "前进⼀步，",
      "top": 1030.0,
      "left": 407.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0038",
      "page": 13,
      "ordinal": 38,
      "text": "B",
      "top": 1030.0,
      "left": 480.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0039",
      "page": 13,
      "ordinal": 39,
      "text": "后退⼀步，问最后机器⼈的",
      "top": 1030.0,
      "left": 489.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0041",
      "page": 13,
      "ordinal": 41,
      "text": "坐标，最开始，",
      "top": 1030.0,
      "left": 669.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0042",
      "page": 13,
      "ordinal": 42,
      "text": "机器⼈位于",
      "top": 1054.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0043",
      "page": 13,
      "ordinal": 43,
      "text": " 0 0",
      "top": 1054.0,
      "left": 185.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0044",
      "page": 13,
      "ordinal": 44,
      "text": "，⽅向为正",
      "top": 1054.0,
      "left": 209.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0045",
      "page": 13,
      "ordinal": 45,
      "text": "Y",
      "top": 1054.0,
      "left": 282.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0046",
      "page": 13,
      "ordinal": 46,
      "text": "。",
      "top": 1054.0,
      "left": 291.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0048",
      "page": 13,
      "ordinal": 48,
      "text": "可以输⼊重复指令",
      "top": 1054.0,
      "left": 309.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0049",
      "page": 13,
      "ordinal": 49,
      "text": "n ",
      "top": 1054.0,
      "left": 426.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0050",
      "page": 13,
      "ordinal": 50,
      "text": "：",
      "top": 1054.0,
      "left": 439.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0052",
      "page": 13,
      "ordinal": 52,
      "text": "⽐如",
      "top": 1054.0,
      "left": 457.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0053",
      "page": 13,
      "ordinal": 53,
      "text": " R2(LF) ",
      "top": 1054.0,
      "left": 486.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0054",
      "page": 13,
      "ordinal": 54,
      "text": "这",
      "top": 1054.0,
      "left": 535.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0056",
      "page": 13,
      "ordinal": 56,
      "text": "个等于指令",
      "top": 1054.0,
      "left": 554.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0057",
      "page": 13,
      "ordinal": 57,
      "text": " RLFLF",
      "top": 1054.0,
      "left": 627.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0058",
      "page": 13,
      "ordinal": 58,
      "text": "。",
      "top": 1054.0,
      "left": 670.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0060",
      "page": 13,
      "ordinal": 60,
      "text": "问最后机器⼈",
      "top": 1054.0,
      "left": 688.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0061",
      "page": 13,
      "ordinal": 61,
      "text": "的坐标是多少？",
      "top": 1076.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b002"
      }
    },
    {
      "id": "p013-t0063",
      "page": 13,
      "ordinal": 63,
      "text": "2. ",
      "top": 1112.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b003"
      }
    },
    {
      "id": "p013-t0064",
      "page": 13,
      "ordinal": 64,
      "text": "解题思路",
      "top": 1112.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b003"
      }
    },
    {
      "id": "p013-t0066",
      "page": 13,
      "ordinal": 66,
      "text": "这⾥的⼀个难点是解析重复指令。主要指令解析成功，计算坐标就简单了",
      "top": 1147.0,
      "left": 116.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b004"
      }
    },
    {
      "id": "p013-t0068",
      "page": 13,
      "ordinal": 68,
      "text": "3. ",
      "top": 1182.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b005"
      }
    },
    {
      "id": "p013-t0069",
      "page": 13,
      "ordinal": 69,
      "text": "源码参考",
      "top": 1182.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b005"
      }
    },
    {
      "id": "p013-t0070",
      "page": 13,
      "ordinal": 70,
      "text": "const i = 100",
      "top": 105.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0071",
      "page": 13,
      "ordinal": 71,
      "text": "var j = 123",
      "top": 126.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0072",
      "page": 13,
      "ordinal": 72,
      "text": "func main() {",
      "top": 146.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0073",
      "page": 13,
      "ordinal": 73,
      "text": " fmt.Println(&j, j)",
      "top": 168.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0074",
      "page": 13,
      "ordinal": 74,
      "text": " fmt.Println(&i, i)",
      "top": 189.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0075",
      "page": 13,
      "ordinal": 75,
      "text": "}",
      "top": 209.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h01",
        "heading_id": "p013-h01",
        "block_id": "q-p013-h01-b001"
      }
    },
    {
      "id": "p013-t0076",
      "page": 13,
      "ordinal": 76,
      "text": "func Test62(t *testing.T) {",
      "top": 353.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0077",
      "page": 13,
      "ordinal": 77,
      "text": " x := []string{\"a\", \"b\", \"c\"}",
      "top": 375.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0078",
      "page": 13,
      "ordinal": 78,
      "text": " for v := range x {",
      "top": 395.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0079",
      "page": 13,
      "ordinal": 79,
      "text": " fmt.Print(v)",
      "top": 416.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0080",
      "page": 13,
      "ordinal": 80,
      "text": " }",
      "top": 438.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0081",
      "page": 13,
      "ordinal": 81,
      "text": "}",
      "top": 458.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h02",
        "heading_id": "p013-h02",
        "block_id": "q-p013-h02-b001"
      }
    },
    {
      "id": "p013-t0082",
      "page": 13,
      "ordinal": 82,
      "text": "func main() {",
      "top": 672.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0083",
      "page": 13,
      "ordinal": 83,
      "text": "    var x *int = nil",
      "top": 693.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0084",
      "page": 13,
      "ordinal": 84,
      "text": "    Foo(x)",
      "top": 714.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0085",
      "page": 13,
      "ordinal": 85,
      "text": "}",
      "top": 735.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0086",
      "page": 13,
      "ordinal": 86,
      "text": "func Foo(x interface{}) {",
      "top": 756.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0087",
      "page": 13,
      "ordinal": 87,
      "text": "    if x == nil {",
      "top": 777.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0088",
      "page": 13,
      "ordinal": 88,
      "text": "        fmt.Println(\"empty interface\")",
      "top": 799.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0089",
      "page": 13,
      "ordinal": 89,
      "text": "        return",
      "top": 819.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0090",
      "page": 13,
      "ordinal": 90,
      "text": "    }",
      "top": 840.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0091",
      "page": 13,
      "ordinal": 91,
      "text": "    fmt.Println(x)",
      "top": 862.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0092",
      "page": 13,
      "ordinal": 92,
      "text": "    fmt.Println(\"non-empty interface\")",
      "top": 882.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p013-t0093",
      "page": 13,
      "ordinal": 93,
      "text": "}",
      "top": 903.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h03",
        "heading_id": "p013-h03",
        "block_id": "q-p013-h03-b001"
      }
    },
    {
      "id": "p014-t0001",
      "page": 14,
      "ordinal": 1,
      "text": "package main",
      "top": 55.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0002",
      "page": 14,
      "ordinal": 2,
      "text": "import (",
      "top": 97.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0003",
      "page": 14,
      "ordinal": 3,
      "text": "    \"unicode\"",
      "top": 118.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0004",
      "page": 14,
      "ordinal": 4,
      "text": ")",
      "top": 140.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0005",
      "page": 14,
      "ordinal": 5,
      "text": "const (",
      "top": 181.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0006",
      "page": 14,
      "ordinal": 6,
      "text": "    Left = iota",
      "top": 203.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0007",
      "page": 14,
      "ordinal": 7,
      "text": "    Top",
      "top": 224.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0008",
      "page": 14,
      "ordinal": 8,
      "text": "    Right",
      "top": 244.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0009",
      "page": 14,
      "ordinal": 9,
      "text": "    Bottom",
      "top": 266.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0010",
      "page": 14,
      "ordinal": 10,
      "text": ")",
      "top": 287.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0011",
      "page": 14,
      "ordinal": 11,
      "text": "func main() {",
      "top": 329.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0012",
      "page": 14,
      "ordinal": 12,
      "text": "    println(move(\"R2(LF)\", 0, 0, Top))",
      "top": 350.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0013",
      "page": 14,
      "ordinal": 13,
      "text": "}",
      "top": 371.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0014",
      "page": 14,
      "ordinal": 14,
      "text": "func move(cmd string, x0 int, y0 int, z0 int) (x, y, z int) {",
      "top": 393.0,
      "left": 126.0,
      "width": 484.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0015",
      "page": 14,
      "ordinal": 15,
      "text": "    x, y, z = x0, y0, z0",
      "top": 413.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0016",
      "page": 14,
      "ordinal": 16,
      "text": "    repeat := 0",
      "top": 434.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0017",
      "page": 14,
      "ordinal": 17,
      "text": "    repeatCmd := \"\"",
      "top": 456.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0018",
      "page": 14,
      "ordinal": 18,
      "text": "    for _, s := range cmd {",
      "top": 476.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0019",
      "page": 14,
      "ordinal": 19,
      "text": "        switch {",
      "top": 497.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0020",
      "page": 14,
      "ordinal": 20,
      "text": "        case unicode.IsNumber(s):",
      "top": 519.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0021",
      "page": 14,
      "ordinal": 21,
      "text": "            repeat = repeat*10 + (int(s) - '0')",
      "top": 540.0,
      "left": 126.0,
      "width": 373.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0022",
      "page": 14,
      "ordinal": 22,
      "text": "        case s == ')':",
      "top": 560.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0023",
      "page": 14,
      "ordinal": 23,
      "text": "            for i := 0; i < repeat; i++ {",
      "top": 582.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0024",
      "page": 14,
      "ordinal": 24,
      "text": "                x, y, z = move(repeatCmd, x, y, z)",
      "top": 603.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0025",
      "page": 14,
      "ordinal": 25,
      "text": "            }",
      "top": 623.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0026",
      "page": 14,
      "ordinal": 26,
      "text": "            repeat = 0",
      "top": 645.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0027",
      "page": 14,
      "ordinal": 27,
      "text": "            repeatCmd = \"\"",
      "top": 666.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0028",
      "page": 14,
      "ordinal": 28,
      "text": "        case repeat > 0 && s != '(' && s != ')':",
      "top": 687.0,
      "left": 126.0,
      "width": 381.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0029",
      "page": 14,
      "ordinal": 29,
      "text": "            repeatCmd = repeatCmd + string(s)",
      "top": 708.0,
      "left": 126.0,
      "width": 357.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0030",
      "page": 14,
      "ordinal": 30,
      "text": "        case s == 'L':",
      "top": 729.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0031",
      "page": 14,
      "ordinal": 31,
      "text": "            z = (z + 1) % 4",
      "top": 750.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0032",
      "page": 14,
      "ordinal": 32,
      "text": "        case s == 'R':",
      "top": 771.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0033",
      "page": 14,
      "ordinal": 33,
      "text": "            z = (z - 1 + 4) % 4",
      "top": 792.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0034",
      "page": 14,
      "ordinal": 34,
      "text": "        case s == 'F':",
      "top": 813.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0035",
      "page": 14,
      "ordinal": 35,
      "text": "            switch {",
      "top": 835.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0036",
      "page": 14,
      "ordinal": 36,
      "text": "            case z == Left || z == Right:",
      "top": 855.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0037",
      "page": 14,
      "ordinal": 37,
      "text": "                x = x - z + 1",
      "top": 876.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0038",
      "page": 14,
      "ordinal": 38,
      "text": "            case z == Top || z == Bottom:",
      "top": 898.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0039",
      "page": 14,
      "ordinal": 39,
      "text": "                y = y - z + 2",
      "top": 918.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0040",
      "page": 14,
      "ordinal": 40,
      "text": "            }",
      "top": 939.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0041",
      "page": 14,
      "ordinal": 41,
      "text": "        case s == 'B':",
      "top": 961.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0042",
      "page": 14,
      "ordinal": 42,
      "text": "            switch {",
      "top": 982.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0043",
      "page": 14,
      "ordinal": 43,
      "text": "            case z == Left || z == Right:",
      "top": 1002.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0044",
      "page": 14,
      "ordinal": 44,
      "text": "                x = x + z - 1",
      "top": 1024.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0045",
      "page": 14,
      "ordinal": 45,
      "text": "            case z == Top || z == Bottom:",
      "top": 1045.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0046",
      "page": 14,
      "ordinal": 46,
      "text": "                y = y + z - 2",
      "top": 1067.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0047",
      "page": 14,
      "ordinal": 47,
      "text": "            }",
      "top": 1087.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0048",
      "page": 14,
      "ordinal": 48,
      "text": "        }",
      "top": 1108.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0049",
      "page": 14,
      "ordinal": 49,
      "text": "    }",
      "top": 1130.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0050",
      "page": 14,
      "ordinal": 50,
      "text": "    return",
      "top": 1150.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p014-t0051",
      "page": 14,
      "ordinal": 51,
      "text": "}",
      "top": 1171.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b006"
      }
    },
    {
      "id": "p015-t0001",
      "page": 15,
      "ordinal": 1,
      "text": "4. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b007"
      }
    },
    {
      "id": "p015-t0002",
      "page": 15,
      "ordinal": 2,
      "text": "源码解析",
      "top": 44.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b007"
      }
    },
    {
      "id": "p015-t0004",
      "page": 15,
      "ordinal": 4,
      "text": "这⾥使⽤三个值表示机器⼈当前的状况，分别是：",
      "top": 78.0,
      "left": 116.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0005",
      "page": 15,
      "ordinal": 5,
      "text": "x",
      "top": 78.0,
      "left": 437.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0006",
      "page": 15,
      "ordinal": 6,
      "text": "表示",
      "top": 78.0,
      "left": 445.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0007",
      "page": 15,
      "ordinal": 7,
      "text": "x",
      "top": 78.0,
      "left": 474.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0008",
      "page": 15,
      "ordinal": 8,
      "text": "坐标，",
      "top": 78.0,
      "left": 482.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0009",
      "page": 15,
      "ordinal": 9,
      "text": "y",
      "top": 78.0,
      "left": 526.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0010",
      "page": 15,
      "ordinal": 10,
      "text": "表示",
      "top": 78.0,
      "left": 533.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0011",
      "page": 15,
      "ordinal": 11,
      "text": "y",
      "top": 78.0,
      "left": 562.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0012",
      "page": 15,
      "ordinal": 12,
      "text": "坐标，",
      "top": 78.0,
      "left": 570.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0013",
      "page": 15,
      "ordinal": 13,
      "text": "z",
      "top": 78.0,
      "left": 614.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0014",
      "page": 15,
      "ordinal": 14,
      "text": "表示当",
      "top": 78.0,
      "left": 620.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0016",
      "page": 15,
      "ordinal": 16,
      "text": "前⽅向。",
      "top": 78.0,
      "left": 668.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0017",
      "page": 15,
      "ordinal": 17,
      "text": " L",
      "top": 78.0,
      "left": 727.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0018",
      "page": 15,
      "ordinal": 18,
      "text": "、",
      "top": 78.0,
      "left": 738.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0019",
      "page": 15,
      "ordinal": 19,
      "text": "R ",
      "top": 78.0,
      "left": 753.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0020",
      "page": 15,
      "ordinal": 20,
      "text": "命",
      "top": 78.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0021",
      "page": 15,
      "ordinal": 21,
      "text": "令会改变值",
      "top": 102.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0022",
      "page": 15,
      "ordinal": 22,
      "text": "z",
      "top": 102.0,
      "left": 185.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0023",
      "page": 15,
      "ordinal": 23,
      "text": "，",
      "top": 102.0,
      "left": 192.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0024",
      "page": 15,
      "ordinal": 24,
      "text": "F",
      "top": 102.0,
      "left": 206.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0025",
      "page": 15,
      "ordinal": 25,
      "text": "、",
      "top": 102.0,
      "left": 214.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0026",
      "page": 15,
      "ordinal": 26,
      "text": "B",
      "top": 102.0,
      "left": 229.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0027",
      "page": 15,
      "ordinal": 27,
      "text": "命令会改变值",
      "top": 102.0,
      "left": 238.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0028",
      "page": 15,
      "ordinal": 28,
      "text": "x",
      "top": 102.0,
      "left": 326.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0029",
      "page": 15,
      "ordinal": 29,
      "text": "、",
      "top": 102.0,
      "left": 333.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0030",
      "page": 15,
      "ordinal": 30,
      "text": "y",
      "top": 102.0,
      "left": 348.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0031",
      "page": 15,
      "ordinal": 31,
      "text": "。",
      "top": 102.0,
      "left": 355.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0033",
      "page": 15,
      "ordinal": 33,
      "text": "值",
      "top": 102.0,
      "left": 374.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0034",
      "page": 15,
      "ordinal": 34,
      "text": "x",
      "top": 102.0,
      "left": 388.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0035",
      "page": 15,
      "ordinal": 35,
      "text": "、",
      "top": 102.0,
      "left": 396.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0036",
      "page": 15,
      "ordinal": 36,
      "text": "y",
      "top": 102.0,
      "left": 411.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0037",
      "page": 15,
      "ordinal": 37,
      "text": "的改变还受当前的",
      "top": 102.0,
      "left": 418.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0038",
      "page": 15,
      "ordinal": 38,
      "text": "z",
      "top": 102.0,
      "left": 535.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0039",
      "page": 15,
      "ordinal": 39,
      "text": "值",
      "top": 102.0,
      "left": 542.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0041",
      "page": 15,
      "ordinal": 41,
      "text": "影响。",
      "top": 102.0,
      "left": 560.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0043",
      "page": 15,
      "ordinal": 43,
      "text": "如果是重复指令，那么将",
      "top": 102.0,
      "left": 608.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0044",
      "page": 15,
      "ordinal": 44,
      "text": "重复次数和重复的指令存起来递归调⽤即可",
      "top": 126.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p013-h04",
        "heading_id": "p013-h04",
        "block_id": "q-p013-h04-b008"
      }
    },
    {
      "id": "p015-t0046",
      "page": 15,
      "ordinal": 46,
      "text": "nil",
      "top": 160.0,
      "left": 112.0,
      "width": 32.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01"
      }
    },
    {
      "id": "p015-t0047",
      "page": 15,
      "ordinal": 47,
      "text": "切片和空切片的区别",
      "top": 160.0,
      "left": 144.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01"
      }
    },
    {
      "id": "p015-t0049",
      "page": 15,
      "ordinal": 49,
      "text": "1. nil",
      "top": 210.0,
      "left": 129.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b001"
      }
    },
    {
      "id": "p015-t0050",
      "page": 15,
      "ordinal": 50,
      "text": "切片表示该切片尚未初始化，仅有一个类型声明，并不存在示例。引用数组指针地址为",
      "top": 210.0,
      "left": 162.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b001"
      }
    },
    {
      "id": "p015-t0051",
      "page": 15,
      "ordinal": 51,
      "text": "0",
      "top": 210.0,
      "left": 718.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b001"
      }
    },
    {
      "id": "p015-t0052",
      "page": 15,
      "ordinal": 52,
      "text": "。",
      "top": 210.0,
      "left": 726.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b001"
      }
    },
    {
      "id": "p015-t0053",
      "page": 15,
      "ordinal": 53,
      "text": "2. ",
      "top": 242.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b002"
      }
    },
    {
      "id": "p015-t0054",
      "page": 15,
      "ordinal": 54,
      "text": "空切片表示该切片以及被初始化，有一个切实存在的对象，只是该切片的元素个数为",
      "top": 242.0,
      "left": 146.0,
      "width": 541.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b002"
      }
    },
    {
      "id": "p015-t0055",
      "page": 15,
      "ordinal": 55,
      "text": "0",
      "top": 242.0,
      "left": 687.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b002"
      }
    },
    {
      "id": "p015-t0056",
      "page": 15,
      "ordinal": 56,
      "text": "。引用的数",
      "top": 242.0,
      "left": 695.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b002"
      }
    },
    {
      "id": "p015-t0057",
      "page": 15,
      "ordinal": 57,
      "text": "组指针地址也是一个存在的内存地址",
      "top": 265.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b002"
      }
    },
    {
      "id": "p015-t0058",
      "page": 15,
      "ordinal": 58,
      "text": "例如：",
      "top": 300.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b003"
      }
    },
    {
      "id": "p015-t0059",
      "page": 15,
      "ordinal": 59,
      "text": "切片数据结构",
      "top": 838.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b005"
      }
    },
    {
      "id": "p015-t0060",
      "page": 15,
      "ordinal": 60,
      "text": "字符串转成",
      "top": 1015.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02"
      }
    },
    {
      "id": "p015-t0061",
      "page": 15,
      "ordinal": 61,
      "text": "byte",
      "top": 1015.0,
      "left": 240.0,
      "width": 57.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02"
      }
    },
    {
      "id": "p015-t0062",
      "page": 15,
      "ordinal": 62,
      "text": "切片，无内存拷贝的实现",
      "top": 1015.0,
      "left": 297.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02"
      }
    },
    {
      "id": "p015-t0064",
      "page": 15,
      "ordinal": 64,
      "text": "1. ",
      "top": 1066.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b001"
      }
    },
    {
      "id": "p015-t0065",
      "page": 15,
      "ordinal": 65,
      "text": "源码参考",
      "top": 1066.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b001"
      }
    },
    {
      "id": "p015-t0066",
      "page": 15,
      "ordinal": 66,
      "text": "package main",
      "top": 352.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0067",
      "page": 15,
      "ordinal": 67,
      "text": "import (",
      "top": 394.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0068",
      "page": 15,
      "ordinal": 68,
      "text": "    \"fmt\"",
      "top": 415.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0069",
      "page": 15,
      "ordinal": 69,
      "text": "    \"reflect\"",
      "top": 435.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0070",
      "page": 15,
      "ordinal": 70,
      "text": "    \"unsafe\"",
      "top": 457.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0071",
      "page": 15,
      "ordinal": 71,
      "text": ")",
      "top": 478.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0072",
      "page": 15,
      "ordinal": 72,
      "text": "func main() {",
      "top": 520.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0073",
      "page": 15,
      "ordinal": 73,
      "text": "    var s1 []int",
      "top": 563.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0074",
      "page": 15,
      "ordinal": 74,
      "text": "    s2 := make([]int, 0)",
      "top": 583.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0075",
      "page": 15,
      "ordinal": 75,
      "text": "    s4 := make([]int, 0)",
      "top": 604.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0076",
      "page": 15,
      "ordinal": 76,
      "text": "    fmt.Printf(\"s1 pointer:%+v, s2 pointer:%+v, s4 pointer:%+v, \\n\", *",
      "top": 647.0,
      "left": 126.0,
      "width": 555.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0077",
      "page": 15,
      "ordinal": 77,
      "text": "(*reflect.SliceHeader)(unsafe.Pointer(&s1)), *(*reflect.SliceHeader)",
      "top": 667.0,
      "left": 126.0,
      "width": 539.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0078",
      "page": 15,
      "ordinal": 78,
      "text": "(unsafe.Pointer(&s2)), *(*reflect.SliceHeader)(unsafe.Pointer(&s4)))",
      "top": 689.0,
      "left": 126.0,
      "width": 539.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0079",
      "page": 15,
      "ordinal": 79,
      "text": "    fmt.Printf(\"%v\\n\", (*(*reflect.SliceHeader)(unsafe.Pointer(&s1))).Data == (*",
      "top": 710.0,
      "left": 126.0,
      "width": 634.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0080",
      "page": 15,
      "ordinal": 80,
      "text": "(*reflect.SliceHeader)(unsafe.Pointer(&s2))).Data)",
      "top": 730.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0081",
      "page": 15,
      "ordinal": 81,
      "text": "    fmt.Printf(\"%v\\n\", (*(*reflect.SliceHeader)(unsafe.Pointer(&s2))).Data == (*",
      "top": 752.0,
      "left": 126.0,
      "width": 634.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0082",
      "page": 15,
      "ordinal": 82,
      "text": "(*reflect.SliceHeader)(unsafe.Pointer(&s4))).Data)",
      "top": 773.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0083",
      "page": 15,
      "ordinal": 83,
      "text": "}",
      "top": 794.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b004"
      }
    },
    {
      "id": "p015-t0084",
      "page": 15,
      "ordinal": 84,
      "text": "type SliceHeader struct {",
      "top": 890.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0085",
      "page": 15,
      "ordinal": 85,
      "text": " Data uintptr  //",
      "top": 911.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0086",
      "page": 15,
      "ordinal": 86,
      "text": "引用数组指针地址",
      "top": 910.0,
      "left": 261.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0087",
      "page": 15,
      "ordinal": 87,
      "text": " Len  int     // ",
      "top": 933.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0088",
      "page": 15,
      "ordinal": 88,
      "text": "切片的目前使用长度",
      "top": 932.0,
      "left": 261.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0089",
      "page": 15,
      "ordinal": 89,
      "text": " Cap  int     // ",
      "top": 953.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0090",
      "page": 15,
      "ordinal": 90,
      "text": "切片的容量",
      "top": 952.0,
      "left": 261.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0091",
      "page": 15,
      "ordinal": 91,
      "text": "}",
      "top": 974.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p015-h01",
        "heading_id": "p015-h01",
        "block_id": "q-p015-h01-b006"
      }
    },
    {
      "id": "p015-t0092",
      "page": 15,
      "ordinal": 92,
      "text": "package main",
      "top": 1117.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p015-t0093",
      "page": 15,
      "ordinal": 93,
      "text": "import (",
      "top": 1160.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p015-t0094",
      "page": 15,
      "ordinal": 94,
      "text": "    \"fmt\"",
      "top": 1181.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p015-t0095",
      "page": 15,
      "ordinal": 95,
      "text": "    \"reflect\"",
      "top": 1202.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0001",
      "page": 16,
      "ordinal": 1,
      "text": "2. ",
      "top": 321.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b003"
      }
    },
    {
      "id": "p016-t0002",
      "page": 16,
      "ordinal": 2,
      "text": "源码分析",
      "top": 321.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b003"
      }
    },
    {
      "id": "p016-t0003",
      "page": 16,
      "ordinal": 3,
      "text": "unsafe.Pointer(&a)",
      "top": 788.0,
      "left": 112.0,
      "width": 127.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0004",
      "page": 16,
      "ordinal": 4,
      "text": "方法可以得到变量",
      "top": 788.0,
      "left": 239.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0005",
      "page": 16,
      "ordinal": 5,
      "text": "a",
      "top": 788.0,
      "left": 356.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0006",
      "page": 16,
      "ordinal": 6,
      "text": "的地址",
      "top": 788.0,
      "left": 364.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0007",
      "page": 16,
      "ordinal": 7,
      "text": "(",
      "top": 812.0,
      "left": 112.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0008",
      "page": 16,
      "ordinal": 8,
      "text": "reflect.StringHeader)(unsafe.Pointer(&a)) ",
      "top": 812.0,
      "left": 116.0,
      "width": 264.0,
      "height": 20.0,
      "font": "12",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0009",
      "page": 16,
      "ordinal": 9,
      "text": "可以把字符串",
      "top": 811.0,
      "left": 380.0,
      "width": 88.0,
      "height": 20.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0010",
      "page": 16,
      "ordinal": 10,
      "text": "a",
      "top": 812.0,
      "left": 468.0,
      "width": 8.0,
      "height": 20.0,
      "font": "12",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0011",
      "page": 16,
      "ordinal": 11,
      "text": "转成底层结构的形式",
      "top": 811.0,
      "left": 476.0,
      "width": 132.0,
      "height": 20.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0012",
      "page": 16,
      "ordinal": 12,
      "text": "(",
      "top": 836.0,
      "left": 112.0,
      "width": 4.0,
      "height": 20.0,
      "font": "12",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0013",
      "page": 16,
      "ordinal": 13,
      "text": "[]byte)(unsafe.Pointer(&ssh)) ",
      "top": 836.0,
      "left": 116.0,
      "width": 198.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0014",
      "page": 16,
      "ordinal": 14,
      "text": "可以把",
      "top": 836.0,
      "left": 314.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0015",
      "page": 16,
      "ordinal": 15,
      "text": "ssh",
      "top": 836.0,
      "left": 358.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0016",
      "page": 16,
      "ordinal": 16,
      "text": "底层结构体转成",
      "top": 836.0,
      "left": 381.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0017",
      "page": 16,
      "ordinal": 17,
      "text": "byte",
      "top": 836.0,
      "left": 483.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0018",
      "page": 16,
      "ordinal": 18,
      "text": "的切片的指针",
      "top": 836.0,
      "left": 513.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0019",
      "page": 16,
      "ordinal": 19,
      "text": "再通过",
      "top": 858.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0020",
      "page": 16,
      "ordinal": 20,
      "text": " *",
      "top": 858.0,
      "left": 156.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0021",
      "page": 16,
      "ordinal": 21,
      "text": "转为指针指向的实际内容",
      "top": 858.0,
      "left": 167.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b009"
      }
    },
    {
      "id": "p016-t0022",
      "page": 16,
      "ordinal": 22,
      "text": "如何获取结构体",
      "top": 893.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01"
      }
    },
    {
      "id": "p016-t0023",
      "page": 16,
      "ordinal": 23,
      "text": "tag",
      "top": 893.0,
      "left": 291.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01"
      }
    },
    {
      "id": "p016-t0024",
      "page": 16,
      "ordinal": 24,
      "text": "信息",
      "top": 893.0,
      "left": 332.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01"
      }
    },
    {
      "id": "p016-t0026",
      "page": 16,
      "ordinal": 26,
      "text": "tag ",
      "top": 944.0,
      "left": 112.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b001"
      }
    },
    {
      "id": "p016-t0027",
      "page": 16,
      "ordinal": 27,
      "text": "信息可以通过反射（",
      "top": 944.0,
      "left": 137.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b001"
      }
    },
    {
      "id": "p016-t0028",
      "page": 16,
      "ordinal": 28,
      "text": "reflect",
      "top": 944.0,
      "left": 268.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b001"
      }
    },
    {
      "id": "p016-t0029",
      "page": 16,
      "ordinal": 29,
      "text": "包）获取。",
      "top": 944.0,
      "left": 312.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b001"
      }
    },
    {
      "id": "p016-t0030",
      "page": 16,
      "ordinal": 30,
      "text": "示例代码：",
      "top": 967.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b001"
      }
    },
    {
      "id": "p016-t0031",
      "page": 16,
      "ordinal": 31,
      "text": "    \"unsafe\"",
      "top": 45.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0032",
      "page": 16,
      "ordinal": 32,
      "text": ")",
      "top": 66.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0033",
      "page": 16,
      "ordinal": 33,
      "text": "func main() {",
      "top": 108.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0034",
      "page": 16,
      "ordinal": 34,
      "text": "    a := \"abc\"",
      "top": 129.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0035",
      "page": 16,
      "ordinal": 35,
      "text": "    ssh := *(*reflect.StringHeader)(unsafe.Pointer(&a))",
      "top": 151.0,
      "left": 126.0,
      "width": 436.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0036",
      "page": 16,
      "ordinal": 36,
      "text": "    fmt.Printf(\"%+v\\n\", ssh)",
      "top": 171.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0037",
      "page": 16,
      "ordinal": 37,
      "text": "    b := *(*[]byte)(unsafe.Pointer(&ssh))",
      "top": 192.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0038",
      "page": 16,
      "ordinal": 38,
      "text": "    fmt.Printf(\"%+v\\n\", b)",
      "top": 214.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0039",
      "page": 16,
      "ordinal": 39,
      "text": "    fmt.Printf(\"%+v\\n\", *(*reflect.SliceHeader)(unsafe.Pointer(&b)))",
      "top": 234.0,
      "left": 126.0,
      "width": 539.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0040",
      "page": 16,
      "ordinal": 40,
      "text": "}",
      "top": 255.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b002"
      }
    },
    {
      "id": "p016-t0041",
      "page": 16,
      "ordinal": 41,
      "text": "StringHeader ",
      "top": 372.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b004"
      }
    },
    {
      "id": "p016-t0042",
      "page": 16,
      "ordinal": 42,
      "text": "是字符串在",
      "top": 372.0,
      "left": 229.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b004"
      }
    },
    {
      "id": "p016-t0043",
      "page": 16,
      "ordinal": 43,
      "text": "go",
      "top": 372.0,
      "left": 295.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b004"
      }
    },
    {
      "id": "p016-t0044",
      "page": 16,
      "ordinal": 44,
      "text": "的底层结构",
      "top": 372.0,
      "left": 311.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b004"
      }
    },
    {
      "id": "p016-t0045",
      "page": 16,
      "ordinal": 45,
      "text": "type StringHeader struct {",
      "top": 429.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b005"
      }
    },
    {
      "id": "p016-t0046",
      "page": 16,
      "ordinal": 46,
      "text": " Data uintptr",
      "top": 450.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b005"
      }
    },
    {
      "id": "p016-t0047",
      "page": 16,
      "ordinal": 47,
      "text": " Len  int",
      "top": 471.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b005"
      }
    },
    {
      "id": "p016-t0048",
      "page": 16,
      "ordinal": 48,
      "text": "}",
      "top": 492.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b005"
      }
    },
    {
      "id": "p016-t0049",
      "page": 16,
      "ordinal": 49,
      "text": "SliceHeader ",
      "top": 548.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b006"
      }
    },
    {
      "id": "p016-t0050",
      "page": 16,
      "ordinal": 50,
      "text": "是切片在",
      "top": 547.0,
      "left": 222.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b006"
      }
    },
    {
      "id": "p016-t0051",
      "page": 16,
      "ordinal": 51,
      "text": "go",
      "top": 548.0,
      "left": 274.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b006"
      }
    },
    {
      "id": "p016-t0052",
      "page": 16,
      "ordinal": 52,
      "text": "的底层结构",
      "top": 547.0,
      "left": 290.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b006"
      }
    },
    {
      "id": "p016-t0053",
      "page": 16,
      "ordinal": 53,
      "text": "type SliceHeader struct {",
      "top": 604.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b007"
      }
    },
    {
      "id": "p016-t0054",
      "page": 16,
      "ordinal": 54,
      "text": " Data uintptr",
      "top": 624.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b007"
      }
    },
    {
      "id": "p016-t0055",
      "page": 16,
      "ordinal": 55,
      "text": " Len  int",
      "top": 646.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b007"
      }
    },
    {
      "id": "p016-t0056",
      "page": 16,
      "ordinal": 56,
      "text": " Cap  int",
      "top": 667.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b007"
      }
    },
    {
      "id": "p016-t0057",
      "page": 16,
      "ordinal": 57,
      "text": "}",
      "top": 689.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b007"
      }
    },
    {
      "id": "p016-t0058",
      "page": 16,
      "ordinal": 58,
      "text": "在底层转换二者，只需要把",
      "top": 743.0,
      "left": 126.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b008"
      }
    },
    {
      "id": "p016-t0059",
      "page": 16,
      "ordinal": 59,
      "text": " StringHeader ",
      "top": 744.0,
      "left": 284.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b008"
      }
    },
    {
      "id": "p016-t0060",
      "page": 16,
      "ordinal": 60,
      "text": "的地址强转成",
      "top": 743.0,
      "left": 395.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b008"
      }
    },
    {
      "id": "p016-t0061",
      "page": 16,
      "ordinal": 61,
      "text": " SliceHeader ",
      "top": 744.0,
      "left": 474.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b008"
      }
    },
    {
      "id": "p016-t0062",
      "page": 16,
      "ordinal": 62,
      "text": "就行。",
      "top": 743.0,
      "left": 577.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p015-h02",
        "heading_id": "p015-h02",
        "block_id": "q-p015-h02-b008"
      }
    },
    {
      "id": "p016-t0063",
      "page": 16,
      "ordinal": 63,
      "text": "package main",
      "top": 1019.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0064",
      "page": 16,
      "ordinal": 64,
      "text": "import (",
      "top": 1061.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0065",
      "page": 16,
      "ordinal": 65,
      "text": "    \"fmt\"",
      "top": 1082.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0066",
      "page": 16,
      "ordinal": 66,
      "text": "    \"reflect\"",
      "top": 1104.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0067",
      "page": 16,
      "ordinal": 67,
      "text": ")",
      "top": 1124.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0068",
      "page": 16,
      "ordinal": 68,
      "text": "type J struct {",
      "top": 1167.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0069",
      "page": 16,
      "ordinal": 69,
      "text": "    a string //",
      "top": 1187.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0070",
      "page": 16,
      "ordinal": 70,
      "text": "小写无",
      "top": 1186.0,
      "left": 245.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p016-t0071",
      "page": 16,
      "ordinal": 71,
      "text": "tag",
      "top": 1187.0,
      "left": 285.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0001",
      "page": 17,
      "ordinal": 1,
      "text": "下列代码会造成死循环吗？",
      "top": 550.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01"
      }
    },
    {
      "id": "p017-t0003",
      "page": 17,
      "ordinal": 3,
      "text": "不会死循环，",
      "top": 868.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0004",
      "page": 17,
      "ordinal": 4,
      "text": "for range",
      "top": 868.0,
      "left": 200.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0005",
      "page": 17,
      "ordinal": 5,
      "text": "其实是",
      "top": 868.0,
      "left": 262.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0006",
      "page": 17,
      "ordinal": 6,
      "text": "golang",
      "top": 868.0,
      "left": 306.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0007",
      "page": 17,
      "ordinal": 7,
      "text": "的语法糖，在循环开始前会获取切片的长度",
      "top": 868.0,
      "left": 352.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0008",
      "page": 17,
      "ordinal": 8,
      "text": " len(",
      "top": 868.0,
      "left": 630.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0009",
      "page": 17,
      "ordinal": 9,
      "text": "切片",
      "top": 868.0,
      "left": 659.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0010",
      "page": 17,
      "ordinal": 10,
      "text": ")",
      "top": 868.0,
      "left": 688.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0011",
      "page": 17,
      "ordinal": 11,
      "text": "，然后再执行",
      "top": 868.0,
      "left": 692.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0012",
      "page": 17,
      "ordinal": 12,
      "text": "len(",
      "top": 892.0,
      "left": 112.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0013",
      "page": 17,
      "ordinal": 13,
      "text": "切片",
      "top": 892.0,
      "left": 137.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0014",
      "page": 17,
      "ordinal": 14,
      "text": ")",
      "top": 892.0,
      "left": 166.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0015",
      "page": 17,
      "ordinal": 15,
      "text": "次数的循环",
      "top": 892.0,
      "left": 171.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b002"
      }
    },
    {
      "id": "p017-t0016",
      "page": 17,
      "ordinal": 16,
      "text": "uintptr",
      "top": 926.0,
      "left": 112.0,
      "width": 91.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02"
      }
    },
    {
      "id": "p017-t0017",
      "page": 17,
      "ordinal": 17,
      "text": "和",
      "top": 926.0,
      "left": 203.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02"
      }
    },
    {
      "id": "p017-t0018",
      "page": 17,
      "ordinal": 18,
      "text": "unsafe.Pointer",
      "top": 926.0,
      "left": 229.0,
      "width": 189.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02"
      }
    },
    {
      "id": "p017-t0019",
      "page": 17,
      "ordinal": 19,
      "text": "的区别",
      "top": 926.0,
      "left": 417.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02"
      }
    },
    {
      "id": "p017-t0021",
      "page": 17,
      "ordinal": 21,
      "text": "1. unsafe.Pointer",
      "top": 977.0,
      "left": 129.0,
      "width": 116.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b001"
      }
    },
    {
      "id": "p017-t0022",
      "page": 17,
      "ordinal": 22,
      "text": "只是单纯的通用指针类型，用于转换不同类型指针，它不可以参与指针运算；",
      "top": 977.0,
      "left": 245.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b001"
      }
    },
    {
      "id": "p017-t0023",
      "page": 17,
      "ordinal": 23,
      "text": "2. uintptr",
      "top": 1008.0,
      "left": 129.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0024",
      "page": 17,
      "ordinal": 24,
      "text": "是用于指针运算的，",
      "top": 1008.0,
      "left": 192.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0025",
      "page": 17,
      "ordinal": 25,
      "text": "GC ",
      "top": 1008.0,
      "left": 324.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0026",
      "page": 17,
      "ordinal": 26,
      "text": "不把",
      "top": 1008.0,
      "left": 348.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0027",
      "page": 17,
      "ordinal": 27,
      "text": " uintptr ",
      "top": 1008.0,
      "left": 377.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0028",
      "page": 17,
      "ordinal": 28,
      "text": "当指针，也就是说",
      "top": 1008.0,
      "left": 431.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0029",
      "page": 17,
      "ordinal": 29,
      "text": " uintptr ",
      "top": 1008.0,
      "left": 548.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0030",
      "page": 17,
      "ordinal": 30,
      "text": "无法持有对象，",
      "top": 1008.0,
      "left": 603.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0031",
      "page": 17,
      "ordinal": 31,
      "text": " uintptr ",
      "top": 1008.0,
      "left": 705.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0032",
      "page": 17,
      "ordinal": 32,
      "text": "类",
      "top": 1008.0,
      "left": 760.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0033",
      "page": 17,
      "ordinal": 33,
      "text": "型的目标会被回收；",
      "top": 1031.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b002"
      }
    },
    {
      "id": "p017-t0034",
      "page": 17,
      "ordinal": 34,
      "text": "3. unsafe.Pointer ",
      "top": 1062.0,
      "left": 129.0,
      "width": 120.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b003"
      }
    },
    {
      "id": "p017-t0035",
      "page": 17,
      "ordinal": 35,
      "text": "可以和",
      "top": 1062.0,
      "left": 249.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b003"
      }
    },
    {
      "id": "p017-t0037",
      "page": 17,
      "ordinal": 37,
      "text": "普通指针",
      "top": 1062.0,
      "left": 297.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b003"
      }
    },
    {
      "id": "p017-t0039",
      "page": 17,
      "ordinal": 39,
      "text": "进行相互转换",
      "top": 1062.0,
      "left": 359.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b003"
      }
    },
    {
      "id": "p017-t0040",
      "page": 17,
      "ordinal": 40,
      "text": "4. unsafe.Pointer ",
      "top": 1092.0,
      "left": 129.0,
      "width": 120.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b004"
      }
    },
    {
      "id": "p017-t0041",
      "page": 17,
      "ordinal": 41,
      "text": "可以和",
      "top": 1092.0,
      "left": 249.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b004"
      }
    },
    {
      "id": "p017-t0042",
      "page": 17,
      "ordinal": 42,
      "text": " uintptr ",
      "top": 1092.0,
      "left": 293.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b004"
      }
    },
    {
      "id": "p017-t0043",
      "page": 17,
      "ordinal": 43,
      "text": "进行相互转换",
      "top": 1092.0,
      "left": 347.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b004"
      }
    },
    {
      "id": "p017-t0044",
      "page": 17,
      "ordinal": 44,
      "text": "示例代码：",
      "top": 1128.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b005"
      }
    },
    {
      "id": "p017-t0045",
      "page": 17,
      "ordinal": 45,
      "text": "    b string `json:\"B\"` //",
      "top": 45.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0046",
      "page": 17,
      "ordinal": 46,
      "text": "小写",
      "top": 44.0,
      "left": 333.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0047",
      "page": 17,
      "ordinal": 47,
      "text": "+tag",
      "top": 45.0,
      "left": 359.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0048",
      "page": 17,
      "ordinal": 48,
      "text": "    C string //",
      "top": 66.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0049",
      "page": 17,
      "ordinal": 49,
      "text": "大写无",
      "top": 66.0,
      "left": 245.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0050",
      "page": 17,
      "ordinal": 50,
      "text": "tag",
      "top": 66.0,
      "left": 285.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0051",
      "page": 17,
      "ordinal": 51,
      "text": "    D string `json:\"DD\" otherTag:\"good\"` //",
      "top": 87.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0052",
      "page": 17,
      "ordinal": 52,
      "text": "大写",
      "top": 86.0,
      "left": 467.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0053",
      "page": 17,
      "ordinal": 53,
      "text": "+tag",
      "top": 87.0,
      "left": 494.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0054",
      "page": 17,
      "ordinal": 54,
      "text": "}",
      "top": 108.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0055",
      "page": 17,
      "ordinal": 55,
      "text": "func printTag(stru interface{}) {",
      "top": 151.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0056",
      "page": 17,
      "ordinal": 56,
      "text": "    t := reflect.TypeOf(stru).Elem()",
      "top": 171.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0057",
      "page": 17,
      "ordinal": 57,
      "text": "    for i := 0; i < t.NumField(); i++ {",
      "top": 192.0,
      "left": 126.0,
      "width": 309.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0058",
      "page": 17,
      "ordinal": 58,
      "text": "        fmt.Printf(\"",
      "top": 214.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0059",
      "page": 17,
      "ordinal": 59,
      "text": "结构体内第",
      "top": 213.0,
      "left": 285.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0060",
      "page": 17,
      "ordinal": 60,
      "text": "%v",
      "top": 214.0,
      "left": 351.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0061",
      "page": 17,
      "ordinal": 61,
      "text": "个字段",
      "top": 213.0,
      "left": 367.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0062",
      "page": 17,
      "ordinal": 62,
      "text": " %v ",
      "top": 214.0,
      "left": 406.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0063",
      "page": 17,
      "ordinal": 63,
      "text": "对应的",
      "top": 213.0,
      "left": 438.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0064",
      "page": 17,
      "ordinal": 64,
      "text": "json tag",
      "top": 214.0,
      "left": 477.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0065",
      "page": 17,
      "ordinal": 65,
      "text": "是",
      "top": 213.0,
      "left": 541.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0066",
      "page": 17,
      "ordinal": 66,
      "text": " %v , ",
      "top": 214.0,
      "left": 554.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0067",
      "page": 17,
      "ordinal": 67,
      "text": "还有",
      "top": 213.0,
      "left": 602.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0068",
      "page": 17,
      "ordinal": 68,
      "text": "otherTag",
      "top": 214.0,
      "left": 628.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0069",
      "page": 17,
      "ordinal": 69,
      "text": "？",
      "top": 213.0,
      "left": 691.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0070",
      "page": 17,
      "ordinal": 70,
      "text": " = %v ",
      "top": 214.0,
      "left": 705.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0071",
      "page": 17,
      "ordinal": 71,
      "text": "\\n\", i+1, t.Field(i).Name, t.Field(i).Tag.Get(\"json\"), ",
      "top": 234.0,
      "left": 126.0,
      "width": 436.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0072",
      "page": 17,
      "ordinal": 72,
      "text": "t.Field(i).Tag.Get(\"otherTag\"))",
      "top": 255.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0073",
      "page": 17,
      "ordinal": 73,
      "text": " }",
      "top": 277.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0074",
      "page": 17,
      "ordinal": 74,
      "text": "}",
      "top": 298.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0075",
      "page": 17,
      "ordinal": 75,
      "text": "func main() {",
      "top": 340.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0076",
      "page": 17,
      "ordinal": 76,
      "text": "    j := J{",
      "top": 361.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0077",
      "page": 17,
      "ordinal": 77,
      "text": "      a: \"1\",",
      "top": 383.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0078",
      "page": 17,
      "ordinal": 78,
      "text": "      b: \"2\",",
      "top": 403.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0079",
      "page": 17,
      "ordinal": 79,
      "text": "      C: \"3\",",
      "top": 424.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0080",
      "page": 17,
      "ordinal": 80,
      "text": "      D: \"4\",",
      "top": 446.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0081",
      "page": 17,
      "ordinal": 81,
      "text": "    }",
      "top": 466.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0082",
      "page": 17,
      "ordinal": 82,
      "text": "    printTag(&j)",
      "top": 487.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0083",
      "page": 17,
      "ordinal": 83,
      "text": "}",
      "top": 509.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p016-h01",
        "heading_id": "p016-h01",
        "block_id": "q-p016-h01-b002"
      }
    },
    {
      "id": "p017-t0084",
      "page": 17,
      "ordinal": 84,
      "text": "package main",
      "top": 613.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0085",
      "page": 17,
      "ordinal": 85,
      "text": "import \"fmt\"",
      "top": 656.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0086",
      "page": 17,
      "ordinal": 86,
      "text": "func main() {",
      "top": 698.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0087",
      "page": 17,
      "ordinal": 87,
      "text": " s := []int{1,2,3,4,5}",
      "top": 719.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0088",
      "page": 17,
      "ordinal": 88,
      "text": " for _, v:=range s {",
      "top": 740.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0089",
      "page": 17,
      "ordinal": 89,
      "text": "  s =append(s, v)",
      "top": 761.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0090",
      "page": 17,
      "ordinal": 90,
      "text": "  fmt.Printf(\"len(s)=%v\\n\",len(s))",
      "top": 782.0,
      "left": 126.0,
      "width": 270.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0091",
      "page": 17,
      "ordinal": 91,
      "text": " }",
      "top": 803.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0092",
      "page": 17,
      "ordinal": 92,
      "text": "}",
      "top": 825.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p017-h01",
        "heading_id": "p017-h01",
        "block_id": "q-p017-h01-b001"
      }
    },
    {
      "id": "p017-t0093",
      "page": 17,
      "ordinal": 93,
      "text": "package main",
      "top": 1179.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0001",
      "page": 18,
      "ordinal": 1,
      "text": "1. uintptr(unsafe.Pointer(w)) ",
      "top": 510.0,
      "left": 129.0,
      "width": 195.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b007"
      }
    },
    {
      "id": "p018-t0002",
      "page": 18,
      "ordinal": 2,
      "text": "获取了",
      "top": 510.0,
      "left": 325.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b007"
      }
    },
    {
      "id": "p018-t0003",
      "page": 18,
      "ordinal": 3,
      "text": " w ",
      "top": 510.0,
      "left": 369.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b007"
      }
    },
    {
      "id": "p018-t0004",
      "page": 18,
      "ordinal": 4,
      "text": "的指针起始值",
      "top": 510.0,
      "left": 388.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b007"
      }
    },
    {
      "id": "p018-t0005",
      "page": 18,
      "ordinal": 5,
      "text": "2. unsafe.Offsetof(w.b) ",
      "top": 541.0,
      "left": 129.0,
      "width": 158.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b008"
      }
    },
    {
      "id": "p018-t0006",
      "page": 18,
      "ordinal": 6,
      "text": "获取",
      "top": 541.0,
      "left": 288.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b008"
      }
    },
    {
      "id": "p018-t0007",
      "page": 18,
      "ordinal": 7,
      "text": " b ",
      "top": 541.0,
      "left": 317.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b008"
      }
    },
    {
      "id": "p018-t0008",
      "page": 18,
      "ordinal": 8,
      "text": "变量的偏移量",
      "top": 541.0,
      "left": 334.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b008"
      }
    },
    {
      "id": "p018-t0009",
      "page": 18,
      "ordinal": 9,
      "text": "3. ",
      "top": 572.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0010",
      "page": 18,
      "ordinal": 10,
      "text": "两个相加就得到了",
      "top": 572.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0011",
      "page": 18,
      "ordinal": 11,
      "text": " b ",
      "top": 572.0,
      "left": 263.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0012",
      "page": 18,
      "ordinal": 12,
      "text": "的地址值，将通用指针",
      "top": 572.0,
      "left": 279.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0013",
      "page": 18,
      "ordinal": 13,
      "text": " Pointer ",
      "top": 572.0,
      "left": 425.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0014",
      "page": 18,
      "ordinal": 14,
      "text": "转换成具体指针",
      "top": 572.0,
      "left": 483.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0015",
      "page": 18,
      "ordinal": 15,
      "text": " ((*int)(b))",
      "top": 572.0,
      "left": 585.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0016",
      "page": 18,
      "ordinal": 16,
      "text": "，通过",
      "top": 572.0,
      "left": 650.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0017",
      "page": 18,
      "ordinal": 17,
      "text": " * ",
      "top": 572.0,
      "left": 693.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0018",
      "page": 18,
      "ordinal": 18,
      "text": "符号取值，",
      "top": 572.0,
      "left": 709.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0019",
      "page": 18,
      "ordinal": 19,
      "text": "然后赋值。",
      "top": 595.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0020",
      "page": 18,
      "ordinal": 20,
      "text": "((",
      "top": 595.0,
      "left": 219.0,
      "width": 8.0,
      "height": 20.0,
      "font": "12",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0021",
      "page": 18,
      "ordinal": 21,
      "text": "int)(b)) ",
      "top": 595.0,
      "left": 227.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0022",
      "page": 18,
      "ordinal": 22,
      "text": "相当于把",
      "top": 595.0,
      "left": 275.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0023",
      "page": 18,
      "ordinal": 23,
      "text": " (*int)(b) ",
      "top": 595.0,
      "left": 333.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0024",
      "page": 18,
      "ordinal": 24,
      "text": "转换成",
      "top": 595.0,
      "left": 393.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0025",
      "page": 18,
      "ordinal": 25,
      "text": " int ",
      "top": 595.0,
      "left": 437.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0026",
      "page": 18,
      "ordinal": 26,
      "text": "了，最后对变量重新赋值成",
      "top": 595.0,
      "left": 462.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0027",
      "page": 18,
      "ordinal": 27,
      "text": " 10",
      "top": 595.0,
      "left": 638.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b009"
      }
    },
    {
      "id": "p018-t0028",
      "page": 18,
      "ordinal": 28,
      "text": "知道",
      "top": 629.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01"
      }
    },
    {
      "id": "p018-t0029",
      "page": 18,
      "ordinal": 29,
      "text": "golang",
      "top": 629.0,
      "left": 163.0,
      "width": 85.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01"
      }
    },
    {
      "id": "p018-t0030",
      "page": 18,
      "ordinal": 30,
      "text": "的内存逃逸吗？什么情况下会发生内存逃逸？",
      "top": 629.0,
      "left": 248.0,
      "width": 512.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01"
      }
    },
    {
      "id": "p018-t0032",
      "page": 18,
      "ordinal": 32,
      "text": "golang",
      "top": 680.0,
      "left": 112.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0033",
      "page": 18,
      "ordinal": 33,
      "text": "程序变量会携带有一组校验数据，用来证明它的整个生命周期是否在运行时完全可知。如果变量",
      "top": 680.0,
      "left": 157.0,
      "width": 614.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0034",
      "page": 18,
      "ordinal": 34,
      "text": "通过了这些校验，它就可以在栈上分配。否则就说它",
      "top": 704.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0036",
      "page": 18,
      "ordinal": 36,
      "text": "逃逸",
      "top": 704.0,
      "left": 452.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0038",
      "page": 18,
      "ordinal": 38,
      "text": "了，必须在堆上分配",
      "top": 704.0,
      "left": 485.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0039",
      "page": 18,
      "ordinal": 39,
      "text": "能引起变量逃逸到堆上的典型情况",
      "top": 728.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b001"
      }
    },
    {
      "id": "p018-t0040",
      "page": 18,
      "ordinal": 40,
      "text": "1. ",
      "top": 762.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b002"
      }
    },
    {
      "id": "p018-t0041",
      "page": 18,
      "ordinal": 41,
      "text": "在方法内把局部变量指针返回",
      "top": 762.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b002"
      }
    },
    {
      "id": "p018-t0043",
      "page": 18,
      "ordinal": 43,
      "text": "局部变量原本应该在栈中分配，在栈中回收。但是由于返回时被外部",
      "top": 762.0,
      "left": 339.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b002"
      }
    },
    {
      "id": "p018-t0044",
      "page": 18,
      "ordinal": 44,
      "text": "引用，因此其生命周期大于栈，则溢出",
      "top": 786.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b002"
      }
    },
    {
      "id": "p018-t0045",
      "page": 18,
      "ordinal": 45,
      "text": "2. ",
      "top": 816.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0046",
      "page": 18,
      "ordinal": 46,
      "text": "发送指针或带有指针的值到",
      "top": 816.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0047",
      "page": 18,
      "ordinal": 47,
      "text": " channel ",
      "top": 816.0,
      "left": 321.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0048",
      "page": 18,
      "ordinal": 48,
      "text": "中。",
      "top": 816.0,
      "left": 383.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0050",
      "page": 18,
      "ordinal": 50,
      "text": "在编译时，是没有办法知道哪个",
      "top": 816.0,
      "left": 416.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0051",
      "page": 18,
      "ordinal": 51,
      "text": " goroutine ",
      "top": 816.0,
      "left": 620.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0052",
      "page": 18,
      "ordinal": 52,
      "text": "会在",
      "top": 816.0,
      "left": 695.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0053",
      "page": 18,
      "ordinal": 53,
      "text": " channel ",
      "top": 816.0,
      "left": 724.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0054",
      "page": 18,
      "ordinal": 54,
      "text": "上接收数据。所以编译器没法知道变量什么时候才会被释放",
      "top": 840.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b003"
      }
    },
    {
      "id": "p018-t0055",
      "page": 18,
      "ordinal": 55,
      "text": "3. ",
      "top": 870.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0056",
      "page": 18,
      "ordinal": 56,
      "text": "在一个切片上存储指针或带指针的值。",
      "top": 870.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0058",
      "page": 18,
      "ordinal": 58,
      "text": "一个典型的例子就是",
      "top": 870.0,
      "left": 398.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0059",
      "page": 18,
      "ordinal": 59,
      "text": " []*string ",
      "top": 870.0,
      "left": 530.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0060",
      "page": 18,
      "ordinal": 60,
      "text": "。这会导致切片的内容逃",
      "top": 870.0,
      "left": 594.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0061",
      "page": 18,
      "ordinal": 61,
      "text": "逸。尽管其后面的数组可能是在栈上分配的，但其引用的值一定是在堆上",
      "top": 894.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b004"
      }
    },
    {
      "id": "p018-t0062",
      "page": 18,
      "ordinal": 62,
      "text": "4. slice ",
      "top": 924.0,
      "left": 129.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0063",
      "page": 18,
      "ordinal": 63,
      "text": "的背后数组被重新分配了，因为",
      "top": 924.0,
      "left": 179.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0064",
      "page": 18,
      "ordinal": 64,
      "text": " append ",
      "top": 924.0,
      "left": 384.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0065",
      "page": 18,
      "ordinal": 65,
      "text": "时可能会超出其容量",
      "top": 924.0,
      "left": 443.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0066",
      "page": 18,
      "ordinal": 66,
      "text": "( cap )",
      "top": 924.0,
      "left": 575.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0067",
      "page": 18,
      "ordinal": 67,
      "text": "。",
      "top": 924.0,
      "left": 615.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0068",
      "page": 18,
      "ordinal": 68,
      "text": " slice ",
      "top": 924.0,
      "left": 630.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0069",
      "page": 18,
      "ordinal": 69,
      "text": "初始化的地方在",
      "top": 924.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0070",
      "page": 18,
      "ordinal": 70,
      "text": "编译时是可以知道的，它最开始会在栈上分配。如果切片背后的存储要基于运行时的数据进行扩",
      "top": 948.0,
      "left": 146.0,
      "width": 614.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0071",
      "page": 18,
      "ordinal": 71,
      "text": "充，就会在堆上分配",
      "top": 972.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b005"
      }
    },
    {
      "id": "p018-t0072",
      "page": 18,
      "ordinal": 72,
      "text": "5. ",
      "top": 1002.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0073",
      "page": 18,
      "ordinal": 73,
      "text": "在",
      "top": 1002.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0074",
      "page": 18,
      "ordinal": 74,
      "text": " interface ",
      "top": 1002.0,
      "left": 160.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0075",
      "page": 18,
      "ordinal": 75,
      "text": "类型上调用方法。",
      "top": 1002.0,
      "left": 228.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0077",
      "page": 18,
      "ordinal": 77,
      "text": "在",
      "top": 1002.0,
      "left": 349.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0078",
      "page": 18,
      "ordinal": 78,
      "text": " interface ",
      "top": 1002.0,
      "left": 363.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0079",
      "page": 18,
      "ordinal": 79,
      "text": "类型上调用方法都是动态调度的",
      "top": 1002.0,
      "left": 431.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0080",
      "page": 18,
      "ordinal": 80,
      "text": " —— ",
      "top": 1002.0,
      "left": 636.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0081",
      "page": 18,
      "ordinal": 81,
      "text": "方法的真正实现",
      "top": 1002.0,
      "left": 673.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0082",
      "page": 18,
      "ordinal": 82,
      "text": "只能在运行时知道。想像一个",
      "top": 1026.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0083",
      "page": 18,
      "ordinal": 83,
      "text": " io.Reader ",
      "top": 1026.0,
      "left": 336.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0084",
      "page": 18,
      "ordinal": 84,
      "text": "类型的变量",
      "top": 1026.0,
      "left": 408.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0085",
      "page": 18,
      "ordinal": 85,
      "text": " r , ",
      "top": 1026.0,
      "left": 481.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0086",
      "page": 18,
      "ordinal": 86,
      "text": "调用",
      "top": 1026.0,
      "left": 502.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0087",
      "page": 18,
      "ordinal": 87,
      "text": " r.Read(b) ",
      "top": 1026.0,
      "left": 531.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0088",
      "page": 18,
      "ordinal": 88,
      "text": "会使得",
      "top": 1026.0,
      "left": 601.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0089",
      "page": 18,
      "ordinal": 89,
      "text": " r ",
      "top": 1026.0,
      "left": 645.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0090",
      "page": 18,
      "ordinal": 90,
      "text": "的值和切片",
      "top": 1026.0,
      "left": 658.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0091",
      "page": 18,
      "ordinal": 91,
      "text": "b ",
      "top": 1026.0,
      "left": 731.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0092",
      "page": 18,
      "ordinal": 92,
      "text": "的背",
      "top": 1026.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0093",
      "page": 18,
      "ordinal": 93,
      "text": "后存储都逃逸掉，所以会在堆上分配",
      "top": 1049.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b006"
      }
    },
    {
      "id": "p018-t0094",
      "page": 18,
      "ordinal": 94,
      "text": "代码示例：",
      "top": 1084.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b007"
      }
    },
    {
      "id": "p018-t0095",
      "page": 18,
      "ordinal": 95,
      "text": "import (",
      "top": 45.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0096",
      "page": 18,
      "ordinal": 96,
      "text": " \"fmt\"",
      "top": 66.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0097",
      "page": 18,
      "ordinal": 97,
      "text": " \"unsafe\"",
      "top": 87.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0098",
      "page": 18,
      "ordinal": 98,
      "text": ")",
      "top": 108.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0099",
      "page": 18,
      "ordinal": 99,
      "text": "type W struct {",
      "top": 151.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0100",
      "page": 18,
      "ordinal": 100,
      "text": " b int32",
      "top": 171.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0101",
      "page": 18,
      "ordinal": 101,
      "text": " c int64",
      "top": 192.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0102",
      "page": 18,
      "ordinal": 102,
      "text": "}",
      "top": 214.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0103",
      "page": 18,
      "ordinal": 103,
      "text": "func main() {",
      "top": 255.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0104",
      "page": 18,
      "ordinal": 104,
      "text": " var w *W = new(W)",
      "top": 277.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0105",
      "page": 18,
      "ordinal": 105,
      "text": " //",
      "top": 298.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0106",
      "page": 18,
      "ordinal": 106,
      "text": "这时",
      "top": 297.0,
      "left": 150.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0107",
      "page": 18,
      "ordinal": 107,
      "text": "w",
      "top": 298.0,
      "left": 177.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0108",
      "page": 18,
      "ordinal": 108,
      "text": "的变量打印出来都是默认值",
      "top": 297.0,
      "left": 184.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0109",
      "page": 18,
      "ordinal": 109,
      "text": "0",
      "top": 298.0,
      "left": 342.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0110",
      "page": 18,
      "ordinal": 110,
      "text": "，",
      "top": 297.0,
      "left": 350.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0111",
      "page": 18,
      "ordinal": 111,
      "text": "0",
      "top": 298.0,
      "left": 363.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0112",
      "page": 18,
      "ordinal": 112,
      "text": " fmt.Println(w.b,w.c)",
      "top": 318.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0113",
      "page": 18,
      "ordinal": 113,
      "text": " //",
      "top": 361.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0114",
      "page": 18,
      "ordinal": 114,
      "text": "现在我们通过指针运算给",
      "top": 360.0,
      "left": 150.0,
      "width": 145.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0115",
      "page": 18,
      "ordinal": 115,
      "text": "b",
      "top": 361.0,
      "left": 295.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0116",
      "page": 18,
      "ordinal": 116,
      "text": "变量赋值为",
      "top": 360.0,
      "left": 303.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0117",
      "page": 18,
      "ordinal": 117,
      "text": "10",
      "top": 361.0,
      "left": 369.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0118",
      "page": 18,
      "ordinal": 118,
      "text": " b := unsafe.Pointer(uintptr(unsafe.Pointer(w)) + unsafe.Offsetof(w.b))",
      "top": 383.0,
      "left": 126.0,
      "width": 563.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0119",
      "page": 18,
      "ordinal": 119,
      "text": " *((*int)(b)) = 10",
      "top": 403.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0120",
      "page": 18,
      "ordinal": 120,
      "text": " //",
      "top": 424.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0121",
      "page": 18,
      "ordinal": 121,
      "text": "此时结果就变成了",
      "top": 423.0,
      "left": 150.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0122",
      "page": 18,
      "ordinal": 122,
      "text": "10",
      "top": 424.0,
      "left": 255.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0123",
      "page": 18,
      "ordinal": 123,
      "text": "，",
      "top": 423.0,
      "left": 271.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0124",
      "page": 18,
      "ordinal": 124,
      "text": "0",
      "top": 424.0,
      "left": 285.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0125",
      "page": 18,
      "ordinal": 125,
      "text": " fmt.Println(w.b,w.c)",
      "top": 446.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0126",
      "page": 18,
      "ordinal": 126,
      "text": "}",
      "top": 466.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p017-h02",
        "heading_id": "p017-h02",
        "block_id": "q-p017-h02-b006"
      }
    },
    {
      "id": "p018-t0127",
      "page": 18,
      "ordinal": 127,
      "text": "package main",
      "top": 1136.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p018-t0128",
      "page": 18,
      "ordinal": 128,
      "text": "import \"fmt\"",
      "top": 1157.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p018-t0129",
      "page": 18,
      "ordinal": 129,
      "text": "type A struct {",
      "top": 1178.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p018-t0130",
      "page": 18,
      "ordinal": 130,
      "text": " s string",
      "top": 1199.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0001",
      "page": 19,
      "ordinal": 1,
      "text": "执行",
      "top": 342.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b009"
      }
    },
    {
      "id": "p019-t0002",
      "page": 19,
      "ordinal": 2,
      "text": "go build -gcflags=-m main.go",
      "top": 342.0,
      "left": 141.0,
      "width": 196.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b009"
      }
    },
    {
      "id": "p019-t0003",
      "page": 19,
      "ordinal": 3,
      "text": "1. ./main.go:8:10: new(A) escapes to heap ",
      "top": 755.0,
      "left": 129.0,
      "width": 285.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0004",
      "page": 19,
      "ordinal": 4,
      "text": "说明",
      "top": 755.0,
      "left": 415.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0005",
      "page": 19,
      "ordinal": 5,
      "text": " new(A) ",
      "top": 755.0,
      "left": 444.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0006",
      "page": 19,
      "ordinal": 6,
      "text": "逃逸了",
      "top": 755.0,
      "left": 498.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0007",
      "page": 19,
      "ordinal": 7,
      "text": ",",
      "top": 755.0,
      "left": 542.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0008",
      "page": 19,
      "ordinal": 8,
      "text": "符合上述提到的常见情况中的第一种",
      "top": 755.0,
      "left": 546.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b011"
      }
    },
    {
      "id": "p019-t0009",
      "page": 19,
      "ordinal": 9,
      "text": "2. ./main.go:14:11: main a.s + \" world\" does not escape ",
      "top": 785.0,
      "left": 129.0,
      "width": 376.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b012"
      }
    },
    {
      "id": "p019-t0010",
      "page": 19,
      "ordinal": 10,
      "text": "说明",
      "top": 785.0,
      "left": 505.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b012"
      }
    },
    {
      "id": "p019-t0011",
      "page": 19,
      "ordinal": 11,
      "text": " b ",
      "top": 785.0,
      "left": 534.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b012"
      }
    },
    {
      "id": "p019-t0012",
      "page": 19,
      "ordinal": 12,
      "text": "变量没有逃逸，因为它只在方法内",
      "top": 785.0,
      "left": 551.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b012"
      }
    },
    {
      "id": "p019-t0013",
      "page": 19,
      "ordinal": 13,
      "text": "存在，会在方法结束时被回收",
      "top": 809.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b012"
      }
    },
    {
      "id": "p019-t0014",
      "page": 19,
      "ordinal": 14,
      "text": "3. ./main.go:15:9: b + \"!\" escapes to heap ",
      "top": 839.0,
      "left": 129.0,
      "width": 279.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0015",
      "page": 19,
      "ordinal": 15,
      "text": "说明",
      "top": 839.0,
      "left": 409.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0016",
      "page": 19,
      "ordinal": 16,
      "text": " c ",
      "top": 839.0,
      "left": 438.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0017",
      "page": 19,
      "ordinal": 17,
      "text": "变量逃逸，通过",
      "top": 839.0,
      "left": 453.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0018",
      "page": 19,
      "ordinal": 18,
      "text": "fmt.Println(a ...interface{})",
      "top": 839.0,
      "left": 555.0,
      "width": 177.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0019",
      "page": 19,
      "ordinal": 19,
      "text": "打印的",
      "top": 839.0,
      "left": 732.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0020",
      "page": 19,
      "ordinal": 20,
      "text": "变量，都会发生逃逸",
      "top": 863.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b013"
      }
    },
    {
      "id": "p019-t0021",
      "page": 19,
      "ordinal": 21,
      "text": "怎么避免内存逃逸",
      "top": 897.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01"
      }
    },
    {
      "id": "p019-t0023",
      "page": 19,
      "ordinal": 23,
      "text": "在",
      "top": 947.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0024",
      "page": 19,
      "ordinal": 24,
      "text": "runtime/stubs.go:133",
      "top": 947.0,
      "left": 126.0,
      "width": 147.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0025",
      "page": 19,
      "ordinal": 25,
      "text": "有个函数叫",
      "top": 947.0,
      "left": 273.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0026",
      "page": 19,
      "ordinal": 26,
      "text": "noescape",
      "top": 947.0,
      "left": 346.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0027",
      "page": 19,
      "ordinal": 27,
      "text": "。",
      "top": 947.0,
      "left": 411.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0028",
      "page": 19,
      "ordinal": 28,
      "text": "noescape",
      "top": 947.0,
      "left": 426.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0029",
      "page": 19,
      "ordinal": 29,
      "text": "可以在逃逸分析中隐藏一个指针。让这个指",
      "top": 947.0,
      "left": 491.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0030",
      "page": 19,
      "ordinal": 30,
      "text": "针在逃逸分析中不会被检测为逃逸",
      "top": 971.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b001"
      }
    },
    {
      "id": "p019-t0031",
      "page": 19,
      "ordinal": 31,
      "text": "}",
      "top": 45.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0032",
      "page": 19,
      "ordinal": 32,
      "text": "// ",
      "top": 66.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0033",
      "page": 19,
      "ordinal": 33,
      "text": "这是上面提到的",
      "top": 66.0,
      "left": 150.0,
      "width": 92.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0034",
      "page": 19,
      "ordinal": 34,
      "text": " \"",
      "top": 66.0,
      "left": 242.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0035",
      "page": 19,
      "ordinal": 35,
      "text": "在方法内把局部变量指针返回",
      "top": 66.0,
      "left": 258.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0036",
      "page": 19,
      "ordinal": 36,
      "text": "\" ",
      "top": 66.0,
      "left": 429.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0037",
      "page": 19,
      "ordinal": 37,
      "text": "的情况",
      "top": 66.0,
      "left": 445.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0038",
      "page": 19,
      "ordinal": 38,
      "text": "func foo(s string) *A {",
      "top": 87.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0039",
      "page": 19,
      "ordinal": 39,
      "text": " a := new(A) ",
      "top": 108.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0040",
      "page": 19,
      "ordinal": 40,
      "text": " a.s = s",
      "top": 129.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0041",
      "page": 19,
      "ordinal": 41,
      "text": " return a //",
      "top": 151.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0042",
      "page": 19,
      "ordinal": 42,
      "text": "返回局部变量",
      "top": 150.0,
      "left": 222.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0043",
      "page": 19,
      "ordinal": 43,
      "text": "a,",
      "top": 151.0,
      "left": 301.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0044",
      "page": 19,
      "ordinal": 44,
      "text": "在",
      "top": 150.0,
      "left": 316.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0045",
      "page": 19,
      "ordinal": 45,
      "text": "C",
      "top": 151.0,
      "left": 330.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0046",
      "page": 19,
      "ordinal": 46,
      "text": "语言中妥妥野指针，但在",
      "top": 150.0,
      "left": 337.0,
      "width": 145.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0047",
      "page": 19,
      "ordinal": 47,
      "text": "go",
      "top": 151.0,
      "left": 482.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0048",
      "page": 19,
      "ordinal": 48,
      "text": "则",
      "top": 150.0,
      "left": 498.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0049",
      "page": 19,
      "ordinal": 49,
      "text": "ok",
      "top": 151.0,
      "left": 511.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0050",
      "page": 19,
      "ordinal": 50,
      "text": "，但",
      "top": 150.0,
      "left": 527.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0051",
      "page": 19,
      "ordinal": 51,
      "text": "a",
      "top": 151.0,
      "left": 553.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0052",
      "page": 19,
      "ordinal": 52,
      "text": "会逃逸到堆",
      "top": 150.0,
      "left": 561.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0053",
      "page": 19,
      "ordinal": 53,
      "text": "}",
      "top": 171.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0054",
      "page": 19,
      "ordinal": 54,
      "text": "func main() {",
      "top": 192.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0055",
      "page": 19,
      "ordinal": 55,
      "text": " a := foo(\"hello\")",
      "top": 214.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0056",
      "page": 19,
      "ordinal": 56,
      "text": " b := a.s + \" world\"",
      "top": 234.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0057",
      "page": 19,
      "ordinal": 57,
      "text": " c := b + \"!\"",
      "top": 255.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0058",
      "page": 19,
      "ordinal": 58,
      "text": " fmt.Println(c)",
      "top": 277.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0059",
      "page": 19,
      "ordinal": 59,
      "text": "}",
      "top": 298.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b008"
      }
    },
    {
      "id": "p019-t0060",
      "page": 19,
      "ordinal": 60,
      "text": "go build -gcflags=-m main.go",
      "top": 394.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0061",
      "page": 19,
      "ordinal": 61,
      "text": "# command-line-arguments",
      "top": 415.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0062",
      "page": 19,
      "ordinal": 62,
      "text": "./main.go:7:6: can inline foo",
      "top": 437.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0063",
      "page": 19,
      "ordinal": 63,
      "text": "./main.go:13:10: inlining call to foo",
      "top": 457.0,
      "left": 126.0,
      "width": 293.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0064",
      "page": 19,
      "ordinal": 64,
      "text": "./main.go:16:13: inlining call to fmt.Println",
      "top": 478.0,
      "left": 126.0,
      "width": 357.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0065",
      "page": 19,
      "ordinal": 65,
      "text": "/var/folders/45/qx9lfw2s2zzgvhzg3mtzkwzc0000gn/T/go-",
      "top": 500.0,
      "left": 126.0,
      "width": 412.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0066",
      "page": 19,
      "ordinal": 66,
      "text": "build409982591/b001/_gomod_.go:6:6: can inline init.0",
      "top": 520.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0067",
      "page": 19,
      "ordinal": 67,
      "text": "./main.go:7:10: leaking param: s",
      "top": 541.0,
      "left": 126.0,
      "width": 254.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0068",
      "page": 19,
      "ordinal": 68,
      "text": "./main.go:8:10: new(A) escapes to heap",
      "top": 563.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0069",
      "page": 19,
      "ordinal": 69,
      "text": "./main.go:16:13: io.Writer(os.Stdout) escapes to heap",
      "top": 584.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0070",
      "page": 19,
      "ordinal": 70,
      "text": "./main.go:16:13: c escapes to heap",
      "top": 604.0,
      "left": 126.0,
      "width": 270.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0071",
      "page": 19,
      "ordinal": 71,
      "text": "./main.go:15:9: b + \"!\" escapes to heap",
      "top": 626.0,
      "left": 126.0,
      "width": 309.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0072",
      "page": 19,
      "ordinal": 72,
      "text": "./main.go:13:10: main new(A) does not escape",
      "top": 647.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0073",
      "page": 19,
      "ordinal": 73,
      "text": "./main.go:14:11: main a.s + \" world\" does not escape",
      "top": 667.0,
      "left": 126.0,
      "width": 412.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0074",
      "page": 19,
      "ordinal": 74,
      "text": "./main.go:16:13: main []interface {} literal does not escape",
      "top": 689.0,
      "left": 126.0,
      "width": 476.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p019-t0075",
      "page": 19,
      "ordinal": 75,
      "text": "<autogenerated>:1: os.(*File).close .this does not escape",
      "top": 710.0,
      "left": 126.0,
      "width": 452.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p018-h01",
        "heading_id": "p018-h01",
        "block_id": "q-p018-h01-b010"
      }
    },
    {
      "id": "p020-t0001",
      "page": 20,
      "ordinal": 1,
      "text": "示例代码",
      "top": 289.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b003"
      }
    },
    {
      "id": "p020-t0002",
      "page": 20,
      "ordinal": 2,
      "text": "// noescape hides a pointer from escape analysis.  noescape is",
      "top": 55.0,
      "left": 126.0,
      "width": 492.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0003",
      "page": 20,
      "ordinal": 3,
      "text": " // the identity function but escape analysis doesn't think the",
      "top": 77.0,
      "left": 126.0,
      "width": 500.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0004",
      "page": 20,
      "ordinal": 4,
      "text": " // output depends on the input.  noescape is inlined and currently",
      "top": 97.0,
      "left": 126.0,
      "width": 531.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0005",
      "page": 20,
      "ordinal": 5,
      "text": " // compiles down to zero instructions.",
      "top": 118.0,
      "left": 126.0,
      "width": 309.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0006",
      "page": 20,
      "ordinal": 6,
      "text": " // USE CAREFULLY!",
      "top": 140.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0007",
      "page": 20,
      "ordinal": 7,
      "text": " //go:nosplit",
      "top": 161.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0008",
      "page": 20,
      "ordinal": 8,
      "text": " func noescape(p unsafe.Pointer) unsafe.Pointer {",
      "top": 181.0,
      "left": 126.0,
      "width": 389.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0009",
      "page": 20,
      "ordinal": 9,
      "text": "     x := uintptr(p)",
      "top": 203.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0010",
      "page": 20,
      "ordinal": 10,
      "text": "     return unsafe.Pointer(x ^ 0)",
      "top": 224.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0011",
      "page": 20,
      "ordinal": 11,
      "text": "}",
      "top": 244.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b002"
      }
    },
    {
      "id": "p020-t0012",
      "page": 20,
      "ordinal": 12,
      "text": "package main",
      "top": 341.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0013",
      "page": 20,
      "ordinal": 13,
      "text": "import (",
      "top": 383.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0014",
      "page": 20,
      "ordinal": 14,
      "text": " \"unsafe\"",
      "top": 404.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0015",
      "page": 20,
      "ordinal": 15,
      "text": ")",
      "top": 425.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0016",
      "page": 20,
      "ordinal": 16,
      "text": "type A struct {",
      "top": 467.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0017",
      "page": 20,
      "ordinal": 17,
      "text": " S *string",
      "top": 488.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0018",
      "page": 20,
      "ordinal": 18,
      "text": "}",
      "top": 510.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0019",
      "page": 20,
      "ordinal": 19,
      "text": "func (f *A) String() string {",
      "top": 551.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0020",
      "page": 20,
      "ordinal": 20,
      "text": " return *f.S",
      "top": 573.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0021",
      "page": 20,
      "ordinal": 21,
      "text": "}",
      "top": 594.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0022",
      "page": 20,
      "ordinal": 22,
      "text": "type ATrick struct {",
      "top": 636.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0023",
      "page": 20,
      "ordinal": 23,
      "text": " S unsafe.Pointer",
      "top": 657.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0024",
      "page": 20,
      "ordinal": 24,
      "text": "}",
      "top": 677.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0025",
      "page": 20,
      "ordinal": 25,
      "text": "func (f *ATrick) String() string {",
      "top": 720.0,
      "left": 126.0,
      "width": 270.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0026",
      "page": 20,
      "ordinal": 26,
      "text": " return *(*string)(f.S)",
      "top": 741.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0027",
      "page": 20,
      "ordinal": 27,
      "text": "}",
      "top": 762.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0028",
      "page": 20,
      "ordinal": 28,
      "text": "func NewA(s string) A {",
      "top": 804.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0029",
      "page": 20,
      "ordinal": 29,
      "text": " return A{S: &s}",
      "top": 826.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0030",
      "page": 20,
      "ordinal": 30,
      "text": "}",
      "top": 846.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0031",
      "page": 20,
      "ordinal": 31,
      "text": "func NewATrick(s string) ATrick {",
      "top": 889.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0032",
      "page": 20,
      "ordinal": 32,
      "text": " return ATrick{S: noescape(unsafe.Pointer(&s))}",
      "top": 909.0,
      "left": 126.0,
      "width": 373.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0033",
      "page": 20,
      "ordinal": 33,
      "text": "}",
      "top": 930.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0034",
      "page": 20,
      "ordinal": 34,
      "text": "func noescape(p unsafe.Pointer) unsafe.Pointer {",
      "top": 973.0,
      "left": 126.0,
      "width": 381.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0035",
      "page": 20,
      "ordinal": 35,
      "text": " x := uintptr(p)",
      "top": 993.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0036",
      "page": 20,
      "ordinal": 36,
      "text": " return unsafe.Pointer(x ^ 0)",
      "top": 1015.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0037",
      "page": 20,
      "ordinal": 37,
      "text": "}",
      "top": 1036.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0038",
      "page": 20,
      "ordinal": 38,
      "text": "func main() {",
      "top": 1078.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0039",
      "page": 20,
      "ordinal": 39,
      "text": " s := \"hello\"",
      "top": 1099.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0040",
      "page": 20,
      "ordinal": 40,
      "text": " f1 := NewA(s)",
      "top": 1121.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0041",
      "page": 20,
      "ordinal": 41,
      "text": " f2 := NewATrick(s)",
      "top": 1141.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0042",
      "page": 20,
      "ordinal": 42,
      "text": " s1 := f1.String()",
      "top": 1162.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p020-t0043",
      "page": 20,
      "ordinal": 43,
      "text": " s2 := f2.String()",
      "top": 1184.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p021-t0001",
      "page": 21,
      "ordinal": 1,
      "text": "执行",
      "top": 110.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b005"
      }
    },
    {
      "id": "p021-t0002",
      "page": 21,
      "ordinal": 2,
      "text": "go build -gcflags=-m main.go",
      "top": 110.0,
      "left": 141.0,
      "width": 196.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b005"
      }
    },
    {
      "id": "p021-t0003",
      "page": 21,
      "ordinal": 3,
      "text": "其中主要看中间一小段",
      "top": 775.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b007"
      }
    },
    {
      "id": "p021-t0004",
      "page": 21,
      "ordinal": 4,
      "text": "1. ",
      "top": 935.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0005",
      "page": 21,
      "ordinal": 5,
      "text": "上段代码对",
      "top": 935.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0006",
      "page": 21,
      "ordinal": 6,
      "text": "A",
      "top": 935.0,
      "left": 219.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0007",
      "page": 21,
      "ordinal": 7,
      "text": "和",
      "top": 935.0,
      "left": 228.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0008",
      "page": 21,
      "ordinal": 8,
      "text": "ATrick",
      "top": 935.0,
      "left": 243.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0009",
      "page": 21,
      "ordinal": 9,
      "text": "同样的功能有两种实现：他们包含一个",
      "top": 935.0,
      "left": 284.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0010",
      "page": 21,
      "ordinal": 10,
      "text": " string ",
      "top": 935.0,
      "left": 533.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0011",
      "page": 21,
      "ordinal": 11,
      "text": "，然后用",
      "top": 935.0,
      "left": 579.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0012",
      "page": 21,
      "ordinal": 12,
      "text": " String() ",
      "top": 935.0,
      "left": 638.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0013",
      "page": 21,
      "ordinal": 13,
      "text": "方法返回这个",
      "top": 935.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0014",
      "page": 21,
      "ordinal": 14,
      "text": "字符串。但是从逃逸分析看",
      "top": 958.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0015",
      "page": 21,
      "ordinal": 15,
      "text": "ATrick ",
      "top": 958.0,
      "left": 321.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0016",
      "page": 21,
      "ordinal": 16,
      "text": "版本没有逃逸",
      "top": 958.0,
      "left": 366.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b009"
      }
    },
    {
      "id": "p021-t0017",
      "page": 21,
      "ordinal": 17,
      "text": "2. noescape() ",
      "top": 989.0,
      "left": 129.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0018",
      "page": 21,
      "ordinal": 18,
      "text": "函数的作用是遮蔽输入和输出的依赖关系。使编译器不认为",
      "top": 989.0,
      "left": 223.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0019",
      "page": 21,
      "ordinal": 19,
      "text": " p ",
      "top": 989.0,
      "left": 603.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0020",
      "page": 21,
      "ordinal": 20,
      "text": "会通过",
      "top": 989.0,
      "left": 620.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0021",
      "page": 21,
      "ordinal": 21,
      "text": " x ",
      "top": 989.0,
      "left": 664.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0022",
      "page": 21,
      "ordinal": 22,
      "text": "逃逸，",
      "top": 989.0,
      "left": 679.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0024",
      "page": 21,
      "ordinal": 24,
      "text": "因为",
      "top": 989.0,
      "left": 727.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0026",
      "page": 21,
      "ordinal": 26,
      "text": "uintptr() ",
      "top": 1012.0,
      "left": 146.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0027",
      "page": 21,
      "ordinal": 27,
      "text": "产生的引用是编译器无法理解的",
      "top": 1012.0,
      "left": 205.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b010"
      }
    },
    {
      "id": "p021-t0028",
      "page": 21,
      "ordinal": 28,
      "text": "3. ",
      "top": 1043.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0029",
      "page": 21,
      "ordinal": 29,
      "text": "内置的",
      "top": 1043.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0030",
      "page": 21,
      "ordinal": 30,
      "text": " uintptr ",
      "top": 1043.0,
      "left": 189.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0031",
      "page": 21,
      "ordinal": 31,
      "text": "类型是一个真正的指针类型，但是在编译器层面，它只是一个存储一个",
      "top": 1043.0,
      "left": 244.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0033",
      "page": 21,
      "ordinal": 33,
      "text": "指针地址",
      "top": 1043.0,
      "left": 701.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0035",
      "page": 21,
      "ordinal": 35,
      "text": "的",
      "top": 1043.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0037",
      "page": 21,
      "ordinal": 37,
      "text": "int ",
      "top": 1066.0,
      "left": 146.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0038",
      "page": 21,
      "ordinal": 38,
      "text": "类型。代码的最后一行返回",
      "top": 1066.0,
      "left": 167.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0039",
      "page": 21,
      "ordinal": 39,
      "text": " unsafe.Pointer ",
      "top": 1066.0,
      "left": 343.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0040",
      "page": 21,
      "ordinal": 40,
      "text": "也是一个",
      "top": 1066.0,
      "left": 450.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0041",
      "page": 21,
      "ordinal": 41,
      "text": " int",
      "top": 1066.0,
      "left": 509.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b011"
      }
    },
    {
      "id": "p021-t0042",
      "page": 21,
      "ordinal": 42,
      "text": "4. noescape() ",
      "top": 1097.0,
      "left": 129.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0043",
      "page": 21,
      "ordinal": 43,
      "text": "在",
      "top": 1097.0,
      "left": 223.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0044",
      "page": 21,
      "ordinal": 44,
      "text": " runtime ",
      "top": 1097.0,
      "left": 238.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0045",
      "page": 21,
      "ordinal": 45,
      "text": "包中使用",
      "top": 1097.0,
      "left": 300.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0046",
      "page": 21,
      "ordinal": 46,
      "text": " unsafe.Pointer ",
      "top": 1097.0,
      "left": 359.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0047",
      "page": 21,
      "ordinal": 47,
      "text": "的地方被大量使用。如果作者清楚被",
      "top": 1097.0,
      "left": 466.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0049",
      "page": 21,
      "ordinal": 49,
      "text": "unsafe.Pointer ",
      "top": 1120.0,
      "left": 146.0,
      "width": 104.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0050",
      "page": 21,
      "ordinal": 50,
      "text": "引用的数据肯定不会被逃逸，但编译器却不知道的情况下，这是很有用的",
      "top": 1120.0,
      "left": 249.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b012"
      }
    },
    {
      "id": "p021-t0051",
      "page": 21,
      "ordinal": 51,
      "text": "5. ",
      "top": 1151.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0052",
      "page": 21,
      "ordinal": 52,
      "text": "实际项目中不建议使用",
      "top": 1151.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0053",
      "page": 21,
      "ordinal": 53,
      "text": "unsafe",
      "top": 1151.0,
      "left": 292.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0054",
      "page": 21,
      "ordinal": 54,
      "text": "包！",
      "top": 1151.0,
      "left": 338.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0056",
      "page": 21,
      "ordinal": 56,
      "text": "毕竟包的名字就叫做",
      "top": 1151.0,
      "left": 375.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0057",
      "page": 21,
      "ordinal": 57,
      "text": " unsafe, ",
      "top": 1151.0,
      "left": 506.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0058",
      "page": 21,
      "ordinal": 58,
      "text": "而且源码中的注释也写明了",
      "top": 1151.0,
      "left": 564.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0059",
      "page": 21,
      "ordinal": 59,
      "text": " USE ",
      "top": 1151.0,
      "left": 739.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0060",
      "page": 21,
      "ordinal": 60,
      "text": "CAREFULLY!",
      "top": 1174.0,
      "left": 146.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b013"
      }
    },
    {
      "id": "p021-t0061",
      "page": 21,
      "ordinal": 61,
      "text": " _ = s1 + s2",
      "top": 45.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p021-t0062",
      "page": 21,
      "ordinal": 62,
      "text": "}",
      "top": 66.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b004"
      }
    },
    {
      "id": "p021-t0063",
      "page": 21,
      "ordinal": 63,
      "text": "go build -gcflags=-m main.go",
      "top": 162.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0064",
      "page": 21,
      "ordinal": 64,
      "text": "# command-line-arguments",
      "top": 183.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0065",
      "page": 21,
      "ordinal": 65,
      "text": "./main.go:11:6: can inline (*A).String",
      "top": 205.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0066",
      "page": 21,
      "ordinal": 66,
      "text": "./main.go:19:6: can inline (*ATrick).String",
      "top": 225.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0067",
      "page": 21,
      "ordinal": 67,
      "text": "./main.go:23:6: can inline NewA",
      "top": 246.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0068",
      "page": 21,
      "ordinal": 68,
      "text": "./main.go:31:6: can inline noescape",
      "top": 268.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0069",
      "page": 21,
      "ordinal": 69,
      "text": "./main.go:27:6: can inline NewATrick",
      "top": 289.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0070",
      "page": 21,
      "ordinal": 70,
      "text": "./main.go:28:29: inlining call to noescape",
      "top": 309.0,
      "left": 126.0,
      "width": 333.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0071",
      "page": 21,
      "ordinal": 71,
      "text": "./main.go:36:6: can inline main",
      "top": 331.0,
      "left": 126.0,
      "width": 246.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0072",
      "page": 21,
      "ordinal": 72,
      "text": "./main.go:38:14: inlining call to NewA",
      "top": 352.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0073",
      "page": 21,
      "ordinal": 73,
      "text": "./main.go:39:19: inlining call to NewATrick",
      "top": 372.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0074",
      "page": 21,
      "ordinal": 74,
      "text": "./main.go:39:19: inlining call to noescape",
      "top": 394.0,
      "left": 126.0,
      "width": 333.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0075",
      "page": 21,
      "ordinal": 75,
      "text": "./main.go:40:17: inlining call to (*A).String",
      "top": 415.0,
      "left": 126.0,
      "width": 357.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0076",
      "page": 21,
      "ordinal": 76,
      "text": "./main.go:41:17: inlining call to (*ATrick).String",
      "top": 437.0,
      "left": 126.0,
      "width": 397.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0077",
      "page": 21,
      "ordinal": 77,
      "text": "/var/folders/45/qx9lfw2s2zzgvhzg3mtzkwzc0000gn/T/go-",
      "top": 457.0,
      "left": 126.0,
      "width": 412.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0078",
      "page": 21,
      "ordinal": 78,
      "text": "build763863171/b001/_gomod_.go:6:6: can inline init.0",
      "top": 478.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0079",
      "page": 21,
      "ordinal": 79,
      "text": "./main.go:11:7: leaking param: f to result ~r0 level=2",
      "top": 500.0,
      "left": 126.0,
      "width": 428.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0080",
      "page": 21,
      "ordinal": 80,
      "text": "./main.go:19:7: leaking param: f to result ~r0 level=2",
      "top": 520.0,
      "left": 126.0,
      "width": 428.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0081",
      "page": 21,
      "ordinal": 81,
      "text": "./main.go:24:16: &s escapes to heap",
      "top": 541.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0082",
      "page": 21,
      "ordinal": 82,
      "text": "./main.go:23:13: moved to heap: s",
      "top": 563.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0083",
      "page": 21,
      "ordinal": 83,
      "text": "./main.go:27:18: NewATrick s does not escape",
      "top": 584.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0084",
      "page": 21,
      "ordinal": 84,
      "text": "./main.go:28:45: NewATrick &s does not escape",
      "top": 604.0,
      "left": 126.0,
      "width": 357.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0085",
      "page": 21,
      "ordinal": 85,
      "text": "./main.go:31:15: noescape p does not escape",
      "top": 626.0,
      "left": 126.0,
      "width": 341.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0086",
      "page": 21,
      "ordinal": 86,
      "text": "./main.go:38:14: main &s does not escape",
      "top": 647.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0087",
      "page": 21,
      "ordinal": 87,
      "text": "./main.go:39:19: main &s does not escape",
      "top": 667.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0088",
      "page": 21,
      "ordinal": 88,
      "text": "./main.go:40:10: main f1 does not escape",
      "top": 689.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0089",
      "page": 21,
      "ordinal": 89,
      "text": "./main.go:41:10: main f2 does not escape",
      "top": 710.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0090",
      "page": 21,
      "ordinal": 90,
      "text": "./main.go:42:9: main s1 + s2 does not escape",
      "top": 731.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b006"
      }
    },
    {
      "id": "p021-t0091",
      "page": 21,
      "ordinal": 91,
      "text": "./main.go:24:16: &s escapes to heap    //",
      "top": 827.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0092",
      "page": 21,
      "ordinal": 92,
      "text": "这个是",
      "top": 826.0,
      "left": 452.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0093",
      "page": 21,
      "ordinal": 93,
      "text": "NewA",
      "top": 827.0,
      "left": 491.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0094",
      "page": 21,
      "ordinal": 94,
      "text": "中的，逃逸了",
      "top": 826.0,
      "left": 523.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0095",
      "page": 21,
      "ordinal": 95,
      "text": "./main.go:23:13: moved to heap: s",
      "top": 848.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0096",
      "page": 21,
      "ordinal": 96,
      "text": "./main.go:27:18: NewATrick s does not escape // NewATrick",
      "top": 870.0,
      "left": 126.0,
      "width": 452.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0097",
      "page": 21,
      "ordinal": 97,
      "text": "里的",
      "top": 869.0,
      "left": 578.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0098",
      "page": 21,
      "ordinal": 98,
      "text": "s",
      "top": 870.0,
      "left": 605.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0099",
      "page": 21,
      "ordinal": 99,
      "text": "的却没逃逸",
      "top": 869.0,
      "left": 613.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p021-t0100",
      "page": 21,
      "ordinal": 100,
      "text": "./main.go:28:45: NewATrick &s does not escape",
      "top": 890.0,
      "left": 126.0,
      "width": 357.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/03-go-runtime#q-p019-h01",
        "heading_id": "p019-h01",
        "block_id": "q-p019-h01-b008"
      }
    },
    {
      "id": "p022-t0001",
      "page": 22,
      "ordinal": 1,
      "text": "go struct",
      "top": 40.0,
      "left": 112.0,
      "width": 113.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01"
      }
    },
    {
      "id": "p022-t0002",
      "page": 22,
      "ordinal": 2,
      "text": "能不能⽐较",
      "top": 40.0,
      "left": 225.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01"
      }
    },
    {
      "id": "p022-t0005",
      "page": 22,
      "ordinal": 5,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b001"
      }
    },
    {
      "id": "p022-t0006",
      "page": 22,
      "ordinal": 6,
      "text": "相同",
      "top": 91.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b001"
      }
    },
    {
      "id": "p022-t0007",
      "page": 22,
      "ordinal": 7,
      "text": "struct",
      "top": 91.0,
      "left": 175.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b001"
      }
    },
    {
      "id": "p022-t0008",
      "page": 22,
      "ordinal": 8,
      "text": "类型的可以⽐较",
      "top": 91.0,
      "left": 214.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b001"
      }
    },
    {
      "id": "p022-t0010",
      "page": 22,
      "ordinal": 10,
      "text": "2. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0011",
      "page": 22,
      "ordinal": 11,
      "text": "不同",
      "top": 121.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0012",
      "page": 22,
      "ordinal": 12,
      "text": "struct",
      "top": 121.0,
      "left": 175.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0013",
      "page": 22,
      "ordinal": 13,
      "text": "类型的不可以⽐较",
      "top": 121.0,
      "left": 214.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0014",
      "page": 22,
      "ordinal": 14,
      "text": ",",
      "top": 121.0,
      "left": 331.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0015",
      "page": 22,
      "ordinal": 15,
      "text": "编译都不过，类型不匹配",
      "top": 121.0,
      "left": 335.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b002"
      }
    },
    {
      "id": "p022-t0017",
      "page": 22,
      "ordinal": 17,
      "text": "下⾯代码能运⾏吗？为什么",
      "top": 656.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02"
      }
    },
    {
      "id": "p022-t0021",
      "page": 22,
      "ordinal": 21,
      "text": "解析",
      "top": 912.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b002"
      }
    },
    {
      "id": "p022-t0023",
      "page": 22,
      "ordinal": 23,
      "text": "共发现两个问题：",
      "top": 912.0,
      "left": 149.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b002"
      }
    },
    {
      "id": "p022-t0025",
      "page": 22,
      "ordinal": 25,
      "text": "1. main ",
      "top": 948.0,
      "left": 129.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b003"
      }
    },
    {
      "id": "p022-t0026",
      "page": 22,
      "ordinal": 26,
      "text": "函数不能加数字。",
      "top": 948.0,
      "left": 184.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b003"
      }
    },
    {
      "id": "p022-t0028",
      "page": 22,
      "ordinal": 28,
      "text": "2. new ",
      "top": 978.0,
      "left": 129.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0029",
      "page": 22,
      "ordinal": 29,
      "text": "关键字⽆法初始化",
      "top": 978.0,
      "left": 178.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0030",
      "page": 22,
      "ordinal": 30,
      "text": "  Show ",
      "top": 978.0,
      "left": 295.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0031",
      "page": 22,
      "ordinal": 31,
      "text": "结构体中的",
      "top": 978.0,
      "left": 343.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0032",
      "page": 22,
      "ordinal": 32,
      "text": "  Param ",
      "top": 978.0,
      "left": 417.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0033",
      "page": 22,
      "ordinal": 33,
      "text": "属性，所以直接",
      "top": 978.0,
      "left": 473.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0035",
      "page": 22,
      "ordinal": 35,
      "text": "对",
      "top": 978.0,
      "left": 579.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0036",
      "page": 22,
      "ordinal": 36,
      "text": "  s.Param ",
      "top": 978.0,
      "left": 593.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0037",
      "page": 22,
      "ordinal": 37,
      "text": "操作会出错",
      "top": 978.0,
      "left": 660.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b004"
      }
    },
    {
      "id": "p022-t0039",
      "page": 22,
      "ordinal": 39,
      "text": "package main",
      "top": 173.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0040",
      "page": 22,
      "ordinal": 40,
      "text": "import \"fmt\"",
      "top": 195.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0041",
      "page": 22,
      "ordinal": 41,
      "text": "func main() {",
      "top": 215.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0042",
      "page": 22,
      "ordinal": 42,
      "text": " type A struct {",
      "top": 236.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0043",
      "page": 22,
      "ordinal": 43,
      "text": " a int",
      "top": 258.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0044",
      "page": 22,
      "ordinal": 44,
      "text": " }",
      "top": 279.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0045",
      "page": 22,
      "ordinal": 45,
      "text": " type B struct {",
      "top": 299.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0046",
      "page": 22,
      "ordinal": 46,
      "text": " a int",
      "top": 321.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0047",
      "page": 22,
      "ordinal": 47,
      "text": " }",
      "top": 342.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0048",
      "page": 22,
      "ordinal": 48,
      "text": " a := A{1}",
      "top": 362.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0049",
      "page": 22,
      "ordinal": 49,
      "text": " //b := A{1}",
      "top": 384.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0050",
      "page": 22,
      "ordinal": 50,
      "text": " b := B{1}",
      "top": 405.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0051",
      "page": 22,
      "ordinal": 51,
      "text": " if a == b {",
      "top": 426.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0052",
      "page": 22,
      "ordinal": 52,
      "text": " fmt.Println(\"a == b\")",
      "top": 447.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0053",
      "page": 22,
      "ordinal": 53,
      "text": " }else{",
      "top": 468.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0054",
      "page": 22,
      "ordinal": 54,
      "text": " fmt.Println(\"a != b\")",
      "top": 489.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0055",
      "page": 22,
      "ordinal": 55,
      "text": " }",
      "top": 510.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0056",
      "page": 22,
      "ordinal": 56,
      "text": "}",
      "top": 531.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0057",
      "page": 22,
      "ordinal": 57,
      "text": "// output",
      "top": 552.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0058",
      "page": 22,
      "ordinal": 58,
      "text": "// command-line-arguments [command-line-arguments.test]",
      "top": 574.0,
      "left": 126.0,
      "width": 436.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0059",
      "page": 22,
      "ordinal": 59,
      "text": "// ./.go:14:7: invalid operation: a == b (mismatched types A and B)",
      "top": 594.0,
      "left": 126.0,
      "width": 531.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/01-go-basics#q-p022-h01",
        "heading_id": "p022-h01",
        "block_id": "q-p022-h01-b003"
      }
    },
    {
      "id": "p022-t0060",
      "page": 22,
      "ordinal": 60,
      "text": "type Param map[string]interface{}",
      "top": 721.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0061",
      "page": 22,
      "ordinal": 61,
      "text": " type Show struct {",
      "top": 741.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0062",
      "page": 22,
      "ordinal": 62,
      "text": " Param",
      "top": 763.0,
      "left": 126.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0063",
      "page": 22,
      "ordinal": 63,
      "text": " }",
      "top": 784.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0064",
      "page": 22,
      "ordinal": 64,
      "text": " func main1() {",
      "top": 806.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0065",
      "page": 22,
      "ordinal": 65,
      "text": " s := new(Show)",
      "top": 826.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0066",
      "page": 22,
      "ordinal": 66,
      "text": " s.Param[\"RMB\"] = 10000",
      "top": 847.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p022-t0067",
      "page": 22,
      "ordinal": 67,
      "text": "}",
      "top": 869.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p022-h02",
        "heading_id": "p022-h02",
        "block_id": "q-p022-h02-b001"
      }
    },
    {
      "id": "p023-t0001",
      "page": 23,
      "ordinal": 1,
      "text": "请说出下⾯代码存在什么问题",
      "top": 40.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01"
      }
    },
    {
      "id": "p023-t0005",
      "page": 23,
      "ordinal": 5,
      "text": "解析：",
      "top": 317.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0007",
      "page": 23,
      "ordinal": 7,
      "text": "golang",
      "top": 341.0,
      "left": 112.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0008",
      "page": 23,
      "ordinal": 8,
      "text": "中有规定，",
      "top": 341.0,
      "left": 157.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0009",
      "page": 23,
      "ordinal": 9,
      "text": " switch type ",
      "top": 341.0,
      "left": 231.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0010",
      "page": 23,
      "ordinal": 10,
      "text": "的",
      "top": 341.0,
      "left": 315.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0011",
      "page": 23,
      "ordinal": 11,
      "text": " case T1 ",
      "top": 341.0,
      "left": 329.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0012",
      "page": 23,
      "ordinal": 12,
      "text": "，类型列表只有⼀个，那么",
      "top": 341.0,
      "left": 388.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0013",
      "page": 23,
      "ordinal": 13,
      "text": " v := m.(type) ",
      "top": 341.0,
      "left": 563.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0014",
      "page": 23,
      "ordinal": 14,
      "text": "中的",
      "top": 341.0,
      "left": 654.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0015",
      "page": 23,
      "ordinal": 15,
      "text": " v ",
      "top": 341.0,
      "left": 683.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0016",
      "page": 23,
      "ordinal": 16,
      "text": "的类型就是",
      "top": 341.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0017",
      "page": 23,
      "ordinal": 17,
      "text": "T1",
      "top": 364.0,
      "left": 112.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0018",
      "page": 23,
      "ordinal": 18,
      "text": "类型。",
      "top": 364.0,
      "left": 128.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0020",
      "page": 23,
      "ordinal": 20,
      "text": "如果是",
      "top": 388.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0021",
      "page": 23,
      "ordinal": 21,
      "text": " case T1, T2 ",
      "top": 388.0,
      "left": 156.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0022",
      "page": 23,
      "ordinal": 22,
      "text": "，类型列表中有多个，那",
      "top": 388.0,
      "left": 238.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0023",
      "page": 23,
      "ordinal": 23,
      "text": " v ",
      "top": 388.0,
      "left": 398.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0024",
      "page": 23,
      "ordinal": 24,
      "text": "的类型还是多对应接⼝的类型，也就",
      "top": 388.0,
      "left": 413.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0026",
      "page": 23,
      "ordinal": 26,
      "text": "是",
      "top": 388.0,
      "left": 651.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0027",
      "page": 23,
      "ordinal": 27,
      "text": " m ",
      "top": 388.0,
      "left": 666.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0028",
      "page": 23,
      "ordinal": 28,
      "text": "的类型。",
      "top": 388.0,
      "left": 687.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0030",
      "page": 23,
      "ordinal": 30,
      "text": "所以这⾥",
      "top": 411.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0031",
      "page": 23,
      "ordinal": 31,
      "text": " msg ",
      "top": 411.0,
      "left": 170.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0032",
      "page": 23,
      "ordinal": 32,
      "text": "的类型还是",
      "top": 411.0,
      "left": 206.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0033",
      "page": 23,
      "ordinal": 33,
      "text": " interface{} ",
      "top": 411.0,
      "left": 280.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0034",
      "page": 23,
      "ordinal": 34,
      "text": "，所以他没有",
      "top": 411.0,
      "left": 359.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0035",
      "page": 23,
      "ordinal": 35,
      "text": " Name ",
      "top": 411.0,
      "left": 446.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0036",
      "page": 23,
      "ordinal": 36,
      "text": "这个字段，编译阶段就会",
      "top": 411.0,
      "left": 495.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0038",
      "page": 23,
      "ordinal": 38,
      "text": "报错。具体解释",
      "top": 411.0,
      "left": 660.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0039",
      "page": 23,
      "ordinal": 39,
      "text": "⻅：",
      "top": 434.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0041",
      "page": 23,
      "ordinal": 41,
      "text": "https://golang.org/ref",
      "top": 434.0,
      "left": 145.0,
      "width": 147.0,
      "height": 20.0,
      "font": "2",
      "size": 15,
      "links": [
        "https://golang.org/ref"
      ],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0042",
      "page": 23,
      "ordinal": 42,
      "text": " /spec#Type_switches  ",
      "top": 434.0,
      "left": 292.0,
      "width": 155.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [
        "https://golang.org/ref"
      ],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b002"
      }
    },
    {
      "id": "p023-t0043",
      "page": 23,
      "ordinal": 43,
      "text": "Go ",
      "top": 468.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02"
      }
    },
    {
      "id": "p023-t0044",
      "page": 23,
      "ordinal": 44,
      "text": "⽀持什么形式的类型转换？将整数转换为浮点数",
      "top": 468.0,
      "left": 153.0,
      "width": 537.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02"
      }
    },
    {
      "id": "p023-t0047",
      "page": 23,
      "ordinal": 47,
      "text": " Go ",
      "top": 519.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02",
        "block_id": "q-p023-h02-b001"
      }
    },
    {
      "id": "p023-t0048",
      "page": 23,
      "ordinal": 48,
      "text": "⽀持显式类型转换以满⾜其严格的类型要求。",
      "top": 519.0,
      "left": 139.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02",
        "block_id": "q-p023-h02-b001"
      }
    },
    {
      "id": "p023-t0050",
      "page": 23,
      "ordinal": 50,
      "text": "Go ",
      "top": 654.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03"
      }
    },
    {
      "id": "p023-t0051",
      "page": 23,
      "ordinal": 51,
      "text": "语言当中值传递和地址传递（引用传递）如何运用？有",
      "top": 654.0,
      "left": 153.0,
      "width": 614.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03"
      }
    },
    {
      "id": "p023-t0052",
      "page": 23,
      "ordinal": 52,
      "text": "什",
      "top": 686.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03"
      }
    },
    {
      "id": "p023-t0054",
      "page": 23,
      "ordinal": 54,
      "text": "么区别？举例说明",
      "top": 686.0,
      "left": 144.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03"
      }
    },
    {
      "id": "p023-t0057",
      "page": 23,
      "ordinal": 57,
      "text": "1. ",
      "top": 737.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b001"
      }
    },
    {
      "id": "p023-t0058",
      "page": 23,
      "ordinal": 58,
      "text": "值传递只会把参数的值复制一份放进对应的函数，两个变量的地址不同，",
      "top": 737.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b001"
      }
    },
    {
      "id": "p023-t0060",
      "page": 23,
      "ordinal": 60,
      "text": "不可相互修改。",
      "top": 737.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b001"
      }
    },
    {
      "id": "p023-t0062",
      "page": 23,
      "ordinal": 62,
      "text": "2. ",
      "top": 767.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0063",
      "page": 23,
      "ordinal": 63,
      "text": "地址传递",
      "top": 767.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0064",
      "page": 23,
      "ordinal": 64,
      "text": "(",
      "top": 767.0,
      "left": 204.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0065",
      "page": 23,
      "ordinal": 65,
      "text": "引用传递",
      "top": 767.0,
      "left": 208.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0066",
      "page": 23,
      "ordinal": 66,
      "text": ")",
      "top": 767.0,
      "left": 267.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0067",
      "page": 23,
      "ordinal": 67,
      "text": "会将变量本身传入对应的函数，在函数中可以对该变",
      "top": 767.0,
      "left": 271.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0069",
      "page": 23,
      "ordinal": 69,
      "text": "量进行值内容的修改。",
      "top": 767.0,
      "left": 611.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h03",
        "heading_id": "p023-h03",
        "block_id": "q-p023-h03-b002"
      }
    },
    {
      "id": "p023-t0071",
      "page": 23,
      "ordinal": 71,
      "text": "写出打印的结果",
      "top": 801.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04"
      }
    },
    {
      "id": "p023-t0073",
      "page": 23,
      "ordinal": 73,
      "text": "type student struct {",
      "top": 105.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0074",
      "page": 23,
      "ordinal": 74,
      "text": " Name string",
      "top": 126.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0075",
      "page": 23,
      "ordinal": 75,
      "text": "}",
      "top": 146.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0076",
      "page": 23,
      "ordinal": 76,
      "text": "func zhoujielun(v interface{}) {",
      "top": 168.0,
      "left": 126.0,
      "width": 254.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0077",
      "page": 23,
      "ordinal": 77,
      "text": " switch msg := v.(type) {",
      "top": 189.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0078",
      "page": 23,
      "ordinal": 78,
      "text": " case *student, student:",
      "top": 209.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0079",
      "page": 23,
      "ordinal": 79,
      "text": " msg.Name",
      "top": 231.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0080",
      "page": 23,
      "ordinal": 80,
      "text": " }",
      "top": 252.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0081",
      "page": 23,
      "ordinal": 81,
      "text": "}",
      "top": 273.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h01",
        "heading_id": "p023-h01",
        "block_id": "q-p023-h01-b001"
      }
    },
    {
      "id": "p023-t0082",
      "page": 23,
      "ordinal": 82,
      "text": "i := 55 //int",
      "top": 572.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02",
        "block_id": "q-p023-h02-b002"
      }
    },
    {
      "id": "p023-t0083",
      "page": 23,
      "ordinal": 83,
      "text": "j := 67.8 //float64",
      "top": 592.0,
      "left": 126.0,
      "width": 151.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02",
        "block_id": "q-p023-h02-b002"
      }
    },
    {
      "id": "p023-t0084",
      "page": 23,
      "ordinal": 84,
      "text": "sum := i + int(j)//j is converted to int",
      "top": 613.0,
      "left": 126.0,
      "width": 317.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h02",
        "heading_id": "p023-h02",
        "block_id": "q-p023-h02-b002"
      }
    },
    {
      "id": "p023-t0085",
      "page": 23,
      "ordinal": 85,
      "text": "type People struct { ",
      "top": 866.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0086",
      "page": 23,
      "ordinal": 86,
      "text": "name string `json:\"name\"`",
      "top": 887.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0087",
      "page": 23,
      "ordinal": 87,
      "text": "}",
      "top": 908.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0088",
      "page": 23,
      "ordinal": 88,
      "text": " func main() { ",
      "top": 929.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0089",
      "page": 23,
      "ordinal": 89,
      "text": "js := `{",
      "top": 950.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0090",
      "page": 23,
      "ordinal": 90,
      "text": "\"name\":\"11\"",
      "top": 971.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0091",
      "page": 23,
      "ordinal": 91,
      "text": "}`",
      "top": 992.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0092",
      "page": 23,
      "ordinal": 92,
      "text": "var p People",
      "top": 1014.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0093",
      "page": 23,
      "ordinal": 93,
      "text": " err := json.Unmarshal([]byte(js), &p)",
      "top": 1034.0,
      "left": 126.0,
      "width": 301.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0094",
      "page": 23,
      "ordinal": 94,
      "text": " if err != nil { ",
      "top": 1055.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0095",
      "page": 23,
      "ordinal": 95,
      "text": " fmt.Println(\"err: \", err)",
      "top": 1077.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0096",
      "page": 23,
      "ordinal": 96,
      "text": " return",
      "top": 1098.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0097",
      "page": 23,
      "ordinal": 97,
      "text": " } ",
      "top": 1118.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0098",
      "page": 23,
      "ordinal": 98,
      "text": " fmt.Println(\"people: \", p)",
      "top": 1140.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p023-t0099",
      "page": 23,
      "ordinal": 99,
      "text": " } ",
      "top": 1161.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b001"
      }
    },
    {
      "id": "p024-t0002",
      "page": 24,
      "ordinal": 2,
      "text": "解析：",
      "top": 44.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0004",
      "page": 24,
      "ordinal": 4,
      "text": "按照",
      "top": 67.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0005",
      "page": 24,
      "ordinal": 5,
      "text": " golang ",
      "top": 67.0,
      "left": 141.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0006",
      "page": 24,
      "ordinal": 6,
      "text": "的语法，⼩写开头的⽅法、属性或",
      "top": 67.0,
      "left": 194.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0007",
      "page": 24,
      "ordinal": 7,
      "text": "  struct ",
      "top": 67.0,
      "left": 414.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0008",
      "page": 24,
      "ordinal": 8,
      "text": "是私有的，同样，在",
      "top": 67.0,
      "left": 464.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0009",
      "page": 24,
      "ordinal": 9,
      "text": " json ",
      "top": 67.0,
      "left": 596.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0010",
      "page": 24,
      "ordinal": 10,
      "text": "解",
      "top": 67.0,
      "left": 632.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0012",
      "page": 24,
      "ordinal": 12,
      "text": "码或转码的时候也⽆",
      "top": 67.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0013",
      "page": 24,
      "ordinal": 13,
      "text": "法上线私有属性的转换。",
      "top": 91.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0015",
      "page": 24,
      "ordinal": 15,
      "text": "题⽬中是⽆法正常得到",
      "top": 91.0,
      "left": 276.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0016",
      "page": 24,
      "ordinal": 16,
      "text": " People ",
      "top": 91.0,
      "left": 423.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0017",
      "page": 24,
      "ordinal": 17,
      "text": "的",
      "top": 91.0,
      "left": 477.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0018",
      "page": 24,
      "ordinal": 18,
      "text": " name ",
      "top": 91.0,
      "left": 492.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0019",
      "page": 24,
      "ordinal": 19,
      "text": "值的。⽽且，私有属性",
      "top": 91.0,
      "left": 538.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0020",
      "page": 24,
      "ordinal": 20,
      "text": " name ",
      "top": 91.0,
      "left": 684.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0021",
      "page": 24,
      "ordinal": 21,
      "text": "也不应",
      "top": 91.0,
      "left": 731.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0022",
      "page": 24,
      "ordinal": 22,
      "text": "该加",
      "top": 113.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0023",
      "page": 24,
      "ordinal": 23,
      "text": " json ",
      "top": 113.0,
      "left": 141.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0024",
      "page": 24,
      "ordinal": 24,
      "text": "的标签。",
      "top": 113.0,
      "left": 177.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/04-go-coding#q-p023-h04",
        "heading_id": "p023-h04",
        "block_id": "q-p023-h04-b002"
      }
    },
    {
      "id": "p024-t0026",
      "page": 24,
      "ordinal": 26,
      "text": "进阶",
      "top": 147.0,
      "left": 112.0,
      "width": 66.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h01"
      }
    },
    {
      "id": "p024-t0027",
      "page": 24,
      "ordinal": 27,
      "text": "-",
      "top": 147.0,
      "left": 178.0,
      "width": 11.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h01"
      }
    },
    {
      "id": "p024-t0028",
      "page": 24,
      "ordinal": 28,
      "text": "并发编程",
      "top": 147.0,
      "left": 188.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h01"
      }
    },
    {
      "id": "p024-t0030",
      "page": 24,
      "ordinal": 30,
      "text": "go",
      "top": 203.0,
      "left": 112.0,
      "width": 30.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02"
      }
    },
    {
      "id": "p024-t0031",
      "page": 24,
      "ordinal": 31,
      "text": "语⾔的并发机制以及它所使⽤的",
      "top": 203.0,
      "left": 142.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02"
      }
    },
    {
      "id": "p024-t0032",
      "page": 24,
      "ordinal": 32,
      "text": "CSP",
      "top": 203.0,
      "left": 500.0,
      "width": 46.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02"
      }
    },
    {
      "id": "p024-t0033",
      "page": 24,
      "ordinal": 33,
      "text": "并发模型",
      "top": 203.0,
      "left": 547.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02"
      }
    },
    {
      "id": "p024-t0036",
      "page": 24,
      "ordinal": 36,
      "text": " CSP",
      "top": 254.0,
      "left": 112.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0037",
      "page": 24,
      "ordinal": 37,
      "text": "模型是上个世纪七⼗年代提出的",
      "top": 254.0,
      "left": 142.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0038",
      "page": 24,
      "ordinal": 38,
      "text": ",",
      "top": 254.0,
      "left": 346.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0039",
      "page": 24,
      "ordinal": 39,
      "text": "不同于传统的多线程通过共享内存来通信，",
      "top": 254.0,
      "left": 350.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0040",
      "page": 24,
      "ordinal": 40,
      "text": "CSP",
      "top": 254.0,
      "left": 628.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0041",
      "page": 24,
      "ordinal": 41,
      "text": "讲究的是",
      "top": 254.0,
      "left": 654.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0042",
      "page": 24,
      "ordinal": 42,
      "text": "“",
      "top": 254.0,
      "left": 712.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0043",
      "page": 24,
      "ordinal": 43,
      "text": "以通信的",
      "top": 254.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0044",
      "page": 24,
      "ordinal": 44,
      "text": "⽅式来共享",
      "top": 278.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0046",
      "page": 24,
      "ordinal": 46,
      "text": "内存",
      "top": 278.0,
      "left": 189.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0047",
      "page": 24,
      "ordinal": 47,
      "text": "”",
      "top": 278.0,
      "left": 218.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0048",
      "page": 24,
      "ordinal": 48,
      "text": "。⽤于描述两个独⽴的并发实体通过共享的通讯",
      "top": 278.0,
      "left": 223.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0049",
      "page": 24,
      "ordinal": 49,
      "text": " channel(",
      "top": 278.0,
      "left": 530.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0050",
      "page": 24,
      "ordinal": 50,
      "text": "管道",
      "top": 278.0,
      "left": 592.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0051",
      "page": 24,
      "ordinal": 51,
      "text": ")",
      "top": 278.0,
      "left": 621.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0052",
      "page": 24,
      "ordinal": 52,
      "text": "进⾏通信的并发模型。",
      "top": 278.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0054",
      "page": 24,
      "ordinal": 54,
      "text": "CSP",
      "top": 301.0,
      "left": 112.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0055",
      "page": 24,
      "ordinal": 55,
      "text": "中",
      "top": 301.0,
      "left": 138.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0056",
      "page": 24,
      "ordinal": 56,
      "text": "channel",
      "top": 301.0,
      "left": 152.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0057",
      "page": 24,
      "ordinal": 57,
      "text": "是第⼀",
      "top": 301.0,
      "left": 206.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0059",
      "page": 24,
      "ordinal": 59,
      "text": "类对象，它不关注发送消息的实体，⽽关注与发送消息时使⽤的",
      "top": 301.0,
      "left": 254.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0060",
      "page": 24,
      "ordinal": 60,
      "text": "channel",
      "top": 301.0,
      "left": 664.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0061",
      "page": 24,
      "ordinal": 61,
      "text": "。",
      "top": 301.0,
      "left": 717.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0063",
      "page": 24,
      "ordinal": 63,
      "text": "Golang",
      "top": 325.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0064",
      "page": 24,
      "ordinal": 64,
      "text": "中",
      "top": 325.0,
      "left": 160.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0065",
      "page": 24,
      "ordinal": 65,
      "text": "channel ",
      "top": 325.0,
      "left": 175.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0066",
      "page": 24,
      "ordinal": 66,
      "text": "是被单独创建并且可以在进程之间传递，它的通信模式类似于",
      "top": 325.0,
      "left": 232.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0067",
      "page": 24,
      "ordinal": 67,
      "text": " boss-worker ",
      "top": 325.0,
      "left": 627.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0068",
      "page": 24,
      "ordinal": 68,
      "text": "模式的，",
      "top": 325.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0069",
      "page": 24,
      "ordinal": 69,
      "text": "⼀个实体",
      "top": 347.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0071",
      "page": 24,
      "ordinal": 71,
      "text": "通过将消息发送到",
      "top": 347.0,
      "left": 174.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0072",
      "page": 24,
      "ordinal": 72,
      "text": "channel ",
      "top": 347.0,
      "left": 291.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0073",
      "page": 24,
      "ordinal": 73,
      "text": "中，然后⼜监听这个",
      "top": 347.0,
      "left": 349.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0074",
      "page": 24,
      "ordinal": 74,
      "text": " channel ",
      "top": 347.0,
      "left": 480.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0075",
      "page": 24,
      "ordinal": 75,
      "text": "的实体处理，两个实体之间是匿名",
      "top": 347.0,
      "left": 542.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0076",
      "page": 24,
      "ordinal": 76,
      "text": "的，这个就实现实体中",
      "top": 371.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0078",
      "page": 24,
      "ordinal": 78,
      "text": "间的解耦，其中",
      "top": 371.0,
      "left": 262.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0079",
      "page": 24,
      "ordinal": 79,
      "text": " channel ",
      "top": 371.0,
      "left": 364.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0080",
      "page": 24,
      "ordinal": 80,
      "text": "是同步的⼀个消息被发送到",
      "top": 371.0,
      "left": 426.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0081",
      "page": 24,
      "ordinal": 81,
      "text": " channel ",
      "top": 371.0,
      "left": 601.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0082",
      "page": 24,
      "ordinal": 82,
      "text": "中，最终是⼀定要",
      "top": 371.0,
      "left": 663.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0083",
      "page": 24,
      "ordinal": 83,
      "text": "被另外的实体消费掉的，在实现",
      "top": 395.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0085",
      "page": 24,
      "ordinal": 85,
      "text": "原理上其实类似⼀个阻塞的消息队列。",
      "top": 395.0,
      "left": 320.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0087",
      "page": 24,
      "ordinal": 87,
      "text": "Goroutine ",
      "top": 418.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0088",
      "page": 24,
      "ordinal": 88,
      "text": "是",
      "top": 418.0,
      "left": 185.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0089",
      "page": 24,
      "ordinal": 89,
      "text": "Golang",
      "top": 418.0,
      "left": 199.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0090",
      "page": 24,
      "ordinal": 90,
      "text": "实际并发执⾏的实体，它底层是使⽤协程",
      "top": 418.0,
      "left": 248.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0091",
      "page": 24,
      "ordinal": 91,
      "text": "(coroutine)",
      "top": 418.0,
      "left": 511.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0092",
      "page": 24,
      "ordinal": 92,
      "text": "实现并发，",
      "top": 418.0,
      "left": 585.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0093",
      "page": 24,
      "ordinal": 93,
      "text": "coroutine",
      "top": 418.0,
      "left": 658.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0094",
      "page": 24,
      "ordinal": 94,
      "text": "是⼀种",
      "top": 418.0,
      "left": 724.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0095",
      "page": 24,
      "ordinal": 95,
      "text": "运⾏在⽤户",
      "top": 442.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0097",
      "page": 24,
      "ordinal": 97,
      "text": "态的⽤户线程，类似于",
      "top": 442.0,
      "left": 189.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0098",
      "page": 24,
      "ordinal": 98,
      "text": " greenthread",
      "top": 442.0,
      "left": 335.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0099",
      "page": 24,
      "ordinal": 99,
      "text": "，",
      "top": 442.0,
      "left": 424.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0100",
      "page": 24,
      "ordinal": 100,
      "text": "go",
      "top": 442.0,
      "left": 438.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0101",
      "page": 24,
      "ordinal": 101,
      "text": "底层选择使⽤",
      "top": 442.0,
      "left": 455.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0102",
      "page": 24,
      "ordinal": 102,
      "text": "coroutine",
      "top": 442.0,
      "left": 543.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0103",
      "page": 24,
      "ordinal": 103,
      "text": "的出发点是因为，它具有",
      "top": 442.0,
      "left": 608.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0104",
      "page": 24,
      "ordinal": 104,
      "text": "以下特点",
      "top": 464.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0106",
      "page": 24,
      "ordinal": 106,
      "text": "：",
      "top": 464.0,
      "left": 174.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b001"
      }
    },
    {
      "id": "p024-t0107",
      "page": 24,
      "ordinal": 107,
      "text": "1. ",
      "top": 500.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b002"
      }
    },
    {
      "id": "p024-t0108",
      "page": 24,
      "ordinal": 108,
      "text": "⽤户空间",
      "top": 500.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b002"
      }
    },
    {
      "id": "p024-t0110",
      "page": 24,
      "ordinal": 110,
      "text": "避免了内核态和⽤户态的切换导致的成本。",
      "top": 500.0,
      "left": 208.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b002"
      }
    },
    {
      "id": "p024-t0112",
      "page": 24,
      "ordinal": 112,
      "text": "2. ",
      "top": 531.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b003"
      }
    },
    {
      "id": "p024-t0113",
      "page": 24,
      "ordinal": 113,
      "text": "可以由语⾔和框架层进⾏调度。",
      "top": 531.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b003"
      }
    },
    {
      "id": "p024-t0115",
      "page": 24,
      "ordinal": 115,
      "text": "3. ",
      "top": 561.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b004"
      }
    },
    {
      "id": "p024-t0116",
      "page": 24,
      "ordinal": 116,
      "text": "更⼩的栈空间允许创建⼤量的实例",
      "top": 561.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b004"
      }
    },
    {
      "id": "p024-t0118",
      "page": 24,
      "ordinal": 118,
      "text": " Golang",
      "top": 596.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0119",
      "page": 24,
      "ordinal": 119,
      "text": "中的",
      "top": 596.0,
      "left": 164.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0120",
      "page": 24,
      "ordinal": 120,
      "text": "Goroutine",
      "top": 596.0,
      "left": 193.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0121",
      "page": 24,
      "ordinal": 121,
      "text": "的特性",
      "top": 596.0,
      "left": 262.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0122",
      "page": 24,
      "ordinal": 122,
      "text": ": ",
      "top": 596.0,
      "left": 306.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0123",
      "page": 24,
      "ordinal": 123,
      "text": "Golang",
      "top": 620.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0124",
      "page": 24,
      "ordinal": 124,
      "text": "内部有三个对象：",
      "top": 620.0,
      "left": 160.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0125",
      "page": 24,
      "ordinal": 125,
      "text": " P",
      "top": 620.0,
      "left": 277.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0126",
      "page": 24,
      "ordinal": 126,
      "text": "对象",
      "top": 620.0,
      "left": 290.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0127",
      "page": 24,
      "ordinal": 127,
      "text": "(processor) ",
      "top": 620.0,
      "left": 319.0,
      "width": 80.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0128",
      "page": 24,
      "ordinal": 128,
      "text": "代表上下⽂（或者可以认为是",
      "top": 620.0,
      "left": 399.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0129",
      "page": 24,
      "ordinal": 129,
      "text": "cpu",
      "top": 620.0,
      "left": 589.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0130",
      "page": 24,
      "ordinal": 130,
      "text": "），",
      "top": 620.0,
      "left": 614.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0131",
      "page": 24,
      "ordinal": 131,
      "text": "M(work thread)",
      "top": 620.0,
      "left": 643.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0132",
      "page": 24,
      "ordinal": 132,
      "text": "代表",
      "top": 620.0,
      "left": 748.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0133",
      "page": 24,
      "ordinal": 133,
      "text": "⼯作线",
      "top": 643.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0135",
      "page": 24,
      "ordinal": 135,
      "text": "程，",
      "top": 643.0,
      "left": 159.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0136",
      "page": 24,
      "ordinal": 136,
      "text": "G",
      "top": 643.0,
      "left": 189.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0137",
      "page": 24,
      "ordinal": 137,
      "text": "对象（",
      "top": 643.0,
      "left": 199.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0138",
      "page": 24,
      "ordinal": 138,
      "text": "goroutine",
      "top": 643.0,
      "left": 243.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0139",
      "page": 24,
      "ordinal": 139,
      "text": "）",
      "top": 643.0,
      "left": 310.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0140",
      "page": 24,
      "ordinal": 140,
      "text": ". ",
      "top": 643.0,
      "left": 324.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0141",
      "page": 24,
      "ordinal": 141,
      "text": "正常情况下⼀个",
      "top": 643.0,
      "left": 332.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0142",
      "page": 24,
      "ordinal": 142,
      "text": "cpu",
      "top": 643.0,
      "left": 435.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0143",
      "page": 24,
      "ordinal": 143,
      "text": "对象启⼀个⼯作线程对象，线程去检查并执⾏",
      "top": 643.0,
      "left": 459.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0144",
      "page": 24,
      "ordinal": 144,
      "text": "goroutine",
      "top": 667.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0145",
      "page": 24,
      "ordinal": 145,
      "text": "对象。碰到",
      "top": 667.0,
      "left": 178.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0146",
      "page": 24,
      "ordinal": 146,
      "text": "goroutine",
      "top": 667.0,
      "left": 252.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0147",
      "page": 24,
      "ordinal": 147,
      "text": "对象阻塞的时",
      "top": 667.0,
      "left": 318.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0149",
      "page": 24,
      "ordinal": 149,
      "text": "候，会启动⼀个新的⼯作线程，以充分利⽤",
      "top": 667.0,
      "left": 410.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0150",
      "page": 24,
      "ordinal": 150,
      "text": "cpu",
      "top": 667.0,
      "left": 688.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0151",
      "page": 24,
      "ordinal": 151,
      "text": "资源。",
      "top": 667.0,
      "left": 713.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0153",
      "page": 24,
      "ordinal": 153,
      "text": "所",
      "top": 667.0,
      "left": 760.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0154",
      "page": 24,
      "ordinal": 154,
      "text": "有有时候线程对象会⽐处理器对象多很多",
      "top": 689.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0157",
      "page": 24,
      "ordinal": 157,
      "text": "我们⽤如下图分别表示",
      "top": 713.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0158",
      "page": 24,
      "ordinal": 158,
      "text": "P",
      "top": 713.0,
      "left": 262.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0159",
      "page": 24,
      "ordinal": 159,
      "text": "、",
      "top": 713.0,
      "left": 271.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0160",
      "page": 24,
      "ordinal": 160,
      "text": "M",
      "top": 713.0,
      "left": 285.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0161",
      "page": 24,
      "ordinal": 161,
      "text": "、",
      "top": 713.0,
      "left": 298.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0162",
      "page": 24,
      "ordinal": 162,
      "text": "G:",
      "top": 713.0,
      "left": 313.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b005"
      }
    },
    {
      "id": "p024-t0163",
      "page": 24,
      "ordinal": 163,
      "text": " G",
      "top": 920.0,
      "left": 112.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0164",
      "page": 24,
      "ordinal": 164,
      "text": "（",
      "top": 920.0,
      "left": 126.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0165",
      "page": 24,
      "ordinal": 165,
      "text": "Goroutine",
      "top": 920.0,
      "left": 141.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0166",
      "page": 24,
      "ordinal": 166,
      "text": "）",
      "top": 920.0,
      "left": 210.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0168",
      "page": 24,
      "ordinal": 168,
      "text": "：我们所说的协程，为⽤户级的轻量级线程，每个",
      "top": 920.0,
      "left": 229.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0169",
      "page": 24,
      "ordinal": 169,
      "text": "Goroutine",
      "top": 920.0,
      "left": 550.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0170",
      "page": 24,
      "ordinal": 170,
      "text": "对象中的",
      "top": 920.0,
      "left": 620.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0171",
      "page": 24,
      "ordinal": 171,
      "text": "sched",
      "top": 920.0,
      "left": 678.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0172",
      "page": 24,
      "ordinal": 172,
      "text": "保存着其",
      "top": 920.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0173",
      "page": 24,
      "ordinal": 173,
      "text": "上下⽂信",
      "top": 944.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0175",
      "page": 24,
      "ordinal": 175,
      "text": "息",
      "top": 944.0,
      "left": 174.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0176",
      "page": 24,
      "ordinal": 176,
      "text": ". ",
      "top": 944.0,
      "left": 189.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0177",
      "page": 24,
      "ordinal": 177,
      "text": "M",
      "top": 967.0,
      "left": 112.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0178",
      "page": 24,
      "ordinal": 178,
      "text": "（",
      "top": 967.0,
      "left": 125.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0179",
      "page": 24,
      "ordinal": 179,
      "text": "Machine",
      "top": 967.0,
      "left": 140.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0180",
      "page": 24,
      "ordinal": 180,
      "text": "）",
      "top": 967.0,
      "left": 198.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0182",
      "page": 24,
      "ordinal": 182,
      "text": "：对内核级线程的封装，数量对应真实的",
      "top": 967.0,
      "left": 216.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0183",
      "page": 24,
      "ordinal": 183,
      "text": "CPU",
      "top": 967.0,
      "left": 479.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0184",
      "page": 24,
      "ordinal": 184,
      "text": "数（真正⼲活的对象）",
      "top": 967.0,
      "left": 508.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0185",
      "page": 24,
      "ordinal": 185,
      "text": ". ",
      "top": 967.0,
      "left": 654.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0186",
      "page": 24,
      "ordinal": 186,
      "text": "P",
      "top": 990.0,
      "left": 112.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0187",
      "page": 24,
      "ordinal": 187,
      "text": "（",
      "top": 990.0,
      "left": 121.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0188",
      "page": 24,
      "ordinal": 188,
      "text": "Processor",
      "top": 990.0,
      "left": 135.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0189",
      "page": 24,
      "ordinal": 189,
      "text": "）",
      "top": 990.0,
      "left": 203.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0191",
      "page": 24,
      "ordinal": 191,
      "text": "：即为",
      "top": 990.0,
      "left": 221.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0192",
      "page": 24,
      "ordinal": 192,
      "text": "G",
      "top": 990.0,
      "left": 265.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0193",
      "page": 24,
      "ordinal": 193,
      "text": "和",
      "top": 990.0,
      "left": 276.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0194",
      "page": 24,
      "ordinal": 194,
      "text": "M",
      "top": 990.0,
      "left": 290.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0195",
      "page": 24,
      "ordinal": 195,
      "text": "的调度对象，⽤来调度",
      "top": 990.0,
      "left": 303.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0196",
      "page": 24,
      "ordinal": 196,
      "text": "G",
      "top": 990.0,
      "left": 450.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0197",
      "page": 24,
      "ordinal": 197,
      "text": "和",
      "top": 990.0,
      "left": 460.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0198",
      "page": 24,
      "ordinal": 198,
      "text": "M",
      "top": 990.0,
      "left": 475.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0199",
      "page": 24,
      "ordinal": 199,
      "text": "之间的关联关系，其数量可通过",
      "top": 990.0,
      "left": 488.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0200",
      "page": 24,
      "ordinal": 200,
      "text": "GOMAXPROCS()",
      "top": 1013.0,
      "left": 112.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0201",
      "page": 24,
      "ordinal": 201,
      "text": "来设",
      "top": 1013.0,
      "left": 220.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0203",
      "page": 24,
      "ordinal": 203,
      "text": "置，默认为核⼼数",
      "top": 1013.0,
      "left": 253.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0204",
      "page": 24,
      "ordinal": 204,
      "text": ". ",
      "top": 1013.0,
      "left": 370.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0205",
      "page": 24,
      "ordinal": 205,
      "text": "在单核情况下，所有",
      "top": 1037.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0206",
      "page": 24,
      "ordinal": 206,
      "text": "Goroutine",
      "top": 1037.0,
      "left": 243.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0207",
      "page": 24,
      "ordinal": 207,
      "text": "运⾏在同⼀个线程（",
      "top": 1037.0,
      "left": 313.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0208",
      "page": 24,
      "ordinal": 208,
      "text": "M0",
      "top": 1037.0,
      "left": 444.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0209",
      "page": 24,
      "ordinal": 209,
      "text": "）中，每⼀个线程维护⼀个上下⽂（",
      "top": 1037.0,
      "left": 466.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0210",
      "page": 24,
      "ordinal": 210,
      "text": "P",
      "top": 1037.0,
      "left": 700.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0211",
      "page": 24,
      "ordinal": 211,
      "text": "），任何时",
      "top": 1037.0,
      "left": 709.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0212",
      "page": 24,
      "ordinal": 212,
      "text": "刻，⼀个",
      "top": 1061.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0214",
      "page": 24,
      "ordinal": 214,
      "text": "上下⽂中只有⼀个",
      "top": 1061.0,
      "left": 174.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0215",
      "page": 24,
      "ordinal": 215,
      "text": "Goroutine",
      "top": 1061.0,
      "left": 291.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0216",
      "page": 24,
      "ordinal": 216,
      "text": "，其他",
      "top": 1061.0,
      "left": 360.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0217",
      "page": 24,
      "ordinal": 217,
      "text": "Goroutine",
      "top": 1061.0,
      "left": 404.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0218",
      "page": 24,
      "ordinal": 218,
      "text": "在",
      "top": 1061.0,
      "left": 474.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0219",
      "page": 24,
      "ordinal": 219,
      "text": "runqueue",
      "top": 1061.0,
      "left": 488.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0220",
      "page": 24,
      "ordinal": 220,
      "text": "中等待。",
      "top": 1061.0,
      "left": 555.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0222",
      "page": 24,
      "ordinal": 222,
      "text": "⼀个",
      "top": 1061.0,
      "left": 618.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0223",
      "page": 24,
      "ordinal": 223,
      "text": "Goroutine",
      "top": 1061.0,
      "left": 647.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0224",
      "page": 24,
      "ordinal": 224,
      "text": "运⾏完⾃",
      "top": 1061.0,
      "left": 716.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0225",
      "page": 24,
      "ordinal": 225,
      "text": "⼰的时间⽚后，让出上下⽂，⾃⼰回到",
      "top": 1084.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0226",
      "page": 24,
      "ordinal": 226,
      "text": "runqueue",
      "top": 1084.0,
      "left": 360.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0227",
      "page": 24,
      "ordinal": 227,
      "text": "中（如下图所示）。",
      "top": 1084.0,
      "left": 428.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0229",
      "page": 24,
      "ordinal": 229,
      "text": "当正在运⾏的",
      "top": 1084.0,
      "left": 563.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0230",
      "page": 24,
      "ordinal": 230,
      "text": "G0",
      "top": 1084.0,
      "left": 651.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0231",
      "page": 24,
      "ordinal": 231,
      "text": "阻塞的时候（可",
      "top": 1084.0,
      "left": 670.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0232",
      "page": 24,
      "ordinal": 232,
      "text": "以需要",
      "top": 1107.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0233",
      "page": 24,
      "ordinal": 233,
      "text": "IO",
      "top": 1107.0,
      "left": 156.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0234",
      "page": 24,
      "ordinal": 234,
      "text": "），会再创建⼀个线程（",
      "top": 1107.0,
      "left": 171.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0235",
      "page": 24,
      "ordinal": 235,
      "text": "M1",
      "top": 1107.0,
      "left": 332.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0236",
      "page": 24,
      "ordinal": 236,
      "text": "），",
      "top": 1107.0,
      "left": 354.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0237",
      "page": 24,
      "ordinal": 237,
      "text": "P",
      "top": 1107.0,
      "left": 383.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p024-t0238",
      "page": 24,
      "ordinal": 238,
      "text": "转到新的线程中去运⾏",
      "top": 1107.0,
      "left": 392.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b007"
      }
    },
    {
      "id": "p025-t0002",
      "page": 25,
      "ordinal": 2,
      "text": "当",
      "top": 417.0,
      "left": 116.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0003",
      "page": 25,
      "ordinal": 3,
      "text": "M0",
      "top": 417.0,
      "left": 130.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0004",
      "page": 25,
      "ordinal": 4,
      "text": "返回时，它会尝试从其他线程中",
      "top": 417.0,
      "left": 152.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0005",
      "page": 25,
      "ordinal": 5,
      "text": "“",
      "top": 417.0,
      "left": 357.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0006",
      "page": 25,
      "ordinal": 6,
      "text": "偷",
      "top": 417.0,
      "left": 362.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0007",
      "page": 25,
      "ordinal": 7,
      "text": "”",
      "top": 417.0,
      "left": 376.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0008",
      "page": 25,
      "ordinal": 8,
      "text": "⼀个上下⽂过来，如果没有偷到，会把",
      "top": 417.0,
      "left": 381.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0009",
      "page": 25,
      "ordinal": 9,
      "text": "Goroutine",
      "top": 417.0,
      "left": 630.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0010",
      "page": 25,
      "ordinal": 10,
      "text": "放到",
      "top": 417.0,
      "left": 699.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0011",
      "page": 25,
      "ordinal": 11,
      "text": "Global ",
      "top": 417.0,
      "left": 729.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0012",
      "page": 25,
      "ordinal": 12,
      "text": "runqueue ",
      "top": 441.0,
      "left": 112.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0013",
      "page": 25,
      "ordinal": 13,
      "text": "中去，然后把⾃⼰放⼊线程缓存中。",
      "top": 441.0,
      "left": 183.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0015",
      "page": 25,
      "ordinal": 15,
      "text": "上下⽂会定时检查",
      "top": 441.0,
      "left": 421.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0016",
      "page": 25,
      "ordinal": 16,
      "text": "Global runqueue",
      "top": 441.0,
      "left": 538.0,
      "width": 115.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0017",
      "page": 25,
      "ordinal": 17,
      "text": "。",
      "top": 441.0,
      "left": 653.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0019",
      "page": 25,
      "ordinal": 19,
      "text": "Golang",
      "top": 464.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0020",
      "page": 25,
      "ordinal": 20,
      "text": "是为并发⽽⽣的语⾔，",
      "top": 464.0,
      "left": 160.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0021",
      "page": 25,
      "ordinal": 21,
      "text": "Go",
      "top": 464.0,
      "left": 306.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0022",
      "page": 25,
      "ordinal": 22,
      "text": "语⾔是为数不多的在语⾔层⾯实现并发的语⾔；也正是",
      "top": 464.0,
      "left": 326.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0023",
      "page": 25,
      "ordinal": 23,
      "text": "Go",
      "top": 464.0,
      "left": 677.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0024",
      "page": 25,
      "ordinal": 24,
      "text": "语⾔的并发",
      "top": 464.0,
      "left": 696.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0025",
      "page": 25,
      "ordinal": 25,
      "text": "特性，吸引",
      "top": 488.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0027",
      "page": 25,
      "ordinal": 27,
      "text": "了全球⽆数的开发者。",
      "top": 488.0,
      "left": 189.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0029",
      "page": 25,
      "ordinal": 29,
      "text": "Golang",
      "top": 510.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0030",
      "page": 25,
      "ordinal": 30,
      "text": "的",
      "top": 510.0,
      "left": 160.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0031",
      "page": 25,
      "ordinal": 31,
      "text": "CSP",
      "top": 510.0,
      "left": 175.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0032",
      "page": 25,
      "ordinal": 32,
      "text": "并发模型，是通过",
      "top": 510.0,
      "left": 201.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0033",
      "page": 25,
      "ordinal": 33,
      "text": "Goroutine",
      "top": 510.0,
      "left": 318.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0034",
      "page": 25,
      "ordinal": 34,
      "text": "和",
      "top": 510.0,
      "left": 387.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0035",
      "page": 25,
      "ordinal": 35,
      "text": "Channel",
      "top": 510.0,
      "left": 402.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0036",
      "page": 25,
      "ordinal": 36,
      "text": "来实现的。",
      "top": 510.0,
      "left": 458.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0038",
      "page": 25,
      "ordinal": 38,
      "text": "Goroutine ",
      "top": 534.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0039",
      "page": 25,
      "ordinal": 39,
      "text": "是",
      "top": 534.0,
      "left": 185.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0040",
      "page": 25,
      "ordinal": 40,
      "text": "Go",
      "top": 534.0,
      "left": 199.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0041",
      "page": 25,
      "ordinal": 41,
      "text": "语⾔中并发的执⾏单位。有点抽象，其实就是和传统概念上的",
      "top": 534.0,
      "left": 219.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0042",
      "page": 25,
      "ordinal": 42,
      "text": "”",
      "top": 534.0,
      "left": 614.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0043",
      "page": 25,
      "ordinal": 43,
      "text": "线程",
      "top": 534.0,
      "left": 619.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0044",
      "page": 25,
      "ordinal": 44,
      "text": "“",
      "top": 534.0,
      "left": 648.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0045",
      "page": 25,
      "ordinal": 45,
      "text": "类似，可以理解为",
      "top": 534.0,
      "left": 653.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0046",
      "page": 25,
      "ordinal": 46,
      "text": "”",
      "top": 534.0,
      "left": 770.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0047",
      "page": 25,
      "ordinal": 47,
      "text": "线程",
      "top": 558.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0048",
      "page": 25,
      "ordinal": 48,
      "text": "“",
      "top": 558.0,
      "left": 141.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0049",
      "page": 25,
      "ordinal": 49,
      "text": "。",
      "top": 558.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0050",
      "page": 25,
      "ordinal": 50,
      "text": " Channel",
      "top": 558.0,
      "left": 161.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0051",
      "page": 25,
      "ordinal": 51,
      "text": "是",
      "top": 558.0,
      "left": 221.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0052",
      "page": 25,
      "ordinal": 52,
      "text": "Go",
      "top": 558.0,
      "left": 235.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0053",
      "page": 25,
      "ordinal": 53,
      "text": "语⾔中各个并发结构体",
      "top": 558.0,
      "left": 255.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0054",
      "page": 25,
      "ordinal": 54,
      "text": "(Goroutine)",
      "top": 558.0,
      "left": 401.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0055",
      "page": 25,
      "ordinal": 55,
      "text": "之前的通信机制。通常",
      "top": 558.0,
      "left": 479.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0056",
      "page": 25,
      "ordinal": 56,
      "text": "Channel",
      "top": 558.0,
      "left": 625.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0057",
      "page": 25,
      "ordinal": 57,
      "text": "，是各个",
      "top": 558.0,
      "left": 681.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0058",
      "page": 25,
      "ordinal": 58,
      "text": "Goroutine",
      "top": 581.0,
      "left": 112.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0059",
      "page": 25,
      "ordinal": 59,
      "text": "之间通信的",
      "top": 581.0,
      "left": 181.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0060",
      "page": 25,
      "ordinal": 60,
      "text": "” ",
      "top": 581.0,
      "left": 254.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0061",
      "page": 25,
      "ordinal": 61,
      "text": "管道",
      "top": 581.0,
      "left": 263.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0062",
      "page": 25,
      "ordinal": 62,
      "text": "“",
      "top": 581.0,
      "left": 292.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0063",
      "page": 25,
      "ordinal": 63,
      "text": "，有点类似于",
      "top": 581.0,
      "left": 297.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0064",
      "page": 25,
      "ordinal": 64,
      "text": "Linux",
      "top": 581.0,
      "left": 385.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0065",
      "page": 25,
      "ordinal": 65,
      "text": "中的管道。",
      "top": 581.0,
      "left": 422.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0067",
      "page": 25,
      "ordinal": 67,
      "text": "通信机制",
      "top": 605.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0068",
      "page": 25,
      "ordinal": 68,
      "text": "channel",
      "top": 605.0,
      "left": 170.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0069",
      "page": 25,
      "ordinal": 69,
      "text": "也很⽅便，传数据⽤",
      "top": 605.0,
      "left": 224.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0070",
      "page": 25,
      "ordinal": 70,
      "text": "channel <- data",
      "top": 605.0,
      "left": 356.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0071",
      "page": 25,
      "ordinal": 71,
      "text": "，取数据⽤",
      "top": 605.0,
      "left": 461.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0072",
      "page": 25,
      "ordinal": 72,
      "text": "<-channel",
      "top": 605.0,
      "left": 534.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0073",
      "page": 25,
      "ordinal": 73,
      "text": "。",
      "top": 605.0,
      "left": 601.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0075",
      "page": 25,
      "ordinal": 75,
      "text": "在通信过程中，传数据",
      "top": 627.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0076",
      "page": 25,
      "ordinal": 76,
      "text": "channel <- data",
      "top": 627.0,
      "left": 258.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0077",
      "page": 25,
      "ordinal": 77,
      "text": "和取数据",
      "top": 627.0,
      "left": 363.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0078",
      "page": 25,
      "ordinal": 78,
      "text": "<-channel",
      "top": 627.0,
      "left": 421.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0079",
      "page": 25,
      "ordinal": 79,
      "text": "必然会成对出现，因为这边传，那边取，两个",
      "top": 627.0,
      "left": 488.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0081",
      "page": 25,
      "ordinal": 81,
      "text": "goroutine",
      "top": 651.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0082",
      "page": 25,
      "ordinal": 82,
      "text": "之间才会实现通信。",
      "top": 651.0,
      "left": 178.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0084",
      "page": 25,
      "ordinal": 84,
      "text": "⽽且不管传还是取，必阻塞，直到另外的",
      "top": 651.0,
      "left": 314.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0085",
      "page": 25,
      "ordinal": 85,
      "text": "goroutine",
      "top": 651.0,
      "left": 577.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0086",
      "page": 25,
      "ordinal": 86,
      "text": "传或者取为⽌",
      "top": 651.0,
      "left": 644.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p024-h02",
        "heading_id": "p024-h02",
        "block_id": "q-p024-h02-b009"
      }
    },
    {
      "id": "p025-t0088",
      "page": 25,
      "ordinal": 88,
      "text": "Golang ",
      "top": 686.0,
      "left": 112.0,
      "width": 96.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01"
      }
    },
    {
      "id": "p025-t0089",
      "page": 25,
      "ordinal": 89,
      "text": "中",
      "top": 686.0,
      "left": 207.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01"
      }
    },
    {
      "id": "p025-t0090",
      "page": 25,
      "ordinal": 90,
      "text": " Goroutine ",
      "top": 686.0,
      "left": 233.0,
      "width": 143.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01"
      }
    },
    {
      "id": "p025-t0091",
      "page": 25,
      "ordinal": 91,
      "text": "如何调度",
      "top": 686.0,
      "left": 376.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01"
      }
    },
    {
      "id": "p025-t0094",
      "page": 25,
      "ordinal": 94,
      "text": " goroutine",
      "top": 737.0,
      "left": 112.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0095",
      "page": 25,
      "ordinal": 95,
      "text": "是",
      "top": 737.0,
      "left": 182.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0096",
      "page": 25,
      "ordinal": 96,
      "text": "Golang",
      "top": 737.0,
      "left": 197.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0097",
      "page": 25,
      "ordinal": 97,
      "text": "语⾔中最经典的设计，也是其魅⼒所在，",
      "top": 737.0,
      "left": 245.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0098",
      "page": 25,
      "ordinal": 98,
      "text": "goroutine",
      "top": 737.0,
      "left": 508.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0099",
      "page": 25,
      "ordinal": 99,
      "text": "的本质是协程，是实现并⾏计算",
      "top": 737.0,
      "left": 575.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0100",
      "page": 25,
      "ordinal": 100,
      "text": "的核⼼。",
      "top": 760.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0101",
      "page": 25,
      "ordinal": 101,
      "text": " goroutine",
      "top": 760.0,
      "left": 170.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0102",
      "page": 25,
      "ordinal": 102,
      "text": "使⽤⽅式⾮常的简单，只需使⽤",
      "top": 760.0,
      "left": 241.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0103",
      "page": 25,
      "ordinal": 103,
      "text": "go",
      "top": 760.0,
      "left": 445.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0104",
      "page": 25,
      "ordinal": 104,
      "text": "关键字即可启动⼀个协程，并且它是处于异步⽅",
      "top": 760.0,
      "left": 462.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0105",
      "page": 25,
      "ordinal": 105,
      "text": "式运⾏，你不需要等",
      "top": 783.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0107",
      "page": 25,
      "ordinal": 107,
      "text": "它运⾏完成以后在执⾏以后的代码。",
      "top": 783.0,
      "left": 247.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0108",
      "page": 25,
      "ordinal": 108,
      "text": " go func()//",
      "top": 806.0,
      "left": 112.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0109",
      "page": 25,
      "ordinal": 109,
      "text": "通过",
      "top": 806.0,
      "left": 185.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0110",
      "page": 25,
      "ordinal": 110,
      "text": "go",
      "top": 806.0,
      "left": 215.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0111",
      "page": 25,
      "ordinal": 111,
      "text": "关键字启动⼀个协程来运⾏函数",
      "top": 806.0,
      "left": 232.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0113",
      "page": 25,
      "ordinal": 113,
      "text": "协程：",
      "top": 830.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0115",
      "page": 25,
      "ordinal": 115,
      "text": "协程拥有⾃⼰的寄存器上下⽂和栈。协程调度切换时，将寄存器上下⽂和栈保存到其他地⽅，在切回来",
      "top": 854.0,
      "left": 116.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0116",
      "page": 25,
      "ordinal": 116,
      "text": "的时候，恢",
      "top": 877.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0118",
      "page": 25,
      "ordinal": 118,
      "text": "复先前保存的寄存器上下⽂和栈。",
      "top": 877.0,
      "left": 189.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0120",
      "page": 25,
      "ordinal": 120,
      "text": "因此，协程能保留上⼀次调⽤时的状态（即所有局部状态",
      "top": 877.0,
      "left": 412.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0121",
      "page": 25,
      "ordinal": 121,
      "text": "的⼀个特定组合），每",
      "top": 900.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0123",
      "page": 25,
      "ordinal": 123,
      "text": "次过程重⼊时，就相当于进⼊上⼀次调⽤的状态，换种说法：进⼊上⼀次离开时",
      "top": 900.0,
      "left": 262.0,
      "width": 512.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0124",
      "page": 25,
      "ordinal": 124,
      "text": "所处逻辑流的位置。",
      "top": 923.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0126",
      "page": 25,
      "ordinal": 126,
      "text": "线程和进程的",
      "top": 923.0,
      "left": 247.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0128",
      "page": 25,
      "ordinal": 128,
      "text": "操作是由程序触发系统接⼝，最后的执⾏者是系统；协程的操作执⾏",
      "top": 923.0,
      "left": 339.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0129",
      "page": 25,
      "ordinal": 129,
      "text": "者则是⽤户⾃身程序，",
      "top": 947.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0130",
      "page": 25,
      "ordinal": 130,
      "text": "goroutine",
      "top": 947.0,
      "left": 258.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0131",
      "page": 25,
      "ordinal": 131,
      "text": "也是协程。",
      "top": 947.0,
      "left": 325.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0132",
      "page": 25,
      "ordinal": 132,
      "text": " groutine",
      "top": 947.0,
      "left": 398.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0133",
      "page": 25,
      "ordinal": 133,
      "text": "能拥有强⼤的并发实现是通过",
      "top": 947.0,
      "left": 459.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0134",
      "page": 25,
      "ordinal": 134,
      "text": "GPM",
      "top": 947.0,
      "left": 650.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0135",
      "page": 25,
      "ordinal": 135,
      "text": "调度模型实现",
      "top": 947.0,
      "left": 682.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0136",
      "page": 25,
      "ordinal": 136,
      "text": ".",
      "top": 947.0,
      "left": 770.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b001"
      }
    },
    {
      "id": "p025-t0137",
      "page": 25,
      "ordinal": 137,
      "text": " Go",
      "top": 1125.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0138",
      "page": 25,
      "ordinal": 138,
      "text": "的调度器内部有四个重要的结构：",
      "top": 1125.0,
      "left": 135.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0139",
      "page": 25,
      "ordinal": 139,
      "text": "M",
      "top": 1125.0,
      "left": 354.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0140",
      "page": 25,
      "ordinal": 140,
      "text": "，",
      "top": 1125.0,
      "left": 368.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0141",
      "page": 25,
      "ordinal": 141,
      "text": "P",
      "top": 1125.0,
      "left": 382.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0142",
      "page": 25,
      "ordinal": 142,
      "text": "，",
      "top": 1125.0,
      "left": 391.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0143",
      "page": 25,
      "ordinal": 143,
      "text": "S",
      "top": 1125.0,
      "left": 406.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0144",
      "page": 25,
      "ordinal": 144,
      "text": "，",
      "top": 1125.0,
      "left": 414.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0145",
      "page": 25,
      "ordinal": 145,
      "text": "Sched",
      "top": 1125.0,
      "left": 428.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0146",
      "page": 25,
      "ordinal": 146,
      "text": "，如上图所示（",
      "top": 1125.0,
      "left": 469.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0147",
      "page": 25,
      "ordinal": 147,
      "text": "Sched",
      "top": 1125.0,
      "left": 572.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0148",
      "page": 25,
      "ordinal": 148,
      "text": "未给出）",
      "top": 1125.0,
      "left": 613.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0149",
      "page": 25,
      "ordinal": 149,
      "text": ". ",
      "top": 1125.0,
      "left": 671.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b003"
      }
    },
    {
      "id": "p025-t0150",
      "page": 25,
      "ordinal": 150,
      "text": "1. M:M",
      "top": 1160.0,
      "left": 129.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0151",
      "page": 25,
      "ordinal": 151,
      "text": "代表内核级线程，⼀个",
      "top": 1160.0,
      "left": 176.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0152",
      "page": 25,
      "ordinal": 152,
      "text": "M",
      "top": 1160.0,
      "left": 322.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0153",
      "page": 25,
      "ordinal": 153,
      "text": "就是⼀个线程，",
      "top": 1160.0,
      "left": 335.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0154",
      "page": 25,
      "ordinal": 154,
      "text": "goroutine",
      "top": 1160.0,
      "left": 438.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0155",
      "page": 25,
      "ordinal": 155,
      "text": "就是跑在",
      "top": 1160.0,
      "left": 504.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0156",
      "page": 25,
      "ordinal": 156,
      "text": "M",
      "top": 1160.0,
      "left": 563.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0157",
      "page": 25,
      "ordinal": 157,
      "text": "之上的；",
      "top": 1160.0,
      "left": 576.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0158",
      "page": 25,
      "ordinal": 158,
      "text": "M",
      "top": 1160.0,
      "left": 635.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0159",
      "page": 25,
      "ordinal": 159,
      "text": "是⼀个很⼤的结构，",
      "top": 1160.0,
      "left": 648.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0160",
      "page": 25,
      "ordinal": 160,
      "text": "⾥⾯维护",
      "top": 1183.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0162",
      "page": 25,
      "ordinal": 162,
      "text": "⼩对象内存",
      "top": 1183.0,
      "left": 208.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0163",
      "page": 25,
      "ordinal": 163,
      "text": "cache",
      "top": 1183.0,
      "left": 281.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0164",
      "page": 25,
      "ordinal": 164,
      "text": "（",
      "top": 1183.0,
      "left": 320.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0165",
      "page": 25,
      "ordinal": 165,
      "text": "mcache",
      "top": 1183.0,
      "left": 335.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0166",
      "page": 25,
      "ordinal": 166,
      "text": "）、当前执⾏的",
      "top": 1183.0,
      "left": 388.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0167",
      "page": 25,
      "ordinal": 167,
      "text": "goroutine",
      "top": 1183.0,
      "left": 490.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p025-t0168",
      "page": 25,
      "ordinal": 168,
      "text": "、随机数发⽣器等等⾮常多的信息",
      "top": 1183.0,
      "left": 557.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b004"
      }
    },
    {
      "id": "p026-t0001",
      "page": 26,
      "ordinal": 1,
      "text": "2. G:",
      "top": 44.0,
      "left": 129.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0002",
      "page": 26,
      "ordinal": 2,
      "text": "代表⼀个",
      "top": 44.0,
      "left": 160.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0003",
      "page": 26,
      "ordinal": 3,
      "text": "goroutine",
      "top": 44.0,
      "left": 219.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0004",
      "page": 26,
      "ordinal": 4,
      "text": "，它有⾃⼰的栈，",
      "top": 44.0,
      "left": 285.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0005",
      "page": 26,
      "ordinal": 5,
      "text": "instruction pointer",
      "top": 44.0,
      "left": 402.0,
      "width": 127.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0006",
      "page": 26,
      "ordinal": 6,
      "text": "和其他信息（正在等待的",
      "top": 44.0,
      "left": 529.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0007",
      "page": 26,
      "ordinal": 7,
      "text": "channel",
      "top": 44.0,
      "left": 690.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0008",
      "page": 26,
      "ordinal": 8,
      "text": "等",
      "top": 44.0,
      "left": 744.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0009",
      "page": 26,
      "ordinal": 9,
      "text": "等），⽤于调",
      "top": 67.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0011",
      "page": 26,
      "ordinal": 11,
      "text": "度。",
      "top": 67.0,
      "left": 237.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b005"
      }
    },
    {
      "id": "p026-t0013",
      "page": 26,
      "ordinal": 13,
      "text": "3. P:P",
      "top": 98.0,
      "left": 129.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0014",
      "page": 26,
      "ordinal": 14,
      "text": "全称是",
      "top": 98.0,
      "left": 167.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0015",
      "page": 26,
      "ordinal": 15,
      "text": "Processor",
      "top": 98.0,
      "left": 211.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0016",
      "page": 26,
      "ordinal": 16,
      "text": "，处理器，它的主要⽤途就是⽤来执⾏",
      "top": 98.0,
      "left": 278.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0017",
      "page": 26,
      "ordinal": 17,
      "text": "goroutine",
      "top": 98.0,
      "left": 527.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0018",
      "page": 26,
      "ordinal": 18,
      "text": "的，所以它也维护了⼀个",
      "top": 98.0,
      "left": 594.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0019",
      "page": 26,
      "ordinal": 19,
      "text": "goroutine",
      "top": 121.0,
      "left": 146.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0020",
      "page": 26,
      "ordinal": 20,
      "text": "队",
      "top": 121.0,
      "left": 212.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0022",
      "page": 26,
      "ordinal": 22,
      "text": "列，⾥⾯存储了所有需要它来执⾏的",
      "top": 121.0,
      "left": 231.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0023",
      "page": 26,
      "ordinal": 23,
      "text": "goroutine ",
      "top": 121.0,
      "left": 465.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b006"
      }
    },
    {
      "id": "p026-t0024",
      "page": 26,
      "ordinal": 24,
      "text": "4. Sched",
      "top": 152.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0025",
      "page": 26,
      "ordinal": 25,
      "text": "：代表调度器，它维护有存储",
      "top": 152.0,
      "left": 187.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0026",
      "page": 26,
      "ordinal": 26,
      "text": "M",
      "top": 152.0,
      "left": 377.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0027",
      "page": 26,
      "ordinal": 27,
      "text": "和",
      "top": 152.0,
      "left": 390.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0028",
      "page": 26,
      "ordinal": 28,
      "text": "G",
      "top": 152.0,
      "left": 405.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0029",
      "page": 26,
      "ordinal": 29,
      "text": "的队列以及调度器的⼀些状态信息等",
      "top": 152.0,
      "left": 415.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b007"
      }
    },
    {
      "id": "p026-t0031",
      "page": 26,
      "ordinal": 31,
      "text": "调度实现：",
      "top": 186.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b008"
      }
    },
    {
      "id": "p026-t0033",
      "page": 26,
      "ordinal": 33,
      "text": "从上图中可以看到，有",
      "top": 716.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0034",
      "page": 26,
      "ordinal": 34,
      "text": "2",
      "top": 716.0,
      "left": 262.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0035",
      "page": 26,
      "ordinal": 35,
      "text": "个物理线程",
      "top": 716.0,
      "left": 270.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0036",
      "page": 26,
      "ordinal": 36,
      "text": "M",
      "top": 716.0,
      "left": 343.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0037",
      "page": 26,
      "ordinal": 37,
      "text": "，每⼀个",
      "top": 716.0,
      "left": 357.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0038",
      "page": 26,
      "ordinal": 38,
      "text": "M",
      "top": 716.0,
      "left": 415.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0039",
      "page": 26,
      "ordinal": 39,
      "text": "都拥有⼀个处理器",
      "top": 716.0,
      "left": 428.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0040",
      "page": 26,
      "ordinal": 40,
      "text": "P",
      "top": 716.0,
      "left": 545.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0041",
      "page": 26,
      "ordinal": 41,
      "text": "，每⼀个也都有⼀个正在运⾏的",
      "top": 716.0,
      "left": 554.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0042",
      "page": 26,
      "ordinal": 42,
      "text": "goroutine",
      "top": 740.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0043",
      "page": 26,
      "ordinal": 43,
      "text": "。",
      "top": 740.0,
      "left": 178.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0044",
      "page": 26,
      "ordinal": 44,
      "text": "P ",
      "top": 740.0,
      "left": 193.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0045",
      "page": 26,
      "ordinal": 45,
      "text": "的数量可以通过",
      "top": 740.0,
      "left": 206.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0046",
      "page": 26,
      "ordinal": 46,
      "text": "GOMAXPROCS()",
      "top": 740.0,
      "left": 308.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0047",
      "page": 26,
      "ordinal": 47,
      "text": "来设置，它其实也就代表了真正的并发度，即有多少个",
      "top": 740.0,
      "left": 416.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0048",
      "page": 26,
      "ordinal": 48,
      "text": "goroutine",
      "top": 764.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0049",
      "page": 26,
      "ordinal": 49,
      "text": "可以同时运⾏。",
      "top": 764.0,
      "left": 178.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0051",
      "page": 26,
      "ordinal": 51,
      "text": "图中灰⾊的那些",
      "top": 764.0,
      "left": 285.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0052",
      "page": 26,
      "ordinal": 52,
      "text": "goroutine",
      "top": 764.0,
      "left": 387.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0053",
      "page": 26,
      "ordinal": 53,
      "text": "并没有运⾏，⽽是出于",
      "top": 764.0,
      "left": 454.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0054",
      "page": 26,
      "ordinal": 54,
      "text": "ready",
      "top": 764.0,
      "left": 600.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0055",
      "page": 26,
      "ordinal": 55,
      "text": "的就绪态，正在等待",
      "top": 764.0,
      "left": 639.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0056",
      "page": 26,
      "ordinal": 56,
      "text": "被调度。",
      "top": 787.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0057",
      "page": 26,
      "ordinal": 57,
      "text": "P",
      "top": 787.0,
      "left": 170.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0058",
      "page": 26,
      "ordinal": 58,
      "text": "维护着这个队列（称之为",
      "top": 787.0,
      "left": 179.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0059",
      "page": 26,
      "ordinal": 59,
      "text": " runqueue",
      "top": 787.0,
      "left": 340.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0060",
      "page": 26,
      "ordinal": 60,
      "text": "），",
      "top": 787.0,
      "left": 411.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0061",
      "page": 26,
      "ordinal": 61,
      "text": "Go",
      "top": 787.0,
      "left": 440.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0062",
      "page": 26,
      "ordinal": 62,
      "text": "语⾔⾥，启动⼀个",
      "top": 787.0,
      "left": 460.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0063",
      "page": 26,
      "ordinal": 63,
      "text": "goroutine",
      "top": 787.0,
      "left": 577.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0064",
      "page": 26,
      "ordinal": 64,
      "text": "很容易：",
      "top": 787.0,
      "left": 643.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0065",
      "page": 26,
      "ordinal": 65,
      "text": "go function ",
      "top": 787.0,
      "left": 702.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0066",
      "page": 26,
      "ordinal": 66,
      "text": "就⾏，所以每有⼀个",
      "top": 811.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0067",
      "page": 26,
      "ordinal": 67,
      "text": "go",
      "top": 811.0,
      "left": 243.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0068",
      "page": 26,
      "ordinal": 68,
      "text": "语句被执⾏，",
      "top": 811.0,
      "left": 260.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0069",
      "page": 26,
      "ordinal": 69,
      "text": " runqueue",
      "top": 811.0,
      "left": 348.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0070",
      "page": 26,
      "ordinal": 70,
      "text": "队列就在其末尾加⼊⼀个",
      "top": 811.0,
      "left": 419.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0071",
      "page": 26,
      "ordinal": 71,
      "text": "goroutine",
      "top": 811.0,
      "left": 580.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0072",
      "page": 26,
      "ordinal": 72,
      "text": "，在下⼀个调度点，",
      "top": 811.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0073",
      "page": 26,
      "ordinal": 73,
      "text": "就从",
      "top": 833.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0074",
      "page": 26,
      "ordinal": 74,
      "text": "runqueue",
      "top": 833.0,
      "left": 141.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0075",
      "page": 26,
      "ordinal": 75,
      "text": "中取出（如何决定取哪个",
      "top": 833.0,
      "left": 208.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0076",
      "page": 26,
      "ordinal": 76,
      "text": " goroutine",
      "top": 833.0,
      "left": 369.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0077",
      "page": 26,
      "ordinal": 77,
      "text": "？）⼀个",
      "top": 833.0,
      "left": 440.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0078",
      "page": 26,
      "ordinal": 78,
      "text": "goroutine",
      "top": 833.0,
      "left": 498.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0079",
      "page": 26,
      "ordinal": 79,
      "text": "执⾏。",
      "top": 833.0,
      "left": 565.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0081",
      "page": 26,
      "ordinal": 81,
      "text": "当⼀个",
      "top": 833.0,
      "left": 612.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0082",
      "page": 26,
      "ordinal": 82,
      "text": "OS",
      "top": 833.0,
      "left": 656.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0083",
      "page": 26,
      "ordinal": 83,
      "text": "线程",
      "top": 833.0,
      "left": 676.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0084",
      "page": 26,
      "ordinal": 84,
      "text": "M0",
      "top": 833.0,
      "left": 705.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0085",
      "page": 26,
      "ordinal": 85,
      "text": "陷⼊阻",
      "top": 833.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0086",
      "page": 26,
      "ordinal": 86,
      "text": "塞时，",
      "top": 857.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0087",
      "page": 26,
      "ordinal": 87,
      "text": "P",
      "top": 857.0,
      "left": 156.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0088",
      "page": 26,
      "ordinal": 88,
      "text": "转⽽在运⾏",
      "top": 857.0,
      "left": 164.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0089",
      "page": 26,
      "ordinal": 89,
      "text": "M1",
      "top": 857.0,
      "left": 238.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0090",
      "page": 26,
      "ordinal": 90,
      "text": "，图中的",
      "top": 857.0,
      "left": 259.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0091",
      "page": 26,
      "ordinal": 91,
      "text": "M1",
      "top": 857.0,
      "left": 318.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p026-t0092",
      "page": 26,
      "ordinal": 92,
      "text": "可能是正被创建，或者从线程缓存中取出",
      "top": 857.0,
      "left": 339.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b010"
      }
    },
    {
      "id": "p027-t0002",
      "page": 27,
      "ordinal": 2,
      "text": "当",
      "top": 449.0,
      "left": 116.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0003",
      "page": 27,
      "ordinal": 3,
      "text": "MO",
      "top": 449.0,
      "left": 130.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0004",
      "page": 27,
      "ordinal": 4,
      "text": "返回时，它必须尝试取得⼀个",
      "top": 449.0,
      "left": 155.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0005",
      "page": 27,
      "ordinal": 5,
      "text": "P",
      "top": 449.0,
      "left": 345.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0006",
      "page": 27,
      "ordinal": 6,
      "text": "来运⾏",
      "top": 449.0,
      "left": 354.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0007",
      "page": 27,
      "ordinal": 7,
      "text": "goroutine",
      "top": 449.0,
      "left": 398.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0008",
      "page": 27,
      "ordinal": 8,
      "text": "，⼀般情况下，它会从其他的",
      "top": 449.0,
      "left": 464.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0009",
      "page": 27,
      "ordinal": 9,
      "text": "OS",
      "top": 449.0,
      "left": 654.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0010",
      "page": 27,
      "ordinal": 10,
      "text": "线程那⾥拿⼀个",
      "top": 449.0,
      "left": 674.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0011",
      "page": 27,
      "ordinal": 11,
      "text": "P",
      "top": 472.0,
      "left": 112.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0012",
      "page": 27,
      "ordinal": 12,
      "text": "过来，",
      "top": 472.0,
      "left": 121.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0014",
      "page": 27,
      "ordinal": 14,
      "text": "如",
      "top": 472.0,
      "left": 168.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0016",
      "page": 27,
      "ordinal": 16,
      "text": "果没有拿到的话，它就把",
      "top": 472.0,
      "left": 187.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0017",
      "page": 27,
      "ordinal": 17,
      "text": "goroutine",
      "top": 472.0,
      "left": 348.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0018",
      "page": 27,
      "ordinal": 18,
      "text": "放在⼀个",
      "top": 472.0,
      "left": 414.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0019",
      "page": 27,
      "ordinal": 19,
      "text": "global runqueue",
      "top": 472.0,
      "left": 473.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0020",
      "page": 27,
      "ordinal": 20,
      "text": "⾥，然后⾃⼰睡眠（放⼊线程",
      "top": 472.0,
      "left": 585.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0021",
      "page": 27,
      "ordinal": 21,
      "text": "缓存⾥）。所有的",
      "top": 496.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0022",
      "page": 27,
      "ordinal": 22,
      "text": "P",
      "top": 496.0,
      "left": 229.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0023",
      "page": 27,
      "ordinal": 23,
      "text": "也",
      "top": 496.0,
      "left": 238.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0025",
      "page": 27,
      "ordinal": 25,
      "text": "会周期性的检查",
      "top": 496.0,
      "left": 256.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0026",
      "page": 27,
      "ordinal": 26,
      "text": "global runqueue",
      "top": 496.0,
      "left": 358.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0027",
      "page": 27,
      "ordinal": 27,
      "text": "并运⾏其中的",
      "top": 496.0,
      "left": 471.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0028",
      "page": 27,
      "ordinal": 28,
      "text": "goroutine",
      "top": 496.0,
      "left": 558.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0029",
      "page": 27,
      "ordinal": 29,
      "text": "，否则",
      "top": 496.0,
      "left": 625.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0030",
      "page": 27,
      "ordinal": 30,
      "text": "global runqueue",
      "top": 496.0,
      "left": 669.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0031",
      "page": 27,
      "ordinal": 31,
      "text": "上的",
      "top": 519.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0032",
      "page": 27,
      "ordinal": 32,
      "text": "goroutine",
      "top": 519.0,
      "left": 141.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0033",
      "page": 27,
      "ordinal": 33,
      "text": "永远⽆法执⾏。",
      "top": 519.0,
      "left": 208.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0035",
      "page": 27,
      "ordinal": 35,
      "text": "另⼀种情况是",
      "top": 519.0,
      "left": 314.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0036",
      "page": 27,
      "ordinal": 36,
      "text": "P",
      "top": 519.0,
      "left": 402.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0037",
      "page": 27,
      "ordinal": 37,
      "text": "所分配的任务",
      "top": 519.0,
      "left": 410.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0038",
      "page": 27,
      "ordinal": 38,
      "text": "G",
      "top": 519.0,
      "left": 498.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0039",
      "page": 27,
      "ordinal": 39,
      "text": "很快就执⾏完了（分配不均），这就导致",
      "top": 519.0,
      "left": 509.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0040",
      "page": 27,
      "ordinal": 40,
      "text": "了这个处理器",
      "top": 543.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0041",
      "page": 27,
      "ordinal": 41,
      "text": "P",
      "top": 543.0,
      "left": 200.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0042",
      "page": 27,
      "ordinal": 42,
      "text": "很忙，但是其他的",
      "top": 543.0,
      "left": 208.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0043",
      "page": 27,
      "ordinal": 43,
      "text": "P",
      "top": 543.0,
      "left": 325.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0044",
      "page": 27,
      "ordinal": 44,
      "text": "还有任",
      "top": 543.0,
      "left": 334.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0046",
      "page": 27,
      "ordinal": 46,
      "text": "务，此时如果",
      "top": 543.0,
      "left": 382.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0047",
      "page": 27,
      "ordinal": 47,
      "text": "global runqueue",
      "top": 543.0,
      "left": 470.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0048",
      "page": 27,
      "ordinal": 48,
      "text": "没有任务",
      "top": 543.0,
      "left": 582.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0049",
      "page": 27,
      "ordinal": 49,
      "text": "G",
      "top": 543.0,
      "left": 640.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0050",
      "page": 27,
      "ordinal": 50,
      "text": "了，那么",
      "top": 543.0,
      "left": 651.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0051",
      "page": 27,
      "ordinal": 51,
      "text": "P",
      "top": 543.0,
      "left": 710.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0052",
      "page": 27,
      "ordinal": 52,
      "text": "不得不从",
      "top": 543.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0053",
      "page": 27,
      "ordinal": 53,
      "text": "其他的",
      "top": 566.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0054",
      "page": 27,
      "ordinal": 54,
      "text": "P",
      "top": 566.0,
      "left": 156.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0055",
      "page": 27,
      "ordinal": 55,
      "text": "⾥拿⼀些",
      "top": 566.0,
      "left": 164.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0056",
      "page": 27,
      "ordinal": 56,
      "text": "G",
      "top": 566.0,
      "left": 223.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0057",
      "page": 27,
      "ordinal": 57,
      "text": "来执⾏。",
      "top": 566.0,
      "left": 234.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b012"
      }
    },
    {
      "id": "p027-t0059",
      "page": 27,
      "ordinal": 59,
      "text": "通常来说，如果",
      "top": 977.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0060",
      "page": 27,
      "ordinal": 60,
      "text": "P",
      "top": 977.0,
      "left": 218.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0061",
      "page": 27,
      "ordinal": 61,
      "text": "从其他的",
      "top": 977.0,
      "left": 227.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0062",
      "page": 27,
      "ordinal": 62,
      "text": "P",
      "top": 977.0,
      "left": 285.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0063",
      "page": 27,
      "ordinal": 63,
      "text": "那⾥要拿任务的话，⼀般就拿",
      "top": 977.0,
      "left": 294.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0064",
      "page": 27,
      "ordinal": 64,
      "text": "run queue",
      "top": 977.0,
      "left": 484.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0065",
      "page": 27,
      "ordinal": 65,
      "text": "的⼀半，这就确保了每个",
      "top": 977.0,
      "left": 555.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0066",
      "page": 27,
      "ordinal": 66,
      "text": "OS",
      "top": 977.0,
      "left": 716.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0067",
      "page": 27,
      "ordinal": 67,
      "text": "线程都",
      "top": 977.0,
      "left": 736.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0068",
      "page": 27,
      "ordinal": 68,
      "text": "能充分的",
      "top": 1000.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0070",
      "page": 27,
      "ordinal": 70,
      "text": "使⽤。",
      "top": 1000.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p025-h01",
        "heading_id": "p025-h01",
        "block_id": "q-p025-h01-b014"
      }
    },
    {
      "id": "p027-t0072",
      "page": 27,
      "ordinal": 72,
      "text": "Golang ",
      "top": 1034.0,
      "left": 112.0,
      "width": 96.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01"
      }
    },
    {
      "id": "p027-t0073",
      "page": 27,
      "ordinal": 73,
      "text": "中常⽤的并发模型",
      "top": 1034.0,
      "left": 207.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01"
      }
    },
    {
      "id": "p027-t0076",
      "page": 27,
      "ordinal": 76,
      "text": " Golang ",
      "top": 1085.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b001"
      }
    },
    {
      "id": "p027-t0077",
      "page": 27,
      "ordinal": 77,
      "text": "中常⽤的并发模型有三种",
      "top": 1085.0,
      "left": 168.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b001"
      }
    },
    {
      "id": "p027-t0079",
      "page": 27,
      "ordinal": 79,
      "text": "：",
      "top": 1085.0,
      "left": 332.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b001"
      }
    },
    {
      "id": "p027-t0080",
      "page": 27,
      "ordinal": 80,
      "text": "1. ",
      "top": 1120.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p027-t0081",
      "page": 27,
      "ordinal": 81,
      "text": "通过",
      "top": 1120.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p027-t0082",
      "page": 27,
      "ordinal": 82,
      "text": "channel",
      "top": 1120.0,
      "left": 175.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p027-t0083",
      "page": 27,
      "ordinal": 83,
      "text": "通知实现并发控制",
      "top": 1120.0,
      "left": 229.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0002",
      "page": 28,
      "ordinal": 2,
      "text": "⽆缓冲的通道指的是通道的⼤⼩为",
      "top": 44.0,
      "left": 116.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0003",
      "page": 28,
      "ordinal": 3,
      "text": "0",
      "top": 44.0,
      "left": 335.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0004",
      "page": 28,
      "ordinal": 4,
      "text": "，也就是说，这种类型的通道在接收前没有能⼒保存任何值，它要求",
      "top": 44.0,
      "left": 343.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0005",
      "page": 28,
      "ordinal": 5,
      "text": "发送",
      "top": 67.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0006",
      "page": 28,
      "ordinal": 6,
      "text": " goroutine ",
      "top": 67.0,
      "left": 141.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0007",
      "page": 28,
      "ordinal": 7,
      "text": "和接收",
      "top": 67.0,
      "left": 215.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0008",
      "page": 28,
      "ordinal": 8,
      "text": " goroutine ",
      "top": 67.0,
      "left": 259.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0009",
      "page": 28,
      "ordinal": 9,
      "text": "同时准备好，才可以完成发送和接收操作。",
      "top": 67.0,
      "left": 333.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0011",
      "page": 28,
      "ordinal": 11,
      "text": "从上⾯⽆缓冲的通道定义",
      "top": 67.0,
      "left": 615.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0012",
      "page": 28,
      "ordinal": 12,
      "text": "来看，发送",
      "top": 91.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0013",
      "page": 28,
      "ordinal": 13,
      "text": " goroutine ",
      "top": 91.0,
      "left": 185.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0014",
      "page": 28,
      "ordinal": 14,
      "text": "和接收",
      "top": 91.0,
      "left": 259.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0015",
      "page": 28,
      "ordinal": 15,
      "text": " gouroutine ",
      "top": 91.0,
      "left": 303.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0016",
      "page": 28,
      "ordinal": 16,
      "text": "必须是同步的，同时准备后，如果没有同时准",
      "top": 91.0,
      "left": 386.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0018",
      "page": 28,
      "ordinal": 18,
      "text": "备好的话，先",
      "top": 91.0,
      "left": 683.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0019",
      "page": 28,
      "ordinal": 19,
      "text": "执⾏的操作就会阻塞等待，直到另⼀个相对应的操作准备好为⽌。这种⽆缓冲的通道我们也称之为同",
      "top": 113.0,
      "left": 112.0,
      "width": 644.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0021",
      "page": 28,
      "ordinal": 21,
      "text": "步",
      "top": 113.0,
      "left": 759.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0022",
      "page": 28,
      "ordinal": 22,
      "text": "通道",
      "top": 137.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b002"
      }
    },
    {
      "id": "p028-t0025",
      "page": 28,
      "ordinal": 25,
      "text": "当主",
      "top": 423.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0026",
      "page": 28,
      "ordinal": 26,
      "text": " goroutine ",
      "top": 423.0,
      "left": 145.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0027",
      "page": 28,
      "ordinal": 27,
      "text": "运⾏到",
      "top": 423.0,
      "left": 219.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0028",
      "page": 28,
      "ordinal": 28,
      "text": " <-ch ",
      "top": 423.0,
      "left": 263.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0029",
      "page": 28,
      "ordinal": 29,
      "text": "接受",
      "top": 423.0,
      "left": 300.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0030",
      "page": 28,
      "ordinal": 30,
      "text": " channel ",
      "top": 423.0,
      "left": 329.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0031",
      "page": 28,
      "ordinal": 31,
      "text": "的值的时候，如果该",
      "top": 423.0,
      "left": 390.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0032",
      "page": 28,
      "ordinal": 32,
      "text": " channel ",
      "top": 423.0,
      "left": 522.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0033",
      "page": 28,
      "ordinal": 33,
      "text": "中没有数据，就会⼀直阻塞等",
      "top": 423.0,
      "left": 583.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0034",
      "page": 28,
      "ordinal": 34,
      "text": "待，直到有",
      "top": 446.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0036",
      "page": 28,
      "ordinal": 36,
      "text": "值。",
      "top": 446.0,
      "left": 189.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0038",
      "page": 28,
      "ordinal": 38,
      "text": "这样就可以简单实现并发控制",
      "top": 446.0,
      "left": 222.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b004"
      }
    },
    {
      "id": "p028-t0040",
      "page": 28,
      "ordinal": 40,
      "text": "2. ",
      "top": 481.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0041",
      "page": 28,
      "ordinal": 41,
      "text": "通过",
      "top": 481.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0042",
      "page": 28,
      "ordinal": 42,
      "text": "sync",
      "top": 481.0,
      "left": 175.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0043",
      "page": 28,
      "ordinal": 43,
      "text": "包中的",
      "top": 481.0,
      "left": 205.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0044",
      "page": 28,
      "ordinal": 44,
      "text": "WaitGroup",
      "top": 481.0,
      "left": 249.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0045",
      "page": 28,
      "ordinal": 45,
      "text": "实现并发控制",
      "top": 481.0,
      "left": 323.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b005"
      }
    },
    {
      "id": "p028-t0047",
      "page": 28,
      "ordinal": 47,
      "text": " Goroutine",
      "top": 516.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0048",
      "page": 28,
      "ordinal": 48,
      "text": "是异步执⾏的，有的时候为了防⽌在结束",
      "top": 516.0,
      "left": 185.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0049",
      "page": 28,
      "ordinal": 49,
      "text": "mian",
      "top": 516.0,
      "left": 448.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0050",
      "page": 28,
      "ordinal": 50,
      "text": "函数的时候结束掉",
      "top": 516.0,
      "left": 483.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0051",
      "page": 28,
      "ordinal": 51,
      "text": "Goroutine",
      "top": 516.0,
      "left": 600.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0052",
      "page": 28,
      "ordinal": 52,
      "text": "，所以需要同步",
      "top": 516.0,
      "left": 669.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0053",
      "page": 28,
      "ordinal": 53,
      "text": "等待，这个",
      "top": 540.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0055",
      "page": 28,
      "ordinal": 55,
      "text": "时候就需要⽤",
      "top": 540.0,
      "left": 189.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0056",
      "page": 28,
      "ordinal": 56,
      "text": " WaitGroup",
      "top": 540.0,
      "left": 276.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0057",
      "page": 28,
      "ordinal": 57,
      "text": "了，在",
      "top": 540.0,
      "left": 354.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0058",
      "page": 28,
      "ordinal": 58,
      "text": " sync ",
      "top": 540.0,
      "left": 398.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0059",
      "page": 28,
      "ordinal": 59,
      "text": "包中，提供了",
      "top": 540.0,
      "left": 436.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0060",
      "page": 28,
      "ordinal": 60,
      "text": " WaitGroup ",
      "top": 540.0,
      "left": 524.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0061",
      "page": 28,
      "ordinal": 61,
      "text": "，它会等待它收集的所有",
      "top": 540.0,
      "left": 605.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0063",
      "page": 28,
      "ordinal": 63,
      "text": "goroutine ",
      "top": 563.0,
      "left": 112.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0064",
      "page": 28,
      "ordinal": 64,
      "text": "任务全部完成。在",
      "top": 563.0,
      "left": 182.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0065",
      "page": 28,
      "ordinal": 65,
      "text": "WaitGroup",
      "top": 563.0,
      "left": 299.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0066",
      "page": 28,
      "ordinal": 66,
      "text": "⾥主要有三个⽅法",
      "top": 563.0,
      "left": 373.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0067",
      "page": 28,
      "ordinal": 67,
      "text": ": ",
      "top": 563.0,
      "left": 490.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b006"
      }
    },
    {
      "id": "p028-t0068",
      "page": 28,
      "ordinal": 68,
      "text": "1. Add, ",
      "top": 598.0,
      "left": 129.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b007"
      }
    },
    {
      "id": "p028-t0069",
      "page": 28,
      "ordinal": 69,
      "text": "可以添加或减少",
      "top": 598.0,
      "left": 180.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b007"
      }
    },
    {
      "id": "p028-t0070",
      "page": 28,
      "ordinal": 70,
      "text": " goroutine",
      "top": 598.0,
      "left": 282.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b007"
      }
    },
    {
      "id": "p028-t0071",
      "page": 28,
      "ordinal": 71,
      "text": "的数量",
      "top": 598.0,
      "left": 353.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b007"
      }
    },
    {
      "id": "p028-t0072",
      "page": 28,
      "ordinal": 72,
      "text": ". ",
      "top": 598.0,
      "left": 397.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b007"
      }
    },
    {
      "id": "p028-t0073",
      "page": 28,
      "ordinal": 73,
      "text": "2. Done, ",
      "top": 629.0,
      "left": 129.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b008"
      }
    },
    {
      "id": "p028-t0074",
      "page": 28,
      "ordinal": 74,
      "text": "相当于",
      "top": 629.0,
      "left": 190.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b008"
      }
    },
    {
      "id": "p028-t0075",
      "page": 28,
      "ordinal": 75,
      "text": "Add(-1). ",
      "top": 629.0,
      "left": 233.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b008"
      }
    },
    {
      "id": "p028-t0076",
      "page": 28,
      "ordinal": 76,
      "text": "3. Wait, ",
      "top": 660.0,
      "left": 129.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b009"
      }
    },
    {
      "id": "p028-t0077",
      "page": 28,
      "ordinal": 77,
      "text": "执⾏后会堵塞主线程，直到",
      "top": 660.0,
      "left": 183.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b009"
      }
    },
    {
      "id": "p028-t0078",
      "page": 28,
      "ordinal": 78,
      "text": "WaitGroup ",
      "top": 660.0,
      "left": 359.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b009"
      }
    },
    {
      "id": "p028-t0079",
      "page": 28,
      "ordinal": 79,
      "text": "⾥的值减⾄",
      "top": 660.0,
      "left": 437.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b009"
      }
    },
    {
      "id": "p028-t0080",
      "page": 28,
      "ordinal": 80,
      "text": "0. ",
      "top": 660.0,
      "left": 510.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b009"
      }
    },
    {
      "id": "p028-t0081",
      "page": 28,
      "ordinal": 81,
      "text": "在主",
      "top": 695.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0082",
      "page": 28,
      "ordinal": 82,
      "text": " goroutine ",
      "top": 695.0,
      "left": 141.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0083",
      "page": 28,
      "ordinal": 83,
      "text": "中",
      "top": 695.0,
      "left": 215.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0084",
      "page": 28,
      "ordinal": 84,
      "text": " Add(delta int) ",
      "top": 695.0,
      "left": 230.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0085",
      "page": 28,
      "ordinal": 85,
      "text": "索要等待",
      "top": 695.0,
      "left": 329.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0086",
      "page": 28,
      "ordinal": 86,
      "text": "goroutine ",
      "top": 695.0,
      "left": 388.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0087",
      "page": 28,
      "ordinal": 87,
      "text": "的数量。",
      "top": 695.0,
      "left": 458.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0089",
      "page": 28,
      "ordinal": 89,
      "text": "在每⼀个",
      "top": 695.0,
      "left": 520.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0090",
      "page": 28,
      "ordinal": 90,
      "text": " goroutine ",
      "top": 695.0,
      "left": 579.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0091",
      "page": 28,
      "ordinal": 91,
      "text": "完成后",
      "top": 695.0,
      "left": 653.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0092",
      "page": 28,
      "ordinal": 92,
      "text": " Done() ",
      "top": 695.0,
      "left": 697.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0093",
      "page": 28,
      "ordinal": 93,
      "text": "表示",
      "top": 695.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0094",
      "page": 28,
      "ordinal": 94,
      "text": "这⼀个",
      "top": 719.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0095",
      "page": 28,
      "ordinal": 95,
      "text": " goroutine ",
      "top": 719.0,
      "left": 156.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0096",
      "page": 28,
      "ordinal": 96,
      "text": "已经完成，当所有的",
      "top": 719.0,
      "left": 230.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0097",
      "page": 28,
      "ordinal": 97,
      "text": " goroutine ",
      "top": 719.0,
      "left": 362.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0098",
      "page": 28,
      "ordinal": 98,
      "text": "都完成后，在主",
      "top": 719.0,
      "left": 436.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0099",
      "page": 28,
      "ordinal": 99,
      "text": " goroutine ",
      "top": 719.0,
      "left": 538.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0100",
      "page": 28,
      "ordinal": 100,
      "text": "中",
      "top": 719.0,
      "left": 612.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0101",
      "page": 28,
      "ordinal": 101,
      "text": " WaitGroup ",
      "top": 719.0,
      "left": 627.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0102",
      "page": 28,
      "ordinal": 102,
      "text": "返回",
      "top": 719.0,
      "left": 709.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b010"
      }
    },
    {
      "id": "p028-t0105",
      "page": 28,
      "ordinal": 105,
      "text": "在",
      "top": 1130.0,
      "left": 116.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0106",
      "page": 28,
      "ordinal": 106,
      "text": "Golang",
      "top": 1130.0,
      "left": 130.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0107",
      "page": 28,
      "ordinal": 107,
      "text": "官⽹中对于",
      "top": 1130.0,
      "left": 178.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0108",
      "page": 28,
      "ordinal": 108,
      "text": "WaitGroup",
      "top": 1130.0,
      "left": 252.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0109",
      "page": 28,
      "ordinal": 109,
      "text": "介绍是",
      "top": 1130.0,
      "left": 326.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0110",
      "page": 28,
      "ordinal": 110,
      "text": " A WaitGroup must not be copied after first use ,",
      "top": 1130.0,
      "left": 369.0,
      "width": 329.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0111",
      "page": 28,
      "ordinal": 111,
      "text": "在",
      "top": 1130.0,
      "left": 698.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0113",
      "page": 28,
      "ordinal": 113,
      "text": "WaitGroup ",
      "top": 1154.0,
      "left": 112.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0114",
      "page": 28,
      "ordinal": 114,
      "text": "第⼀次使⽤后，不能被拷⻉",
      "top": 1154.0,
      "left": 189.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0116",
      "page": 28,
      "ordinal": 116,
      "text": "应⽤示例",
      "top": 1178.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0117",
      "page": 28,
      "ordinal": 117,
      "text": ":  ",
      "top": 1178.0,
      "left": 170.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b012"
      }
    },
    {
      "id": "p028-t0118",
      "page": 28,
      "ordinal": 118,
      "text": "func main() {",
      "top": 189.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0119",
      "page": 28,
      "ordinal": 119,
      "text": " ch := make(chan struct{})",
      "top": 210.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0120",
      "page": 28,
      "ordinal": 120,
      "text": " go func() {",
      "top": 231.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0121",
      "page": 28,
      "ordinal": 121,
      "text": " fmt.Println(\"start working\")",
      "top": 252.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0122",
      "page": 28,
      "ordinal": 122,
      "text": " time.Sleep(time.Second * 1)",
      "top": 273.0,
      "left": 126.0,
      "width": 222.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0123",
      "page": 28,
      "ordinal": 123,
      "text": " ch <- struct{}{}",
      "top": 295.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0124",
      "page": 28,
      "ordinal": 124,
      "text": " }()",
      "top": 315.0,
      "left": 126.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0125",
      "page": 28,
      "ordinal": 125,
      "text": " <-ch",
      "top": 336.0,
      "left": 126.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0126",
      "page": 28,
      "ordinal": 126,
      "text": " fmt.Println(\"finished\")",
      "top": 358.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0127",
      "page": 28,
      "ordinal": 127,
      "text": "}",
      "top": 378.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b003"
      }
    },
    {
      "id": "p028-t0128",
      "page": 28,
      "ordinal": 128,
      "text": "func main(){",
      "top": 771.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0129",
      "page": 28,
      "ordinal": 129,
      "text": " var wg sync.WaitGroup",
      "top": 791.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0130",
      "page": 28,
      "ordinal": 130,
      "text": " var urls = []string{",
      "top": 812.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0131",
      "page": 28,
      "ordinal": 131,
      "text": " \"http://www.golang.org/\",",
      "top": 834.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0132",
      "page": 28,
      "ordinal": 132,
      "text": " \"http://www.google.com/\",",
      "top": 854.0,
      "left": 126.0,
      "width": 206.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0133",
      "page": 28,
      "ordinal": 133,
      "text": " }",
      "top": 875.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0134",
      "page": 28,
      "ordinal": 134,
      "text": " for _, url := range urls {",
      "top": 897.0,
      "left": 126.0,
      "width": 214.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0135",
      "page": 28,
      "ordinal": 135,
      "text": " wg.Add(1)",
      "top": 918.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0136",
      "page": 28,
      "ordinal": 136,
      "text": " go func(url string) {",
      "top": 938.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0137",
      "page": 28,
      "ordinal": 137,
      "text": " defer wg.Done()",
      "top": 960.0,
      "left": 126.0,
      "width": 127.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0138",
      "page": 28,
      "ordinal": 138,
      "text": " http.Get(url)",
      "top": 981.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0139",
      "page": 28,
      "ordinal": 139,
      "text": " }(url)",
      "top": 1001.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0140",
      "page": 28,
      "ordinal": 140,
      "text": " }",
      "top": 1023.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0141",
      "page": 28,
      "ordinal": 141,
      "text": " wg.Wait()",
      "top": 1044.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p028-t0142",
      "page": 28,
      "ordinal": 142,
      "text": "}",
      "top": 1065.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b011"
      }
    },
    {
      "id": "p029-t0002",
      "page": 29,
      "ordinal": 2,
      "text": "运⾏",
      "top": 332.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b014"
      }
    },
    {
      "id": "p029-t0003",
      "page": 29,
      "ordinal": 3,
      "text": ":  ",
      "top": 332.0,
      "left": 145.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b014"
      }
    },
    {
      "id": "p029-t0005",
      "page": 29,
      "ordinal": 5,
      "text": "它提示所有的",
      "top": 596.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0006",
      "page": 29,
      "ordinal": 6,
      "text": " goroutine ",
      "top": 596.0,
      "left": 203.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0007",
      "page": 29,
      "ordinal": 7,
      "text": "都已经睡眠了，出现了死锁。这是因为",
      "top": 596.0,
      "left": 278.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0008",
      "page": 29,
      "ordinal": 8,
      "text": " wg ",
      "top": 596.0,
      "left": 526.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0009",
      "page": 29,
      "ordinal": 9,
      "text": "给拷⻉传递到了",
      "top": 596.0,
      "left": 553.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0010",
      "page": 29,
      "ordinal": 10,
      "text": " goroutine ",
      "top": 596.0,
      "left": 656.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0011",
      "page": 29,
      "ordinal": 11,
      "text": "中，导",
      "top": 596.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0012",
      "page": 29,
      "ordinal": 12,
      "text": "致只有",
      "top": 620.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0013",
      "page": 29,
      "ordinal": 13,
      "text": " Add ",
      "top": 620.0,
      "left": 156.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0014",
      "page": 29,
      "ordinal": 14,
      "text": "操作，其实",
      "top": 620.0,
      "left": 190.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0015",
      "page": 29,
      "ordinal": 15,
      "text": " Done",
      "top": 620.0,
      "left": 264.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0016",
      "page": 29,
      "ordinal": 16,
      "text": "操作是在",
      "top": 620.0,
      "left": 304.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0017",
      "page": 29,
      "ordinal": 17,
      "text": " wg ",
      "top": 620.0,
      "left": 363.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0018",
      "page": 29,
      "ordinal": 18,
      "text": "的副本执⾏的。",
      "top": 620.0,
      "left": 389.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0020",
      "page": 29,
      "ordinal": 20,
      "text": "因此",
      "top": 620.0,
      "left": 496.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0021",
      "page": 29,
      "ordinal": 21,
      "text": " Wait ",
      "top": 620.0,
      "left": 525.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0022",
      "page": 29,
      "ordinal": 22,
      "text": "就死锁了。",
      "top": 620.0,
      "left": 563.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0024",
      "page": 29,
      "ordinal": 24,
      "text": "这个第⼀个修改⽅式",
      "top": 620.0,
      "left": 640.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0025",
      "page": 29,
      "ordinal": 25,
      "text": ":",
      "top": 620.0,
      "left": 772.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0026",
      "page": 29,
      "ordinal": 26,
      "text": "将匿名函数中",
      "top": 642.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0027",
      "page": 29,
      "ordinal": 27,
      "text": " wg ",
      "top": 642.0,
      "left": 200.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0028",
      "page": 29,
      "ordinal": 28,
      "text": "的传⼊类型改为",
      "top": 642.0,
      "left": 226.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0029",
      "page": 29,
      "ordinal": 29,
      "text": " *sync.WaitGrou,",
      "top": 642.0,
      "left": 329.0,
      "width": 115.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0030",
      "page": 29,
      "ordinal": 30,
      "text": "这样就能引⽤到正确的",
      "top": 642.0,
      "left": 443.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0031",
      "page": 29,
      "ordinal": 31,
      "text": "WaitGroup",
      "top": 642.0,
      "left": 590.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0032",
      "page": 29,
      "ordinal": 32,
      "text": "了。",
      "top": 642.0,
      "left": 664.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0034",
      "page": 29,
      "ordinal": 34,
      "text": "这",
      "top": 642.0,
      "left": 697.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0036",
      "page": 29,
      "ordinal": 36,
      "text": "个第⼆个",
      "top": 642.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0037",
      "page": 29,
      "ordinal": 37,
      "text": "修改⽅式",
      "top": 666.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0038",
      "page": 29,
      "ordinal": 38,
      "text": ":",
      "top": 666.0,
      "left": 170.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0039",
      "page": 29,
      "ordinal": 39,
      "text": "将匿名函数中的",
      "top": 666.0,
      "left": 174.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0040",
      "page": 29,
      "ordinal": 40,
      "text": " wg ",
      "top": 666.0,
      "left": 277.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0041",
      "page": 29,
      "ordinal": 41,
      "text": "的传⼊参数去掉，因为",
      "top": 666.0,
      "left": 304.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0042",
      "page": 29,
      "ordinal": 42,
      "text": "Go",
      "top": 666.0,
      "left": 450.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0043",
      "page": 29,
      "ordinal": 43,
      "text": "⽀持闭包类型，在匿名函数中可以直接使⽤外⾯",
      "top": 666.0,
      "left": 469.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0045",
      "page": 29,
      "ordinal": 45,
      "text": "的",
      "top": 689.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0046",
      "page": 29,
      "ordinal": 46,
      "text": " wg ",
      "top": 689.0,
      "left": 126.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0047",
      "page": 29,
      "ordinal": 47,
      "text": "变量",
      "top": 689.0,
      "left": 153.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b016"
      }
    },
    {
      "id": "p029-t0049",
      "page": 29,
      "ordinal": 49,
      "text": "3. ",
      "top": 724.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0050",
      "page": 29,
      "ordinal": 50,
      "text": "在",
      "top": 724.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0051",
      "page": 29,
      "ordinal": 51,
      "text": "Go 1.7 ",
      "top": 724.0,
      "left": 160.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0052",
      "page": 29,
      "ordinal": 52,
      "text": "以后引进的强⼤的",
      "top": 724.0,
      "left": 208.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0053",
      "page": 29,
      "ordinal": 53,
      "text": "Context",
      "top": 724.0,
      "left": 325.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0054",
      "page": 29,
      "ordinal": 54,
      "text": "上下⽂，实现并发控制",
      "top": 724.0,
      "left": 378.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b017"
      }
    },
    {
      "id": "p029-t0057",
      "page": 29,
      "ordinal": 57,
      "text": "通常",
      "top": 759.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0058",
      "page": 29,
      "ordinal": 58,
      "text": ",",
      "top": 759.0,
      "left": 145.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0059",
      "page": 29,
      "ordinal": 59,
      "text": "在⼀些简单场景下使⽤",
      "top": 759.0,
      "left": 148.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0060",
      "page": 29,
      "ordinal": 60,
      "text": " channel ",
      "top": 759.0,
      "left": 295.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0061",
      "page": 29,
      "ordinal": 61,
      "text": "和",
      "top": 759.0,
      "left": 356.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0062",
      "page": 29,
      "ordinal": 62,
      "text": " WaitGroup ",
      "top": 759.0,
      "left": 371.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0063",
      "page": 29,
      "ordinal": 63,
      "text": "已经⾜够了，但是当⾯临⼀些复杂多变的⽹络并发",
      "top": 759.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0064",
      "page": 29,
      "ordinal": 64,
      "text": "场景下",
      "top": 783.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0065",
      "page": 29,
      "ordinal": 65,
      "text": " channel ",
      "top": 783.0,
      "left": 156.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0066",
      "page": 29,
      "ordinal": 66,
      "text": "和",
      "top": 783.0,
      "left": 217.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0067",
      "page": 29,
      "ordinal": 67,
      "text": " WaitGroup ",
      "top": 783.0,
      "left": 232.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0068",
      "page": 29,
      "ordinal": 68,
      "text": "显得有些⼒不从⼼了。",
      "top": 783.0,
      "left": 313.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0070",
      "page": 29,
      "ordinal": 70,
      "text": "⽐如⼀个⽹络请求",
      "top": 783.0,
      "left": 463.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0071",
      "page": 29,
      "ordinal": 71,
      "text": " Request",
      "top": 783.0,
      "left": 580.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0072",
      "page": 29,
      "ordinal": 72,
      "text": "，每个",
      "top": 783.0,
      "left": 640.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0073",
      "page": 29,
      "ordinal": 73,
      "text": " Request ",
      "top": 783.0,
      "left": 684.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0074",
      "page": 29,
      "ordinal": 74,
      "text": "都需",
      "top": 783.0,
      "left": 747.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0075",
      "page": 29,
      "ordinal": 75,
      "text": "要开启⼀个",
      "top": 806.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0076",
      "page": 29,
      "ordinal": 76,
      "text": " goroutine ",
      "top": 806.0,
      "left": 185.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0077",
      "page": 29,
      "ordinal": 77,
      "text": "做⼀些事情，这些",
      "top": 806.0,
      "left": 259.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0078",
      "page": 29,
      "ordinal": 78,
      "text": " goroutine ",
      "top": 806.0,
      "left": 376.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0079",
      "page": 29,
      "ordinal": 79,
      "text": "⼜可能会开启其他的",
      "top": 806.0,
      "left": 450.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0080",
      "page": 29,
      "ordinal": 80,
      "text": " goroutine",
      "top": 806.0,
      "left": 582.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0081",
      "page": 29,
      "ordinal": 81,
      "text": "，⽐如数据库和",
      "top": 806.0,
      "left": 653.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0082",
      "page": 29,
      "ordinal": 82,
      "text": "RPC",
      "top": 806.0,
      "left": 755.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0083",
      "page": 29,
      "ordinal": 83,
      "text": "服务。",
      "top": 830.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0085",
      "page": 29,
      "ordinal": 85,
      "text": "所以我们需要",
      "top": 830.0,
      "left": 159.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0087",
      "page": 29,
      "ordinal": 87,
      "text": "⼀种可以跟踪",
      "top": 830.0,
      "left": 251.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0088",
      "page": 29,
      "ordinal": 88,
      "text": " goroutine ",
      "top": 830.0,
      "left": 339.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0089",
      "page": 29,
      "ordinal": 89,
      "text": "的⽅案，才可以达到控制他们的⽬的，这就是",
      "top": 830.0,
      "left": 413.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0090",
      "page": 29,
      "ordinal": 90,
      "text": "Go",
      "top": 830.0,
      "left": 705.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0091",
      "page": 29,
      "ordinal": 91,
      "text": "语⾔为",
      "top": 830.0,
      "left": 725.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0092",
      "page": 29,
      "ordinal": 92,
      "text": "我们提供的",
      "top": 854.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0093",
      "page": 29,
      "ordinal": 93,
      "text": " Context",
      "top": 854.0,
      "left": 185.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0094",
      "page": 29,
      "ordinal": 94,
      "text": "，称之为上",
      "top": 854.0,
      "left": 242.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0096",
      "page": 29,
      "ordinal": 96,
      "text": "下⽂⾮常贴切，它就是",
      "top": 854.0,
      "left": 319.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0097",
      "page": 29,
      "ordinal": 97,
      "text": "goroutine ",
      "top": 854.0,
      "left": 465.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0098",
      "page": 29,
      "ordinal": 98,
      "text": "的上下⽂。",
      "top": 854.0,
      "left": 536.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0100",
      "page": 29,
      "ordinal": 100,
      "text": "它是包括⼀个程序的运⾏",
      "top": 854.0,
      "left": 612.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0101",
      "page": 29,
      "ordinal": 101,
      "text": "环境、现场和快照等。每个程序要运⾏时，",
      "top": 876.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0103",
      "page": 29,
      "ordinal": 103,
      "text": "都需要知道当前程序的运⾏状态，通常",
      "top": 876.0,
      "left": 393.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0104",
      "page": 29,
      "ordinal": 104,
      "text": "Go ",
      "top": 876.0,
      "left": 642.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0105",
      "page": 29,
      "ordinal": 105,
      "text": "将这些封装在⼀",
      "top": 876.0,
      "left": 665.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0106",
      "page": 29,
      "ordinal": 106,
      "text": "个",
      "top": 900.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0107",
      "page": 29,
      "ordinal": 107,
      "text": " Context ",
      "top": 900.0,
      "left": 126.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0108",
      "page": 29,
      "ordinal": 108,
      "text": "⾥，再将它传给要执⾏的",
      "top": 900.0,
      "left": 187.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0109",
      "page": 29,
      "ordinal": 109,
      "text": " goroutine",
      "top": 900.0,
      "left": 348.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0110",
      "page": 29,
      "ordinal": 110,
      "text": " context ",
      "top": 923.0,
      "left": 112.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0111",
      "page": 29,
      "ordinal": 111,
      "text": "包主要是⽤来处理多个",
      "top": 923.0,
      "left": 170.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0112",
      "page": 29,
      "ordinal": 112,
      "text": " goroutine ",
      "top": 923.0,
      "left": 317.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0113",
      "page": 29,
      "ordinal": 113,
      "text": "之间共享数据，及多个",
      "top": 923.0,
      "left": 391.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0114",
      "page": 29,
      "ordinal": 114,
      "text": " goroutine ",
      "top": 923.0,
      "left": 537.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0115",
      "page": 29,
      "ordinal": 115,
      "text": "的管理。",
      "top": 923.0,
      "left": 611.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0116",
      "page": 29,
      "ordinal": 116,
      "text": "   context ",
      "top": 923.0,
      "left": 670.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0117",
      "page": 29,
      "ordinal": 117,
      "text": "包的核",
      "top": 923.0,
      "left": 736.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0118",
      "page": 29,
      "ordinal": 118,
      "text": "⼼是",
      "top": 947.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0119",
      "page": 29,
      "ordinal": 119,
      "text": " struct Context",
      "top": 947.0,
      "left": 141.0,
      "width": 100.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0120",
      "page": 29,
      "ordinal": 120,
      "text": "，接⼝声明如下：",
      "top": 947.0,
      "left": 241.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b018"
      }
    },
    {
      "id": "p029-t0122",
      "page": 29,
      "ordinal": 122,
      "text": "func main(){",
      "top": 55.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0123",
      "page": 29,
      "ordinal": 123,
      "text": " wg := sync.WaitGroup{}",
      "top": 77.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0124",
      "page": 29,
      "ordinal": 124,
      "text": " for i := 0; i < 5; i++ {",
      "top": 97.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0125",
      "page": 29,
      "ordinal": 125,
      "text": " wg.Add(1)",
      "top": 118.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0126",
      "page": 29,
      "ordinal": 126,
      "text": " go func(wg sync.WaitGroup, i int) {",
      "top": 140.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0127",
      "page": 29,
      "ordinal": 127,
      "text": " fmt.Printf(\"i:%d\", i)",
      "top": 161.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0128",
      "page": 29,
      "ordinal": 128,
      "text": " wg.Done()",
      "top": 181.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0129",
      "page": 29,
      "ordinal": 129,
      "text": " }(wg, i)",
      "top": 203.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0130",
      "page": 29,
      "ordinal": 130,
      "text": " }",
      "top": 224.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0131",
      "page": 29,
      "ordinal": 131,
      "text": " wg.Wait()",
      "top": 244.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0132",
      "page": 29,
      "ordinal": 132,
      "text": " fmt.Println(\"exit\")",
      "top": 266.0,
      "left": 126.0,
      "width": 159.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0133",
      "page": 29,
      "ordinal": 133,
      "text": "}",
      "top": 287.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b013"
      }
    },
    {
      "id": "p029-t0134",
      "page": 29,
      "ordinal": 134,
      "text": "i:1i:3i:2i:0i:4fatal error: all goroutines are asleep - deadlock!",
      "top": 383.0,
      "left": 126.0,
      "width": 516.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0135",
      "page": 29,
      "ordinal": 135,
      "text": "goroutine 1 [semacquire]:",
      "top": 404.0,
      "left": 126.0,
      "width": 198.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0136",
      "page": 29,
      "ordinal": 136,
      "text": "sync.runtime_Semacquire(0xc000094018)",
      "top": 425.0,
      "left": 126.0,
      "width": 293.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0137",
      "page": 29,
      "ordinal": 137,
      "text": " /home/keke/soft/go/src/runtime/sema.go:56 +0x39",
      "top": 447.0,
      "left": 126.0,
      "width": 381.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0138",
      "page": 29,
      "ordinal": 138,
      "text": "sync.(*WaitGroup).Wait(0xc000094010)",
      "top": 467.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0139",
      "page": 29,
      "ordinal": 139,
      "text": " /home/keke/soft/go/src/sync/waitgroup.go:130 +0x64",
      "top": 488.0,
      "left": 126.0,
      "width": 404.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0140",
      "page": 29,
      "ordinal": 140,
      "text": "main.main()",
      "top": 510.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0141",
      "page": 29,
      "ordinal": 141,
      "text": " /home/keke/go/Test/wait.go:17 +0xab",
      "top": 530.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0142",
      "page": 29,
      "ordinal": 142,
      "text": "exit status 2",
      "top": 551.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b015"
      }
    },
    {
      "id": "p029-t0143",
      "page": 29,
      "ordinal": 143,
      "text": "// A Context carries a deadline, cancelation signal, and request-scoped values",
      "top": 999.0,
      "left": 126.0,
      "width": 619.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0144",
      "page": 29,
      "ordinal": 144,
      "text": "// across API boundaries. Its methods are safe for simultaneous use by multiple",
      "top": 1019.0,
      "left": 126.0,
      "width": 627.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0145",
      "page": 29,
      "ordinal": 145,
      "text": "// goroutines.",
      "top": 1041.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0146",
      "page": 29,
      "ordinal": 146,
      "text": "type Context interface {",
      "top": 1062.0,
      "left": 126.0,
      "width": 190.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0147",
      "page": 29,
      "ordinal": 147,
      "text": " // Done returns a channel that is closed when this `Context` is canceled",
      "top": 1083.0,
      "left": 126.0,
      "width": 579.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0148",
      "page": 29,
      "ordinal": 148,
      "text": " // or times out.",
      "top": 1104.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0149",
      "page": 29,
      "ordinal": 149,
      "text": " Done() <-chan struct{}",
      "top": 1125.0,
      "left": 126.0,
      "width": 182.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0150",
      "page": 29,
      "ordinal": 150,
      "text": " // Err indicates why this Context was canceled, after the Done channel",
      "top": 1146.0,
      "left": 126.0,
      "width": 563.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0151",
      "page": 29,
      "ordinal": 151,
      "text": " // is closed.",
      "top": 1167.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p029-t0152",
      "page": 29,
      "ordinal": 152,
      "text": " Err() error",
      "top": 1188.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p030-t0001",
      "page": 30,
      "ordinal": 1,
      "text": " Done() ",
      "top": 174.0,
      "left": 112.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0002",
      "page": 30,
      "ordinal": 2,
      "text": "返回⼀个只能接受数据的",
      "top": 174.0,
      "left": 165.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0003",
      "page": 30,
      "ordinal": 3,
      "text": "channel",
      "top": 174.0,
      "left": 326.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0004",
      "page": 30,
      "ordinal": 4,
      "text": "类型，当该",
      "top": 174.0,
      "left": 380.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0005",
      "page": 30,
      "ordinal": 5,
      "text": "context",
      "top": 174.0,
      "left": 453.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0006",
      "page": 30,
      "ordinal": 6,
      "text": "关闭或者超时时间到了的时候，该",
      "top": 174.0,
      "left": 504.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0007",
      "page": 30,
      "ordinal": 7,
      "text": "channel",
      "top": 174.0,
      "left": 723.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0008",
      "page": 30,
      "ordinal": 8,
      "text": "就会有⼀个",
      "top": 197.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0010",
      "page": 30,
      "ordinal": 10,
      "text": "取消信号",
      "top": 197.0,
      "left": 189.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0011",
      "page": 30,
      "ordinal": 11,
      "text": " Err() ",
      "top": 197.0,
      "left": 247.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0012",
      "page": 30,
      "ordinal": 12,
      "text": "在",
      "top": 197.0,
      "left": 284.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0013",
      "page": 30,
      "ordinal": 13,
      "text": "Done() ",
      "top": 197.0,
      "left": 298.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0014",
      "page": 30,
      "ordinal": 14,
      "text": "之后，返回",
      "top": 197.0,
      "left": 347.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0015",
      "page": 30,
      "ordinal": 15,
      "text": "context ",
      "top": 197.0,
      "left": 420.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0016",
      "page": 30,
      "ordinal": 16,
      "text": "取消的原因。",
      "top": 197.0,
      "left": 475.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0017",
      "page": 30,
      "ordinal": 17,
      "text": " Deadline() ",
      "top": 197.0,
      "left": 563.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0018",
      "page": 30,
      "ordinal": 18,
      "text": "设置该",
      "top": 197.0,
      "left": 640.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0019",
      "page": 30,
      "ordinal": 19,
      "text": "context cancel",
      "top": 197.0,
      "left": 684.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0020",
      "page": 30,
      "ordinal": 20,
      "text": "的时间点",
      "top": 220.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0021",
      "page": 30,
      "ordinal": 21,
      "text": " Value() ",
      "top": 220.0,
      "left": 170.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0022",
      "page": 30,
      "ordinal": 22,
      "text": "⽅法允许",
      "top": 220.0,
      "left": 224.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0023",
      "page": 30,
      "ordinal": 23,
      "text": " Context ",
      "top": 220.0,
      "left": 283.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0024",
      "page": 30,
      "ordinal": 24,
      "text": "对象携带",
      "top": 220.0,
      "left": 344.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0025",
      "page": 30,
      "ordinal": 25,
      "text": "request",
      "top": 220.0,
      "left": 402.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0026",
      "page": 30,
      "ordinal": 26,
      "text": "作⽤域的数据，该数据必须是线程安全的。",
      "top": 220.0,
      "left": 455.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0028",
      "page": 30,
      "ordinal": 28,
      "text": "Context ",
      "top": 244.0,
      "left": 112.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0029",
      "page": 30,
      "ordinal": 29,
      "text": "对象是线程安全的，你可以把⼀个",
      "top": 244.0,
      "left": 169.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0030",
      "page": 30,
      "ordinal": 30,
      "text": " Context ",
      "top": 244.0,
      "left": 388.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0031",
      "page": 30,
      "ordinal": 31,
      "text": "对象传递给任意个数的",
      "top": 244.0,
      "left": 449.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0032",
      "page": 30,
      "ordinal": 32,
      "text": " gorotuine",
      "top": 244.0,
      "left": 595.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0033",
      "page": 30,
      "ordinal": 33,
      "text": "，对它执⾏",
      "top": 244.0,
      "left": 666.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0035",
      "page": 30,
      "ordinal": 35,
      "text": "取消",
      "top": 244.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0037",
      "page": 30,
      "ordinal": 37,
      "text": "操作时，",
      "top": 267.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0039",
      "page": 30,
      "ordinal": 39,
      "text": "所有",
      "top": 267.0,
      "left": 174.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0040",
      "page": 30,
      "ordinal": 40,
      "text": " goroutine ",
      "top": 267.0,
      "left": 203.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0041",
      "page": 30,
      "ordinal": 41,
      "text": "都会接收到取消信号。",
      "top": 267.0,
      "left": 278.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0043",
      "page": 30,
      "ordinal": 43,
      "text": "⼀个",
      "top": 267.0,
      "left": 428.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0044",
      "page": 30,
      "ordinal": 44,
      "text": " Context ",
      "top": 267.0,
      "left": 457.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0045",
      "page": 30,
      "ordinal": 45,
      "text": "不能拥有",
      "top": 267.0,
      "left": 518.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0046",
      "page": 30,
      "ordinal": 46,
      "text": " Cancel ",
      "top": 267.0,
      "left": 576.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0047",
      "page": 30,
      "ordinal": 47,
      "text": "⽅法，同时我们也只能",
      "top": 267.0,
      "left": 629.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0049",
      "page": 30,
      "ordinal": 49,
      "text": "Done channel ",
      "top": 291.0,
      "left": 112.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0050",
      "page": 30,
      "ordinal": 50,
      "text": "接收数据。",
      "top": 291.0,
      "left": 210.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0052",
      "page": 30,
      "ordinal": 52,
      "text": "其中的原因是⼀致的：接收取消",
      "top": 291.0,
      "left": 287.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0054",
      "page": 30,
      "ordinal": 54,
      "text": "信号的函数和发送信号的函数通常不是⼀",
      "top": 291.0,
      "left": 495.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0055",
      "page": 30,
      "ordinal": 55,
      "text": "个。",
      "top": 314.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0057",
      "page": 30,
      "ordinal": 57,
      "text": "典型的场景是：⽗操作为⼦操作操作启动",
      "top": 314.0,
      "left": 145.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0058",
      "page": 30,
      "ordinal": 58,
      "text": " goroutine",
      "top": 314.0,
      "left": 408.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0059",
      "page": 30,
      "ordinal": 59,
      "text": "，⼦操作也就不能取消⽗操作",
      "top": 314.0,
      "left": 479.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b020"
      }
    },
    {
      "id": "p030-t0061",
      "page": 30,
      "ordinal": 61,
      "text": "并发编程概念是什么？",
      "top": 348.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01"
      }
    },
    {
      "id": "p030-t0064",
      "page": 30,
      "ordinal": 64,
      "text": "并⾏是指两个或者多个事件在同⼀时刻发⽣；并发是指两个或多个事件在同⼀时间间隔发⽣。",
      "top": 399.0,
      "left": 112.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0066",
      "page": 30,
      "ordinal": 66,
      "text": "并⾏是在",
      "top": 399.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0067",
      "page": 30,
      "ordinal": 67,
      "text": "不同实体上的多个事件，并发是在同⼀实体上的多个事件。在⼀台处理器上",
      "top": 423.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0068",
      "page": 30,
      "ordinal": 68,
      "text": "“",
      "top": 423.0,
      "left": 594.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0069",
      "page": 30,
      "ordinal": 69,
      "text": "同时",
      "top": 423.0,
      "left": 599.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0070",
      "page": 30,
      "ordinal": 70,
      "text": "”",
      "top": 423.0,
      "left": 629.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0071",
      "page": 30,
      "ordinal": 71,
      "text": "处理多个任务，在多台",
      "top": 423.0,
      "left": 634.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0073",
      "page": 30,
      "ordinal": 73,
      "text": "处理器上同时处理多个任务。如",
      "top": 446.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0074",
      "page": 30,
      "ordinal": 74,
      "text": "hadoop",
      "top": 446.0,
      "left": 317.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0075",
      "page": 30,
      "ordinal": 75,
      "text": "分布式集群",
      "top": 446.0,
      "left": 369.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0077",
      "page": 30,
      "ordinal": 77,
      "text": "并发偏重于多个任务交替执⾏，⽽多个任务之间有",
      "top": 446.0,
      "left": 446.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0078",
      "page": 30,
      "ordinal": 78,
      "text": "可能还是串⾏的。⽽并⾏是真正意义上的",
      "top": 469.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0079",
      "page": 30,
      "ordinal": 79,
      "text": "“",
      "top": 469.0,
      "left": 375.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0080",
      "page": 30,
      "ordinal": 80,
      "text": "同时执⾏",
      "top": 469.0,
      "left": 380.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0081",
      "page": 30,
      "ordinal": 81,
      "text": "”",
      "top": 469.0,
      "left": 439.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0082",
      "page": 30,
      "ordinal": 82,
      "text": "。",
      "top": 469.0,
      "left": 444.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0084",
      "page": 30,
      "ordinal": 84,
      "text": "并发编程是指在⼀台处理器上",
      "top": 469.0,
      "left": 462.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0085",
      "page": 30,
      "ordinal": 85,
      "text": "“",
      "top": 469.0,
      "left": 652.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0086",
      "page": 30,
      "ordinal": 86,
      "text": "同时",
      "top": 469.0,
      "left": 657.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0087",
      "page": 30,
      "ordinal": 87,
      "text": "”",
      "top": 469.0,
      "left": 687.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0088",
      "page": 30,
      "ordinal": 88,
      "text": "处理多个任",
      "top": 469.0,
      "left": 692.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0089",
      "page": 30,
      "ordinal": 89,
      "text": "务。并发是在同⼀实体上的多个事件。多个事件在同⼀时间间隔发",
      "top": 492.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0091",
      "page": 30,
      "ordinal": 91,
      "text": "⽣。并发编程的⽬标是充分的利⽤处",
      "top": 492.0,
      "left": 540.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0092",
      "page": 30,
      "ordinal": 92,
      "text": "理器的每⼀个核，以达到最⾼的处理性能。",
      "top": 516.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h01",
        "heading_id": "p030-h01",
        "block_id": "q-p030-h01-b001"
      }
    },
    {
      "id": "p030-t0094",
      "page": 30,
      "ordinal": 94,
      "text": "Mutex ",
      "top": 551.0,
      "left": 112.0,
      "width": 89.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02"
      }
    },
    {
      "id": "p030-t0095",
      "page": 30,
      "ordinal": 95,
      "text": "几种状态",
      "top": 551.0,
      "left": 200.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02"
      }
    },
    {
      "id": "p030-t0098",
      "page": 30,
      "ordinal": 98,
      "text": "1. mutexLocked — ",
      "top": 602.0,
      "left": 129.0,
      "width": 130.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b001"
      }
    },
    {
      "id": "p030-t0099",
      "page": 30,
      "ordinal": 99,
      "text": "表示互斥锁的锁定状态；",
      "top": 602.0,
      "left": 260.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b001"
      }
    },
    {
      "id": "p030-t0101",
      "page": 30,
      "ordinal": 101,
      "text": "2. mutexWoken — ",
      "top": 632.0,
      "left": 129.0,
      "width": 129.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b002"
      }
    },
    {
      "id": "p030-t0102",
      "page": 30,
      "ordinal": 102,
      "text": "表示从正常模式被从唤醒；",
      "top": 632.0,
      "left": 259.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b002"
      }
    },
    {
      "id": "p030-t0103",
      "page": 30,
      "ordinal": 103,
      "text": "3. mutexStarving — ",
      "top": 662.0,
      "left": 129.0,
      "width": 137.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b003"
      }
    },
    {
      "id": "p030-t0104",
      "page": 30,
      "ordinal": 104,
      "text": "当前的互斥锁进入饥饿状态；",
      "top": 662.0,
      "left": 267.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b003"
      }
    },
    {
      "id": "p030-t0105",
      "page": 30,
      "ordinal": 105,
      "text": "4. waitersCount — ",
      "top": 694.0,
      "left": 129.0,
      "width": 129.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b004"
      }
    },
    {
      "id": "p030-t0106",
      "page": 30,
      "ordinal": 106,
      "text": "当前互斥锁上等待的",
      "top": 694.0,
      "left": 258.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b004"
      }
    },
    {
      "id": "p030-t0107",
      "page": 30,
      "ordinal": 107,
      "text": " Goroutine ",
      "top": 694.0,
      "left": 390.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b004"
      }
    },
    {
      "id": "p030-t0108",
      "page": 30,
      "ordinal": 108,
      "text": "个数；",
      "top": 694.0,
      "left": 467.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h02",
        "heading_id": "p030-h02",
        "block_id": "q-p030-h02-b004"
      }
    },
    {
      "id": "p030-t0110",
      "page": 30,
      "ordinal": 110,
      "text": "Mutex ",
      "top": 727.0,
      "left": 112.0,
      "width": 89.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03"
      }
    },
    {
      "id": "p030-t0111",
      "page": 30,
      "ordinal": 111,
      "text": "正常模式和饥饿模式",
      "top": 727.0,
      "left": 200.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03"
      }
    },
    {
      "id": "p030-t0115",
      "page": 30,
      "ordinal": 115,
      "text": "正常模式（非公平锁）",
      "top": 778.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0117",
      "page": 30,
      "ordinal": 117,
      "text": "正常模式下，所有等待锁的",
      "top": 802.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0118",
      "page": 30,
      "ordinal": 118,
      "text": " goroutine ",
      "top": 802.0,
      "left": 291.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0119",
      "page": 30,
      "ordinal": 119,
      "text": "按照",
      "top": 802.0,
      "left": 365.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0120",
      "page": 30,
      "ordinal": 120,
      "text": " FIFO",
      "top": 802.0,
      "left": 395.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0121",
      "page": 30,
      "ordinal": 121,
      "text": "（先进先出）顺序等待。唤醒",
      "top": 802.0,
      "left": 429.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0123",
      "page": 30,
      "ordinal": 123,
      "text": "的",
      "top": 802.0,
      "left": 623.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0124",
      "page": 30,
      "ordinal": 124,
      "text": " goroutine ",
      "top": 802.0,
      "left": 637.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0125",
      "page": 30,
      "ordinal": 125,
      "text": "不会直接",
      "top": 802.0,
      "left": 712.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0126",
      "page": 30,
      "ordinal": 126,
      "text": "拥有锁，而是会和新请求",
      "top": 825.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0127",
      "page": 30,
      "ordinal": 127,
      "text": " goroutine ",
      "top": 825.0,
      "left": 273.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0128",
      "page": 30,
      "ordinal": 128,
      "text": "竞争锁。新请求的",
      "top": 825.0,
      "left": 347.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0129",
      "page": 30,
      "ordinal": 129,
      "text": " goroutine ",
      "top": 825.0,
      "left": 464.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0130",
      "page": 30,
      "ordinal": 130,
      "text": "更容易抢占：因为它正在",
      "top": 825.0,
      "left": 538.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0131",
      "page": 30,
      "ordinal": 131,
      "text": " CPU ",
      "top": 825.0,
      "left": 699.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0132",
      "page": 30,
      "ordinal": 132,
      "text": "上执",
      "top": 825.0,
      "left": 735.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0133",
      "page": 30,
      "ordinal": 133,
      "text": "行，所以刚刚唤醒的",
      "top": 849.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0134",
      "page": 30,
      "ordinal": 134,
      "text": " goroutine 20 ",
      "top": 849.0,
      "left": 243.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0135",
      "page": 30,
      "ordinal": 135,
      "text": "有很大可能在锁竞争中失败。在这种情况下，这个被唤醒的",
      "top": 849.0,
      "left": 338.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0137",
      "page": 30,
      "ordinal": 137,
      "text": "goroutine ",
      "top": 872.0,
      "left": 112.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0138",
      "page": 30,
      "ordinal": 138,
      "text": "会加入",
      "top": 872.0,
      "left": 182.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0140",
      "page": 30,
      "ordinal": 140,
      "text": "到等待队列的前面。",
      "top": 872.0,
      "left": 230.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0142",
      "page": 30,
      "ordinal": 142,
      "text": "饥饿模式（公平锁）",
      "top": 895.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0144",
      "page": 30,
      "ordinal": 144,
      "text": "为了解决了等待",
      "top": 919.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0145",
      "page": 30,
      "ordinal": 145,
      "text": " goroutine ",
      "top": 919.0,
      "left": 218.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0146",
      "page": 30,
      "ordinal": 146,
      "text": "队列的长尾问题",
      "top": 919.0,
      "left": 292.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0148",
      "page": 30,
      "ordinal": 148,
      "text": "饥饿模式下，直接由",
      "top": 919.0,
      "left": 398.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0149",
      "page": 30,
      "ordinal": 149,
      "text": " unlock ",
      "top": 919.0,
      "left": 530.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0150",
      "page": 30,
      "ordinal": 150,
      "text": "把锁交给等待队列中排在第一",
      "top": 919.0,
      "left": 583.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0151",
      "page": 30,
      "ordinal": 151,
      "text": "位的",
      "top": 942.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0152",
      "page": 30,
      "ordinal": 152,
      "text": " goroutine (",
      "top": 942.0,
      "left": 141.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0153",
      "page": 30,
      "ordinal": 153,
      "text": "队",
      "top": 942.0,
      "left": 220.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0155",
      "page": 30,
      "ordinal": 155,
      "text": "头",
      "top": 942.0,
      "left": 238.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0156",
      "page": 30,
      "ordinal": 156,
      "text": ")",
      "top": 942.0,
      "left": 253.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0157",
      "page": 30,
      "ordinal": 157,
      "text": "，同时，饥饿模式下，新进来的",
      "top": 942.0,
      "left": 257.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0158",
      "page": 30,
      "ordinal": 158,
      "text": " goroutine ",
      "top": 942.0,
      "left": 462.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0159",
      "page": 30,
      "ordinal": 159,
      "text": "不会参与抢锁也不会进入自旋状",
      "top": 942.0,
      "left": 536.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0161",
      "page": 30,
      "ordinal": 161,
      "text": "态，",
      "top": 942.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0162",
      "page": 30,
      "ordinal": 162,
      "text": "会直接进入等待队列的尾部。这样很好的解决了老的",
      "top": 966.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0163",
      "page": 30,
      "ordinal": 163,
      "text": " goroutine ",
      "top": 966.0,
      "left": 448.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0164",
      "page": 30,
      "ordinal": 164,
      "text": "一直抢不",
      "top": 966.0,
      "left": 522.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0166",
      "page": 30,
      "ordinal": 166,
      "text": "到锁的场景。",
      "top": 966.0,
      "left": 585.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0168",
      "page": 30,
      "ordinal": 168,
      "text": "饥饿模式的触发",
      "top": 966.0,
      "left": 676.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0169",
      "page": 30,
      "ordinal": 169,
      "text": "条件：当一个",
      "top": 989.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0170",
      "page": 30,
      "ordinal": 170,
      "text": " goroutine ",
      "top": 989.0,
      "left": 200.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0171",
      "page": 30,
      "ordinal": 171,
      "text": "等待锁时间超过",
      "top": 989.0,
      "left": 274.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0172",
      "page": 30,
      "ordinal": 172,
      "text": " 1 ",
      "top": 989.0,
      "left": 376.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0173",
      "page": 30,
      "ordinal": 173,
      "text": "毫秒时，或者当前",
      "top": 989.0,
      "left": 392.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0175",
      "page": 30,
      "ordinal": 175,
      "text": "队列只剩下一个",
      "top": 989.0,
      "left": 513.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0176",
      "page": 30,
      "ordinal": 176,
      "text": " goroutine ",
      "top": 989.0,
      "left": 615.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0177",
      "page": 30,
      "ordinal": 177,
      "text": "的时候，",
      "top": 989.0,
      "left": 690.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0178",
      "page": 30,
      "ordinal": 178,
      "text": "Mutex ",
      "top": 1012.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0179",
      "page": 30,
      "ordinal": 179,
      "text": "切换到饥饿模式。",
      "top": 1012.0,
      "left": 159.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0181",
      "page": 30,
      "ordinal": 181,
      "text": "总结",
      "top": 1036.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0183",
      "page": 30,
      "ordinal": 183,
      "text": "对于两种模式，正常模式下的性能是最好的，",
      "top": 1059.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0184",
      "page": 30,
      "ordinal": 184,
      "text": "goroutine ",
      "top": 1059.0,
      "left": 404.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0185",
      "page": 30,
      "ordinal": 185,
      "text": "可以连续多次获取",
      "top": 1059.0,
      "left": 475.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0187",
      "page": 30,
      "ordinal": 187,
      "text": "锁，饥饿模式解决了取锁公",
      "top": 1059.0,
      "left": 596.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0188",
      "page": 30,
      "ordinal": 188,
      "text": "平的问题，但是性能会下降，这其实是性能和公平",
      "top": 1083.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0190",
      "page": 30,
      "ordinal": 190,
      "text": "的一个平衡模式。",
      "top": 1083.0,
      "left": 437.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h03",
        "heading_id": "p030-h03",
        "block_id": "q-p030-h03-b001"
      }
    },
    {
      "id": "p030-t0192",
      "page": 30,
      "ordinal": 192,
      "text": "Mutex ",
      "top": 1116.0,
      "left": 112.0,
      "width": 89.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04"
      }
    },
    {
      "id": "p030-t0193",
      "page": 30,
      "ordinal": 193,
      "text": "允许自旋的条件",
      "top": 1116.0,
      "left": 200.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04"
      }
    },
    {
      "id": "p030-t0196",
      "page": 30,
      "ordinal": 196,
      "text": "1. ",
      "top": 1167.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b001"
      }
    },
    {
      "id": "p030-t0197",
      "page": 30,
      "ordinal": 197,
      "text": "锁已被占用，并且锁不处于饥饿模式。",
      "top": 1167.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b001"
      }
    },
    {
      "id": "p030-t0199",
      "page": 30,
      "ordinal": 199,
      "text": "2. ",
      "top": 1199.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b002"
      }
    },
    {
      "id": "p030-t0200",
      "page": 30,
      "ordinal": 200,
      "text": "积累的自旋次数小于最大自旋次数（",
      "top": 1199.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b002"
      }
    },
    {
      "id": "p030-t0201",
      "page": 30,
      "ordinal": 201,
      "text": "active_spin=4",
      "top": 1199.0,
      "left": 380.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b002"
      }
    },
    {
      "id": "p030-t0202",
      "page": 30,
      "ordinal": 202,
      "text": "）。",
      "top": 1199.0,
      "left": 471.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b002"
      }
    },
    {
      "id": "p030-t0204",
      "page": 30,
      "ordinal": 204,
      "text": " // Deadline returns the time when this Context will be canceled, if any.",
      "top": 45.0,
      "left": 126.0,
      "width": 579.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p030-t0205",
      "page": 30,
      "ordinal": 205,
      "text": " Deadline() (deadline time.Time, ok bool)",
      "top": 66.0,
      "left": 126.0,
      "width": 325.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p030-t0206",
      "page": 30,
      "ordinal": 206,
      "text": " // Value returns the value associated with key or nil if none.",
      "top": 87.0,
      "left": 126.0,
      "width": 500.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p030-t0207",
      "page": 30,
      "ordinal": 207,
      "text": " Value(key interface{}) interface{}",
      "top": 108.0,
      "left": 126.0,
      "width": 278.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p030-t0208",
      "page": 30,
      "ordinal": 208,
      "text": "}",
      "top": 129.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p027-h01",
        "heading_id": "p027-h01",
        "block_id": "q-p027-h01-b019"
      }
    },
    {
      "id": "p031-t0001",
      "page": 31,
      "ordinal": 1,
      "text": "3. CPU ",
      "top": 44.0,
      "left": 129.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b003"
      }
    },
    {
      "id": "p031-t0002",
      "page": 31,
      "ordinal": 2,
      "text": "核数大于",
      "top": 44.0,
      "left": 178.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b003"
      }
    },
    {
      "id": "p031-t0003",
      "page": 31,
      "ordinal": 3,
      "text": " 1",
      "top": 44.0,
      "left": 236.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b003"
      }
    },
    {
      "id": "p031-t0004",
      "page": 31,
      "ordinal": 4,
      "text": "。",
      "top": 44.0,
      "left": 249.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b003"
      }
    },
    {
      "id": "p031-t0006",
      "page": 31,
      "ordinal": 6,
      "text": "4. ",
      "top": 74.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b004"
      }
    },
    {
      "id": "p031-t0007",
      "page": 31,
      "ordinal": 7,
      "text": "有空闲的",
      "top": 74.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b004"
      }
    },
    {
      "id": "p031-t0008",
      "page": 31,
      "ordinal": 8,
      "text": " P",
      "top": 74.0,
      "left": 204.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b004"
      }
    },
    {
      "id": "p031-t0009",
      "page": 31,
      "ordinal": 9,
      "text": "。",
      "top": 74.0,
      "left": 217.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b004"
      }
    },
    {
      "id": "p031-t0011",
      "page": 31,
      "ordinal": 11,
      "text": "5. ",
      "top": 105.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0012",
      "page": 31,
      "ordinal": 12,
      "text": "当前",
      "top": 105.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0013",
      "page": 31,
      "ordinal": 13,
      "text": " Goroutine ",
      "top": 105.0,
      "left": 175.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0014",
      "page": 31,
      "ordinal": 14,
      "text": "所挂载的",
      "top": 105.0,
      "left": 252.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0015",
      "page": 31,
      "ordinal": 15,
      "text": " P ",
      "top": 105.0,
      "left": 310.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0016",
      "page": 31,
      "ordinal": 16,
      "text": "下，本地待运行队列为空。",
      "top": 105.0,
      "left": 327.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p030-h04",
        "heading_id": "p030-h04",
        "block_id": "q-p030-h04-b005"
      }
    },
    {
      "id": "p031-t0018",
      "page": 31,
      "ordinal": 18,
      "text": "RWMutex ",
      "top": 139.0,
      "left": 112.0,
      "width": 130.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01"
      }
    },
    {
      "id": "p031-t0019",
      "page": 31,
      "ordinal": 19,
      "text": "实现",
      "top": 139.0,
      "left": 242.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01"
      }
    },
    {
      "id": "p031-t0022",
      "page": 31,
      "ordinal": 22,
      "text": "RWMutex ",
      "top": 308.0,
      "left": 112.0,
      "width": 130.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02"
      }
    },
    {
      "id": "p031-t0023",
      "page": 31,
      "ordinal": 23,
      "text": "注意事项",
      "top": 308.0,
      "left": 242.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02"
      }
    },
    {
      "id": "p031-t0026",
      "page": 31,
      "ordinal": 26,
      "text": "1. RWMutex ",
      "top": 359.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b001"
      }
    },
    {
      "id": "p031-t0027",
      "page": 31,
      "ordinal": 27,
      "text": "是单写多读锁，该锁可以加多个读锁或者一个写锁",
      "top": 359.0,
      "left": 215.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b001"
      }
    },
    {
      "id": "p031-t0029",
      "page": 31,
      "ordinal": 29,
      "text": "2. ",
      "top": 389.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b002"
      }
    },
    {
      "id": "p031-t0030",
      "page": 31,
      "ordinal": 30,
      "text": "读锁占用的情况下会阻止写，不会阻止读，多个",
      "top": 389.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b002"
      }
    },
    {
      "id": "p031-t0031",
      "page": 31,
      "ordinal": 31,
      "text": " Goroutine ",
      "top": 389.0,
      "left": 453.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b002"
      }
    },
    {
      "id": "p031-t0032",
      "page": 31,
      "ordinal": 32,
      "text": "可以同时获取",
      "top": 389.0,
      "left": 530.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b002"
      }
    },
    {
      "id": "p031-t0034",
      "page": 31,
      "ordinal": 34,
      "text": "读锁",
      "top": 389.0,
      "left": 621.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b002"
      }
    },
    {
      "id": "p031-t0035",
      "page": 31,
      "ordinal": 35,
      "text": "3. ",
      "top": 420.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0036",
      "page": 31,
      "ordinal": 36,
      "text": "写锁会阻止其他",
      "top": 420.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0037",
      "page": 31,
      "ordinal": 37,
      "text": " Goroutine",
      "top": 420.0,
      "left": 248.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0038",
      "page": 31,
      "ordinal": 38,
      "text": "（无论读和写）进来，整个锁由该",
      "top": 420.0,
      "left": 321.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0039",
      "page": 31,
      "ordinal": 39,
      "text": " Goroutine ",
      "top": 420.0,
      "left": 540.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0040",
      "page": 31,
      "ordinal": 40,
      "text": "独占",
      "top": 420.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b003"
      }
    },
    {
      "id": "p031-t0042",
      "page": 31,
      "ordinal": 42,
      "text": "4. ",
      "top": 451.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b004"
      }
    },
    {
      "id": "p031-t0043",
      "page": 31,
      "ordinal": 43,
      "text": "适用于读多写少的场景",
      "top": 451.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b004"
      }
    },
    {
      "id": "p031-t0045",
      "page": 31,
      "ordinal": 45,
      "text": "5. RWMutex ",
      "top": 481.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b005"
      }
    },
    {
      "id": "p031-t0046",
      "page": 31,
      "ordinal": 46,
      "text": "类型变量的零值是一个未锁定状态的互斥锁",
      "top": 481.0,
      "left": 215.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b005"
      }
    },
    {
      "id": "p031-t0048",
      "page": 31,
      "ordinal": 48,
      "text": "6. RWMutex ",
      "top": 512.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b006"
      }
    },
    {
      "id": "p031-t0049",
      "page": 31,
      "ordinal": 49,
      "text": "在首次被使用之后就不能再被拷贝",
      "top": 512.0,
      "left": 215.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b006"
      }
    },
    {
      "id": "p031-t0051",
      "page": 31,
      "ordinal": 51,
      "text": "7. RWMutex ",
      "top": 543.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b007"
      }
    },
    {
      "id": "p031-t0052",
      "page": 31,
      "ordinal": 52,
      "text": "的读锁或写锁在未锁定状态，解锁操作都会引发",
      "top": 543.0,
      "left": 215.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b007"
      }
    },
    {
      "id": "p031-t0053",
      "page": 31,
      "ordinal": 53,
      "text": " panic ",
      "top": 543.0,
      "left": 522.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b007"
      }
    },
    {
      "id": "p031-t0054",
      "page": 31,
      "ordinal": 54,
      "text": "8. RWMutex ",
      "top": 573.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0055",
      "page": 31,
      "ordinal": 55,
      "text": "的一个写锁去锁定临界区的共享资源，如果临界区的共享资源已",
      "top": 573.0,
      "left": 215.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0057",
      "page": 31,
      "ordinal": 57,
      "text": "被（读锁或写锁）锁",
      "top": 573.0,
      "left": 628.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0058",
      "page": 31,
      "ordinal": 58,
      "text": "定，这个写锁操作的",
      "top": 597.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0059",
      "page": 31,
      "ordinal": 59,
      "text": " goroutine ",
      "top": 597.0,
      "left": 277.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0060",
      "page": 31,
      "ordinal": 60,
      "text": "将被阻塞直到解锁",
      "top": 597.0,
      "left": 351.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b008"
      }
    },
    {
      "id": "p031-t0061",
      "page": 31,
      "ordinal": 61,
      "text": "9. RWMutex ",
      "top": 627.0,
      "left": 129.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b009"
      }
    },
    {
      "id": "p031-t0062",
      "page": 31,
      "ordinal": 62,
      "text": "的读锁不要用于递归调用，比较容易产生死锁",
      "top": 627.0,
      "left": 215.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b009"
      }
    },
    {
      "id": "p031-t0064",
      "page": 31,
      "ordinal": 64,
      "text": "10. RWMutex ",
      "top": 658.0,
      "left": 121.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0065",
      "page": 31,
      "ordinal": 65,
      "text": "的锁定状态与特定的",
      "top": 658.0,
      "left": 215.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0066",
      "page": 31,
      "ordinal": 66,
      "text": " goroutine ",
      "top": 658.0,
      "left": 347.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0067",
      "page": 31,
      "ordinal": 67,
      "text": "没有关联。一个",
      "top": 658.0,
      "left": 421.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0068",
      "page": 31,
      "ordinal": 68,
      "text": " goroutine ",
      "top": 658.0,
      "left": 523.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0069",
      "page": 31,
      "ordinal": 69,
      "text": "可",
      "top": 658.0,
      "left": 598.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0071",
      "page": 31,
      "ordinal": 71,
      "text": "以",
      "top": 658.0,
      "left": 616.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0072",
      "page": 31,
      "ordinal": 72,
      "text": " RLock",
      "top": 658.0,
      "left": 631.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0073",
      "page": 31,
      "ordinal": 73,
      "text": "（",
      "top": 658.0,
      "left": 675.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0074",
      "page": 31,
      "ordinal": 74,
      "text": "Lock",
      "top": 658.0,
      "left": 689.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0075",
      "page": 31,
      "ordinal": 75,
      "text": "），另一",
      "top": 658.0,
      "left": 720.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0076",
      "page": 31,
      "ordinal": 76,
      "text": "个",
      "top": 681.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0077",
      "page": 31,
      "ordinal": 77,
      "text": " goroutine ",
      "top": 681.0,
      "left": 160.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0078",
      "page": 31,
      "ordinal": 78,
      "text": "可以",
      "top": 681.0,
      "left": 234.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0079",
      "page": 31,
      "ordinal": 79,
      "text": " RUnlock",
      "top": 681.0,
      "left": 264.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0080",
      "page": 31,
      "ordinal": 80,
      "text": "（",
      "top": 681.0,
      "left": 323.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0081",
      "page": 31,
      "ordinal": 81,
      "text": "Unlock",
      "top": 681.0,
      "left": 338.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0082",
      "page": 31,
      "ordinal": 82,
      "text": "）",
      "top": 681.0,
      "left": 385.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b010"
      }
    },
    {
      "id": "p031-t0083",
      "page": 31,
      "ordinal": 83,
      "text": "11. ",
      "top": 713.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b011"
      }
    },
    {
      "id": "p031-t0084",
      "page": 31,
      "ordinal": 84,
      "text": "写锁被解锁后，所有因操作锁定读锁而被阻塞的",
      "top": 713.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b011"
      }
    },
    {
      "id": "p031-t0085",
      "page": 31,
      "ordinal": 85,
      "text": " goroutine ",
      "top": 713.0,
      "left": 453.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b011"
      }
    },
    {
      "id": "p031-t0086",
      "page": 31,
      "ordinal": 86,
      "text": "会被唤醒，并",
      "top": 713.0,
      "left": 527.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b011"
      }
    },
    {
      "id": "p031-t0088",
      "page": 31,
      "ordinal": 88,
      "text": "都可以成功锁定读锁",
      "top": 713.0,
      "left": 618.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b011"
      }
    },
    {
      "id": "p031-t0090",
      "page": 31,
      "ordinal": 90,
      "text": "12. ",
      "top": 743.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0091",
      "page": 31,
      "ordinal": 91,
      "text": "读锁被解锁后，在没有被其他读锁锁定的前提下，所有因操作锁定写锁而",
      "top": 743.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0093",
      "page": 31,
      "ordinal": 93,
      "text": "被阻塞的",
      "top": 743.0,
      "left": 617.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0094",
      "page": 31,
      "ordinal": 94,
      "text": " Goroutine",
      "top": 743.0,
      "left": 676.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0095",
      "page": 31,
      "ordinal": 95,
      "text": "，其",
      "top": 743.0,
      "left": 749.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0096",
      "page": 31,
      "ordinal": 96,
      "text": "中等待时间最长的一个",
      "top": 767.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0097",
      "page": 31,
      "ordinal": 97,
      "text": " Goroutine ",
      "top": 767.0,
      "left": 292.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0098",
      "page": 31,
      "ordinal": 98,
      "text": "会被唤醒",
      "top": 767.0,
      "left": 369.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h02",
        "heading_id": "p031-h02",
        "block_id": "q-p031-h02-b012"
      }
    },
    {
      "id": "p031-t0100",
      "page": 31,
      "ordinal": 100,
      "text": "Cond ",
      "top": 800.0,
      "left": 112.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03"
      }
    },
    {
      "id": "p031-t0101",
      "page": 31,
      "ordinal": 101,
      "text": "是什么",
      "top": 800.0,
      "left": 184.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03"
      }
    },
    {
      "id": "p031-t0104",
      "page": 31,
      "ordinal": 104,
      "text": " Cond ",
      "top": 851.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0105",
      "page": 31,
      "ordinal": 105,
      "text": "实现了一种条件变量，可以使用在多个",
      "top": 851.0,
      "left": 155.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0106",
      "page": 31,
      "ordinal": 106,
      "text": " Reader ",
      "top": 851.0,
      "left": 404.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0107",
      "page": 31,
      "ordinal": 107,
      "text": "等待共享资源",
      "top": 851.0,
      "left": 460.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0108",
      "page": 31,
      "ordinal": 108,
      "text": " ready ",
      "top": 851.0,
      "left": 548.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0109",
      "page": 31,
      "ordinal": 109,
      "text": "的场",
      "top": 851.0,
      "left": 594.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0111",
      "page": 31,
      "ordinal": 111,
      "text": "景（如果只有一读一",
      "top": 851.0,
      "left": 627.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0112",
      "page": 31,
      "ordinal": 112,
      "text": "写，一个锁或者",
      "top": 875.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0113",
      "page": 31,
      "ordinal": 113,
      "text": " channel ",
      "top": 875.0,
      "left": 214.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0114",
      "page": 31,
      "ordinal": 114,
      "text": "就搞定了）",
      "top": 875.0,
      "left": 276.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0115",
      "page": 31,
      "ordinal": 115,
      "text": " 22 ",
      "top": 875.0,
      "left": 349.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0116",
      "page": 31,
      "ordinal": 116,
      "text": "每个",
      "top": 875.0,
      "left": 373.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0117",
      "page": 31,
      "ordinal": 117,
      "text": " Cond ",
      "top": 875.0,
      "left": 402.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0118",
      "page": 31,
      "ordinal": 118,
      "text": "都会关联一个",
      "top": 875.0,
      "left": 446.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0119",
      "page": 31,
      "ordinal": 119,
      "text": " Lock",
      "top": 875.0,
      "left": 534.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0120",
      "page": 31,
      "ordinal": 120,
      "text": "（",
      "top": 875.0,
      "left": 569.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0121",
      "page": 31,
      "ordinal": 121,
      "text": "*sync.Mutex or ",
      "top": 875.0,
      "left": 583.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0122",
      "page": 31,
      "ordinal": 122,
      "text": "*sync.RWMutex",
      "top": 899.0,
      "left": 112.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0123",
      "page": 31,
      "ordinal": 123,
      "text": "），当修改条",
      "top": 899.0,
      "left": 220.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0125",
      "page": 31,
      "ordinal": 125,
      "text": "件或者调用",
      "top": 899.0,
      "left": 311.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0126",
      "page": 31,
      "ordinal": 126,
      "text": " Wait ",
      "top": 899.0,
      "left": 384.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0127",
      "page": 31,
      "ordinal": 127,
      "text": "方法时，必须加锁，保护",
      "top": 899.0,
      "left": 423.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0128",
      "page": 31,
      "ordinal": 128,
      "text": " condition",
      "top": 899.0,
      "left": 583.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0129",
      "page": 31,
      "ordinal": 129,
      "text": "。",
      "top": 899.0,
      "left": 651.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h03",
        "heading_id": "p031-h03",
        "block_id": "q-p031-h03-b001"
      }
    },
    {
      "id": "p031-t0131",
      "page": 31,
      "ordinal": 131,
      "text": "Broadcast ",
      "top": 933.0,
      "left": 112.0,
      "width": 135.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04"
      }
    },
    {
      "id": "p031-t0132",
      "page": 31,
      "ordinal": 132,
      "text": "和",
      "top": 933.0,
      "left": 247.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04"
      }
    },
    {
      "id": "p031-t0133",
      "page": 31,
      "ordinal": 133,
      "text": " Signal ",
      "top": 933.0,
      "left": 273.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04"
      }
    },
    {
      "id": "p031-t0134",
      "page": 31,
      "ordinal": 134,
      "text": "区别",
      "top": 933.0,
      "left": 363.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04"
      }
    },
    {
      "id": "p031-t0137",
      "page": 31,
      "ordinal": 137,
      "text": " func (c *Cond) Broadcast() ",
      "top": 984.0,
      "left": 112.0,
      "width": 186.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0138",
      "page": 31,
      "ordinal": 138,
      "text": "Broadcast ",
      "top": 1007.0,
      "left": 112.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0139",
      "page": 31,
      "ordinal": 139,
      "text": "会唤醒所有等待",
      "top": 1007.0,
      "left": 184.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0140",
      "page": 31,
      "ordinal": 140,
      "text": " c ",
      "top": 1007.0,
      "left": 287.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0141",
      "page": 31,
      "ordinal": 141,
      "text": "的",
      "top": 1007.0,
      "left": 301.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0142",
      "page": 31,
      "ordinal": 142,
      "text": " goroutine",
      "top": 1007.0,
      "left": 316.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0143",
      "page": 31,
      "ordinal": 143,
      "text": "。",
      "top": 1007.0,
      "left": 386.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0145",
      "page": 31,
      "ordinal": 145,
      "text": "调用",
      "top": 1007.0,
      "left": 405.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0146",
      "page": 31,
      "ordinal": 146,
      "text": " Broadcast ",
      "top": 1007.0,
      "left": 434.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0147",
      "page": 31,
      "ordinal": 147,
      "text": "的时候，可以加锁，也可以不加锁。",
      "top": 1007.0,
      "left": 510.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0149",
      "page": 31,
      "ordinal": 149,
      "text": "func (c *Cond) Signal() ",
      "top": 1030.0,
      "left": 112.0,
      "width": 154.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0150",
      "page": 31,
      "ordinal": 150,
      "text": "Signal ",
      "top": 1054.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0151",
      "page": 31,
      "ordinal": 151,
      "text": "只唤醒",
      "top": 1054.0,
      "left": 156.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0152",
      "page": 31,
      "ordinal": 152,
      "text": " 1 ",
      "top": 1054.0,
      "left": 200.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0153",
      "page": 31,
      "ordinal": 153,
      "text": "个等待",
      "top": 1054.0,
      "left": 216.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0154",
      "page": 31,
      "ordinal": 154,
      "text": " c ",
      "top": 1054.0,
      "left": 260.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0155",
      "page": 31,
      "ordinal": 155,
      "text": "的",
      "top": 1054.0,
      "left": 274.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0156",
      "page": 31,
      "ordinal": 156,
      "text": " goroutine",
      "top": 1054.0,
      "left": 289.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0157",
      "page": 31,
      "ordinal": 157,
      "text": "。",
      "top": 1054.0,
      "left": 359.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0159",
      "page": 31,
      "ordinal": 159,
      "text": "调用",
      "top": 1054.0,
      "left": 378.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0160",
      "page": 31,
      "ordinal": 160,
      "text": " Signal ",
      "top": 1054.0,
      "left": 407.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0161",
      "page": 31,
      "ordinal": 161,
      "text": "的时候，可以加锁，也可以不加锁。",
      "top": 1054.0,
      "left": 455.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h04",
        "heading_id": "p031-h04",
        "block_id": "q-p031-h04-b001"
      }
    },
    {
      "id": "p031-t0163",
      "page": 31,
      "ordinal": 163,
      "text": "通过记录",
      "top": 203.0,
      "left": 126.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0164",
      "page": 31,
      "ordinal": 164,
      "text": " readerCount ",
      "top": 204.0,
      "left": 179.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0165",
      "page": 31,
      "ordinal": 165,
      "text": "读锁的数量来进行控制，当有一个写锁的时候，会将读",
      "top": 203.0,
      "left": 282.0,
      "width": 316.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0167",
      "page": 31,
      "ordinal": 167,
      "text": "锁数量设置为负数",
      "top": 203.0,
      "left": 606.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0168",
      "page": 31,
      "ordinal": 168,
      "text": " 1<<30",
      "top": 204.0,
      "left": 711.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0169",
      "page": 31,
      "ordinal": 169,
      "text": "。",
      "top": 203.0,
      "left": 759.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0170",
      "page": 31,
      "ordinal": 170,
      "text": "目的是让新进入的读锁等待之前的写锁释放通知读",
      "top": 224.0,
      "left": 126.0,
      "width": 290.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0172",
      "page": 31,
      "ordinal": 172,
      "text": "锁。同样的当有写锁进行抢占时，也会等待之前的读锁都释",
      "top": 224.0,
      "left": 424.0,
      "width": 342.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0173",
      "page": 31,
      "ordinal": 173,
      "text": "放完毕，才会开始",
      "top": 246.0,
      "left": 126.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0174",
      "page": 31,
      "ordinal": 174,
      "text": " 21 ",
      "top": 246.0,
      "left": 232.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0175",
      "page": 31,
      "ordinal": 175,
      "text": "进行后续的操作。",
      "top": 246.0,
      "left": 263.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0177",
      "page": 31,
      "ordinal": 177,
      "text": "而等写锁释放完之后，会将值重新加上",
      "top": 246.0,
      "left": 377.0,
      "width": 224.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0178",
      "page": 31,
      "ordinal": 178,
      "text": " 1<<30, ",
      "top": 246.0,
      "left": 600.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0179",
      "page": 31,
      "ordinal": 179,
      "text": "并通知刚才",
      "top": 246.0,
      "left": 664.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0181",
      "page": 31,
      "ordinal": 181,
      "text": "新进",
      "top": 246.0,
      "left": 738.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0182",
      "page": 31,
      "ordinal": 182,
      "text": "入的读锁（",
      "top": 266.0,
      "left": 126.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0183",
      "page": 31,
      "ordinal": 183,
      "text": "rw.readerSem",
      "top": 267.0,
      "left": 192.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p031-t0184",
      "page": 31,
      "ordinal": 184,
      "text": "），两者互相限制。",
      "top": 266.0,
      "left": 287.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p031-h01",
        "heading_id": "p031-h01",
        "block_id": "q-p031-h01-b001"
      }
    },
    {
      "id": "p032-t0001",
      "page": 32,
      "ordinal": 1,
      "text": "Cond ",
      "top": 40.0,
      "left": 112.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01"
      }
    },
    {
      "id": "p032-t0002",
      "page": 32,
      "ordinal": 2,
      "text": "中",
      "top": 40.0,
      "left": 184.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01"
      }
    },
    {
      "id": "p032-t0003",
      "page": 32,
      "ordinal": 3,
      "text": " Wait ",
      "top": 40.0,
      "left": 209.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01"
      }
    },
    {
      "id": "p032-t0004",
      "page": 32,
      "ordinal": 4,
      "text": "使用",
      "top": 40.0,
      "left": 282.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01"
      }
    },
    {
      "id": "p032-t0007",
      "page": 32,
      "ordinal": 7,
      "text": " func (c *Cond) Wait()",
      "top": 91.0,
      "left": 112.0,
      "width": 144.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0008",
      "page": 32,
      "ordinal": 8,
      "text": " Wait()",
      "top": 114.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0009",
      "page": 32,
      "ordinal": 9,
      "text": "会自动释放",
      "top": 114.0,
      "left": 155.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0010",
      "page": 32,
      "ordinal": 10,
      "text": " c.L ",
      "top": 114.0,
      "left": 228.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0011",
      "page": 32,
      "ordinal": 11,
      "text": "锁，并挂起调用者的",
      "top": 114.0,
      "left": 254.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0012",
      "page": 32,
      "ordinal": 12,
      "text": " goroutine",
      "top": 114.0,
      "left": 386.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0013",
      "page": 32,
      "ordinal": 13,
      "text": "。之后恢复执行，",
      "top": 114.0,
      "left": 456.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0014",
      "page": 32,
      "ordinal": 14,
      "text": " Wait()",
      "top": 114.0,
      "left": 573.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0015",
      "page": 32,
      "ordinal": 15,
      "text": "会在返回时对",
      "top": 114.0,
      "left": 616.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0016",
      "page": 32,
      "ordinal": 16,
      "text": " c.L ",
      "top": 114.0,
      "left": 704.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0017",
      "page": 32,
      "ordinal": 17,
      "text": "加锁。",
      "top": 114.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0019",
      "page": 32,
      "ordinal": 19,
      "text": "除非被",
      "top": 137.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0020",
      "page": 32,
      "ordinal": 20,
      "text": " Signal ",
      "top": 137.0,
      "left": 156.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0021",
      "page": 32,
      "ordinal": 21,
      "text": "或者",
      "top": 137.0,
      "left": 204.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0022",
      "page": 32,
      "ordinal": 22,
      "text": " Broadcast ",
      "top": 137.0,
      "left": 233.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0023",
      "page": 32,
      "ordinal": 23,
      "text": "唤醒，否则",
      "top": 137.0,
      "left": 309.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0024",
      "page": 32,
      "ordinal": 24,
      "text": " Wait()",
      "top": 137.0,
      "left": 382.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0025",
      "page": 32,
      "ordinal": 25,
      "text": "不会返回。",
      "top": 137.0,
      "left": 425.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0027",
      "page": 32,
      "ordinal": 27,
      "text": "由于",
      "top": 137.0,
      "left": 502.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0028",
      "page": 32,
      "ordinal": 28,
      "text": " Wait()",
      "top": 137.0,
      "left": 532.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0029",
      "page": 32,
      "ordinal": 29,
      "text": "第一次恢复时，",
      "top": 137.0,
      "left": 575.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0030",
      "page": 32,
      "ordinal": 30,
      "text": "C.L ",
      "top": 137.0,
      "left": 677.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0031",
      "page": 32,
      "ordinal": 31,
      "text": "并没有加",
      "top": 137.0,
      "left": 701.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0032",
      "page": 32,
      "ordinal": 32,
      "text": "锁，所以当",
      "top": 161.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0033",
      "page": 32,
      "ordinal": 33,
      "text": " Wait ",
      "top": 161.0,
      "left": 185.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0034",
      "page": 32,
      "ordinal": 34,
      "text": "返回时，调用者通常",
      "top": 161.0,
      "left": 223.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0036",
      "page": 32,
      "ordinal": 36,
      "text": "并不能假设条件为真。如下代码：。",
      "top": 161.0,
      "left": 358.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0038",
      "page": 32,
      "ordinal": 38,
      "text": "取而代之的是",
      "top": 161.0,
      "left": 596.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0039",
      "page": 32,
      "ordinal": 39,
      "text": ", ",
      "top": 161.0,
      "left": 684.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0040",
      "page": 32,
      "ordinal": 40,
      "text": "调用者应该在",
      "top": 161.0,
      "left": 691.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0041",
      "page": 32,
      "ordinal": 41,
      "text": "循环中调用",
      "top": 184.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0042",
      "page": 32,
      "ordinal": 42,
      "text": " Wait",
      "top": 184.0,
      "left": 185.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0043",
      "page": 32,
      "ordinal": 43,
      "text": "。（简单来说，只要想使用",
      "top": 184.0,
      "left": 219.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0044",
      "page": 32,
      "ordinal": 44,
      "text": " condition",
      "top": 184.0,
      "left": 395.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0045",
      "page": 32,
      "ordinal": 45,
      "text": "，就必须加锁。）",
      "top": 184.0,
      "left": 463.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b001"
      }
    },
    {
      "id": "p032-t0047",
      "page": 32,
      "ordinal": 47,
      "text": "WaitGroup ",
      "top": 382.0,
      "left": 112.0,
      "width": 145.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02"
      }
    },
    {
      "id": "p032-t0048",
      "page": 32,
      "ordinal": 48,
      "text": "用法",
      "top": 382.0,
      "left": 257.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02"
      }
    },
    {
      "id": "p032-t0052",
      "page": 32,
      "ordinal": 52,
      "text": "一个",
      "top": 433.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b001"
      }
    },
    {
      "id": "p032-t0053",
      "page": 32,
      "ordinal": 53,
      "text": " WaitGroup ",
      "top": 433.0,
      "left": 145.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b001"
      }
    },
    {
      "id": "p032-t0054",
      "page": 32,
      "ordinal": 54,
      "text": "对象可以等待一组协程结束。使用方法是：",
      "top": 433.0,
      "left": 226.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b001"
      }
    },
    {
      "id": "p032-t0056",
      "page": 32,
      "ordinal": 56,
      "text": "1. main ",
      "top": 468.0,
      "left": 129.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0057",
      "page": 32,
      "ordinal": 57,
      "text": "协程通过调用",
      "top": 468.0,
      "left": 184.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0058",
      "page": 32,
      "ordinal": 58,
      "text": " wg.Add(delta int) ",
      "top": 468.0,
      "left": 271.0,
      "width": 123.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0059",
      "page": 32,
      "ordinal": 59,
      "text": "设置",
      "top": 468.0,
      "left": 394.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0060",
      "page": 32,
      "ordinal": 60,
      "text": " worker ",
      "top": 468.0,
      "left": 423.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0061",
      "page": 32,
      "ordinal": 61,
      "text": "协程的个数，然后创",
      "top": 468.0,
      "left": 479.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0063",
      "page": 32,
      "ordinal": 63,
      "text": "建",
      "top": 468.0,
      "left": 614.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0064",
      "page": 32,
      "ordinal": 64,
      "text": " worker ",
      "top": 468.0,
      "left": 629.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0065",
      "page": 32,
      "ordinal": 65,
      "text": "协程；",
      "top": 468.0,
      "left": 685.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b002"
      }
    },
    {
      "id": "p032-t0067",
      "page": 32,
      "ordinal": 67,
      "text": "2. worker ",
      "top": 499.0,
      "left": 129.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b003"
      }
    },
    {
      "id": "p032-t0068",
      "page": 32,
      "ordinal": 68,
      "text": "协程执行结束以后，都要调用",
      "top": 499.0,
      "left": 197.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b003"
      }
    },
    {
      "id": "p032-t0069",
      "page": 32,
      "ordinal": 69,
      "text": " wg.Done()",
      "top": 499.0,
      "left": 387.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b003"
      }
    },
    {
      "id": "p032-t0070",
      "page": 32,
      "ordinal": 70,
      "text": "；",
      "top": 499.0,
      "left": 460.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b003"
      }
    },
    {
      "id": "p032-t0072",
      "page": 32,
      "ordinal": 72,
      "text": "3. main ",
      "top": 530.0,
      "left": 129.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0073",
      "page": 32,
      "ordinal": 73,
      "text": "协程调用",
      "top": 530.0,
      "left": 184.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0074",
      "page": 32,
      "ordinal": 74,
      "text": " wg.Wait() ",
      "top": 530.0,
      "left": 242.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0075",
      "page": 32,
      "ordinal": 75,
      "text": "且被",
      "top": 530.0,
      "left": 312.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0076",
      "page": 32,
      "ordinal": 76,
      "text": " block",
      "top": 530.0,
      "left": 342.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0077",
      "page": 32,
      "ordinal": 77,
      "text": "，直到所有",
      "top": 530.0,
      "left": 381.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0078",
      "page": 32,
      "ordinal": 78,
      "text": " worker ",
      "top": 530.0,
      "left": 455.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0079",
      "page": 32,
      "ordinal": 79,
      "text": "协程全部执行结束",
      "top": 530.0,
      "left": 510.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0081",
      "page": 32,
      "ordinal": 81,
      "text": "后返回。",
      "top": 530.0,
      "left": 631.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h02",
        "heading_id": "p032-h02",
        "block_id": "q-p032-h02-b004"
      }
    },
    {
      "id": "p032-t0083",
      "page": 32,
      "ordinal": 83,
      "text": "WaitGroup ",
      "top": 564.0,
      "left": 112.0,
      "width": 145.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03"
      }
    },
    {
      "id": "p032-t0084",
      "page": 32,
      "ordinal": 84,
      "text": "实现原理",
      "top": 564.0,
      "left": 257.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03"
      }
    },
    {
      "id": "p032-t0087",
      "page": 32,
      "ordinal": 87,
      "text": "1. WaitGroup ",
      "top": 614.0,
      "left": 129.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0088",
      "page": 32,
      "ordinal": 88,
      "text": "主要维护了",
      "top": 614.0,
      "left": 223.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0089",
      "page": 32,
      "ordinal": 89,
      "text": " 2 ",
      "top": 614.0,
      "left": 296.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0090",
      "page": 32,
      "ordinal": 90,
      "text": "个计数器，一个是请求计数器",
      "top": 614.0,
      "left": 312.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0091",
      "page": 32,
      "ordinal": 91,
      "text": " v",
      "top": 614.0,
      "left": 502.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0092",
      "page": 32,
      "ordinal": 92,
      "text": "，一个是等待计数",
      "top": 614.0,
      "left": 514.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0094",
      "page": 32,
      "ordinal": 94,
      "text": "器",
      "top": 614.0,
      "left": 634.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0095",
      "page": 32,
      "ordinal": 95,
      "text": " w",
      "top": 614.0,
      "left": 649.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0096",
      "page": 32,
      "ordinal": 96,
      "text": "，二者组成一个",
      "top": 614.0,
      "left": 664.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0098",
      "page": 32,
      "ordinal": 98,
      "text": "64bit ",
      "top": 638.0,
      "left": 146.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0099",
      "page": 32,
      "ordinal": 99,
      "text": "的值，请求计数器占高",
      "top": 638.0,
      "left": 184.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0100",
      "page": 32,
      "ordinal": 100,
      "text": " 32bit",
      "top": 638.0,
      "left": 330.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0101",
      "page": 32,
      "ordinal": 101,
      "text": "，等待计数器占低",
      "top": 638.0,
      "left": 368.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0102",
      "page": 32,
      "ordinal": 102,
      "text": " 32bit",
      "top": 638.0,
      "left": 485.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0103",
      "page": 32,
      "ordinal": 103,
      "text": "。",
      "top": 638.0,
      "left": 524.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b001"
      }
    },
    {
      "id": "p032-t0105",
      "page": 32,
      "ordinal": 105,
      "text": "2. ",
      "top": 669.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0106",
      "page": 32,
      "ordinal": 106,
      "text": "每次",
      "top": 669.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0107",
      "page": 32,
      "ordinal": 107,
      "text": " Add ",
      "top": 669.0,
      "left": 175.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0108",
      "page": 32,
      "ordinal": 108,
      "text": "执行，请求计数器",
      "top": 669.0,
      "left": 210.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0109",
      "page": 32,
      "ordinal": 109,
      "text": " v ",
      "top": 669.0,
      "left": 327.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0110",
      "page": 32,
      "ordinal": 110,
      "text": "加",
      "top": 669.0,
      "left": 341.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0111",
      "page": 32,
      "ordinal": 111,
      "text": " 1",
      "top": 669.0,
      "left": 356.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0112",
      "page": 32,
      "ordinal": 112,
      "text": "，",
      "top": 669.0,
      "left": 368.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0113",
      "page": 32,
      "ordinal": 113,
      "text": "Done ",
      "top": 669.0,
      "left": 383.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0114",
      "page": 32,
      "ordinal": 114,
      "text": "方法执行，等待计数器减",
      "top": 669.0,
      "left": 423.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0115",
      "page": 32,
      "ordinal": 115,
      "text": " 1",
      "top": 669.0,
      "left": 584.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0116",
      "page": 32,
      "ordinal": 116,
      "text": "，",
      "top": 669.0,
      "left": 596.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0117",
      "page": 32,
      "ordinal": 117,
      "text": "v ",
      "top": 669.0,
      "left": 611.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0118",
      "page": 32,
      "ordinal": 118,
      "text": "为",
      "top": 669.0,
      "left": 622.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0119",
      "page": 32,
      "ordinal": 119,
      "text": " 0 ",
      "top": 669.0,
      "left": 637.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0120",
      "page": 32,
      "ordinal": 120,
      "text": "时通过信号量唤醒",
      "top": 669.0,
      "left": 653.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0122",
      "page": 32,
      "ordinal": 122,
      "text": "Wait()  ",
      "top": 692.0,
      "left": 146.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h03",
        "heading_id": "p032-h03",
        "block_id": "q-p032-h03-b002"
      }
    },
    {
      "id": "p032-t0123",
      "page": 32,
      "ordinal": 123,
      "text": "什么是",
      "top": 726.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04"
      }
    },
    {
      "id": "p032-t0124",
      "page": 32,
      "ordinal": 124,
      "text": " sync.Once  ",
      "top": 726.0,
      "left": 189.0,
      "width": 150.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04"
      }
    },
    {
      "id": "p032-t0126",
      "page": 32,
      "ordinal": 126,
      "text": "1. Once ",
      "top": 777.0,
      "left": 129.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b001"
      }
    },
    {
      "id": "p032-t0127",
      "page": 32,
      "ordinal": 127,
      "text": "可以用来执行且仅仅执行一次动作，常常用于单例对象的初始化场",
      "top": 777.0,
      "left": 185.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b001"
      }
    },
    {
      "id": "p032-t0129",
      "page": 32,
      "ordinal": 129,
      "text": "景。",
      "top": 777.0,
      "left": 613.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b001"
      }
    },
    {
      "id": "p032-t0131",
      "page": 32,
      "ordinal": 131,
      "text": "2. Once ",
      "top": 807.0,
      "left": 129.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b002"
      }
    },
    {
      "id": "p032-t0132",
      "page": 32,
      "ordinal": 132,
      "text": "常常用来初始化单例资源，或者并发访问只需初始化一次的共享资",
      "top": 807.0,
      "left": 185.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b002"
      }
    },
    {
      "id": "p032-t0134",
      "page": 32,
      "ordinal": 134,
      "text": "源，或者在测试的时候初",
      "top": 807.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b002"
      }
    },
    {
      "id": "p032-t0135",
      "page": 32,
      "ordinal": 135,
      "text": "始化一次测试资源。",
      "top": 831.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b002"
      }
    },
    {
      "id": "p032-t0137",
      "page": 32,
      "ordinal": 137,
      "text": "3. sync.Once ",
      "top": 861.0,
      "left": 129.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0138",
      "page": 32,
      "ordinal": 138,
      "text": "只暴露了一个方法",
      "top": 861.0,
      "left": 219.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0139",
      "page": 32,
      "ordinal": 139,
      "text": " Do",
      "top": 861.0,
      "left": 336.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0140",
      "page": 32,
      "ordinal": 140,
      "text": "，你可以多次调用",
      "top": 861.0,
      "left": 359.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0141",
      "page": 32,
      "ordinal": 141,
      "text": " Do ",
      "top": 861.0,
      "left": 476.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0142",
      "page": 32,
      "ordinal": 142,
      "text": "方法，但是只有第",
      "top": 861.0,
      "left": 503.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0144",
      "page": 32,
      "ordinal": 144,
      "text": "一次调用",
      "top": 861.0,
      "left": 624.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0145",
      "page": 32,
      "ordinal": 145,
      "text": " Do ",
      "top": 861.0,
      "left": 683.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0146",
      "page": 32,
      "ordinal": 146,
      "text": "方法时",
      "top": 861.0,
      "left": 710.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0147",
      "page": 32,
      "ordinal": 147,
      "text": " f ",
      "top": 861.0,
      "left": 754.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0148",
      "page": 32,
      "ordinal": 148,
      "text": "参",
      "top": 861.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0149",
      "page": 32,
      "ordinal": 149,
      "text": "数才会执行，这里的",
      "top": 885.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0150",
      "page": 32,
      "ordinal": 150,
      "text": " f ",
      "top": 885.0,
      "left": 277.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0151",
      "page": 32,
      "ordinal": 151,
      "text": "是一个无参数无返回值",
      "top": 885.0,
      "left": 290.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0153",
      "page": 32,
      "ordinal": 153,
      "text": "的函数。",
      "top": 885.0,
      "left": 440.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h04",
        "heading_id": "p032-h04",
        "block_id": "q-p032-h04-b003"
      }
    },
    {
      "id": "p032-t0155",
      "page": 32,
      "ordinal": 155,
      "text": "什么操作叫做原子操作",
      "top": 920.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05"
      }
    },
    {
      "id": "p032-t0159",
      "page": 32,
      "ordinal": 159,
      "text": "原子操作即是进行过程中不能被中断的操作，针对某个值的原子操作在被进行",
      "top": 971.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0161",
      "page": 32,
      "ordinal": 161,
      "text": "的过程中，",
      "top": 971.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0162",
      "page": 32,
      "ordinal": 162,
      "text": "CPU ",
      "top": 971.0,
      "left": 690.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0163",
      "page": 32,
      "ordinal": 163,
      "text": "绝不会再",
      "top": 971.0,
      "left": 722.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0164",
      "page": 32,
      "ordinal": 164,
      "text": "去进行其他的针对该值的操作。为了实现这样的严谨",
      "top": 994.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0166",
      "page": 32,
      "ordinal": 166,
      "text": "性，原子操作仅会由一个独立的",
      "top": 994.0,
      "left": 452.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0167",
      "page": 32,
      "ordinal": 167,
      "text": " CPU ",
      "top": 994.0,
      "left": 657.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0168",
      "page": 32,
      "ordinal": 168,
      "text": "指令代表和完",
      "top": 994.0,
      "left": 693.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0169",
      "page": 32,
      "ordinal": 169,
      "text": "成。原子操作是无锁的，常",
      "top": 1017.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0171",
      "page": 32,
      "ordinal": 171,
      "text": "常直接通过",
      "top": 1017.0,
      "left": 291.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0172",
      "page": 32,
      "ordinal": 172,
      "text": " CPU ",
      "top": 1017.0,
      "left": 364.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0173",
      "page": 32,
      "ordinal": 173,
      "text": "指令直接实现。",
      "top": 1017.0,
      "left": 400.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0175",
      "page": 32,
      "ordinal": 175,
      "text": "事实上，其它同步技术的实现常常依赖于",
      "top": 1017.0,
      "left": 507.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0176",
      "page": 32,
      "ordinal": 176,
      "text": "原",
      "top": 1040.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0178",
      "page": 32,
      "ordinal": 178,
      "text": "子操作。",
      "top": 1040.0,
      "left": 130.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h05",
        "heading_id": "p032-h05",
        "block_id": "q-p032-h05-b001"
      }
    },
    {
      "id": "p032-t0180",
      "page": 32,
      "ordinal": 180,
      "text": "原子操作和锁的区别",
      "top": 1075.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06"
      }
    },
    {
      "id": "p032-t0184",
      "page": 32,
      "ordinal": 184,
      "text": "原子操作由底层硬件支持，而锁则由操作系统的调度器实现。",
      "top": 1126.0,
      "left": 116.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0186",
      "page": 32,
      "ordinal": 186,
      "text": "锁应当用来保护一段逻辑，对于一个变量",
      "top": 1126.0,
      "left": 514.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0187",
      "page": 32,
      "ordinal": 187,
      "text": "更新的保护。",
      "top": 1149.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0189",
      "page": 32,
      "ordinal": 189,
      "text": "原子操作通常执行上会更有效率，并且更能利用计算机多核的优势，如果要更",
      "top": 1149.0,
      "left": 203.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0191",
      "page": 32,
      "ordinal": 191,
      "text": "新的是一个",
      "top": 1149.0,
      "left": 704.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0192",
      "page": 32,
      "ordinal": 192,
      "text": "复合对象，则应当使用",
      "top": 1172.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0193",
      "page": 32,
      "ordinal": 193,
      "text": " atomic.Value ",
      "top": 1172.0,
      "left": 258.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0194",
      "page": 32,
      "ordinal": 194,
      "text": "封装好的实现",
      "top": 1172.0,
      "left": 354.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p032-h06",
        "heading_id": "p032-h06",
        "block_id": "q-p032-h06-b001"
      }
    },
    {
      "id": "p032-t0196",
      "page": 32,
      "ordinal": 196,
      "text": "c.L.Lock()",
      "top": 236.0,
      "left": 126.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p032-t0197",
      "page": 32,
      "ordinal": 197,
      "text": "for !condition() {",
      "top": 258.0,
      "left": 126.0,
      "width": 143.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p032-t0198",
      "page": 32,
      "ordinal": 198,
      "text": " c.Wait()",
      "top": 278.0,
      "left": 126.0,
      "width": 71.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p032-t0199",
      "page": 32,
      "ordinal": 199,
      "text": "}",
      "top": 299.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p032-t0200",
      "page": 32,
      "ordinal": 200,
      "text": "... make use of condition ...",
      "top": 321.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p032-t0201",
      "page": 32,
      "ordinal": 201,
      "text": "c.L.Unlock()",
      "top": 341.0,
      "left": 126.0,
      "width": 95.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/02-go-concurrency#q-p032-h01",
        "heading_id": "p032-h01",
        "block_id": "q-p032-h01-b002"
      }
    },
    {
      "id": "p033-t0001",
      "page": 33,
      "ordinal": 1,
      "text": "什么是",
      "top": 40.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01"
      }
    },
    {
      "id": "p033-t0002",
      "page": 33,
      "ordinal": 2,
      "text": " CAS  ",
      "top": 40.0,
      "left": 189.0,
      "width": 68.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01"
      }
    },
    {
      "id": "p033-t0004",
      "page": 33,
      "ordinal": 4,
      "text": " CAS ",
      "top": 91.0,
      "left": 112.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0005",
      "page": 33,
      "ordinal": 5,
      "text": "的全称为",
      "top": 91.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0006",
      "page": 33,
      "ordinal": 6,
      "text": " Compare And Swap",
      "top": 91.0,
      "left": 204.0,
      "width": 138.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0007",
      "page": 33,
      "ordinal": 7,
      "text": "，直译就是比较交换。是一条",
      "top": 91.0,
      "left": 342.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0008",
      "page": 33,
      "ordinal": 8,
      "text": " CPU ",
      "top": 91.0,
      "left": 533.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0009",
      "page": 33,
      "ordinal": 9,
      "text": "的原子指",
      "top": 91.0,
      "left": 569.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0011",
      "page": 33,
      "ordinal": 11,
      "text": "令，其作用是让",
      "top": 91.0,
      "left": 631.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0012",
      "page": 33,
      "ordinal": 12,
      "text": " CPU ",
      "top": 91.0,
      "left": 733.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0013",
      "page": 33,
      "ordinal": 13,
      "text": "先进行比较两个值是否相等，然后原子地更新某个位置的",
      "top": 114.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0015",
      "page": 33,
      "ordinal": 15,
      "text": "值，其实现方式是给予硬件平台的汇编指令，",
      "top": 114.0,
      "left": 481.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0016",
      "page": 33,
      "ordinal": 16,
      "text": "在",
      "top": 137.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0017",
      "page": 33,
      "ordinal": 17,
      "text": " intel ",
      "top": 137.0,
      "left": 126.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0018",
      "page": 33,
      "ordinal": 18,
      "text": "的",
      "top": 137.0,
      "left": 164.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0019",
      "page": 33,
      "ordinal": 19,
      "text": " CPU ",
      "top": 137.0,
      "left": 178.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0020",
      "page": 33,
      "ordinal": 20,
      "text": "中，使用的",
      "top": 137.0,
      "left": 215.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0021",
      "page": 33,
      "ordinal": 21,
      "text": " cmpxchg ",
      "top": 137.0,
      "left": 288.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0022",
      "page": 33,
      "ordinal": 22,
      "text": "指令，就是说",
      "top": 137.0,
      "left": 356.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0023",
      "page": 33,
      "ordinal": 23,
      "text": " CAS ",
      "top": 137.0,
      "left": 444.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0024",
      "page": 33,
      "ordinal": 24,
      "text": "是靠硬件实现的，从而在硬件层面提升效率。",
      "top": 137.0,
      "left": 478.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0026",
      "page": 33,
      "ordinal": 26,
      "text": "简述过程是这样：",
      "top": 161.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0028",
      "page": 33,
      "ordinal": 28,
      "text": "假设包含",
      "top": 184.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0029",
      "page": 33,
      "ordinal": 29,
      "text": " 3 ",
      "top": 184.0,
      "left": 174.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0030",
      "page": 33,
      "ordinal": 30,
      "text": "个参数内存位置",
      "top": 184.0,
      "left": 190.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0031",
      "page": 33,
      "ordinal": 31,
      "text": "(V)",
      "top": 184.0,
      "left": 292.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0032",
      "page": 33,
      "ordinal": 32,
      "text": "、预期原值",
      "top": 184.0,
      "left": 310.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0033",
      "page": 33,
      "ordinal": 33,
      "text": "(A)",
      "top": 184.0,
      "left": 383.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0034",
      "page": 33,
      "ordinal": 34,
      "text": "和新值",
      "top": 184.0,
      "left": 401.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0035",
      "page": 33,
      "ordinal": 35,
      "text": "(B)",
      "top": 184.0,
      "left": 445.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0036",
      "page": 33,
      "ordinal": 36,
      "text": "。",
      "top": 184.0,
      "left": 463.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0037",
      "page": 33,
      "ordinal": 37,
      "text": "V ",
      "top": 184.0,
      "left": 477.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0038",
      "page": 33,
      "ordinal": 38,
      "text": "表示要更新变量的",
      "top": 184.0,
      "left": 490.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0040",
      "page": 33,
      "ordinal": 40,
      "text": "值，",
      "top": 184.0,
      "left": 611.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0041",
      "page": 33,
      "ordinal": 41,
      "text": "E ",
      "top": 184.0,
      "left": 640.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0042",
      "page": 33,
      "ordinal": 42,
      "text": "表示预期值，",
      "top": 184.0,
      "left": 652.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0043",
      "page": 33,
      "ordinal": 43,
      "text": "N ",
      "top": 184.0,
      "left": 740.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0044",
      "page": 33,
      "ordinal": 44,
      "text": "表",
      "top": 184.0,
      "left": 754.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0045",
      "page": 33,
      "ordinal": 45,
      "text": "示新值。仅当",
      "top": 208.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0046",
      "page": 33,
      "ordinal": 46,
      "text": " V ",
      "top": 208.0,
      "left": 200.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0047",
      "page": 33,
      "ordinal": 47,
      "text": "值等于",
      "top": 208.0,
      "left": 216.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0048",
      "page": 33,
      "ordinal": 48,
      "text": " E ",
      "top": 208.0,
      "left": 260.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0049",
      "page": 33,
      "ordinal": 49,
      "text": "值时，才会将",
      "top": 208.0,
      "left": 275.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0050",
      "page": 33,
      "ordinal": 50,
      "text": " V ",
      "top": 208.0,
      "left": 363.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0051",
      "page": 33,
      "ordinal": 51,
      "text": "的值设为",
      "top": 208.0,
      "left": 379.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0052",
      "page": 33,
      "ordinal": 52,
      "text": " N",
      "top": 208.0,
      "left": 438.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0053",
      "page": 33,
      "ordinal": 53,
      "text": "，",
      "top": 208.0,
      "left": 453.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0055",
      "page": 33,
      "ordinal": 55,
      "text": "如果",
      "top": 208.0,
      "left": 471.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0056",
      "page": 33,
      "ordinal": 56,
      "text": " V ",
      "top": 208.0,
      "left": 500.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0057",
      "page": 33,
      "ordinal": 57,
      "text": "值和",
      "top": 208.0,
      "left": 517.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0058",
      "page": 33,
      "ordinal": 58,
      "text": " E ",
      "top": 208.0,
      "left": 546.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0059",
      "page": 33,
      "ordinal": 59,
      "text": "值不同，则说明已经有其他线程在",
      "top": 208.0,
      "left": 562.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0060",
      "page": 33,
      "ordinal": 60,
      "text": "做更新，则当前线程什么都不",
      "top": 231.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0062",
      "page": 33,
      "ordinal": 62,
      "text": "做，最后",
      "top": 231.0,
      "left": 306.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0063",
      "page": 33,
      "ordinal": 63,
      "text": " CAS ",
      "top": 231.0,
      "left": 364.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0064",
      "page": 33,
      "ordinal": 64,
      "text": "返回当前",
      "top": 231.0,
      "left": 398.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0065",
      "page": 33,
      "ordinal": 65,
      "text": " V ",
      "top": 231.0,
      "left": 457.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0066",
      "page": 33,
      "ordinal": 66,
      "text": "的真实值。",
      "top": 231.0,
      "left": 473.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0067",
      "page": 33,
      "ordinal": 67,
      "text": "CAS ",
      "top": 231.0,
      "left": 546.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0068",
      "page": 33,
      "ordinal": 68,
      "text": "操作时抱着乐观的态度进行的，",
      "top": 231.0,
      "left": 577.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0069",
      "page": 33,
      "ordinal": 69,
      "text": "它总",
      "top": 254.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0071",
      "page": 33,
      "ordinal": 71,
      "text": "是认为自己可以成功完成操作。基于这样的原理，",
      "top": 254.0,
      "left": 145.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0072",
      "page": 33,
      "ordinal": 72,
      "text": "CAS ",
      "top": 254.0,
      "left": 467.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0073",
      "page": 33,
      "ordinal": 73,
      "text": "操作即使没有锁，也可",
      "top": 254.0,
      "left": 497.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0075",
      "page": 33,
      "ordinal": 75,
      "text": "以发现其他线程对于",
      "top": 254.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0076",
      "page": 33,
      "ordinal": 76,
      "text": "当前线程的干扰。",
      "top": 278.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h01",
        "heading_id": "p033-h01",
        "block_id": "q-p033-h01-b001"
      }
    },
    {
      "id": "p033-t0078",
      "page": 33,
      "ordinal": 78,
      "text": "sync.Pool ",
      "top": 312.0,
      "left": 112.0,
      "width": 127.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02"
      }
    },
    {
      "id": "p033-t0079",
      "page": 33,
      "ordinal": 79,
      "text": "有什么用",
      "top": 312.0,
      "left": 239.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02"
      }
    },
    {
      "id": "p033-t0083",
      "page": 33,
      "ordinal": 83,
      "text": "对于很多需要重复分配、回收内存的地方，",
      "top": 363.0,
      "left": 116.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0084",
      "page": 33,
      "ordinal": 84,
      "text": "sync.Pool ",
      "top": 363.0,
      "left": 393.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0085",
      "page": 33,
      "ordinal": 85,
      "text": "是一个很好的选择。频",
      "top": 363.0,
      "left": 462.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0087",
      "page": 33,
      "ordinal": 87,
      "text": "繁地分配、回收内存会给",
      "top": 363.0,
      "left": 612.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0089",
      "page": 33,
      "ordinal": 89,
      "text": "GC ",
      "top": 387.0,
      "left": 112.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0090",
      "page": 33,
      "ordinal": 90,
      "text": "带来一定的负担，严重的时候会引起",
      "top": 387.0,
      "left": 135.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0091",
      "page": 33,
      "ordinal": 91,
      "text": " CPU ",
      "top": 387.0,
      "left": 369.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0092",
      "page": 33,
      "ordinal": 92,
      "text": "的毛",
      "top": 387.0,
      "left": 406.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0094",
      "page": 33,
      "ordinal": 94,
      "text": "刺。而",
      "top": 387.0,
      "left": 439.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0095",
      "page": 33,
      "ordinal": 95,
      "text": " sync.Pool ",
      "top": 387.0,
      "left": 483.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0096",
      "page": 33,
      "ordinal": 96,
      "text": "可以将暂时将不用的对象缓存起",
      "top": 387.0,
      "left": 555.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0097",
      "page": 33,
      "ordinal": 97,
      "text": "来，待下次需要的时候直",
      "top": 409.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0099",
      "page": 33,
      "ordinal": 99,
      "text": "接使用，不用再次经过内存分配，复用对象的内存，减轻",
      "top": 409.0,
      "left": 276.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0100",
      "page": 33,
      "ordinal": 100,
      "text": " GC ",
      "top": 409.0,
      "left": 642.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0101",
      "page": 33,
      "ordinal": 101,
      "text": "的压力，提升系",
      "top": 409.0,
      "left": 670.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0103",
      "page": 33,
      "ordinal": 103,
      "text": "统的性能。",
      "top": 433.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/02-go-concurrency#q-p033-h02",
        "heading_id": "p033-h02",
        "block_id": "q-p033-h02-b001"
      }
    },
    {
      "id": "p033-t0105",
      "page": 33,
      "ordinal": 105,
      "text": "进阶",
      "top": 466.0,
      "left": 112.0,
      "width": 66.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h03"
      }
    },
    {
      "id": "p033-t0106",
      "page": 33,
      "ordinal": 106,
      "text": "-Go Runtime  ",
      "top": 466.0,
      "left": 178.0,
      "width": 221.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h03"
      }
    },
    {
      "id": "p033-t0108",
      "page": 33,
      "ordinal": 108,
      "text": "Goroutine ",
      "top": 523.0,
      "left": 112.0,
      "width": 136.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04"
      }
    },
    {
      "id": "p033-t0109",
      "page": 33,
      "ordinal": 109,
      "text": "定义",
      "top": 523.0,
      "left": 248.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04"
      }
    },
    {
      "id": "p033-t0112",
      "page": 33,
      "ordinal": 112,
      "text": " Golang ",
      "top": 573.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0113",
      "page": 33,
      "ordinal": 113,
      "text": "在语言级别支持协程，称之为",
      "top": 573.0,
      "left": 168.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0114",
      "page": 33,
      "ordinal": 114,
      "text": " Goroutine",
      "top": 573.0,
      "left": 358.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0115",
      "page": 33,
      "ordinal": 115,
      "text": "。",
      "top": 573.0,
      "left": 431.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0116",
      "page": 33,
      "ordinal": 116,
      "text": "Golang ",
      "top": 573.0,
      "left": 446.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0117",
      "page": 33,
      "ordinal": 117,
      "text": "标准库提供的所有",
      "top": 573.0,
      "left": 498.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0119",
      "page": 33,
      "ordinal": 119,
      "text": "系统调用操作",
      "top": 573.0,
      "left": 618.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0120",
      "page": 33,
      "ordinal": 120,
      "text": "(",
      "top": 573.0,
      "left": 706.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0121",
      "page": 33,
      "ordinal": 121,
      "text": "包括所有",
      "top": 573.0,
      "left": 710.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0122",
      "page": 33,
      "ordinal": 122,
      "text": "的同步",
      "top": 597.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0123",
      "page": 33,
      "ordinal": 123,
      "text": " I/O ",
      "top": 597.0,
      "left": 156.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0124",
      "page": 33,
      "ordinal": 124,
      "text": "操作",
      "top": 597.0,
      "left": 184.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0125",
      "page": 33,
      "ordinal": 125,
      "text": ")",
      "top": 597.0,
      "left": 213.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0126",
      "page": 33,
      "ordinal": 126,
      "text": "，都会出让",
      "top": 597.0,
      "left": 218.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0127",
      "page": 33,
      "ordinal": 127,
      "text": " CPU ",
      "top": 597.0,
      "left": 291.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0128",
      "page": 33,
      "ordinal": 128,
      "text": "给其他",
      "top": 597.0,
      "left": 327.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0129",
      "page": 33,
      "ordinal": 129,
      "text": " Goroutine",
      "top": 597.0,
      "left": 371.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0130",
      "page": 33,
      "ordinal": 130,
      "text": "。这让",
      "top": 597.0,
      "left": 444.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0131",
      "page": 33,
      "ordinal": 131,
      "text": " Goroutine ",
      "top": 597.0,
      "left": 488.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0132",
      "page": 33,
      "ordinal": 132,
      "text": "的切换管理不依赖于系统的线程",
      "top": 597.0,
      "left": 565.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0133",
      "page": 33,
      "ordinal": 133,
      "text": "和进程，也不依",
      "top": 621.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0135",
      "page": 33,
      "ordinal": 135,
      "text": "赖于",
      "top": 621.0,
      "left": 218.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0136",
      "page": 33,
      "ordinal": 136,
      "text": " CPU ",
      "top": 621.0,
      "left": 247.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0137",
      "page": 33,
      "ordinal": 137,
      "text": "的核心数量，而是交给",
      "top": 621.0,
      "left": 283.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0138",
      "page": 33,
      "ordinal": 138,
      "text": " Golang ",
      "top": 621.0,
      "left": 430.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0139",
      "page": 33,
      "ordinal": 139,
      "text": "的运行时统一调度。",
      "top": 621.0,
      "left": 486.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h04",
        "heading_id": "p033-h04",
        "block_id": "q-p033-h04-b001"
      }
    },
    {
      "id": "p033-t0141",
      "page": 33,
      "ordinal": 141,
      "text": "GMP ",
      "top": 654.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05"
      }
    },
    {
      "id": "p033-t0142",
      "page": 33,
      "ordinal": 142,
      "text": "指的是什么",
      "top": 654.0,
      "left": 177.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05"
      }
    },
    {
      "id": "p033-t0145",
      "page": 33,
      "ordinal": 145,
      "text": " G",
      "top": 705.0,
      "left": 112.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0146",
      "page": 33,
      "ordinal": 146,
      "text": "（",
      "top": 705.0,
      "left": 126.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0147",
      "page": 33,
      "ordinal": 147,
      "text": "Goroutine",
      "top": 705.0,
      "left": 141.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0148",
      "page": 33,
      "ordinal": 148,
      "text": "）：我们所说的协程，为用户级的轻量级线程，每个",
      "top": 705.0,
      "left": 210.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0149",
      "page": 33,
      "ordinal": 149,
      "text": " Goroutine ",
      "top": 705.0,
      "left": 547.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0150",
      "page": 33,
      "ordinal": 150,
      "text": "对象中的",
      "top": 705.0,
      "left": 623.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0151",
      "page": 33,
      "ordinal": 151,
      "text": " sched ",
      "top": 705.0,
      "left": 682.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0152",
      "page": 33,
      "ordinal": 152,
      "text": "保存着",
      "top": 705.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0153",
      "page": 33,
      "ordinal": 153,
      "text": "其上下文信息。",
      "top": 729.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0154",
      "page": 33,
      "ordinal": 154,
      "text": "M",
      "top": 752.0,
      "left": 112.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0155",
      "page": 33,
      "ordinal": 155,
      "text": "（",
      "top": 752.0,
      "left": 125.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0156",
      "page": 33,
      "ordinal": 156,
      "text": "Machine",
      "top": 752.0,
      "left": 140.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0157",
      "page": 33,
      "ordinal": 157,
      "text": "）：对内核级线程的封装，数量对应真实的",
      "top": 752.0,
      "left": 198.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0158",
      "page": 33,
      "ordinal": 158,
      "text": " CPU ",
      "top": 752.0,
      "left": 476.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0159",
      "page": 33,
      "ordinal": 159,
      "text": "数（真正干活的对",
      "top": 752.0,
      "left": 512.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0161",
      "page": 33,
      "ordinal": 161,
      "text": "象）。",
      "top": 752.0,
      "left": 633.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0163",
      "page": 33,
      "ordinal": 163,
      "text": "P",
      "top": 776.0,
      "left": 112.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0164",
      "page": 33,
      "ordinal": 164,
      "text": "（",
      "top": 776.0,
      "left": 121.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0165",
      "page": 33,
      "ordinal": 165,
      "text": "Processor",
      "top": 776.0,
      "left": 135.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0166",
      "page": 33,
      "ordinal": 166,
      "text": "）：即为",
      "top": 776.0,
      "left": 203.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0167",
      "page": 33,
      "ordinal": 167,
      "text": " G ",
      "top": 776.0,
      "left": 261.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0168",
      "page": 33,
      "ordinal": 168,
      "text": "和",
      "top": 776.0,
      "left": 279.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0169",
      "page": 33,
      "ordinal": 169,
      "text": " M ",
      "top": 776.0,
      "left": 294.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0170",
      "page": 33,
      "ordinal": 170,
      "text": "的调度对象，用来调度",
      "top": 776.0,
      "left": 315.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0171",
      "page": 33,
      "ordinal": 171,
      "text": " G ",
      "top": 776.0,
      "left": 461.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0172",
      "page": 33,
      "ordinal": 172,
      "text": "和",
      "top": 776.0,
      "left": 479.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0173",
      "page": 33,
      "ordinal": 173,
      "text": " M ",
      "top": 776.0,
      "left": 494.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0174",
      "page": 33,
      "ordinal": 174,
      "text": "之间的关联关系，",
      "top": 776.0,
      "left": 515.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0176",
      "page": 33,
      "ordinal": 176,
      "text": "其数量可通过",
      "top": 776.0,
      "left": 636.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0178",
      "page": 33,
      "ordinal": 178,
      "text": "GOMAXPROCS()",
      "top": 798.0,
      "left": 112.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0179",
      "page": 33,
      "ordinal": 179,
      "text": "来设置，默认为核心数。",
      "top": 798.0,
      "left": 220.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h05",
        "heading_id": "p033-h05",
        "block_id": "q-p033-h05-b001"
      }
    },
    {
      "id": "p033-t0181",
      "page": 33,
      "ordinal": 181,
      "text": "1.0 ",
      "top": 833.0,
      "left": 112.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06"
      }
    },
    {
      "id": "p033-t0182",
      "page": 33,
      "ordinal": 182,
      "text": "之前",
      "top": 833.0,
      "left": 155.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06"
      }
    },
    {
      "id": "p033-t0183",
      "page": 33,
      "ordinal": 183,
      "text": " GM ",
      "top": 833.0,
      "left": 206.0,
      "width": 56.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06"
      }
    },
    {
      "id": "p033-t0184",
      "page": 33,
      "ordinal": 184,
      "text": "调度模型",
      "top": 833.0,
      "left": 262.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06"
      }
    },
    {
      "id": "p033-t0188",
      "page": 33,
      "ordinal": 188,
      "text": "调度器把",
      "top": 884.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0189",
      "page": 33,
      "ordinal": 189,
      "text": " G ",
      "top": 884.0,
      "left": 174.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0190",
      "page": 33,
      "ordinal": 190,
      "text": "都分配到",
      "top": 884.0,
      "left": 192.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0191",
      "page": 33,
      "ordinal": 191,
      "text": " M ",
      "top": 884.0,
      "left": 251.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0192",
      "page": 33,
      "ordinal": 192,
      "text": "上，不同的",
      "top": 884.0,
      "left": 272.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0193",
      "page": 33,
      "ordinal": 193,
      "text": " G ",
      "top": 884.0,
      "left": 345.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0194",
      "page": 33,
      "ordinal": 194,
      "text": "在不同的",
      "top": 884.0,
      "left": 363.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0195",
      "page": 33,
      "ordinal": 195,
      "text": " M ",
      "top": 884.0,
      "left": 421.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0196",
      "page": 33,
      "ordinal": 196,
      "text": "并发运行时，都需要向系统申",
      "top": 884.0,
      "left": 442.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0198",
      "page": 33,
      "ordinal": 198,
      "text": "请资源，比如堆栈内",
      "top": 884.0,
      "left": 636.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0199",
      "page": 33,
      "ordinal": 199,
      "text": "存等，因为资源是全局的，就会因为资源竞争照成很多性",
      "top": 908.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0201",
      "page": 33,
      "ordinal": 201,
      "text": "能损耗。为了解决这一的问题",
      "top": 908.0,
      "left": 481.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0202",
      "page": 33,
      "ordinal": 202,
      "text": " go ",
      "top": 908.0,
      "left": 671.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0203",
      "page": 33,
      "ordinal": 203,
      "text": "从",
      "top": 908.0,
      "left": 696.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0204",
      "page": 33,
      "ordinal": 204,
      "text": " 1.1 ",
      "top": 908.0,
      "left": 710.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0205",
      "page": 33,
      "ordinal": 205,
      "text": "版本",
      "top": 908.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0206",
      "page": 33,
      "ordinal": 206,
      "text": "引入，在运行时系统的时候加入",
      "top": 931.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0207",
      "page": 33,
      "ordinal": 207,
      "text": " p ",
      "top": 931.0,
      "left": 317.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0208",
      "page": 33,
      "ordinal": 208,
      "text": "对象，让",
      "top": 931.0,
      "left": 333.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0209",
      "page": 33,
      "ordinal": 209,
      "text": " P ",
      "top": 931.0,
      "left": 392.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0210",
      "page": 33,
      "ordinal": 210,
      "text": "去管理这个",
      "top": 931.0,
      "left": 408.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0211",
      "page": 33,
      "ordinal": 211,
      "text": " G ",
      "top": 931.0,
      "left": 481.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0212",
      "page": 33,
      "ordinal": 212,
      "text": "对象，",
      "top": 931.0,
      "left": 499.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0213",
      "page": 33,
      "ordinal": 213,
      "text": "M ",
      "top": 931.0,
      "left": 543.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0214",
      "page": 33,
      "ordinal": 214,
      "text": "想要运行",
      "top": 931.0,
      "left": 560.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0215",
      "page": 33,
      "ordinal": 215,
      "text": " G",
      "top": 931.0,
      "left": 619.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0216",
      "page": 33,
      "ordinal": 216,
      "text": "，必须绑定",
      "top": 931.0,
      "left": 633.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0217",
      "page": 33,
      "ordinal": 217,
      "text": " P",
      "top": 931.0,
      "left": 706.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0218",
      "page": 33,
      "ordinal": 218,
      "text": "，才能运",
      "top": 931.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0219",
      "page": 33,
      "ordinal": 219,
      "text": "行",
      "top": 955.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0220",
      "page": 33,
      "ordinal": 220,
      "text": " P ",
      "top": 955.0,
      "left": 126.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0221",
      "page": 33,
      "ordinal": 221,
      "text": "所管理",
      "top": 955.0,
      "left": 143.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0223",
      "page": 33,
      "ordinal": 223,
      "text": "的",
      "top": 955.0,
      "left": 190.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0224",
      "page": 33,
      "ordinal": 224,
      "text": " G",
      "top": 955.0,
      "left": 205.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0225",
      "page": 33,
      "ordinal": 225,
      "text": "。",
      "top": 955.0,
      "left": 220.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0226",
      "page": 33,
      "ordinal": 226,
      "text": " GM ",
      "top": 955.0,
      "left": 234.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0227",
      "page": 33,
      "ordinal": 227,
      "text": "调度存在的问题：",
      "top": 955.0,
      "left": 266.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0228",
      "page": 33,
      "ordinal": 228,
      "text": " 1",
      "top": 955.0,
      "left": 383.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0229",
      "page": 33,
      "ordinal": 229,
      "text": "．单一全局互斥锁（",
      "top": 955.0,
      "left": 395.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0230",
      "page": 33,
      "ordinal": 230,
      "text": "Sched.Lock",
      "top": 955.0,
      "left": 526.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0231",
      "page": 33,
      "ordinal": 231,
      "text": "）和集中状态存储",
      "top": 955.0,
      "left": 602.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0232",
      "page": 33,
      "ordinal": 232,
      "text": " 2",
      "top": 955.0,
      "left": 719.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0233",
      "page": 33,
      "ordinal": 233,
      "text": "．",
      "top": 955.0,
      "left": 732.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0234",
      "page": 33,
      "ordinal": 234,
      "text": "Goroutine ",
      "top": 977.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0235",
      "page": 33,
      "ordinal": 235,
      "text": "传递问题（",
      "top": 977.0,
      "left": 185.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0236",
      "page": 33,
      "ordinal": 236,
      "text": "M ",
      "top": 977.0,
      "left": 258.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0237",
      "page": 33,
      "ordinal": 237,
      "text": "经常在",
      "top": 977.0,
      "left": 275.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0238",
      "page": 33,
      "ordinal": 238,
      "text": " M ",
      "top": 977.0,
      "left": 319.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0239",
      "page": 33,
      "ordinal": 239,
      "text": "之间传递",
      "top": 977.0,
      "left": 340.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0240",
      "page": 33,
      "ordinal": 240,
      "text": "”",
      "top": 977.0,
      "left": 398.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0241",
      "page": 33,
      "ordinal": 241,
      "text": "可运行",
      "top": 977.0,
      "left": 403.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0242",
      "page": 33,
      "ordinal": 242,
      "text": "”",
      "top": 977.0,
      "left": 447.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0243",
      "page": 33,
      "ordinal": 243,
      "text": "的",
      "top": 977.0,
      "left": 452.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0244",
      "page": 33,
      "ordinal": 244,
      "text": " goroutine",
      "top": 977.0,
      "left": 467.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0245",
      "page": 33,
      "ordinal": 245,
      "text": "）",
      "top": 977.0,
      "left": 537.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0246",
      "page": 33,
      "ordinal": 246,
      "text": " 3",
      "top": 977.0,
      "left": 552.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0247",
      "page": 33,
      "ordinal": 247,
      "text": "．每个",
      "top": 977.0,
      "left": 564.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0248",
      "page": 33,
      "ordinal": 248,
      "text": " M ",
      "top": 977.0,
      "left": 608.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0249",
      "page": 33,
      "ordinal": 249,
      "text": "做内存缓存，导致内存",
      "top": 977.0,
      "left": 629.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0250",
      "page": 33,
      "ordinal": 250,
      "text": "占用过高，数据局部性较差",
      "top": 1001.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0251",
      "page": 33,
      "ordinal": 251,
      "text": " 4",
      "top": 1001.0,
      "left": 287.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0252",
      "page": 33,
      "ordinal": 252,
      "text": "．频繁",
      "top": 1001.0,
      "left": 299.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0253",
      "page": 33,
      "ordinal": 253,
      "text": " syscall ",
      "top": 1001.0,
      "left": 343.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0254",
      "page": 33,
      "ordinal": 254,
      "text": "调用，导致严重的线程阻塞",
      "top": 1001.0,
      "left": 395.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0255",
      "page": 33,
      "ordinal": 255,
      "text": "/",
      "top": 1001.0,
      "left": 570.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p033-t0256",
      "page": 33,
      "ordinal": 256,
      "text": "解锁，加剧额外的性能损耗。",
      "top": 1001.0,
      "left": 576.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p033-h06",
        "heading_id": "p033-h06",
        "block_id": "q-p033-h06-b001"
      }
    },
    {
      "id": "p034-t0001",
      "page": 34,
      "ordinal": 1,
      "text": "GMP ",
      "top": 40.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01"
      }
    },
    {
      "id": "p034-t0002",
      "page": 34,
      "ordinal": 2,
      "text": "调度流程",
      "top": 40.0,
      "left": 177.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01"
      }
    },
    {
      "id": "p034-t0005",
      "page": 34,
      "ordinal": 5,
      "text": "1. ",
      "top": 486.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0006",
      "page": 34,
      "ordinal": 6,
      "text": "每个",
      "top": 486.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0007",
      "page": 34,
      "ordinal": 7,
      "text": " P ",
      "top": 486.0,
      "left": 175.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0008",
      "page": 34,
      "ordinal": 8,
      "text": "有个局部队列，局部队列保存待执行的",
      "top": 486.0,
      "left": 191.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0009",
      "page": 34,
      "ordinal": 9,
      "text": " goroutine",
      "top": 486.0,
      "left": 440.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0010",
      "page": 34,
      "ordinal": 10,
      "text": "（流程",
      "top": 486.0,
      "left": 510.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0011",
      "page": 34,
      "ordinal": 11,
      "text": " 2",
      "top": 486.0,
      "left": 554.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0012",
      "page": 34,
      "ordinal": 12,
      "text": "），当",
      "top": 486.0,
      "left": 566.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0013",
      "page": 34,
      "ordinal": 13,
      "text": " M ",
      "top": 486.0,
      "left": 610.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0014",
      "page": 34,
      "ordinal": 14,
      "text": "绑定的",
      "top": 486.0,
      "left": 631.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0015",
      "page": 34,
      "ordinal": 15,
      "text": " P ",
      "top": 486.0,
      "left": 675.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0016",
      "page": 34,
      "ordinal": 16,
      "text": "的的局部队列",
      "top": 486.0,
      "left": 691.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0017",
      "page": 34,
      "ordinal": 17,
      "text": "已经满了之后就会把",
      "top": 509.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0018",
      "page": 34,
      "ordinal": 18,
      "text": " goroutine ",
      "top": 509.0,
      "left": 277.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0019",
      "page": 34,
      "ordinal": 19,
      "text": "放到全局队列（流",
      "top": 509.0,
      "left": 351.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0021",
      "page": 34,
      "ordinal": 21,
      "text": "程",
      "top": 509.0,
      "left": 472.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0022",
      "page": 34,
      "ordinal": 22,
      "text": " 2-1",
      "top": 509.0,
      "left": 487.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0023",
      "page": 34,
      "ordinal": 23,
      "text": "）",
      "top": 509.0,
      "left": 512.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b002"
      }
    },
    {
      "id": "p034-t0025",
      "page": 34,
      "ordinal": 25,
      "text": "2. ",
      "top": 540.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0026",
      "page": 34,
      "ordinal": 26,
      "text": "每个",
      "top": 540.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0027",
      "page": 34,
      "ordinal": 27,
      "text": " P ",
      "top": 540.0,
      "left": 175.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0028",
      "page": 34,
      "ordinal": 28,
      "text": "和一个",
      "top": 540.0,
      "left": 191.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0029",
      "page": 34,
      "ordinal": 29,
      "text": " M ",
      "top": 540.0,
      "left": 235.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0030",
      "page": 34,
      "ordinal": 30,
      "text": "绑定，",
      "top": 540.0,
      "left": 256.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0031",
      "page": 34,
      "ordinal": 31,
      "text": "M ",
      "top": 540.0,
      "left": 300.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0032",
      "page": 34,
      "ordinal": 32,
      "text": "是真正的执行",
      "top": 540.0,
      "left": 317.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0033",
      "page": 34,
      "ordinal": 33,
      "text": " P ",
      "top": 540.0,
      "left": 404.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0034",
      "page": 34,
      "ordinal": 34,
      "text": "中",
      "top": 540.0,
      "left": 421.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0035",
      "page": 34,
      "ordinal": 35,
      "text": " goroutine ",
      "top": 540.0,
      "left": 435.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0036",
      "page": 34,
      "ordinal": 36,
      "text": "的实体（流程",
      "top": 540.0,
      "left": 510.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0037",
      "page": 34,
      "ordinal": 37,
      "text": " 3",
      "top": 540.0,
      "left": 598.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0038",
      "page": 34,
      "ordinal": 38,
      "text": "），",
      "top": 540.0,
      "left": 610.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0039",
      "page": 34,
      "ordinal": 39,
      "text": " M ",
      "top": 540.0,
      "left": 639.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0040",
      "page": 34,
      "ordinal": 40,
      "text": "从绑定的",
      "top": 540.0,
      "left": 660.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0041",
      "page": 34,
      "ordinal": 41,
      "text": " P ",
      "top": 540.0,
      "left": 718.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0042",
      "page": 34,
      "ordinal": 42,
      "text": "中的局",
      "top": 540.0,
      "left": 735.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0043",
      "page": 34,
      "ordinal": 43,
      "text": "部队列获取",
      "top": 563.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0044",
      "page": 34,
      "ordinal": 44,
      "text": " G ",
      "top": 563.0,
      "left": 219.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0045",
      "page": 34,
      "ordinal": 45,
      "text": "来执行",
      "top": 563.0,
      "left": 237.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b003"
      }
    },
    {
      "id": "p034-t0047",
      "page": 34,
      "ordinal": 47,
      "text": "3. ",
      "top": 594.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0048",
      "page": 34,
      "ordinal": 48,
      "text": "当",
      "top": 594.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0049",
      "page": 34,
      "ordinal": 49,
      "text": " M ",
      "top": 594.0,
      "left": 160.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0050",
      "page": 34,
      "ordinal": 50,
      "text": "绑定的",
      "top": 594.0,
      "left": 181.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0051",
      "page": 34,
      "ordinal": 51,
      "text": " P ",
      "top": 594.0,
      "left": 225.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0052",
      "page": 34,
      "ordinal": 52,
      "text": "的局部队列为空时，",
      "top": 594.0,
      "left": 241.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0053",
      "page": 34,
      "ordinal": 53,
      "text": "M ",
      "top": 594.0,
      "left": 373.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0054",
      "page": 34,
      "ordinal": 54,
      "text": "会从全局队列获取到本地队列来执行",
      "top": 594.0,
      "left": 390.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0055",
      "page": 34,
      "ordinal": 55,
      "text": " G ",
      "top": 594.0,
      "left": 624.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0056",
      "page": 34,
      "ordinal": 56,
      "text": "（流程",
      "top": 594.0,
      "left": 642.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0057",
      "page": 34,
      "ordinal": 57,
      "text": " 3.1",
      "top": 594.0,
      "left": 686.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0058",
      "page": 34,
      "ordinal": 58,
      "text": "），当从",
      "top": 594.0,
      "left": 710.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0059",
      "page": 34,
      "ordinal": 59,
      "text": "全局队列中没有获取到可执行的",
      "top": 617.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0060",
      "page": 34,
      "ordinal": 60,
      "text": " G ",
      "top": 617.0,
      "left": 350.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0061",
      "page": 34,
      "ordinal": 61,
      "text": "时候，",
      "top": 617.0,
      "left": 368.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0062",
      "page": 34,
      "ordinal": 62,
      "text": "M ",
      "top": 617.0,
      "left": 412.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0063",
      "page": 34,
      "ordinal": 63,
      "text": "会从其他",
      "top": 617.0,
      "left": 429.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0064",
      "page": 34,
      "ordinal": 64,
      "text": " P ",
      "top": 617.0,
      "left": 488.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0065",
      "page": 34,
      "ordinal": 65,
      "text": "的局部队列中偷取",
      "top": 617.0,
      "left": 504.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0066",
      "page": 34,
      "ordinal": 66,
      "text": " G ",
      "top": 617.0,
      "left": 621.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0067",
      "page": 34,
      "ordinal": 67,
      "text": "来执行（流程",
      "top": 617.0,
      "left": 640.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0068",
      "page": 34,
      "ordinal": 68,
      "text": " 3.2",
      "top": 617.0,
      "left": 727.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0069",
      "page": 34,
      "ordinal": 69,
      "text": "），",
      "top": 617.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0070",
      "page": 34,
      "ordinal": 70,
      "text": "这种从其他",
      "top": 641.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0071",
      "page": 34,
      "ordinal": 71,
      "text": " P ",
      "top": 641.0,
      "left": 219.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0072",
      "page": 34,
      "ordinal": 72,
      "text": "偷的方式称为",
      "top": 641.0,
      "left": 235.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0073",
      "page": 34,
      "ordinal": 73,
      "text": " work stealing ",
      "top": 641.0,
      "left": 323.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b004"
      }
    },
    {
      "id": "p034-t0074",
      "page": 34,
      "ordinal": 74,
      "text": "4. ",
      "top": 671.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0075",
      "page": 34,
      "ordinal": 75,
      "text": "当",
      "top": 671.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0076",
      "page": 34,
      "ordinal": 76,
      "text": " G ",
      "top": 671.0,
      "left": 160.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0077",
      "page": 34,
      "ordinal": 77,
      "text": "因系统调用（",
      "top": 671.0,
      "left": 178.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0078",
      "page": 34,
      "ordinal": 78,
      "text": "syscall",
      "top": 671.0,
      "left": 266.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0079",
      "page": 34,
      "ordinal": 79,
      "text": "）阻塞时会阻塞",
      "top": 671.0,
      "left": 310.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0080",
      "page": 34,
      "ordinal": 80,
      "text": " M",
      "top": 671.0,
      "left": 412.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0081",
      "page": 34,
      "ordinal": 81,
      "text": "，此时",
      "top": 671.0,
      "left": 429.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0082",
      "page": 34,
      "ordinal": 82,
      "text": " P ",
      "top": 671.0,
      "left": 473.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0083",
      "page": 34,
      "ordinal": 83,
      "text": "会和",
      "top": 671.0,
      "left": 490.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0084",
      "page": 34,
      "ordinal": 84,
      "text": " M ",
      "top": 671.0,
      "left": 519.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0085",
      "page": 34,
      "ordinal": 85,
      "text": "解绑即",
      "top": 671.0,
      "left": 540.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0086",
      "page": 34,
      "ordinal": 86,
      "text": " hand off",
      "top": 671.0,
      "left": 584.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0087",
      "page": 34,
      "ordinal": 87,
      "text": "，并寻找新的",
      "top": 671.0,
      "left": 645.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0088",
      "page": 34,
      "ordinal": 88,
      "text": " idle ",
      "top": 671.0,
      "left": 733.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0089",
      "page": 34,
      "ordinal": 89,
      "text": "的",
      "top": 671.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0091",
      "page": 34,
      "ordinal": 91,
      "text": "M",
      "top": 695.0,
      "left": 146.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0092",
      "page": 34,
      "ordinal": 92,
      "text": "，若没有",
      "top": 695.0,
      "left": 159.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0093",
      "page": 34,
      "ordinal": 93,
      "text": " idle ",
      "top": 695.0,
      "left": 217.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0094",
      "page": 34,
      "ordinal": 94,
      "text": "的",
      "top": 695.0,
      "left": 249.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0095",
      "page": 34,
      "ordinal": 95,
      "text": " M ",
      "top": 695.0,
      "left": 264.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0096",
      "page": 34,
      "ordinal": 96,
      "text": "就会新建一个",
      "top": 695.0,
      "left": 285.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0097",
      "page": 34,
      "ordinal": 97,
      "text": " M",
      "top": 695.0,
      "left": 373.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0098",
      "page": 34,
      "ordinal": 98,
      "text": "（流程",
      "top": 695.0,
      "left": 390.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0099",
      "page": 34,
      "ordinal": 99,
      "text": " 5.1",
      "top": 695.0,
      "left": 433.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0100",
      "page": 34,
      "ordinal": 100,
      "text": "）",
      "top": 695.0,
      "left": 458.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b005"
      }
    },
    {
      "id": "p034-t0102",
      "page": 34,
      "ordinal": 102,
      "text": "5. ",
      "top": 725.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0103",
      "page": 34,
      "ordinal": 103,
      "text": "当",
      "top": 725.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0104",
      "page": 34,
      "ordinal": 104,
      "text": " G ",
      "top": 725.0,
      "left": 160.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0105",
      "page": 34,
      "ordinal": 105,
      "text": "因",
      "top": 725.0,
      "left": 178.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0106",
      "page": 34,
      "ordinal": 106,
      "text": " channel ",
      "top": 725.0,
      "left": 193.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0107",
      "page": 34,
      "ordinal": 107,
      "text": "或者",
      "top": 725.0,
      "left": 255.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0108",
      "page": 34,
      "ordinal": 108,
      "text": " network I/O ",
      "top": 725.0,
      "left": 284.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0109",
      "page": 34,
      "ordinal": 109,
      "text": "阻塞时，不会阻塞",
      "top": 725.0,
      "left": 372.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0110",
      "page": 34,
      "ordinal": 110,
      "text": " M",
      "top": 725.0,
      "left": 489.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0111",
      "page": 34,
      "ordinal": 111,
      "text": "，",
      "top": 725.0,
      "left": 506.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0112",
      "page": 34,
      "ordinal": 112,
      "text": "M ",
      "top": 725.0,
      "left": 521.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0113",
      "page": 34,
      "ordinal": 113,
      "text": "会寻找其他",
      "top": 725.0,
      "left": 538.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0114",
      "page": 34,
      "ordinal": 114,
      "text": " runnable ",
      "top": 725.0,
      "left": 611.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0115",
      "page": 34,
      "ordinal": 115,
      "text": "的",
      "top": 725.0,
      "left": 680.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0116",
      "page": 34,
      "ordinal": 116,
      "text": " G",
      "top": 725.0,
      "left": 695.0,
      "width": 14.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0117",
      "page": 34,
      "ordinal": 117,
      "text": "；当阻塞",
      "top": 725.0,
      "left": 710.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0118",
      "page": 34,
      "ordinal": 118,
      "text": "的",
      "top": 749.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0119",
      "page": 34,
      "ordinal": 119,
      "text": " G ",
      "top": 749.0,
      "left": 160.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0120",
      "page": 34,
      "ordinal": 120,
      "text": "恢复后会重新进入",
      "top": 749.0,
      "left": 178.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0121",
      "page": 34,
      "ordinal": 121,
      "text": " runnable ",
      "top": 749.0,
      "left": 295.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0122",
      "page": 34,
      "ordinal": 122,
      "text": "进入",
      "top": 749.0,
      "left": 365.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0123",
      "page": 34,
      "ordinal": 123,
      "text": " P ",
      "top": 749.0,
      "left": 394.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0124",
      "page": 34,
      "ordinal": 124,
      "text": "队列等待执",
      "top": 749.0,
      "left": 411.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0126",
      "page": 34,
      "ordinal": 126,
      "text": "行",
      "top": 749.0,
      "left": 487.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h01",
        "heading_id": "p034-h01",
        "block_id": "q-p034-h01-b006"
      }
    },
    {
      "id": "p034-t0128",
      "page": 34,
      "ordinal": 128,
      "text": "GMP ",
      "top": 784.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02"
      }
    },
    {
      "id": "p034-t0129",
      "page": 34,
      "ordinal": 129,
      "text": "中",
      "top": 784.0,
      "left": 177.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02"
      }
    },
    {
      "id": "p034-t0130",
      "page": 34,
      "ordinal": 130,
      "text": " work stealing ",
      "top": 784.0,
      "left": 203.0,
      "width": 187.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02"
      }
    },
    {
      "id": "p034-t0131",
      "page": 34,
      "ordinal": 131,
      "text": "机制",
      "top": 784.0,
      "left": 389.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02"
      }
    },
    {
      "id": "p034-t0135",
      "page": 34,
      "ordinal": 135,
      "text": "获取",
      "top": 834.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0136",
      "page": 34,
      "ordinal": 136,
      "text": " P ",
      "top": 834.0,
      "left": 145.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0137",
      "page": 34,
      "ordinal": 137,
      "text": "本地队列，当从绑定",
      "top": 834.0,
      "left": 161.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0138",
      "page": 34,
      "ordinal": 138,
      "text": " P ",
      "top": 834.0,
      "left": 293.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0139",
      "page": 34,
      "ordinal": 139,
      "text": "本地",
      "top": 834.0,
      "left": 309.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0140",
      "page": 34,
      "ordinal": 140,
      "text": " runq ",
      "top": 834.0,
      "left": 338.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0141",
      "page": 34,
      "ordinal": 141,
      "text": "上找不到可执行的",
      "top": 834.0,
      "left": 379.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0142",
      "page": 34,
      "ordinal": 142,
      "text": " g",
      "top": 834.0,
      "left": 496.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0143",
      "page": 34,
      "ordinal": 143,
      "text": "，尝试从全局链",
      "top": 834.0,
      "left": 508.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0145",
      "page": 34,
      "ordinal": 145,
      "text": "表中拿，再拿不到从",
      "top": 834.0,
      "left": 614.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0147",
      "page": 34,
      "ordinal": 147,
      "text": "netpoll ",
      "top": 858.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0148",
      "page": 34,
      "ordinal": 148,
      "text": "和事件池里拿，最后会从别的",
      "top": 858.0,
      "left": 163.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0149",
      "page": 34,
      "ordinal": 149,
      "text": " P ",
      "top": 858.0,
      "left": 353.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0150",
      "page": 34,
      "ordinal": 150,
      "text": "里偷任务。",
      "top": 858.0,
      "left": 370.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0151",
      "page": 34,
      "ordinal": 151,
      "text": "P ",
      "top": 858.0,
      "left": 443.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0152",
      "page": 34,
      "ordinal": 152,
      "text": "此时去唤醒一个",
      "top": 858.0,
      "left": 455.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0153",
      "page": 34,
      "ordinal": 153,
      "text": " M",
      "top": 858.0,
      "left": 558.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0154",
      "page": 34,
      "ordinal": 154,
      "text": "。",
      "top": 858.0,
      "left": 575.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0155",
      "page": 34,
      "ordinal": 155,
      "text": "P ",
      "top": 858.0,
      "left": 589.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0156",
      "page": 34,
      "ordinal": 156,
      "text": "继续执行其它的程序。",
      "top": 858.0,
      "left": 602.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0157",
      "page": 34,
      "ordinal": 157,
      "text": "M ",
      "top": 858.0,
      "left": 748.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0158",
      "page": 34,
      "ordinal": 158,
      "text": "寻",
      "top": 858.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0159",
      "page": 34,
      "ordinal": 159,
      "text": "找是否有空闲的",
      "top": 881.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0160",
      "page": 34,
      "ordinal": 160,
      "text": " P",
      "top": 881.0,
      "left": 214.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0161",
      "page": 34,
      "ordinal": 161,
      "text": "，如果有则",
      "top": 881.0,
      "left": 227.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0163",
      "page": 34,
      "ordinal": 163,
      "text": "将该",
      "top": 881.0,
      "left": 304.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0164",
      "page": 34,
      "ordinal": 164,
      "text": " G ",
      "top": 881.0,
      "left": 333.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0165",
      "page": 34,
      "ordinal": 165,
      "text": "对象移动到它本身。接下来",
      "top": 881.0,
      "left": 351.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0166",
      "page": 34,
      "ordinal": 166,
      "text": " M ",
      "top": 881.0,
      "left": 527.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0167",
      "page": 34,
      "ordinal": 167,
      "text": "执行一个调度循环（调用",
      "top": 881.0,
      "left": 547.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0168",
      "page": 34,
      "ordinal": 168,
      "text": " G ",
      "top": 881.0,
      "left": 708.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0169",
      "page": 34,
      "ordinal": 169,
      "text": "对象",
      "top": 881.0,
      "left": 727.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0170",
      "page": 34,
      "ordinal": 170,
      "text": "->",
      "top": 881.0,
      "left": 756.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0171",
      "page": 34,
      "ordinal": 171,
      "text": "执行",
      "top": 904.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0172",
      "page": 34,
      "ordinal": 172,
      "text": "-> ",
      "top": 904.0,
      "left": 141.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0173",
      "page": 34,
      "ordinal": 173,
      "text": "清理线程",
      "top": 904.0,
      "left": 158.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0174",
      "page": 34,
      "ordinal": 174,
      "text": "→",
      "top": 906.0,
      "left": 216.0,
      "width": 15.0,
      "height": 16.0,
      "font": "13",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0175",
      "page": 34,
      "ordinal": 175,
      "text": "继续找新的",
      "top": 904.0,
      "left": 231.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0176",
      "page": 34,
      "ordinal": 176,
      "text": " Goroutine ",
      "top": 904.0,
      "left": 304.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0177",
      "page": 34,
      "ordinal": 177,
      "text": "执行）",
      "top": 904.0,
      "left": 381.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h02",
        "heading_id": "p034-h02",
        "block_id": "q-p034-h02-b001"
      }
    },
    {
      "id": "p034-t0179",
      "page": 34,
      "ordinal": 179,
      "text": "GMP ",
      "top": 939.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03"
      }
    },
    {
      "id": "p034-t0180",
      "page": 34,
      "ordinal": 180,
      "text": "中",
      "top": 939.0,
      "left": 177.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03"
      }
    },
    {
      "id": "p034-t0181",
      "page": 34,
      "ordinal": 181,
      "text": " hand off ",
      "top": 939.0,
      "left": 203.0,
      "width": 121.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03"
      }
    },
    {
      "id": "p034-t0182",
      "page": 34,
      "ordinal": 182,
      "text": "机制",
      "top": 939.0,
      "left": 324.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03"
      }
    },
    {
      "id": "p034-t0186",
      "page": 34,
      "ordinal": 186,
      "text": "当本线程",
      "top": 990.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0187",
      "page": 34,
      "ordinal": 187,
      "text": " M ",
      "top": 990.0,
      "left": 174.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0188",
      "page": 34,
      "ordinal": 188,
      "text": "因为",
      "top": 990.0,
      "left": 195.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0189",
      "page": 34,
      "ordinal": 189,
      "text": " G ",
      "top": 990.0,
      "left": 224.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0190",
      "page": 34,
      "ordinal": 190,
      "text": "进行的系统调用阻塞时，线程释放绑定的",
      "top": 990.0,
      "left": 242.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0191",
      "page": 34,
      "ordinal": 191,
      "text": " P",
      "top": 990.0,
      "left": 506.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0192",
      "page": 34,
      "ordinal": 192,
      "text": "，把",
      "top": 990.0,
      "left": 518.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0193",
      "page": 34,
      "ordinal": 193,
      "text": " P ",
      "top": 990.0,
      "left": 547.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0194",
      "page": 34,
      "ordinal": 194,
      "text": "转移给其",
      "top": 990.0,
      "left": 564.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0196",
      "page": 34,
      "ordinal": 196,
      "text": "他空闲的",
      "top": 990.0,
      "left": 626.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0197",
      "page": 34,
      "ordinal": 197,
      "text": " M ",
      "top": 990.0,
      "left": 685.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0198",
      "page": 34,
      "ordinal": 198,
      "text": "执行。",
      "top": 990.0,
      "left": 705.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0200",
      "page": 34,
      "ordinal": 200,
      "text": "细",
      "top": 990.0,
      "left": 753.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0201",
      "page": 34,
      "ordinal": 201,
      "text": "节：当发生上线文切换时，需要对执行现场进行保护，以便下次被调度执行",
      "top": 1013.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0203",
      "page": 34,
      "ordinal": 203,
      "text": "时进行现场恢复。",
      "top": 1013.0,
      "left": 598.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0204",
      "page": 34,
      "ordinal": 204,
      "text": "Go ",
      "top": 1013.0,
      "left": 715.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0205",
      "page": 34,
      "ordinal": 205,
      "text": "调度",
      "top": 1013.0,
      "left": 738.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0206",
      "page": 34,
      "ordinal": 206,
      "text": "器",
      "top": 1036.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0207",
      "page": 34,
      "ordinal": 207,
      "text": " M ",
      "top": 1036.0,
      "left": 126.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0208",
      "page": 34,
      "ordinal": 208,
      "text": "的栈保存在",
      "top": 1036.0,
      "left": 147.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0209",
      "page": 34,
      "ordinal": 209,
      "text": " G ",
      "top": 1036.0,
      "left": 220.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0210",
      "page": 34,
      "ordinal": 210,
      "text": "对象上，只需要将",
      "top": 1036.0,
      "left": 239.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0211",
      "page": 34,
      "ordinal": 211,
      "text": " M ",
      "top": 1036.0,
      "left": 356.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0212",
      "page": 34,
      "ordinal": 212,
      "text": "所需要的寄存",
      "top": 1036.0,
      "left": 376.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0214",
      "page": 34,
      "ordinal": 214,
      "text": "器（",
      "top": 1036.0,
      "left": 468.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0215",
      "page": 34,
      "ordinal": 215,
      "text": "SP",
      "top": 1036.0,
      "left": 497.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0216",
      "page": 34,
      "ordinal": 216,
      "text": "、",
      "top": 1036.0,
      "left": 514.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0217",
      "page": 34,
      "ordinal": 217,
      "text": "PC ",
      "top": 1036.0,
      "left": 529.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0218",
      "page": 34,
      "ordinal": 218,
      "text": "等）保存到",
      "top": 1036.0,
      "left": 550.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0219",
      "page": 34,
      "ordinal": 219,
      "text": " G ",
      "top": 1036.0,
      "left": 624.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0220",
      "page": 34,
      "ordinal": 220,
      "text": "对象上就可以实现现",
      "top": 1036.0,
      "left": 642.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0221",
      "page": 34,
      "ordinal": 221,
      "text": "场保护。当这些寄存器数据被保",
      "top": 1059.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0223",
      "page": 34,
      "ordinal": 223,
      "text": "护起来，就随时可以做上下文切换了，在中断之前把现场保存起来。如",
      "top": 1059.0,
      "left": 320.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0224",
      "page": 34,
      "ordinal": 224,
      "text": "果此时",
      "top": 1083.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0225",
      "page": 34,
      "ordinal": 225,
      "text": " G ",
      "top": 1083.0,
      "left": 156.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0226",
      "page": 34,
      "ordinal": 226,
      "text": "任务还没有执行完，",
      "top": 1083.0,
      "left": 174.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0227",
      "page": 34,
      "ordinal": 227,
      "text": "M ",
      "top": 1083.0,
      "left": 305.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0228",
      "page": 34,
      "ordinal": 228,
      "text": "可以将任务重新丢到",
      "top": 1083.0,
      "left": 322.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0229",
      "page": 34,
      "ordinal": 229,
      "text": " P ",
      "top": 1083.0,
      "left": 454.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0230",
      "page": 34,
      "ordinal": 230,
      "text": "的任务队列，等待下一次被调度",
      "top": 1083.0,
      "left": 471.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0232",
      "page": 34,
      "ordinal": 232,
      "text": "执行。当再次被",
      "top": 1083.0,
      "left": 679.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0233",
      "page": 34,
      "ordinal": 233,
      "text": "调度执行时，",
      "top": 1107.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0234",
      "page": 34,
      "ordinal": 234,
      "text": "M ",
      "top": 1107.0,
      "left": 200.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0235",
      "page": 34,
      "ordinal": 235,
      "text": "通过访问",
      "top": 1107.0,
      "left": 217.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0236",
      "page": 34,
      "ordinal": 236,
      "text": " G ",
      "top": 1107.0,
      "left": 275.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0237",
      "page": 34,
      "ordinal": 237,
      "text": "的",
      "top": 1107.0,
      "left": 293.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0238",
      "page": 34,
      "ordinal": 238,
      "text": " vdsoSP",
      "top": 1107.0,
      "left": 308.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0239",
      "page": 34,
      "ordinal": 239,
      "text": "、",
      "top": 1107.0,
      "left": 361.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0240",
      "page": 34,
      "ordinal": 240,
      "text": "vdsoPC ",
      "top": 1107.0,
      "left": 375.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0241",
      "page": 34,
      "ordinal": 241,
      "text": "寄存器进行现场",
      "top": 1107.0,
      "left": 429.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0243",
      "page": 34,
      "ordinal": 243,
      "text": "恢复（从上次中断位置继续执行）。",
      "top": 1107.0,
      "left": 535.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h03",
        "heading_id": "p034-h03",
        "block_id": "q-p034-h03-b001"
      }
    },
    {
      "id": "p034-t0245",
      "page": 34,
      "ordinal": 245,
      "text": "协作式的抢占式调度",
      "top": 1141.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04"
      }
    },
    {
      "id": "p034-t0249",
      "page": 34,
      "ordinal": 249,
      "text": "在",
      "top": 1191.0,
      "left": 116.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0250",
      "page": 34,
      "ordinal": 250,
      "text": " 1.14 ",
      "top": 1191.0,
      "left": 130.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0251",
      "page": 34,
      "ordinal": 251,
      "text": "版本之前，程序只能依靠",
      "top": 1191.0,
      "left": 167.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0252",
      "page": 34,
      "ordinal": 252,
      "text": " Goroutine ",
      "top": 1191.0,
      "left": 328.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0253",
      "page": 34,
      "ordinal": 253,
      "text": "主动让出",
      "top": 1191.0,
      "left": 405.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0254",
      "page": 34,
      "ordinal": 254,
      "text": " CPU ",
      "top": 1191.0,
      "left": 463.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0255",
      "page": 34,
      "ordinal": 255,
      "text": "资源才能触发调",
      "top": 1191.0,
      "left": 499.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p034-t0257",
      "page": 34,
      "ordinal": 257,
      "text": "度。这种方式存在问题有：",
      "top": 1191.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b001"
      }
    },
    {
      "id": "p035-t0001",
      "page": 35,
      "ordinal": 1,
      "text": "1. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0002",
      "page": 35,
      "ordinal": 2,
      "text": "某些",
      "top": 44.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0003",
      "page": 35,
      "ordinal": 3,
      "text": " Goroutine ",
      "top": 44.0,
      "left": 175.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0004",
      "page": 35,
      "ordinal": 4,
      "text": "可以长时间占用线程，造成其它",
      "top": 44.0,
      "left": 252.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0005",
      "page": 35,
      "ordinal": 5,
      "text": " Goroutine ",
      "top": 44.0,
      "left": 456.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0006",
      "page": 35,
      "ordinal": 6,
      "text": "的饥饿",
      "top": 44.0,
      "left": 533.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b002"
      }
    },
    {
      "id": "p035-t0008",
      "page": 35,
      "ordinal": 8,
      "text": "2. ",
      "top": 74.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0009",
      "page": 35,
      "ordinal": 9,
      "text": "垃圾回收需要暂停整个程序（",
      "top": 74.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0010",
      "page": 35,
      "ordinal": 10,
      "text": "Stop-the-world",
      "top": 74.0,
      "left": 336.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0011",
      "page": 35,
      "ordinal": 11,
      "text": "，",
      "top": 74.0,
      "left": 437.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0012",
      "page": 35,
      "ordinal": 12,
      "text": "STW",
      "top": 74.0,
      "left": 452.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0013",
      "page": 35,
      "ordinal": 13,
      "text": "），最长可能需要几分",
      "top": 74.0,
      "left": 481.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0015",
      "page": 35,
      "ordinal": 15,
      "text": "钟的时间，导致整个程",
      "top": 74.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0016",
      "page": 35,
      "ordinal": 16,
      "text": "序无法工作",
      "top": 98.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p034-h04",
        "heading_id": "p034-h04",
        "block_id": "q-p034-h04-b003"
      }
    },
    {
      "id": "p035-t0018",
      "page": 35,
      "ordinal": 18,
      "text": "基于信号的抢占式调度",
      "top": 132.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01"
      }
    },
    {
      "id": "p035-t0022",
      "page": 35,
      "ordinal": 22,
      "text": "在任何情况下，",
      "top": 183.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0023",
      "page": 35,
      "ordinal": 23,
      "text": "Go ",
      "top": 183.0,
      "left": 218.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0024",
      "page": 35,
      "ordinal": 24,
      "text": "运行时并行执行（注意，不是并发）的",
      "top": 183.0,
      "left": 241.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0025",
      "page": 35,
      "ordinal": 25,
      "text": " goroutines ",
      "top": 183.0,
      "left": 490.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0026",
      "page": 35,
      "ordinal": 26,
      "text": "数量是",
      "top": 183.0,
      "left": 571.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0028",
      "page": 35,
      "ordinal": 28,
      "text": "小于等于",
      "top": 183.0,
      "left": 619.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0029",
      "page": 35,
      "ordinal": 29,
      "text": " P ",
      "top": 183.0,
      "left": 677.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0030",
      "page": 35,
      "ordinal": 30,
      "text": "的数量的。为",
      "top": 183.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0031",
      "page": 35,
      "ordinal": 31,
      "text": "了提高系统的性能，",
      "top": 207.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0032",
      "page": 35,
      "ordinal": 32,
      "text": "P ",
      "top": 207.0,
      "left": 243.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0033",
      "page": 35,
      "ordinal": 33,
      "text": "的数量肯定不是越小越好，所",
      "top": 207.0,
      "left": 256.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0035",
      "page": 35,
      "ordinal": 35,
      "text": "以官方默认值就是",
      "top": 207.0,
      "left": 450.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0036",
      "page": 35,
      "ordinal": 36,
      "text": " CPU ",
      "top": 207.0,
      "left": 567.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0037",
      "page": 35,
      "ordinal": 37,
      "text": "的核心数，设置的过小的",
      "top": 207.0,
      "left": 603.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0038",
      "page": 35,
      "ordinal": 38,
      "text": "话，如果一个持有",
      "top": 229.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0039",
      "page": 35,
      "ordinal": 39,
      "text": " P ",
      "top": 229.0,
      "left": 229.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0040",
      "page": 35,
      "ordinal": 40,
      "text": "的",
      "top": 229.0,
      "left": 245.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0041",
      "page": 35,
      "ordinal": 41,
      "text": " M",
      "top": 229.0,
      "left": 260.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0042",
      "page": 35,
      "ordinal": 42,
      "text": "，",
      "top": 229.0,
      "left": 277.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0044",
      "page": 35,
      "ordinal": 44,
      "text": "由于",
      "top": 229.0,
      "left": 295.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0045",
      "page": 35,
      "ordinal": 45,
      "text": " P ",
      "top": 229.0,
      "left": 324.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0046",
      "page": 35,
      "ordinal": 46,
      "text": "当前执行的",
      "top": 229.0,
      "left": 341.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0047",
      "page": 35,
      "ordinal": 47,
      "text": " G ",
      "top": 229.0,
      "left": 414.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0048",
      "page": 35,
      "ordinal": 48,
      "text": "调用了",
      "top": 229.0,
      "left": 432.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0049",
      "page": 35,
      "ordinal": 49,
      "text": " syscall ",
      "top": 229.0,
      "left": 476.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0050",
      "page": 35,
      "ordinal": 50,
      "text": "而导致",
      "top": 229.0,
      "left": 528.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0051",
      "page": 35,
      "ordinal": 51,
      "text": " M ",
      "top": 229.0,
      "left": 571.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0052",
      "page": 35,
      "ordinal": 52,
      "text": "被阻塞，那么此时关键点：",
      "top": 229.0,
      "left": 592.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0054",
      "page": 35,
      "ordinal": 54,
      "text": "GO ",
      "top": 253.0,
      "left": 112.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0055",
      "page": 35,
      "ordinal": 55,
      "text": "的调度器是迟钝的，它很可能什么都没做，直到",
      "top": 253.0,
      "left": 138.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0056",
      "page": 35,
      "ordinal": 56,
      "text": " M ",
      "top": 253.0,
      "left": 445.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0057",
      "page": 35,
      "ordinal": 57,
      "text": "阻塞了相当长时间以",
      "top": 253.0,
      "left": 466.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0059",
      "page": 35,
      "ordinal": 59,
      "text": "后，才会发现有一个",
      "top": 253.0,
      "left": 601.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0060",
      "page": 35,
      "ordinal": 60,
      "text": " P/M ",
      "top": 253.0,
      "left": 733.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0061",
      "page": 35,
      "ordinal": 61,
      "text": "被",
      "top": 253.0,
      "left": 768.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0063",
      "page": 35,
      "ordinal": 63,
      "text": "syscall ",
      "top": 276.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0064",
      "page": 35,
      "ordinal": 64,
      "text": "阻塞了。然后，才会用空闲的",
      "top": 276.0,
      "left": 159.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0065",
      "page": 35,
      "ordinal": 65,
      "text": " M ",
      "top": 276.0,
      "left": 349.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0066",
      "page": 35,
      "ordinal": 66,
      "text": "来强这",
      "top": 276.0,
      "left": 370.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0068",
      "page": 35,
      "ordinal": 68,
      "text": "个",
      "top": 276.0,
      "left": 418.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0069",
      "page": 35,
      "ordinal": 69,
      "text": " P",
      "top": 276.0,
      "left": 433.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0070",
      "page": 35,
      "ordinal": 70,
      "text": "。通过",
      "top": 276.0,
      "left": 445.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0071",
      "page": 35,
      "ordinal": 71,
      "text": " sysmon ",
      "top": 276.0,
      "left": 489.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0072",
      "page": 35,
      "ordinal": 72,
      "text": "监控实现的抢占式调度，最快在",
      "top": 276.0,
      "left": 549.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0074",
      "page": 35,
      "ordinal": 74,
      "text": "20us",
      "top": 300.0,
      "left": 112.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0075",
      "page": 35,
      "ordinal": 75,
      "text": "，最慢在",
      "top": 300.0,
      "left": 144.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0076",
      "page": 35,
      "ordinal": 76,
      "text": " 10-20ms ",
      "top": 300.0,
      "left": 203.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0077",
      "page": 35,
      "ordinal": 77,
      "text": "才",
      "top": 300.0,
      "left": 269.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0079",
      "page": 35,
      "ordinal": 79,
      "text": "会发现有一个",
      "top": 300.0,
      "left": 288.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0080",
      "page": 35,
      "ordinal": 80,
      "text": " M ",
      "top": 300.0,
      "left": 375.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0081",
      "page": 35,
      "ordinal": 81,
      "text": "持有",
      "top": 300.0,
      "left": 396.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0082",
      "page": 35,
      "ordinal": 82,
      "text": " P ",
      "top": 300.0,
      "left": 425.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0083",
      "page": 35,
      "ordinal": 83,
      "text": "并阻塞了。操作系统在",
      "top": 300.0,
      "left": 442.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0084",
      "page": 35,
      "ordinal": 84,
      "text": " 1ms ",
      "top": 300.0,
      "left": 588.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0085",
      "page": 35,
      "ordinal": 85,
      "text": "内可以完成很多次线程",
      "top": 300.0,
      "left": 625.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0086",
      "page": 35,
      "ordinal": 86,
      "text": "调",
      "top": 324.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0088",
      "page": 35,
      "ordinal": 88,
      "text": "度（一般情况",
      "top": 324.0,
      "left": 130.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0089",
      "page": 35,
      "ordinal": 89,
      "text": " 1ms ",
      "top": 324.0,
      "left": 218.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0090",
      "page": 35,
      "ordinal": 90,
      "text": "可以完成几十次线程调度），",
      "top": 324.0,
      "left": 254.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0091",
      "page": 35,
      "ordinal": 91,
      "text": "Go ",
      "top": 324.0,
      "left": 445.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0092",
      "page": 35,
      "ordinal": 92,
      "text": "发起",
      "top": 324.0,
      "left": 468.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0093",
      "page": 35,
      "ordinal": 93,
      "text": " IO/syscall ",
      "top": 324.0,
      "left": 497.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0094",
      "page": 35,
      "ordinal": 94,
      "text": "的时候执",
      "top": 324.0,
      "left": 569.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0096",
      "page": 35,
      "ordinal": 96,
      "text": "行该",
      "top": 324.0,
      "left": 632.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0097",
      "page": 35,
      "ordinal": 97,
      "text": " G ",
      "top": 324.0,
      "left": 661.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0098",
      "page": 35,
      "ordinal": 98,
      "text": "的",
      "top": 324.0,
      "left": 679.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0099",
      "page": 35,
      "ordinal": 99,
      "text": " M ",
      "top": 324.0,
      "left": 694.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0100",
      "page": 35,
      "ordinal": 100,
      "text": "会阻塞然",
      "top": 324.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0101",
      "page": 35,
      "ordinal": 101,
      "text": "后被",
      "top": 346.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0102",
      "page": 35,
      "ordinal": 102,
      "text": " OS ",
      "top": 346.0,
      "left": 141.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0103",
      "page": 35,
      "ordinal": 103,
      "text": "调度走，",
      "top": 346.0,
      "left": 168.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0104",
      "page": 35,
      "ordinal": 104,
      "text": "P ",
      "top": 346.0,
      "left": 227.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0105",
      "page": 35,
      "ordinal": 105,
      "text": "什么也不干，",
      "top": 346.0,
      "left": 239.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0106",
      "page": 35,
      "ordinal": 106,
      "text": "sysmon ",
      "top": 346.0,
      "left": 327.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0107",
      "page": 35,
      "ordinal": 107,
      "text": "最慢要",
      "top": 346.0,
      "left": 383.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0108",
      "page": 35,
      "ordinal": 108,
      "text": " 10-20ms ",
      "top": 346.0,
      "left": 427.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0109",
      "page": 35,
      "ordinal": 109,
      "text": "才能发现这个阻塞，说不定那时候阻塞已经",
      "top": 346.0,
      "left": 494.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0110",
      "page": 35,
      "ordinal": 110,
      "text": "结束了，这样宝贵的",
      "top": 370.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0111",
      "page": 35,
      "ordinal": 111,
      "text": " P ",
      "top": 370.0,
      "left": 243.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0112",
      "page": 35,
      "ordinal": 112,
      "text": "资源就这么",
      "top": 370.0,
      "left": 260.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0114",
      "page": 35,
      "ordinal": 114,
      "text": "被阻塞的",
      "top": 370.0,
      "left": 337.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0115",
      "page": 35,
      "ordinal": 115,
      "text": " M ",
      "top": 370.0,
      "left": 395.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0116",
      "page": 35,
      "ordinal": 116,
      "text": "浪费了。",
      "top": 370.0,
      "left": 416.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h01",
        "heading_id": "p035-h01",
        "block_id": "q-p035-h01-b001"
      }
    },
    {
      "id": "p035-t0118",
      "page": 35,
      "ordinal": 118,
      "text": "GMP ",
      "top": 404.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02"
      }
    },
    {
      "id": "p035-t0119",
      "page": 35,
      "ordinal": 119,
      "text": "调度过程中存在哪些阻塞",
      "top": 404.0,
      "left": 177.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02"
      }
    },
    {
      "id": "p035-t0122",
      "page": 35,
      "ordinal": 122,
      "text": "1. I/O",
      "top": 455.0,
      "left": 129.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b001"
      }
    },
    {
      "id": "p035-t0123",
      "page": 35,
      "ordinal": 123,
      "text": "，",
      "top": 455.0,
      "left": 166.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b001"
      }
    },
    {
      "id": "p035-t0124",
      "page": 35,
      "ordinal": 124,
      "text": "select ",
      "top": 455.0,
      "left": 181.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b001"
      }
    },
    {
      "id": "p035-t0125",
      "page": 35,
      "ordinal": 125,
      "text": "2. block on syscall ",
      "top": 486.0,
      "left": 129.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b002"
      }
    },
    {
      "id": "p035-t0126",
      "page": 35,
      "ordinal": 126,
      "text": "3. channel ",
      "top": 516.0,
      "left": 129.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b003"
      }
    },
    {
      "id": "p035-t0127",
      "page": 35,
      "ordinal": 127,
      "text": "4. ",
      "top": 548.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b004"
      }
    },
    {
      "id": "p035-t0128",
      "page": 35,
      "ordinal": 128,
      "text": "等待锁",
      "top": 548.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b004"
      }
    },
    {
      "id": "p035-t0130",
      "page": 35,
      "ordinal": 130,
      "text": "5. runtime.Gosched()  ",
      "top": 578.0,
      "left": 129.0,
      "width": 150.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h02",
        "heading_id": "p035-h02",
        "block_id": "q-p035-h02-b005"
      }
    },
    {
      "id": "p035-t0131",
      "page": 35,
      "ordinal": 131,
      "text": "Sysmon ",
      "top": 613.0,
      "left": 112.0,
      "width": 106.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03"
      }
    },
    {
      "id": "p035-t0132",
      "page": 35,
      "ordinal": 132,
      "text": "有什么作用",
      "top": 613.0,
      "left": 218.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03"
      }
    },
    {
      "id": "p035-t0135",
      "page": 35,
      "ordinal": 135,
      "text": "Sysmon ",
      "top": 663.0,
      "left": 112.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b001"
      }
    },
    {
      "id": "p035-t0136",
      "page": 35,
      "ordinal": 136,
      "text": "也叫监控线程，变动的周期性检查，好处",
      "top": 663.0,
      "left": 169.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b001"
      }
    },
    {
      "id": "p035-t0138",
      "page": 35,
      "ordinal": 138,
      "text": "1. ",
      "top": 698.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0139",
      "page": 35,
      "ordinal": 139,
      "text": "释放闲置超过",
      "top": 698.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0140",
      "page": 35,
      "ordinal": 140,
      "text": " 5 ",
      "top": 698.0,
      "left": 233.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0141",
      "page": 35,
      "ordinal": 141,
      "text": "分钟的",
      "top": 698.0,
      "left": 249.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0142",
      "page": 35,
      "ordinal": 142,
      "text": " span ",
      "top": 698.0,
      "left": 293.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0143",
      "page": 35,
      "ordinal": 143,
      "text": "物理内存；",
      "top": 698.0,
      "left": 334.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b002"
      }
    },
    {
      "id": "p035-t0145",
      "page": 35,
      "ordinal": 145,
      "text": "2. ",
      "top": 729.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b003"
      }
    },
    {
      "id": "p035-t0146",
      "page": 35,
      "ordinal": 146,
      "text": "如果超过",
      "top": 729.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b003"
      }
    },
    {
      "id": "p035-t0147",
      "page": 35,
      "ordinal": 147,
      "text": " 2 ",
      "top": 729.0,
      "left": 204.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b003"
      }
    },
    {
      "id": "p035-t0148",
      "page": 35,
      "ordinal": 148,
      "text": "分钟没有垃圾回收，强制执行；",
      "top": 729.0,
      "left": 220.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b003"
      }
    },
    {
      "id": "p035-t0150",
      "page": 35,
      "ordinal": 150,
      "text": "3. ",
      "top": 759.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b004"
      }
    },
    {
      "id": "p035-t0151",
      "page": 35,
      "ordinal": 151,
      "text": "将长时间未处理的",
      "top": 759.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b004"
      }
    },
    {
      "id": "p035-t0152",
      "page": 35,
      "ordinal": 152,
      "text": " netpoll ",
      "top": 759.0,
      "left": 263.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b004"
      }
    },
    {
      "id": "p035-t0153",
      "page": 35,
      "ordinal": 153,
      "text": "添加到全局队列；",
      "top": 759.0,
      "left": 318.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b004"
      }
    },
    {
      "id": "p035-t0155",
      "page": 35,
      "ordinal": 155,
      "text": "4. ",
      "top": 791.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0156",
      "page": 35,
      "ordinal": 156,
      "text": "向长时间运行的",
      "top": 791.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0157",
      "page": 35,
      "ordinal": 157,
      "text": " G ",
      "top": 791.0,
      "left": 248.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0158",
      "page": 35,
      "ordinal": 158,
      "text": "任务发出抢占调度（超过",
      "top": 791.0,
      "left": 266.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0159",
      "page": 35,
      "ordinal": 159,
      "text": " 10ms ",
      "top": 791.0,
      "left": 427.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0160",
      "page": 35,
      "ordinal": 160,
      "text": "的",
      "top": 791.0,
      "left": 472.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0161",
      "page": 35,
      "ordinal": 161,
      "text": " g",
      "top": 791.0,
      "left": 487.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0162",
      "page": 35,
      "ordinal": 162,
      "text": "，会进行",
      "top": 791.0,
      "left": 498.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0163",
      "page": 35,
      "ordinal": 163,
      "text": " retake",
      "top": 791.0,
      "left": 557.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0164",
      "page": 35,
      "ordinal": 164,
      "text": "）；",
      "top": 791.0,
      "left": 604.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b005"
      }
    },
    {
      "id": "p035-t0166",
      "page": 35,
      "ordinal": 166,
      "text": "5. ",
      "top": 821.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p035-t0167",
      "page": 35,
      "ordinal": 167,
      "text": "收回因",
      "top": 821.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p035-t0168",
      "page": 35,
      "ordinal": 168,
      "text": " syscall ",
      "top": 821.0,
      "left": 189.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p035-t0169",
      "page": 35,
      "ordinal": 169,
      "text": "长时间阻塞的",
      "top": 821.0,
      "left": 241.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p035-t0170",
      "page": 35,
      "ordinal": 170,
      "text": " P",
      "top": 821.0,
      "left": 329.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p035-t0171",
      "page": 35,
      "ordinal": 171,
      "text": "；",
      "top": 821.0,
      "left": 341.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p035-h03",
        "heading_id": "p035-h03",
        "block_id": "q-p035-h03-b006"
      }
    },
    {
      "id": "p036-t0001",
      "page": 36,
      "ordinal": 1,
      "text": "三色标记原理",
      "top": 40.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01"
      }
    },
    {
      "id": "p036-t0005",
      "page": 36,
      "ordinal": 5,
      "text": "我们首先看一张图，大概就会对",
      "top": 91.0,
      "left": 116.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b001"
      }
    },
    {
      "id": "p036-t0007",
      "page": 36,
      "ordinal": 7,
      "text": "三色标记法有一个大致的了解：",
      "top": 91.0,
      "left": 324.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b001"
      }
    },
    {
      "id": "p036-t0009",
      "page": 36,
      "ordinal": 9,
      "text": "原理：",
      "top": 595.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b003"
      }
    },
    {
      "id": "p036-t0011",
      "page": 36,
      "ordinal": 11,
      "text": "1. ",
      "top": 631.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b004"
      }
    },
    {
      "id": "p036-t0012",
      "page": 36,
      "ordinal": 12,
      "text": "首先把所有的对象都放到白色的集合中",
      "top": 631.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b004"
      }
    },
    {
      "id": "p036-t0014",
      "page": 36,
      "ordinal": 14,
      "text": "2. ",
      "top": 661.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b005"
      }
    },
    {
      "id": "p036-t0015",
      "page": 36,
      "ordinal": 15,
      "text": "从根节点开始遍历对象，遍历到的白色对象从白色集合中放到灰色集合中",
      "top": 661.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b005"
      }
    },
    {
      "id": "p036-t0017",
      "page": 36,
      "ordinal": 17,
      "text": "3. ",
      "top": 692.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b006"
      }
    },
    {
      "id": "p036-t0018",
      "page": 36,
      "ordinal": 18,
      "text": "遍历灰色集合中的对象，把灰色对象引用的白色集合的对象放入到灰色集",
      "top": 692.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b006"
      }
    },
    {
      "id": "p036-t0020",
      "page": 36,
      "ordinal": 20,
      "text": "合中，同时把遍历过的灰",
      "top": 692.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b006"
      }
    },
    {
      "id": "p036-t0021",
      "page": 36,
      "ordinal": 21,
      "text": "色集合中的对象放到黑色的集合中",
      "top": 715.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b006"
      }
    },
    {
      "id": "p036-t0023",
      "page": 36,
      "ordinal": 23,
      "text": "4. ",
      "top": 746.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b007"
      }
    },
    {
      "id": "p036-t0024",
      "page": 36,
      "ordinal": 24,
      "text": "循环步骤",
      "top": 746.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b007"
      }
    },
    {
      "id": "p036-t0025",
      "page": 36,
      "ordinal": 25,
      "text": " 3",
      "top": 746.0,
      "left": 204.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b007"
      }
    },
    {
      "id": "p036-t0026",
      "page": 36,
      "ordinal": 26,
      "text": "，知道灰色集合中没有对象",
      "top": 746.0,
      "left": 216.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b007"
      }
    },
    {
      "id": "p036-t0028",
      "page": 36,
      "ordinal": 28,
      "text": "5. ",
      "top": 776.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b008"
      }
    },
    {
      "id": "p036-t0029",
      "page": 36,
      "ordinal": 29,
      "text": "步骤",
      "top": 776.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b008"
      }
    },
    {
      "id": "p036-t0030",
      "page": 36,
      "ordinal": 30,
      "text": " 4 ",
      "top": 776.0,
      "left": 175.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b008"
      }
    },
    {
      "id": "p036-t0031",
      "page": 36,
      "ordinal": 31,
      "text": "结束后，白色集合中的对象就是不可达对象，也就是垃圾，进行回收",
      "top": 776.0,
      "left": 191.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p036-h01",
        "heading_id": "p036-h01",
        "block_id": "q-p036-h01-b008"
      }
    },
    {
      "id": "p037-t0001",
      "page": 37,
      "ordinal": 1,
      "text": "写屏障",
      "top": 40.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01"
      }
    },
    {
      "id": "p037-t0004",
      "page": 37,
      "ordinal": 4,
      "text": " Go ",
      "top": 91.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0005",
      "page": 37,
      "ordinal": 5,
      "text": "在进行三色标记的时候并没有",
      "top": 91.0,
      "left": 139.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0006",
      "page": 37,
      "ordinal": 6,
      "text": " STW",
      "top": 91.0,
      "left": 329.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0007",
      "page": 37,
      "ordinal": 7,
      "text": "，也就是说，此时的对象还是可以进行修",
      "top": 91.0,
      "left": 362.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0009",
      "page": 37,
      "ordinal": 9,
      "text": "改。",
      "top": 91.0,
      "left": 629.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0011",
      "page": 37,
      "ordinal": 11,
      "text": "那么我们考虑一",
      "top": 91.0,
      "left": 663.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0012",
      "page": 37,
      "ordinal": 12,
      "text": "下，下面的情况。",
      "top": 114.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b001"
      }
    },
    {
      "id": "p037-t0014",
      "page": 37,
      "ordinal": 14,
      "text": "我们在进行三色标记中扫描灰色集合中，扫描到了对象",
      "top": 595.0,
      "left": 116.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0015",
      "page": 37,
      "ordinal": 15,
      "text": " A",
      "top": 595.0,
      "left": 467.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0016",
      "page": 37,
      "ordinal": 16,
      "text": "，并标记了对象",
      "top": 595.0,
      "left": 480.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0017",
      "page": 37,
      "ordinal": 17,
      "text": " A ",
      "top": 595.0,
      "left": 582.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0018",
      "page": 37,
      "ordinal": 18,
      "text": "的",
      "top": 595.0,
      "left": 599.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0020",
      "page": 37,
      "ordinal": 20,
      "text": "所有引用，这时候，开始",
      "top": 595.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0021",
      "page": 37,
      "ordinal": 21,
      "text": "扫描对象",
      "top": 618.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0022",
      "page": 37,
      "ordinal": 22,
      "text": " D ",
      "top": 618.0,
      "left": 170.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0023",
      "page": 37,
      "ordinal": 23,
      "text": "的引用，而此时，另一个",
      "top": 618.0,
      "left": 189.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0024",
      "page": 37,
      "ordinal": 24,
      "text": " goroutine ",
      "top": 618.0,
      "left": 349.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0025",
      "page": 37,
      "ordinal": 25,
      "text": "修改",
      "top": 618.0,
      "left": 424.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0027",
      "page": 37,
      "ordinal": 27,
      "text": "了",
      "top": 618.0,
      "left": 457.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0028",
      "page": 37,
      "ordinal": 28,
      "text": " D->E ",
      "top": 618.0,
      "left": 471.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0029",
      "page": 37,
      "ordinal": 29,
      "text": "的引用，变成了如下图所示",
      "top": 618.0,
      "left": 511.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b003"
      }
    },
    {
      "id": "p037-t0031",
      "page": 37,
      "ordinal": 31,
      "text": "这样会不会导致",
      "top": 1154.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p037-t0032",
      "page": 37,
      "ordinal": 32,
      "text": " E ",
      "top": 1154.0,
      "left": 218.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p037-t0033",
      "page": 37,
      "ordinal": 33,
      "text": "对象就扫描不到了，而被误认为",
      "top": 1154.0,
      "left": 234.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p037-t0035",
      "page": 37,
      "ordinal": 35,
      "text": "为白色对象，也就是垃圾",
      "top": 1154.0,
      "left": 442.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p037-t0037",
      "page": 37,
      "ordinal": 37,
      "text": "写屏障就是为了解决这样",
      "top": 1154.0,
      "left": 607.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0001",
      "page": 38,
      "ordinal": 1,
      "text": "的问题，引入写屏障后，在上述步骤后，",
      "top": 44.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0002",
      "page": 38,
      "ordinal": 2,
      "text": "E ",
      "top": 44.0,
      "left": 375.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0003",
      "page": 38,
      "ordinal": 3,
      "text": "会被认为",
      "top": 44.0,
      "left": 387.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0005",
      "page": 38,
      "ordinal": 5,
      "text": "是存活的，即使后面",
      "top": 44.0,
      "left": 449.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0006",
      "page": 38,
      "ordinal": 6,
      "text": " E ",
      "top": 44.0,
      "left": 581.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0007",
      "page": 38,
      "ordinal": 7,
      "text": "被",
      "top": 44.0,
      "left": 597.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0008",
      "page": 38,
      "ordinal": 8,
      "text": " A ",
      "top": 44.0,
      "left": 611.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0009",
      "page": 38,
      "ordinal": 9,
      "text": "对象抛弃，",
      "top": 44.0,
      "left": 628.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0010",
      "page": 38,
      "ordinal": 10,
      "text": "E ",
      "top": 44.0,
      "left": 701.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0011",
      "page": 38,
      "ordinal": 11,
      "text": "会被在下",
      "top": 44.0,
      "left": 713.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0012",
      "page": 38,
      "ordinal": 12,
      "text": "一轮的",
      "top": 67.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0013",
      "page": 38,
      "ordinal": 13,
      "text": " GC ",
      "top": 67.0,
      "left": 156.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0014",
      "page": 38,
      "ordinal": 14,
      "text": "中进行回收，这一",
      "top": 67.0,
      "left": 183.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0016",
      "page": 38,
      "ordinal": 16,
      "text": "轮",
      "top": 67.0,
      "left": 304.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0017",
      "page": 38,
      "ordinal": 17,
      "text": " GC ",
      "top": 67.0,
      "left": 319.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0018",
      "page": 38,
      "ordinal": 18,
      "text": "中是不会对对象",
      "top": 67.0,
      "left": 346.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0019",
      "page": 38,
      "ordinal": 19,
      "text": " E ",
      "top": 67.0,
      "left": 448.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0020",
      "page": 38,
      "ordinal": 20,
      "text": "进行回收的",
      "top": 67.0,
      "left": 464.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p037-h01",
        "heading_id": "p037-h01",
        "block_id": "q-p037-h01-b005"
      }
    },
    {
      "id": "p038-t0022",
      "page": 38,
      "ordinal": 22,
      "text": "插入写屏障",
      "top": 102.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01"
      }
    },
    {
      "id": "p038-t0025",
      "page": 38,
      "ordinal": 25,
      "text": " Go GC ",
      "top": 152.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0026",
      "page": 38,
      "ordinal": 26,
      "text": "在混合写屏障之前，一直是插入写屏障，由于栈赋值没有",
      "top": 152.0,
      "left": 163.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0027",
      "page": 38,
      "ordinal": 27,
      "text": " hook ",
      "top": 152.0,
      "left": 528.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0028",
      "page": 38,
      "ordinal": 28,
      "text": "的原",
      "top": 152.0,
      "left": 570.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0030",
      "page": 38,
      "ordinal": 30,
      "text": "因，栈中没有启用写屏障，",
      "top": 152.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0031",
      "page": 38,
      "ordinal": 31,
      "text": "所以有",
      "top": 175.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0032",
      "page": 38,
      "ordinal": 32,
      "text": " STW",
      "top": 175.0,
      "left": 156.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0033",
      "page": 38,
      "ordinal": 33,
      "text": "。",
      "top": 175.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0034",
      "page": 38,
      "ordinal": 34,
      "text": "Golang ",
      "top": 175.0,
      "left": 204.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0035",
      "page": 38,
      "ordinal": 35,
      "text": "的解决方法是：只是需要在结",
      "top": 175.0,
      "left": 256.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0037",
      "page": 38,
      "ordinal": 37,
      "text": "束时启动",
      "top": 175.0,
      "left": 450.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0038",
      "page": 38,
      "ordinal": 38,
      "text": " STW ",
      "top": 175.0,
      "left": 508.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0039",
      "page": 38,
      "ordinal": 39,
      "text": "来重新扫描栈。这个自然就会导致整",
      "top": 175.0,
      "left": 545.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0040",
      "page": 38,
      "ordinal": 40,
      "text": "个进程的赋值器卡顿。",
      "top": 199.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h01",
        "heading_id": "p038-h01",
        "block_id": "q-p038-h01-b001"
      }
    },
    {
      "id": "p038-t0042",
      "page": 38,
      "ordinal": 42,
      "text": "删除写屏障",
      "top": 233.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02"
      }
    },
    {
      "id": "p038-t0045",
      "page": 38,
      "ordinal": 45,
      "text": " Golang ",
      "top": 284.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0046",
      "page": 38,
      "ordinal": 46,
      "text": "没有这一步，",
      "top": 284.0,
      "left": 168.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0047",
      "page": 38,
      "ordinal": 47,
      "text": "Golang ",
      "top": 284.0,
      "left": 255.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0048",
      "page": 38,
      "ordinal": 48,
      "text": "的内存写屏障是由插入写屏障到混合写屏障过渡",
      "top": 284.0,
      "left": 308.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0050",
      "page": 38,
      "ordinal": 50,
      "text": "的。简单介绍一下，一个",
      "top": 284.0,
      "left": 618.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0051",
      "page": 38,
      "ordinal": 51,
      "text": "对象即使被删除了最后一个指向它的指针也依旧可以",
      "top": 308.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0053",
      "page": 38,
      "ordinal": 53,
      "text": "活过这一轮，在下一轮",
      "top": 308.0,
      "left": 452.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0054",
      "page": 38,
      "ordinal": 54,
      "text": " GC ",
      "top": 308.0,
      "left": 598.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0055",
      "page": 38,
      "ordinal": 55,
      "text": "中才被清理掉",
      "top": 308.0,
      "left": 626.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h02",
        "heading_id": "p038-h02",
        "block_id": "q-p038-h02-b001"
      }
    },
    {
      "id": "p038-t0057",
      "page": 38,
      "ordinal": 57,
      "text": "混合写屏障",
      "top": 341.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03"
      }
    },
    {
      "id": "p038-t0060",
      "page": 38,
      "ordinal": 60,
      "text": "1. ",
      "top": 392.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b001"
      }
    },
    {
      "id": "p038-t0061",
      "page": 38,
      "ordinal": 61,
      "text": "混合写屏障继承了插入写屏障的优点，起始无需",
      "top": 392.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b001"
      }
    },
    {
      "id": "p038-t0062",
      "page": 38,
      "ordinal": 62,
      "text": " STW ",
      "top": 392.0,
      "left": 453.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b001"
      }
    },
    {
      "id": "p038-t0063",
      "page": 38,
      "ordinal": 63,
      "text": "打快照，直接并发扫",
      "top": 392.0,
      "left": 490.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b001"
      }
    },
    {
      "id": "p038-t0065",
      "page": 38,
      "ordinal": 65,
      "text": "描垃圾即可；",
      "top": 392.0,
      "left": 625.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b001"
      }
    },
    {
      "id": "p038-t0066",
      "page": 38,
      "ordinal": 66,
      "text": "2. ",
      "top": 423.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0067",
      "page": 38,
      "ordinal": 67,
      "text": "混合写屏障继承了删除写屏障的优点，赋值器是黑色赋值器，",
      "top": 423.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0068",
      "page": 38,
      "ordinal": 68,
      "text": "GC ",
      "top": 423.0,
      "left": 540.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0069",
      "page": 38,
      "ordinal": 69,
      "text": "期间，任",
      "top": 423.0,
      "left": 564.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0071",
      "page": 38,
      "ordinal": 71,
      "text": "何在栈上创建的新对",
      "top": 423.0,
      "left": 626.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0072",
      "page": 38,
      "ordinal": 72,
      "text": "象，均为黑色。扫描过一次就不需要扫描了，这样就",
      "top": 446.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0074",
      "page": 38,
      "ordinal": 74,
      "text": "消除了插入写屏障时期最后",
      "top": 446.0,
      "left": 486.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0075",
      "page": 38,
      "ordinal": 75,
      "text": " STW ",
      "top": 446.0,
      "left": 661.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0076",
      "page": 38,
      "ordinal": 76,
      "text": "的重新扫描",
      "top": 446.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0077",
      "page": 38,
      "ordinal": 77,
      "text": "栈；",
      "top": 470.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b002"
      }
    },
    {
      "id": "p038-t0079",
      "page": 38,
      "ordinal": 79,
      "text": "3. ",
      "top": 500.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0080",
      "page": 38,
      "ordinal": 80,
      "text": "混合写屏障扫描精度继承了删除写屏障，比插入写屏障更低，随着带来的",
      "top": 500.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0082",
      "page": 38,
      "ordinal": 82,
      "text": "是",
      "top": 500.0,
      "left": 617.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0083",
      "page": 38,
      "ordinal": 83,
      "text": " GC ",
      "top": 500.0,
      "left": 632.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0084",
      "page": 38,
      "ordinal": 84,
      "text": "过程全程无",
      "top": 500.0,
      "left": 659.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0085",
      "page": 38,
      "ordinal": 85,
      "text": " STW",
      "top": 500.0,
      "left": 733.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0086",
      "page": 38,
      "ordinal": 86,
      "text": "；",
      "top": 500.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b003"
      }
    },
    {
      "id": "p038-t0087",
      "page": 38,
      "ordinal": 87,
      "text": "4. ",
      "top": 532.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0088",
      "page": 38,
      "ordinal": 88,
      "text": "混合写屏障扫描栈虽然没有",
      "top": 532.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0089",
      "page": 38,
      "ordinal": 89,
      "text": " STW",
      "top": 532.0,
      "left": 321.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0090",
      "page": 38,
      "ordinal": 90,
      "text": "，但是扫描某一个具体的栈的时候，还是",
      "top": 532.0,
      "left": 354.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0092",
      "page": 38,
      "ordinal": 92,
      "text": "要停止这个",
      "top": 532.0,
      "left": 622.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0093",
      "page": 38,
      "ordinal": 93,
      "text": " goroutine ",
      "top": 532.0,
      "left": 695.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0094",
      "page": 38,
      "ordinal": 94,
      "text": "赋值器的工作（针对一个",
      "top": 554.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0095",
      "page": 38,
      "ordinal": 95,
      "text": " goroutine ",
      "top": 554.0,
      "left": 306.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0096",
      "page": 38,
      "ordinal": 96,
      "text": "栈来说，是",
      "top": 554.0,
      "left": 381.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0098",
      "page": 38,
      "ordinal": 98,
      "text": "暂停扫的，要么全灰，要么全黑哈，原子状态切",
      "top": 554.0,
      "left": 458.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0099",
      "page": 38,
      "ordinal": 99,
      "text": "换）",
      "top": 578.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h03",
        "heading_id": "p038-h03",
        "block_id": "q-p038-h03-b004"
      }
    },
    {
      "id": "p038-t0101",
      "page": 38,
      "ordinal": 101,
      "text": "GC ",
      "top": 613.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04"
      }
    },
    {
      "id": "p038-t0102",
      "page": 38,
      "ordinal": 102,
      "text": "触发时机",
      "top": 613.0,
      "left": 153.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04"
      }
    },
    {
      "id": "p038-t0106",
      "page": 38,
      "ordinal": 106,
      "text": "主动触发：调用",
      "top": 663.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0107",
      "page": 38,
      "ordinal": 107,
      "text": " runtime.GC",
      "top": 663.0,
      "left": 218.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0109",
      "page": 38,
      "ordinal": 109,
      "text": "被动触发：",
      "top": 687.0,
      "left": 116.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0111",
      "page": 38,
      "ordinal": 111,
      "text": "使用系统监控，该触发条件由",
      "top": 687.0,
      "left": 192.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0112",
      "page": 38,
      "ordinal": 112,
      "text": " runtime.forcegcperiod ",
      "top": 687.0,
      "left": 383.0,
      "width": 161.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0113",
      "page": 38,
      "ordinal": 113,
      "text": "变量控制，默认为",
      "top": 687.0,
      "left": 543.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0114",
      "page": 38,
      "ordinal": 114,
      "text": " 2 ",
      "top": 687.0,
      "left": 660.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0115",
      "page": 38,
      "ordinal": 115,
      "text": "分",
      "top": 687.0,
      "left": 676.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0117",
      "page": 38,
      "ordinal": 117,
      "text": "钟。当超过",
      "top": 687.0,
      "left": 695.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0118",
      "page": 38,
      "ordinal": 118,
      "text": "两分钟没有产生任何",
      "top": 710.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0119",
      "page": 38,
      "ordinal": 119,
      "text": " GC ",
      "top": 710.0,
      "left": 243.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0120",
      "page": 38,
      "ordinal": 120,
      "text": "时，强制触发",
      "top": 710.0,
      "left": 271.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0121",
      "page": 38,
      "ordinal": 121,
      "text": " GC",
      "top": 710.0,
      "left": 359.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0122",
      "page": 38,
      "ordinal": 122,
      "text": "。",
      "top": 710.0,
      "left": 382.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0124",
      "page": 38,
      "ordinal": 124,
      "text": "使用步调（",
      "top": 710.0,
      "left": 401.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0125",
      "page": 38,
      "ordinal": 125,
      "text": "Pacing",
      "top": 710.0,
      "left": 474.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0126",
      "page": 38,
      "ordinal": 126,
      "text": "）算法，其核心思想是控制内存增长的比",
      "top": 710.0,
      "left": 518.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0127",
      "page": 38,
      "ordinal": 127,
      "text": "例。如",
      "top": 733.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0128",
      "page": 38,
      "ordinal": 128,
      "text": " Go ",
      "top": 733.0,
      "left": 156.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0129",
      "page": 38,
      "ordinal": 129,
      "text": "的",
      "top": 733.0,
      "left": 183.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0130",
      "page": 38,
      "ordinal": 130,
      "text": " GC ",
      "top": 733.0,
      "left": 197.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0131",
      "page": 38,
      "ordinal": 131,
      "text": "是一种比例",
      "top": 733.0,
      "left": 225.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0132",
      "page": 38,
      "ordinal": 132,
      "text": " GC, ",
      "top": 733.0,
      "left": 298.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0133",
      "page": 38,
      "ordinal": 133,
      "text": "下一次",
      "top": 733.0,
      "left": 329.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0134",
      "page": 38,
      "ordinal": 134,
      "text": " GC ",
      "top": 733.0,
      "left": 373.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0135",
      "page": 38,
      "ordinal": 135,
      "text": "结束时的堆大小和上一次",
      "top": 733.0,
      "left": 400.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0136",
      "page": 38,
      "ordinal": 136,
      "text": " GC ",
      "top": 733.0,
      "left": 561.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0137",
      "page": 38,
      "ordinal": 137,
      "text": "存活堆大小成比例",
      "top": 733.0,
      "left": 589.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0138",
      "page": 38,
      "ordinal": 138,
      "text": ". ",
      "top": 733.0,
      "left": 706.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0139",
      "page": 38,
      "ordinal": 139,
      "text": "。",
      "top": 733.0,
      "left": 713.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h04",
        "heading_id": "p038-h04",
        "block_id": "q-p038-h04-b001"
      }
    },
    {
      "id": "p038-t0140",
      "page": 38,
      "ordinal": 140,
      "text": "Go ",
      "top": 768.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05"
      }
    },
    {
      "id": "p038-t0141",
      "page": 38,
      "ordinal": 141,
      "text": "语言中",
      "top": 768.0,
      "left": 153.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05"
      }
    },
    {
      "id": "p038-t0142",
      "page": 38,
      "ordinal": 142,
      "text": " GC ",
      "top": 768.0,
      "left": 230.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05"
      }
    },
    {
      "id": "p038-t0143",
      "page": 38,
      "ordinal": 143,
      "text": "的流程是什么？",
      "top": 768.0,
      "left": 278.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05"
      }
    },
    {
      "id": "p038-t0146",
      "page": 38,
      "ordinal": 146,
      "text": " Go1.14 ",
      "top": 819.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0147",
      "page": 38,
      "ordinal": 147,
      "text": "版本以",
      "top": 819.0,
      "left": 168.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0148",
      "page": 38,
      "ordinal": 148,
      "text": " STW ",
      "top": 819.0,
      "left": 212.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0149",
      "page": 38,
      "ordinal": 149,
      "text": "为界限，可以将",
      "top": 819.0,
      "left": 249.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0150",
      "page": 38,
      "ordinal": 150,
      "text": " GC ",
      "top": 819.0,
      "left": 351.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0151",
      "page": 38,
      "ordinal": 151,
      "text": "划分为五个阶段：",
      "top": 819.0,
      "left": 379.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0152",
      "page": 38,
      "ordinal": 152,
      "text": " GCMark ",
      "top": 819.0,
      "left": 496.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0153",
      "page": 38,
      "ordinal": 153,
      "text": "标记准备阶段，为并发标记做准备",
      "top": 819.0,
      "left": 558.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0154",
      "page": 38,
      "ordinal": 154,
      "text": "工作，启动写屏障",
      "top": 842.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0155",
      "page": 38,
      "ordinal": 155,
      "text": " STWGCMark ",
      "top": 842.0,
      "left": 229.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0156",
      "page": 38,
      "ordinal": 156,
      "text": "扫描标记阶段，与赋值器并发执行，写屏障开启并发",
      "top": 842.0,
      "left": 321.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0158",
      "page": 38,
      "ordinal": 158,
      "text": "GCMarkTermination ",
      "top": 866.0,
      "left": 112.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0159",
      "page": 38,
      "ordinal": 159,
      "text": "标记终止阶段，保证一个周期内标记任务完成，停止写屏",
      "top": 866.0,
      "left": 254.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0161",
      "page": 38,
      "ordinal": 161,
      "text": "障",
      "top": 866.0,
      "left": 623.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0162",
      "page": 38,
      "ordinal": 162,
      "text": " GCoff ",
      "top": 866.0,
      "left": 638.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0163",
      "page": 38,
      "ordinal": 163,
      "text": "内存清扫阶",
      "top": 866.0,
      "left": 684.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0164",
      "page": 38,
      "ordinal": 164,
      "text": "段，将需要回收的内存归还到堆中，写屏障关闭",
      "top": 888.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0165",
      "page": 38,
      "ordinal": 165,
      "text": " GCoff ",
      "top": 888.0,
      "left": 419.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0166",
      "page": 38,
      "ordinal": 166,
      "text": "内存归还阶段，将过多的内存归还给操作系统，",
      "top": 888.0,
      "left": 465.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0167",
      "page": 38,
      "ordinal": 167,
      "text": "写屏障关闭。",
      "top": 912.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h05",
        "heading_id": "p038-h05",
        "block_id": "q-p038-h05-b001"
      }
    },
    {
      "id": "p038-t0169",
      "page": 38,
      "ordinal": 169,
      "text": "GC ",
      "top": 947.0,
      "left": 112.0,
      "width": 41.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06"
      }
    },
    {
      "id": "p038-t0170",
      "page": 38,
      "ordinal": 170,
      "text": "如何调优",
      "top": 947.0,
      "left": 153.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06"
      }
    },
    {
      "id": "p038-t0174",
      "page": 38,
      "ordinal": 174,
      "text": "通过",
      "top": 998.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b001"
      }
    },
    {
      "id": "p038-t0175",
      "page": 38,
      "ordinal": 175,
      "text": " go tool pprof ",
      "top": 998.0,
      "left": 145.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b001"
      }
    },
    {
      "id": "p038-t0176",
      "page": 38,
      "ordinal": 176,
      "text": "和",
      "top": 998.0,
      "left": 241.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b001"
      }
    },
    {
      "id": "p038-t0177",
      "page": 38,
      "ordinal": 177,
      "text": " go tool trace ",
      "top": 998.0,
      "left": 256.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b001"
      }
    },
    {
      "id": "p038-t0178",
      "page": 38,
      "ordinal": 178,
      "text": "等工具",
      "top": 998.0,
      "left": 349.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b001"
      }
    },
    {
      "id": "p038-t0180",
      "page": 38,
      "ordinal": 180,
      "text": "1. ",
      "top": 1032.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0181",
      "page": 38,
      "ordinal": 181,
      "text": "控制内存分配的速度，限制",
      "top": 1032.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0182",
      "page": 38,
      "ordinal": 182,
      "text": " Goroutine ",
      "top": 1032.0,
      "left": 321.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0183",
      "page": 38,
      "ordinal": 183,
      "text": "的数量，从而提高赋值器对",
      "top": 1032.0,
      "left": 398.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0184",
      "page": 38,
      "ordinal": 184,
      "text": " CPU ",
      "top": 1032.0,
      "left": 573.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0185",
      "page": 38,
      "ordinal": 185,
      "text": "的利用率。",
      "top": 1032.0,
      "left": 610.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b002"
      }
    },
    {
      "id": "p038-t0187",
      "page": 38,
      "ordinal": 187,
      "text": "2. ",
      "top": 1063.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0188",
      "page": 38,
      "ordinal": 188,
      "text": "减少并复用内存，例如使用",
      "top": 1063.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0189",
      "page": 38,
      "ordinal": 189,
      "text": " sync.Pool ",
      "top": 1063.0,
      "left": 321.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0190",
      "page": 38,
      "ordinal": 190,
      "text": "来复用需要频繁创建临时对象，例",
      "top": 1063.0,
      "left": 393.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0192",
      "page": 38,
      "ordinal": 192,
      "text": "如提前分配足够的内存来",
      "top": 1063.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0193",
      "page": 38,
      "ordinal": 193,
      "text": "降低多余的拷贝。",
      "top": 1086.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b003"
      }
    },
    {
      "id": "p038-t0195",
      "page": 38,
      "ordinal": 195,
      "text": "3. ",
      "top": 1117.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p038-t0196",
      "page": 38,
      "ordinal": 196,
      "text": "需要时，增大",
      "top": 1117.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p038-t0197",
      "page": 38,
      "ordinal": 197,
      "text": " GOGC ",
      "top": 1117.0,
      "left": 233.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p038-t0198",
      "page": 38,
      "ordinal": 198,
      "text": "的值，降低",
      "top": 1117.0,
      "left": 283.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p038-t0199",
      "page": 38,
      "ordinal": 199,
      "text": " GC ",
      "top": 1117.0,
      "left": 356.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p038-t0200",
      "page": 38,
      "ordinal": 200,
      "text": "的运行频率。",
      "top": 1117.0,
      "left": 383.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p038-h06",
        "heading_id": "p038-h06",
        "block_id": "q-p038-h06-b004"
      }
    },
    {
      "id": "p039-t0001",
      "page": 39,
      "ordinal": 1,
      "text": "Golang GC ",
      "top": 40.0,
      "left": 112.0,
      "width": 137.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01"
      }
    },
    {
      "id": "p039-t0002",
      "page": 39,
      "ordinal": 2,
      "text": "时会发⽣什么",
      "top": 40.0,
      "left": 249.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01"
      }
    },
    {
      "id": "p039-t0003",
      "page": 39,
      "ordinal": 3,
      "text": "?",
      "top": 40.0,
      "left": 402.0,
      "width": 12.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01"
      }
    },
    {
      "id": "p039-t0005",
      "page": 39,
      "ordinal": 5,
      "text": "⾸先我们先来了解下垃圾回收",
      "top": 91.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0006",
      "page": 39,
      "ordinal": 6,
      "text": ".",
      "top": 91.0,
      "left": 302.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0007",
      "page": 39,
      "ordinal": 7,
      "text": "什么是垃圾回收？",
      "top": 91.0,
      "left": 306.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0008",
      "page": 39,
      "ordinal": 8,
      "text": "内存管理是程序员开发应⽤的⼀⼤难题。传统的系统级编程语⾔（主要指",
      "top": 114.0,
      "left": 112.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0009",
      "page": 39,
      "ordinal": 9,
      "text": "C/C++",
      "top": 114.0,
      "left": 580.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0010",
      "page": 39,
      "ordinal": 10,
      "text": "）中，程序开发者必须对",
      "top": 114.0,
      "left": 620.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0011",
      "page": 39,
      "ordinal": 11,
      "text": "内存⼩⼼的进⾏管理操作，控制内存的申请及释放。因为稍有不慎，就可能产⽣内存泄露问题，这种问",
      "top": 137.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0012",
      "page": 39,
      "ordinal": 12,
      "text": "题不易发现并且难以定位，⼀直成为困扰程序开发者的噩梦。如何解决这个头疼的问题呢？",
      "top": 161.0,
      "left": 112.0,
      "width": 585.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0013",
      "page": 39,
      "ordinal": 13,
      "text": "过去⼀般采⽤两种办法：",
      "top": 184.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b001"
      }
    },
    {
      "id": "p039-t0014",
      "page": 39,
      "ordinal": 14,
      "text": "1. ",
      "top": 219.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b002"
      }
    },
    {
      "id": "p039-t0015",
      "page": 39,
      "ordinal": 15,
      "text": "内存泄露检测⼯具。这种⼯具的原理⼀般是静态代码扫描，通过扫描程序检测可能出现内存泄露的",
      "top": 219.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b002"
      }
    },
    {
      "id": "p039-t0016",
      "page": 39,
      "ordinal": 16,
      "text": "代码段。然",
      "top": 243.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b002"
      }
    },
    {
      "id": "p039-t0017",
      "page": 39,
      "ordinal": 17,
      "text": "⽽检测⼯具难免有疏漏和不⾜，只能起到辅助作⽤。",
      "top": 266.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b002"
      }
    },
    {
      "id": "p039-t0018",
      "page": 39,
      "ordinal": 18,
      "text": "2. ",
      "top": 297.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0019",
      "page": 39,
      "ordinal": 19,
      "text": "智能指针。这是",
      "top": 297.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0020",
      "page": 39,
      "ordinal": 20,
      "text": " c++ ",
      "top": 297.0,
      "left": 248.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0021",
      "page": 39,
      "ordinal": 21,
      "text": "中引⼊的⾃动内存管理⽅法，通过拥有⾃动内存管理功能的指针对象来引⽤对",
      "top": 297.0,
      "left": 279.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0022",
      "page": 39,
      "ordinal": 22,
      "text": "象，是程",
      "top": 320.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0023",
      "page": 39,
      "ordinal": 23,
      "text": "序员不⽤太关注内存的释放，⽽达到内存⾃动释放的⽬的。这种⽅法是采⽤最⼴泛的做法，但是对",
      "top": 344.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0024",
      "page": 39,
      "ordinal": 24,
      "text": "程序开发者",
      "top": 368.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0025",
      "page": 39,
      "ordinal": 25,
      "text": "有⼀定的学习成本（并⾮语⾔层⾯的原⽣⽀持），⽽且⼀旦有忘记使⽤的场景依然⽆法避免内存泄",
      "top": 390.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0026",
      "page": 39,
      "ordinal": 26,
      "text": "露。",
      "top": 414.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0027",
      "page": 39,
      "ordinal": 27,
      "text": "为了解决这个问题，后来开发出来的⼏乎所有新语⾔（",
      "top": 437.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0028",
      "page": 39,
      "ordinal": 28,
      "text": "java",
      "top": 437.0,
      "left": 497.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0029",
      "page": 39,
      "ordinal": 29,
      "text": "，",
      "top": 437.0,
      "left": 524.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0030",
      "page": 39,
      "ordinal": 30,
      "text": "python",
      "top": 437.0,
      "left": 538.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0031",
      "page": 39,
      "ordinal": 31,
      "text": "，",
      "top": 437.0,
      "left": 587.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0032",
      "page": 39,
      "ordinal": 32,
      "text": "php",
      "top": 437.0,
      "left": 601.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0033",
      "page": 39,
      "ordinal": 33,
      "text": "等等）都引⼊了语⾔层",
      "top": 437.0,
      "left": 628.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0034",
      "page": 39,
      "ordinal": 34,
      "text": "⾯的⾃动内存管",
      "top": 461.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0035",
      "page": 39,
      "ordinal": 35,
      "text": "理",
      "top": 485.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0036",
      "page": 39,
      "ordinal": 36,
      "text": " – ",
      "top": 485.0,
      "left": 160.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0037",
      "page": 39,
      "ordinal": 37,
      "text": "也就是语⾔的使⽤者只⽤关注内存的申请⽽不必关⼼内存的释放，内存释放由虚拟机（",
      "top": 485.0,
      "left": 175.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0038",
      "page": 39,
      "ordinal": 38,
      "text": "virtual ",
      "top": 485.0,
      "left": 731.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0039",
      "page": 39,
      "ordinal": 39,
      "text": "machine",
      "top": 507.0,
      "left": 146.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0040",
      "page": 39,
      "ordinal": 40,
      "text": "）或运",
      "top": 507.0,
      "left": 204.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0041",
      "page": 39,
      "ordinal": 41,
      "text": "⾏时（",
      "top": 531.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0042",
      "page": 39,
      "ordinal": 42,
      "text": "runtime",
      "top": 531.0,
      "left": 189.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0043",
      "page": 39,
      "ordinal": 43,
      "text": "）来⾃动进⾏管理。⽽这种对不再使⽤的内存资源进⾏⾃动回收的⾏为就被称为垃",
      "top": 531.0,
      "left": 244.0,
      "width": 527.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0044",
      "page": 39,
      "ordinal": 44,
      "text": "圾回收。",
      "top": 554.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b003"
      }
    },
    {
      "id": "p039-t0045",
      "page": 39,
      "ordinal": 45,
      "text": "常⽤的垃圾回收的⽅法",
      "top": 589.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b004"
      }
    },
    {
      "id": "p039-t0046",
      "page": 39,
      "ordinal": 46,
      "text": ":",
      "top": 589.0,
      "left": 258.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b004"
      }
    },
    {
      "id": "p039-t0047",
      "page": 39,
      "ordinal": 47,
      "text": "1. ",
      "top": 624.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0048",
      "page": 39,
      "ordinal": 48,
      "text": "引⽤计数（",
      "top": 624.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0049",
      "page": 39,
      "ordinal": 49,
      "text": "reference counting",
      "top": 624.0,
      "left": 219.0,
      "width": 129.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0050",
      "page": 39,
      "ordinal": 50,
      "text": "）",
      "top": 624.0,
      "left": 348.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0051",
      "page": 39,
      "ordinal": 51,
      "text": "这是最简单的⼀种垃圾回收算法，和之前提到的智能指针异曲同⼯。对每个对象维护⼀个引⽤计",
      "top": 648.0,
      "left": 146.0,
      "width": 614.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0052",
      "page": 39,
      "ordinal": 52,
      "text": "数，当引⽤该对象的对象被销毁或更新时被引⽤对象的引⽤计数⾃动减⼀，当被引⽤对象被创建或",
      "top": 671.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0053",
      "page": 39,
      "ordinal": 53,
      "text": "被赋值给其他对象时引⽤计数⾃动加⼀。当引⽤计数为",
      "top": 695.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0054",
      "page": 39,
      "ordinal": 54,
      "text": "0",
      "top": 695.0,
      "left": 497.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0055",
      "page": 39,
      "ordinal": 55,
      "text": "时则⽴即回收对象。",
      "top": 695.0,
      "left": 505.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0056",
      "page": 39,
      "ordinal": 56,
      "text": "这种⽅法的优点是实现简单，并且内存的回收很及时。这种算法在内存⽐较紧张和实时性⽐较⾼的",
      "top": 717.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0057",
      "page": 39,
      "ordinal": 57,
      "text": "系统中使⽤的⽐较⼴泛，如",
      "top": 741.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0058",
      "page": 39,
      "ordinal": 58,
      "text": "ios cocoa",
      "top": 741.0,
      "left": 321.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0059",
      "page": 39,
      "ordinal": 59,
      "text": "框架，",
      "top": 741.0,
      "left": 384.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0060",
      "page": 39,
      "ordinal": 60,
      "text": "php",
      "top": 741.0,
      "left": 428.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0061",
      "page": 39,
      "ordinal": 61,
      "text": "，",
      "top": 741.0,
      "left": 455.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0062",
      "page": 39,
      "ordinal": 62,
      "text": "python",
      "top": 741.0,
      "left": 469.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0063",
      "page": 39,
      "ordinal": 63,
      "text": "等。",
      "top": 741.0,
      "left": 518.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0064",
      "page": 39,
      "ordinal": 64,
      "text": "但是简单引⽤计数算法也有明显的缺点",
      "top": 765.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b005"
      }
    },
    {
      "id": "p039-t0065",
      "page": 39,
      "ordinal": 65,
      "text": "1. ",
      "top": 795.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0066",
      "page": 39,
      "ordinal": 66,
      "text": "频繁更新引⽤计数降低了性能。",
      "top": 795.0,
      "left": 179.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0067",
      "page": 39,
      "ordinal": 67,
      "text": "⼀种简单的解决⽅法就是编译器将相邻的引⽤计数更新操作合并到⼀次更新；还有⼀种⽅法是",
      "top": 819.0,
      "left": 179.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0068",
      "page": 39,
      "ordinal": 68,
      "text": "针对频繁发⽣的临时变量引⽤不进⾏计数，⽽是在引⽤达到",
      "top": 842.0,
      "left": 179.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0069",
      "page": 39,
      "ordinal": 69,
      "text": "0",
      "top": 842.0,
      "left": 560.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0070",
      "page": 39,
      "ordinal": 70,
      "text": "时通过扫描堆栈确认是否还有临",
      "top": 842.0,
      "left": 568.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0071",
      "page": 39,
      "ordinal": 71,
      "text": "时对象引⽤⽽决定是否释放。等等还有很多其他⽅法，具体可以参考这⾥。",
      "top": 866.0,
      "left": 179.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b006"
      }
    },
    {
      "id": "p039-t0072",
      "page": 39,
      "ordinal": 72,
      "text": "2. ",
      "top": 896.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0073",
      "page": 39,
      "ordinal": 73,
      "text": "循环引⽤。",
      "top": 896.0,
      "left": 179.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0074",
      "page": 39,
      "ordinal": 74,
      "text": "当对象间发⽣循环引⽤时引⽤链中的对象都⽆法得到释放。最明显的解决办法是避免产⽣循环",
      "top": 920.0,
      "left": 179.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0075",
      "page": 39,
      "ordinal": 75,
      "text": "引⽤，如",
      "top": 944.0,
      "left": 179.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0076",
      "page": 39,
      "ordinal": 76,
      "text": "cocoa",
      "top": 944.0,
      "left": 238.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0077",
      "page": 39,
      "ordinal": 77,
      "text": "引⼊",
      "top": 944.0,
      "left": 277.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0078",
      "page": 39,
      "ordinal": 78,
      "text": "了",
      "top": 966.0,
      "left": 179.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0079",
      "page": 39,
      "ordinal": 79,
      "text": "strong",
      "top": 966.0,
      "left": 194.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0080",
      "page": 39,
      "ordinal": 80,
      "text": "指针和",
      "top": 966.0,
      "left": 238.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0081",
      "page": 39,
      "ordinal": 81,
      "text": "weak",
      "top": 966.0,
      "left": 282.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0082",
      "page": 39,
      "ordinal": 82,
      "text": "指针两种指针类型。或者系统检测循环引⽤并主动打破循环链。当然这",
      "top": 966.0,
      "left": 317.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0083",
      "page": 39,
      "ordinal": 83,
      "text": "也增加了垃圾回收的复杂度。",
      "top": 990.0,
      "left": 179.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b007"
      }
    },
    {
      "id": "p039-t0084",
      "page": 39,
      "ordinal": 84,
      "text": "2. ",
      "top": 1021.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0085",
      "page": 39,
      "ordinal": 85,
      "text": "标记",
      "top": 1021.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0086",
      "page": 39,
      "ordinal": 86,
      "text": "-",
      "top": 1021.0,
      "left": 175.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0087",
      "page": 39,
      "ordinal": 87,
      "text": "清除（",
      "top": 1021.0,
      "left": 179.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0088",
      "page": 39,
      "ordinal": 88,
      "text": "mark and sweep",
      "top": 1021.0,
      "left": 223.0,
      "width": 113.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0089",
      "page": 39,
      "ordinal": 89,
      "text": "）",
      "top": 1021.0,
      "left": 336.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0090",
      "page": 39,
      "ordinal": 90,
      "text": "标记",
      "top": 1044.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0091",
      "page": 39,
      "ordinal": 91,
      "text": "-",
      "top": 1044.0,
      "left": 175.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0092",
      "page": 39,
      "ordinal": 92,
      "text": "清除（",
      "top": 1044.0,
      "left": 179.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0093",
      "page": 39,
      "ordinal": 93,
      "text": "mark and sweep",
      "top": 1044.0,
      "left": 223.0,
      "width": 113.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0094",
      "page": 39,
      "ordinal": 94,
      "text": "）分为两步，标记从根变量开始迭代得遍历所有被引⽤的对象，对能",
      "top": 1044.0,
      "left": 336.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0095",
      "page": 39,
      "ordinal": 95,
      "text": "够通过应⽤遍历访问到的对象都进⾏标记为",
      "top": 1067.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0096",
      "page": 39,
      "ordinal": 96,
      "text": "“",
      "top": 1067.0,
      "left": 423.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0097",
      "page": 39,
      "ordinal": 97,
      "text": "被引⽤",
      "top": 1067.0,
      "left": 428.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0098",
      "page": 39,
      "ordinal": 98,
      "text": "”",
      "top": 1067.0,
      "left": 472.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0099",
      "page": 39,
      "ordinal": 99,
      "text": "；标记完成后进⾏清除操作，对没有标记过的",
      "top": 1067.0,
      "left": 477.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0100",
      "page": 39,
      "ordinal": 100,
      "text": "内存进⾏回收（回收同时可能伴有碎⽚整理操作）。这种⽅法解决了引⽤计数的不⾜，但是也有⽐",
      "top": 1091.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0101",
      "page": 39,
      "ordinal": 101,
      "text": "较明显的问题：每次启动垃圾回收都会暂停当前所有的正常代码执⾏，回收是系统响应能⼒⼤⼤降",
      "top": 1115.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0102",
      "page": 39,
      "ordinal": 102,
      "text": "低！当然后续也出现了很多",
      "top": 1138.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0103",
      "page": 39,
      "ordinal": 103,
      "text": "mark&sweep",
      "top": 1138.0,
      "left": 321.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p039-t0104",
      "page": 39,
      "ordinal": 104,
      "text": "算法的变种（如三⾊标记法）优化了这个问题。",
      "top": 1138.0,
      "left": 411.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b008"
      }
    },
    {
      "id": "p040-t0001",
      "page": 40,
      "ordinal": 1,
      "text": "3. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0002",
      "page": 40,
      "ordinal": 2,
      "text": "分代搜集（",
      "top": 44.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0003",
      "page": 40,
      "ordinal": 3,
      "text": "generation",
      "top": 44.0,
      "left": 219.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0004",
      "page": 40,
      "ordinal": 4,
      "text": "）",
      "top": 44.0,
      "left": 293.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0005",
      "page": 40,
      "ordinal": 5,
      "text": "java",
      "top": 67.0,
      "left": 146.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0006",
      "page": 40,
      "ordinal": 6,
      "text": "的",
      "top": 67.0,
      "left": 173.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0007",
      "page": 40,
      "ordinal": 7,
      "text": "jvm ",
      "top": 67.0,
      "left": 187.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0008",
      "page": 40,
      "ordinal": 8,
      "text": "就使⽤的分代回收的思路。在⾯向对象编程语⾔中，绝⼤多数对象的⽣命周期都⾮常",
      "top": 67.0,
      "left": 216.0,
      "width": 541.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0009",
      "page": 40,
      "ordinal": 9,
      "text": "短。分代收集的基",
      "top": 91.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0010",
      "page": 40,
      "ordinal": 10,
      "text": "本思想是，将堆划分为两个或多个称为代（",
      "top": 113.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0011",
      "page": 40,
      "ordinal": 11,
      "text": "generation",
      "top": 113.0,
      "left": 423.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0012",
      "page": 40,
      "ordinal": 12,
      "text": "）的空间。新创建的对象存放在称为新⽣代",
      "top": 113.0,
      "left": 498.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0013",
      "page": 40,
      "ordinal": 13,
      "text": "（",
      "top": 137.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0014",
      "page": 40,
      "ordinal": 14,
      "text": "young",
      "top": 137.0,
      "left": 160.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0015",
      "page": 40,
      "ordinal": 15,
      "text": "generation",
      "top": 161.0,
      "left": 146.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0016",
      "page": 40,
      "ordinal": 16,
      "text": "）中（⼀般来说，新⽣代的⼤⼩会⽐",
      "top": 161.0,
      "left": 220.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0018",
      "page": 40,
      "ordinal": 18,
      "text": "⽼年代⼩很多），随着垃圾回收的重复执⾏，⽣命",
      "top": 161.0,
      "left": 457.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0019",
      "page": 40,
      "ordinal": 19,
      "text": "周期较⻓的对象会被提升（",
      "top": 184.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0020",
      "page": 40,
      "ordinal": 20,
      "text": "promotion",
      "top": 184.0,
      "left": 321.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0021",
      "page": 40,
      "ordinal": 21,
      "text": "）到⽼年代中（这⾥⽤到了⼀个分类的思路，这个是也是科",
      "top": 184.0,
      "left": 394.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0022",
      "page": 40,
      "ordinal": 22,
      "text": "学思考的⼀个基本思路）。因此，新⽣代垃圾回收和⽼年代垃圾回收两种不同的垃圾回收⽅式应运",
      "top": 208.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0023",
      "page": 40,
      "ordinal": 23,
      "text": "⽽⽣，分别⽤于对各⾃空间中的对象执⾏垃圾回收。新⽣代垃圾回收的速度⾮常快，⽐⽼年代快⼏",
      "top": 230.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0024",
      "page": 40,
      "ordinal": 24,
      "text": "个数量级，即使新⽣代垃圾回收的频率更⾼，执⾏效率也仍然⽐⽼年代垃圾回收强，这是因为⼤多",
      "top": 254.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0025",
      "page": 40,
      "ordinal": 25,
      "text": "数对象的⽣命周期都很短，根本⽆需提升到⽼年代",
      "top": 278.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b009"
      }
    },
    {
      "id": "p040-t0026",
      "page": 40,
      "ordinal": 26,
      "text": "Golang GC ",
      "top": 312.0,
      "left": 112.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0027",
      "page": 40,
      "ordinal": 27,
      "text": "时会发⽣什么",
      "top": 312.0,
      "left": 188.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0028",
      "page": 40,
      "ordinal": 28,
      "text": "?",
      "top": 312.0,
      "left": 275.0,
      "width": 6.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0029",
      "page": 40,
      "ordinal": 29,
      "text": "Golang 1.5",
      "top": 336.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0030",
      "page": 40,
      "ordinal": 30,
      "text": "后，采取的是",
      "top": 336.0,
      "left": 184.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0031",
      "page": 40,
      "ordinal": 31,
      "text": "“",
      "top": 336.0,
      "left": 272.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0032",
      "page": 40,
      "ordinal": 32,
      "text": "⾮分代的、⾮移动的、并发的、三⾊的",
      "top": 336.0,
      "left": 277.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0033",
      "page": 40,
      "ordinal": 33,
      "text": "”",
      "top": 336.0,
      "left": 526.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0034",
      "page": 40,
      "ordinal": 34,
      "text": "标记清除垃圾回收算法。",
      "top": 336.0,
      "left": 531.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0035",
      "page": 40,
      "ordinal": 35,
      "text": "golang ",
      "top": 360.0,
      "left": 112.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0036",
      "page": 40,
      "ordinal": 36,
      "text": "中的",
      "top": 360.0,
      "left": 161.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0037",
      "page": 40,
      "ordinal": 37,
      "text": " gc ",
      "top": 360.0,
      "left": 190.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0038",
      "page": 40,
      "ordinal": 38,
      "text": "基本上是标记清除的过程：",
      "top": 360.0,
      "left": 213.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b010"
      }
    },
    {
      "id": "p040-t0039",
      "page": 40,
      "ordinal": 39,
      "text": "gc",
      "top": 696.0,
      "left": 112.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b012"
      }
    },
    {
      "id": "p040-t0040",
      "page": 40,
      "ordinal": 40,
      "text": "的过程⼀共分为四个阶段：",
      "top": 696.0,
      "left": 127.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b012"
      }
    },
    {
      "id": "p040-t0041",
      "page": 40,
      "ordinal": 41,
      "text": "1. ",
      "top": 731.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b013"
      }
    },
    {
      "id": "p040-t0042",
      "page": 40,
      "ordinal": 42,
      "text": "栈扫描（开始时",
      "top": 731.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b013"
      }
    },
    {
      "id": "p040-t0043",
      "page": 40,
      "ordinal": 43,
      "text": "STW",
      "top": 731.0,
      "left": 248.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b013"
      }
    },
    {
      "id": "p040-t0044",
      "page": 40,
      "ordinal": 44,
      "text": "）",
      "top": 731.0,
      "left": 278.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b013"
      }
    },
    {
      "id": "p040-t0045",
      "page": 40,
      "ordinal": 45,
      "text": "2. ",
      "top": 762.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b014"
      }
    },
    {
      "id": "p040-t0046",
      "page": 40,
      "ordinal": 46,
      "text": "第⼀次标记（并发）",
      "top": 762.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b014"
      }
    },
    {
      "id": "p040-t0047",
      "page": 40,
      "ordinal": 47,
      "text": "3. ",
      "top": 793.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b015"
      }
    },
    {
      "id": "p040-t0048",
      "page": 40,
      "ordinal": 48,
      "text": "第⼆次标记（",
      "top": 793.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b015"
      }
    },
    {
      "id": "p040-t0049",
      "page": 40,
      "ordinal": 49,
      "text": "STW",
      "top": 793.0,
      "left": 233.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b015"
      }
    },
    {
      "id": "p040-t0050",
      "page": 40,
      "ordinal": 50,
      "text": "）",
      "top": 793.0,
      "left": 263.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b015"
      }
    },
    {
      "id": "p040-t0051",
      "page": 40,
      "ordinal": 51,
      "text": "4. ",
      "top": 823.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b016"
      }
    },
    {
      "id": "p040-t0052",
      "page": 40,
      "ordinal": 52,
      "text": "清除（并发）",
      "top": 823.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b016"
      }
    },
    {
      "id": "p040-t0053",
      "page": 40,
      "ordinal": 53,
      "text": "整个进程空间⾥申请每个对象占据的内存可以视为⼀个图，初始状态下每个内存对象都是⽩⾊标记。",
      "top": 858.0,
      "left": 112.0,
      "width": 644.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b017"
      }
    },
    {
      "id": "p040-t0054",
      "page": 40,
      "ordinal": 54,
      "text": "1. ",
      "top": 894.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0055",
      "page": 40,
      "ordinal": 55,
      "text": "先",
      "top": 894.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0056",
      "page": 40,
      "ordinal": 56,
      "text": "STW",
      "top": 894.0,
      "left": 160.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0057",
      "page": 40,
      "ordinal": 57,
      "text": "，做⼀些准备⼯作，⽐如",
      "top": 894.0,
      "left": 190.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0058",
      "page": 40,
      "ordinal": 58,
      "text": " enable write barrier",
      "top": 894.0,
      "left": 351.0,
      "width": 139.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0059",
      "page": 40,
      "ordinal": 59,
      "text": "。然后取消",
      "top": 894.0,
      "left": 490.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0060",
      "page": 40,
      "ordinal": 60,
      "text": "STW",
      "top": 894.0,
      "left": 563.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0061",
      "page": 40,
      "ordinal": 61,
      "text": "，将扫描任务作为多个并发",
      "top": 894.0,
      "left": 592.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0062",
      "page": 40,
      "ordinal": 62,
      "text": "的",
      "top": 917.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0063",
      "page": 40,
      "ordinal": 63,
      "text": "goroutine",
      "top": 940.0,
      "left": 146.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0064",
      "page": 40,
      "ordinal": 64,
      "text": "⽴即⼊队给调度器，进⽽被",
      "top": 940.0,
      "left": 212.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0065",
      "page": 40,
      "ordinal": 65,
      "text": "CPU",
      "top": 940.0,
      "left": 388.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0066",
      "page": 40,
      "ordinal": 66,
      "text": "处理",
      "top": 940.0,
      "left": 416.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b018"
      }
    },
    {
      "id": "p040-t0067",
      "page": 40,
      "ordinal": 67,
      "text": "2. ",
      "top": 971.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0068",
      "page": 40,
      "ordinal": 68,
      "text": "第⼀轮先扫描",
      "top": 971.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0069",
      "page": 40,
      "ordinal": 69,
      "text": "root",
      "top": 971.0,
      "left": 233.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0070",
      "page": 40,
      "ordinal": 70,
      "text": "对象，包括全局指针和",
      "top": 971.0,
      "left": 262.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0071",
      "page": 40,
      "ordinal": 71,
      "text": " goroutine ",
      "top": 971.0,
      "left": 408.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0072",
      "page": 40,
      "ordinal": 72,
      "text": "栈上的指针，标记为灰⾊放⼊队列",
      "top": 971.0,
      "left": 483.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b019"
      }
    },
    {
      "id": "p040-t0073",
      "page": 40,
      "ordinal": 73,
      "text": "3. ",
      "top": 1002.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0074",
      "page": 40,
      "ordinal": 74,
      "text": "第⼆轮将第⼀步队列中的对象引⽤的对象置为灰⾊加⼊队列，⼀个对象引⽤的所有对象都置灰并加",
      "top": 1002.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0075",
      "page": 40,
      "ordinal": 75,
      "text": "⼊队列后，",
      "top": 1026.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0076",
      "page": 40,
      "ordinal": 76,
      "text": "这个对象才能置为⿊⾊并从队列之中取出。循环往复，最后队列为空时，整个图剩下的⽩⾊内存空",
      "top": 1048.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0077",
      "page": 40,
      "ordinal": 77,
      "text": "间即不可到",
      "top": 1072.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0078",
      "page": 40,
      "ordinal": 78,
      "text": "达的对象，即没有被引⽤的对象；",
      "top": 1095.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b020"
      }
    },
    {
      "id": "p040-t0079",
      "page": 40,
      "ordinal": 79,
      "text": "4. ",
      "top": 1126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0080",
      "page": 40,
      "ordinal": 80,
      "text": "第三轮再次",
      "top": 1126.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0081",
      "page": 40,
      "ordinal": 81,
      "text": "STW",
      "top": 1126.0,
      "left": 219.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0082",
      "page": 40,
      "ordinal": 82,
      "text": "，将第⼆轮过程中新增对象申请的内存进⾏标记（灰⾊），这⾥使⽤了",
      "top": 1126.0,
      "left": 248.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0083",
      "page": 40,
      "ordinal": 83,
      "text": "write ",
      "top": 1126.0,
      "left": 702.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0084",
      "page": 40,
      "ordinal": 84,
      "text": "barrier",
      "top": 1149.0,
      "left": 146.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0085",
      "page": 40,
      "ordinal": 85,
      "text": "（写屏",
      "top": 1149.0,
      "left": 192.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0086",
      "page": 40,
      "ordinal": 86,
      "text": "障）去记录",
      "top": 1173.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0087",
      "page": 40,
      "ordinal": 87,
      "text": "Golang gc ",
      "top": 1197.0,
      "left": 146.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0088",
      "page": 40,
      "ordinal": 88,
      "text": "优化的核⼼就是尽量使得",
      "top": 1197.0,
      "left": 216.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0089",
      "page": 40,
      "ordinal": 89,
      "text": " STW(Stop The World) ",
      "top": 1197.0,
      "left": 377.0,
      "width": 151.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p040-t0090",
      "page": 40,
      "ordinal": 90,
      "text": "的时间越来越短。",
      "top": 1197.0,
      "left": 528.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/03-go-runtime#q-p039-h01",
        "heading_id": "p039-h01",
        "block_id": "q-p039-h01-b021"
      }
    },
    {
      "id": "p041-t0001",
      "page": 41,
      "ordinal": 1,
      "text": "微服务",
      "top": 39.0,
      "left": 112.0,
      "width": 99.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h01"
      }
    },
    {
      "id": "p041-t0003",
      "page": 41,
      "ordinal": 3,
      "text": "您对微服务有何了解？",
      "top": 95.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02"
      }
    },
    {
      "id": "p041-t0007",
      "page": 41,
      "ordinal": 7,
      "text": "微服务，又称微服务架构，是一种架构风格，它将应用程序构建为以业务领域",
      "top": 146.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0009",
      "page": 41,
      "ordinal": 9,
      "text": "为模型的小型自治服务集",
      "top": 146.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0010",
      "page": 41,
      "ordinal": 10,
      "text": "合。",
      "top": 170.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0012",
      "page": 41,
      "ordinal": 12,
      "text": "通俗地说，你必须看到蜜蜂如何通过对齐六角形蜡细胞来构建它们的蜂窝状",
      "top": 193.0,
      "left": 116.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0014",
      "page": 41,
      "ordinal": 14,
      "text": "物。他们最初从使用各种材",
      "top": 193.0,
      "left": 602.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0015",
      "page": 41,
      "ordinal": 15,
      "text": "料的小部分开始，并继续从中构建一个大型蜂箱。",
      "top": 216.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0017",
      "page": 41,
      "ordinal": 17,
      "text": "这些细胞形成图案，产生坚固的结构，将蜂窝的特定",
      "top": 216.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0018",
      "page": 41,
      "ordinal": 18,
      "text": "部分固定在一起。",
      "top": 239.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0020",
      "page": 41,
      "ordinal": 20,
      "text": "这里，每个细胞独立于另一个细胞，但它也与其他细胞相关。这意味着对一个",
      "top": 239.0,
      "left": 233.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0022",
      "page": 41,
      "ordinal": 22,
      "text": "细胞的",
      "top": 239.0,
      "left": 734.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0023",
      "page": 41,
      "ordinal": 23,
      "text": "损害不会损害其他细胞，因此，蜜蜂可以在不影响完整蜂箱的情况下重",
      "top": 263.0,
      "left": 112.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0025",
      "page": 41,
      "ordinal": 25,
      "text": "建这些细胞",
      "top": 263.0,
      "left": 569.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b001"
      }
    },
    {
      "id": "p041-t0027",
      "page": 41,
      "ordinal": 27,
      "text": "请参考上图。这里，每个六边形形状代表单独的服务组件。与蜜蜂的工作类",
      "top": 953.0,
      "left": 116.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0029",
      "page": 41,
      "ordinal": 29,
      "text": "似，每个敏捷团队都使用可",
      "top": 953.0,
      "left": 602.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0030",
      "page": 41,
      "ordinal": 30,
      "text": "用的框架和所选的技术堆栈构建单独的服务组件。",
      "top": 975.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0032",
      "page": 41,
      "ordinal": 32,
      "text": "就像在蜂箱中一样，每个服务组件形成一个强大的微",
      "top": 975.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0033",
      "page": 41,
      "ordinal": 33,
      "text": "服务架构，以提供更好的",
      "top": 999.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0034",
      "page": 41,
      "ordinal": 34,
      "text": " 36 ",
      "top": 999.0,
      "left": 273.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0035",
      "page": 41,
      "ordinal": 35,
      "text": "可扩展性。此外，敏捷团队可以单独处理每个服务组件的问题，而对整个应",
      "top": 999.0,
      "left": 297.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0036",
      "page": 41,
      "ordinal": 36,
      "text": "用",
      "top": 1022.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0038",
      "page": 41,
      "ordinal": 38,
      "text": "程序没有影响或影响最小。",
      "top": 1022.0,
      "left": 130.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h02",
        "heading_id": "p041-h02",
        "block_id": "q-p041-h02-b003"
      }
    },
    {
      "id": "p041-t0040",
      "page": 41,
      "ordinal": 40,
      "text": "说说微服务架构的优势",
      "top": 1057.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03"
      }
    },
    {
      "id": "p041-t0043",
      "page": 41,
      "ordinal": 43,
      "text": "1. ",
      "top": 1108.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b001"
      }
    },
    {
      "id": "p041-t0044",
      "page": 41,
      "ordinal": 44,
      "text": "独立开发",
      "top": 1108.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b001"
      }
    },
    {
      "id": "p041-t0046",
      "page": 41,
      "ordinal": 46,
      "text": "所有微服务都可以根据各自的功能轻松开发",
      "top": 1108.0,
      "left": 208.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b001"
      }
    },
    {
      "id": "p041-t0048",
      "page": 41,
      "ordinal": 48,
      "text": "2. ",
      "top": 1138.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b002"
      }
    },
    {
      "id": "p041-t0049",
      "page": 41,
      "ordinal": 49,
      "text": "独立部署",
      "top": 1138.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b002"
      }
    },
    {
      "id": "p041-t0051",
      "page": 41,
      "ordinal": 51,
      "text": "根据他们所提供的服务，可以在任何应用中单独部署",
      "top": 1138.0,
      "left": 208.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b002"
      }
    },
    {
      "id": "p041-t0053",
      "page": 41,
      "ordinal": 53,
      "text": "3. ",
      "top": 1169.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b003"
      }
    },
    {
      "id": "p041-t0054",
      "page": 41,
      "ordinal": 54,
      "text": "故障隔离",
      "top": 1169.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b003"
      }
    },
    {
      "id": "p041-t0056",
      "page": 41,
      "ordinal": 56,
      "text": "即使应用中的一个服务不起作用，系统仍然继续运行",
      "top": 1169.0,
      "left": 208.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b003"
      }
    },
    {
      "id": "p041-t0058",
      "page": 41,
      "ordinal": 58,
      "text": "4. ",
      "top": 1200.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b004"
      }
    },
    {
      "id": "p041-t0059",
      "page": 41,
      "ordinal": 59,
      "text": "混合技术栈",
      "top": 1200.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b004"
      }
    },
    {
      "id": "p041-t0061",
      "page": 41,
      "ordinal": 61,
      "text": "可以用不同的语言和技术来构建同一应用程序的不同服务",
      "top": 1200.0,
      "left": 222.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b004"
      }
    },
    {
      "id": "p042-t0001",
      "page": 42,
      "ordinal": 1,
      "text": "5. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b005"
      }
    },
    {
      "id": "p042-t0002",
      "page": 42,
      "ordinal": 2,
      "text": "粒度缩放",
      "top": 44.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b005"
      }
    },
    {
      "id": "p042-t0004",
      "page": 42,
      "ordinal": 4,
      "text": "各个组件可根据需要进行扩展，无需将所有组件融合到一起",
      "top": 44.0,
      "left": 208.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p041-h03",
        "heading_id": "p041-h03",
        "block_id": "q-p041-h03-b005"
      }
    },
    {
      "id": "p042-t0006",
      "page": 42,
      "ordinal": 6,
      "text": "微服务有哪些特点",
      "top": 78.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01"
      }
    },
    {
      "id": "p042-t0009",
      "page": 42,
      "ordinal": 9,
      "text": "1. ",
      "top": 129.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b001"
      }
    },
    {
      "id": "p042-t0010",
      "page": 42,
      "ordinal": 10,
      "text": "解耦",
      "top": 129.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b001"
      }
    },
    {
      "id": "p042-t0011",
      "page": 42,
      "ordinal": 11,
      "text": "—",
      "top": 129.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b001"
      }
    },
    {
      "id": "p042-t0012",
      "page": 42,
      "ordinal": 12,
      "text": "系统内的服务很大程度上是分离的。因此，整个应用程序可以轻松",
      "top": 129.0,
      "left": 189.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b001"
      }
    },
    {
      "id": "p042-t0014",
      "page": 42,
      "ordinal": 14,
      "text": "构建，更改和扩展",
      "top": 129.0,
      "left": 617.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b001"
      }
    },
    {
      "id": "p042-t0016",
      "page": 42,
      "ordinal": 16,
      "text": "2. ",
      "top": 159.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b002"
      }
    },
    {
      "id": "p042-t0017",
      "page": 42,
      "ordinal": 17,
      "text": "组件化",
      "top": 159.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b002"
      }
    },
    {
      "id": "p042-t0018",
      "page": 42,
      "ordinal": 18,
      "text": "—",
      "top": 159.0,
      "left": 189.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b002"
      }
    },
    {
      "id": "p042-t0019",
      "page": 42,
      "ordinal": 19,
      "text": "微服务被视为可以轻松更换和升级的独立组件",
      "top": 159.0,
      "left": 204.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b002"
      }
    },
    {
      "id": "p042-t0021",
      "page": 42,
      "ordinal": 21,
      "text": "3. ",
      "top": 190.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b003"
      }
    },
    {
      "id": "p042-t0022",
      "page": 42,
      "ordinal": 22,
      "text": "业务能力",
      "top": 190.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b003"
      }
    },
    {
      "id": "p042-t0023",
      "page": 42,
      "ordinal": 23,
      "text": "—",
      "top": 190.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b003"
      }
    },
    {
      "id": "p042-t0024",
      "page": 42,
      "ordinal": 24,
      "text": "微服务非常简单，专注于单一功能",
      "top": 190.0,
      "left": 219.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b003"
      }
    },
    {
      "id": "p042-t0026",
      "page": 42,
      "ordinal": 26,
      "text": "4. ",
      "top": 221.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b004"
      }
    },
    {
      "id": "p042-t0027",
      "page": 42,
      "ordinal": 27,
      "text": "自治",
      "top": 221.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b004"
      }
    },
    {
      "id": "p042-t0028",
      "page": 42,
      "ordinal": 28,
      "text": "—",
      "top": 221.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b004"
      }
    },
    {
      "id": "p042-t0029",
      "page": 42,
      "ordinal": 29,
      "text": "开发人员和团队可以彼此独立工作，从而提高速度",
      "top": 221.0,
      "left": 189.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b004"
      }
    },
    {
      "id": "p042-t0031",
      "page": 42,
      "ordinal": 31,
      "text": "5. ",
      "top": 252.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b005"
      }
    },
    {
      "id": "p042-t0032",
      "page": 42,
      "ordinal": 32,
      "text": "持续交付",
      "top": 252.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b005"
      }
    },
    {
      "id": "p042-t0033",
      "page": 42,
      "ordinal": 33,
      "text": "—",
      "top": 252.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b005"
      }
    },
    {
      "id": "p042-t0034",
      "page": 42,
      "ordinal": 34,
      "text": "通过软件创建，测试和批准的系统自动化，允许频繁发布软件",
      "top": 252.0,
      "left": 219.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b005"
      }
    },
    {
      "id": "p042-t0036",
      "page": 42,
      "ordinal": 36,
      "text": "6. ",
      "top": 282.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b006"
      }
    },
    {
      "id": "p042-t0037",
      "page": 42,
      "ordinal": 37,
      "text": "责任",
      "top": 282.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b006"
      }
    },
    {
      "id": "p042-t0038",
      "page": 42,
      "ordinal": 38,
      "text": "—",
      "top": 282.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b006"
      }
    },
    {
      "id": "p042-t0039",
      "page": 42,
      "ordinal": 39,
      "text": "微服务不关注应用程序作为项目。相反，他们将应用程序视为他们",
      "top": 282.0,
      "left": 189.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b006"
      }
    },
    {
      "id": "p042-t0041",
      "page": 42,
      "ordinal": 41,
      "text": "负责的产品",
      "top": 282.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b006"
      }
    },
    {
      "id": "p042-t0043",
      "page": 42,
      "ordinal": 43,
      "text": "7. ",
      "top": 312.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0044",
      "page": 42,
      "ordinal": 44,
      "text": "分散治理",
      "top": 312.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0045",
      "page": 42,
      "ordinal": 45,
      "text": "—",
      "top": 312.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0046",
      "page": 42,
      "ordinal": 46,
      "text": "重点是使用正确的工具来做正确的工作。这意味着没有标准化",
      "top": 312.0,
      "left": 219.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0048",
      "page": 42,
      "ordinal": 48,
      "text": "模式或任何技术模式。开",
      "top": 312.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0049",
      "page": 42,
      "ordinal": 49,
      "text": "发人员可以自由选择最有用的工具来解决他们的",
      "top": 336.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0051",
      "page": 42,
      "ordinal": 51,
      "text": "问题",
      "top": 336.0,
      "left": 456.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b007"
      }
    },
    {
      "id": "p042-t0053",
      "page": 42,
      "ordinal": 53,
      "text": "8. ",
      "top": 368.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b008"
      }
    },
    {
      "id": "p042-t0054",
      "page": 42,
      "ordinal": 54,
      "text": "敏捷",
      "top": 368.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b008"
      }
    },
    {
      "id": "p042-t0055",
      "page": 42,
      "ordinal": 55,
      "text": "—",
      "top": 368.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b008"
      }
    },
    {
      "id": "p042-t0056",
      "page": 42,
      "ordinal": 56,
      "text": "微服务支持敏捷开发。任何新功能都可以快速开发并再次丢弃",
      "top": 368.0,
      "left": 189.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h01",
        "heading_id": "p042-h01",
        "block_id": "q-p042-h01-b008"
      }
    },
    {
      "id": "p042-t0058",
      "page": 42,
      "ordinal": 58,
      "text": "设计微服务的最佳实践是什么",
      "top": 401.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p042-h02",
        "heading_id": "p042-h02"
      }
    },
    {
      "id": "p042-t0061",
      "page": 42,
      "ordinal": 61,
      "text": "微服务架构如何运作",
      "top": 834.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03"
      }
    },
    {
      "id": "p042-t0065",
      "page": 42,
      "ordinal": 65,
      "text": "微服务架构具有以下组件：",
      "top": 885.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b001"
      }
    },
    {
      "id": "p042-t0067",
      "page": 42,
      "ordinal": 67,
      "text": "1. ",
      "top": 920.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b002"
      }
    },
    {
      "id": "p042-t0068",
      "page": 42,
      "ordinal": 68,
      "text": "客户端",
      "top": 920.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b002"
      }
    },
    {
      "id": "p042-t0069",
      "page": 42,
      "ordinal": 69,
      "text": " – ",
      "top": 920.0,
      "left": 189.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b002"
      }
    },
    {
      "id": "p042-t0070",
      "page": 42,
      "ordinal": 70,
      "text": "来自不同设备的不同用户发送请求。",
      "top": 920.0,
      "left": 204.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b002"
      }
    },
    {
      "id": "p042-t0072",
      "page": 42,
      "ordinal": 72,
      "text": "2. ",
      "top": 950.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b003"
      }
    },
    {
      "id": "p042-t0073",
      "page": 42,
      "ordinal": 73,
      "text": "身份提供商",
      "top": 950.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b003"
      }
    },
    {
      "id": "p042-t0074",
      "page": 42,
      "ordinal": 74,
      "text": " – ",
      "top": 950.0,
      "left": 219.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b003"
      }
    },
    {
      "id": "p042-t0075",
      "page": 42,
      "ordinal": 75,
      "text": "验证用户或客户身份并颁发安全令牌。",
      "top": 950.0,
      "left": 234.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b003"
      }
    },
    {
      "id": "p042-t0077",
      "page": 42,
      "ordinal": 77,
      "text": "3. API ",
      "top": 981.0,
      "left": 129.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b004"
      }
    },
    {
      "id": "p042-t0078",
      "page": 42,
      "ordinal": 78,
      "text": "网关",
      "top": 981.0,
      "left": 171.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b004"
      }
    },
    {
      "id": "p042-t0079",
      "page": 42,
      "ordinal": 79,
      "text": " – ",
      "top": 981.0,
      "left": 201.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b004"
      }
    },
    {
      "id": "p042-t0080",
      "page": 42,
      "ordinal": 80,
      "text": "处理客户端请求。",
      "top": 981.0,
      "left": 216.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b004"
      }
    },
    {
      "id": "p042-t0082",
      "page": 42,
      "ordinal": 82,
      "text": "4. ",
      "top": 1012.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b005"
      }
    },
    {
      "id": "p042-t0083",
      "page": 42,
      "ordinal": 83,
      "text": "静态内容",
      "top": 1012.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b005"
      }
    },
    {
      "id": "p042-t0084",
      "page": 42,
      "ordinal": 84,
      "text": " – ",
      "top": 1012.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b005"
      }
    },
    {
      "id": "p042-t0085",
      "page": 42,
      "ordinal": 85,
      "text": "容纳系统的所有内容。",
      "top": 1012.0,
      "left": 219.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b005"
      }
    },
    {
      "id": "p042-t0087",
      "page": 42,
      "ordinal": 87,
      "text": "5. ",
      "top": 1043.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b006"
      }
    },
    {
      "id": "p042-t0088",
      "page": 42,
      "ordinal": 88,
      "text": "管理",
      "top": 1043.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b006"
      }
    },
    {
      "id": "p042-t0089",
      "page": 42,
      "ordinal": 89,
      "text": " – ",
      "top": 1043.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b006"
      }
    },
    {
      "id": "p042-t0090",
      "page": 42,
      "ordinal": 90,
      "text": "在节点上平衡服务并识别故障。",
      "top": 1043.0,
      "left": 190.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b006"
      }
    },
    {
      "id": "p042-t0092",
      "page": 42,
      "ordinal": 92,
      "text": "6. ",
      "top": 1073.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b007"
      }
    },
    {
      "id": "p042-t0093",
      "page": 42,
      "ordinal": 93,
      "text": "服务发现",
      "top": 1073.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b007"
      }
    },
    {
      "id": "p042-t0094",
      "page": 42,
      "ordinal": 94,
      "text": " – ",
      "top": 1073.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b007"
      }
    },
    {
      "id": "p042-t0095",
      "page": 42,
      "ordinal": 95,
      "text": "查找微服务之间通信路径的指南。",
      "top": 1073.0,
      "left": 219.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b007"
      }
    },
    {
      "id": "p042-t0097",
      "page": 42,
      "ordinal": 97,
      "text": "7. ",
      "top": 1104.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b008"
      }
    },
    {
      "id": "p042-t0098",
      "page": 42,
      "ordinal": 98,
      "text": "网络",
      "top": 1104.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b008"
      }
    },
    {
      "id": "p042-t0099",
      "page": 42,
      "ordinal": 99,
      "text": " – ",
      "top": 1104.0,
      "left": 175.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b008"
      }
    },
    {
      "id": "p042-t0100",
      "page": 42,
      "ordinal": 100,
      "text": "代理服务器及其数据中心的分布式网络。",
      "top": 1104.0,
      "left": 190.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b008"
      }
    },
    {
      "id": "p042-t0102",
      "page": 42,
      "ordinal": 102,
      "text": "8. ",
      "top": 1135.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p042-t0103",
      "page": 42,
      "ordinal": 103,
      "text": "远程服务",
      "top": 1135.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p042-t0104",
      "page": 42,
      "ordinal": 104,
      "text": " – ",
      "top": 1135.0,
      "left": 204.0,
      "width": 15.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p042-t0105",
      "page": 42,
      "ordinal": 105,
      "text": "启用驻留在",
      "top": 1135.0,
      "left": 219.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p042-t0106",
      "page": 42,
      "ordinal": 106,
      "text": " IT ",
      "top": 1135.0,
      "left": 292.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p042-t0107",
      "page": 42,
      "ordinal": 107,
      "text": "设备网络上的远程访问信息",
      "top": 1135.0,
      "left": 312.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p042-h03",
        "heading_id": "p042-h03",
        "block_id": "q-p042-h03-b009"
      }
    },
    {
      "id": "p043-t0001",
      "page": 43,
      "ordinal": 1,
      "text": "微服务架构的优缺点是什么",
      "top": 40.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01"
      }
    },
    {
      "id": "p043-t0005",
      "page": 43,
      "ordinal": 5,
      "text": "微服务架构的优点",
      "top": 91.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b001"
      }
    },
    {
      "id": "p043-t0007",
      "page": 43,
      "ordinal": 7,
      "text": "：",
      "top": 91.0,
      "left": 236.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b001"
      }
    },
    {
      "id": "p043-t0008",
      "page": 43,
      "ordinal": 8,
      "text": "1. ",
      "top": 126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b002"
      }
    },
    {
      "id": "p043-t0009",
      "page": 43,
      "ordinal": 9,
      "text": "自由使用不同的技术",
      "top": 126.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b002"
      }
    },
    {
      "id": "p043-t0011",
      "page": 43,
      "ordinal": 11,
      "text": "2. ",
      "top": 156.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b003"
      }
    },
    {
      "id": "p043-t0012",
      "page": 43,
      "ordinal": 12,
      "text": "每个微服务都侧重于单一功能",
      "top": 156.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b003"
      }
    },
    {
      "id": "p043-t0014",
      "page": 43,
      "ordinal": 14,
      "text": "3. ",
      "top": 188.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b004"
      }
    },
    {
      "id": "p043-t0015",
      "page": 43,
      "ordinal": 15,
      "text": "支持单个可部署单元",
      "top": 188.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b004"
      }
    },
    {
      "id": "p043-t0017",
      "page": 43,
      "ordinal": 17,
      "text": "4. ",
      "top": 218.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b005"
      }
    },
    {
      "id": "p043-t0018",
      "page": 43,
      "ordinal": 18,
      "text": "允许经常发布软件",
      "top": 218.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b005"
      }
    },
    {
      "id": "p043-t0020",
      "page": 43,
      "ordinal": 20,
      "text": "5. ",
      "top": 248.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b006"
      }
    },
    {
      "id": "p043-t0021",
      "page": 43,
      "ordinal": 21,
      "text": "确保每项服务的安全性",
      "top": 248.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b006"
      }
    },
    {
      "id": "p043-t0023",
      "page": 43,
      "ordinal": 23,
      "text": "6. ",
      "top": 280.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b007"
      }
    },
    {
      "id": "p043-t0024",
      "page": 43,
      "ordinal": 24,
      "text": "多个服务是并行开发和部署的",
      "top": 280.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b007"
      }
    },
    {
      "id": "p043-t0026",
      "page": 43,
      "ordinal": 26,
      "text": "微服务架构的缺点",
      "top": 315.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b008"
      }
    },
    {
      "id": "p043-t0027",
      "page": 43,
      "ordinal": 27,
      "text": "1. ",
      "top": 350.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b009"
      }
    },
    {
      "id": "p043-t0028",
      "page": 43,
      "ordinal": 28,
      "text": "增加故障排除挑战",
      "top": 350.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b009"
      }
    },
    {
      "id": "p043-t0030",
      "page": 43,
      "ordinal": 30,
      "text": "2. ",
      "top": 380.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b010"
      }
    },
    {
      "id": "p043-t0031",
      "page": 43,
      "ordinal": 31,
      "text": "由于远程调用而增加延迟",
      "top": 380.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b010"
      }
    },
    {
      "id": "p043-t0033",
      "page": 43,
      "ordinal": 33,
      "text": "3. ",
      "top": 411.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b011"
      }
    },
    {
      "id": "p043-t0034",
      "page": 43,
      "ordinal": 34,
      "text": "增加了配置和其他操作的工作量",
      "top": 411.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b011"
      }
    },
    {
      "id": "p043-t0036",
      "page": 43,
      "ordinal": 36,
      "text": "4. ",
      "top": 442.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b012"
      }
    },
    {
      "id": "p043-t0037",
      "page": 43,
      "ordinal": 37,
      "text": "难以保持交易安全",
      "top": 442.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b012"
      }
    },
    {
      "id": "p043-t0039",
      "page": 43,
      "ordinal": 39,
      "text": "5. ",
      "top": 472.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b013"
      }
    },
    {
      "id": "p043-t0040",
      "page": 43,
      "ordinal": 40,
      "text": "艰难地跨越各种便捷跟踪数据",
      "top": 472.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b013"
      }
    },
    {
      "id": "p043-t0042",
      "page": 43,
      "ordinal": 42,
      "text": "6. ",
      "top": 503.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b014"
      }
    },
    {
      "id": "p043-t0043",
      "page": 43,
      "ordinal": 43,
      "text": "难以在服务之间进行编码",
      "top": 503.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h01",
        "heading_id": "p043-h01",
        "block_id": "q-p043-h01-b014"
      }
    },
    {
      "id": "p043-t0045",
      "page": 43,
      "ordinal": 45,
      "text": "单片，",
      "top": 537.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02"
      }
    },
    {
      "id": "p043-t0046",
      "page": 43,
      "ordinal": 46,
      "text": "SOA ",
      "top": 537.0,
      "left": 189.0,
      "width": 59.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02"
      }
    },
    {
      "id": "p043-t0047",
      "page": 43,
      "ordinal": 47,
      "text": "和微服务架构有什么区别？",
      "top": 537.0,
      "left": 247.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02"
      }
    },
    {
      "id": "p043-t0050",
      "page": 43,
      "ordinal": 50,
      "text": "1. ",
      "top": 1030.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b002"
      }
    },
    {
      "id": "p043-t0051",
      "page": 43,
      "ordinal": 51,
      "text": "单片架构类似于大容器，其中应用程序的所有软件组件组装在一起并紧密",
      "top": 1030.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b002"
      }
    },
    {
      "id": "p043-t0053",
      "page": 43,
      "ordinal": 53,
      "text": "封装。",
      "top": 1030.0,
      "left": 617.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b002"
      }
    },
    {
      "id": "p043-t0055",
      "page": 43,
      "ordinal": 55,
      "text": "2. ",
      "top": 1061.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b003"
      }
    },
    {
      "id": "p043-t0056",
      "page": 43,
      "ordinal": 56,
      "text": "一个面向服务的架构是一种相互通信服务的集合。通信可以涉及简单的数",
      "top": 1061.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b003"
      }
    },
    {
      "id": "p043-t0058",
      "page": 43,
      "ordinal": 58,
      "text": "据传递，也可以涉及两个",
      "top": 1061.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b003"
      }
    },
    {
      "id": "p043-t0059",
      "page": 43,
      "ordinal": 59,
      "text": "或多个协调某些活动的服务。",
      "top": 1084.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b003"
      }
    },
    {
      "id": "p043-t0060",
      "page": 43,
      "ordinal": 60,
      "text": "3. ",
      "top": 1115.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b004"
      }
    },
    {
      "id": "p043-t0061",
      "page": 43,
      "ordinal": 61,
      "text": "微服务架构是一种架构风格，它将应用程序构建为以业务域为模型的小型",
      "top": 1115.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b004"
      }
    },
    {
      "id": "p043-t0063",
      "page": 43,
      "ordinal": 63,
      "text": "自治服务集合。",
      "top": 1115.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h02",
        "heading_id": "p043-h02",
        "block_id": "q-p043-h02-b004"
      }
    },
    {
      "id": "p043-t0065",
      "page": 43,
      "ordinal": 65,
      "text": "在使用微服务架构时，您面临哪些挑战？",
      "top": 1149.0,
      "left": 112.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03"
      }
    },
    {
      "id": "p043-t0068",
      "page": 43,
      "ordinal": 68,
      "text": "开发一些较小的微服务听起来很容易，但开发它们时经常遇到的挑战如下。",
      "top": 1200.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b001"
      }
    },
    {
      "id": "p044-t0001",
      "page": 44,
      "ordinal": 1,
      "text": "1. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0002",
      "page": 44,
      "ordinal": 2,
      "text": "自动化组件：难以自动化，因为有许多较小的组件。因此，对于每个组",
      "top": 44.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0004",
      "page": 44,
      "ordinal": 4,
      "text": "件，我们必须遵循",
      "top": 44.0,
      "left": 603.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0005",
      "page": 44,
      "ordinal": 5,
      "text": " Build",
      "top": 44.0,
      "left": 720.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0006",
      "page": 44,
      "ordinal": 6,
      "text": "，",
      "top": 44.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0007",
      "page": 44,
      "ordinal": 7,
      "text": "Deploy ",
      "top": 67.0,
      "left": 146.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0008",
      "page": 44,
      "ordinal": 8,
      "text": "和",
      "top": 67.0,
      "left": 197.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0009",
      "page": 44,
      "ordinal": 9,
      "text": " Monitor ",
      "top": 67.0,
      "left": 212.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0010",
      "page": 44,
      "ordinal": 10,
      "text": "的各个阶段。",
      "top": 67.0,
      "left": 274.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b002"
      }
    },
    {
      "id": "p044-t0012",
      "page": 44,
      "ordinal": 12,
      "text": "2. ",
      "top": 98.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b003"
      }
    },
    {
      "id": "p044-t0013",
      "page": 44,
      "ordinal": 13,
      "text": "易感性：将大量组件维护在一起变得难以部署，维护，监控和识别问题。",
      "top": 98.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b003"
      }
    },
    {
      "id": "p044-t0015",
      "page": 44,
      "ordinal": 15,
      "text": "它需要在所有组件周围具",
      "top": 98.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b003"
      }
    },
    {
      "id": "p044-t0016",
      "page": 44,
      "ordinal": 16,
      "text": "有很好的感知能力。",
      "top": 121.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b003"
      }
    },
    {
      "id": "p044-t0018",
      "page": 44,
      "ordinal": 18,
      "text": "、",
      "top": 121.0,
      "left": 281.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b003"
      }
    },
    {
      "id": "p044-t0019",
      "page": 44,
      "ordinal": 19,
      "text": "3. ",
      "top": 152.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b004"
      }
    },
    {
      "id": "p044-t0020",
      "page": 44,
      "ordinal": 20,
      "text": "配置管理：有时在各种环境中维护组件的配置变得困难。",
      "top": 152.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b004"
      }
    },
    {
      "id": "p044-t0022",
      "page": 44,
      "ordinal": 22,
      "text": "4. ",
      "top": 182.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b005"
      }
    },
    {
      "id": "p044-t0023",
      "page": 44,
      "ordinal": 23,
      "text": "调试：很难找到错误的每一项服务。维护集中式日志记录和仪表板以调试",
      "top": 182.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b005"
      }
    },
    {
      "id": "p044-t0025",
      "page": 44,
      "ordinal": 25,
      "text": "问题至关重要。",
      "top": 182.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p043-h03",
        "heading_id": "p043-h03",
        "block_id": "q-p043-h03-b005"
      }
    },
    {
      "id": "p044-t0027",
      "page": 44,
      "ordinal": 27,
      "text": "SOA ",
      "top": 217.0,
      "left": 112.0,
      "width": 59.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p044-h01",
        "heading_id": "p044-h01"
      }
    },
    {
      "id": "p044-t0028",
      "page": 44,
      "ordinal": 28,
      "text": "和微服务架构之间的主要区别是什么？",
      "top": 217.0,
      "left": 171.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p044-h01",
        "heading_id": "p044-h01"
      }
    },
    {
      "id": "p044-t0030",
      "page": 44,
      "ordinal": 30,
      "text": "微服务有什么特点",
      "top": 716.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p044-h02",
        "heading_id": "p044-h02"
      }
    },
    {
      "id": "p045-t0001",
      "page": 45,
      "ordinal": 1,
      "text": "什么是领域驱动设计",
      "top": 40.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h01",
        "heading_id": "p045-h01"
      }
    },
    {
      "id": "p045-t0004",
      "page": 45,
      "ordinal": 4,
      "text": "为什么需要域驱动设计（",
      "top": 326.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h02",
        "heading_id": "p045-h02"
      }
    },
    {
      "id": "p045-t0005",
      "page": 45,
      "ordinal": 5,
      "text": "DDD",
      "top": 326.0,
      "left": 393.0,
      "width": 57.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h02",
        "heading_id": "p045-h02"
      }
    },
    {
      "id": "p045-t0006",
      "page": 45,
      "ordinal": 6,
      "text": "）",
      "top": 326.0,
      "left": 450.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h02",
        "heading_id": "p045-h02"
      }
    },
    {
      "id": "p045-t0009",
      "page": 45,
      "ordinal": 9,
      "text": "什么是无所不在的语言",
      "top": 748.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03"
      }
    },
    {
      "id": "p045-t0013",
      "page": 45,
      "ordinal": 13,
      "text": "如果您必须定义泛在语言（",
      "top": 798.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0014",
      "page": 45,
      "ordinal": 14,
      "text": "UL",
      "top": 798.0,
      "left": 291.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0015",
      "page": 45,
      "ordinal": 15,
      "text": "），那么它是特定域的开发人员和用户使用的通",
      "top": 798.0,
      "left": 309.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0017",
      "page": 45,
      "ordinal": 17,
      "text": "用语言，通过该语言可以",
      "top": 798.0,
      "left": 620.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0018",
      "page": 45,
      "ordinal": 18,
      "text": "轻松解释域。",
      "top": 822.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0020",
      "page": 45,
      "ordinal": 20,
      "text": "无处不在的语言必须非常清晰，以便它将所有团队成员放在同一页面上，并以",
      "top": 822.0,
      "left": 203.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0022",
      "page": 45,
      "ordinal": 22,
      "text": "机器可以理",
      "top": 822.0,
      "left": 704.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0023",
      "page": 45,
      "ordinal": 23,
      "text": "解的方式进行翻译",
      "top": 846.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h03",
        "heading_id": "p045-h03",
        "block_id": "q-p045-h03-b001"
      }
    },
    {
      "id": "p045-t0025",
      "page": 45,
      "ordinal": 25,
      "text": "什么是凝聚力",
      "top": 880.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h04",
        "heading_id": "p045-h04"
      }
    },
    {
      "id": "p045-t0029",
      "page": 45,
      "ordinal": 29,
      "text": "模块内部元素所属的程度被认为是凝聚力",
      "top": 931.0,
      "left": 116.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h04",
        "heading_id": "p045-h04",
        "block_id": "q-p045-h04-b001"
      }
    },
    {
      "id": "p045-t0031",
      "page": 45,
      "ordinal": 31,
      "text": "什么是耦合",
      "top": 965.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h05",
        "heading_id": "p045-h05"
      }
    },
    {
      "id": "p045-t0035",
      "page": 45,
      "ordinal": 35,
      "text": "组件之间依赖关系强度的度量被认为是耦合。一个好的设计总是被认为具有高",
      "top": 1016.0,
      "left": 119.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h05",
        "heading_id": "p045-h05",
        "block_id": "q-p045-h05-b001"
      }
    },
    {
      "id": "p045-t0037",
      "page": 45,
      "ordinal": 37,
      "text": "内聚力和低耦合性。",
      "top": 1016.0,
      "left": 620.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h05",
        "heading_id": "p045-h05",
        "block_id": "q-p045-h05-b001"
      }
    },
    {
      "id": "p045-t0039",
      "page": 45,
      "ordinal": 39,
      "text": "、什么是",
      "top": 1050.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06"
      }
    },
    {
      "id": "p045-t0040",
      "page": 45,
      "ordinal": 40,
      "text": " REST / RESTful ",
      "top": 1050.0,
      "left": 214.0,
      "width": 192.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06"
      }
    },
    {
      "id": "p045-t0041",
      "page": 45,
      "ordinal": 41,
      "text": "以及它的用途是什么？",
      "top": 1050.0,
      "left": 406.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06"
      }
    },
    {
      "id": "p045-t0044",
      "page": 45,
      "ordinal": 44,
      "text": " Representational State Transfer",
      "top": 1101.0,
      "left": 112.0,
      "width": 220.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0045",
      "page": 45,
      "ordinal": 45,
      "text": "（",
      "top": 1101.0,
      "left": 331.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0046",
      "page": 45,
      "ordinal": 46,
      "text": "REST",
      "top": 1101.0,
      "left": 346.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0047",
      "page": 45,
      "ordinal": 47,
      "text": "）",
      "top": 1101.0,
      "left": 379.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0048",
      "page": 45,
      "ordinal": 48,
      "text": "/ RESTful Web ",
      "top": 1101.0,
      "left": 394.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0049",
      "page": 45,
      "ordinal": 49,
      "text": "服务是一种帮助计",
      "top": 1101.0,
      "left": 492.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0051",
      "page": 45,
      "ordinal": 51,
      "text": "算机系统通过",
      "top": 1101.0,
      "left": 613.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0052",
      "page": 45,
      "ordinal": 52,
      "text": " Internet ",
      "top": 1101.0,
      "left": 701.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0053",
      "page": 45,
      "ordinal": 53,
      "text": "进",
      "top": 1101.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0054",
      "page": 45,
      "ordinal": 54,
      "text": "行通信的架构风格。这使得微服务更容易理解和实",
      "top": 1125.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0056",
      "page": 45,
      "ordinal": 56,
      "text": "现。",
      "top": 1125.0,
      "left": 437.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0058",
      "page": 45,
      "ordinal": 58,
      "text": "微服务可以使用或不使用",
      "top": 1125.0,
      "left": 470.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0059",
      "page": 45,
      "ordinal": 59,
      "text": " RESTful API ",
      "top": 1125.0,
      "left": 631.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0060",
      "page": 45,
      "ordinal": 60,
      "text": "实现，但",
      "top": 1125.0,
      "left": 716.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0061",
      "page": 45,
      "ordinal": 61,
      "text": "使用",
      "top": 1147.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0062",
      "page": 45,
      "ordinal": 62,
      "text": " RESTful API ",
      "top": 1147.0,
      "left": 141.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0063",
      "page": 45,
      "ordinal": 63,
      "text": "构建松散",
      "top": 1147.0,
      "left": 225.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p045-t0065",
      "page": 45,
      "ordinal": 65,
      "text": "耦合的微服务总是更容易。",
      "top": 1147.0,
      "left": 288.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p045-h06",
        "heading_id": "p045-h06",
        "block_id": "q-p045-h06-b001"
      }
    },
    {
      "id": "p046-t0001",
      "page": 46,
      "ordinal": 1,
      "text": "什么是不同类型的微服务测试",
      "top": 40.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01"
      }
    },
    {
      "id": "p046-t0005",
      "page": 46,
      "ordinal": 5,
      "text": "在使用微服务时，由于有多个微服务协同工作，测试变得非常复杂。因此，测",
      "top": 91.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b001"
      }
    },
    {
      "id": "p046-t0007",
      "page": 46,
      "ordinal": 7,
      "text": "试分为不同的级别",
      "top": 91.0,
      "left": 617.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b001"
      }
    },
    {
      "id": "p046-t0009",
      "page": 46,
      "ordinal": 9,
      "text": "1. ",
      "top": 126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b002"
      }
    },
    {
      "id": "p046-t0010",
      "page": 46,
      "ordinal": 10,
      "text": "在底层，我们有面向技术的测试，如单元测试和性能测试。这些是完全自",
      "top": 126.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b002"
      }
    },
    {
      "id": "p046-t0012",
      "page": 46,
      "ordinal": 12,
      "text": "动化的。",
      "top": 126.0,
      "left": 617.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b002"
      }
    },
    {
      "id": "p046-t0014",
      "page": 46,
      "ordinal": 14,
      "text": "2. ",
      "top": 156.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b003"
      }
    },
    {
      "id": "p046-t0015",
      "page": 46,
      "ordinal": 15,
      "text": "在中间层面，我们进行了诸如压力测试和可用性测试之类的探索性测试。",
      "top": 156.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b003"
      }
    },
    {
      "id": "p046-t0017",
      "page": 46,
      "ordinal": 17,
      "text": "3. ",
      "top": 188.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b004"
      }
    },
    {
      "id": "p046-t0018",
      "page": 46,
      "ordinal": 18,
      "text": "在顶层，",
      "top": 188.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b004"
      }
    },
    {
      "id": "p046-t0020",
      "page": 46,
      "ordinal": 20,
      "text": "我们的验收测试数量很少。这些验收测试有助于利益相关者理解",
      "top": 188.0,
      "left": 208.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b004"
      }
    },
    {
      "id": "p046-t0022",
      "page": 46,
      "ordinal": 22,
      "text": "和验证软件功能",
      "top": 188.0,
      "left": 621.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/06-microservices#q-p046-h01",
        "heading_id": "p046-h01",
        "block_id": "q-p046-h01-b004"
      }
    },
    {
      "id": "p046-t0024",
      "page": 46,
      "ordinal": 24,
      "text": "容器技术",
      "top": 220.0,
      "left": 112.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h02"
      }
    },
    {
      "id": "p046-t0026",
      "page": 46,
      "ordinal": 26,
      "text": "为什么需要",
      "top": 277.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03"
      }
    },
    {
      "id": "p046-t0027",
      "page": 46,
      "ordinal": 27,
      "text": " DevOps  ",
      "top": 277.0,
      "left": 240.0,
      "width": 118.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03"
      }
    },
    {
      "id": "p046-t0030",
      "page": 46,
      "ordinal": 30,
      "text": "在当今，软件开发公司在软件新版本发布方面，多尝试通过发布一系列以小的",
      "top": 327.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0032",
      "page": 46,
      "ordinal": 32,
      "text": "特性改变集为目标的新软",
      "top": 327.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0033",
      "page": 46,
      "ordinal": 33,
      "text": "件版本，代替发布一个大特性改变集的新软件版本的",
      "top": 351.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0035",
      "page": 46,
      "ordinal": 35,
      "text": "方式。这种方式有许多优点，诸如，快速的客户反",
      "top": 351.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0036",
      "page": 46,
      "ordinal": 36,
      "text": "馈，软件质量的保证等。也",
      "top": 374.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0038",
      "page": 46,
      "ordinal": 38,
      "text": "会获得较高的客户满意度评价。完成这样的软件发布模式，开发公司需要做",
      "top": 374.0,
      "left": 291.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0040",
      "page": 46,
      "ordinal": 40,
      "text": "到：",
      "top": 398.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0042",
      "page": 46,
      "ordinal": 42,
      "text": "增加软件布署的频率",
      "top": 422.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0044",
      "page": 46,
      "ordinal": 44,
      "text": "降低新发布版本的失败率",
      "top": 444.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0046",
      "page": 46,
      "ordinal": 46,
      "text": "缩短修复缺陷的交付时间",
      "top": 468.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0048",
      "page": 46,
      "ordinal": 48,
      "text": "加快解决版本冲突的问题",
      "top": 491.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0050",
      "page": 46,
      "ordinal": 50,
      "text": "DevOps ",
      "top": 515.0,
      "left": 112.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0051",
      "page": 46,
      "ordinal": 51,
      "text": "满足所有这些需求且帮助公司高质完成软件无缝交付的目标。",
      "top": 515.0,
      "left": 169.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h03",
        "heading_id": "p046-h03",
        "block_id": "q-p046-h03-b001"
      }
    },
    {
      "id": "p046-t0053",
      "page": 46,
      "ordinal": 53,
      "text": "Docker ",
      "top": 550.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04"
      }
    },
    {
      "id": "p046-t0054",
      "page": 46,
      "ordinal": 54,
      "text": "是什么？",
      "top": 550.0,
      "left": 209.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04"
      }
    },
    {
      "id": "p046-t0057",
      "page": 46,
      "ordinal": 57,
      "text": " Docker ",
      "top": 599.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0058",
      "page": 46,
      "ordinal": 58,
      "text": "是一个容器化平台，它包装你所有开发环境依赖成一个整体，像一个容",
      "top": 599.0,
      "left": 168.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0060",
      "page": 46,
      "ordinal": 60,
      "text": "器。保证项目开发，如",
      "top": 599.0,
      "left": 625.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0061",
      "page": 46,
      "ordinal": 61,
      "text": "开发、测试、发布等各生产环节都可以无缝工作在不同",
      "top": 623.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0063",
      "page": 46,
      "ordinal": 63,
      "text": "的平台",
      "top": 623.0,
      "left": 467.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0064",
      "page": 46,
      "ordinal": 64,
      "text": " Docker ",
      "top": 623.0,
      "left": 510.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0065",
      "page": 46,
      "ordinal": 65,
      "text": "容器：将一个软件包装在一个完",
      "top": 623.0,
      "left": 566.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0066",
      "page": 46,
      "ordinal": 66,
      "text": "整的文件系统中，该文件系统包含运行",
      "top": 647.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0068",
      "page": 46,
      "ordinal": 68,
      "text": "所需的一切：代码，运行时，系统工具，系统库等。可以安装在",
      "top": 647.0,
      "left": 364.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0069",
      "page": 46,
      "ordinal": 69,
      "text": "服务器上的任",
      "top": 670.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0071",
      "page": 46,
      "ordinal": 71,
      "text": "何东西。",
      "top": 670.0,
      "left": 203.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0073",
      "page": 46,
      "ordinal": 73,
      "text": "这保证软件总是运行在相同的运行环境，无需考虑基础环境配置的改变。",
      "top": 670.0,
      "left": 266.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h04",
        "heading_id": "p046-h04",
        "block_id": "q-p046-h04-b001"
      }
    },
    {
      "id": "p046-t0075",
      "page": 46,
      "ordinal": 75,
      "text": "DevOps ",
      "top": 705.0,
      "left": 112.0,
      "width": 105.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05"
      }
    },
    {
      "id": "p046-t0076",
      "page": 46,
      "ordinal": 76,
      "text": "有哪些优势？",
      "top": 705.0,
      "left": 216.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05"
      }
    },
    {
      "id": "p046-t0079",
      "page": 46,
      "ordinal": 79,
      "text": "技术优势",
      "top": 755.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0080",
      "page": 46,
      "ordinal": 80,
      "text": ": ",
      "top": 755.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0081",
      "page": 46,
      "ordinal": 81,
      "text": "持续的软件交付能力",
      "top": 778.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0083",
      "page": 46,
      "ordinal": 83,
      "text": "修复问题变得简单",
      "top": 802.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0085",
      "page": 46,
      "ordinal": 85,
      "text": "更快得解决问题",
      "top": 825.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0086",
      "page": 46,
      "ordinal": 86,
      "text": "商业优势",
      "top": 849.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0087",
      "page": 46,
      "ordinal": 87,
      "text": ": ",
      "top": 849.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0088",
      "page": 46,
      "ordinal": 88,
      "text": "更快交付的特性",
      "top": 872.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0090",
      "page": 46,
      "ordinal": 90,
      "text": "更稳定的操作系统环境",
      "top": 895.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0092",
      "page": 46,
      "ordinal": 92,
      "text": "更多时间可用于创造价值",
      "top": 919.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0093",
      "page": 46,
      "ordinal": 93,
      "text": " (",
      "top": 919.0,
      "left": 273.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0094",
      "page": 46,
      "ordinal": 94,
      "text": "而不是修复",
      "top": 919.0,
      "left": 281.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0095",
      "page": 46,
      "ordinal": 95,
      "text": " / ",
      "top": 919.0,
      "left": 354.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0096",
      "page": 46,
      "ordinal": 96,
      "text": "维护",
      "top": 919.0,
      "left": 367.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0097",
      "page": 46,
      "ordinal": 97,
      "text": ")  ",
      "top": 919.0,
      "left": 396.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h05",
        "heading_id": "p046-h05",
        "block_id": "q-p046-h05-b001"
      }
    },
    {
      "id": "p046-t0098",
      "page": 46,
      "ordinal": 98,
      "text": "CI ",
      "top": 953.0,
      "left": 112.0,
      "width": 31.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06"
      }
    },
    {
      "id": "p046-t0099",
      "page": 46,
      "ordinal": 99,
      "text": "服务有什么用途？",
      "top": 953.0,
      "left": 143.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06"
      }
    },
    {
      "id": "p046-t0102",
      "page": 46,
      "ordinal": 102,
      "text": " CI ",
      "top": 1004.0,
      "left": 112.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0103",
      "page": 46,
      "ordinal": 103,
      "text": "（",
      "top": 1004.0,
      "left": 133.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0104",
      "page": 46,
      "ordinal": 104,
      "text": "Continuous Integration",
      "top": 1004.0,
      "left": 147.0,
      "width": 158.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0105",
      "page": 46,
      "ordinal": 105,
      "text": "）",
      "top": 1004.0,
      "left": 305.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0106",
      "page": 46,
      "ordinal": 106,
      "text": "-- ",
      "top": 1004.0,
      "left": 320.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0107",
      "page": 46,
      "ordinal": 107,
      "text": "持续集成服务",
      "top": 1004.0,
      "left": 333.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0108",
      "page": 46,
      "ordinal": 108,
      "text": " -- ",
      "top": 1004.0,
      "left": 421.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0109",
      "page": 46,
      "ordinal": 109,
      "text": "主要用于整合团队开发",
      "top": 1004.0,
      "left": 438.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0111",
      "page": 46,
      "ordinal": 111,
      "text": "中不同开发者提交到开发仓库",
      "top": 1004.0,
      "left": 588.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0112",
      "page": 46,
      "ordinal": 112,
      "text": "中的项目代码变化，并即时整合编译，检查整合",
      "top": 1028.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0114",
      "page": 46,
      "ordinal": 114,
      "text": "编译错误的服务。它需要一天中多次整合编译代码的能",
      "top": 1028.0,
      "left": 423.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0115",
      "page": 46,
      "ordinal": 115,
      "text": "力，若出现整合错误，",
      "top": 1050.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p046-t0117",
      "page": 46,
      "ordinal": 117,
      "text": "可以优异地准确定位提交错误源",
      "top": 1050.0,
      "left": 262.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p046-h06",
        "heading_id": "p046-h06",
        "block_id": "q-p046-h06-b001"
      }
    },
    {
      "id": "p047-t0001",
      "page": 47,
      "ordinal": 1,
      "text": "如何使用",
      "top": 40.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01"
      }
    },
    {
      "id": "p047-t0002",
      "page": 47,
      "ordinal": 2,
      "text": " Docker ",
      "top": 40.0,
      "left": 214.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01"
      }
    },
    {
      "id": "p047-t0003",
      "page": 47,
      "ordinal": 3,
      "text": "技术创建与环境无关的容器系统？",
      "top": 40.0,
      "left": 318.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01"
      }
    },
    {
      "id": "p047-t0006",
      "page": 47,
      "ordinal": 6,
      "text": " Docker ",
      "top": 91.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0007",
      "page": 47,
      "ordinal": 7,
      "text": "技术有三中主要的技术途径辅助完成此需求：",
      "top": 91.0,
      "left": 168.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0009",
      "page": 47,
      "ordinal": 9,
      "text": "存储卷（",
      "top": 114.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0010",
      "page": 47,
      "ordinal": 10,
      "text": "Volumes",
      "top": 114.0,
      "left": 170.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0011",
      "page": 47,
      "ordinal": 11,
      "text": "）",
      "top": 114.0,
      "left": 229.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0013",
      "page": 47,
      "ordinal": 13,
      "text": "环境变量（",
      "top": 137.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0014",
      "page": 47,
      "ordinal": 14,
      "text": "Environment variable",
      "top": 137.0,
      "left": 185.0,
      "width": 146.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0015",
      "page": 47,
      "ordinal": 15,
      "text": "）注入",
      "top": 137.0,
      "left": 331.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0017",
      "page": 47,
      "ordinal": 17,
      "text": "只读（",
      "top": 161.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0018",
      "page": 47,
      "ordinal": 18,
      "text": "Read-only",
      "top": 161.0,
      "left": 156.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0019",
      "page": 47,
      "ordinal": 19,
      "text": "）文件系统",
      "top": 161.0,
      "left": 224.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h01",
        "heading_id": "p047-h01",
        "block_id": "q-p047-h01-b001"
      }
    },
    {
      "id": "p047-t0021",
      "page": 47,
      "ordinal": 21,
      "text": "Dockerfile ",
      "top": 195.0,
      "left": 112.0,
      "width": 138.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0022",
      "page": 47,
      "ordinal": 22,
      "text": "配置文件中的",
      "top": 195.0,
      "left": 250.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0023",
      "page": 47,
      "ordinal": 23,
      "text": " COPY ",
      "top": 195.0,
      "left": 403.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0024",
      "page": 47,
      "ordinal": 24,
      "text": "和",
      "top": 195.0,
      "left": 485.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0025",
      "page": 47,
      "ordinal": 25,
      "text": " ADD ",
      "top": 195.0,
      "left": 511.0,
      "width": 69.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0026",
      "page": 47,
      "ordinal": 26,
      "text": "指令有什么不",
      "top": 195.0,
      "left": 580.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0027",
      "page": 47,
      "ordinal": 27,
      "text": "同？",
      "top": 227.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02"
      }
    },
    {
      "id": "p047-t0031",
      "page": 47,
      "ordinal": 31,
      "text": "虽然",
      "top": 278.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0032",
      "page": 47,
      "ordinal": 32,
      "text": " ADD ",
      "top": 278.0,
      "left": 145.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0033",
      "page": 47,
      "ordinal": 33,
      "text": "和",
      "top": 278.0,
      "left": 183.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0034",
      "page": 47,
      "ordinal": 34,
      "text": " COPY ",
      "top": 278.0,
      "left": 198.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0035",
      "page": 47,
      "ordinal": 35,
      "text": "功能相似，推荐",
      "top": 278.0,
      "left": 243.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0036",
      "page": 47,
      "ordinal": 36,
      "text": " COPY",
      "top": 278.0,
      "left": 345.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0038",
      "page": 47,
      "ordinal": 38,
      "text": "那是因为",
      "top": 301.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0039",
      "page": 47,
      "ordinal": 39,
      "text": " COPY ",
      "top": 301.0,
      "left": 174.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0040",
      "page": 47,
      "ordinal": 40,
      "text": "比",
      "top": 301.0,
      "left": 219.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0041",
      "page": 47,
      "ordinal": 41,
      "text": " ADD ",
      "top": 301.0,
      "left": 234.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0042",
      "page": 47,
      "ordinal": 42,
      "text": "更直观易懂。",
      "top": 301.0,
      "left": 272.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0043",
      "page": 47,
      "ordinal": 43,
      "text": " COPY ",
      "top": 301.0,
      "left": 360.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0044",
      "page": 47,
      "ordinal": 44,
      "text": "只是将本地文件拷入容器这么简",
      "top": 301.0,
      "left": 405.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0046",
      "page": 47,
      "ordinal": 46,
      "text": "单，而",
      "top": 301.0,
      "left": 614.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0047",
      "page": 47,
      "ordinal": 47,
      "text": " ADD ",
      "top": 301.0,
      "left": 657.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0048",
      "page": 47,
      "ordinal": 48,
      "text": "有一些其它",
      "top": 301.0,
      "left": 696.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0049",
      "page": 47,
      "ordinal": 49,
      "text": "特性功能（诸如，本地归档解压和支持远程网址访问",
      "top": 324.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0051",
      "page": 47,
      "ordinal": 51,
      "text": "等），这些特性在指令本身体现并不明显。因此，",
      "top": 324.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0052",
      "page": 47,
      "ordinal": 52,
      "text": "有必要使用",
      "top": 347.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0053",
      "page": 47,
      "ordinal": 53,
      "text": " ADD ",
      "top": 347.0,
      "left": 185.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0054",
      "page": 47,
      "ordinal": 54,
      "text": "指令的最好",
      "top": 347.0,
      "left": 223.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0056",
      "page": 47,
      "ordinal": 56,
      "text": "例子是需要在本地自动解压归档文件到容器中的情况，如",
      "top": 347.0,
      "left": 300.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0057",
      "page": 47,
      "ordinal": 57,
      "text": " ADD ",
      "top": 347.0,
      "left": 666.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0058",
      "page": 47,
      "ordinal": 58,
      "text": "rootfs.tar.xz ",
      "top": 371.0,
      "left": 112.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0059",
      "page": 47,
      "ordinal": 59,
      "text": "。",
      "top": 371.0,
      "left": 198.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h02",
        "heading_id": "p047-h02",
        "block_id": "q-p047-h02-b001"
      }
    },
    {
      "id": "p047-t0061",
      "page": 47,
      "ordinal": 61,
      "text": "Docker ",
      "top": 406.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03"
      }
    },
    {
      "id": "p047-t0062",
      "page": 47,
      "ordinal": 62,
      "text": "镜像（",
      "top": 406.0,
      "left": 209.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03"
      }
    },
    {
      "id": "p047-t0063",
      "page": 47,
      "ordinal": 63,
      "text": "image",
      "top": 406.0,
      "left": 286.0,
      "width": 78.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03"
      }
    },
    {
      "id": "p047-t0064",
      "page": 47,
      "ordinal": 64,
      "text": "）是什么？",
      "top": 406.0,
      "left": 364.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03"
      }
    },
    {
      "id": "p047-t0067",
      "page": 47,
      "ordinal": 67,
      "text": " Docker image ",
      "top": 456.0,
      "left": 112.0,
      "width": 101.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0068",
      "page": 47,
      "ordinal": 68,
      "text": "是",
      "top": 456.0,
      "left": 213.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0069",
      "page": 47,
      "ordinal": 69,
      "text": " Docker ",
      "top": 456.0,
      "left": 228.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0070",
      "page": 47,
      "ordinal": 70,
      "text": "容器的源。换言之，",
      "top": 456.0,
      "left": 284.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0071",
      "page": 47,
      "ordinal": 71,
      "text": "Docker images ",
      "top": 456.0,
      "left": 415.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0072",
      "page": 47,
      "ordinal": 72,
      "text": "用于创建",
      "top": 456.0,
      "left": 520.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0073",
      "page": 47,
      "ordinal": 73,
      "text": " Docker ",
      "top": 456.0,
      "left": 578.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0074",
      "page": 47,
      "ordinal": 74,
      "text": "容器（",
      "top": 456.0,
      "left": 634.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0075",
      "page": 47,
      "ordinal": 75,
      "text": "containers",
      "top": 456.0,
      "left": 678.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0076",
      "page": 47,
      "ordinal": 76,
      "text": "）。",
      "top": 456.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0077",
      "page": 47,
      "ordinal": 77,
      "text": "映像（",
      "top": 479.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0078",
      "page": 47,
      "ordinal": 78,
      "text": "Images",
      "top": 479.0,
      "left": 156.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0079",
      "page": 47,
      "ordinal": 79,
      "text": "）通过",
      "top": 479.0,
      "left": 205.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0080",
      "page": 47,
      "ordinal": 80,
      "text": " Docker build ",
      "top": 479.0,
      "left": 249.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0081",
      "page": 47,
      "ordinal": 81,
      "text": "命令创建，",
      "top": 479.0,
      "left": 343.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0083",
      "page": 47,
      "ordinal": 83,
      "text": "当",
      "top": 479.0,
      "left": 419.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0084",
      "page": 47,
      "ordinal": 84,
      "text": " run ",
      "top": 479.0,
      "left": 434.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0085",
      "page": 47,
      "ordinal": 85,
      "text": "映像时，它启动成一个",
      "top": 479.0,
      "left": 466.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0087",
      "page": 47,
      "ordinal": 87,
      "text": "容器（",
      "top": 479.0,
      "left": 616.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0088",
      "page": 47,
      "ordinal": 88,
      "text": "container",
      "top": 479.0,
      "left": 660.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0089",
      "page": 47,
      "ordinal": 89,
      "text": "）进",
      "top": 479.0,
      "left": 724.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0090",
      "page": 47,
      "ordinal": 90,
      "text": "程。",
      "top": 503.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0092",
      "page": 47,
      "ordinal": 92,
      "text": "做好的映像由于可",
      "top": 503.0,
      "left": 145.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0094",
      "page": 47,
      "ordinal": 94,
      "text": "能非常庞大，常注册存储在诸如",
      "top": 503.0,
      "left": 266.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0095",
      "page": 47,
      "ordinal": 95,
      "text": " registry.hub.docker.com ",
      "top": 503.0,
      "left": 470.0,
      "width": 174.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0096",
      "page": 47,
      "ordinal": 96,
      "text": "这样的公共平台",
      "top": 503.0,
      "left": 644.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0098",
      "page": 47,
      "ordinal": 98,
      "text": "上。",
      "top": 503.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0099",
      "page": 47,
      "ordinal": 99,
      "text": "映像常被分层设计，每层可单独成为一个小映像，由多层小映像再构成大",
      "top": 526.0,
      "left": 112.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0101",
      "page": 47,
      "ordinal": 101,
      "text": "映像，这样碎片化的设计为了",
      "top": 526.0,
      "left": 584.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0102",
      "page": 47,
      "ordinal": 102,
      "text": "使映像在互联网上共享时，最小化传输数据需",
      "top": 550.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0104",
      "page": 47,
      "ordinal": 104,
      "text": "求。",
      "top": 550.0,
      "left": 408.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h03",
        "heading_id": "p047-h03",
        "block_id": "q-p047-h03-b001"
      }
    },
    {
      "id": "p047-t0106",
      "page": 47,
      "ordinal": 106,
      "text": "Docker ",
      "top": 584.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04"
      }
    },
    {
      "id": "p047-t0107",
      "page": 47,
      "ordinal": 107,
      "text": "容器（",
      "top": 584.0,
      "left": 209.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04"
      }
    },
    {
      "id": "p047-t0108",
      "page": 47,
      "ordinal": 108,
      "text": "container",
      "top": 584.0,
      "left": 286.0,
      "width": 124.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04"
      }
    },
    {
      "id": "p047-t0109",
      "page": 47,
      "ordinal": 109,
      "text": "）是什么",
      "top": 584.0,
      "left": 410.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04"
      }
    },
    {
      "id": "p047-t0112",
      "page": 47,
      "ordinal": 112,
      "text": " Docker containers -- Docker ",
      "top": 634.0,
      "left": 112.0,
      "width": 197.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0113",
      "page": 47,
      "ordinal": 113,
      "text": "容器",
      "top": 634.0,
      "left": 309.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0114",
      "page": 47,
      "ordinal": 114,
      "text": " -- ",
      "top": 634.0,
      "left": 338.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0115",
      "page": 47,
      "ordinal": 115,
      "text": "是包含其所有运行依赖环境，但与其",
      "top": 634.0,
      "left": 355.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0117",
      "page": 47,
      "ordinal": 117,
      "text": "它容器共享操作系统内核的",
      "top": 634.0,
      "left": 593.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0118",
      "page": 47,
      "ordinal": 118,
      "text": "应用，它运行在独立的主机操作系统用户空间进程",
      "top": 658.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0120",
      "page": 47,
      "ordinal": 120,
      "text": "中。",
      "top": 658.0,
      "left": 437.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0121",
      "page": 47,
      "ordinal": 121,
      "text": "Docker ",
      "top": 658.0,
      "left": 467.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0122",
      "page": 47,
      "ordinal": 122,
      "text": "容器并不紧密依赖特定的基础平台：可运",
      "top": 658.0,
      "left": 519.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0123",
      "page": 47,
      "ordinal": 123,
      "text": "行在任何配置的计算机，",
      "top": 681.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0125",
      "page": 47,
      "ordinal": 125,
      "text": "任何平台以及任何云平台上",
      "top": 681.0,
      "left": 276.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h04",
        "heading_id": "p047-h04",
        "block_id": "q-p047-h04-b001"
      }
    },
    {
      "id": "p047-t0127",
      "page": 47,
      "ordinal": 127,
      "text": "Docker ",
      "top": 716.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05"
      }
    },
    {
      "id": "p047-t0128",
      "page": 47,
      "ordinal": 128,
      "text": "中心（",
      "top": 716.0,
      "left": 209.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05"
      }
    },
    {
      "id": "p047-t0129",
      "page": 47,
      "ordinal": 129,
      "text": "hub",
      "top": 716.0,
      "left": 286.0,
      "width": 50.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05"
      }
    },
    {
      "id": "p047-t0130",
      "page": 47,
      "ordinal": 130,
      "text": "）什么概念",
      "top": 716.0,
      "left": 336.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05"
      }
    },
    {
      "id": "p047-t0133",
      "page": 47,
      "ordinal": 133,
      "text": " Docker hub ",
      "top": 767.0,
      "left": 112.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0134",
      "page": 47,
      "ordinal": 134,
      "text": "是云基础的",
      "top": 767.0,
      "left": 198.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0135",
      "page": 47,
      "ordinal": 135,
      "text": " Docker ",
      "top": 767.0,
      "left": 272.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0136",
      "page": 47,
      "ordinal": 136,
      "text": "注册服务平台，它允许用户进行访问",
      "top": 767.0,
      "left": 327.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0137",
      "page": 47,
      "ordinal": 137,
      "text": " Docker ",
      "top": 767.0,
      "left": 561.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0138",
      "page": 47,
      "ordinal": 138,
      "text": "中心资源库，创建自己的",
      "top": 767.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0140",
      "page": 47,
      "ordinal": 140,
      "text": "Docker ",
      "top": 791.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0141",
      "page": 47,
      "ordinal": 141,
      "text": "映像并测试，推送并存储创建好的",
      "top": 791.0,
      "left": 164.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0142",
      "page": 47,
      "ordinal": 142,
      "text": " Docker ",
      "top": 791.0,
      "left": 383.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0143",
      "page": 47,
      "ordinal": 143,
      "text": "映像，连接",
      "top": 791.0,
      "left": 439.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0144",
      "page": 47,
      "ordinal": 144,
      "text": " Docker ",
      "top": 791.0,
      "left": 512.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0145",
      "page": 47,
      "ordinal": 145,
      "text": "云平台将已创建好的指定",
      "top": 791.0,
      "left": 568.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0146",
      "page": 47,
      "ordinal": 146,
      "text": " Docker ",
      "top": 791.0,
      "left": 729.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0147",
      "page": 47,
      "ordinal": 147,
      "text": "映像布署到本地主机等",
      "top": 813.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0149",
      "page": 47,
      "ordinal": 149,
      "text": "任务。它提供了一个查找发现",
      "top": 813.0,
      "left": 262.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0150",
      "page": 47,
      "ordinal": 150,
      "text": " Docker ",
      "top": 813.0,
      "left": 452.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0151",
      "page": 47,
      "ordinal": 151,
      "text": "映像，发布",
      "top": 813.0,
      "left": 508.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0152",
      "page": 47,
      "ordinal": 152,
      "text": " Docker ",
      "top": 813.0,
      "left": 581.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0153",
      "page": 47,
      "ordinal": 153,
      "text": "映像及控制变化升",
      "top": 813.0,
      "left": 637.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0155",
      "page": 47,
      "ordinal": 155,
      "text": "级",
      "top": 813.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0156",
      "page": 47,
      "ordinal": 156,
      "text": "的资源中心，成为用户组或团队协作开发中保证自动化开发流程的有效技术",
      "top": 837.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0158",
      "page": 47,
      "ordinal": 158,
      "text": "途径。",
      "top": 837.0,
      "left": 598.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h05",
        "heading_id": "p047-h05",
        "block_id": "q-p047-h05-b001"
      }
    },
    {
      "id": "p047-t0160",
      "page": 47,
      "ordinal": 160,
      "text": "在任意给定时间点指出一个",
      "top": 871.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06"
      }
    },
    {
      "id": "p047-t0161",
      "page": 47,
      "ordinal": 161,
      "text": " Docker ",
      "top": 871.0,
      "left": 419.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06"
      }
    },
    {
      "id": "p047-t0162",
      "page": 47,
      "ordinal": 162,
      "text": "容器可能存在的运行阶",
      "top": 871.0,
      "left": 523.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06"
      }
    },
    {
      "id": "p047-t0163",
      "page": 47,
      "ordinal": 163,
      "text": "段",
      "top": 903.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06"
      }
    },
    {
      "id": "p047-t0167",
      "page": 47,
      "ordinal": 167,
      "text": "在任意时间点，一个",
      "top": 954.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0168",
      "page": 47,
      "ordinal": 168,
      "text": " Docker ",
      "top": 954.0,
      "left": 247.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0169",
      "page": 47,
      "ordinal": 169,
      "text": "容器可能存在以下运行阶段",
      "top": 954.0,
      "left": 303.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0171",
      "page": 47,
      "ordinal": 171,
      "text": "：",
      "top": 954.0,
      "left": 486.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0173",
      "page": 47,
      "ordinal": 173,
      "text": "运行中（",
      "top": 976.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0174",
      "page": 47,
      "ordinal": 174,
      "text": "Running",
      "top": 976.0,
      "left": 174.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0175",
      "page": 47,
      "ordinal": 175,
      "text": "）",
      "top": 976.0,
      "left": 231.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0177",
      "page": 47,
      "ordinal": 177,
      "text": "已暂停（",
      "top": 976.0,
      "left": 249.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0178",
      "page": 47,
      "ordinal": 178,
      "text": "Paused",
      "top": 976.0,
      "left": 308.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0179",
      "page": 47,
      "ordinal": 179,
      "text": "）",
      "top": 976.0,
      "left": 358.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0181",
      "page": 47,
      "ordinal": 181,
      "text": "重启中（",
      "top": 976.0,
      "left": 376.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0182",
      "page": 47,
      "ordinal": 182,
      "text": "Restarting",
      "top": 976.0,
      "left": 435.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0183",
      "page": 47,
      "ordinal": 183,
      "text": "）",
      "top": 976.0,
      "left": 504.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0185",
      "page": 47,
      "ordinal": 185,
      "text": "已退出（",
      "top": 976.0,
      "left": 522.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0186",
      "page": 47,
      "ordinal": 186,
      "text": "Exited",
      "top": 976.0,
      "left": 581.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0187",
      "page": 47,
      "ordinal": 187,
      "text": "）",
      "top": 976.0,
      "left": 623.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h06",
        "heading_id": "p047-h06",
        "block_id": "q-p047-h06-b001"
      }
    },
    {
      "id": "p047-t0189",
      "page": 47,
      "ordinal": 189,
      "text": "有什么方法确定一个",
      "top": 1011.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07"
      }
    },
    {
      "id": "p047-t0190",
      "page": 47,
      "ordinal": 190,
      "text": " Docker ",
      "top": 1011.0,
      "left": 342.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07"
      }
    },
    {
      "id": "p047-t0191",
      "page": 47,
      "ordinal": 191,
      "text": "容器运行状态",
      "top": 1011.0,
      "left": 446.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07"
      }
    },
    {
      "id": "p047-t0195",
      "page": 47,
      "ordinal": 195,
      "text": "使用如下命令行命令确定一个",
      "top": 1062.0,
      "left": 116.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0196",
      "page": 47,
      "ordinal": 196,
      "text": " Docker ",
      "top": 1062.0,
      "left": 306.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0197",
      "page": 47,
      "ordinal": 197,
      "text": "容器的运行状态",
      "top": 1062.0,
      "left": 362.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0199",
      "page": 47,
      "ordinal": 199,
      "text": "docker ps –a ",
      "top": 1085.0,
      "left": 112.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0200",
      "page": 47,
      "ordinal": 200,
      "text": "这将列表形式输出运行在主机上的所有",
      "top": 1109.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0201",
      "page": 47,
      "ordinal": 201,
      "text": " Docker ",
      "top": 1109.0,
      "left": 360.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0202",
      "page": 47,
      "ordinal": 202,
      "text": "容器及其运行状态。从这个列",
      "top": 1109.0,
      "left": 416.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0204",
      "page": 47,
      "ordinal": 204,
      "text": "表中很容易找到想要的容",
      "top": 1109.0,
      "left": 610.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p047-t0205",
      "page": 47,
      "ordinal": 205,
      "text": "器及其运行状态",
      "top": 1131.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p047-h07",
        "heading_id": "p047-h07",
        "block_id": "q-p047-h07-b001"
      }
    },
    {
      "id": "p048-t0001",
      "page": 48,
      "ordinal": 1,
      "text": "在",
      "top": 40.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01"
      }
    },
    {
      "id": "p048-t0002",
      "page": 48,
      "ordinal": 2,
      "text": " Dockerfile ",
      "top": 40.0,
      "left": 137.0,
      "width": 145.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01"
      }
    },
    {
      "id": "p048-t0003",
      "page": 48,
      "ordinal": 3,
      "text": "配置文件中最常用的指令有哪些？",
      "top": 40.0,
      "left": 282.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01"
      }
    },
    {
      "id": "p048-t0006",
      "page": 48,
      "ordinal": 6,
      "text": "1. FROM",
      "top": 91.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0007",
      "page": 48,
      "ordinal": 7,
      "text": "：使用",
      "top": 91.0,
      "left": 187.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0008",
      "page": 48,
      "ordinal": 8,
      "text": " FROM ",
      "top": 91.0,
      "left": 231.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0009",
      "page": 48,
      "ordinal": 9,
      "text": "为后续的指令建立基础映像。在所有有效的",
      "top": 91.0,
      "left": 279.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0010",
      "page": 48,
      "ordinal": 10,
      "text": " Dockerfile ",
      "top": 91.0,
      "left": 557.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0011",
      "page": 48,
      "ordinal": 11,
      "text": "中，",
      "top": 91.0,
      "left": 634.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0012",
      "page": 48,
      "ordinal": 12,
      "text": " FROM ",
      "top": 91.0,
      "left": 663.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0013",
      "page": 48,
      "ordinal": 13,
      "text": "是第一条",
      "top": 91.0,
      "left": 712.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0014",
      "page": 48,
      "ordinal": 14,
      "text": "指令。",
      "top": 114.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b001"
      }
    },
    {
      "id": "p048-t0015",
      "page": 48,
      "ordinal": 15,
      "text": "2. LABEL",
      "top": 145.0,
      "left": 129.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0016",
      "page": 48,
      "ordinal": 16,
      "text": "：",
      "top": 145.0,
      "left": 188.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0017",
      "page": 48,
      "ordinal": 17,
      "text": "LABEL ",
      "top": 145.0,
      "left": 202.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0018",
      "page": 48,
      "ordinal": 18,
      "text": "指令用于组织项目映像，模块，许可等。在自动化布署方面",
      "top": 145.0,
      "left": 248.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0019",
      "page": 48,
      "ordinal": 19,
      "text": " LABEL ",
      "top": 145.0,
      "left": 628.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0020",
      "page": 48,
      "ordinal": 20,
      "text": "也有很大用途。",
      "top": 145.0,
      "left": 678.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0021",
      "page": 48,
      "ordinal": 21,
      "text": "在",
      "top": 168.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0022",
      "page": 48,
      "ordinal": 22,
      "text": " LABEL ",
      "top": 168.0,
      "left": 160.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0023",
      "page": 48,
      "ordinal": 23,
      "text": "中指定一组键值对，可用于程序化配置或布署",
      "top": 168.0,
      "left": 210.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0024",
      "page": 48,
      "ordinal": 24,
      "text": " Docker ",
      "top": 168.0,
      "left": 502.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0025",
      "page": 48,
      "ordinal": 25,
      "text": "。",
      "top": 168.0,
      "left": 558.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b002"
      }
    },
    {
      "id": "p048-t0027",
      "page": 48,
      "ordinal": 27,
      "text": "3. RUN",
      "top": 199.0,
      "left": 129.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0028",
      "page": 48,
      "ordinal": 28,
      "text": "：",
      "top": 199.0,
      "left": 176.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0029",
      "page": 48,
      "ordinal": 29,
      "text": "RUN ",
      "top": 199.0,
      "left": 191.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0030",
      "page": 48,
      "ordinal": 30,
      "text": "指令可在映像当前层执行任何命令并创建一个新层，用于在映像层中",
      "top": 199.0,
      "left": 225.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0032",
      "page": 48,
      "ordinal": 32,
      "text": "添加功能层，也",
      "top": 199.0,
      "left": 668.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0033",
      "page": 48,
      "ordinal": 33,
      "text": "许最来的层会依赖它。",
      "top": 222.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b003"
      }
    },
    {
      "id": "p048-t0035",
      "page": 48,
      "ordinal": 35,
      "text": "4. CMD",
      "top": 253.0,
      "left": 129.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0036",
      "page": 48,
      "ordinal": 36,
      "text": "：使用",
      "top": 253.0,
      "left": 179.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0037",
      "page": 48,
      "ordinal": 37,
      "text": " CMD ",
      "top": 253.0,
      "left": 222.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0038",
      "page": 48,
      "ordinal": 38,
      "text": "指令为执行的容器提供默认值。在",
      "top": 253.0,
      "left": 263.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0039",
      "page": 48,
      "ordinal": 39,
      "text": " Dockerfile ",
      "top": 253.0,
      "left": 483.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0040",
      "page": 48,
      "ordinal": 40,
      "text": "文件中，若添",
      "top": 253.0,
      "left": 559.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0042",
      "page": 48,
      "ordinal": 42,
      "text": "加多个",
      "top": 253.0,
      "left": 651.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0043",
      "page": 48,
      "ordinal": 43,
      "text": " CMD ",
      "top": 253.0,
      "left": 694.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0044",
      "page": 48,
      "ordinal": 44,
      "text": "指令，",
      "top": 253.0,
      "left": 735.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0045",
      "page": 48,
      "ordinal": 45,
      "text": "只有最后的",
      "top": 276.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0046",
      "page": 48,
      "ordinal": 46,
      "text": " CMD ",
      "top": 276.0,
      "left": 219.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0047",
      "page": 48,
      "ordinal": 47,
      "text": "指令运行",
      "top": 276.0,
      "left": 259.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h01",
        "heading_id": "p048-h01",
        "block_id": "q-p048-h01-b004"
      }
    },
    {
      "id": "p048-t0049",
      "page": 48,
      "ordinal": 49,
      "text": "什么类型的应用（无状态性或有状态性）更适合",
      "top": 311.0,
      "left": 112.0,
      "width": 537.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02"
      }
    },
    {
      "id": "p048-t0050",
      "page": 48,
      "ordinal": 50,
      "text": " Docker ",
      "top": 311.0,
      "left": 649.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02"
      }
    },
    {
      "id": "p048-t0051",
      "page": 48,
      "ordinal": 51,
      "text": "容",
      "top": 311.0,
      "left": 753.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02"
      }
    },
    {
      "id": "p048-t0053",
      "page": 48,
      "ordinal": 53,
      "text": "器技术",
      "top": 343.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02"
      }
    },
    {
      "id": "p048-t0057",
      "page": 48,
      "ordinal": 57,
      "text": "对于",
      "top": 392.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0058",
      "page": 48,
      "ordinal": 58,
      "text": " Docker ",
      "top": 392.0,
      "left": 145.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0059",
      "page": 48,
      "ordinal": 59,
      "text": "容器创建无状态性（",
      "top": 392.0,
      "left": 201.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0060",
      "page": 48,
      "ordinal": 60,
      "text": "Stateless",
      "top": 392.0,
      "left": 332.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0061",
      "page": 48,
      "ordinal": 61,
      "text": "）的应用更可取。通过从应用项目",
      "top": 392.0,
      "left": 393.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0063",
      "page": 48,
      "ordinal": 63,
      "text": "中将与状态相关的信息及",
      "top": 392.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0064",
      "page": 48,
      "ordinal": 64,
      "text": "配置提取掉，我们可以在项目环境外建立不依赖项目",
      "top": 416.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0066",
      "page": 48,
      "ordinal": 66,
      "text": "环境的",
      "top": 416.0,
      "left": 452.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0067",
      "page": 48,
      "ordinal": 67,
      "text": " Docker ",
      "top": 416.0,
      "left": 496.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0068",
      "page": 48,
      "ordinal": 68,
      "text": "容器。这样，我们可以在任意产品",
      "top": 416.0,
      "left": 552.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0069",
      "page": 48,
      "ordinal": 69,
      "text": "中运行同一容器，只需根据",
      "top": 440.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0071",
      "page": 48,
      "ordinal": 71,
      "text": "产品需要像问",
      "top": 440.0,
      "left": 291.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0072",
      "page": 48,
      "ordinal": 72,
      "text": " & ",
      "top": 440.0,
      "left": 379.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0073",
      "page": 48,
      "ordinal": 73,
      "text": "答（",
      "top": 440.0,
      "left": 397.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0074",
      "page": 48,
      "ordinal": 74,
      "text": "QA",
      "top": 440.0,
      "left": 426.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0075",
      "page": 48,
      "ordinal": 75,
      "text": "）一样给其配置环境即可。",
      "top": 440.0,
      "left": 447.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0077",
      "page": 48,
      "ordinal": 77,
      "text": "这帮助我们在不同场景",
      "top": 440.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0078",
      "page": 48,
      "ordinal": 78,
      "text": "重",
      "top": 463.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0080",
      "page": 48,
      "ordinal": 80,
      "text": "用相同的",
      "top": 463.0,
      "left": 130.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0081",
      "page": 48,
      "ordinal": 81,
      "text": " Docker ",
      "top": 463.0,
      "left": 189.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0082",
      "page": 48,
      "ordinal": 82,
      "text": "映像。另外，使用",
      "top": 463.0,
      "left": 245.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0084",
      "page": 48,
      "ordinal": 84,
      "text": "无状态性（",
      "top": 463.0,
      "left": 365.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0085",
      "page": 48,
      "ordinal": 85,
      "text": "Stateless",
      "top": 463.0,
      "left": 439.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0086",
      "page": 48,
      "ordinal": 86,
      "text": "）容器应用相比有",
      "top": 463.0,
      "left": 499.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0088",
      "page": 48,
      "ordinal": 88,
      "text": "状态性（",
      "top": 463.0,
      "left": 620.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0089",
      "page": 48,
      "ordinal": 89,
      "text": "Stateful",
      "top": 463.0,
      "left": 678.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0090",
      "page": 48,
      "ordinal": 90,
      "text": "）容器",
      "top": 463.0,
      "left": 731.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0091",
      "page": 48,
      "ordinal": 91,
      "text": "应用更具伸缩性，也容易创建",
      "top": 487.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h02",
        "heading_id": "p048-h02",
        "block_id": "q-p048-h02-b001"
      }
    },
    {
      "id": "p048-t0093",
      "page": 48,
      "ordinal": 93,
      "text": "解释基本",
      "top": 520.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03"
      }
    },
    {
      "id": "p048-t0094",
      "page": 48,
      "ordinal": 94,
      "text": " Docker ",
      "top": 520.0,
      "left": 214.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03"
      }
    },
    {
      "id": "p048-t0095",
      "page": 48,
      "ordinal": 95,
      "text": "应用流程",
      "top": 520.0,
      "left": 318.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03"
      }
    },
    {
      "id": "p048-t0099",
      "page": 48,
      "ordinal": 99,
      "text": "初始，所有都有赖于",
      "top": 571.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0100",
      "page": 48,
      "ordinal": 100,
      "text": " Dockerfile ",
      "top": 571.0,
      "left": 247.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0101",
      "page": 48,
      "ordinal": 101,
      "text": "配置文件。",
      "top": 571.0,
      "left": 324.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0102",
      "page": 48,
      "ordinal": 102,
      "text": "Dockerfile ",
      "top": 571.0,
      "left": 397.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0103",
      "page": 48,
      "ordinal": 103,
      "text": "配置文件就是创建",
      "top": 571.0,
      "left": 469.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0104",
      "page": 48,
      "ordinal": 104,
      "text": " Docker image (",
      "top": 571.0,
      "left": 586.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0105",
      "page": 48,
      "ordinal": 105,
      "text": "映像",
      "top": 571.0,
      "left": 692.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0106",
      "page": 48,
      "ordinal": 106,
      "text": ") ",
      "top": 571.0,
      "left": 721.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0107",
      "page": 48,
      "ordinal": 107,
      "text": "的源代",
      "top": 571.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0108",
      "page": 48,
      "ordinal": 108,
      "text": "码。",
      "top": 595.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0109",
      "page": 48,
      "ordinal": 109,
      "text": " 48 ",
      "top": 595.0,
      "left": 141.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0110",
      "page": 48,
      "ordinal": 110,
      "text": "一旦",
      "top": 595.0,
      "left": 165.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0111",
      "page": 48,
      "ordinal": 111,
      "text": " Dockerfile ",
      "top": 595.0,
      "left": 195.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0112",
      "page": 48,
      "ordinal": 112,
      "text": "配置好了，就可以创建（",
      "top": 595.0,
      "left": 271.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0113",
      "page": 48,
      "ordinal": 113,
      "text": "build",
      "top": 595.0,
      "left": 432.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0114",
      "page": 48,
      "ordinal": 114,
      "text": "）并生成",
      "top": 595.0,
      "left": 466.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0115",
      "page": 48,
      "ordinal": 115,
      "text": " 'image",
      "top": 595.0,
      "left": 525.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0116",
      "page": 48,
      "ordinal": 116,
      "text": "（映像）",
      "top": 595.0,
      "left": 573.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0117",
      "page": 48,
      "ordinal": 117,
      "text": " ' ",
      "top": 595.0,
      "left": 632.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0118",
      "page": 48,
      "ordinal": 118,
      "text": "，",
      "top": 595.0,
      "left": 643.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0119",
      "page": 48,
      "ordinal": 119,
      "text": "'image' ",
      "top": 595.0,
      "left": 657.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0120",
      "page": 48,
      "ordinal": 120,
      "text": "就是",
      "top": 595.0,
      "left": 709.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0122",
      "page": 48,
      "ordinal": 122,
      "text": "Dockerfile ",
      "top": 618.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0123",
      "page": 48,
      "ordinal": 123,
      "text": "配置文件中",
      "top": 618.0,
      "left": 184.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0125",
      "page": 48,
      "ordinal": 125,
      "text": "「源代码」的「编译」版本。",
      "top": 618.0,
      "left": 261.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0127",
      "page": 48,
      "ordinal": 127,
      "text": "一旦有了",
      "top": 618.0,
      "left": 455.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0128",
      "page": 48,
      "ordinal": 128,
      "text": " 'image' ",
      "top": 618.0,
      "left": 514.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0129",
      "page": 48,
      "ordinal": 129,
      "text": "，就可以在",
      "top": 618.0,
      "left": 569.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0130",
      "page": 48,
      "ordinal": 130,
      "text": " registry",
      "top": 618.0,
      "left": 643.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0131",
      "page": 48,
      "ordinal": 131,
      "text": "（注册中",
      "top": 618.0,
      "left": 698.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0132",
      "page": 48,
      "ordinal": 132,
      "text": "心）",
      "top": 642.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0134",
      "page": 48,
      "ordinal": 134,
      "text": "发布它。",
      "top": 642.0,
      "left": 145.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0135",
      "page": 48,
      "ordinal": 135,
      "text": " 'registry' ",
      "top": 642.0,
      "left": 203.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0136",
      "page": 48,
      "ordinal": 136,
      "text": "类似",
      "top": 642.0,
      "left": 269.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0137",
      "page": 48,
      "ordinal": 137,
      "text": " git ",
      "top": 642.0,
      "left": 298.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0138",
      "page": 48,
      "ordinal": 138,
      "text": "的资源库",
      "top": 642.0,
      "left": 322.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0139",
      "page": 48,
      "ordinal": 139,
      "text": " -- ",
      "top": 642.0,
      "left": 381.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0140",
      "page": 48,
      "ordinal": 140,
      "text": "你可以推送你的映像（",
      "top": 642.0,
      "left": 398.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0141",
      "page": 48,
      "ordinal": 141,
      "text": "image",
      "top": 642.0,
      "left": 544.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0142",
      "page": 48,
      "ordinal": 142,
      "text": "），也可取回库中的映像",
      "top": 642.0,
      "left": 586.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0144",
      "page": 48,
      "ordinal": 144,
      "text": "（",
      "top": 665.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0145",
      "page": 48,
      "ordinal": 145,
      "text": "image",
      "top": 665.0,
      "left": 126.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0146",
      "page": 48,
      "ordinal": 146,
      "text": "）。",
      "top": 665.0,
      "left": 168.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0148",
      "page": 48,
      "ordinal": 148,
      "text": "之后，你就可以使用",
      "top": 665.0,
      "left": 201.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0149",
      "page": 48,
      "ordinal": 149,
      "text": " image ",
      "top": 665.0,
      "left": 333.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0150",
      "page": 48,
      "ordinal": 150,
      "text": "去启动运行",
      "top": 665.0,
      "left": 382.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0151",
      "page": 48,
      "ordinal": 151,
      "text": " 'containers",
      "top": 665.0,
      "left": 455.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0152",
      "page": 48,
      "ordinal": 152,
      "text": "（容器）",
      "top": 665.0,
      "left": 534.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0153",
      "page": 48,
      "ordinal": 153,
      "text": "'",
      "top": 665.0,
      "left": 593.0,
      "width": 3.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0154",
      "page": 48,
      "ordinal": 154,
      "text": "。运行中的容",
      "top": 665.0,
      "left": 596.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0156",
      "page": 48,
      "ordinal": 156,
      "text": "器在许多方",
      "top": 665.0,
      "left": 687.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0157",
      "page": 48,
      "ordinal": 157,
      "text": "面，与虚拟机非常相似，但容器的运行不需要虚拟管理软件的运",
      "top": 688.0,
      "left": 112.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0159",
      "page": 48,
      "ordinal": 159,
      "text": "行。",
      "top": 688.0,
      "left": 525.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h03",
        "heading_id": "p048-h03",
        "block_id": "q-p048-h03-b001"
      }
    },
    {
      "id": "p048-t0161",
      "page": 48,
      "ordinal": 161,
      "text": "Docker Image ",
      "top": 723.0,
      "left": 112.0,
      "width": 183.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0162",
      "page": 48,
      "ordinal": 162,
      "text": "和",
      "top": 723.0,
      "left": 294.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0163",
      "page": 48,
      "ordinal": 163,
      "text": " Docker Layer ",
      "top": 723.0,
      "left": 320.0,
      "width": 182.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0164",
      "page": 48,
      "ordinal": 164,
      "text": "（层",
      "top": 723.0,
      "left": 502.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0165",
      "page": 48,
      "ordinal": 165,
      "text": ") ",
      "top": 723.0,
      "left": 553.0,
      "width": 15.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0166",
      "page": 48,
      "ordinal": 166,
      "text": "有什么不同？",
      "top": 723.0,
      "left": 568.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04"
      }
    },
    {
      "id": "p048-t0169",
      "page": 48,
      "ordinal": 169,
      "text": " Image",
      "top": 774.0,
      "left": 112.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0170",
      "page": 48,
      "ordinal": 170,
      "text": "：一个",
      "top": 774.0,
      "left": 158.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0171",
      "page": 48,
      "ordinal": 171,
      "text": " Docker Image ",
      "top": 774.0,
      "left": 201.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0172",
      "page": 48,
      "ordinal": 172,
      "text": "是由一系列",
      "top": 774.0,
      "left": 303.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0173",
      "page": 48,
      "ordinal": 173,
      "text": " Docker ",
      "top": 774.0,
      "left": 376.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0174",
      "page": 48,
      "ordinal": 174,
      "text": "只读层（",
      "top": 774.0,
      "left": 432.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0175",
      "page": 48,
      "ordinal": 175,
      "text": "read-only Layer",
      "top": 774.0,
      "left": 491.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0176",
      "page": 48,
      "ordinal": 176,
      "text": "）",
      "top": 774.0,
      "left": 597.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0178",
      "page": 48,
      "ordinal": 178,
      "text": "创建出来的。",
      "top": 774.0,
      "left": 615.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0179",
      "page": 48,
      "ordinal": 179,
      "text": " Layer",
      "top": 774.0,
      "left": 703.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0180",
      "page": 48,
      "ordinal": 180,
      "text": "：在",
      "top": 774.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0182",
      "page": 48,
      "ordinal": 182,
      "text": "Dockerfile ",
      "top": 797.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0183",
      "page": 48,
      "ordinal": 183,
      "text": "配置文件中完成的一条配置指令，即表示一个",
      "top": 797.0,
      "left": 184.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0184",
      "page": 48,
      "ordinal": 184,
      "text": " Docker ",
      "top": 797.0,
      "left": 477.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0185",
      "page": 48,
      "ordinal": 185,
      "text": "层（",
      "top": 797.0,
      "left": 533.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0186",
      "page": 48,
      "ordinal": 186,
      "text": "Layer",
      "top": 797.0,
      "left": 562.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0187",
      "page": 48,
      "ordinal": 187,
      "text": "）。",
      "top": 797.0,
      "left": 599.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0189",
      "page": 48,
      "ordinal": 189,
      "text": "如下",
      "top": 797.0,
      "left": 632.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0190",
      "page": 48,
      "ordinal": 190,
      "text": " Dockerfile ",
      "top": 797.0,
      "left": 662.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0191",
      "page": 48,
      "ordinal": 191,
      "text": "文件包",
      "top": 797.0,
      "left": 738.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0192",
      "page": 48,
      "ordinal": 192,
      "text": "含",
      "top": 821.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0193",
      "page": 48,
      "ordinal": 193,
      "text": " 4 ",
      "top": 821.0,
      "left": 126.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0194",
      "page": 48,
      "ordinal": 194,
      "text": "条指令，每条指令创建一个层（",
      "top": 821.0,
      "left": 142.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0195",
      "page": 48,
      "ordinal": 195,
      "text": "Layer",
      "top": 821.0,
      "left": 347.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0196",
      "page": 48,
      "ordinal": 196,
      "text": "）",
      "top": 821.0,
      "left": 384.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b001"
      }
    },
    {
      "id": "p048-t0199",
      "page": 48,
      "ordinal": 199,
      "text": "重点，每层只对其前一层进行一（某）些进化",
      "top": 980.0,
      "left": 116.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b003"
      }
    },
    {
      "id": "p048-t0201",
      "page": 48,
      "ordinal": 201,
      "text": "虚拟化技术是什么？",
      "top": 1014.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05"
      }
    },
    {
      "id": "p048-t0205",
      "page": 48,
      "ordinal": 205,
      "text": "最初的构想，",
      "top": 1065.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0206",
      "page": 48,
      "ordinal": 206,
      "text": "virtualisation",
      "top": 1065.0,
      "left": 203.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0207",
      "page": 48,
      "ordinal": 207,
      "text": "（虚拟化）",
      "top": 1065.0,
      "left": 292.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0209",
      "page": 48,
      "ordinal": 209,
      "text": "被认为是逻辑划分大型主机使得多个",
      "top": 1065.0,
      "left": 369.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0211",
      "page": 48,
      "ordinal": 211,
      "text": "应用可以并行运行的一种技",
      "top": 1065.0,
      "left": 606.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0212",
      "page": 48,
      "ordinal": 212,
      "text": "术方案。然而，随着技术公司及开源社区的推进，",
      "top": 1089.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0214",
      "page": 48,
      "ordinal": 214,
      "text": "现实发生了戏剧性的转变，以致产生了以一种或某种",
      "top": 1089.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0215",
      "page": 48,
      "ordinal": 215,
      "text": "方式操作特权指令可以在",
      "top": 1111.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0217",
      "page": 48,
      "ordinal": 217,
      "text": "单台基于",
      "top": 1111.0,
      "left": 276.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0218",
      "page": 48,
      "ordinal": 218,
      "text": " x86 ",
      "top": 1111.0,
      "left": 335.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0219",
      "page": 48,
      "ordinal": 219,
      "text": "硬件的系统上同时运行多个（种）操作系统的技术。",
      "top": 1111.0,
      "left": 367.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0221",
      "page": 48,
      "ordinal": 221,
      "text": "实质的效果",
      "top": 1111.0,
      "left": 707.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0222",
      "page": 48,
      "ordinal": 222,
      "text": "是，虚拟化技术允许你在一个硬件平台下运行",
      "top": 1135.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0223",
      "page": 48,
      "ordinal": 223,
      "text": " 2 ",
      "top": 1135.0,
      "left": 404.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0224",
      "page": 48,
      "ordinal": 224,
      "text": "个完全不同的操作",
      "top": 1135.0,
      "left": 420.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0226",
      "page": 48,
      "ordinal": 226,
      "text": "系统。每个客户操作系统可完成像系",
      "top": 1135.0,
      "left": 541.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0227",
      "page": 48,
      "ordinal": 227,
      "text": "统自检、启动、载入系统内核等像在独立",
      "top": 1158.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0229",
      "page": 48,
      "ordinal": 229,
      "text": "硬件上的一切动作。同时也具备坚实的安全基础，例如，客户",
      "top": 1158.0,
      "left": 379.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0230",
      "page": 48,
      "ordinal": 230,
      "text": "操作系统不能获",
      "top": 1182.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0232",
      "page": 48,
      "ordinal": 232,
      "text": "取完全访问主机或其它客户系统的权限，及其它涉及安全，可能把系统搞坏的",
      "top": 1182.0,
      "left": 218.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0234",
      "page": 48,
      "ordinal": 234,
      "text": "操作。",
      "top": 1182.0,
      "left": 719.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0236",
      "page": 48,
      "ordinal": 236,
      "text": "基",
      "top": 1182.0,
      "left": 767.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p048-t0237",
      "page": 48,
      "ordinal": 237,
      "text": "FROM ubuntu:15.04",
      "top": 872.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b002"
      }
    },
    {
      "id": "p048-t0238",
      "page": 48,
      "ordinal": 238,
      "text": "COPY . /app",
      "top": 893.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b002"
      }
    },
    {
      "id": "p048-t0239",
      "page": 48,
      "ordinal": 239,
      "text": "RUN make /app",
      "top": 915.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b002"
      }
    },
    {
      "id": "p048-t0240",
      "page": 48,
      "ordinal": 240,
      "text": "CMD python /app/app.py",
      "top": 935.0,
      "left": 126.0,
      "width": 174.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/07-docker#q-p048-h04",
        "heading_id": "p048-h04",
        "block_id": "q-p048-h04-b002"
      }
    },
    {
      "id": "p049-t0001",
      "page": 49,
      "ordinal": 1,
      "text": "于对客户操作系统虚拟硬件、运行环境模拟方法的不同，对虚拟化技术进行",
      "top": 44.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0003",
      "page": 49,
      "ordinal": 3,
      "text": "分类，主要的有如下",
      "top": 44.0,
      "left": 598.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0004",
      "page": 49,
      "ordinal": 4,
      "text": " 3 ",
      "top": 44.0,
      "left": 730.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0005",
      "page": 49,
      "ordinal": 5,
      "text": "种虚",
      "top": 44.0,
      "left": 746.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0006",
      "page": 49,
      "ordinal": 6,
      "text": "拟化技术种类",
      "top": 67.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0008",
      "page": 49,
      "ordinal": 8,
      "text": "：",
      "top": 67.0,
      "left": 203.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0010",
      "page": 49,
      "ordinal": 10,
      "text": "全模拟（",
      "top": 91.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0011",
      "page": 49,
      "ordinal": 11,
      "text": "Emulation",
      "top": 91.0,
      "left": 174.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0012",
      "page": 49,
      "ordinal": 12,
      "text": "）",
      "top": 91.0,
      "left": 243.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0014",
      "page": 49,
      "ordinal": 14,
      "text": "半虚拟（",
      "top": 113.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0015",
      "page": 49,
      "ordinal": 15,
      "text": "Paravirtualization",
      "top": 113.0,
      "left": 170.0,
      "width": 119.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0016",
      "page": 49,
      "ordinal": 16,
      "text": "）",
      "top": 113.0,
      "left": 290.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0018",
      "page": 49,
      "ordinal": 18,
      "text": "基于容器的虚拟化（",
      "top": 137.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0019",
      "page": 49,
      "ordinal": 19,
      "text": "Container-based virtualization",
      "top": 137.0,
      "left": 243.0,
      "width": 205.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0020",
      "page": 49,
      "ordinal": 20,
      "text": "）",
      "top": 137.0,
      "left": 449.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p048-h05",
        "heading_id": "p048-h05",
        "block_id": "q-p048-h05-b001"
      }
    },
    {
      "id": "p049-t0022",
      "page": 49,
      "ordinal": 22,
      "text": "虚拟管理层（程序）是什么",
      "top": 172.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01"
      }
    },
    {
      "id": "p049-t0025",
      "page": 49,
      "ordinal": 25,
      "text": " hypervisor -- ",
      "top": 222.0,
      "left": 112.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0026",
      "page": 49,
      "ordinal": 26,
      "text": "虚拟管理层（程序）",
      "top": 222.0,
      "left": 205.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0027",
      "page": 49,
      "ordinal": 27,
      "text": "-- ",
      "top": 222.0,
      "left": 336.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0028",
      "page": 49,
      "ordinal": 28,
      "text": "负责创建客户虚拟机系统运行所需虚拟",
      "top": 222.0,
      "left": 350.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0030",
      "page": 49,
      "ordinal": 30,
      "text": "硬件环境。它监管客户虚拟",
      "top": 222.0,
      "left": 602.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0031",
      "page": 49,
      "ordinal": 31,
      "text": "操作系统的运行，并为客户系统提供必要的运行资",
      "top": 246.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0033",
      "page": 49,
      "ordinal": 33,
      "text": "源，保证客户虚拟系统的运行。虚拟管理层（程序）",
      "top": 246.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0034",
      "page": 49,
      "ordinal": 34,
      "text": "驻留在物理主机系统和虚",
      "top": 269.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0036",
      "page": 49,
      "ordinal": 36,
      "text": "拟客户系统之间，为虚拟客户系统提供必要的虚拟服务。如何理解它，它侦听",
      "top": 269.0,
      "left": 276.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0038",
      "page": 49,
      "ordinal": 38,
      "text": "运行在虚拟机中的客户操作系统的操作并在主机操作系统中模拟客户操作系统",
      "top": 292.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0040",
      "page": 49,
      "ordinal": 40,
      "text": "所需硬件资源请求。满足",
      "top": 292.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0041",
      "page": 49,
      "ordinal": 41,
      "text": "客户机的运行需求",
      "top": 316.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0043",
      "page": 49,
      "ordinal": 43,
      "text": "虚拟化技术的快速发展，主要在云平台，由于在虚拟管理程序的帮助下，可允",
      "top": 339.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0045",
      "page": 49,
      "ordinal": 45,
      "text": "许在单台物理服务器上生",
      "top": 339.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0046",
      "page": 49,
      "ordinal": 46,
      "text": "成多个虚拟服务器，驱动着虚拟化技术快速发展及广",
      "top": 363.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0048",
      "page": 49,
      "ordinal": 48,
      "text": "泛应用。诸如，",
      "top": 363.0,
      "left": 452.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0049",
      "page": 49,
      "ordinal": 49,
      "text": "Xen",
      "top": 363.0,
      "left": 554.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0050",
      "page": 49,
      "ordinal": 50,
      "text": "，",
      "top": 363.0,
      "left": 580.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0051",
      "page": 49,
      "ordinal": 51,
      "text": "VMware",
      "top": 363.0,
      "left": 595.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0052",
      "page": 49,
      "ordinal": 52,
      "text": "，",
      "top": 363.0,
      "left": 650.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0053",
      "page": 49,
      "ordinal": 53,
      "text": "KVM ",
      "top": 363.0,
      "left": 665.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0054",
      "page": 49,
      "ordinal": 54,
      "text": "等，以及商",
      "top": 363.0,
      "left": 699.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0055",
      "page": 49,
      "ordinal": 55,
      "text": "业化的处理器硬件生产厂商也加",
      "top": 386.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0057",
      "page": 49,
      "ordinal": 57,
      "text": "入在硬件层面支持虚拟化技术的支持。诸如，",
      "top": 386.0,
      "left": 320.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0058",
      "page": 49,
      "ordinal": 58,
      "text": "Intel ",
      "top": 386.0,
      "left": 613.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0059",
      "page": 49,
      "ordinal": 59,
      "text": "的",
      "top": 386.0,
      "left": 647.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0060",
      "page": 49,
      "ordinal": 60,
      "text": " VT ",
      "top": 386.0,
      "left": 661.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0061",
      "page": 49,
      "ordinal": 61,
      "text": "和",
      "top": 386.0,
      "left": 686.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0062",
      "page": 49,
      "ordinal": 62,
      "text": " AMD-V  ",
      "top": 386.0,
      "left": 700.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h01",
        "heading_id": "p049-h01",
        "block_id": "q-p049-h01-b001"
      }
    },
    {
      "id": "p049-t0063",
      "page": 49,
      "ordinal": 63,
      "text": "Docker ",
      "top": 420.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02"
      }
    },
    {
      "id": "p049-t0064",
      "page": 49,
      "ordinal": 64,
      "text": "集群（",
      "top": 420.0,
      "left": 209.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02"
      }
    },
    {
      "id": "p049-t0065",
      "page": 49,
      "ordinal": 65,
      "text": "Swarm",
      "top": 420.0,
      "left": 286.0,
      "width": 88.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02"
      }
    },
    {
      "id": "p049-t0066",
      "page": 49,
      "ordinal": 66,
      "text": "）是什么",
      "top": 420.0,
      "left": 374.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02"
      }
    },
    {
      "id": "p049-t0069",
      "page": 49,
      "ordinal": 69,
      "text": " Docker Swarm -- Docker ",
      "top": 471.0,
      "left": 112.0,
      "width": 172.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0070",
      "page": 49,
      "ordinal": 70,
      "text": "群",
      "top": 471.0,
      "left": 284.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0071",
      "page": 49,
      "ordinal": 71,
      "text": " -- ",
      "top": 471.0,
      "left": 299.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0072",
      "page": 49,
      "ordinal": 72,
      "text": "是原生的",
      "top": 471.0,
      "left": 316.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0073",
      "page": 49,
      "ordinal": 73,
      "text": " Docker ",
      "top": 471.0,
      "left": 374.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0074",
      "page": 49,
      "ordinal": 74,
      "text": "集群服务工具。它将一群",
      "top": 471.0,
      "left": 430.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0075",
      "page": 49,
      "ordinal": 75,
      "text": " Docker ",
      "top": 471.0,
      "left": 591.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0076",
      "page": 49,
      "ordinal": 76,
      "text": "主机集成为单一一个",
      "top": 471.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0077",
      "page": 49,
      "ordinal": 77,
      "text": "虚拟",
      "top": 495.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0078",
      "page": 49,
      "ordinal": 78,
      "text": " Docker ",
      "top": 495.0,
      "left": 141.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0079",
      "page": 49,
      "ordinal": 79,
      "text": "主机。利用一个",
      "top": 495.0,
      "left": 197.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0080",
      "page": 49,
      "ordinal": 80,
      "text": " Docker ",
      "top": 495.0,
      "left": 299.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0081",
      "page": 49,
      "ordinal": 81,
      "text": "守护进程，",
      "top": 495.0,
      "left": 355.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0083",
      "page": 49,
      "ordinal": 83,
      "text": "通过标准的",
      "top": 495.0,
      "left": 432.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0084",
      "page": 49,
      "ordinal": 84,
      "text": " Docker API ",
      "top": 495.0,
      "left": 505.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0085",
      "page": 49,
      "ordinal": 85,
      "text": "和任何完善的通讯工具，",
      "top": 495.0,
      "left": 587.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0086",
      "page": 49,
      "ordinal": 86,
      "text": "Docker Swarm ",
      "top": 518.0,
      "left": 112.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0087",
      "page": 49,
      "ordinal": 87,
      "text": "提供透明地将",
      "top": 518.0,
      "left": 215.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0088",
      "page": 49,
      "ordinal": 88,
      "text": " Docker ",
      "top": 518.0,
      "left": 303.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0089",
      "page": 49,
      "ordinal": 89,
      "text": "主机扩散到多台主机上的服务",
      "top": 518.0,
      "left": 358.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h02",
        "heading_id": "p049-h02",
        "block_id": "q-p049-h02-b001"
      }
    },
    {
      "id": "p049-t0091",
      "page": 49,
      "ordinal": 91,
      "text": "在使用",
      "top": 552.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03"
      }
    },
    {
      "id": "p049-t0092",
      "page": 49,
      "ordinal": 92,
      "text": " Docker ",
      "top": 552.0,
      "left": 189.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03"
      }
    },
    {
      "id": "p049-t0093",
      "page": 49,
      "ordinal": 93,
      "text": "技术的产品中如何监控其运行",
      "top": 552.0,
      "left": 292.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03"
      }
    },
    {
      "id": "p049-t0096",
      "page": 49,
      "ordinal": 96,
      "text": " Docker ",
      "top": 603.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0097",
      "page": 49,
      "ordinal": 97,
      "text": "在产品中提供如",
      "top": 603.0,
      "left": 168.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0099",
      "page": 49,
      "ordinal": 99,
      "text": "运行统计和",
      "top": 603.0,
      "left": 274.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0100",
      "page": 49,
      "ordinal": 100,
      "text": " Docker ",
      "top": 603.0,
      "left": 347.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0101",
      "page": 49,
      "ordinal": 101,
      "text": "事件的工具。可以通过这些工具",
      "top": 603.0,
      "left": 403.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0103",
      "page": 49,
      "ordinal": 103,
      "text": "命令获取",
      "top": 603.0,
      "left": 611.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0104",
      "page": 49,
      "ordinal": 104,
      "text": " Docker ",
      "top": 603.0,
      "left": 670.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0105",
      "page": 49,
      "ordinal": 105,
      "text": "运行状",
      "top": 603.0,
      "left": 726.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0106",
      "page": 49,
      "ordinal": 106,
      "text": "况的统计信息或报告。",
      "top": 626.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0107",
      "page": 49,
      "ordinal": 107,
      "text": " Docker stats ",
      "top": 626.0,
      "left": 258.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0108",
      "page": 49,
      "ordinal": 108,
      "text": "：",
      "top": 626.0,
      "left": 350.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0110",
      "page": 49,
      "ordinal": 110,
      "text": "通过指定的容器",
      "top": 626.0,
      "left": 369.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0111",
      "page": 49,
      "ordinal": 111,
      "text": " id ",
      "top": 626.0,
      "left": 471.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0112",
      "page": 49,
      "ordinal": 112,
      "text": "获取其运行统计信息，可获得容器对",
      "top": 626.0,
      "left": 491.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0113",
      "page": 49,
      "ordinal": 113,
      "text": " CPU",
      "top": 626.0,
      "left": 725.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0114",
      "page": 49,
      "ordinal": 114,
      "text": "，",
      "top": 626.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0115",
      "page": 49,
      "ordinal": 115,
      "text": "内存使用情况等的统计信息，类似",
      "top": 650.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0116",
      "page": 49,
      "ordinal": 116,
      "text": " Linux ",
      "top": 650.0,
      "left": 331.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0117",
      "page": 49,
      "ordinal": 117,
      "text": "系统中的",
      "top": 650.0,
      "left": 376.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0118",
      "page": 49,
      "ordinal": 118,
      "text": " top ",
      "top": 650.0,
      "left": 434.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0119",
      "page": 49,
      "ordinal": 119,
      "text": "命令。",
      "top": 650.0,
      "left": 465.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0120",
      "page": 49,
      "ordinal": 120,
      "text": " Docker events ",
      "top": 650.0,
      "left": 509.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0121",
      "page": 49,
      "ordinal": 121,
      "text": "：",
      "top": 650.0,
      "left": 613.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0122",
      "page": 49,
      "ordinal": 122,
      "text": "Docker ",
      "top": 650.0,
      "left": 628.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0123",
      "page": 49,
      "ordinal": 123,
      "text": "事件是一个命",
      "top": 650.0,
      "left": 680.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0124",
      "page": 49,
      "ordinal": 124,
      "text": "令，用于观察显示运行中的",
      "top": 674.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0125",
      "page": 49,
      "ordinal": 125,
      "text": " Docker ",
      "top": 674.0,
      "left": 287.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0126",
      "page": 49,
      "ordinal": 126,
      "text": "一",
      "top": 674.0,
      "left": 343.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0128",
      "page": 49,
      "ordinal": 128,
      "text": "系列的行为活动。",
      "top": 674.0,
      "left": 362.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0130",
      "page": 49,
      "ordinal": 130,
      "text": "一般的",
      "top": 674.0,
      "left": 482.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0131",
      "page": 49,
      "ordinal": 131,
      "text": " Docker ",
      "top": 674.0,
      "left": 526.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0132",
      "page": 49,
      "ordinal": 132,
      "text": "事件有：",
      "top": 674.0,
      "left": 582.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0133",
      "page": 49,
      "ordinal": 133,
      "text": "attach",
      "top": 674.0,
      "left": 641.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0134",
      "page": 49,
      "ordinal": 134,
      "text": "（关联），",
      "top": 674.0,
      "left": 683.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0135",
      "page": 49,
      "ordinal": 135,
      "text": "commit",
      "top": 697.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0136",
      "page": 49,
      "ordinal": 136,
      "text": "（提交），",
      "top": 697.0,
      "left": 164.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0137",
      "page": 49,
      "ordinal": 137,
      "text": "die",
      "top": 697.0,
      "left": 237.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0138",
      "page": 49,
      "ordinal": 138,
      "text": "（僵死），",
      "top": 697.0,
      "left": 258.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0139",
      "page": 49,
      "ordinal": 139,
      "text": " detach",
      "top": 697.0,
      "left": 331.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0140",
      "page": 49,
      "ordinal": 140,
      "text": "（取消关联），",
      "top": 697.0,
      "left": 381.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0141",
      "page": 49,
      "ordinal": 141,
      "text": "rename",
      "top": 697.0,
      "left": 483.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0142",
      "page": 49,
      "ordinal": 142,
      "text": "（改名），",
      "top": 697.0,
      "left": 536.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0143",
      "page": 49,
      "ordinal": 143,
      "text": "destory",
      "top": 697.0,
      "left": 610.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0144",
      "page": 49,
      "ordinal": 144,
      "text": "（销毁）等。也可",
      "top": 697.0,
      "left": 661.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0145",
      "page": 49,
      "ordinal": 145,
      "text": "使用多个选",
      "top": 720.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0147",
      "page": 49,
      "ordinal": 147,
      "text": "项对事件记录筛选找到想要的事件信息",
      "top": 720.0,
      "left": 189.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h03",
        "heading_id": "p049-h03",
        "block_id": "q-p049-h03-b001"
      }
    },
    {
      "id": "p049-t0149",
      "page": 49,
      "ordinal": 149,
      "text": "什么是孤儿卷及如何删除它",
      "top": 754.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04"
      }
    },
    {
      "id": "p049-t0153",
      "page": 49,
      "ordinal": 153,
      "text": "孤儿卷是未与任何容器关联的卷。",
      "top": 805.0,
      "left": 116.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04",
        "block_id": "q-p049-h04-b001"
      }
    },
    {
      "id": "p049-t0154",
      "page": 49,
      "ordinal": 154,
      "text": "docker volume rm ",
      "top": 829.0,
      "left": 112.0,
      "width": 128.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04",
        "block_id": "q-p049-h04-b001"
      }
    },
    {
      "id": "p049-t0155",
      "page": 49,
      "ordinal": 155,
      "text": "删除指定的卷",
      "top": 829.0,
      "left": 240.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04",
        "block_id": "q-p049-h04-b001"
      }
    },
    {
      "id": "p049-t0156",
      "page": 49,
      "ordinal": 156,
      "text": "docker volume prune ",
      "top": 852.0,
      "left": 112.0,
      "width": 150.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04",
        "block_id": "q-p049-h04-b001"
      }
    },
    {
      "id": "p049-t0157",
      "page": 49,
      "ordinal": 157,
      "text": "删除所有孤儿卷",
      "top": 852.0,
      "left": 261.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p049-h04",
        "heading_id": "p049-h04",
        "block_id": "q-p049-h04-b001"
      }
    },
    {
      "id": "p050-t0001",
      "page": 50,
      "ordinal": 1,
      "text": "什么是半虚拟化（",
      "top": 40.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01"
      }
    },
    {
      "id": "p050-t0002",
      "page": 50,
      "ordinal": 2,
      "text": "Paravirtualization",
      "top": 40.0,
      "left": 317.0,
      "width": 231.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01"
      }
    },
    {
      "id": "p050-t0003",
      "page": 50,
      "ordinal": 3,
      "text": "）",
      "top": 40.0,
      "left": 548.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01"
      }
    },
    {
      "id": "p050-t0006",
      "page": 50,
      "ordinal": 6,
      "text": " Paravirtualization",
      "top": 91.0,
      "left": 112.0,
      "width": 123.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0007",
      "page": 50,
      "ordinal": 7,
      "text": "，也称为第",
      "top": 91.0,
      "left": 235.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0008",
      "page": 50,
      "ordinal": 8,
      "text": " 1 ",
      "top": 91.0,
      "left": 308.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0009",
      "page": 50,
      "ordinal": 9,
      "text": "类虚拟机管理（层）程序，其直接在硬件或",
      "top": 91.0,
      "left": 324.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0011",
      "page": 50,
      "ordinal": 11,
      "text": "裸机（",
      "top": 91.0,
      "left": 606.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0012",
      "page": 50,
      "ordinal": 12,
      "text": "bare-metal",
      "top": 91.0,
      "left": 650.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0013",
      "page": 50,
      "ordinal": 13,
      "text": "）上运",
      "top": 91.0,
      "left": 724.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0014",
      "page": 50,
      "ordinal": 14,
      "text": "行，提供虚拟机直接使用物理硬件的服务，它帮助主",
      "top": 114.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0016",
      "page": 50,
      "ordinal": 16,
      "text": "机操作系统，虚拟化硬件和实际硬件进行协作以实",
      "top": 114.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0017",
      "page": 50,
      "ordinal": 17,
      "text": "现最佳性能。这种虚拟层管",
      "top": 137.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0019",
      "page": 50,
      "ordinal": 19,
      "text": "理技术的程序一般占用系统资源较小，其本身并不需要占用大量系统资源。",
      "top": 137.0,
      "left": 291.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b001"
      }
    },
    {
      "id": "p050-t0020",
      "page": 50,
      "ordinal": 20,
      "text": "这种虚拟层管理程序有",
      "top": 452.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b003"
      }
    },
    {
      "id": "p050-t0021",
      "page": 50,
      "ordinal": 21,
      "text": " Xen, KVM ",
      "top": 452.0,
      "left": 258.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b003"
      }
    },
    {
      "id": "p050-t0022",
      "page": 50,
      "ordinal": 22,
      "text": "等",
      "top": 452.0,
      "left": 329.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h01",
        "heading_id": "p050-h01",
        "block_id": "q-p050-h01-b003"
      }
    },
    {
      "id": "p050-t0024",
      "page": 50,
      "ordinal": 24,
      "text": "Docker ",
      "top": 487.0,
      "left": 112.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02"
      }
    },
    {
      "id": "p050-t0025",
      "page": 50,
      "ordinal": 25,
      "text": "技术与虚拟机技术有何不同？",
      "top": 487.0,
      "left": 209.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02"
      }
    },
    {
      "id": "p050-t0028",
      "page": 50,
      "ordinal": 28,
      "text": " Docker ",
      "top": 536.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0029",
      "page": 50,
      "ordinal": 29,
      "text": "不是严格意义上的虚拟化硬件的技术。它依赖",
      "top": 536.0,
      "left": 168.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0030",
      "page": 50,
      "ordinal": 30,
      "text": " container-based virtualization",
      "top": 536.0,
      "left": 460.0,
      "width": 207.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0031",
      "page": 50,
      "ordinal": 31,
      "text": "（基于容器的虚",
      "top": 536.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0032",
      "page": 50,
      "ordinal": 32,
      "text": "拟化）",
      "top": 560.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0034",
      "page": 50,
      "ordinal": 34,
      "text": "的技术实现工具，或可以认为它是操作",
      "top": 560.0,
      "left": 159.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0036",
      "page": 50,
      "ordinal": 36,
      "text": "系统用户运行级别的虚拟化。因此，",
      "top": 560.0,
      "left": 412.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0037",
      "page": 50,
      "ordinal": 37,
      "text": " Docker ",
      "top": 560.0,
      "left": 646.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0038",
      "page": 50,
      "ordinal": 38,
      "text": "最初使用",
      "top": 560.0,
      "left": 702.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0040",
      "page": 50,
      "ordinal": 40,
      "text": "LXC ",
      "top": 584.0,
      "left": 112.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0041",
      "page": 50,
      "ordinal": 41,
      "text": "驱动它，后来移至",
      "top": 584.0,
      "left": 141.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0043",
      "page": 50,
      "ordinal": 43,
      "text": "由",
      "top": 584.0,
      "left": 262.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0044",
      "page": 50,
      "ordinal": 44,
      "text": " libcontainer ",
      "top": 584.0,
      "left": 276.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0045",
      "page": 50,
      "ordinal": 45,
      "text": "基础库驱动它，现已更名为",
      "top": 584.0,
      "left": 365.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0046",
      "page": 50,
      "ordinal": 46,
      "text": " runc ",
      "top": 584.0,
      "left": 541.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0047",
      "page": 50,
      "ordinal": 47,
      "text": "。",
      "top": 584.0,
      "left": 579.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0048",
      "page": 50,
      "ordinal": 48,
      "text": " Docker ",
      "top": 584.0,
      "left": 594.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0049",
      "page": 50,
      "ordinal": 49,
      "text": "主要致力于应",
      "top": 584.0,
      "left": 650.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0051",
      "page": 50,
      "ordinal": 51,
      "text": "用容",
      "top": 584.0,
      "left": 741.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0052",
      "page": 50,
      "ordinal": 52,
      "text": "器内的应用程序的自动化部署。应用容器设计用于包装和运行单一服务，",
      "top": 607.0,
      "left": 112.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0054",
      "page": 50,
      "ordinal": 54,
      "text": "而操作系统设计用于运行多进",
      "top": 607.0,
      "left": 584.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0055",
      "page": 50,
      "ordinal": 55,
      "text": "程任务，提供多种运算服务的能力。如虚拟机中",
      "top": 631.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0057",
      "page": 50,
      "ordinal": 57,
      "text": "等同完全操作系统的能力。因此，",
      "top": 631.0,
      "left": 423.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0058",
      "page": 50,
      "ordinal": 58,
      "text": "Docker ",
      "top": 631.0,
      "left": 642.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0059",
      "page": 50,
      "ordinal": 59,
      "text": "被认为是容器",
      "top": 631.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0060",
      "page": 50,
      "ordinal": 60,
      "text": "化系统上管理容器及应",
      "top": 653.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0062",
      "page": 50,
      "ordinal": 62,
      "text": "用容器化的布署工具",
      "top": 653.0,
      "left": 262.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b001"
      }
    },
    {
      "id": "p050-t0063",
      "page": 50,
      "ordinal": 63,
      "text": "1. ",
      "top": 1162.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0064",
      "page": 50,
      "ordinal": 64,
      "text": "与虚拟机不同，容器无需启动操作系统内核，因此，容器可在不到",
      "top": 1162.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0065",
      "page": 50,
      "ordinal": 65,
      "text": " 1 ",
      "top": 1162.0,
      "left": 570.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0066",
      "page": 50,
      "ordinal": 66,
      "text": "秒钟",
      "top": 1162.0,
      "left": 586.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0068",
      "page": 50,
      "ordinal": 68,
      "text": "时间内运行起来。这个特",
      "top": 1162.0,
      "left": 619.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0069",
      "page": 50,
      "ordinal": 69,
      "text": "性，使得容器化技术比其它虚拟化技术更具有独",
      "top": 1185.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p050-t0071",
      "page": 50,
      "ordinal": 71,
      "text": "特性及可取性。",
      "top": 1185.0,
      "left": 456.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b003"
      }
    },
    {
      "id": "p051-t0001",
      "page": 51,
      "ordinal": 1,
      "text": "2. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b004"
      }
    },
    {
      "id": "p051-t0002",
      "page": 51,
      "ordinal": 2,
      "text": "由于容器化技术很少或几乎不给主机系统增加负载，因此，基于容器的虚",
      "top": 44.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b004"
      }
    },
    {
      "id": "p051-t0004",
      "page": 51,
      "ordinal": 4,
      "text": "拟化技术具有近乎原生的",
      "top": 44.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b004"
      }
    },
    {
      "id": "p051-t0005",
      "page": 51,
      "ordinal": 5,
      "text": "性能表现。",
      "top": 67.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b004"
      }
    },
    {
      "id": "p051-t0007",
      "page": 51,
      "ordinal": 7,
      "text": "3. ",
      "top": 98.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b005"
      }
    },
    {
      "id": "p051-t0008",
      "page": 51,
      "ordinal": 8,
      "text": "基于容器的虚拟化，与其他硬件虚拟化不同，运行时不需要其他额外的虚",
      "top": 98.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b005"
      }
    },
    {
      "id": "p051-t0010",
      "page": 51,
      "ordinal": 10,
      "text": "拟管理层软件。",
      "top": 98.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b005"
      }
    },
    {
      "id": "p051-t0012",
      "page": 51,
      "ordinal": 12,
      "text": "4. ",
      "top": 128.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b006"
      }
    },
    {
      "id": "p051-t0013",
      "page": 51,
      "ordinal": 13,
      "text": "主机上的所有容器共享主机操作系统上的进程调度，从而节省了额外的资",
      "top": 128.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b006"
      }
    },
    {
      "id": "p051-t0015",
      "page": 51,
      "ordinal": 15,
      "text": "源的需求。",
      "top": 128.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b006"
      }
    },
    {
      "id": "p051-t0017",
      "page": 51,
      "ordinal": 17,
      "text": "5. ",
      "top": 159.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0018",
      "page": 51,
      "ordinal": 18,
      "text": "与虚拟机",
      "top": 159.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0019",
      "page": 51,
      "ordinal": 19,
      "text": " image ",
      "top": 159.0,
      "left": 204.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0020",
      "page": 51,
      "ordinal": 20,
      "text": "相比，容器（",
      "top": 159.0,
      "left": 253.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0021",
      "page": 51,
      "ordinal": 21,
      "text": "Docker ",
      "top": 159.0,
      "left": 341.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0022",
      "page": 51,
      "ordinal": 22,
      "text": "或",
      "top": 159.0,
      "left": 393.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0023",
      "page": 51,
      "ordinal": 23,
      "text": " LXC images",
      "top": 159.0,
      "left": 408.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0024",
      "page": 51,
      "ordinal": 24,
      "text": "）映像较小，",
      "top": 159.0,
      "left": 489.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0026",
      "page": 51,
      "ordinal": 26,
      "text": "因",
      "top": 159.0,
      "left": 581.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0028",
      "page": 51,
      "ordinal": 28,
      "text": "此，容器映像易于分发。",
      "top": 159.0,
      "left": 599.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b007"
      }
    },
    {
      "id": "p051-t0030",
      "page": 51,
      "ordinal": 30,
      "text": "6. ",
      "top": 190.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0031",
      "page": 51,
      "ordinal": 31,
      "text": "容器中的资源分配由",
      "top": 190.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0032",
      "page": 51,
      "ordinal": 32,
      "text": " Cgroups ",
      "top": 190.0,
      "left": 277.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0033",
      "page": 51,
      "ordinal": 33,
      "text": "实现。",
      "top": 190.0,
      "left": 342.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0034",
      "page": 51,
      "ordinal": 34,
      "text": " Cgroup ",
      "top": 190.0,
      "left": 386.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0035",
      "page": 51,
      "ordinal": 35,
      "text": "不会让容器占用比给它们分",
      "top": 190.0,
      "left": 443.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0037",
      "page": 51,
      "ordinal": 37,
      "text": "配的更多的资源。但",
      "top": 190.0,
      "left": 622.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0038",
      "page": 51,
      "ordinal": 38,
      "text": "是，现在其它的虚拟化技术，对于虚拟机，主机的所",
      "top": 213.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0040",
      "page": 51,
      "ordinal": 40,
      "text": "有资源都可见，但无法使用。这可以通过在容",
      "top": 213.0,
      "left": 486.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0041",
      "page": 51,
      "ordinal": 41,
      "text": "器和主机上同时运行",
      "top": 237.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0042",
      "page": 51,
      "ordinal": 42,
      "text": " top ",
      "top": 237.0,
      "left": 277.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0043",
      "page": 51,
      "ordinal": 43,
      "text": "或",
      "top": 237.0,
      "left": 308.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0044",
      "page": 51,
      "ordinal": 44,
      "text": " htop ",
      "top": 237.0,
      "left": 322.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0045",
      "page": 51,
      "ordinal": 45,
      "text": "来观察到。在两个环境中的输出看起来相同。",
      "top": 237.0,
      "left": 362.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p050-h02",
        "heading_id": "p050-h02",
        "block_id": "q-p050-h02-b008"
      }
    },
    {
      "id": "p051-t0047",
      "page": 51,
      "ordinal": 47,
      "text": "请解释一下",
      "top": 271.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0048",
      "page": 51,
      "ordinal": 48,
      "text": " docerfile ",
      "top": 271.0,
      "left": 240.0,
      "width": 126.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0049",
      "page": 51,
      "ordinal": 49,
      "text": "配置文件中的",
      "top": 271.0,
      "left": 366.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0050",
      "page": 51,
      "ordinal": 50,
      "text": " ONBUILD ",
      "top": 271.0,
      "left": 519.0,
      "width": 133.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0051",
      "page": 51,
      "ordinal": 51,
      "text": "指令的用途",
      "top": 271.0,
      "left": 652.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0053",
      "page": 51,
      "ordinal": 53,
      "text": "含义",
      "top": 302.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01"
      }
    },
    {
      "id": "p051-t0057",
      "page": 51,
      "ordinal": 57,
      "text": "配置文件中的",
      "top": 353.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0058",
      "page": 51,
      "ordinal": 58,
      "text": " ONBUILD ",
      "top": 353.0,
      "left": 203.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0059",
      "page": 51,
      "ordinal": 59,
      "text": "指令为创建的",
      "top": 353.0,
      "left": 276.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0060",
      "page": 51,
      "ordinal": 60,
      "text": " Docker image ",
      "top": 353.0,
      "left": 364.0,
      "width": 101.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0061",
      "page": 51,
      "ordinal": 61,
      "text": "（映像）加入在将来执行",
      "top": 353.0,
      "left": 465.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0063",
      "page": 51,
      "ordinal": 63,
      "text": "的指令，即使用了带有",
      "top": 353.0,
      "left": 630.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0064",
      "page": 51,
      "ordinal": 64,
      "text": "ONBUILD",
      "top": 377.0,
      "left": 112.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0065",
      "page": 51,
      "ordinal": 65,
      "text": "指令的镜像作为基础镜像时，会执行基础镜像的",
      "top": 377.0,
      "left": 177.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0066",
      "page": 51,
      "ordinal": 66,
      "text": "ONBUILD",
      "top": 377.0,
      "left": 484.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0067",
      "page": 51,
      "ordinal": 67,
      "text": "指令",
      "top": 377.0,
      "left": 549.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h01",
        "heading_id": "p051-h01",
        "block_id": "q-p051-h01-b001"
      }
    },
    {
      "id": "p051-t0068",
      "page": 51,
      "ordinal": 68,
      "text": "有否在创建有状态性的",
      "top": 411.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0069",
      "page": 51,
      "ordinal": 69,
      "text": " Docker ",
      "top": 411.0,
      "left": 368.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0070",
      "page": 51,
      "ordinal": 70,
      "text": "应用的较好实践？",
      "top": 411.0,
      "left": 472.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0072",
      "page": 51,
      "ordinal": 72,
      "text": "最适合",
      "top": 411.0,
      "left": 683.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0073",
      "page": 51,
      "ordinal": 73,
      "text": "的",
      "top": 443.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0075",
      "page": 51,
      "ordinal": 75,
      "text": "场景有什么",
      "top": 443.0,
      "left": 144.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02"
      }
    },
    {
      "id": "p051-t0079",
      "page": 51,
      "ordinal": 79,
      "text": "有状态性",
      "top": 492.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0080",
      "page": 51,
      "ordinal": 80,
      "text": " Docker ",
      "top": 492.0,
      "left": 174.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0081",
      "page": 51,
      "ordinal": 81,
      "text": "应用的问题关键在于状态数据保存在哪儿的问题。",
      "top": 492.0,
      "left": 230.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0083",
      "page": 51,
      "ordinal": 83,
      "text": "若所有数",
      "top": 492.0,
      "left": 556.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0085",
      "page": 51,
      "ordinal": 85,
      "text": "据保存在容器内，",
      "top": 492.0,
      "left": 618.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0087",
      "page": 51,
      "ordinal": 87,
      "text": "当更",
      "top": 492.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0088",
      "page": 51,
      "ordinal": 88,
      "text": "新软件版本或想将",
      "top": 516.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0089",
      "page": 51,
      "ordinal": 89,
      "text": " Docker ",
      "top": 516.0,
      "left": 229.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0090",
      "page": 51,
      "ordinal": 90,
      "text": "容器移到其它机器上时，",
      "top": 516.0,
      "left": 285.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0092",
      "page": 51,
      "ordinal": 92,
      "text": "找回这些在运行中产生的状态数据将非常困难。",
      "top": 516.0,
      "left": 449.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0094",
      "page": 51,
      "ordinal": 94,
      "text": "您",
      "top": 516.0,
      "left": 760.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0095",
      "page": 51,
      "ordinal": 95,
      "text": "需要做的是将这些表达运行状态的数据保存在永久卷中。参考如下",
      "top": 540.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0096",
      "page": 51,
      "ordinal": 96,
      "text": " 3 ",
      "top": 540.0,
      "left": 536.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0097",
      "page": 51,
      "ordinal": 97,
      "text": "种模",
      "top": 540.0,
      "left": 552.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0099",
      "page": 51,
      "ordinal": 99,
      "text": "式：",
      "top": 540.0,
      "left": 585.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b001"
      }
    },
    {
      "id": "p051-t0100",
      "page": 51,
      "ordinal": 100,
      "text": "1. ",
      "top": 802.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b003"
      }
    },
    {
      "id": "p051-t0101",
      "page": 51,
      "ordinal": 101,
      "text": "数据保存在容器中，当容器停止运行时，运行状态数据丢失！",
      "top": 802.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b003"
      }
    },
    {
      "id": "p051-t0103",
      "page": 51,
      "ordinal": 103,
      "text": "2. ",
      "top": 833.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b004"
      }
    },
    {
      "id": "p051-t0104",
      "page": 51,
      "ordinal": 104,
      "text": "数据保存在主机卷（",
      "top": 833.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b004"
      }
    },
    {
      "id": "p051-t0105",
      "page": 51,
      "ordinal": 105,
      "text": "Host Volume",
      "top": 833.0,
      "left": 277.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b004"
      }
    },
    {
      "id": "p051-t0106",
      "page": 51,
      "ordinal": 106,
      "text": "）中，当主机停机时，运行状",
      "top": 833.0,
      "left": 365.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b004"
      }
    },
    {
      "id": "p051-t0108",
      "page": 51,
      "ordinal": 108,
      "text": "态数据将无法访问",
      "top": 833.0,
      "left": 559.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b004"
      }
    },
    {
      "id": "p051-t0109",
      "page": 51,
      "ordinal": 109,
      "text": "3. ",
      "top": 864.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0110",
      "page": 51,
      "ordinal": 110,
      "text": "数据保存在网络文件系统卷中，数据访问不依赖容器的运行与主",
      "top": 864.0,
      "left": 146.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0112",
      "page": 51,
      "ordinal": 112,
      "text": "机的运行",
      "top": 864.0,
      "left": 559.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0114",
      "page": 51,
      "ordinal": 114,
      "text": "若您使用：",
      "top": 864.0,
      "left": 621.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0115",
      "page": 51,
      "ordinal": 115,
      "text": "docker run -",
      "top": 864.0,
      "left": 694.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0116",
      "page": 51,
      "ordinal": 116,
      "text": "v hostFolder:/containerfolder ",
      "top": 887.0,
      "left": 146.0,
      "width": 203.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0117",
      "page": 51,
      "ordinal": 117,
      "text": "命令运行您的容",
      "top": 887.0,
      "left": 348.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0119",
      "page": 51,
      "ordinal": 119,
      "text": "器，",
      "top": 887.0,
      "left": 455.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0121",
      "page": 51,
      "ordinal": 121,
      "text": "容器运行中任何对",
      "top": 887.0,
      "left": 488.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0122",
      "page": 51,
      "ordinal": 122,
      "text": " /containerfolder ",
      "top": 887.0,
      "left": 605.0,
      "width": 119.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0123",
      "page": 51,
      "ordinal": 123,
      "text": "目录下数",
      "top": 887.0,
      "left": 723.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0124",
      "page": 51,
      "ordinal": 124,
      "text": "据的改变，",
      "top": 910.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0126",
      "page": 51,
      "ordinal": 126,
      "text": "将永久保存",
      "top": 910.0,
      "left": 222.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0128",
      "page": 51,
      "ordinal": 128,
      "text": "在主机的",
      "top": 910.0,
      "left": 299.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0129",
      "page": 51,
      "ordinal": 129,
      "text": " hostfolder ",
      "top": 910.0,
      "left": 358.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0130",
      "page": 51,
      "ordinal": 130,
      "text": "目录下。",
      "top": 910.0,
      "left": 436.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0132",
      "page": 51,
      "ordinal": 132,
      "text": "使用网络文件系统（",
      "top": 910.0,
      "left": 498.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0133",
      "page": 51,
      "ordinal": 133,
      "text": "nfs",
      "top": 910.0,
      "left": 630.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0134",
      "page": 51,
      "ordinal": 134,
      "text": "）与此类似。",
      "top": 910.0,
      "left": 651.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0136",
      "page": 51,
      "ordinal": 136,
      "text": "那样",
      "top": 910.0,
      "left": 742.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0137",
      "page": 51,
      "ordinal": 137,
      "text": "您",
      "top": 933.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0139",
      "page": 51,
      "ordinal": 139,
      "text": "就可以运行您的容器在任何主机上且其运行状态数据被保存在网络文件系统",
      "top": 933.0,
      "left": 164.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0141",
      "page": 51,
      "ordinal": 141,
      "text": "上。",
      "top": 933.0,
      "left": 650.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h02",
        "heading_id": "p051-h02",
        "block_id": "q-p051-h02-b005"
      }
    },
    {
      "id": "p051-t0143",
      "page": 51,
      "ordinal": 143,
      "text": "容器化技术在底层的运行原理？",
      "top": 968.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03"
      }
    },
    {
      "id": "p051-t0146",
      "page": 51,
      "ordinal": 146,
      "text": " 2006 ",
      "top": 1019.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0147",
      "page": 51,
      "ordinal": 147,
      "text": "年前后，",
      "top": 1019.0,
      "left": 153.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0149",
      "page": 51,
      "ordinal": 149,
      "text": "人们，包括一些谷歌的雇员，",
      "top": 1019.0,
      "left": 215.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0151",
      "page": 51,
      "ordinal": 151,
      "text": "在",
      "top": 1019.0,
      "left": 409.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0152",
      "page": 51,
      "ordinal": 152,
      "text": " Linux ",
      "top": 1019.0,
      "left": 424.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0153",
      "page": 51,
      "ordinal": 153,
      "text": "内核级别上实现了一",
      "top": 1019.0,
      "left": 468.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0155",
      "page": 51,
      "ordinal": 155,
      "text": "种新的名为",
      "top": 1019.0,
      "left": 604.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0157",
      "page": 51,
      "ordinal": 157,
      "text": "命名空间",
      "top": 1019.0,
      "left": 681.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0158",
      "page": 51,
      "ordinal": 158,
      "text": "（",
      "top": 1043.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0159",
      "page": 51,
      "ordinal": 159,
      "text": "namespace",
      "top": 1043.0,
      "left": 126.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0160",
      "page": 51,
      "ordinal": 160,
      "text": "）",
      "top": 1043.0,
      "left": 205.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0162",
      "page": 51,
      "ordinal": 162,
      "text": "的技术（实际上这种概念在",
      "top": 1043.0,
      "left": 223.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0163",
      "page": 51,
      "ordinal": 163,
      "text": " FreeBSD ",
      "top": 1043.0,
      "left": 398.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0164",
      "page": 51,
      "ordinal": 164,
      "text": "系",
      "top": 1043.0,
      "left": 464.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0166",
      "page": 51,
      "ordinal": 166,
      "text": "统上由来已久）。我们知道，操作系统的一个",
      "top": 1043.0,
      "left": 483.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0167",
      "page": 51,
      "ordinal": 167,
      "text": "功能就是进程共享公共资源，",
      "top": 1066.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0169",
      "page": 51,
      "ordinal": 169,
      "text": "诸",
      "top": 1066.0,
      "left": 306.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0171",
      "page": 51,
      "ordinal": 171,
      "text": "如，网络和硬盘空间等。",
      "top": 1066.0,
      "left": 324.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0173",
      "page": 51,
      "ordinal": 173,
      "text": "但是，如果一些公共资源被包装在一个命名空",
      "top": 1066.0,
      "left": 489.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0174",
      "page": 51,
      "ordinal": 174,
      "text": "间中，",
      "top": 1089.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0176",
      "page": 51,
      "ordinal": 176,
      "text": "只允许属于这个命名空间中的进程访问又如何呢？",
      "top": 1089.0,
      "left": 159.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0178",
      "page": 51,
      "ordinal": 178,
      "text": "也就是说，可以分配一大块",
      "top": 1089.0,
      "left": 485.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0180",
      "page": 51,
      "ordinal": 180,
      "text": "硬盘空间给命名空",
      "top": 1089.0,
      "left": 664.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0181",
      "page": 51,
      "ordinal": 181,
      "text": "间",
      "top": 1112.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0182",
      "page": 51,
      "ordinal": 182,
      "text": " X ",
      "top": 1112.0,
      "left": 126.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0183",
      "page": 51,
      "ordinal": 183,
      "text": "供其使用，但是，命名空间",
      "top": 1112.0,
      "left": 142.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0184",
      "page": 51,
      "ordinal": 184,
      "text": " Y ",
      "top": 1112.0,
      "left": 318.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0185",
      "page": 51,
      "ordinal": 185,
      "text": "中的进程无法看到或访",
      "top": 1112.0,
      "left": 334.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0187",
      "page": 51,
      "ordinal": 187,
      "text": "问这部分资源。",
      "top": 1112.0,
      "left": 484.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0189",
      "page": 51,
      "ordinal": 189,
      "text": "同样地，",
      "top": 1112.0,
      "left": 590.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0191",
      "page": 51,
      "ordinal": 191,
      "text": "命名空间",
      "top": 1112.0,
      "left": 652.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0192",
      "page": 51,
      "ordinal": 192,
      "text": " Y ",
      "top": 1112.0,
      "left": 711.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0193",
      "page": 51,
      "ordinal": 193,
      "text": "中分配",
      "top": 1112.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0194",
      "page": 51,
      "ordinal": 194,
      "text": "的资源，命名空间",
      "top": 1136.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0195",
      "page": 51,
      "ordinal": 195,
      "text": " X ",
      "top": 1136.0,
      "left": 229.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0196",
      "page": 51,
      "ordinal": 196,
      "text": "中的进程",
      "top": 1136.0,
      "left": 245.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0198",
      "page": 51,
      "ordinal": 198,
      "text": "也无法访问。当然，",
      "top": 1136.0,
      "left": 307.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0199",
      "page": 51,
      "ordinal": 199,
      "text": " X ",
      "top": 1136.0,
      "left": 439.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0200",
      "page": 51,
      "ordinal": 200,
      "text": "中的进程无法与",
      "top": 1136.0,
      "left": 455.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0201",
      "page": 51,
      "ordinal": 201,
      "text": " Y ",
      "top": 1136.0,
      "left": 557.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0202",
      "page": 51,
      "ordinal": 202,
      "text": "中的进程进行交互。这提供了某",
      "top": 1136.0,
      "left": 573.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0203",
      "page": 51,
      "ordinal": 203,
      "text": "种",
      "top": 1160.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0205",
      "page": 51,
      "ordinal": 205,
      "text": "对公共资源的虚拟化和隔离的技术。",
      "top": 1160.0,
      "left": 130.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0207",
      "page": 51,
      "ordinal": 207,
      "text": "这就是",
      "top": 1160.0,
      "left": 368.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0208",
      "page": 51,
      "ordinal": 208,
      "text": " Docker ",
      "top": 1160.0,
      "left": 412.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0209",
      "page": 51,
      "ordinal": 209,
      "text": "技术的底层工作原理：",
      "top": 1160.0,
      "left": 468.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0211",
      "page": 51,
      "ordinal": 211,
      "text": "每个容器运行在它自己的",
      "top": 1160.0,
      "left": 618.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0212",
      "page": 51,
      "ordinal": 212,
      "text": "命名空间中，",
      "top": 1182.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0214",
      "page": 51,
      "ordinal": 214,
      "text": "但是，确实与其它运行中的容器共用相同的系统内核。",
      "top": 1182.0,
      "left": 203.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0216",
      "page": 51,
      "ordinal": 216,
      "text": "隔离的产生是由于系统",
      "top": 1182.0,
      "left": 558.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p051-t0218",
      "page": 51,
      "ordinal": 218,
      "text": "内核清楚地",
      "top": 1182.0,
      "left": 708.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0001",
      "page": 52,
      "ordinal": 1,
      "text": "知道命名空间及其中的进程，且这些进程调用系统",
      "top": 44.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0002",
      "page": 52,
      "ordinal": 2,
      "text": " API ",
      "top": 44.0,
      "left": 434.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0003",
      "page": 52,
      "ordinal": 3,
      "text": "时，内核保",
      "top": 44.0,
      "left": 463.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0005",
      "page": 52,
      "ordinal": 5,
      "text": "证进程只能访问属于其命名空间中的",
      "top": 44.0,
      "left": 540.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0006",
      "page": 52,
      "ordinal": 6,
      "text": "资源",
      "top": 67.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b001"
      }
    },
    {
      "id": "p052-t0008",
      "page": 52,
      "ordinal": 8,
      "text": "运行中的容器是隔离的。准确地说，",
      "top": 471.0,
      "left": 116.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b003"
      }
    },
    {
      "id": "p052-t0010",
      "page": 52,
      "ordinal": 10,
      "text": "各容器共享操作系统内",
      "top": 471.0,
      "left": 353.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b003"
      }
    },
    {
      "id": "p052-t0012",
      "page": 52,
      "ordinal": 12,
      "text": "核及操作系统",
      "top": 471.0,
      "left": 503.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b003"
      }
    },
    {
      "id": "p052-t0013",
      "page": 52,
      "ordinal": 13,
      "text": " API",
      "top": 471.0,
      "left": 591.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b003"
      }
    },
    {
      "id": "p052-t0014",
      "page": 52,
      "ordinal": 14,
      "text": "。",
      "top": 471.0,
      "left": 617.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p051-h03",
        "heading_id": "p051-h03",
        "block_id": "q-p051-h03-b003"
      }
    },
    {
      "id": "p052-t0016",
      "page": 52,
      "ordinal": 16,
      "text": "说说容器化技术与虚拟化技术的优缺点",
      "top": 506.0,
      "left": 112.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01"
      }
    },
    {
      "id": "p052-t0020",
      "page": 52,
      "ordinal": 20,
      "text": "不能像虚拟机那样在容器上运行与主机完全不同的操作系统。",
      "top": 555.0,
      "left": 116.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0022",
      "page": 52,
      "ordinal": 22,
      "text": "然而，",
      "top": 555.0,
      "left": 514.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0024",
      "page": 52,
      "ordinal": 24,
      "text": "可以在",
      "top": 555.0,
      "left": 562.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0026",
      "page": 52,
      "ordinal": 26,
      "text": "容器上运行不同的",
      "top": 555.0,
      "left": 610.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0027",
      "page": 52,
      "ordinal": 27,
      "text": " Linux ",
      "top": 555.0,
      "left": 727.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0028",
      "page": 52,
      "ordinal": 28,
      "text": "发布版，由于容器共享系统内核的缘故。容器的隔离",
      "top": 579.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0030",
      "page": 52,
      "ordinal": 30,
      "text": "性没有虚拟机那么健壮。事实上，",
      "top": 579.0,
      "left": 452.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0032",
      "page": 52,
      "ordinal": 32,
      "text": "在早期容器化技",
      "top": 579.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0033",
      "page": 52,
      "ordinal": 33,
      "text": "术实现上，存在某种方法使",
      "top": 603.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0035",
      "page": 52,
      "ordinal": 35,
      "text": "客户容器可接管整个主机系统。",
      "top": 603.0,
      "left": 291.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0037",
      "page": 52,
      "ordinal": 37,
      "text": "也可看到，载入新容器并运行，并不会像虚",
      "top": 603.0,
      "left": 500.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0038",
      "page": 52,
      "ordinal": 38,
      "text": "拟机那样装载一个新的操作系统进",
      "top": 626.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0040",
      "page": 52,
      "ordinal": 40,
      "text": "来。",
      "top": 626.0,
      "left": 335.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0042",
      "page": 52,
      "ordinal": 42,
      "text": "所有的容器共享同一系统内核，",
      "top": 626.0,
      "left": 368.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0044",
      "page": 52,
      "ordinal": 44,
      "text": "这也就是容器被认为非常轻量化",
      "top": 626.0,
      "left": 577.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0045",
      "page": 52,
      "ordinal": 45,
      "text": "的原因。",
      "top": 650.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0047",
      "page": 52,
      "ordinal": 47,
      "text": "同样的原因，不像虚拟机，",
      "top": 650.0,
      "left": 174.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0049",
      "page": 52,
      "ordinal": 49,
      "text": "你不须为容器预分配大量的内存空间，",
      "top": 650.0,
      "left": 353.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0051",
      "page": 52,
      "ordinal": 51,
      "text": "因为它不",
      "top": 650.0,
      "left": 606.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0053",
      "page": 52,
      "ordinal": 53,
      "text": "是运行新的整个",
      "top": 650.0,
      "left": 668.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0054",
      "page": 52,
      "ordinal": 54,
      "text": "的操作系统。",
      "top": 672.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0056",
      "page": 52,
      "ordinal": 56,
      "text": "这使得在一个操作系统主机上，可以同时运行成",
      "top": 672.0,
      "left": 203.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0058",
      "page": 52,
      "ordinal": 58,
      "text": "百上千个容器应用，",
      "top": 672.0,
      "left": 514.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0060",
      "page": 52,
      "ordinal": 60,
      "text": "在运行完整操作系统",
      "top": 672.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0061",
      "page": 52,
      "ordinal": 61,
      "text": "的虚拟机上，进行这么多的并行沙箱",
      "top": 696.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0063",
      "page": 52,
      "ordinal": 63,
      "text": "实验是不可能的",
      "top": 696.0,
      "left": 350.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h01",
        "heading_id": "p052-h01",
        "block_id": "q-p052-h01-b001"
      }
    },
    {
      "id": "p052-t0065",
      "page": 52,
      "ordinal": 65,
      "text": "如何使",
      "top": 731.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02"
      }
    },
    {
      "id": "p052-t0066",
      "page": 52,
      "ordinal": 66,
      "text": " Docker ",
      "top": 731.0,
      "left": 189.0,
      "width": 104.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02"
      }
    },
    {
      "id": "p052-t0067",
      "page": 52,
      "ordinal": 67,
      "text": "适应多种运行环境",
      "top": 731.0,
      "left": 292.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02"
      }
    },
    {
      "id": "p052-t0071",
      "page": 52,
      "ordinal": 71,
      "text": "您必然想改变您的",
      "top": 782.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0072",
      "page": 52,
      "ordinal": 72,
      "text": " Docker ",
      "top": 782.0,
      "left": 233.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0073",
      "page": 52,
      "ordinal": 73,
      "text": "应用配置以更适应现实运行环境的变化。下面包含",
      "top": 782.0,
      "left": 288.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0075",
      "page": 52,
      "ordinal": 75,
      "text": "一些修改建议：",
      "top": 782.0,
      "left": 614.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0077",
      "page": 52,
      "ordinal": 77,
      "text": "移除应用",
      "top": 782.0,
      "left": 720.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0078",
      "page": 52,
      "ordinal": 78,
      "text": "代码中对任何固定存储卷的绑定，由于代码驻留在容器内部，而不能",
      "top": 805.0,
      "left": 112.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0080",
      "page": 52,
      "ordinal": 80,
      "text": "从外部进行修正。",
      "top": 805.0,
      "left": 554.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0082",
      "page": 52,
      "ordinal": 82,
      "text": "绑定应用端口到",
      "top": 805.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0083",
      "page": 52,
      "ordinal": 83,
      "text": "主机上的不同端口",
      "top": 828.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0085",
      "page": 52,
      "ordinal": 85,
      "text": "差异化设置环境变量",
      "top": 828.0,
      "left": 233.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0087",
      "page": 52,
      "ordinal": 87,
      "text": "（例如：",
      "top": 828.0,
      "left": 368.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0089",
      "page": 52,
      "ordinal": 89,
      "text": "减少日志冗余或者使能发电子邮件）",
      "top": 828.0,
      "left": 430.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0091",
      "page": 52,
      "ordinal": 91,
      "text": "设定重启策略",
      "top": 828.0,
      "left": 668.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0092",
      "page": 52,
      "ordinal": 92,
      "text": "（例如：",
      "top": 851.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0093",
      "page": 52,
      "ordinal": 93,
      "text": " restart: always ",
      "top": 851.0,
      "left": 170.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0094",
      "page": 52,
      "ordinal": 94,
      "text": "），",
      "top": 851.0,
      "left": 277.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0096",
      "page": 52,
      "ordinal": 96,
      "text": "避免长时间宕机",
      "top": 851.0,
      "left": 310.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0098",
      "page": 52,
      "ordinal": 98,
      "text": "加入额外的服务（例如：",
      "top": 851.0,
      "left": 416.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0099",
      "page": 52,
      "ordinal": 99,
      "text": " log aggregator",
      "top": 851.0,
      "left": 577.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0100",
      "page": 52,
      "ordinal": 100,
      "text": "）",
      "top": 851.0,
      "left": 679.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0102",
      "page": 52,
      "ordinal": 102,
      "text": "由于以上原",
      "top": 851.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0103",
      "page": 52,
      "ordinal": 103,
      "text": "因，",
      "top": 875.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0105",
      "page": 52,
      "ordinal": 105,
      "text": "您更需要一个",
      "top": 875.0,
      "left": 145.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0106",
      "page": 52,
      "ordinal": 106,
      "text": " Compose ",
      "top": 875.0,
      "left": 233.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0107",
      "page": 52,
      "ordinal": 107,
      "text": "配置文件，大概叫",
      "top": 875.0,
      "left": 305.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0108",
      "page": 52,
      "ordinal": 108,
      "text": " production.yml ",
      "top": 875.0,
      "left": 422.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0109",
      "page": 52,
      "ordinal": 109,
      "text": "，它配置了恰当的产品整合服务。",
      "top": 875.0,
      "left": 533.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0111",
      "page": 52,
      "ordinal": 111,
      "text": "这",
      "top": 875.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0112",
      "page": 52,
      "ordinal": 112,
      "text": "个配置文件只需包含您",
      "top": 899.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0114",
      "page": 52,
      "ordinal": 114,
      "text": "选择的合适的原始",
      "top": 899.0,
      "left": 262.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0115",
      "page": 52,
      "ordinal": 115,
      "text": " Compose ",
      "top": 899.0,
      "left": 379.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0116",
      "page": 52,
      "ordinal": 116,
      "text": "配置文件中，你改动的部分",
      "top": 899.0,
      "left": 451.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h02",
        "heading_id": "p052-h02",
        "block_id": "q-p052-h02-b001"
      }
    },
    {
      "id": "p052-t0118",
      "page": 52,
      "ordinal": 118,
      "text": "为什么",
      "top": 933.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03"
      }
    },
    {
      "id": "p052-t0119",
      "page": 52,
      "ordinal": 119,
      "text": " Docker compose ",
      "top": 933.0,
      "left": 189.0,
      "width": 225.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03"
      }
    },
    {
      "id": "p052-t0120",
      "page": 52,
      "ordinal": 120,
      "text": "采取的是并不等待前面依赖服务",
      "top": 933.0,
      "left": 413.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03"
      }
    },
    {
      "id": "p052-t0121",
      "page": 52,
      "ordinal": 121,
      "text": "项",
      "top": 964.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03"
      }
    },
    {
      "id": "p052-t0123",
      "page": 52,
      "ordinal": 123,
      "text": "的容器启动就绪后再启动的组合容器启动策略？",
      "top": 964.0,
      "left": 144.0,
      "width": 537.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03"
      }
    },
    {
      "id": "p052-t0125",
      "page": 52,
      "ordinal": 125,
      "text": " Docker ",
      "top": 1014.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0126",
      "page": 52,
      "ordinal": 126,
      "text": "的",
      "top": 1014.0,
      "left": 168.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0127",
      "page": 52,
      "ordinal": 127,
      "text": " Compose ",
      "top": 1014.0,
      "left": 182.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0128",
      "page": 52,
      "ordinal": 128,
      "text": "配置总是以依赖启动序列来启动或停止",
      "top": 1014.0,
      "left": 255.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0129",
      "page": 52,
      "ordinal": 129,
      "text": " Compose ",
      "top": 1014.0,
      "left": 503.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0130",
      "page": 52,
      "ordinal": 130,
      "text": "中的服务",
      "top": 1014.0,
      "left": 575.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0132",
      "page": 52,
      "ordinal": 132,
      "text": "容器，",
      "top": 1014.0,
      "left": 638.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0134",
      "page": 52,
      "ordinal": 134,
      "text": "依赖启动序列",
      "top": 1014.0,
      "left": 685.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0135",
      "page": 52,
      "ordinal": 135,
      "text": "是由",
      "top": 1038.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0136",
      "page": 52,
      "ordinal": 136,
      "text": " Compose ",
      "top": 1038.0,
      "left": 141.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0137",
      "page": 52,
      "ordinal": 137,
      "text": "配置文件中的",
      "top": 1038.0,
      "left": 213.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0138",
      "page": 52,
      "ordinal": 138,
      "text": " depends_on ",
      "top": 1038.0,
      "left": 301.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0139",
      "page": 52,
      "ordinal": 139,
      "text": "，",
      "top": 1038.0,
      "left": 392.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0140",
      "page": 52,
      "ordinal": 140,
      "text": " links ",
      "top": 1038.0,
      "left": 407.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0141",
      "page": 52,
      "ordinal": 141,
      "text": "，",
      "top": 1038.0,
      "left": 445.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0142",
      "page": 52,
      "ordinal": 142,
      "text": " volumes_from ",
      "top": 1038.0,
      "left": 460.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0143",
      "page": 52,
      "ordinal": 143,
      "text": "和",
      "top": 1038.0,
      "left": 565.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0144",
      "page": 52,
      "ordinal": 144,
      "text": " network_mode: \"service : ...\" ",
      "top": 1038.0,
      "left": 580.0,
      "width": 200.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0145",
      "page": 52,
      "ordinal": 145,
      "text": "等这些配置指令所确定",
      "top": 1062.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0147",
      "page": 52,
      "ordinal": 147,
      "text": "的。",
      "top": 1062.0,
      "left": 262.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0149",
      "page": 52,
      "ordinal": 149,
      "text": "然而，",
      "top": 1062.0,
      "left": 295.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0150",
      "page": 52,
      "ordinal": 150,
      "text": " Compose ",
      "top": 1062.0,
      "left": 339.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0151",
      "page": 52,
      "ordinal": 151,
      "text": "启动中，",
      "top": 1062.0,
      "left": 411.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0153",
      "page": 52,
      "ordinal": 153,
      "text": "各容器的启动并不等待其依赖容器（这必定是你",
      "top": 1062.0,
      "left": 473.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0154",
      "page": 52,
      "ordinal": 154,
      "text": "整",
      "top": 1085.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0156",
      "page": 52,
      "ordinal": 156,
      "text": "个应用中的某个依赖的服务或应用）启动就绪后才启动。使用这种策略较好的",
      "top": 1085.0,
      "left": 130.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0158",
      "page": 52,
      "ordinal": 158,
      "text": "理由如下：",
      "top": 1085.0,
      "left": 631.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0160",
      "page": 52,
      "ordinal": 160,
      "text": "等待一个数据库服务（举例）就绪这样的问题，",
      "top": 1108.0,
      "left": 116.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0162",
      "page": 52,
      "ordinal": 162,
      "text": "在大型分布式系统中仅是相比",
      "top": 1108.0,
      "left": 426.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0164",
      "page": 52,
      "ordinal": 164,
      "text": "其它大问题的某些小问",
      "top": 1108.0,
      "left": 620.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0165",
      "page": 52,
      "ordinal": 165,
      "text": "题。",
      "top": 1131.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0167",
      "page": 52,
      "ordinal": 167,
      "text": "在实际发布产品运维中，",
      "top": 1131.0,
      "left": 145.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0169",
      "page": 52,
      "ordinal": 169,
      "text": "您的数据库服务会由于",
      "top": 1131.0,
      "left": 309.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0171",
      "page": 52,
      "ordinal": 171,
      "text": "各种原因，或者迁移宿主机导致其不可访问。",
      "top": 1131.0,
      "left": 460.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0173",
      "page": 52,
      "ordinal": 173,
      "text": "您",
      "top": 1131.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0174",
      "page": 52,
      "ordinal": 174,
      "text": "发布的产品需要有应对这样状",
      "top": 1155.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0176",
      "page": 52,
      "ordinal": 176,
      "text": "况的弹性。",
      "top": 1155.0,
      "left": 306.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0178",
      "page": 52,
      "ordinal": 178,
      "text": "掌控这些，",
      "top": 1155.0,
      "left": 383.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0180",
      "page": 52,
      "ordinal": 180,
      "text": "开发设计您的应用，",
      "top": 1155.0,
      "left": 460.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p052-t0182",
      "page": 52,
      "ordinal": 182,
      "text": "使其在访问数据库失效的情",
      "top": 1155.0,
      "left": 595.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0001",
      "page": 53,
      "ordinal": 1,
      "text": "况下，",
      "top": 44.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0003",
      "page": 53,
      "ordinal": 3,
      "text": "能够试图",
      "top": 44.0,
      "left": 159.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0005",
      "page": 53,
      "ordinal": 5,
      "text": "重连数据库，",
      "top": 44.0,
      "left": 222.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0007",
      "page": 53,
      "ordinal": 7,
      "text": "直至其连接到数据库为止。",
      "top": 44.0,
      "left": 313.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0009",
      "page": 53,
      "ordinal": 9,
      "text": "最佳的解决方案是在您的应用代码中检查是",
      "top": 44.0,
      "left": 493.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0010",
      "page": 53,
      "ordinal": 10,
      "text": "否有应对意外的发生，无论是任何",
      "top": 67.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0012",
      "page": 53,
      "ordinal": 12,
      "text": "原因导致的启动或连接失效都应考虑在内",
      "top": 67.0,
      "left": 335.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/07-docker#q-p052-h03",
        "heading_id": "p052-h03",
        "block_id": "q-p052-h03-b001"
      }
    },
    {
      "id": "p053-t0014",
      "page": 53,
      "ordinal": 14,
      "text": "什么是",
      "top": 102.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01"
      }
    },
    {
      "id": "p053-t0015",
      "page": 53,
      "ordinal": 15,
      "text": "k8s",
      "top": 102.0,
      "left": 189.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01"
      }
    },
    {
      "id": "p053-t0016",
      "page": 53,
      "ordinal": 16,
      "text": "？说出你的理解",
      "top": 102.0,
      "left": 232.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01"
      }
    },
    {
      "id": "p053-t0018",
      "page": 53,
      "ordinal": 18,
      "text": "K8s",
      "top": 152.0,
      "left": 112.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0019",
      "page": 53,
      "ordinal": 19,
      "text": "是",
      "top": 152.0,
      "left": 136.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0020",
      "page": 53,
      "ordinal": 20,
      "text": "kubernetes",
      "top": 152.0,
      "left": 151.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0021",
      "page": 53,
      "ordinal": 21,
      "text": "的简称，其本质是一个开源的容器编排系统，主要用于管理容器化的应用，其目标是",
      "top": 152.0,
      "left": 228.0,
      "width": 541.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0022",
      "page": 53,
      "ordinal": 22,
      "text": "让部署容器化的应用简单并且高效（",
      "top": 175.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0023",
      "page": 53,
      "ordinal": 23,
      "text": "powerful",
      "top": 175.0,
      "left": 346.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0024",
      "page": 53,
      "ordinal": 24,
      "text": "）",
      "top": 175.0,
      "left": 407.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0025",
      "page": 53,
      "ordinal": 25,
      "text": ",Kubernetes",
      "top": 175.0,
      "left": 421.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0026",
      "page": 53,
      "ordinal": 26,
      "text": "提供了应用部署，规划，更新，维护的一种",
      "top": 175.0,
      "left": 504.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0027",
      "page": 53,
      "ordinal": 27,
      "text": "机制。",
      "top": 199.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0028",
      "page": 53,
      "ordinal": 28,
      "text": "说简单点：",
      "top": 222.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0029",
      "page": 53,
      "ordinal": 29,
      "text": "k8s",
      "top": 222.0,
      "left": 185.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0030",
      "page": 53,
      "ordinal": 30,
      "text": "就是一个编排容器的系统，一个可以管理容器应用全生命周期的工具，从创建应用，应用",
      "top": 222.0,
      "left": 208.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0031",
      "page": 53,
      "ordinal": 31,
      "text": "的部署，应用提供服务，扩容缩容应用，应用更新，都非常的方便，而且还可以做到故障自愈，所以，",
      "top": 246.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0032",
      "page": 53,
      "ordinal": 32,
      "text": "k8s",
      "top": 269.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0033",
      "page": 53,
      "ordinal": 33,
      "text": "是一个非常强大的容器编排系统",
      "top": 269.0,
      "left": 135.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h01",
        "heading_id": "p053-h01",
        "block_id": "q-p053-h01-b001"
      }
    },
    {
      "id": "p053-t0034",
      "page": 53,
      "ordinal": 34,
      "text": "k8s",
      "top": 303.0,
      "left": 112.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02"
      }
    },
    {
      "id": "p053-t0035",
      "page": 53,
      "ordinal": 35,
      "text": "的组件有哪些，作用分别是什么",
      "top": 303.0,
      "left": 155.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02"
      }
    },
    {
      "id": "p053-t0037",
      "page": 53,
      "ordinal": 37,
      "text": "k8s",
      "top": 354.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0038",
      "page": 53,
      "ordinal": 38,
      "text": "主要由",
      "top": 354.0,
      "left": 135.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0039",
      "page": 53,
      "ordinal": 39,
      "text": "master",
      "top": 354.0,
      "left": 179.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0040",
      "page": 53,
      "ordinal": 40,
      "text": "节点和",
      "top": 354.0,
      "left": 227.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0041",
      "page": 53,
      "ordinal": 41,
      "text": "node",
      "top": 354.0,
      "left": 271.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0042",
      "page": 53,
      "ordinal": 42,
      "text": "节点构成。",
      "top": 354.0,
      "left": 306.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0043",
      "page": 53,
      "ordinal": 43,
      "text": "master",
      "top": 354.0,
      "left": 379.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0044",
      "page": 53,
      "ordinal": 44,
      "text": "节点负责管理集群，",
      "top": 354.0,
      "left": 427.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0045",
      "page": 53,
      "ordinal": 45,
      "text": "node",
      "top": 354.0,
      "left": 558.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0046",
      "page": 53,
      "ordinal": 46,
      "text": "节点是容器应用真正运行的",
      "top": 354.0,
      "left": 593.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0047",
      "page": 53,
      "ordinal": 47,
      "text": "地方。",
      "top": 378.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0048",
      "page": 53,
      "ordinal": 48,
      "text": "master",
      "top": 401.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0049",
      "page": 53,
      "ordinal": 49,
      "text": "节点包含的组件有：",
      "top": 401.0,
      "left": 160.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0050",
      "page": 53,
      "ordinal": 50,
      "text": "kube-api-server",
      "top": 401.0,
      "left": 291.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0051",
      "page": 53,
      "ordinal": 51,
      "text": "、",
      "top": 401.0,
      "left": 398.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0052",
      "page": 53,
      "ordinal": 52,
      "text": "kube-controller-manager",
      "top": 401.0,
      "left": 413.0,
      "width": 171.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0053",
      "page": 53,
      "ordinal": 53,
      "text": "、",
      "top": 401.0,
      "left": 583.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0054",
      "page": 53,
      "ordinal": 54,
      "text": "kube-scheduler",
      "top": 401.0,
      "left": 598.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0055",
      "page": 53,
      "ordinal": 55,
      "text": "、",
      "top": 401.0,
      "left": 703.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0056",
      "page": 53,
      "ordinal": 56,
      "text": "etcd",
      "top": 401.0,
      "left": 718.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0057",
      "page": 53,
      "ordinal": 57,
      "text": "。",
      "top": 401.0,
      "left": 747.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0058",
      "page": 53,
      "ordinal": 58,
      "text": "node",
      "top": 424.0,
      "left": 112.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0059",
      "page": 53,
      "ordinal": 59,
      "text": "节点包含的组件有：",
      "top": 424.0,
      "left": 147.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0060",
      "page": 53,
      "ordinal": 60,
      "text": "kubelet",
      "top": 424.0,
      "left": 278.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0061",
      "page": 53,
      "ordinal": 61,
      "text": "、",
      "top": 424.0,
      "left": 329.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0062",
      "page": 53,
      "ordinal": 62,
      "text": "kube-proxy",
      "top": 424.0,
      "left": 344.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0063",
      "page": 53,
      "ordinal": 63,
      "text": "、",
      "top": 424.0,
      "left": 421.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0064",
      "page": 53,
      "ordinal": 64,
      "text": "container-runtime",
      "top": 424.0,
      "left": 436.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0065",
      "page": 53,
      "ordinal": 65,
      "text": "。",
      "top": 424.0,
      "left": 560.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b001"
      }
    },
    {
      "id": "p053-t0066",
      "page": 53,
      "ordinal": 66,
      "text": "kube-api-server",
      "top": 460.0,
      "left": 112.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0067",
      "page": 53,
      "ordinal": 67,
      "text": "：以下简称",
      "top": 460.0,
      "left": 218.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0068",
      "page": 53,
      "ordinal": 68,
      "text": "api-server",
      "top": 460.0,
      "left": 292.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0069",
      "page": 53,
      "ordinal": 69,
      "text": "，",
      "top": 460.0,
      "left": 360.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0070",
      "page": 53,
      "ordinal": 70,
      "text": "api-server",
      "top": 460.0,
      "left": 374.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0071",
      "page": 53,
      "ordinal": 71,
      "text": "是",
      "top": 460.0,
      "left": 442.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0072",
      "page": 53,
      "ordinal": 72,
      "text": "k8s",
      "top": 460.0,
      "left": 457.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0073",
      "page": 53,
      "ordinal": 73,
      "text": "最重要的核心组件之一，它是",
      "top": 460.0,
      "left": 480.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0074",
      "page": 53,
      "ordinal": 74,
      "text": "k8s",
      "top": 460.0,
      "left": 670.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0075",
      "page": 53,
      "ordinal": 75,
      "text": "集群管理的统",
      "top": 460.0,
      "left": 693.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0076",
      "page": 53,
      "ordinal": 76,
      "text": "一访问入口，提供了",
      "top": 482.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0077",
      "page": 53,
      "ordinal": 77,
      "text": "RESTful API",
      "top": 482.0,
      "left": 243.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0078",
      "page": 53,
      "ordinal": 78,
      "text": "接口",
      "top": 482.0,
      "left": 320.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0079",
      "page": 53,
      "ordinal": 79,
      "text": ", ",
      "top": 482.0,
      "left": 349.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0080",
      "page": 53,
      "ordinal": 80,
      "text": "实现了认证、授权和准入控制等安全功能；",
      "top": 482.0,
      "left": 357.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0081",
      "page": 53,
      "ordinal": 81,
      "text": "api-server",
      "top": 482.0,
      "left": 635.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0082",
      "page": 53,
      "ordinal": 82,
      "text": "还是其他组",
      "top": 482.0,
      "left": 703.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0083",
      "page": 53,
      "ordinal": 83,
      "text": "件之间的数据交互和通信的枢纽，其他组件彼此之间并不会直接通信，其他组件对资源对象的增、删、",
      "top": 506.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0084",
      "page": 53,
      "ordinal": 84,
      "text": "改、查和监听操作都是交由",
      "top": 530.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0085",
      "page": 53,
      "ordinal": 85,
      "text": "api-server",
      "top": 530.0,
      "left": 287.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0086",
      "page": 53,
      "ordinal": 86,
      "text": "处理后，",
      "top": 530.0,
      "left": 355.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0087",
      "page": 53,
      "ordinal": 87,
      "text": "api-server",
      "top": 530.0,
      "left": 414.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0088",
      "page": 53,
      "ordinal": 88,
      "text": "再提交给",
      "top": 530.0,
      "left": 482.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0089",
      "page": 53,
      "ordinal": 89,
      "text": "etcd",
      "top": 530.0,
      "left": 541.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0090",
      "page": 53,
      "ordinal": 90,
      "text": "数据库做持久化存储，只有",
      "top": 530.0,
      "left": 570.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0091",
      "page": 53,
      "ordinal": 91,
      "text": "api-",
      "top": 530.0,
      "left": 745.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0092",
      "page": 53,
      "ordinal": 92,
      "text": "server",
      "top": 553.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0093",
      "page": 53,
      "ordinal": 93,
      "text": "才能直接操作",
      "top": 553.0,
      "left": 154.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0094",
      "page": 53,
      "ordinal": 94,
      "text": "etcd",
      "top": 553.0,
      "left": 242.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0095",
      "page": 53,
      "ordinal": 95,
      "text": "数据库，其他组件都不能直接操作",
      "top": 553.0,
      "left": 271.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0096",
      "page": 53,
      "ordinal": 96,
      "text": "etcd",
      "top": 553.0,
      "left": 491.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0097",
      "page": 53,
      "ordinal": 97,
      "text": "数据库，其他组件都是通过",
      "top": 553.0,
      "left": 520.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0098",
      "page": 53,
      "ordinal": 98,
      "text": "api-server",
      "top": 553.0,
      "left": 696.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0099",
      "page": 53,
      "ordinal": 99,
      "text": "间",
      "top": 553.0,
      "left": 764.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0100",
      "page": 53,
      "ordinal": 100,
      "text": "接的读取，写入数据到",
      "top": 577.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0101",
      "page": 53,
      "ordinal": 101,
      "text": "etcd",
      "top": 577.0,
      "left": 258.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0102",
      "page": 53,
      "ordinal": 102,
      "text": "。",
      "top": 577.0,
      "left": 287.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b002"
      }
    },
    {
      "id": "p053-t0103",
      "page": 53,
      "ordinal": 103,
      "text": "kube-controller-manager",
      "top": 612.0,
      "left": 112.0,
      "width": 171.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0104",
      "page": 53,
      "ordinal": 104,
      "text": "：以下简称",
      "top": 612.0,
      "left": 282.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0105",
      "page": 53,
      "ordinal": 105,
      "text": "controller-manager",
      "top": 612.0,
      "left": 355.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0106",
      "page": 53,
      "ordinal": 106,
      "text": "，",
      "top": 612.0,
      "left": 488.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0107",
      "page": 53,
      "ordinal": 107,
      "text": "controller-manager",
      "top": 612.0,
      "left": 502.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0108",
      "page": 53,
      "ordinal": 108,
      "text": "是",
      "top": 612.0,
      "left": 634.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0109",
      "page": 53,
      "ordinal": 109,
      "text": "k8s",
      "top": 612.0,
      "left": 649.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0110",
      "page": 53,
      "ordinal": 110,
      "text": "中各种控制器的",
      "top": 612.0,
      "left": 672.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0111",
      "page": 53,
      "ordinal": 111,
      "text": "的管理者，是",
      "top": 635.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0112",
      "page": 53,
      "ordinal": 112,
      "text": "k8s",
      "top": 635.0,
      "left": 200.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0113",
      "page": 53,
      "ordinal": 113,
      "text": "集群内部的管理控制中心，也是",
      "top": 635.0,
      "left": 223.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0114",
      "page": 53,
      "ordinal": 114,
      "text": "k8s",
      "top": 635.0,
      "left": 427.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0115",
      "page": 53,
      "ordinal": 115,
      "text": "自动化功能的核心；",
      "top": 635.0,
      "left": 450.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0116",
      "page": 53,
      "ordinal": 116,
      "text": "controller-manager",
      "top": 635.0,
      "left": 582.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0117",
      "page": 53,
      "ordinal": 117,
      "text": "内部包含",
      "top": 635.0,
      "left": 714.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0118",
      "page": 53,
      "ordinal": 118,
      "text": "replication controller",
      "top": 658.0,
      "left": 112.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0119",
      "page": 53,
      "ordinal": 119,
      "text": "、",
      "top": 658.0,
      "left": 254.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0120",
      "page": 53,
      "ordinal": 120,
      "text": "node controller",
      "top": 658.0,
      "left": 269.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0121",
      "page": 53,
      "ordinal": 121,
      "text": "、",
      "top": 658.0,
      "left": 374.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0122",
      "page": 53,
      "ordinal": 122,
      "text": "deployment controller",
      "top": 658.0,
      "left": 389.0,
      "width": 152.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0123",
      "page": 53,
      "ordinal": 123,
      "text": "、",
      "top": 658.0,
      "left": 541.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0124",
      "page": 53,
      "ordinal": 124,
      "text": "endpoint controller",
      "top": 658.0,
      "left": 555.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0125",
      "page": 53,
      "ordinal": 125,
      "text": "等各种资源对",
      "top": 658.0,
      "left": 687.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0126",
      "page": 53,
      "ordinal": 126,
      "text": "象的控制器，每种控制器都负责一种特定资源的控制流程，而",
      "top": 681.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0127",
      "page": 53,
      "ordinal": 127,
      "text": "controller-manager",
      "top": 681.0,
      "left": 507.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0128",
      "page": 53,
      "ordinal": 128,
      "text": "正是这些",
      "top": 681.0,
      "left": 639.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0129",
      "page": 53,
      "ordinal": 129,
      "text": "controller",
      "top": 681.0,
      "left": 697.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0130",
      "page": 53,
      "ordinal": 130,
      "text": "的",
      "top": 681.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0131",
      "page": 53,
      "ordinal": 131,
      "text": "核心管理者。",
      "top": 705.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b003"
      }
    },
    {
      "id": "p053-t0132",
      "page": 53,
      "ordinal": 132,
      "text": "kube-scheduler",
      "top": 740.0,
      "left": 112.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0133",
      "page": 53,
      "ordinal": 133,
      "text": "：以下简称",
      "top": 740.0,
      "left": 217.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0134",
      "page": 53,
      "ordinal": 134,
      "text": "scheduler",
      "top": 740.0,
      "left": 290.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0135",
      "page": 53,
      "ordinal": 135,
      "text": "，",
      "top": 740.0,
      "left": 357.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0136",
      "page": 53,
      "ordinal": 136,
      "text": "scheduler",
      "top": 740.0,
      "left": 372.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0137",
      "page": 53,
      "ordinal": 137,
      "text": "负责集群资源调度，其作用是将待调度的",
      "top": 740.0,
      "left": 439.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0138",
      "page": 53,
      "ordinal": 138,
      "text": "pod",
      "top": 740.0,
      "left": 702.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0139",
      "page": 53,
      "ordinal": 139,
      "text": "通过一",
      "top": 740.0,
      "left": 729.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0140",
      "page": 53,
      "ordinal": 140,
      "text": "系列复杂的调度算法计算出最合适的",
      "top": 764.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0141",
      "page": 53,
      "ordinal": 141,
      "text": "node",
      "top": 764.0,
      "left": 346.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0142",
      "page": 53,
      "ordinal": 142,
      "text": "节点，然后将",
      "top": 764.0,
      "left": 381.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0143",
      "page": 53,
      "ordinal": 143,
      "text": "pod",
      "top": 764.0,
      "left": 468.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0144",
      "page": 53,
      "ordinal": 144,
      "text": "绑定到目标节点上。",
      "top": 764.0,
      "left": 495.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0145",
      "page": 53,
      "ordinal": 145,
      "text": "shceduler",
      "top": 764.0,
      "left": 627.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0146",
      "page": 53,
      "ordinal": 146,
      "text": "会根据",
      "top": 764.0,
      "left": 694.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0147",
      "page": 53,
      "ordinal": 147,
      "text": "pod",
      "top": 764.0,
      "left": 738.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0148",
      "page": 53,
      "ordinal": 148,
      "text": "的",
      "top": 764.0,
      "left": 764.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0149",
      "page": 53,
      "ordinal": 149,
      "text": "信息，全部节点信息列表，过滤掉不符合要求的节点，过滤出一批候选节点，然后给候选节点打分，选",
      "top": 787.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0150",
      "page": 53,
      "ordinal": 150,
      "text": "分最高的就是最佳节点，",
      "top": 811.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0151",
      "page": 53,
      "ordinal": 151,
      "text": "scheduler",
      "top": 811.0,
      "left": 273.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0152",
      "page": 53,
      "ordinal": 152,
      "text": "就会把目标",
      "top": 811.0,
      "left": 340.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0153",
      "page": 53,
      "ordinal": 153,
      "text": "pod",
      "top": 811.0,
      "left": 413.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0154",
      "page": 53,
      "ordinal": 154,
      "text": "安置到该节点。",
      "top": 811.0,
      "left": 439.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b004"
      }
    },
    {
      "id": "p053-t0155",
      "page": 53,
      "ordinal": 155,
      "text": "Etcd",
      "top": 846.0,
      "left": 112.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0156",
      "page": 53,
      "ordinal": 156,
      "text": "：",
      "top": 846.0,
      "left": 141.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0157",
      "page": 53,
      "ordinal": 157,
      "text": "etcd",
      "top": 846.0,
      "left": 156.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0158",
      "page": 53,
      "ordinal": 158,
      "text": "是一个分布式的键值对存储数据库，主要是用于保存",
      "top": 846.0,
      "left": 185.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0159",
      "page": 53,
      "ordinal": 159,
      "text": "k8s",
      "top": 846.0,
      "left": 521.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0160",
      "page": 53,
      "ordinal": 160,
      "text": "集群状态数据，比如，",
      "top": 846.0,
      "left": 544.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0161",
      "page": 53,
      "ordinal": 161,
      "text": "pod",
      "top": 846.0,
      "left": 691.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0162",
      "page": 53,
      "ordinal": 162,
      "text": "，",
      "top": 846.0,
      "left": 717.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0163",
      "page": 53,
      "ordinal": 163,
      "text": "service",
      "top": 846.0,
      "left": 732.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0164",
      "page": 53,
      "ordinal": 164,
      "text": "等资源对象的信息；",
      "top": 869.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0165",
      "page": 53,
      "ordinal": 165,
      "text": "etcd",
      "top": 869.0,
      "left": 243.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0166",
      "page": 53,
      "ordinal": 166,
      "text": "可以是单个也可以有多个，多个就是",
      "top": 869.0,
      "left": 273.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0167",
      "page": 53,
      "ordinal": 167,
      "text": "etcd",
      "top": 869.0,
      "left": 507.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0168",
      "page": 53,
      "ordinal": 168,
      "text": "数据库集群，",
      "top": 869.0,
      "left": 536.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0169",
      "page": 53,
      "ordinal": 169,
      "text": "etcd",
      "top": 869.0,
      "left": 624.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0170",
      "page": 53,
      "ordinal": 170,
      "text": "通常部署奇数个实",
      "top": 869.0,
      "left": 653.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0171",
      "page": 53,
      "ordinal": 171,
      "text": "例，在大规模集群中，",
      "top": 892.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0172",
      "page": 53,
      "ordinal": 172,
      "text": "etcd",
      "top": 892.0,
      "left": 258.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0173",
      "page": 53,
      "ordinal": 173,
      "text": "有",
      "top": 892.0,
      "left": 287.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0174",
      "page": 53,
      "ordinal": 174,
      "text": "5",
      "top": 892.0,
      "left": 302.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0175",
      "page": 53,
      "ordinal": 175,
      "text": "个或",
      "top": 892.0,
      "left": 310.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0176",
      "page": 53,
      "ordinal": 176,
      "text": "7",
      "top": 892.0,
      "left": 340.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0177",
      "page": 53,
      "ordinal": 177,
      "text": "个节点就足够了；另外说明一点，",
      "top": 892.0,
      "left": 348.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0178",
      "page": 53,
      "ordinal": 178,
      "text": "etcd",
      "top": 892.0,
      "left": 567.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0179",
      "page": 53,
      "ordinal": 179,
      "text": "本质上可以不与",
      "top": 892.0,
      "left": 597.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0180",
      "page": 53,
      "ordinal": 180,
      "text": "master",
      "top": 892.0,
      "left": 699.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0181",
      "page": 53,
      "ordinal": 181,
      "text": "节点",
      "top": 892.0,
      "left": 747.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0182",
      "page": 53,
      "ordinal": 182,
      "text": "部署在一起，只要",
      "top": 915.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0183",
      "page": 53,
      "ordinal": 183,
      "text": "master",
      "top": 915.0,
      "left": 229.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0184",
      "page": 53,
      "ordinal": 184,
      "text": "节点能通过网络连接",
      "top": 915.0,
      "left": 277.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0185",
      "page": 53,
      "ordinal": 185,
      "text": "etcd",
      "top": 915.0,
      "left": 408.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0186",
      "page": 53,
      "ordinal": 186,
      "text": "数据库即可。",
      "top": 915.0,
      "left": 438.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b005"
      }
    },
    {
      "id": "p053-t0187",
      "page": 53,
      "ordinal": 187,
      "text": "kubelet",
      "top": 950.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0188",
      "page": 53,
      "ordinal": 188,
      "text": "：每个",
      "top": 950.0,
      "left": 163.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0189",
      "page": 53,
      "ordinal": 189,
      "text": "node",
      "top": 950.0,
      "left": 207.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0190",
      "page": 53,
      "ordinal": 190,
      "text": "节点上都有一个",
      "top": 950.0,
      "left": 241.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0191",
      "page": 53,
      "ordinal": 191,
      "text": "kubelet",
      "top": 950.0,
      "left": 344.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0192",
      "page": 53,
      "ordinal": 192,
      "text": "服务进程，",
      "top": 950.0,
      "left": 395.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0193",
      "page": 53,
      "ordinal": 193,
      "text": "kubelet",
      "top": 950.0,
      "left": 468.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0194",
      "page": 53,
      "ordinal": 194,
      "text": "作为连接",
      "top": 950.0,
      "left": 519.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0195",
      "page": 53,
      "ordinal": 195,
      "text": "master",
      "top": 950.0,
      "left": 577.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0196",
      "page": 53,
      "ordinal": 196,
      "text": "和各",
      "top": 950.0,
      "left": 625.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0197",
      "page": 53,
      "ordinal": 197,
      "text": "node",
      "top": 950.0,
      "left": 655.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0198",
      "page": 53,
      "ordinal": 198,
      "text": "之间的桥梁，",
      "top": 950.0,
      "left": 690.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0199",
      "page": 53,
      "ordinal": 199,
      "text": "负责维护",
      "top": 974.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0200",
      "page": 53,
      "ordinal": 200,
      "text": "pod",
      "top": 974.0,
      "left": 170.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0201",
      "page": 53,
      "ordinal": 201,
      "text": "和容器的生命周期，当监听到",
      "top": 974.0,
      "left": 197.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0202",
      "page": 53,
      "ordinal": 202,
      "text": "master",
      "top": 974.0,
      "left": 387.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0203",
      "page": 53,
      "ordinal": 203,
      "text": "下发到本节点的任务时，比如创建、更新、终止",
      "top": 974.0,
      "left": 435.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0204",
      "page": 53,
      "ordinal": 204,
      "text": "pod",
      "top": 974.0,
      "left": 742.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0205",
      "page": 53,
      "ordinal": 205,
      "text": "等任务，",
      "top": 998.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0206",
      "page": 53,
      "ordinal": 206,
      "text": "kubelet ",
      "top": 998.0,
      "left": 170.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0207",
      "page": 53,
      "ordinal": 207,
      "text": "即通过控制",
      "top": 998.0,
      "left": 225.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0208",
      "page": 53,
      "ordinal": 208,
      "text": "docker",
      "top": 998.0,
      "left": 298.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0209",
      "page": 53,
      "ordinal": 209,
      "text": "来创建、更新、销毁容器；",
      "top": 998.0,
      "left": 345.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0210",
      "page": 53,
      "ordinal": 210,
      "text": "每个",
      "top": 1021.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0211",
      "page": 53,
      "ordinal": 211,
      "text": "kubelet",
      "top": 1021.0,
      "left": 141.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0212",
      "page": 53,
      "ordinal": 212,
      "text": "进程都会在",
      "top": 1021.0,
      "left": 192.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0213",
      "page": 53,
      "ordinal": 213,
      "text": "api-server",
      "top": 1021.0,
      "left": 265.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0214",
      "page": 53,
      "ordinal": 214,
      "text": "上注册本节点自身的信息，用于定期向",
      "top": 1021.0,
      "left": 333.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0215",
      "page": 53,
      "ordinal": 215,
      "text": "master",
      "top": 1021.0,
      "left": 582.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0216",
      "page": 53,
      "ordinal": 216,
      "text": "汇报本节点资源的使用",
      "top": 1021.0,
      "left": 630.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0217",
      "page": 53,
      "ordinal": 217,
      "text": "情况。",
      "top": 1045.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b006"
      }
    },
    {
      "id": "p053-t0218",
      "page": 53,
      "ordinal": 218,
      "text": "kube-proxy",
      "top": 1080.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0219",
      "page": 53,
      "ordinal": 219,
      "text": "：",
      "top": 1080.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0220",
      "page": 53,
      "ordinal": 220,
      "text": "kube-proxy",
      "top": 1080.0,
      "left": 204.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0221",
      "page": 53,
      "ordinal": 221,
      "text": "运行在",
      "top": 1080.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0222",
      "page": 53,
      "ordinal": 222,
      "text": "node",
      "top": 1080.0,
      "left": 325.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0223",
      "page": 53,
      "ordinal": 223,
      "text": "节点上，在",
      "top": 1080.0,
      "left": 360.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0224",
      "page": 53,
      "ordinal": 224,
      "text": "Node",
      "top": 1080.0,
      "left": 433.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0225",
      "page": 53,
      "ordinal": 225,
      "text": "节点上实现",
      "top": 1080.0,
      "left": 470.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0226",
      "page": 53,
      "ordinal": 226,
      "text": "Pod",
      "top": 1080.0,
      "left": 543.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0227",
      "page": 53,
      "ordinal": 227,
      "text": "网络代理，维护网络规则和四层",
      "top": 1080.0,
      "left": 570.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0228",
      "page": 53,
      "ordinal": 228,
      "text": "负载均衡工作，",
      "top": 1103.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0229",
      "page": 53,
      "ordinal": 229,
      "text": "kube-proxy",
      "top": 1103.0,
      "left": 214.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0230",
      "page": 53,
      "ordinal": 230,
      "text": "会监听",
      "top": 1103.0,
      "left": 291.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0231",
      "page": 53,
      "ordinal": 231,
      "text": "api-server",
      "top": 1103.0,
      "left": 335.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0232",
      "page": 53,
      "ordinal": 232,
      "text": "中从而获取",
      "top": 1103.0,
      "left": 403.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0233",
      "page": 53,
      "ordinal": 233,
      "text": "service",
      "top": 1103.0,
      "left": 477.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0234",
      "page": 53,
      "ordinal": 234,
      "text": "和",
      "top": 1103.0,
      "left": 524.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0235",
      "page": 53,
      "ordinal": 235,
      "text": "endpoint",
      "top": 1103.0,
      "left": 539.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0236",
      "page": 53,
      "ordinal": 236,
      "text": "的变化情况，创建并维护路",
      "top": 1103.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0237",
      "page": 53,
      "ordinal": 237,
      "text": "由规则以提供服务",
      "top": 1126.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0238",
      "page": 53,
      "ordinal": 238,
      "text": "IP",
      "top": 1126.0,
      "left": 229.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0239",
      "page": 53,
      "ordinal": 239,
      "text": "和负载均衡功能。简单理解此进程是",
      "top": 1126.0,
      "left": 242.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0240",
      "page": 53,
      "ordinal": 240,
      "text": "Service",
      "top": 1126.0,
      "left": 476.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0241",
      "page": 53,
      "ordinal": 241,
      "text": "的透明代理兼负载均衡器，其核心功能",
      "top": 1126.0,
      "left": 524.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0242",
      "page": 53,
      "ordinal": 242,
      "text": "是将到某个",
      "top": 1149.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0243",
      "page": 53,
      "ordinal": 243,
      "text": "Service",
      "top": 1149.0,
      "left": 185.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0244",
      "page": 53,
      "ordinal": 244,
      "text": "的访问请求转发到后端的多个",
      "top": 1149.0,
      "left": 233.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0245",
      "page": 53,
      "ordinal": 245,
      "text": "Pod",
      "top": 1149.0,
      "left": 423.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p053-t0246",
      "page": 53,
      "ordinal": 246,
      "text": "实例上。",
      "top": 1149.0,
      "left": 450.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0001",
      "page": 54,
      "ordinal": 1,
      "text": "container-runtime",
      "top": 44.0,
      "left": 112.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0002",
      "page": 54,
      "ordinal": 2,
      "text": "：容器运行时环境，即运行容器所需要的一系列程序，目前",
      "top": 44.0,
      "left": 236.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0003",
      "page": 54,
      "ordinal": 3,
      "text": "k8s",
      "top": 44.0,
      "left": 616.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0004",
      "page": 54,
      "ordinal": 4,
      "text": "支持的容器运行时有",
      "top": 44.0,
      "left": 639.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0005",
      "page": 54,
      "ordinal": 5,
      "text": "很多，如",
      "top": 67.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0006",
      "page": 54,
      "ordinal": 6,
      "text": "docker",
      "top": 67.0,
      "left": 170.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0007",
      "page": 54,
      "ordinal": 7,
      "text": "、",
      "top": 67.0,
      "left": 217.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0008",
      "page": 54,
      "ordinal": 8,
      "text": "rkt",
      "top": 67.0,
      "left": 231.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0009",
      "page": 54,
      "ordinal": 9,
      "text": "或其他，比较受欢迎的是",
      "top": 67.0,
      "left": 250.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0010",
      "page": 54,
      "ordinal": 10,
      "text": "docker",
      "top": 67.0,
      "left": 411.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0011",
      "page": 54,
      "ordinal": 11,
      "text": "，但是新版的",
      "top": 67.0,
      "left": 458.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0012",
      "page": 54,
      "ordinal": 12,
      "text": "k8s",
      "top": 67.0,
      "left": 546.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0013",
      "page": 54,
      "ordinal": 13,
      "text": "已经宣布弃用",
      "top": 67.0,
      "left": 569.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0014",
      "page": 54,
      "ordinal": 14,
      "text": "docker",
      "top": 67.0,
      "left": 656.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p053-h02",
        "heading_id": "p053-h02",
        "block_id": "q-p053-h02-b007"
      }
    },
    {
      "id": "p054-t0015",
      "page": 54,
      "ordinal": 15,
      "text": "kubelet",
      "top": 102.0,
      "left": 112.0,
      "width": 98.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01"
      }
    },
    {
      "id": "p054-t0016",
      "page": 54,
      "ordinal": 16,
      "text": "的功能、作用是什么？",
      "top": 102.0,
      "left": 210.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01"
      }
    },
    {
      "id": "p054-t0018",
      "page": 54,
      "ordinal": 18,
      "text": "kubelet",
      "top": 152.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0019",
      "page": 54,
      "ordinal": 19,
      "text": "部署在每个",
      "top": 152.0,
      "left": 163.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0020",
      "page": 54,
      "ordinal": 20,
      "text": "node",
      "top": 152.0,
      "left": 236.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0021",
      "page": 54,
      "ordinal": 21,
      "text": "节点上的，它主要有",
      "top": 152.0,
      "left": 271.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0022",
      "page": 54,
      "ordinal": 22,
      "text": "2",
      "top": 152.0,
      "left": 402.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0023",
      "page": 54,
      "ordinal": 23,
      "text": "个功能：",
      "top": 152.0,
      "left": 411.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b001"
      }
    },
    {
      "id": "p054-t0024",
      "page": 54,
      "ordinal": 24,
      "text": "1",
      "top": 175.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0025",
      "page": 54,
      "ordinal": 25,
      "text": "、节点管理。",
      "top": 175.0,
      "left": 120.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0026",
      "page": 54,
      "ordinal": 26,
      "text": "kubelet",
      "top": 175.0,
      "left": 208.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0027",
      "page": 54,
      "ordinal": 27,
      "text": "启动时会向",
      "top": 175.0,
      "left": 259.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0028",
      "page": 54,
      "ordinal": 28,
      "text": "api-server",
      "top": 175.0,
      "left": 332.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0029",
      "page": 54,
      "ordinal": 29,
      "text": "进行注册，然后会定时的向",
      "top": 175.0,
      "left": 400.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0030",
      "page": 54,
      "ordinal": 30,
      "text": "api-server",
      "top": 175.0,
      "left": 576.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0031",
      "page": 54,
      "ordinal": 31,
      "text": "汇报本节点信息状",
      "top": 175.0,
      "left": 644.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0032",
      "page": 54,
      "ordinal": 32,
      "text": "态，资源使用状态等，这样",
      "top": 199.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0033",
      "page": 54,
      "ordinal": 33,
      "text": "master",
      "top": 199.0,
      "left": 287.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0034",
      "page": 54,
      "ordinal": 34,
      "text": "就能够知道",
      "top": 199.0,
      "left": 335.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0035",
      "page": 54,
      "ordinal": 35,
      "text": "node",
      "top": 199.0,
      "left": 408.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0036",
      "page": 54,
      "ordinal": 36,
      "text": "节点的资源剩余，节点是否失联等等相关的信息了。",
      "top": 199.0,
      "left": 443.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0037",
      "page": 54,
      "ordinal": 37,
      "text": "master",
      "top": 222.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0038",
      "page": 54,
      "ordinal": 38,
      "text": "知道了整个集群所有节点的资源情况，这对于",
      "top": 222.0,
      "left": 160.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0039",
      "page": 54,
      "ordinal": 39,
      "text": " pod ",
      "top": 222.0,
      "left": 452.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0040",
      "page": 54,
      "ordinal": 40,
      "text": "的调度和正常运行至关重要。",
      "top": 222.0,
      "left": 487.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b002"
      }
    },
    {
      "id": "p054-t0041",
      "page": 54,
      "ordinal": 41,
      "text": "2",
      "top": 246.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0042",
      "page": 54,
      "ordinal": 42,
      "text": "、",
      "top": 246.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0043",
      "page": 54,
      "ordinal": 43,
      "text": "pod",
      "top": 246.0,
      "left": 135.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0044",
      "page": 54,
      "ordinal": 44,
      "text": "管理。",
      "top": 246.0,
      "left": 161.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0045",
      "page": 54,
      "ordinal": 45,
      "text": "kubelet",
      "top": 246.0,
      "left": 205.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0046",
      "page": 54,
      "ordinal": 46,
      "text": "负责维护",
      "top": 246.0,
      "left": 256.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0047",
      "page": 54,
      "ordinal": 47,
      "text": "node",
      "top": 246.0,
      "left": 315.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0048",
      "page": 54,
      "ordinal": 48,
      "text": "节点上",
      "top": 246.0,
      "left": 350.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0049",
      "page": 54,
      "ordinal": 49,
      "text": "pod",
      "top": 246.0,
      "left": 394.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0050",
      "page": 54,
      "ordinal": 50,
      "text": "的生命周期，当",
      "top": 246.0,
      "left": 420.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0051",
      "page": 54,
      "ordinal": 51,
      "text": "kubelet",
      "top": 246.0,
      "left": 523.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0052",
      "page": 54,
      "ordinal": 52,
      "text": "监听到",
      "top": 246.0,
      "left": 574.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0053",
      "page": 54,
      "ordinal": 53,
      "text": "master",
      "top": 246.0,
      "left": 618.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0054",
      "page": 54,
      "ordinal": 54,
      "text": "的下发到自己节",
      "top": 246.0,
      "left": 666.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0055",
      "page": 54,
      "ordinal": 55,
      "text": "点的任务时，比如要创建、更新、删除一个",
      "top": 269.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0056",
      "page": 54,
      "ordinal": 56,
      "text": "pod",
      "top": 269.0,
      "left": 390.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0057",
      "page": 54,
      "ordinal": 57,
      "text": "，",
      "top": 269.0,
      "left": 416.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0058",
      "page": 54,
      "ordinal": 58,
      "text": "kubelet ",
      "top": 269.0,
      "left": 431.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0059",
      "page": 54,
      "ordinal": 59,
      "text": "就会通过",
      "top": 269.0,
      "left": 486.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0060",
      "page": 54,
      "ordinal": 60,
      "text": "CRI",
      "top": 269.0,
      "left": 544.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0061",
      "page": 54,
      "ordinal": 61,
      "text": "（容器运行时接口）插件来调用",
      "top": 269.0,
      "left": 567.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0062",
      "page": 54,
      "ordinal": 62,
      "text": "不同的容器运行时来创建、更新、删除容器；常见的容器运行时有",
      "top": 292.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0063",
      "page": 54,
      "ordinal": 63,
      "text": "docker",
      "top": 292.0,
      "left": 536.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0064",
      "page": 54,
      "ordinal": 64,
      "text": "、",
      "top": 292.0,
      "left": 582.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0065",
      "page": 54,
      "ordinal": 65,
      "text": "containerd",
      "top": 292.0,
      "left": 597.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0066",
      "page": 54,
      "ordinal": 66,
      "text": "、",
      "top": 292.0,
      "left": 671.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0067",
      "page": 54,
      "ordinal": 67,
      "text": "rkt",
      "top": 292.0,
      "left": 686.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0068",
      "page": 54,
      "ordinal": 68,
      "text": "等等这些容",
      "top": 292.0,
      "left": 704.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0069",
      "page": 54,
      "ordinal": 69,
      "text": "器运行时，我们最熟悉的就是",
      "top": 316.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0070",
      "page": 54,
      "ordinal": 70,
      "text": "docker",
      "top": 316.0,
      "left": 302.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0071",
      "page": 54,
      "ordinal": 71,
      "text": "了，但在新版本的",
      "top": 316.0,
      "left": 348.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0072",
      "page": 54,
      "ordinal": 72,
      "text": "k8s",
      "top": 316.0,
      "left": 465.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0073",
      "page": 54,
      "ordinal": 73,
      "text": "已经弃用",
      "top": 316.0,
      "left": 489.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0074",
      "page": 54,
      "ordinal": 74,
      "text": "docker",
      "top": 316.0,
      "left": 547.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0075",
      "page": 54,
      "ordinal": 75,
      "text": "了，",
      "top": 316.0,
      "left": 594.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0076",
      "page": 54,
      "ordinal": 76,
      "text": "k8s1.24",
      "top": 316.0,
      "left": 623.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0077",
      "page": 54,
      "ordinal": 77,
      "text": "版本中已经使用",
      "top": 316.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0078",
      "page": 54,
      "ordinal": 78,
      "text": "containerd",
      "top": 339.0,
      "left": 112.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0079",
      "page": 54,
      "ordinal": 79,
      "text": "作为容器运行时了。",
      "top": 339.0,
      "left": 186.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b003"
      }
    },
    {
      "id": "p054-t0080",
      "page": 54,
      "ordinal": 80,
      "text": "3",
      "top": 363.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0081",
      "page": 54,
      "ordinal": 81,
      "text": "、容器健康检查。",
      "top": 363.0,
      "left": 120.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0082",
      "page": 54,
      "ordinal": 82,
      "text": "pod",
      "top": 363.0,
      "left": 237.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0083",
      "page": 54,
      "ordinal": 83,
      "text": "中可以定义启动探针、存活探针、就绪探针等",
      "top": 363.0,
      "left": 264.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0084",
      "page": 54,
      "ordinal": 84,
      "text": "3",
      "top": 363.0,
      "left": 556.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0085",
      "page": 54,
      "ordinal": 85,
      "text": "种，我们最常用的就是存活探",
      "top": 363.0,
      "left": 565.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0086",
      "page": 54,
      "ordinal": 86,
      "text": "针、就绪探针，",
      "top": 386.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0087",
      "page": 54,
      "ordinal": 87,
      "text": "kubelet ",
      "top": 386.0,
      "left": 214.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0088",
      "page": 54,
      "ordinal": 88,
      "text": "会定期调用容器中的探针来检测容器是否存活，是否就绪，如果是存活探针，则",
      "top": 386.0,
      "left": 269.0,
      "width": 512.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0089",
      "page": 54,
      "ordinal": 89,
      "text": "会根据探测结果对检查失败的容器进行相应的重启策略；",
      "top": 409.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b004"
      }
    },
    {
      "id": "p054-t0090",
      "page": 54,
      "ordinal": 90,
      "text": "4",
      "top": 433.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0091",
      "page": 54,
      "ordinal": 91,
      "text": "、",
      "top": 433.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0092",
      "page": 54,
      "ordinal": 92,
      "text": "Metrics Server",
      "top": 433.0,
      "left": 135.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0093",
      "page": 54,
      "ordinal": 93,
      "text": "资源监控。在",
      "top": 433.0,
      "left": 232.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0094",
      "page": 54,
      "ordinal": 94,
      "text": "node",
      "top": 433.0,
      "left": 320.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0095",
      "page": 54,
      "ordinal": 95,
      "text": "节点上部署",
      "top": 433.0,
      "left": 355.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0096",
      "page": 54,
      "ordinal": 96,
      "text": "Metrics Server",
      "top": 433.0,
      "left": 428.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0097",
      "page": 54,
      "ordinal": 97,
      "text": "用于监控",
      "top": 433.0,
      "left": 526.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0098",
      "page": 54,
      "ordinal": 98,
      "text": "node",
      "top": 433.0,
      "left": 584.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0099",
      "page": 54,
      "ordinal": 99,
      "text": "节点、",
      "top": 433.0,
      "left": 619.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0100",
      "page": 54,
      "ordinal": 100,
      "text": "pod",
      "top": 433.0,
      "left": 663.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0101",
      "page": 54,
      "ordinal": 101,
      "text": "的",
      "top": 433.0,
      "left": 690.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0102",
      "page": 54,
      "ordinal": 102,
      "text": "CPU",
      "top": 433.0,
      "left": 705.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0103",
      "page": 54,
      "ordinal": 103,
      "text": "、内",
      "top": 433.0,
      "left": 733.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0104",
      "page": 54,
      "ordinal": 104,
      "text": "存、文件系统、网络使用等资源使用情况，而",
      "top": 456.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0105",
      "page": 54,
      "ordinal": 105,
      "text": "kubelet",
      "top": 456.0,
      "left": 404.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0106",
      "page": 54,
      "ordinal": 106,
      "text": "则通过",
      "top": 456.0,
      "left": 455.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0107",
      "page": 54,
      "ordinal": 107,
      "text": "Metrics Server",
      "top": 456.0,
      "left": 499.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0108",
      "page": 54,
      "ordinal": 108,
      "text": "获取所在节点及容器的上的",
      "top": 456.0,
      "left": 597.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0109",
      "page": 54,
      "ordinal": 109,
      "text": "数据。",
      "top": 480.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h01",
        "heading_id": "p054-h01",
        "block_id": "q-p054-h01-b005"
      }
    },
    {
      "id": "p054-t0110",
      "page": 54,
      "ordinal": 110,
      "text": "kube-api-server",
      "top": 514.0,
      "left": 112.0,
      "width": 201.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0111",
      "page": 54,
      "ordinal": 111,
      "text": "的端口是多少？各个",
      "top": 514.0,
      "left": 312.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0112",
      "page": 54,
      "ordinal": 112,
      "text": "pod",
      "top": 514.0,
      "left": 543.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0113",
      "page": 54,
      "ordinal": 113,
      "text": "是如何访问",
      "top": 514.0,
      "left": 591.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0114",
      "page": 54,
      "ordinal": 114,
      "text": "kube-api-server",
      "top": 545.0,
      "left": 112.0,
      "width": 201.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0115",
      "page": 54,
      "ordinal": 115,
      "text": "的？",
      "top": 545.0,
      "left": 312.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02"
      }
    },
    {
      "id": "p054-t0117",
      "page": 54,
      "ordinal": 117,
      "text": "kube-api-server",
      "top": 596.0,
      "left": 112.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0118",
      "page": 54,
      "ordinal": 118,
      "text": "的端口是",
      "top": 596.0,
      "left": 218.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0119",
      "page": 54,
      "ordinal": 119,
      "text": "8080",
      "top": 596.0,
      "left": 277.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0120",
      "page": 54,
      "ordinal": 120,
      "text": "和",
      "top": 596.0,
      "left": 310.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0121",
      "page": 54,
      "ordinal": 121,
      "text": "6443",
      "top": 596.0,
      "left": 325.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0122",
      "page": 54,
      "ordinal": 122,
      "text": "，前者是",
      "top": 596.0,
      "left": 358.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0123",
      "page": 54,
      "ordinal": 123,
      "text": "http",
      "top": 596.0,
      "left": 417.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0124",
      "page": 54,
      "ordinal": 124,
      "text": "的端口，后者是",
      "top": 596.0,
      "left": 445.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0125",
      "page": 54,
      "ordinal": 125,
      "text": "https",
      "top": 596.0,
      "left": 548.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0126",
      "page": 54,
      "ordinal": 126,
      "text": "的端口，以我本机使用",
      "top": 596.0,
      "left": 583.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0127",
      "page": 54,
      "ordinal": 127,
      "text": "kubeadm",
      "top": 620.0,
      "left": 112.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0128",
      "page": 54,
      "ordinal": 128,
      "text": "安装的",
      "top": 620.0,
      "left": 176.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0129",
      "page": 54,
      "ordinal": 129,
      "text": "k8s",
      "top": 620.0,
      "left": 220.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0130",
      "page": 54,
      "ordinal": 130,
      "text": "为例：",
      "top": 620.0,
      "left": 243.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0131",
      "page": 54,
      "ordinal": 131,
      "text": "在命名空间的",
      "top": 643.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0132",
      "page": 54,
      "ordinal": 132,
      "text": "kube-system",
      "top": 643.0,
      "left": 200.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0133",
      "page": 54,
      "ordinal": 133,
      "text": "命名空间里，有一个名称为",
      "top": 643.0,
      "left": 286.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0134",
      "page": 54,
      "ordinal": 134,
      "text": "kube-api-master",
      "top": 643.0,
      "left": 462.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0135",
      "page": 54,
      "ordinal": 135,
      "text": "的",
      "top": 643.0,
      "left": 574.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0136",
      "page": 54,
      "ordinal": 136,
      "text": "pod",
      "top": 643.0,
      "left": 589.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0137",
      "page": 54,
      "ordinal": 137,
      "text": "，这个",
      "top": 643.0,
      "left": 615.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0138",
      "page": 54,
      "ordinal": 138,
      "text": "pod",
      "top": 643.0,
      "left": 659.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0139",
      "page": 54,
      "ordinal": 139,
      "text": "就是运行着",
      "top": 643.0,
      "left": 686.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0140",
      "page": 54,
      "ordinal": 140,
      "text": "kube-api-server",
      "top": 667.0,
      "left": 112.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0141",
      "page": 54,
      "ordinal": 141,
      "text": "进程，它绑定了",
      "top": 667.0,
      "left": 218.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0142",
      "page": 54,
      "ordinal": 142,
      "text": "master",
      "top": 667.0,
      "left": 321.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0143",
      "page": 54,
      "ordinal": 143,
      "text": "主机的",
      "top": 667.0,
      "left": 369.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0144",
      "page": 54,
      "ordinal": 144,
      "text": "ip",
      "top": 667.0,
      "left": 413.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0145",
      "page": 54,
      "ordinal": 145,
      "text": "地址和",
      "top": 667.0,
      "left": 425.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0146",
      "page": 54,
      "ordinal": 146,
      "text": "6443",
      "top": 667.0,
      "left": 469.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0147",
      "page": 54,
      "ordinal": 147,
      "text": "端口，但是在",
      "top": 667.0,
      "left": 503.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0148",
      "page": 54,
      "ordinal": 148,
      "text": "default",
      "top": 667.0,
      "left": 590.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0149",
      "page": 54,
      "ordinal": 149,
      "text": "命名空间下，存在一",
      "top": 667.0,
      "left": 639.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0150",
      "page": 54,
      "ordinal": 150,
      "text": "个叫",
      "top": 689.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0151",
      "page": 54,
      "ordinal": 151,
      "text": "kubernetes",
      "top": 689.0,
      "left": 141.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0152",
      "page": 54,
      "ordinal": 152,
      "text": "的服务，该服务对外暴露端口为",
      "top": 689.0,
      "left": 218.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0153",
      "page": 54,
      "ordinal": 153,
      "text": "443",
      "top": 689.0,
      "left": 423.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0154",
      "page": 54,
      "ordinal": 154,
      "text": "，目标端口",
      "top": 689.0,
      "left": 448.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0155",
      "page": 54,
      "ordinal": 155,
      "text": "6443",
      "top": 689.0,
      "left": 521.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0156",
      "page": 54,
      "ordinal": 156,
      "text": "，这个服务的",
      "top": 689.0,
      "left": 555.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0157",
      "page": 54,
      "ordinal": 157,
      "text": "ip",
      "top": 689.0,
      "left": 642.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0158",
      "page": 54,
      "ordinal": 158,
      "text": "地址是",
      "top": 689.0,
      "left": 655.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0159",
      "page": 54,
      "ordinal": 159,
      "text": "clusterip",
      "top": 689.0,
      "left": 699.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0160",
      "page": 54,
      "ordinal": 160,
      "text": "地",
      "top": 689.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0161",
      "page": 54,
      "ordinal": 161,
      "text": "址池里面的第一个地址，同时这个服务的",
      "top": 713.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0162",
      "page": 54,
      "ordinal": 162,
      "text": "yaml",
      "top": 713.0,
      "left": 375.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0163",
      "page": 54,
      "ordinal": 163,
      "text": "定义里面并没有指定标签选择器，也就是说这个",
      "top": 713.0,
      "left": 408.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0164",
      "page": 54,
      "ordinal": 164,
      "text": "kubernetes",
      "top": 737.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0165",
      "page": 54,
      "ordinal": 165,
      "text": "服务所对应的",
      "top": 737.0,
      "left": 189.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0166",
      "page": 54,
      "ordinal": 166,
      "text": "endpoint",
      "top": 737.0,
      "left": 277.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0167",
      "page": 54,
      "ordinal": 167,
      "text": "是手动创建的，该",
      "top": 737.0,
      "left": 339.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0168",
      "page": 54,
      "ordinal": 168,
      "text": "endpoint",
      "top": 737.0,
      "left": 456.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0169",
      "page": 54,
      "ordinal": 169,
      "text": "也是名称叫做",
      "top": 737.0,
      "left": 517.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0170",
      "page": 54,
      "ordinal": 170,
      "text": "kubernetes",
      "top": 737.0,
      "left": 605.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0171",
      "page": 54,
      "ordinal": 171,
      "text": "，该",
      "top": 737.0,
      "left": 682.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0172",
      "page": 54,
      "ordinal": 172,
      "text": "endpoint",
      "top": 737.0,
      "left": 712.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0173",
      "page": 54,
      "ordinal": 173,
      "text": "的",
      "top": 760.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0174",
      "page": 54,
      "ordinal": 174,
      "text": "yaml",
      "top": 760.0,
      "left": 126.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0175",
      "page": 54,
      "ordinal": 175,
      "text": "定义里面代理到",
      "top": 760.0,
      "left": 159.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0176",
      "page": 54,
      "ordinal": 176,
      "text": "master",
      "top": 760.0,
      "left": 262.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0177",
      "page": 54,
      "ordinal": 177,
      "text": "节点的",
      "top": 760.0,
      "left": 310.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0178",
      "page": 54,
      "ordinal": 178,
      "text": "6443",
      "top": 760.0,
      "left": 353.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0179",
      "page": 54,
      "ordinal": 179,
      "text": "端口，也就是",
      "top": 760.0,
      "left": 387.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0180",
      "page": 54,
      "ordinal": 180,
      "text": "kube-api-server",
      "top": 760.0,
      "left": 475.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0181",
      "page": 54,
      "ordinal": 181,
      "text": "的",
      "top": 760.0,
      "left": 581.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0182",
      "page": 54,
      "ordinal": 182,
      "text": "IP",
      "top": 760.0,
      "left": 596.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0183",
      "page": 54,
      "ordinal": 183,
      "text": "和端口。这样一来，其他",
      "top": 760.0,
      "left": 609.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0184",
      "page": 54,
      "ordinal": 184,
      "text": "pod",
      "top": 784.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0185",
      "page": 54,
      "ordinal": 185,
      "text": "访问",
      "top": 784.0,
      "left": 139.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0186",
      "page": 54,
      "ordinal": 186,
      "text": "kube-api-server",
      "top": 784.0,
      "left": 168.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0187",
      "page": 54,
      "ordinal": 187,
      "text": "的整个流程就是：",
      "top": 784.0,
      "left": 274.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0188",
      "page": 54,
      "ordinal": 188,
      "text": "pod",
      "top": 784.0,
      "left": 391.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0189",
      "page": 54,
      "ordinal": 189,
      "text": "创建后嵌入了环境变量，",
      "top": 784.0,
      "left": 418.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0190",
      "page": 54,
      "ordinal": 190,
      "text": "pod",
      "top": 784.0,
      "left": 579.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0191",
      "page": 54,
      "ordinal": 191,
      "text": "获取到了",
      "top": 784.0,
      "left": 606.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0192",
      "page": 54,
      "ordinal": 192,
      "text": "kubernetes",
      "top": 784.0,
      "left": 664.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0193",
      "page": 54,
      "ordinal": 193,
      "text": "这个",
      "top": 784.0,
      "left": 742.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0194",
      "page": 54,
      "ordinal": 194,
      "text": "服务的",
      "top": 806.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0195",
      "page": 54,
      "ordinal": 195,
      "text": "ip",
      "top": 806.0,
      "left": 156.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0196",
      "page": 54,
      "ordinal": 196,
      "text": "和",
      "top": 806.0,
      "left": 168.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0197",
      "page": 54,
      "ordinal": 197,
      "text": "443",
      "top": 806.0,
      "left": 183.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0198",
      "page": 54,
      "ordinal": 198,
      "text": "端口，请求到",
      "top": 806.0,
      "left": 208.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0199",
      "page": 54,
      "ordinal": 199,
      "text": "kubernetes",
      "top": 806.0,
      "left": 296.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0200",
      "page": 54,
      "ordinal": 200,
      "text": "这个服务其实就是转发到了",
      "top": 806.0,
      "left": 373.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0201",
      "page": 54,
      "ordinal": 201,
      "text": "master",
      "top": 806.0,
      "left": 549.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0202",
      "page": 54,
      "ordinal": 202,
      "text": "节点上的",
      "top": 806.0,
      "left": 597.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0203",
      "page": 54,
      "ordinal": 203,
      "text": "6443",
      "top": 806.0,
      "left": 655.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0204",
      "page": 54,
      "ordinal": 204,
      "text": "端口的",
      "top": 806.0,
      "left": 689.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0205",
      "page": 54,
      "ordinal": 205,
      "text": "kube-",
      "top": 806.0,
      "left": 732.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0206",
      "page": 54,
      "ordinal": 206,
      "text": "api-server",
      "top": 830.0,
      "left": 112.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0207",
      "page": 54,
      "ordinal": 207,
      "text": "这个",
      "top": 830.0,
      "left": 180.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0208",
      "page": 54,
      "ordinal": 208,
      "text": "pod",
      "top": 830.0,
      "left": 209.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0209",
      "page": 54,
      "ordinal": 209,
      "text": "里面",
      "top": 830.0,
      "left": 236.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h02",
        "heading_id": "p054-h02",
        "block_id": "q-p054-h02-b001"
      }
    },
    {
      "id": "p054-t0210",
      "page": 54,
      "ordinal": 210,
      "text": "k8s",
      "top": 865.0,
      "left": 112.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03"
      }
    },
    {
      "id": "p054-t0211",
      "page": 54,
      "ordinal": 211,
      "text": "中命名空间的作用是什么",
      "top": 865.0,
      "left": 155.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03"
      }
    },
    {
      "id": "p054-t0213",
      "page": 54,
      "ordinal": 213,
      "text": "namespace",
      "top": 915.0,
      "left": 112.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0214",
      "page": 54,
      "ordinal": 214,
      "text": "是",
      "top": 915.0,
      "left": 190.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0215",
      "page": 54,
      "ordinal": 215,
      "text": "kubernetes",
      "top": 915.0,
      "left": 205.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0216",
      "page": 54,
      "ordinal": 216,
      "text": "系统中的一种非常重要的资源，",
      "top": 915.0,
      "left": 282.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0217",
      "page": 54,
      "ordinal": 217,
      "text": "namespace",
      "top": 915.0,
      "left": 487.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0218",
      "page": 54,
      "ordinal": 218,
      "text": "的主要作用是用来实现多套环境",
      "top": 915.0,
      "left": 565.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0219",
      "page": 54,
      "ordinal": 219,
      "text": "的资源隔离，或者说是多租户的资源隔离。",
      "top": 939.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0220",
      "page": 54,
      "ordinal": 220,
      "text": "k8s",
      "top": 962.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0221",
      "page": 54,
      "ordinal": 221,
      "text": "通过将集群内部的资源分配到不同的",
      "top": 962.0,
      "left": 135.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0222",
      "page": 54,
      "ordinal": 222,
      "text": "namespace",
      "top": 962.0,
      "left": 369.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0223",
      "page": 54,
      "ordinal": 223,
      "text": "中，可以形成逻辑上的隔离，以方便不同的资源进",
      "top": 962.0,
      "left": 447.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0224",
      "page": 54,
      "ordinal": 224,
      "text": "行隔离使用和管理。不同的命名空间可以存在同名的资源，命名空间为资源提供了一个作用域。",
      "top": 985.0,
      "left": 112.0,
      "width": 614.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0225",
      "page": 54,
      "ordinal": 225,
      "text": "可以通过",
      "top": 1009.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0226",
      "page": 54,
      "ordinal": 226,
      "text": "k8s",
      "top": 1009.0,
      "left": 170.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0227",
      "page": 54,
      "ordinal": 227,
      "text": "的授权机制，将不同的",
      "top": 1009.0,
      "left": 193.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0228",
      "page": 54,
      "ordinal": 228,
      "text": "namespace",
      "top": 1009.0,
      "left": 340.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0229",
      "page": 54,
      "ordinal": 229,
      "text": "交给不同的租户进行管理，这样就实现了多租户的资源",
      "top": 1009.0,
      "left": 418.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0230",
      "page": 54,
      "ordinal": 230,
      "text": "隔离，还可以结合",
      "top": 1032.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0231",
      "page": 54,
      "ordinal": 231,
      "text": "k8s",
      "top": 1032.0,
      "left": 229.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0232",
      "page": 54,
      "ordinal": 232,
      "text": "的资源配额机制，限定不同的租户能占用的资源，例如",
      "top": 1032.0,
      "left": 252.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0233",
      "page": 54,
      "ordinal": 233,
      "text": "CPU",
      "top": 1032.0,
      "left": 603.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0234",
      "page": 54,
      "ordinal": 234,
      "text": "使用量、内存使用量等",
      "top": 1032.0,
      "left": 631.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p054-t0235",
      "page": 54,
      "ordinal": 235,
      "text": "等来实现租户可用资源的管理",
      "top": 1056.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p054-h03",
        "heading_id": "p054-h03",
        "block_id": "q-p054-h03-b001"
      }
    },
    {
      "id": "p055-t0001",
      "page": 55,
      "ordinal": 1,
      "text": "k8s",
      "top": 40.0,
      "left": 112.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0002",
      "page": 55,
      "ordinal": 2,
      "text": "提供了大量的",
      "top": 40.0,
      "left": 155.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0003",
      "page": 55,
      "ordinal": 3,
      "text": "REST",
      "top": 40.0,
      "left": 309.0,
      "width": 60.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0004",
      "page": 55,
      "ordinal": 4,
      "text": "接口，其中有一个是",
      "top": 40.0,
      "left": 369.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0005",
      "page": 55,
      "ordinal": 5,
      "text": "Kubernetes ",
      "top": 40.0,
      "left": 599.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0006",
      "page": 55,
      "ordinal": 6,
      "text": "Proxy API",
      "top": 71.0,
      "left": 112.0,
      "width": 122.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0007",
      "page": 55,
      "ordinal": 7,
      "text": "接口，简述一下这个",
      "top": 71.0,
      "left": 233.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0008",
      "page": 55,
      "ordinal": 8,
      "text": "Proxy",
      "top": 71.0,
      "left": 464.0,
      "width": 73.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0009",
      "page": 55,
      "ordinal": 9,
      "text": "接口的作用，已经怎",
      "top": 71.0,
      "left": 537.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0010",
      "page": 55,
      "ordinal": 10,
      "text": "么使用",
      "top": 103.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01"
      }
    },
    {
      "id": "p055-t0012",
      "page": 55,
      "ordinal": 12,
      "text": "kubernetes proxy api",
      "top": 154.0,
      "left": 112.0,
      "width": 145.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0013",
      "page": 55,
      "ordinal": 13,
      "text": "接口，从名称中可以得知，",
      "top": 154.0,
      "left": 256.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0014",
      "page": 55,
      "ordinal": 14,
      "text": "proxy",
      "top": 154.0,
      "left": 432.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0015",
      "page": 55,
      "ordinal": 15,
      "text": "是代理的意思，其作用就是代理",
      "top": 154.0,
      "left": 471.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0016",
      "page": 55,
      "ordinal": 16,
      "text": "rest",
      "top": 154.0,
      "left": 675.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0017",
      "page": 55,
      "ordinal": 17,
      "text": "请求；",
      "top": 154.0,
      "left": 702.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0018",
      "page": 55,
      "ordinal": 18,
      "text": "Kubernets API server ",
      "top": 176.0,
      "left": 112.0,
      "width": 147.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0019",
      "page": 55,
      "ordinal": 19,
      "text": "将接收到的",
      "top": 176.0,
      "left": 258.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0020",
      "page": 55,
      "ordinal": 20,
      "text": "rest",
      "top": 176.0,
      "left": 331.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0021",
      "page": 55,
      "ordinal": 21,
      "text": "请求转发到某个",
      "top": 176.0,
      "left": 358.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0022",
      "page": 55,
      "ordinal": 22,
      "text": "node",
      "top": 176.0,
      "left": 460.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0023",
      "page": 55,
      "ordinal": 23,
      "text": "上的",
      "top": 176.0,
      "left": 495.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0024",
      "page": 55,
      "ordinal": 24,
      "text": "kubelet",
      "top": 176.0,
      "left": 524.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0025",
      "page": 55,
      "ordinal": 25,
      "text": "守护进程的",
      "top": 176.0,
      "left": 575.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0026",
      "page": 55,
      "ordinal": 26,
      "text": "rest",
      "top": 176.0,
      "left": 648.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0027",
      "page": 55,
      "ordinal": 27,
      "text": "接口，由该",
      "top": 176.0,
      "left": 675.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0028",
      "page": 55,
      "ordinal": 28,
      "text": "kubelet",
      "top": 200.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0029",
      "page": 55,
      "ordinal": 29,
      "text": "进程负责响应。我们可以使用这种",
      "top": 200.0,
      "left": 163.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0030",
      "page": 55,
      "ordinal": 30,
      "text": "Proxy",
      "top": 200.0,
      "left": 382.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0031",
      "page": 55,
      "ordinal": 31,
      "text": "接口来直接访问某个",
      "top": 200.0,
      "left": 421.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0032",
      "page": 55,
      "ordinal": 32,
      "text": "pod",
      "top": 200.0,
      "left": 552.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0033",
      "page": 55,
      "ordinal": 33,
      "text": "，这对于逐一排查",
      "top": 200.0,
      "left": 579.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0034",
      "page": 55,
      "ordinal": 34,
      "text": "pod",
      "top": 200.0,
      "left": 696.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0035",
      "page": 55,
      "ordinal": 35,
      "text": "异常问题",
      "top": 200.0,
      "left": 723.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0036",
      "page": 55,
      "ordinal": 36,
      "text": "很有帮助。",
      "top": 224.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h01",
        "heading_id": "p055-h01",
        "block_id": "q-p055-h01-b001"
      }
    },
    {
      "id": "p055-t0037",
      "page": 55,
      "ordinal": 37,
      "text": "pod",
      "top": 258.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02"
      }
    },
    {
      "id": "p055-t0038",
      "page": 55,
      "ordinal": 38,
      "text": "是什么",
      "top": 258.0,
      "left": 160.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02"
      }
    },
    {
      "id": "p055-t0040",
      "page": 55,
      "ordinal": 40,
      "text": "在",
      "top": 309.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0041",
      "page": 55,
      "ordinal": 41,
      "text": "kubernetes",
      "top": 309.0,
      "left": 126.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0042",
      "page": 55,
      "ordinal": 42,
      "text": "的世界中，",
      "top": 309.0,
      "left": 204.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0043",
      "page": 55,
      "ordinal": 43,
      "text": "k8s",
      "top": 309.0,
      "left": 277.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0044",
      "page": 55,
      "ordinal": 44,
      "text": "并不直接处理容器，而是使用多个容器共存的理念，这组容器就叫做",
      "top": 309.0,
      "left": 300.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0045",
      "page": 55,
      "ordinal": 45,
      "text": "pod",
      "top": 309.0,
      "left": 739.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0046",
      "page": 55,
      "ordinal": 46,
      "text": "。",
      "top": 309.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0047",
      "page": 55,
      "ordinal": 47,
      "text": "pod",
      "top": 332.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0048",
      "page": 55,
      "ordinal": 48,
      "text": "是",
      "top": 332.0,
      "left": 139.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0049",
      "page": 55,
      "ordinal": 49,
      "text": "k8s",
      "top": 332.0,
      "left": 153.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0050",
      "page": 55,
      "ordinal": 50,
      "text": "中可以创建和管理的最小单元，是资源对象模型中由用户创建或部署的最小资源对象模型，其",
      "top": 332.0,
      "left": 176.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0051",
      "page": 55,
      "ordinal": 51,
      "text": "他的资源对象都是用来支撑",
      "top": 355.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0052",
      "page": 55,
      "ordinal": 52,
      "text": "pod",
      "top": 355.0,
      "left": 287.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0053",
      "page": 55,
      "ordinal": 53,
      "text": "对象功能的，比如，",
      "top": 355.0,
      "left": 314.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0054",
      "page": 55,
      "ordinal": 54,
      "text": "pod",
      "top": 355.0,
      "left": 446.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0055",
      "page": 55,
      "ordinal": 55,
      "text": "控制器就是用来管理",
      "top": 355.0,
      "left": 472.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0056",
      "page": 55,
      "ordinal": 56,
      "text": "pod",
      "top": 355.0,
      "left": 604.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0057",
      "page": 55,
      "ordinal": 57,
      "text": "对象的，",
      "top": 355.0,
      "left": 631.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0058",
      "page": 55,
      "ordinal": 58,
      "text": "service",
      "top": 355.0,
      "left": 689.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0059",
      "page": 55,
      "ordinal": 59,
      "text": "或者",
      "top": 355.0,
      "left": 737.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0060",
      "page": 55,
      "ordinal": 60,
      "text": "imgress",
      "top": 379.0,
      "left": 112.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0061",
      "page": 55,
      "ordinal": 61,
      "text": "资源对象是用来暴露",
      "top": 379.0,
      "left": 165.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0062",
      "page": 55,
      "ordinal": 62,
      "text": "pod",
      "top": 379.0,
      "left": 297.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0063",
      "page": 55,
      "ordinal": 63,
      "text": "引用对象的，",
      "top": 379.0,
      "left": 324.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0064",
      "page": 55,
      "ordinal": 64,
      "text": "persistentvolume",
      "top": 379.0,
      "left": 411.0,
      "width": 119.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0065",
      "page": 55,
      "ordinal": 65,
      "text": "资源是用来为",
      "top": 379.0,
      "left": 530.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0066",
      "page": 55,
      "ordinal": 66,
      "text": "pod",
      "top": 379.0,
      "left": 618.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0067",
      "page": 55,
      "ordinal": 67,
      "text": "提供存储等等，简而",
      "top": 379.0,
      "left": 645.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0068",
      "page": 55,
      "ordinal": 68,
      "text": "言之，",
      "top": 402.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0069",
      "page": 55,
      "ordinal": 69,
      "text": "k8s",
      "top": 402.0,
      "left": 156.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0070",
      "page": 55,
      "ordinal": 70,
      "text": "不会直接处理容器，而是",
      "top": 402.0,
      "left": 179.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0071",
      "page": 55,
      "ordinal": 71,
      "text": "pod",
      "top": 402.0,
      "left": 340.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0072",
      "page": 55,
      "ordinal": 72,
      "text": "，",
      "top": 402.0,
      "left": 366.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0073",
      "page": 55,
      "ordinal": 73,
      "text": "pod",
      "top": 402.0,
      "left": 381.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0074",
      "page": 55,
      "ordinal": 74,
      "text": "才是",
      "top": 402.0,
      "left": 408.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0075",
      "page": 55,
      "ordinal": 75,
      "text": "k8s",
      "top": 402.0,
      "left": 437.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0076",
      "page": 55,
      "ordinal": 76,
      "text": "中可以创建和管理的最小单元，也是基本单元。",
      "top": 402.0,
      "left": 460.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h02",
        "heading_id": "p055-h02",
        "block_id": "q-p055-h02-b001"
      }
    },
    {
      "id": "p055-t0077",
      "page": 55,
      "ordinal": 77,
      "text": "pod",
      "top": 437.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03"
      }
    },
    {
      "id": "p055-t0078",
      "page": 55,
      "ordinal": 78,
      "text": "的原理是什么",
      "top": 437.0,
      "left": 160.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03"
      }
    },
    {
      "id": "p055-t0080",
      "page": 55,
      "ordinal": 80,
      "text": "在微服务的概念里，一般的，一个容器会被设计为运行一个进程，除非进程本身产生子进程，这样，由",
      "top": 487.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0081",
      "page": 55,
      "ordinal": 81,
      "text": "于不能将多个进程聚集在同一个单独的容器中，所以需要一种更高级的结构将容器绑定在一起，并将它",
      "top": 510.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0082",
      "page": 55,
      "ordinal": 82,
      "text": "们作为一个单元进行管理，这就是",
      "top": 534.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0083",
      "page": 55,
      "ordinal": 83,
      "text": "k8s",
      "top": 534.0,
      "left": 331.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0084",
      "page": 55,
      "ordinal": 84,
      "text": "中",
      "top": 534.0,
      "left": 354.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0085",
      "page": 55,
      "ordinal": 85,
      "text": "pod",
      "top": 534.0,
      "left": 369.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0086",
      "page": 55,
      "ordinal": 86,
      "text": "的背后原理。",
      "top": 534.0,
      "left": 396.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h03",
        "heading_id": "p055-h03",
        "block_id": "q-p055-h03-b001"
      }
    },
    {
      "id": "p055-t0087",
      "page": 55,
      "ordinal": 87,
      "text": "pod",
      "top": 569.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04"
      }
    },
    {
      "id": "p055-t0088",
      "page": 55,
      "ordinal": 88,
      "text": "有什么特点？",
      "top": 569.0,
      "left": 160.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04"
      }
    },
    {
      "id": "p055-t0090",
      "page": 55,
      "ordinal": 90,
      "text": "1",
      "top": 620.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0091",
      "page": 55,
      "ordinal": 91,
      "text": "、每个",
      "top": 620.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0092",
      "page": 55,
      "ordinal": 92,
      "text": "pod",
      "top": 620.0,
      "left": 164.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0093",
      "page": 55,
      "ordinal": 93,
      "text": "就像一个独立的逻辑机器，",
      "top": 620.0,
      "left": 191.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0094",
      "page": 55,
      "ordinal": 94,
      "text": "k8s",
      "top": 620.0,
      "left": 366.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0095",
      "page": 55,
      "ordinal": 95,
      "text": "会为每个",
      "top": 620.0,
      "left": 389.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0096",
      "page": 55,
      "ordinal": 96,
      "text": "pod",
      "top": 620.0,
      "left": 448.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0097",
      "page": 55,
      "ordinal": 97,
      "text": "分配一个集群内部唯一的",
      "top": 620.0,
      "left": 475.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0098",
      "page": 55,
      "ordinal": 98,
      "text": "IP",
      "top": 620.0,
      "left": 635.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0099",
      "page": 55,
      "ordinal": 99,
      "text": "地址，所以每个",
      "top": 620.0,
      "left": 648.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0100",
      "page": 55,
      "ordinal": 100,
      "text": "pod",
      "top": 620.0,
      "left": 751.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0101",
      "page": 55,
      "ordinal": 101,
      "text": "都拥有自己的",
      "top": 643.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0102",
      "page": 55,
      "ordinal": 102,
      "text": "IP",
      "top": 643.0,
      "left": 200.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0103",
      "page": 55,
      "ordinal": 103,
      "text": "地址、主机名、进程等；",
      "top": 643.0,
      "left": 212.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b001"
      }
    },
    {
      "id": "p055-t0104",
      "page": 55,
      "ordinal": 104,
      "text": "2",
      "top": 666.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0105",
      "page": 55,
      "ordinal": 105,
      "text": "、一个",
      "top": 666.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0106",
      "page": 55,
      "ordinal": 106,
      "text": "pod",
      "top": 666.0,
      "left": 164.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0107",
      "page": 55,
      "ordinal": 107,
      "text": "可以包含",
      "top": 666.0,
      "left": 191.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0108",
      "page": 55,
      "ordinal": 108,
      "text": "1",
      "top": 666.0,
      "left": 249.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0109",
      "page": 55,
      "ordinal": 109,
      "text": "个或多个容器，",
      "top": 666.0,
      "left": 258.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0110",
      "page": 55,
      "ordinal": 110,
      "text": "1",
      "top": 666.0,
      "left": 360.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0111",
      "page": 55,
      "ordinal": 111,
      "text": "个容器一般被设计成只运行",
      "top": 666.0,
      "left": 368.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0112",
      "page": 55,
      "ordinal": 112,
      "text": "1",
      "top": 666.0,
      "left": 544.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0113",
      "page": 55,
      "ordinal": 113,
      "text": "个进程，",
      "top": 666.0,
      "left": 552.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0114",
      "page": 55,
      "ordinal": 114,
      "text": "1",
      "top": 666.0,
      "left": 611.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0115",
      "page": 55,
      "ordinal": 115,
      "text": "个",
      "top": 666.0,
      "left": 619.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0116",
      "page": 55,
      "ordinal": 116,
      "text": "pod",
      "top": 666.0,
      "left": 634.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0117",
      "page": 55,
      "ordinal": 117,
      "text": "只可能运行在单个",
      "top": 666.0,
      "left": 660.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0118",
      "page": 55,
      "ordinal": 118,
      "text": "节点上，即不可能",
      "top": 689.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0119",
      "page": 55,
      "ordinal": 119,
      "text": "1",
      "top": 689.0,
      "left": 229.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0120",
      "page": 55,
      "ordinal": 120,
      "text": "个",
      "top": 689.0,
      "left": 237.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0121",
      "page": 55,
      "ordinal": 121,
      "text": "pod",
      "top": 689.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0122",
      "page": 55,
      "ordinal": 122,
      "text": "跨节点运行，",
      "top": 689.0,
      "left": 278.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0123",
      "page": 55,
      "ordinal": 123,
      "text": "pod",
      "top": 689.0,
      "left": 366.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0124",
      "page": 55,
      "ordinal": 124,
      "text": "的生命周期是短暂，也就是说",
      "top": 689.0,
      "left": 393.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0125",
      "page": 55,
      "ordinal": 125,
      "text": "pod",
      "top": 689.0,
      "left": 583.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0126",
      "page": 55,
      "ordinal": 126,
      "text": "可能随时被消亡（如节点",
      "top": 689.0,
      "left": 610.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0127",
      "page": 55,
      "ordinal": 127,
      "text": "异常，",
      "top": 713.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0128",
      "page": 55,
      "ordinal": 128,
      "text": "pod",
      "top": 713.0,
      "left": 156.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0129",
      "page": 55,
      "ordinal": 129,
      "text": "异常等情况）；",
      "top": 713.0,
      "left": 182.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b002"
      }
    },
    {
      "id": "p055-t0130",
      "page": 55,
      "ordinal": 130,
      "text": "2",
      "top": 737.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0131",
      "page": 55,
      "ordinal": 131,
      "text": "、每一个",
      "top": 737.0,
      "left": 120.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0132",
      "page": 55,
      "ordinal": 132,
      "text": "pod",
      "top": 737.0,
      "left": 179.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0133",
      "page": 55,
      "ordinal": 133,
      "text": "都有一个特殊的被称为",
      "top": 737.0,
      "left": 205.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0134",
      "page": 55,
      "ordinal": 134,
      "text": "\"",
      "top": 737.0,
      "left": 352.0,
      "width": 6.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0135",
      "page": 55,
      "ordinal": 135,
      "text": "根容器",
      "top": 737.0,
      "left": 357.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0136",
      "page": 55,
      "ordinal": 136,
      "text": "\"",
      "top": 737.0,
      "left": 401.0,
      "width": 6.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0137",
      "page": 55,
      "ordinal": 137,
      "text": "的",
      "top": 737.0,
      "left": 407.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0138",
      "page": 55,
      "ordinal": 138,
      "text": "pause",
      "top": 737.0,
      "left": 422.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0139",
      "page": 55,
      "ordinal": 139,
      "text": "容器，也称",
      "top": 737.0,
      "left": 463.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0140",
      "page": 55,
      "ordinal": 140,
      "text": "info",
      "top": 737.0,
      "left": 536.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0141",
      "page": 55,
      "ordinal": 141,
      "text": "容器，",
      "top": 737.0,
      "left": 563.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0142",
      "page": 55,
      "ordinal": 142,
      "text": "pause",
      "top": 737.0,
      "left": 607.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0143",
      "page": 55,
      "ordinal": 143,
      "text": "容器对应的镜像属于",
      "top": 737.0,
      "left": 648.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0144",
      "page": 55,
      "ordinal": 144,
      "text": "k8s",
      "top": 760.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0145",
      "page": 55,
      "ordinal": 145,
      "text": "平台的一部分，除了",
      "top": 760.0,
      "left": 135.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0146",
      "page": 55,
      "ordinal": 146,
      "text": "pause",
      "top": 760.0,
      "left": 266.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0147",
      "page": 55,
      "ordinal": 147,
      "text": "容器，每个",
      "top": 760.0,
      "left": 308.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0148",
      "page": 55,
      "ordinal": 148,
      "text": "pod",
      "top": 760.0,
      "left": 381.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0149",
      "page": 55,
      "ordinal": 149,
      "text": "还包含一个或多个跑业务相关组件的应用容器；",
      "top": 760.0,
      "left": 408.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b003"
      }
    },
    {
      "id": "p055-t0150",
      "page": 55,
      "ordinal": 150,
      "text": "3",
      "top": 783.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0151",
      "page": 55,
      "ordinal": 151,
      "text": "、一个",
      "top": 783.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0152",
      "page": 55,
      "ordinal": 152,
      "text": "pod",
      "top": 783.0,
      "left": 164.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0153",
      "page": 55,
      "ordinal": 153,
      "text": "中的容器共享",
      "top": 783.0,
      "left": 191.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0154",
      "page": 55,
      "ordinal": 154,
      "text": "network",
      "top": 783.0,
      "left": 278.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0155",
      "page": 55,
      "ordinal": 155,
      "text": "命名空间；",
      "top": 783.0,
      "left": 335.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b004"
      }
    },
    {
      "id": "p055-t0156",
      "page": 55,
      "ordinal": 156,
      "text": "4",
      "top": 806.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0157",
      "page": 55,
      "ordinal": 157,
      "text": "、一个",
      "top": 806.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0158",
      "page": 55,
      "ordinal": 158,
      "text": "pod",
      "top": 806.0,
      "left": 164.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0159",
      "page": 55,
      "ordinal": 159,
      "text": "里的多个容器共享",
      "top": 806.0,
      "left": 191.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0160",
      "page": 55,
      "ordinal": 160,
      "text": "pod IP",
      "top": 806.0,
      "left": 308.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0161",
      "page": 55,
      "ordinal": 161,
      "text": "，这就意味着",
      "top": 806.0,
      "left": 351.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0162",
      "page": 55,
      "ordinal": 162,
      "text": "1",
      "top": 806.0,
      "left": 439.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0163",
      "page": 55,
      "ordinal": 163,
      "text": "个",
      "top": 806.0,
      "left": 447.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0164",
      "page": 55,
      "ordinal": 164,
      "text": "pod",
      "top": 806.0,
      "left": 462.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0165",
      "page": 55,
      "ordinal": 165,
      "text": "里面的多个容器的进程所占用的端口不能相",
      "top": 806.0,
      "left": 489.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0166",
      "page": 55,
      "ordinal": 166,
      "text": "同，否则在这个",
      "top": 830.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0167",
      "page": 55,
      "ordinal": 167,
      "text": "pod",
      "top": 830.0,
      "left": 214.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0168",
      "page": 55,
      "ordinal": 168,
      "text": "里面就会产生端口冲突；既然每个",
      "top": 830.0,
      "left": 241.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0169",
      "page": 55,
      "ordinal": 169,
      "text": "pod",
      "top": 830.0,
      "left": 460.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0170",
      "page": 55,
      "ordinal": 170,
      "text": "都有自己的",
      "top": 830.0,
      "left": 487.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0171",
      "page": 55,
      "ordinal": 171,
      "text": "IP",
      "top": 830.0,
      "left": 560.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0172",
      "page": 55,
      "ordinal": 172,
      "text": "和端口空间，那么对不同的两个",
      "top": 830.0,
      "left": 573.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0173",
      "page": 55,
      "ordinal": 173,
      "text": "pod",
      "top": 854.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0174",
      "page": 55,
      "ordinal": 174,
      "text": "来说就不可能存在端口冲突；",
      "top": 854.0,
      "left": 139.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b005"
      }
    },
    {
      "id": "p055-t0175",
      "page": 55,
      "ordinal": 175,
      "text": "5",
      "top": 876.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0176",
      "page": 55,
      "ordinal": 176,
      "text": "、应该将应用程序组织到多个",
      "top": 876.0,
      "left": 120.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0177",
      "page": 55,
      "ordinal": 177,
      "text": "pod",
      "top": 876.0,
      "left": 310.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0178",
      "page": 55,
      "ordinal": 178,
      "text": "中，而每个",
      "top": 876.0,
      "left": 337.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0179",
      "page": 55,
      "ordinal": 179,
      "text": "pod",
      "top": 876.0,
      "left": 410.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0180",
      "page": 55,
      "ordinal": 180,
      "text": "只包含紧密相关的组件或进程；",
      "top": 876.0,
      "left": 437.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b006"
      }
    },
    {
      "id": "p055-t0181",
      "page": 55,
      "ordinal": 181,
      "text": "6",
      "top": 900.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0182",
      "page": 55,
      "ordinal": 182,
      "text": "、",
      "top": 900.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0183",
      "page": 55,
      "ordinal": 183,
      "text": "pod",
      "top": 900.0,
      "left": 135.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0184",
      "page": 55,
      "ordinal": 184,
      "text": "是",
      "top": 900.0,
      "left": 161.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0185",
      "page": 55,
      "ordinal": 185,
      "text": "k8s",
      "top": 900.0,
      "left": 176.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0186",
      "page": 55,
      "ordinal": 186,
      "text": "中扩容、缩容的基本单位，也就是说",
      "top": 900.0,
      "left": 199.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0187",
      "page": 55,
      "ordinal": 187,
      "text": "k8s",
      "top": 900.0,
      "left": 433.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0188",
      "page": 55,
      "ordinal": 188,
      "text": "中扩容缩容是针对",
      "top": 900.0,
      "left": 456.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0189",
      "page": 55,
      "ordinal": 189,
      "text": "pod",
      "top": 900.0,
      "left": 573.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0190",
      "page": 55,
      "ordinal": 190,
      "text": "而言而非容器。",
      "top": 900.0,
      "left": 600.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h04",
        "heading_id": "p055-h04",
        "block_id": "q-p055-h04-b007"
      }
    },
    {
      "id": "p055-t0191",
      "page": 55,
      "ordinal": 191,
      "text": "pause",
      "top": 934.0,
      "left": 112.0,
      "width": 76.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05"
      }
    },
    {
      "id": "p055-t0192",
      "page": 55,
      "ordinal": 192,
      "text": "容器作用是什么",
      "top": 934.0,
      "left": 188.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05"
      }
    },
    {
      "id": "p055-t0194",
      "page": 55,
      "ordinal": 194,
      "text": "每个",
      "top": 985.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0195",
      "page": 55,
      "ordinal": 195,
      "text": "pod",
      "top": 985.0,
      "left": 141.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0196",
      "page": 55,
      "ordinal": 196,
      "text": "里运行着一个特殊的被称之为",
      "top": 985.0,
      "left": 168.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0197",
      "page": 55,
      "ordinal": 197,
      "text": "pause",
      "top": 985.0,
      "left": 358.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0198",
      "page": 55,
      "ordinal": 198,
      "text": "的容器，也称根容器，而其他容器则称为业务容器；创建",
      "top": 985.0,
      "left": 399.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0199",
      "page": 55,
      "ordinal": 199,
      "text": "pause",
      "top": 1009.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0200",
      "page": 55,
      "ordinal": 200,
      "text": "容器主要是为了为业务容器提供",
      "top": 1009.0,
      "left": 153.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0201",
      "page": 55,
      "ordinal": 201,
      "text": " Linux",
      "top": 1009.0,
      "left": 358.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0202",
      "page": 55,
      "ordinal": 202,
      "text": "命名空间，共享基础：包括",
      "top": 1009.0,
      "left": 398.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0203",
      "page": 55,
      "ordinal": 203,
      "text": " pid",
      "top": 1009.0,
      "left": 574.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0204",
      "page": 55,
      "ordinal": 204,
      "text": "、",
      "top": 1009.0,
      "left": 599.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0205",
      "page": 55,
      "ordinal": 205,
      "text": "icp",
      "top": 1009.0,
      "left": 614.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0206",
      "page": 55,
      "ordinal": 206,
      "text": "、",
      "top": 1009.0,
      "left": 634.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0207",
      "page": 55,
      "ordinal": 207,
      "text": "net ",
      "top": 1009.0,
      "left": 648.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0208",
      "page": 55,
      "ordinal": 208,
      "text": "等，以及启动",
      "top": 1009.0,
      "left": 674.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0210",
      "page": 55,
      "ordinal": 210,
      "text": "init ",
      "top": 1032.0,
      "left": 112.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0211",
      "page": 55,
      "ordinal": 211,
      "text": "进程，并收割僵尸进程；这些业务容器共享",
      "top": 1032.0,
      "left": 137.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0212",
      "page": 55,
      "ordinal": 212,
      "text": "pause",
      "top": 1032.0,
      "left": 415.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0213",
      "page": 55,
      "ordinal": 213,
      "text": "容器的网络命名空间和",
      "top": 1032.0,
      "left": 456.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0214",
      "page": 55,
      "ordinal": 214,
      "text": "volume",
      "top": 1032.0,
      "left": 602.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0215",
      "page": 55,
      "ordinal": 215,
      "text": "挂载卷，当",
      "top": 1032.0,
      "left": 653.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0216",
      "page": 55,
      "ordinal": 216,
      "text": "pod",
      "top": 1032.0,
      "left": 726.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0217",
      "page": 55,
      "ordinal": 217,
      "text": "被创",
      "top": 1032.0,
      "left": 753.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0218",
      "page": 55,
      "ordinal": 218,
      "text": "建时，",
      "top": 1055.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0219",
      "page": 55,
      "ordinal": 219,
      "text": "pod",
      "top": 1055.0,
      "left": 156.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0220",
      "page": 55,
      "ordinal": 220,
      "text": "首先会创建",
      "top": 1055.0,
      "left": 182.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0221",
      "page": 55,
      "ordinal": 221,
      "text": "pause",
      "top": 1055.0,
      "left": 256.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0222",
      "page": 55,
      "ordinal": 222,
      "text": "容器，从而把其他业务容器加入",
      "top": 1055.0,
      "left": 297.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0223",
      "page": 55,
      "ordinal": 223,
      "text": "pause",
      "top": 1055.0,
      "left": 502.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0224",
      "page": 55,
      "ordinal": 224,
      "text": "容器，从而让所有业务容器都在同一",
      "top": 1055.0,
      "left": 543.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0225",
      "page": 55,
      "ordinal": 225,
      "text": "个命名空间中，这样可以就可以实现网络共享。",
      "top": 1079.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0226",
      "page": 55,
      "ordinal": 226,
      "text": "pod",
      "top": 1079.0,
      "left": 419.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0227",
      "page": 55,
      "ordinal": 227,
      "text": "还可以共享存储，在",
      "top": 1079.0,
      "left": 446.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0228",
      "page": 55,
      "ordinal": 228,
      "text": "pod",
      "top": 1079.0,
      "left": 577.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0229",
      "page": 55,
      "ordinal": 229,
      "text": "级别引入数据卷",
      "top": 1079.0,
      "left": 604.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0230",
      "page": 55,
      "ordinal": 230,
      "text": "volume",
      "top": 1079.0,
      "left": 706.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0231",
      "page": 55,
      "ordinal": 231,
      "text": "，",
      "top": 1079.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p055-t0232",
      "page": 55,
      "ordinal": 232,
      "text": "业务容器都可以挂载这个数据卷从而实现持久化存储",
      "top": 1102.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p055-h05",
        "heading_id": "p055-h05",
        "block_id": "q-p055-h05-b001"
      }
    },
    {
      "id": "p056-t0001",
      "page": 56,
      "ordinal": 1,
      "text": "pod",
      "top": 40.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01"
      }
    },
    {
      "id": "p056-t0002",
      "page": 56,
      "ordinal": 2,
      "text": "的重启策略有哪些",
      "top": 40.0,
      "left": 160.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01"
      }
    },
    {
      "id": "p056-t0004",
      "page": 56,
      "ordinal": 4,
      "text": "pod",
      "top": 91.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0005",
      "page": 56,
      "ordinal": 5,
      "text": "重启容器策略是指针对",
      "top": 91.0,
      "left": 139.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0006",
      "page": 56,
      "ordinal": 6,
      "text": "pod",
      "top": 91.0,
      "left": 285.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0007",
      "page": 56,
      "ordinal": 7,
      "text": "内所有容器的重启策略，不是重启",
      "top": 91.0,
      "left": 312.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0008",
      "page": 56,
      "ordinal": 8,
      "text": "pod",
      "top": 91.0,
      "left": 531.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0009",
      "page": 56,
      "ordinal": 9,
      "text": "，其可以通过",
      "top": 91.0,
      "left": 558.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0010",
      "page": 56,
      "ordinal": 10,
      "text": "restartPolicy",
      "top": 91.0,
      "left": 645.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0011",
      "page": 56,
      "ordinal": 11,
      "text": "字段配",
      "top": 91.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0012",
      "page": 56,
      "ordinal": 12,
      "text": "置",
      "top": 114.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0013",
      "page": 56,
      "ordinal": 13,
      "text": "pod",
      "top": 114.0,
      "left": 126.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0014",
      "page": 56,
      "ordinal": 14,
      "text": "重启容器的策略，如下",
      "top": 114.0,
      "left": 153.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0015",
      "page": 56,
      "ordinal": 15,
      "text": ":",
      "top": 114.0,
      "left": 299.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0016",
      "page": 56,
      "ordinal": 16,
      "text": "Always: ",
      "top": 137.0,
      "left": 112.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0017",
      "page": 56,
      "ordinal": 17,
      "text": "当容器终止退出后，总是重启容器，默认策略就是",
      "top": 137.0,
      "left": 166.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0018",
      "page": 56,
      "ordinal": 18,
      "text": "Always",
      "top": 137.0,
      "left": 488.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0019",
      "page": 56,
      "ordinal": 19,
      "text": "。",
      "top": 137.0,
      "left": 535.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0020",
      "page": 56,
      "ordinal": 20,
      "text": "OnFailure: ",
      "top": 161.0,
      "left": 112.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0021",
      "page": 56,
      "ordinal": 21,
      "text": "当容器异常退出，退出状态码非",
      "top": 161.0,
      "left": 186.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0022",
      "page": 56,
      "ordinal": 22,
      "text": "0",
      "top": 161.0,
      "left": 391.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0023",
      "page": 56,
      "ordinal": 23,
      "text": "时，才重启容器。",
      "top": 161.0,
      "left": 399.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0024",
      "page": 56,
      "ordinal": 24,
      "text": "Never: ",
      "top": 184.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0025",
      "page": 56,
      "ordinal": 25,
      "text": "当容器终止退出，不管退出状态码是什么，从不重启容器。",
      "top": 184.0,
      "left": 160.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h01",
        "heading_id": "p056-h01",
        "block_id": "q-p056-h01-b001"
      }
    },
    {
      "id": "p056-t0026",
      "page": 56,
      "ordinal": 26,
      "text": "pod",
      "top": 219.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02"
      }
    },
    {
      "id": "p056-t0027",
      "page": 56,
      "ordinal": 27,
      "text": "的镜像拉取策略有哪几种",
      "top": 219.0,
      "left": 160.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02"
      }
    },
    {
      "id": "p056-t0029",
      "page": 56,
      "ordinal": 29,
      "text": "pod",
      "top": 270.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0030",
      "page": 56,
      "ordinal": 30,
      "text": "镜像拉取策略可以通过",
      "top": 270.0,
      "left": 139.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0031",
      "page": 56,
      "ordinal": 31,
      "text": "imagePullPolicy",
      "top": 270.0,
      "left": 285.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0032",
      "page": 56,
      "ordinal": 32,
      "text": "字段配置镜像拉取策略，主要有",
      "top": 270.0,
      "left": 391.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0033",
      "page": 56,
      "ordinal": 33,
      "text": "3",
      "top": 270.0,
      "left": 596.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0034",
      "page": 56,
      "ordinal": 34,
      "text": "中镜像拉取策略，如下：",
      "top": 270.0,
      "left": 604.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0035",
      "page": 56,
      "ordinal": 35,
      "text": "IfNotPresent: ",
      "top": 293.0,
      "left": 112.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0036",
      "page": 56,
      "ordinal": 36,
      "text": "默认值，镜像在",
      "top": 293.0,
      "left": 206.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0037",
      "page": 56,
      "ordinal": 37,
      "text": "node",
      "top": 293.0,
      "left": 308.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0038",
      "page": 56,
      "ordinal": 38,
      "text": "节点宿主机上不存在时才拉取。",
      "top": 293.0,
      "left": 343.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0039",
      "page": 56,
      "ordinal": 39,
      "text": "Always: ",
      "top": 316.0,
      "left": 112.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0040",
      "page": 56,
      "ordinal": 40,
      "text": "总是重新拉取，即每次创建",
      "top": 316.0,
      "left": 166.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0041",
      "page": 56,
      "ordinal": 41,
      "text": "pod",
      "top": 316.0,
      "left": 342.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0042",
      "page": 56,
      "ordinal": 42,
      "text": "都会重新从镜像仓库拉取一次镜像。",
      "top": 316.0,
      "left": 369.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0043",
      "page": 56,
      "ordinal": 43,
      "text": "Never: ",
      "top": 339.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0044",
      "page": 56,
      "ordinal": 44,
      "text": "永远不会主动拉取镜像，仅使用本地镜像，需要你手动拉取镜像到",
      "top": 339.0,
      "left": 160.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0045",
      "page": 56,
      "ordinal": 45,
      "text": "node",
      "top": 339.0,
      "left": 584.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0046",
      "page": 56,
      "ordinal": 46,
      "text": "节点，如果",
      "top": 339.0,
      "left": 619.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0047",
      "page": 56,
      "ordinal": 47,
      "text": "node",
      "top": 339.0,
      "left": 692.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0048",
      "page": 56,
      "ordinal": 48,
      "text": "节点不",
      "top": 339.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0049",
      "page": 56,
      "ordinal": 49,
      "text": "存在镜像则",
      "top": 363.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0050",
      "page": 56,
      "ordinal": 50,
      "text": "pod",
      "top": 363.0,
      "left": 185.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0051",
      "page": 56,
      "ordinal": 51,
      "text": "启动失败。",
      "top": 363.0,
      "left": 212.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h02",
        "heading_id": "p056-h02",
        "block_id": "q-p056-h02-b001"
      }
    },
    {
      "id": "p056-t0052",
      "page": 56,
      "ordinal": 52,
      "text": "pod",
      "top": 398.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03"
      }
    },
    {
      "id": "p056-t0053",
      "page": 56,
      "ordinal": 53,
      "text": "的存活探针有哪几种？",
      "top": 398.0,
      "left": 160.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03"
      }
    },
    {
      "id": "p056-t0055",
      "page": 56,
      "ordinal": 55,
      "text": "kubernetes",
      "top": 449.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0056",
      "page": 56,
      "ordinal": 56,
      "text": "可以通过存活探针检查容器是否还在运行，可以为",
      "top": 449.0,
      "left": 189.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0057",
      "page": 56,
      "ordinal": 57,
      "text": "pod",
      "top": 449.0,
      "left": 511.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0058",
      "page": 56,
      "ordinal": 58,
      "text": "中的每个容器单独定义存活探针，",
      "top": 449.0,
      "left": 538.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0059",
      "page": 56,
      "ordinal": 59,
      "text": "kubernetes",
      "top": 471.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0060",
      "page": 56,
      "ordinal": 60,
      "text": "将定期执行探针，如果探测失败，将杀死容器，并根据",
      "top": 471.0,
      "left": 189.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0061",
      "page": 56,
      "ordinal": 61,
      "text": "restartPolicy",
      "top": 471.0,
      "left": 540.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0062",
      "page": 56,
      "ordinal": 62,
      "text": "策略来决定是否重启容",
      "top": 471.0,
      "left": 625.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0063",
      "page": 56,
      "ordinal": 63,
      "text": "器，",
      "top": 495.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0064",
      "page": 56,
      "ordinal": 64,
      "text": "kubernetes",
      "top": 495.0,
      "left": 141.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0065",
      "page": 56,
      "ordinal": 65,
      "text": "提供了",
      "top": 495.0,
      "left": 218.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0066",
      "page": 56,
      "ordinal": 66,
      "text": "3",
      "top": 495.0,
      "left": 262.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0067",
      "page": 56,
      "ordinal": 67,
      "text": "种探测容器的存活探针，如下：",
      "top": 495.0,
      "left": 271.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0068",
      "page": 56,
      "ordinal": 68,
      "text": "httpGet",
      "top": 518.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0069",
      "page": 56,
      "ordinal": 69,
      "text": "：通过容器的",
      "top": 518.0,
      "left": 164.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0070",
      "page": 56,
      "ordinal": 70,
      "text": "IP",
      "top": 518.0,
      "left": 252.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0071",
      "page": 56,
      "ordinal": 71,
      "text": "、端口、路径发送",
      "top": 518.0,
      "left": 265.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0072",
      "page": 56,
      "ordinal": 72,
      "text": "http ",
      "top": 518.0,
      "left": 382.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0073",
      "page": 56,
      "ordinal": 73,
      "text": "请求，返回",
      "top": 518.0,
      "left": 414.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0074",
      "page": 56,
      "ordinal": 74,
      "text": "200-400",
      "top": 518.0,
      "left": 487.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0075",
      "page": 56,
      "ordinal": 75,
      "text": "范围内的状态码表示成功。",
      "top": 518.0,
      "left": 542.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0076",
      "page": 56,
      "ordinal": 76,
      "text": "exec",
      "top": 542.0,
      "left": 112.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0077",
      "page": 56,
      "ordinal": 77,
      "text": "：在容器内执行",
      "top": 542.0,
      "left": 143.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0078",
      "page": 56,
      "ordinal": 78,
      "text": "shell",
      "top": 542.0,
      "left": 245.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0079",
      "page": 56,
      "ordinal": 79,
      "text": "命令，根据命令退出状态码是否为",
      "top": 542.0,
      "left": 277.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0080",
      "page": 56,
      "ordinal": 80,
      "text": "0",
      "top": 542.0,
      "left": 496.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0081",
      "page": 56,
      "ordinal": 81,
      "text": "进行判断，",
      "top": 542.0,
      "left": 504.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0082",
      "page": 56,
      "ordinal": 82,
      "text": "0",
      "top": 542.0,
      "left": 578.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0083",
      "page": 56,
      "ordinal": 83,
      "text": "表示健康，非",
      "top": 542.0,
      "left": 586.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0084",
      "page": 56,
      "ordinal": 84,
      "text": "0",
      "top": 542.0,
      "left": 674.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0085",
      "page": 56,
      "ordinal": 85,
      "text": "表示不健康。",
      "top": 542.0,
      "left": 682.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0086",
      "page": 56,
      "ordinal": 86,
      "text": "TCPSocket",
      "top": 566.0,
      "left": 112.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0087",
      "page": 56,
      "ordinal": 87,
      "text": "：与容器的",
      "top": 566.0,
      "left": 183.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0088",
      "page": 56,
      "ordinal": 88,
      "text": "IP",
      "top": 566.0,
      "left": 256.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0089",
      "page": 56,
      "ordinal": 89,
      "text": "、端口建立",
      "top": 566.0,
      "left": 269.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0090",
      "page": 56,
      "ordinal": 90,
      "text": "TCP Socket",
      "top": 566.0,
      "left": 342.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0091",
      "page": 56,
      "ordinal": 91,
      "text": "链接，能建立则说明探测成功，不能建立则说明探测失",
      "top": 566.0,
      "left": 417.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0092",
      "page": 56,
      "ordinal": 92,
      "text": "败。",
      "top": 588.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0093",
      "page": 56,
      "ordinal": 93,
      "text": "grpc: ",
      "top": 612.0,
      "left": 112.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0094",
      "page": 56,
      "ordinal": 94,
      "text": "通过容器的",
      "top": 612.0,
      "left": 149.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0095",
      "page": 56,
      "ordinal": 95,
      "text": "IP",
      "top": 612.0,
      "left": 222.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0096",
      "page": 56,
      "ordinal": 96,
      "text": "、容器的端口向服务发送",
      "top": 612.0,
      "left": 235.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0097",
      "page": 56,
      "ordinal": 97,
      "text": "gRPC",
      "top": 612.0,
      "left": 396.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0098",
      "page": 56,
      "ordinal": 98,
      "text": "请求，返回",
      "top": 612.0,
      "left": 431.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0099",
      "page": 56,
      "ordinal": 99,
      "text": "serving",
      "top": 612.0,
      "left": 504.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0100",
      "page": 56,
      "ordinal": 100,
      "text": "则表示成功",
      "top": 612.0,
      "left": 554.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h03",
        "heading_id": "p056-h03",
        "block_id": "q-p056-h03-b001"
      }
    },
    {
      "id": "p056-t0101",
      "page": 56,
      "ordinal": 101,
      "text": "存活探针的属性参数有哪几个？",
      "top": 646.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04"
      }
    },
    {
      "id": "p056-t0103",
      "page": 56,
      "ordinal": 103,
      "text": "initialDelaySeconds",
      "top": 697.0,
      "left": 112.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0104",
      "page": 56,
      "ordinal": 104,
      "text": "：表示在容器启动后延时多久秒才开始探测；",
      "top": 697.0,
      "left": 244.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0105",
      "page": 56,
      "ordinal": 105,
      "text": "periodSeconds",
      "top": 721.0,
      "left": 112.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0106",
      "page": 56,
      "ordinal": 106,
      "text": "：表示执行探测的频率，即间隔多少秒探测一次，默认间隔周期是",
      "top": 721.0,
      "left": 213.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0107",
      "page": 56,
      "ordinal": 107,
      "text": "10",
      "top": 721.0,
      "left": 637.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0108",
      "page": 56,
      "ordinal": 108,
      "text": "秒，最小",
      "top": 721.0,
      "left": 654.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0109",
      "page": 56,
      "ordinal": 109,
      "text": "1",
      "top": 721.0,
      "left": 713.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0110",
      "page": 56,
      "ordinal": 110,
      "text": "秒；",
      "top": 721.0,
      "left": 721.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0111",
      "page": 56,
      "ordinal": 111,
      "text": "timeoutSeconds",
      "top": 743.0,
      "left": 112.0,
      "width": 111.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0112",
      "page": 56,
      "ordinal": 112,
      "text": "：表示探测超时时间，默认",
      "top": 743.0,
      "left": 222.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0113",
      "page": 56,
      "ordinal": 113,
      "text": "1",
      "top": 743.0,
      "left": 398.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0114",
      "page": 56,
      "ordinal": 114,
      "text": "秒，最小",
      "top": 743.0,
      "left": 406.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0115",
      "page": 56,
      "ordinal": 115,
      "text": "1",
      "top": 743.0,
      "left": 465.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0116",
      "page": 56,
      "ordinal": 116,
      "text": "秒，表示容器必须在超时时间范围内做出响应，",
      "top": 743.0,
      "left": 473.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0117",
      "page": 56,
      "ordinal": 117,
      "text": "否则视为本次探测失败；",
      "top": 767.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0118",
      "page": 56,
      "ordinal": 118,
      "text": "successThreshold",
      "top": 791.0,
      "left": 112.0,
      "width": 121.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0119",
      "page": 56,
      "ordinal": 119,
      "text": "：表示最少连续探测成功多少次才被认定为成功，默认是",
      "top": 791.0,
      "left": 232.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0120",
      "page": 56,
      "ordinal": 120,
      "text": "1",
      "top": 791.0,
      "left": 598.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0121",
      "page": 56,
      "ordinal": 121,
      "text": "，对于",
      "top": 791.0,
      "left": 606.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0122",
      "page": 56,
      "ordinal": 122,
      "text": "liveness",
      "top": 791.0,
      "left": 650.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0123",
      "page": 56,
      "ordinal": 123,
      "text": "必须是",
      "top": 791.0,
      "left": 704.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0124",
      "page": 56,
      "ordinal": 124,
      "text": "1",
      "top": 791.0,
      "left": 748.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0125",
      "page": 56,
      "ordinal": 125,
      "text": "，",
      "top": 791.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0126",
      "page": 56,
      "ordinal": 126,
      "text": "最小值是",
      "top": 814.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0127",
      "page": 56,
      "ordinal": 127,
      "text": "1",
      "top": 814.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0128",
      "page": 56,
      "ordinal": 128,
      "text": "；",
      "top": 814.0,
      "left": 179.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0129",
      "page": 56,
      "ordinal": 129,
      "text": "failureThreshold",
      "top": 838.0,
      "left": 112.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0130",
      "page": 56,
      "ordinal": 130,
      "text": "：表示连续探测失败多少次才被认定为失败，默认是",
      "top": 838.0,
      "left": 224.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0131",
      "page": 56,
      "ordinal": 131,
      "text": "3",
      "top": 838.0,
      "left": 560.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0132",
      "page": 56,
      "ordinal": 132,
      "text": "，连续",
      "top": 838.0,
      "left": 569.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0133",
      "page": 56,
      "ordinal": 133,
      "text": "3",
      "top": 838.0,
      "left": 613.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0134",
      "page": 56,
      "ordinal": 134,
      "text": "次失败，",
      "top": 838.0,
      "left": 621.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0135",
      "page": 56,
      "ordinal": 135,
      "text": "k8s ",
      "top": 838.0,
      "left": 680.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0136",
      "page": 56,
      "ordinal": 136,
      "text": "将根据",
      "top": 838.0,
      "left": 706.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0137",
      "page": 56,
      "ordinal": 137,
      "text": "pod",
      "top": 838.0,
      "left": 750.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0138",
      "page": 56,
      "ordinal": 138,
      "text": "重启策略对容器做出决定；",
      "top": 860.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b001"
      }
    },
    {
      "id": "p056-t0139",
      "page": 56,
      "ordinal": 139,
      "text": "注意：定义存活探针时，一定要设置",
      "top": 896.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0140",
      "page": 56,
      "ordinal": 140,
      "text": "initialDelaySeconds",
      "top": 896.0,
      "left": 346.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0141",
      "page": 56,
      "ordinal": 141,
      "text": "属性，该属性为初始延时，如果不设置，默认",
      "top": 896.0,
      "left": 478.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0142",
      "page": 56,
      "ordinal": 142,
      "text": "容器启动时探针就开始探测了，这样可能会存在",
      "top": 919.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0143",
      "page": 56,
      "ordinal": 143,
      "text": "应用程序还未启动就绪，就会导致探针检测失败，",
      "top": 942.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0144",
      "page": 56,
      "ordinal": 144,
      "text": "k8s",
      "top": 942.0,
      "left": 434.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0145",
      "page": 56,
      "ordinal": 145,
      "text": "就会根据",
      "top": 942.0,
      "left": 457.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0146",
      "page": 56,
      "ordinal": 146,
      "text": "pod",
      "top": 942.0,
      "left": 515.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0147",
      "page": 56,
      "ordinal": 147,
      "text": "重启策略杀掉容器然后再重新创建容",
      "top": 942.0,
      "left": 542.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0148",
      "page": 56,
      "ordinal": 148,
      "text": "器的莫名其妙的问题。",
      "top": 966.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0149",
      "page": 56,
      "ordinal": 149,
      "text": "在生产环境中，一定要定义一个存活探针。",
      "top": 990.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h04",
        "heading_id": "p056-h04",
        "block_id": "q-p056-h04-b002"
      }
    },
    {
      "id": "p056-t0150",
      "page": 56,
      "ordinal": 150,
      "text": "pod",
      "top": 1024.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05"
      }
    },
    {
      "id": "p056-t0151",
      "page": 56,
      "ordinal": 151,
      "text": "的就绪探针有哪几种？",
      "top": 1024.0,
      "left": 160.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05"
      }
    },
    {
      "id": "p056-t0153",
      "page": 56,
      "ordinal": 153,
      "text": "我们知道，当一个",
      "top": 1074.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0154",
      "page": 56,
      "ordinal": 154,
      "text": "pod",
      "top": 1074.0,
      "left": 229.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0155",
      "page": 56,
      "ordinal": 155,
      "text": "启动后，就会立即加入",
      "top": 1074.0,
      "left": 256.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0156",
      "page": 56,
      "ordinal": 156,
      "text": "service",
      "top": 1074.0,
      "left": 402.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0157",
      "page": 56,
      "ordinal": 157,
      "text": "的",
      "top": 1074.0,
      "left": 449.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0158",
      "page": 56,
      "ordinal": 158,
      "text": "endpoint ip",
      "top": 1074.0,
      "left": 464.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0159",
      "page": 56,
      "ordinal": 159,
      "text": "列表中，并开始接收到客户端的链接",
      "top": 1074.0,
      "left": 542.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0160",
      "page": 56,
      "ordinal": 160,
      "text": "请求，假若此时",
      "top": 1098.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0161",
      "page": 56,
      "ordinal": 161,
      "text": "pod",
      "top": 1098.0,
      "left": 214.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0162",
      "page": 56,
      "ordinal": 162,
      "text": "中的容器的业务进程还没有初始化完毕，那么这些客户端链接请求就会失败，为了解",
      "top": 1098.0,
      "left": 241.0,
      "width": 541.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0163",
      "page": 56,
      "ordinal": 163,
      "text": "决这个问题，",
      "top": 1121.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0164",
      "page": 56,
      "ordinal": 164,
      "text": "kubernetes",
      "top": 1121.0,
      "left": 200.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0165",
      "page": 56,
      "ordinal": 165,
      "text": "提供了就绪探针来解决这个问题的。",
      "top": 1121.0,
      "left": 277.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0166",
      "page": 56,
      "ordinal": 166,
      "text": "在",
      "top": 1145.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0167",
      "page": 56,
      "ordinal": 167,
      "text": "pod",
      "top": 1145.0,
      "left": 126.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0168",
      "page": 56,
      "ordinal": 168,
      "text": "中的容器定义一个就绪探针，就绪探针周期性检查容器，如果就绪探针检查失败了，说明该",
      "top": 1145.0,
      "left": 153.0,
      "width": 585.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0169",
      "page": 56,
      "ordinal": 169,
      "text": "pod",
      "top": 1145.0,
      "left": 738.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0170",
      "page": 56,
      "ordinal": 170,
      "text": "还",
      "top": 1145.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0171",
      "page": 56,
      "ordinal": 171,
      "text": "未准备就绪，不能接受客户端链接，则该",
      "top": 1169.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0172",
      "page": 56,
      "ordinal": 172,
      "text": "pod",
      "top": 1169.0,
      "left": 375.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0173",
      "page": 56,
      "ordinal": 173,
      "text": "将从",
      "top": 1169.0,
      "left": 402.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0174",
      "page": 56,
      "ordinal": 174,
      "text": "endpoint",
      "top": 1169.0,
      "left": 431.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0175",
      "page": 56,
      "ordinal": 175,
      "text": "列表中移除，被剔除了",
      "top": 1169.0,
      "left": 493.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0176",
      "page": 56,
      "ordinal": 176,
      "text": "service",
      "top": 1169.0,
      "left": 639.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0177",
      "page": 56,
      "ordinal": 177,
      "text": "就不会把请求",
      "top": 1169.0,
      "left": 686.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0178",
      "page": 56,
      "ordinal": 178,
      "text": "分发给该",
      "top": 1191.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0179",
      "page": 56,
      "ordinal": 179,
      "text": "pod",
      "top": 1191.0,
      "left": 170.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0180",
      "page": 56,
      "ordinal": 180,
      "text": "，然后就绪探针继续检查，如果随后容器就绪，则再重新把",
      "top": 1191.0,
      "left": 197.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0181",
      "page": 56,
      "ordinal": 181,
      "text": "pod",
      "top": 1191.0,
      "left": 577.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0182",
      "page": 56,
      "ordinal": 182,
      "text": "加回",
      "top": 1191.0,
      "left": 604.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0183",
      "page": 56,
      "ordinal": 183,
      "text": "endpoint",
      "top": 1191.0,
      "left": 633.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0184",
      "page": 56,
      "ordinal": 184,
      "text": "列表。",
      "top": 1191.0,
      "left": 695.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0185",
      "page": 56,
      "ordinal": 185,
      "text": "k8s",
      "top": 1191.0,
      "left": 739.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p056-t0186",
      "page": 56,
      "ordinal": 186,
      "text": "提",
      "top": 1191.0,
      "left": 762.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0001",
      "page": 57,
      "ordinal": 1,
      "text": "供了",
      "top": 44.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0002",
      "page": 57,
      "ordinal": 2,
      "text": "3",
      "top": 44.0,
      "left": 141.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0003",
      "page": 57,
      "ordinal": 3,
      "text": "种就绪探针，如下：",
      "top": 44.0,
      "left": 149.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0004",
      "page": 57,
      "ordinal": 4,
      "text": "httpGet",
      "top": 67.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0005",
      "page": 57,
      "ordinal": 5,
      "text": "：通过容器的",
      "top": 67.0,
      "left": 164.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0006",
      "page": 57,
      "ordinal": 6,
      "text": "IP",
      "top": 67.0,
      "left": 252.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0007",
      "page": 57,
      "ordinal": 7,
      "text": "、容器的端口以及路径来发送",
      "top": 67.0,
      "left": 265.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0008",
      "page": 57,
      "ordinal": 8,
      "text": "http get",
      "top": 67.0,
      "left": 455.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0009",
      "page": 57,
      "ordinal": 9,
      "text": "请求，返回",
      "top": 67.0,
      "left": 508.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0010",
      "page": 57,
      "ordinal": 10,
      "text": "200-400",
      "top": 67.0,
      "left": 581.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0011",
      "page": 57,
      "ordinal": 11,
      "text": "范围内的状态码表示",
      "top": 67.0,
      "left": 636.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0012",
      "page": 57,
      "ordinal": 12,
      "text": "请求成功。",
      "top": 91.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0013",
      "page": 57,
      "ordinal": 13,
      "text": "exec",
      "top": 113.0,
      "left": 112.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0014",
      "page": 57,
      "ordinal": 14,
      "text": "：在容器内执行",
      "top": 113.0,
      "left": 143.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0015",
      "page": 57,
      "ordinal": 15,
      "text": "shell",
      "top": 113.0,
      "left": 245.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0016",
      "page": 57,
      "ordinal": 16,
      "text": "命令，它根据",
      "top": 113.0,
      "left": 277.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0017",
      "page": 57,
      "ordinal": 17,
      "text": "shell",
      "top": 113.0,
      "left": 364.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0018",
      "page": 57,
      "ordinal": 18,
      "text": "命令退出状态码是否为",
      "top": 113.0,
      "left": 396.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0019",
      "page": 57,
      "ordinal": 19,
      "text": "0",
      "top": 113.0,
      "left": 542.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0020",
      "page": 57,
      "ordinal": 20,
      "text": "进行判断，",
      "top": 113.0,
      "left": 551.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0021",
      "page": 57,
      "ordinal": 21,
      "text": "0",
      "top": 113.0,
      "left": 624.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0022",
      "page": 57,
      "ordinal": 22,
      "text": "表示健康，非",
      "top": 113.0,
      "left": 632.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0023",
      "page": 57,
      "ordinal": 23,
      "text": "0",
      "top": 113.0,
      "left": 720.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0024",
      "page": 57,
      "ordinal": 24,
      "text": "表示不",
      "top": 113.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0025",
      "page": 57,
      "ordinal": 25,
      "text": "健康。",
      "top": 137.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0026",
      "page": 57,
      "ordinal": 26,
      "text": "TCPSocket",
      "top": 161.0,
      "left": 112.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0027",
      "page": 57,
      "ordinal": 27,
      "text": "：通过容器的",
      "top": 161.0,
      "left": 183.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0028",
      "page": 57,
      "ordinal": 28,
      "text": "IP",
      "top": 161.0,
      "left": 270.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0029",
      "page": 57,
      "ordinal": 29,
      "text": "、端口建立",
      "top": 161.0,
      "left": 283.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0030",
      "page": 57,
      "ordinal": 30,
      "text": "TCP Socket",
      "top": 161.0,
      "left": 356.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0031",
      "page": 57,
      "ordinal": 31,
      "text": "链接，能正常建立链接，则说明探针成功，不能正常",
      "top": 161.0,
      "left": 431.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0032",
      "page": 57,
      "ordinal": 32,
      "text": "建立链接，则探针失败。",
      "top": 184.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0033",
      "page": 57,
      "ordinal": 33,
      "text": "grpc: ",
      "top": 208.0,
      "left": 112.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0034",
      "page": 57,
      "ordinal": 34,
      "text": "通过容器的",
      "top": 208.0,
      "left": 149.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0035",
      "page": 57,
      "ordinal": 35,
      "text": "IP",
      "top": 208.0,
      "left": 222.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0036",
      "page": 57,
      "ordinal": 36,
      "text": "、容器的端口向服务发送",
      "top": 208.0,
      "left": 235.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0037",
      "page": 57,
      "ordinal": 37,
      "text": "gRPC",
      "top": 208.0,
      "left": 396.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0038",
      "page": 57,
      "ordinal": 38,
      "text": "请求，返回",
      "top": 208.0,
      "left": 431.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0039",
      "page": 57,
      "ordinal": 39,
      "text": "serving",
      "top": 208.0,
      "left": 504.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0040",
      "page": 57,
      "ordinal": 40,
      "text": "则表示成功",
      "top": 208.0,
      "left": 554.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p056-h05",
        "heading_id": "p056-h05",
        "block_id": "q-p056-h05-b001"
      }
    },
    {
      "id": "p057-t0041",
      "page": 57,
      "ordinal": 41,
      "text": "就绪探针的属性参数有哪些",
      "top": 241.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01"
      }
    },
    {
      "id": "p057-t0043",
      "page": 57,
      "ordinal": 43,
      "text": "initialDelaySeconds",
      "top": 292.0,
      "left": 112.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0044",
      "page": 57,
      "ordinal": 44,
      "text": "：延时秒数，即容器启动多少秒后才开始探测，不写默认容器启动就探测；",
      "top": 292.0,
      "left": 244.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0045",
      "page": 57,
      "ordinal": 45,
      "text": "periodSeconds ",
      "top": 316.0,
      "left": 112.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0046",
      "page": 57,
      "ordinal": 46,
      "text": "：执行探测的频率（秒），默认为",
      "top": 316.0,
      "left": 217.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0047",
      "page": 57,
      "ordinal": 47,
      "text": "10",
      "top": 316.0,
      "left": 436.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0048",
      "page": 57,
      "ordinal": 48,
      "text": "秒，最低值为",
      "top": 316.0,
      "left": 453.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0049",
      "page": 57,
      "ordinal": 49,
      "text": "1",
      "top": 316.0,
      "left": 541.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0050",
      "page": 57,
      "ordinal": 50,
      "text": "；",
      "top": 316.0,
      "left": 549.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0051",
      "page": 57,
      "ordinal": 51,
      "text": "timeoutSeconds ",
      "top": 339.0,
      "left": 112.0,
      "width": 114.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0052",
      "page": 57,
      "ordinal": 52,
      "text": "：超时时间，表示探测时在超时时间内必须得到响应，负责视为本次探测失败，默认为",
      "top": 339.0,
      "left": 226.0,
      "width": 556.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0053",
      "page": 57,
      "ordinal": 53,
      "text": "1",
      "top": 363.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0054",
      "page": 57,
      "ordinal": 54,
      "text": "秒，最小值为",
      "top": 363.0,
      "left": 120.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0055",
      "page": 57,
      "ordinal": 55,
      "text": "1",
      "top": 363.0,
      "left": 208.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0056",
      "page": 57,
      "ordinal": 56,
      "text": "；",
      "top": 363.0,
      "left": 216.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0057",
      "page": 57,
      "ordinal": 57,
      "text": "failureThreshold ",
      "top": 386.0,
      "left": 112.0,
      "width": 116.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0058",
      "page": 57,
      "ordinal": 58,
      "text": "：连续探测失败的次数，视为本次探测失败，默认为",
      "top": 386.0,
      "left": 228.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0059",
      "page": 57,
      "ordinal": 59,
      "text": "3",
      "top": 386.0,
      "left": 564.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0060",
      "page": 57,
      "ordinal": 60,
      "text": "次，最小值为",
      "top": 386.0,
      "left": 573.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0061",
      "page": 57,
      "ordinal": 61,
      "text": "1",
      "top": 386.0,
      "left": 660.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0062",
      "page": 57,
      "ordinal": 62,
      "text": "次；",
      "top": 386.0,
      "left": 669.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0063",
      "page": 57,
      "ordinal": 63,
      "text": "successThreshold ",
      "top": 409.0,
      "left": 112.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0064",
      "page": 57,
      "ordinal": 64,
      "text": "：连续探测成功的次数，视为本次探测成功，默认为",
      "top": 409.0,
      "left": 236.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0065",
      "page": 57,
      "ordinal": 65,
      "text": "1",
      "top": 409.0,
      "left": 573.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0066",
      "page": 57,
      "ordinal": 66,
      "text": "次，最小值为",
      "top": 409.0,
      "left": 581.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0067",
      "page": 57,
      "ordinal": 67,
      "text": "1",
      "top": 409.0,
      "left": 669.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0068",
      "page": 57,
      "ordinal": 68,
      "text": "次；",
      "top": 409.0,
      "left": 677.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h01",
        "heading_id": "p057-h01",
        "block_id": "q-p057-h01-b001"
      }
    },
    {
      "id": "p057-t0069",
      "page": 57,
      "ordinal": 69,
      "text": "就绪探针与存活探针区别是什么",
      "top": 444.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02"
      }
    },
    {
      "id": "p057-t0071",
      "page": 57,
      "ordinal": 71,
      "text": "两者作用不一样，存活探针是将检查失败的容器杀死，创建新的启动容器来保持",
      "top": 495.0,
      "left": 112.0,
      "width": 512.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0072",
      "page": 57,
      "ordinal": 72,
      "text": "pod",
      "top": 495.0,
      "left": 624.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0073",
      "page": 57,
      "ordinal": 73,
      "text": "正常工作；",
      "top": 495.0,
      "left": 650.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0074",
      "page": 57,
      "ordinal": 74,
      "text": "就绪探针是，当就绪探针检查失败，并不重启容器，而是将",
      "top": 518.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0075",
      "page": 57,
      "ordinal": 75,
      "text": "pod",
      "top": 518.0,
      "left": 492.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0076",
      "page": 57,
      "ordinal": 76,
      "text": "移出",
      "top": 518.0,
      "left": 519.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0077",
      "page": 57,
      "ordinal": 77,
      "text": "endpoint",
      "top": 518.0,
      "left": 548.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0078",
      "page": 57,
      "ordinal": 78,
      "text": "，就绪探针确保了",
      "top": 518.0,
      "left": 610.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0079",
      "page": 57,
      "ordinal": 79,
      "text": "service",
      "top": 518.0,
      "left": 727.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0080",
      "page": 57,
      "ordinal": 80,
      "text": "中的",
      "top": 541.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0081",
      "page": 57,
      "ordinal": 81,
      "text": "pod",
      "top": 541.0,
      "left": 141.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0082",
      "page": 57,
      "ordinal": 82,
      "text": "都是可用的，确保客户端只与正常的",
      "top": 541.0,
      "left": 168.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0083",
      "page": 57,
      "ordinal": 83,
      "text": "pod",
      "top": 541.0,
      "left": 402.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0084",
      "page": 57,
      "ordinal": 84,
      "text": "交互并且客户端永远不会知道系统存在问题",
      "top": 541.0,
      "left": 429.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h02",
        "heading_id": "p057-h02",
        "block_id": "q-p057-h02-b001"
      }
    },
    {
      "id": "p057-t0085",
      "page": 57,
      "ordinal": 85,
      "text": "简单讲一下",
      "top": 575.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03"
      }
    },
    {
      "id": "p057-t0086",
      "page": 57,
      "ordinal": 86,
      "text": " pod",
      "top": 575.0,
      "left": 240.0,
      "width": 55.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03"
      }
    },
    {
      "id": "p057-t0087",
      "page": 57,
      "ordinal": 87,
      "text": "创建过程",
      "top": 575.0,
      "left": 295.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03"
      }
    },
    {
      "id": "p057-t0089",
      "page": 57,
      "ordinal": 89,
      "text": "情况一、如果面试官问的是使用",
      "top": 626.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0090",
      "page": 57,
      "ordinal": 90,
      "text": "kubectl run",
      "top": 626.0,
      "left": 317.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0091",
      "page": 57,
      "ordinal": 91,
      "text": "命令创建的",
      "top": 626.0,
      "left": 394.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0092",
      "page": 57,
      "ordinal": 92,
      "text": "pod",
      "top": 626.0,
      "left": 467.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0093",
      "page": 57,
      "ordinal": 93,
      "text": "，可以这样说：",
      "top": 626.0,
      "left": 494.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0094",
      "page": 57,
      "ordinal": 94,
      "text": "#",
      "top": 650.0,
      "left": 112.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0095",
      "page": 57,
      "ordinal": 95,
      "text": "注意：",
      "top": 650.0,
      "left": 121.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0096",
      "page": 57,
      "ordinal": 96,
      "text": "kubectl run ",
      "top": 650.0,
      "left": 165.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0097",
      "page": 57,
      "ordinal": 97,
      "text": "在旧版本中创建的是",
      "top": 650.0,
      "left": 246.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0098",
      "page": 57,
      "ordinal": 98,
      "text": "deployment",
      "top": 650.0,
      "left": 378.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0099",
      "page": 57,
      "ordinal": 99,
      "text": "，但在新的版本中创建的是",
      "top": 650.0,
      "left": 460.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0100",
      "page": 57,
      "ordinal": 100,
      "text": "pod",
      "top": 650.0,
      "left": 635.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0101",
      "page": 57,
      "ordinal": 101,
      "text": "则其创建过程不涉",
      "top": 650.0,
      "left": 662.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0102",
      "page": 57,
      "ordinal": 102,
      "text": "及",
      "top": 674.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0103",
      "page": 57,
      "ordinal": 103,
      "text": "deployment",
      "top": 674.0,
      "left": 126.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0104",
      "page": 57,
      "ordinal": 104,
      "text": "如果是单独的创建一个",
      "top": 697.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0105",
      "page": 57,
      "ordinal": 105,
      "text": "pod",
      "top": 697.0,
      "left": 258.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0106",
      "page": 57,
      "ordinal": 106,
      "text": "，则其创建过程是这样的：",
      "top": 697.0,
      "left": 285.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b001"
      }
    },
    {
      "id": "p057-t0107",
      "page": 57,
      "ordinal": 107,
      "text": "1",
      "top": 720.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0108",
      "page": 57,
      "ordinal": 108,
      "text": "、首先，用户通过",
      "top": 720.0,
      "left": 120.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0109",
      "page": 57,
      "ordinal": 109,
      "text": "kubectl",
      "top": 720.0,
      "left": 237.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0110",
      "page": 57,
      "ordinal": 110,
      "text": "或其他",
      "top": 720.0,
      "left": 287.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0111",
      "page": 57,
      "ordinal": 111,
      "text": "api",
      "top": 720.0,
      "left": 331.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0112",
      "page": 57,
      "ordinal": 112,
      "text": "客户端工具提交需要创建的",
      "top": 720.0,
      "left": 351.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0113",
      "page": 57,
      "ordinal": 113,
      "text": "pod",
      "top": 720.0,
      "left": 527.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0114",
      "page": 57,
      "ordinal": 114,
      "text": "信息给",
      "top": 720.0,
      "left": 554.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0115",
      "page": 57,
      "ordinal": 115,
      "text": "apiserver",
      "top": 720.0,
      "left": 598.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0116",
      "page": 57,
      "ordinal": 116,
      "text": "；",
      "top": 720.0,
      "left": 661.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b002"
      }
    },
    {
      "id": "p057-t0117",
      "page": 57,
      "ordinal": 117,
      "text": "2",
      "top": 743.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0118",
      "page": 57,
      "ordinal": 118,
      "text": "、",
      "top": 743.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0119",
      "page": 57,
      "ordinal": 119,
      "text": "apiserver",
      "top": 743.0,
      "left": 135.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0120",
      "page": 57,
      "ordinal": 120,
      "text": "验证客户端的用户权限信息，验证通过开始处理创建请求生成",
      "top": 743.0,
      "left": 198.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0121",
      "page": 57,
      "ordinal": 121,
      "text": "pod",
      "top": 743.0,
      "left": 593.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0122",
      "page": 57,
      "ordinal": 122,
      "text": "对象信息，并将信息存入",
      "top": 743.0,
      "left": 620.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0123",
      "page": 57,
      "ordinal": 123,
      "text": "etcd",
      "top": 767.0,
      "left": 112.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0124",
      "page": 57,
      "ordinal": 124,
      "text": "，然后返回确认信息给客户端；",
      "top": 767.0,
      "left": 141.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b003"
      }
    },
    {
      "id": "p057-t0125",
      "page": 57,
      "ordinal": 125,
      "text": "3",
      "top": 791.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0126",
      "page": 57,
      "ordinal": 126,
      "text": "、",
      "top": 791.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0127",
      "page": 57,
      "ordinal": 127,
      "text": "apiserver",
      "top": 791.0,
      "left": 135.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0128",
      "page": 57,
      "ordinal": 128,
      "text": "开始反馈",
      "top": 791.0,
      "left": 198.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0129",
      "page": 57,
      "ordinal": 129,
      "text": "etcd",
      "top": 791.0,
      "left": 257.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0130",
      "page": 57,
      "ordinal": 130,
      "text": "中",
      "top": 791.0,
      "left": 286.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0131",
      "page": 57,
      "ordinal": 131,
      "text": "pod",
      "top": 791.0,
      "left": 301.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0132",
      "page": 57,
      "ordinal": 132,
      "text": "对象的变化，其他组件使用",
      "top": 791.0,
      "left": 327.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0133",
      "page": 57,
      "ordinal": 133,
      "text": "watch",
      "top": 791.0,
      "left": 503.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0134",
      "page": 57,
      "ordinal": 134,
      "text": "机制跟踪",
      "top": 791.0,
      "left": 543.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0135",
      "page": 57,
      "ordinal": 135,
      "text": "apiserver",
      "top": 791.0,
      "left": 602.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0136",
      "page": 57,
      "ordinal": 136,
      "text": "上的变动；",
      "top": 791.0,
      "left": 665.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b004"
      }
    },
    {
      "id": "p057-t0137",
      "page": 57,
      "ordinal": 137,
      "text": "4",
      "top": 814.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0138",
      "page": 57,
      "ordinal": 138,
      "text": "、",
      "top": 814.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0139",
      "page": 57,
      "ordinal": 139,
      "text": "scheduler",
      "top": 814.0,
      "left": 135.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0140",
      "page": 57,
      "ordinal": 140,
      "text": "发现有新的",
      "top": 814.0,
      "left": 202.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0141",
      "page": 57,
      "ordinal": 141,
      "text": "pod",
      "top": 814.0,
      "left": 275.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0142",
      "page": 57,
      "ordinal": 142,
      "text": "对象要创建，开始调用内部算法机制为",
      "top": 814.0,
      "left": 302.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0143",
      "page": 57,
      "ordinal": 143,
      "text": "pod",
      "top": 814.0,
      "left": 550.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0144",
      "page": 57,
      "ordinal": 144,
      "text": "分配最佳的主机，并将结果信息",
      "top": 814.0,
      "left": 577.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0145",
      "page": 57,
      "ordinal": 145,
      "text": "更新至",
      "top": 837.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0146",
      "page": 57,
      "ordinal": 146,
      "text": "apiserver",
      "top": 837.0,
      "left": 156.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0147",
      "page": 57,
      "ordinal": 147,
      "text": "；",
      "top": 837.0,
      "left": 219.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b005"
      }
    },
    {
      "id": "p057-t0148",
      "page": 57,
      "ordinal": 148,
      "text": "5",
      "top": 860.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0149",
      "page": 57,
      "ordinal": 149,
      "text": "、",
      "top": 860.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0150",
      "page": 57,
      "ordinal": 150,
      "text": "node",
      "top": 860.0,
      "left": 135.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0151",
      "page": 57,
      "ordinal": 151,
      "text": "节点上的",
      "top": 860.0,
      "left": 170.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0152",
      "page": 57,
      "ordinal": 152,
      "text": "kubelet",
      "top": 860.0,
      "left": 228.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0153",
      "page": 57,
      "ordinal": 153,
      "text": "通过",
      "top": 860.0,
      "left": 279.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0154",
      "page": 57,
      "ordinal": 154,
      "text": "watch",
      "top": 860.0,
      "left": 308.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0155",
      "page": 57,
      "ordinal": 155,
      "text": "机制跟踪",
      "top": 860.0,
      "left": 349.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0156",
      "page": 57,
      "ordinal": 156,
      "text": "apiserver",
      "top": 860.0,
      "left": 407.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0157",
      "page": 57,
      "ordinal": 157,
      "text": "发现有",
      "top": 860.0,
      "left": 471.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0158",
      "page": 57,
      "ordinal": 158,
      "text": "pod",
      "top": 860.0,
      "left": 515.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0159",
      "page": 57,
      "ordinal": 159,
      "text": "调度到本节点，尝试调用",
      "top": 860.0,
      "left": 542.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0160",
      "page": 57,
      "ordinal": 160,
      "text": "docker",
      "top": 860.0,
      "left": 702.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0161",
      "page": 57,
      "ordinal": 161,
      "text": "启动",
      "top": 860.0,
      "left": 749.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0162",
      "page": 57,
      "ordinal": 162,
      "text": "容器，并将结果反馈",
      "top": 884.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0163",
      "page": 57,
      "ordinal": 163,
      "text": "apiserver",
      "top": 884.0,
      "left": 243.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0164",
      "page": 57,
      "ordinal": 164,
      "text": "；",
      "top": 884.0,
      "left": 307.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b006"
      }
    },
    {
      "id": "p057-t0165",
      "page": 57,
      "ordinal": 165,
      "text": "6",
      "top": 908.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0166",
      "page": 57,
      "ordinal": 166,
      "text": "、",
      "top": 908.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0167",
      "page": 57,
      "ordinal": 167,
      "text": "apiserver",
      "top": 908.0,
      "left": 135.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0168",
      "page": 57,
      "ordinal": 168,
      "text": "将收到的",
      "top": 908.0,
      "left": 198.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0169",
      "page": 57,
      "ordinal": 169,
      "text": "pod",
      "top": 908.0,
      "left": 257.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0170",
      "page": 57,
      "ordinal": 170,
      "text": "状态信息存入",
      "top": 908.0,
      "left": 283.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0171",
      "page": 57,
      "ordinal": 171,
      "text": "etcd",
      "top": 908.0,
      "left": 371.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0172",
      "page": 57,
      "ordinal": 172,
      "text": "中。",
      "top": 908.0,
      "left": 400.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0173",
      "page": 57,
      "ordinal": 173,
      "text": "至此，整个",
      "top": 930.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0174",
      "page": 57,
      "ordinal": 174,
      "text": "pod",
      "top": 930.0,
      "left": 185.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0175",
      "page": 57,
      "ordinal": 175,
      "text": "创建完毕。",
      "top": 930.0,
      "left": 212.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b007"
      }
    },
    {
      "id": "p057-t0176",
      "page": 57,
      "ordinal": 176,
      "text": "情况二、如果面试官说的是使用",
      "top": 966.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b008"
      }
    },
    {
      "id": "p057-t0177",
      "page": 57,
      "ordinal": 177,
      "text": "deployment",
      "top": 966.0,
      "left": 317.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b008"
      }
    },
    {
      "id": "p057-t0178",
      "page": 57,
      "ordinal": 178,
      "text": "来创建",
      "top": 966.0,
      "left": 398.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b008"
      }
    },
    {
      "id": "p057-t0179",
      "page": 57,
      "ordinal": 179,
      "text": "pod",
      "top": 966.0,
      "left": 442.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b008"
      }
    },
    {
      "id": "p057-t0180",
      "page": 57,
      "ordinal": 180,
      "text": "，则可以这样回答：",
      "top": 966.0,
      "left": 469.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b008"
      }
    },
    {
      "id": "p057-t0181",
      "page": 57,
      "ordinal": 181,
      "text": "1",
      "top": 989.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0182",
      "page": 57,
      "ordinal": 182,
      "text": "、首先，用户使用",
      "top": 989.0,
      "left": 120.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0183",
      "page": 57,
      "ordinal": 183,
      "text": "kubectl create",
      "top": 989.0,
      "left": 237.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0184",
      "page": 57,
      "ordinal": 184,
      "text": "命令或者",
      "top": 989.0,
      "left": 333.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0185",
      "page": 57,
      "ordinal": 185,
      "text": "kubectl apply",
      "top": 989.0,
      "left": 392.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0186",
      "page": 57,
      "ordinal": 186,
      "text": "命令提交了要创建一个",
      "top": 989.0,
      "left": 482.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0187",
      "page": 57,
      "ordinal": 187,
      "text": "deployment",
      "top": 989.0,
      "left": 629.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0188",
      "page": 57,
      "ordinal": 188,
      "text": "资源请",
      "top": 989.0,
      "left": 710.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0189",
      "page": 57,
      "ordinal": 189,
      "text": "求；",
      "top": 1012.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b009"
      }
    },
    {
      "id": "p057-t0190",
      "page": 57,
      "ordinal": 190,
      "text": "2",
      "top": 1036.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0191",
      "page": 57,
      "ordinal": 191,
      "text": "、",
      "top": 1036.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0192",
      "page": 57,
      "ordinal": 192,
      "text": "api-server",
      "top": 1036.0,
      "left": 135.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0193",
      "page": 57,
      "ordinal": 193,
      "text": "收到创建资源的请求后，会对客户端操作进行身份认证，在客户端的",
      "top": 1036.0,
      "left": 203.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0194",
      "page": 57,
      "ordinal": 194,
      "text": "~/.kube",
      "top": 1036.0,
      "left": 642.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0195",
      "page": 57,
      "ordinal": 195,
      "text": "文件夹下，已",
      "top": 1036.0,
      "left": 693.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0196",
      "page": 57,
      "ordinal": 196,
      "text": "经设置好了相关的用户认证信息，这样",
      "top": 1059.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0197",
      "page": 57,
      "ordinal": 197,
      "text": "api-server",
      "top": 1059.0,
      "left": 360.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0198",
      "page": 57,
      "ordinal": 198,
      "text": "会知道我是哪个用户，并对此用户进行鉴权，当",
      "top": 1059.0,
      "left": 429.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0199",
      "page": 57,
      "ordinal": 199,
      "text": "api-",
      "top": 1059.0,
      "left": 736.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0200",
      "page": 57,
      "ordinal": 200,
      "text": "server",
      "top": 1083.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0201",
      "page": 57,
      "ordinal": 201,
      "text": "确定客户端的请求合法后，就会接受本次操作，并把相关的信息保存到",
      "top": 1083.0,
      "left": 154.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0202",
      "page": 57,
      "ordinal": 202,
      "text": "etcd",
      "top": 1083.0,
      "left": 608.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0203",
      "page": 57,
      "ordinal": 203,
      "text": "中，然后返回确认信",
      "top": 1083.0,
      "left": 637.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0204",
      "page": 57,
      "ordinal": 204,
      "text": "息给客户端。",
      "top": 1106.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b010"
      }
    },
    {
      "id": "p057-t0205",
      "page": 57,
      "ordinal": 205,
      "text": "3",
      "top": 1129.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0206",
      "page": 57,
      "ordinal": 206,
      "text": "、",
      "top": 1129.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0207",
      "page": 57,
      "ordinal": 207,
      "text": "apiserver",
      "top": 1129.0,
      "left": 135.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0208",
      "page": 57,
      "ordinal": 208,
      "text": "开始反馈",
      "top": 1129.0,
      "left": 198.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0209",
      "page": 57,
      "ordinal": 209,
      "text": "etcd",
      "top": 1129.0,
      "left": 257.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0210",
      "page": 57,
      "ordinal": 210,
      "text": "中过程创建的对象的变化，其他组件使用",
      "top": 1129.0,
      "left": 286.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0211",
      "page": 57,
      "ordinal": 211,
      "text": "watch",
      "top": 1129.0,
      "left": 549.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0212",
      "page": 57,
      "ordinal": 212,
      "text": "机制跟踪",
      "top": 1129.0,
      "left": 590.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0213",
      "page": 57,
      "ordinal": 213,
      "text": "apiserver",
      "top": 1129.0,
      "left": 648.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0214",
      "page": 57,
      "ordinal": 214,
      "text": "上的变",
      "top": 1129.0,
      "left": 712.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0215",
      "page": 57,
      "ordinal": 215,
      "text": "动。",
      "top": 1153.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b011"
      }
    },
    {
      "id": "p057-t0216",
      "page": 57,
      "ordinal": 216,
      "text": "4",
      "top": 1176.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0217",
      "page": 57,
      "ordinal": 217,
      "text": "、",
      "top": 1176.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0218",
      "page": 57,
      "ordinal": 218,
      "text": "controller-manager",
      "top": 1176.0,
      "left": 135.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0219",
      "page": 57,
      "ordinal": 219,
      "text": "组件会监听",
      "top": 1176.0,
      "left": 267.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0220",
      "page": 57,
      "ordinal": 220,
      "text": "api-server",
      "top": 1176.0,
      "left": 340.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0221",
      "page": 57,
      "ordinal": 221,
      "text": "的信息，",
      "top": 1176.0,
      "left": 408.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0222",
      "page": 57,
      "ordinal": 222,
      "text": "controller-manager",
      "top": 1176.0,
      "left": 467.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0223",
      "page": 57,
      "ordinal": 223,
      "text": "是有多个类型的，比如",
      "top": 1176.0,
      "left": 599.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0224",
      "page": 57,
      "ordinal": 224,
      "text": "Deployment Controller, ",
      "top": 1200.0,
      "left": 112.0,
      "width": 163.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0225",
      "page": 57,
      "ordinal": 225,
      "text": "它的作用就是负责监听",
      "top": 1200.0,
      "left": 275.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0226",
      "page": 57,
      "ordinal": 226,
      "text": "Deployment",
      "top": 1200.0,
      "left": 421.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0227",
      "page": 57,
      "ordinal": 227,
      "text": "，此时",
      "top": 1200.0,
      "left": 505.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0228",
      "page": 57,
      "ordinal": 228,
      "text": "Deployment Controller",
      "top": 1200.0,
      "left": 549.0,
      "width": 156.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p057-t0229",
      "page": 57,
      "ordinal": 229,
      "text": "发现有新的",
      "top": 1200.0,
      "left": 705.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0001",
      "page": 58,
      "ordinal": 1,
      "text": "deployment",
      "top": 44.0,
      "left": 112.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0002",
      "page": 58,
      "ordinal": 2,
      "text": "要创建，那么它就会去创建一个",
      "top": 44.0,
      "left": 194.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0003",
      "page": 58,
      "ordinal": 3,
      "text": "ReplicaSet",
      "top": 44.0,
      "left": 398.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0004",
      "page": 58,
      "ordinal": 4,
      "text": "，一个",
      "top": 44.0,
      "left": 469.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0005",
      "page": 58,
      "ordinal": 5,
      "text": "ReplicaSet",
      "top": 44.0,
      "left": 512.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0006",
      "page": 58,
      "ordinal": 6,
      "text": "的产生，又被另一个叫做",
      "top": 44.0,
      "left": 583.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0007",
      "page": 58,
      "ordinal": 7,
      "text": "ReplicaSet Controller",
      "top": 67.0,
      "left": 112.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0008",
      "page": 58,
      "ordinal": 8,
      "text": "监听到了，紧接着它就会去分析",
      "top": 67.0,
      "left": 254.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0009",
      "page": 58,
      "ordinal": 9,
      "text": "ReplicaSet",
      "top": 67.0,
      "left": 459.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0010",
      "page": 58,
      "ordinal": 10,
      "text": "的语义，它了解到是要依照",
      "top": 67.0,
      "left": 529.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0011",
      "page": 58,
      "ordinal": 11,
      "text": "ReplicaSet",
      "top": 67.0,
      "left": 705.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0012",
      "page": 58,
      "ordinal": 12,
      "text": "的",
      "top": 91.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0013",
      "page": 58,
      "ordinal": 13,
      "text": "template",
      "top": 91.0,
      "left": 126.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0014",
      "page": 58,
      "ordinal": 14,
      "text": "去创建",
      "top": 91.0,
      "left": 188.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0015",
      "page": 58,
      "ordinal": 15,
      "text": "Pod, ",
      "top": 91.0,
      "left": 231.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0016",
      "page": 58,
      "ordinal": 16,
      "text": "它一看这个",
      "top": 91.0,
      "left": 265.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0017",
      "page": 58,
      "ordinal": 17,
      "text": "Pod",
      "top": 91.0,
      "left": 338.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0018",
      "page": 58,
      "ordinal": 18,
      "text": "并不存在，那么就新建此",
      "top": 91.0,
      "left": 365.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0019",
      "page": 58,
      "ordinal": 19,
      "text": "Pod",
      "top": 91.0,
      "left": 526.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0020",
      "page": 58,
      "ordinal": 20,
      "text": "，当",
      "top": 91.0,
      "left": 553.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0021",
      "page": 58,
      "ordinal": 21,
      "text": "Pod",
      "top": 91.0,
      "left": 582.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0022",
      "page": 58,
      "ordinal": 22,
      "text": "刚被创建时，它的",
      "top": 91.0,
      "left": 608.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0023",
      "page": 58,
      "ordinal": 23,
      "text": "nodeName",
      "top": 113.0,
      "left": 112.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0024",
      "page": 58,
      "ordinal": 24,
      "text": "属性值为空，代表着此",
      "top": 113.0,
      "left": 188.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0025",
      "page": 58,
      "ordinal": 25,
      "text": "Pod",
      "top": 113.0,
      "left": 334.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0026",
      "page": 58,
      "ordinal": 26,
      "text": "未被调度。",
      "top": 113.0,
      "left": 361.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b012"
      }
    },
    {
      "id": "p058-t0027",
      "page": 58,
      "ordinal": 27,
      "text": "5",
      "top": 137.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0028",
      "page": 58,
      "ordinal": 28,
      "text": "、调度器",
      "top": 137.0,
      "left": 120.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0029",
      "page": 58,
      "ordinal": 29,
      "text": "Scheduler",
      "top": 137.0,
      "left": 179.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0030",
      "page": 58,
      "ordinal": 30,
      "text": "组件开始介入工作，",
      "top": 137.0,
      "left": 247.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0031",
      "page": 58,
      "ordinal": 31,
      "text": "Scheduler",
      "top": 137.0,
      "left": 378.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0032",
      "page": 58,
      "ordinal": 32,
      "text": "也是通过",
      "top": 137.0,
      "left": 446.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0033",
      "page": 58,
      "ordinal": 33,
      "text": "watch",
      "top": 137.0,
      "left": 505.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0034",
      "page": 58,
      "ordinal": 34,
      "text": "机制跟踪",
      "top": 137.0,
      "left": 545.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0035",
      "page": 58,
      "ordinal": 35,
      "text": "apiserver",
      "top": 137.0,
      "left": 604.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0036",
      "page": 58,
      "ordinal": 36,
      "text": "上的变动，发现",
      "top": 137.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0037",
      "page": 58,
      "ordinal": 37,
      "text": "有未调度的",
      "top": 161.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0038",
      "page": 58,
      "ordinal": 38,
      "text": "Pod",
      "top": 161.0,
      "left": 185.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0039",
      "page": 58,
      "ordinal": 39,
      "text": "，则根据内部算法、节点资源情况，",
      "top": 161.0,
      "left": 211.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0040",
      "page": 58,
      "ordinal": 40,
      "text": "pod",
      "top": 161.0,
      "left": 445.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0041",
      "page": 58,
      "ordinal": 41,
      "text": "定义的亲和性反亲和性等等，调度器会综合的选",
      "top": 161.0,
      "left": 472.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0042",
      "page": 58,
      "ordinal": 42,
      "text": "出一批候选节点，在候选节点中选择一个最优的节点，然后将",
      "top": 184.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0043",
      "page": 58,
      "ordinal": 43,
      "text": "pod",
      "top": 184.0,
      "left": 507.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0044",
      "page": 58,
      "ordinal": 44,
      "text": "绑定该该节点，将信息反馈给",
      "top": 184.0,
      "left": 533.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0045",
      "page": 58,
      "ordinal": 45,
      "text": "api-",
      "top": 184.0,
      "left": 724.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0046",
      "page": 58,
      "ordinal": 46,
      "text": "server",
      "top": 208.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0047",
      "page": 58,
      "ordinal": 47,
      "text": "。",
      "top": 208.0,
      "left": 154.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b013"
      }
    },
    {
      "id": "p058-t0048",
      "page": 58,
      "ordinal": 48,
      "text": "6",
      "top": 230.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0049",
      "page": 58,
      "ordinal": 49,
      "text": "、",
      "top": 230.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0050",
      "page": 58,
      "ordinal": 50,
      "text": "kubelet",
      "top": 230.0,
      "left": 135.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0051",
      "page": 58,
      "ordinal": 51,
      "text": "组件布署于",
      "top": 230.0,
      "left": 186.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0052",
      "page": 58,
      "ordinal": 52,
      "text": "Node",
      "top": 230.0,
      "left": 259.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0053",
      "page": 58,
      "ordinal": 53,
      "text": "之上，它也是通过",
      "top": 230.0,
      "left": 296.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0054",
      "page": 58,
      "ordinal": 54,
      "text": "watch",
      "top": 230.0,
      "left": 413.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0055",
      "page": 58,
      "ordinal": 55,
      "text": "机制跟踪",
      "top": 230.0,
      "left": 453.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0056",
      "page": 58,
      "ordinal": 56,
      "text": "apiserver",
      "top": 230.0,
      "left": 512.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0057",
      "page": 58,
      "ordinal": 57,
      "text": "上的变动，监听到有一个",
      "top": 230.0,
      "left": 575.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0058",
      "page": 58,
      "ordinal": 58,
      "text": "Pod",
      "top": 230.0,
      "left": 736.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0059",
      "page": 58,
      "ordinal": 59,
      "text": "应",
      "top": 230.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0060",
      "page": 58,
      "ordinal": 60,
      "text": "该要被调度到自身所在",
      "top": 254.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0061",
      "page": 58,
      "ordinal": 61,
      "text": "Node",
      "top": 254.0,
      "left": 258.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0062",
      "page": 58,
      "ordinal": 62,
      "text": "上来，",
      "top": 254.0,
      "left": 295.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0063",
      "page": 58,
      "ordinal": 63,
      "text": "kubelet",
      "top": 254.0,
      "left": 339.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0064",
      "page": 58,
      "ordinal": 64,
      "text": "首先判断本地是否在此",
      "top": 254.0,
      "left": 390.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0065",
      "page": 58,
      "ordinal": 65,
      "text": "Pod",
      "top": 254.0,
      "left": 536.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0066",
      "page": 58,
      "ordinal": 66,
      "text": "，如果不存在，则会进入创建",
      "top": 254.0,
      "left": 563.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0067",
      "page": 58,
      "ordinal": 67,
      "text": "Pod",
      "top": 254.0,
      "left": 753.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0068",
      "page": 58,
      "ordinal": 68,
      "text": "流程，创建",
      "top": 278.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0069",
      "page": 58,
      "ordinal": 69,
      "text": "Pod",
      "top": 278.0,
      "left": 185.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0070",
      "page": 58,
      "ordinal": 70,
      "text": "有分为几种情况，第一种是容器不需要挂载外部存储，则相当于直接",
      "top": 278.0,
      "left": 211.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0071",
      "page": 58,
      "ordinal": 71,
      "text": "docker run",
      "top": 278.0,
      "left": 650.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0072",
      "page": 58,
      "ordinal": 72,
      "text": "把容器",
      "top": 278.0,
      "left": 725.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0073",
      "page": 58,
      "ordinal": 73,
      "text": "启动，但不会直接挂载",
      "top": 301.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0074",
      "page": 58,
      "ordinal": 74,
      "text": "docker",
      "top": 301.0,
      "left": 258.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0075",
      "page": 58,
      "ordinal": 75,
      "text": "网络，而是通过",
      "top": 301.0,
      "left": 305.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0076",
      "page": 58,
      "ordinal": 76,
      "text": "CNI",
      "top": 301.0,
      "left": 407.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0077",
      "page": 58,
      "ordinal": 77,
      "text": "调用网络插件配置容器网络，如果需要挂载外部存",
      "top": 301.0,
      "left": 431.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0078",
      "page": 58,
      "ordinal": 78,
      "text": "储，则还要调用",
      "top": 325.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0079",
      "page": 58,
      "ordinal": 79,
      "text": "CSI",
      "top": 325.0,
      "left": 214.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0080",
      "page": 58,
      "ordinal": 80,
      "text": "来挂载存储。",
      "top": 325.0,
      "left": 235.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0081",
      "page": 58,
      "ordinal": 81,
      "text": "kubelet",
      "top": 325.0,
      "left": 323.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0082",
      "page": 58,
      "ordinal": 82,
      "text": "创建完",
      "top": 325.0,
      "left": 374.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0083",
      "page": 58,
      "ordinal": 83,
      "text": "pod",
      "top": 325.0,
      "left": 418.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0084",
      "page": 58,
      "ordinal": 84,
      "text": "，将信息反馈给",
      "top": 325.0,
      "left": 445.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0085",
      "page": 58,
      "ordinal": 85,
      "text": "api-server",
      "top": 325.0,
      "left": 547.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0086",
      "page": 58,
      "ordinal": 86,
      "text": "，",
      "top": 325.0,
      "left": 615.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0087",
      "page": 58,
      "ordinal": 87,
      "text": "api-servier",
      "top": 325.0,
      "left": 630.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0088",
      "page": 58,
      "ordinal": 88,
      "text": "将",
      "top": 325.0,
      "left": 702.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0089",
      "page": 58,
      "ordinal": 89,
      "text": "pod",
      "top": 325.0,
      "left": 716.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0090",
      "page": 58,
      "ordinal": 90,
      "text": "信息",
      "top": 325.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0091",
      "page": 58,
      "ordinal": 91,
      "text": "写入",
      "top": 347.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0092",
      "page": 58,
      "ordinal": 92,
      "text": "etcd",
      "top": 347.0,
      "left": 141.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0093",
      "page": 58,
      "ordinal": 93,
      "text": "。",
      "top": 347.0,
      "left": 170.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b014"
      }
    },
    {
      "id": "p058-t0094",
      "page": 58,
      "ordinal": 94,
      "text": "7",
      "top": 371.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0095",
      "page": 58,
      "ordinal": 95,
      "text": "、",
      "top": 371.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0096",
      "page": 58,
      "ordinal": 96,
      "text": "Pod",
      "top": 371.0,
      "left": 135.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0097",
      "page": 58,
      "ordinal": 97,
      "text": "建立成功后，",
      "top": 371.0,
      "left": 161.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0098",
      "page": 58,
      "ordinal": 98,
      "text": "ReplicaSet Controller",
      "top": 371.0,
      "left": 249.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0099",
      "page": 58,
      "ordinal": 99,
      "text": "会对其持续进行关注，如果",
      "top": 371.0,
      "left": 392.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0100",
      "page": 58,
      "ordinal": 100,
      "text": "Pod",
      "top": 371.0,
      "left": 567.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0101",
      "page": 58,
      "ordinal": 101,
      "text": "因意外或被我们手动退出，",
      "top": 371.0,
      "left": 594.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0102",
      "page": 58,
      "ordinal": 102,
      "text": "ReplicaSet Controller",
      "top": 395.0,
      "left": 112.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0103",
      "page": 58,
      "ordinal": 103,
      "text": "会知道，并创建新的",
      "top": 395.0,
      "left": 254.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0104",
      "page": 58,
      "ordinal": 104,
      "text": "Pod",
      "top": 395.0,
      "left": 386.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0105",
      "page": 58,
      "ordinal": 105,
      "text": "，以保持",
      "top": 395.0,
      "left": 412.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0106",
      "page": 58,
      "ordinal": 106,
      "text": "replicas",
      "top": 395.0,
      "left": 471.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0107",
      "page": 58,
      "ordinal": 107,
      "text": "数量期望值。",
      "top": 395.0,
      "left": 524.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p057-h03",
        "heading_id": "p057-h03",
        "block_id": "q-p057-h03-b015"
      }
    },
    {
      "id": "p058-t0108",
      "page": 58,
      "ordinal": 108,
      "text": "简单描述一下",
      "top": 429.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01"
      }
    },
    {
      "id": "p058-t0109",
      "page": 58,
      "ordinal": 109,
      "text": "pod",
      "top": 429.0,
      "left": 265.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01"
      }
    },
    {
      "id": "p058-t0110",
      "page": 58,
      "ordinal": 110,
      "text": "的终止过程",
      "top": 429.0,
      "left": 314.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01"
      }
    },
    {
      "id": "p058-t0112",
      "page": 58,
      "ordinal": 112,
      "text": "1",
      "top": 480.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0113",
      "page": 58,
      "ordinal": 113,
      "text": "、用户向",
      "top": 480.0,
      "left": 120.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0114",
      "page": 58,
      "ordinal": 114,
      "text": "apiserver",
      "top": 480.0,
      "left": 179.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0115",
      "page": 58,
      "ordinal": 115,
      "text": "发送删除",
      "top": 480.0,
      "left": 242.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0116",
      "page": 58,
      "ordinal": 116,
      "text": "pod",
      "top": 480.0,
      "left": 301.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0117",
      "page": 58,
      "ordinal": 117,
      "text": "对象的命令；",
      "top": 480.0,
      "left": 327.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b001"
      }
    },
    {
      "id": "p058-t0118",
      "page": 58,
      "ordinal": 118,
      "text": "2",
      "top": 503.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0119",
      "page": 58,
      "ordinal": 119,
      "text": "、",
      "top": 503.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0120",
      "page": 58,
      "ordinal": 120,
      "text": "apiserver",
      "top": 503.0,
      "left": 135.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0121",
      "page": 58,
      "ordinal": 121,
      "text": "中的",
      "top": 503.0,
      "left": 198.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0122",
      "page": 58,
      "ordinal": 122,
      "text": "pod",
      "top": 503.0,
      "left": 227.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0123",
      "page": 58,
      "ordinal": 123,
      "text": "对象信息会随着时间的推移而更新，在宽限期内（默认",
      "top": 503.0,
      "left": 254.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0124",
      "page": 58,
      "ordinal": 124,
      "text": "30s",
      "top": 503.0,
      "left": 605.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0125",
      "page": 58,
      "ordinal": 125,
      "text": "），",
      "top": 503.0,
      "left": 629.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0126",
      "page": 58,
      "ordinal": 126,
      "text": "pod",
      "top": 503.0,
      "left": 658.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0127",
      "page": 58,
      "ordinal": 127,
      "text": "被视为",
      "top": 503.0,
      "left": 685.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0128",
      "page": 58,
      "ordinal": 128,
      "text": "dead",
      "top": 503.0,
      "left": 729.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0129",
      "page": 58,
      "ordinal": 129,
      "text": "；",
      "top": 503.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b002"
      }
    },
    {
      "id": "p058-t0130",
      "page": 58,
      "ordinal": 130,
      "text": "3",
      "top": 526.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0131",
      "page": 58,
      "ordinal": 131,
      "text": "、将",
      "top": 526.0,
      "left": 120.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0132",
      "page": 58,
      "ordinal": 132,
      "text": "pod",
      "top": 526.0,
      "left": 149.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0133",
      "page": 58,
      "ordinal": 133,
      "text": "标记为",
      "top": 526.0,
      "left": 176.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0134",
      "page": 58,
      "ordinal": 134,
      "text": "terminating",
      "top": 526.0,
      "left": 220.0,
      "width": 80.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0135",
      "page": 58,
      "ordinal": 135,
      "text": "状态；",
      "top": 526.0,
      "left": 300.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b003"
      }
    },
    {
      "id": "p058-t0136",
      "page": 58,
      "ordinal": 136,
      "text": "4",
      "top": 550.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0137",
      "page": 58,
      "ordinal": 137,
      "text": "、",
      "top": 550.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0138",
      "page": 58,
      "ordinal": 138,
      "text": "kubectl",
      "top": 550.0,
      "left": 135.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0139",
      "page": 58,
      "ordinal": 139,
      "text": "在监控到",
      "top": 550.0,
      "left": 184.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0140",
      "page": 58,
      "ordinal": 140,
      "text": "pod",
      "top": 550.0,
      "left": 243.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0141",
      "page": 58,
      "ordinal": 141,
      "text": "对象为",
      "top": 550.0,
      "left": 270.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0142",
      "page": 58,
      "ordinal": 142,
      "text": "terminating",
      "top": 550.0,
      "left": 314.0,
      "width": 80.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0143",
      "page": 58,
      "ordinal": 143,
      "text": "状态了就会启动",
      "top": 550.0,
      "left": 393.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0144",
      "page": 58,
      "ordinal": 144,
      "text": "pod",
      "top": 550.0,
      "left": 495.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0145",
      "page": 58,
      "ordinal": 145,
      "text": "关闭过程；",
      "top": 550.0,
      "left": 522.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b004"
      }
    },
    {
      "id": "p058-t0146",
      "page": 58,
      "ordinal": 146,
      "text": "5",
      "top": 573.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0147",
      "page": 58,
      "ordinal": 147,
      "text": "、",
      "top": 573.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0148",
      "page": 58,
      "ordinal": 148,
      "text": "endpoint",
      "top": 573.0,
      "left": 135.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0149",
      "page": 58,
      "ordinal": 149,
      "text": "控制器监控到",
      "top": 573.0,
      "left": 197.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0150",
      "page": 58,
      "ordinal": 150,
      "text": "pod",
      "top": 573.0,
      "left": 284.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0151",
      "page": 58,
      "ordinal": 151,
      "text": "对象的关闭行为时将其从所有匹配到此",
      "top": 573.0,
      "left": 311.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0152",
      "page": 58,
      "ordinal": 152,
      "text": "endpoint",
      "top": 573.0,
      "left": 560.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0153",
      "page": 58,
      "ordinal": 153,
      "text": "的",
      "top": 573.0,
      "left": 621.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0154",
      "page": 58,
      "ordinal": 154,
      "text": "server",
      "top": 573.0,
      "left": 636.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0155",
      "page": 58,
      "ordinal": 155,
      "text": "资源",
      "top": 573.0,
      "left": 679.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0156",
      "page": 58,
      "ordinal": 156,
      "text": "endpoint",
      "top": 573.0,
      "left": 708.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0157",
      "page": 58,
      "ordinal": 157,
      "text": "列表中删除；",
      "top": 597.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b005"
      }
    },
    {
      "id": "p058-t0158",
      "page": 58,
      "ordinal": 158,
      "text": "6",
      "top": 620.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0159",
      "page": 58,
      "ordinal": 159,
      "text": "、如果当前",
      "top": 620.0,
      "left": 120.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0160",
      "page": 58,
      "ordinal": 160,
      "text": "pod",
      "top": 620.0,
      "left": 193.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0161",
      "page": 58,
      "ordinal": 161,
      "text": "对象定义了",
      "top": 620.0,
      "left": 220.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0162",
      "page": 58,
      "ordinal": 162,
      "text": "preStop",
      "top": 620.0,
      "left": 293.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0163",
      "page": 58,
      "ordinal": 163,
      "text": "钩子处理器，则在其被标记为",
      "top": 620.0,
      "left": 347.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0164",
      "page": 58,
      "ordinal": 164,
      "text": "terminating",
      "top": 620.0,
      "left": 537.0,
      "width": 80.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0165",
      "page": 58,
      "ordinal": 165,
      "text": "后会意同步的方式启动执",
      "top": 620.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0166",
      "page": 58,
      "ordinal": 166,
      "text": "行；",
      "top": 643.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b006"
      }
    },
    {
      "id": "p058-t0167",
      "page": 58,
      "ordinal": 167,
      "text": "7",
      "top": 667.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b007"
      }
    },
    {
      "id": "p058-t0168",
      "page": 58,
      "ordinal": 168,
      "text": "、",
      "top": 667.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b007"
      }
    },
    {
      "id": "p058-t0169",
      "page": 58,
      "ordinal": 169,
      "text": "pod",
      "top": 667.0,
      "left": 135.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b007"
      }
    },
    {
      "id": "p058-t0170",
      "page": 58,
      "ordinal": 170,
      "text": "对象中的容器进程收到停止信息；",
      "top": 667.0,
      "left": 161.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b007"
      }
    },
    {
      "id": "p058-t0171",
      "page": 58,
      "ordinal": 171,
      "text": "8",
      "top": 690.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0172",
      "page": 58,
      "ordinal": 172,
      "text": "、宽限期结束后，若",
      "top": 690.0,
      "left": 120.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0173",
      "page": 58,
      "ordinal": 173,
      "text": "pod",
      "top": 690.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0174",
      "page": 58,
      "ordinal": 174,
      "text": "中还存在运行的进程，那么",
      "top": 690.0,
      "left": 278.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0175",
      "page": 58,
      "ordinal": 175,
      "text": "pod",
      "top": 690.0,
      "left": 454.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0176",
      "page": 58,
      "ordinal": 176,
      "text": "对象会收到立即终止的信息；",
      "top": 690.0,
      "left": 481.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b008"
      }
    },
    {
      "id": "p058-t0177",
      "page": 58,
      "ordinal": 177,
      "text": "9",
      "top": 714.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0178",
      "page": 58,
      "ordinal": 178,
      "text": "、",
      "top": 714.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0179",
      "page": 58,
      "ordinal": 179,
      "text": "kubelet",
      "top": 714.0,
      "left": 135.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0180",
      "page": 58,
      "ordinal": 180,
      "text": "请求",
      "top": 714.0,
      "left": 186.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0181",
      "page": 58,
      "ordinal": 181,
      "text": "apiserver",
      "top": 714.0,
      "left": 215.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0182",
      "page": 58,
      "ordinal": 182,
      "text": "将此",
      "top": 714.0,
      "left": 278.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0183",
      "page": 58,
      "ordinal": 183,
      "text": "pod",
      "top": 714.0,
      "left": 308.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0184",
      "page": 58,
      "ordinal": 184,
      "text": "资源的宽限期设置为",
      "top": 714.0,
      "left": 334.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0185",
      "page": 58,
      "ordinal": 185,
      "text": "0",
      "top": 714.0,
      "left": 466.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0186",
      "page": 58,
      "ordinal": 186,
      "text": "从而完成删除操作，此时",
      "top": 714.0,
      "left": 474.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0187",
      "page": 58,
      "ordinal": 187,
      "text": "pod",
      "top": 714.0,
      "left": 635.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0188",
      "page": 58,
      "ordinal": 188,
      "text": "对用户已不可见。",
      "top": 714.0,
      "left": 662.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h01",
        "heading_id": "p058-h01",
        "block_id": "q-p058-h01-b009"
      }
    },
    {
      "id": "p058-t0189",
      "page": 58,
      "ordinal": 189,
      "text": "pod",
      "top": 748.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02"
      }
    },
    {
      "id": "p058-t0190",
      "page": 58,
      "ordinal": 190,
      "text": "的生命周期有哪几种",
      "top": 748.0,
      "left": 160.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02"
      }
    },
    {
      "id": "p058-t0192",
      "page": 58,
      "ordinal": 192,
      "text": "Pending",
      "top": 798.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0193",
      "page": 58,
      "ordinal": 193,
      "text": "（挂起）：",
      "top": 798.0,
      "left": 167.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0194",
      "page": 58,
      "ordinal": 194,
      "text": "API server",
      "top": 798.0,
      "left": 241.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0195",
      "page": 58,
      "ordinal": 195,
      "text": "已经创建",
      "top": 798.0,
      "left": 309.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0196",
      "page": 58,
      "ordinal": 196,
      "text": "pod",
      "top": 798.0,
      "left": 368.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0197",
      "page": 58,
      "ordinal": 197,
      "text": "，但是该",
      "top": 798.0,
      "left": 394.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0198",
      "page": 58,
      "ordinal": 198,
      "text": "pod",
      "top": 798.0,
      "left": 453.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0199",
      "page": 58,
      "ordinal": 199,
      "text": "还有一个或多个容器的镜像没有创建，包括正",
      "top": 798.0,
      "left": 480.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0200",
      "page": 58,
      "ordinal": 200,
      "text": "在下载镜像的过程；",
      "top": 822.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0201",
      "page": 58,
      "ordinal": 201,
      "text": "Running",
      "top": 846.0,
      "left": 112.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0202",
      "page": 58,
      "ordinal": 202,
      "text": "（运行中）：",
      "top": 846.0,
      "left": 168.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0203",
      "page": 58,
      "ordinal": 203,
      "text": "Pod",
      "top": 846.0,
      "left": 256.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0204",
      "page": 58,
      "ordinal": 204,
      "text": "内所有的容器已经创建，且至少有一个容器处于运行状态、正在启动括正在重",
      "top": 846.0,
      "left": 283.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0205",
      "page": 58,
      "ordinal": 205,
      "text": "启状态；",
      "top": 869.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0206",
      "page": 58,
      "ordinal": 206,
      "text": "Succeed",
      "top": 892.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0207",
      "page": 58,
      "ordinal": 207,
      "text": "（成功）：",
      "top": 892.0,
      "left": 168.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0208",
      "page": 58,
      "ordinal": 208,
      "text": "Pod",
      "top": 892.0,
      "left": 241.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0209",
      "page": 58,
      "ordinal": 209,
      "text": "内所有容器均已退出，且不会再重启；",
      "top": 892.0,
      "left": 268.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0210",
      "page": 58,
      "ordinal": 210,
      "text": "Failed",
      "top": 915.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0211",
      "page": 58,
      "ordinal": 211,
      "text": "（失败）：",
      "top": 915.0,
      "left": 152.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0212",
      "page": 58,
      "ordinal": 212,
      "text": "Pod",
      "top": 915.0,
      "left": 225.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0213",
      "page": 58,
      "ordinal": 213,
      "text": "内所有容器均已退出，且至少有一个容器为退出失败状态",
      "top": 915.0,
      "left": 252.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0214",
      "page": 58,
      "ordinal": 214,
      "text": "Unknown",
      "top": 939.0,
      "left": 112.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0215",
      "page": 58,
      "ordinal": 215,
      "text": "（未知）：某于某种原因",
      "top": 939.0,
      "left": 177.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0216",
      "page": 58,
      "ordinal": 216,
      "text": "apiserver",
      "top": 939.0,
      "left": 338.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0217",
      "page": 58,
      "ordinal": 217,
      "text": "无法获取该",
      "top": 939.0,
      "left": 402.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0218",
      "page": 58,
      "ordinal": 218,
      "text": "pod",
      "top": 939.0,
      "left": 475.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0219",
      "page": 58,
      "ordinal": 219,
      "text": "的状态，可能由于网络通行问题导致；",
      "top": 939.0,
      "left": 501.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h02",
        "heading_id": "p058-h02",
        "block_id": "q-p058-h02-b001"
      }
    },
    {
      "id": "p058-t0220",
      "page": 58,
      "ordinal": 220,
      "text": "pod",
      "top": 974.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03"
      }
    },
    {
      "id": "p058-t0221",
      "page": 58,
      "ordinal": 221,
      "text": "一致处于",
      "top": 974.0,
      "left": 160.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03"
      }
    },
    {
      "id": "p058-t0222",
      "page": 58,
      "ordinal": 222,
      "text": "pending",
      "top": 974.0,
      "left": 262.0,
      "width": 103.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03"
      }
    },
    {
      "id": "p058-t0223",
      "page": 58,
      "ordinal": 223,
      "text": "状态一般有哪些情况，怎么排查？",
      "top": 974.0,
      "left": 366.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03"
      }
    },
    {
      "id": "p058-t0225",
      "page": 58,
      "ordinal": 225,
      "text": "一个",
      "top": 1025.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0226",
      "page": 58,
      "ordinal": 226,
      "text": "pod",
      "top": 1025.0,
      "left": 141.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0227",
      "page": 58,
      "ordinal": 227,
      "text": "一开始创建的时候，它本身就是会处于",
      "top": 1025.0,
      "left": 168.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0228",
      "page": 58,
      "ordinal": 228,
      "text": "pending",
      "top": 1025.0,
      "left": 416.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0229",
      "page": 58,
      "ordinal": 229,
      "text": "状态，这时可能是正在拉取镜像，正在创建容器",
      "top": 1025.0,
      "left": 472.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0230",
      "page": 58,
      "ordinal": 230,
      "text": "的过程。",
      "top": 1047.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0231",
      "page": 58,
      "ordinal": 231,
      "text": "如果等了一会发现",
      "top": 1071.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0232",
      "page": 58,
      "ordinal": 232,
      "text": "pod",
      "top": 1071.0,
      "left": 229.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0233",
      "page": 58,
      "ordinal": 233,
      "text": "一直处于",
      "top": 1071.0,
      "left": 256.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0234",
      "page": 58,
      "ordinal": 234,
      "text": "pending",
      "top": 1071.0,
      "left": 314.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0235",
      "page": 58,
      "ordinal": 235,
      "text": "状态，那么我们可以使用",
      "top": 1071.0,
      "left": 370.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0236",
      "page": 58,
      "ordinal": 236,
      "text": "kubectl describe",
      "top": 1071.0,
      "left": 531.0,
      "width": 111.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0237",
      "page": 58,
      "ordinal": 237,
      "text": "命令查看一下",
      "top": 1071.0,
      "left": 642.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0238",
      "page": 58,
      "ordinal": 238,
      "text": "pod",
      "top": 1071.0,
      "left": 730.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0239",
      "page": 58,
      "ordinal": 239,
      "text": "的",
      "top": 1071.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0240",
      "page": 58,
      "ordinal": 240,
      "text": "Events",
      "top": 1094.0,
      "left": 112.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0241",
      "page": 58,
      "ordinal": 241,
      "text": "详细信息。一般可能会有这么几种情况导致",
      "top": 1094.0,
      "left": 157.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0242",
      "page": 58,
      "ordinal": 242,
      "text": "pod",
      "top": 1094.0,
      "left": 434.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0243",
      "page": 58,
      "ordinal": 243,
      "text": "一直处于",
      "top": 1094.0,
      "left": 461.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0244",
      "page": 58,
      "ordinal": 244,
      "text": "pending",
      "top": 1094.0,
      "left": 520.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0245",
      "page": 58,
      "ordinal": 245,
      "text": "状态：",
      "top": 1094.0,
      "left": 575.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b001"
      }
    },
    {
      "id": "p058-t0246",
      "page": 58,
      "ordinal": 246,
      "text": "1",
      "top": 1118.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0247",
      "page": 58,
      "ordinal": 247,
      "text": "、调度器调度失败。",
      "top": 1118.0,
      "left": 120.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0248",
      "page": 58,
      "ordinal": 248,
      "text": "Scheduer",
      "top": 1118.0,
      "left": 252.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0249",
      "page": 58,
      "ordinal": 249,
      "text": "调度器无法为",
      "top": 1118.0,
      "left": 316.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0250",
      "page": 58,
      "ordinal": 250,
      "text": "pod",
      "top": 1118.0,
      "left": 404.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0251",
      "page": 58,
      "ordinal": 251,
      "text": "分配一个合适的",
      "top": 1118.0,
      "left": 431.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0252",
      "page": 58,
      "ordinal": 252,
      "text": "node",
      "top": 1118.0,
      "left": 533.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0253",
      "page": 58,
      "ordinal": 253,
      "text": "节点。而这又会有很多种情况，",
      "top": 1118.0,
      "left": 568.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0254",
      "page": 58,
      "ordinal": 254,
      "text": "比如，",
      "top": 1142.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0255",
      "page": 58,
      "ordinal": 255,
      "text": "node",
      "top": 1142.0,
      "left": 156.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0256",
      "page": 58,
      "ordinal": 256,
      "text": "节点处在",
      "top": 1142.0,
      "left": 191.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0257",
      "page": 58,
      "ordinal": 257,
      "text": "cpu",
      "top": 1142.0,
      "left": 249.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0258",
      "page": 58,
      "ordinal": 258,
      "text": "、内存压力，导致无节点可调度；",
      "top": 1142.0,
      "left": 274.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0259",
      "page": 58,
      "ordinal": 259,
      "text": "pod",
      "top": 1142.0,
      "left": 493.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0260",
      "page": 58,
      "ordinal": 260,
      "text": "定义了资源请求，没有",
      "top": 1142.0,
      "left": 520.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0261",
      "page": 58,
      "ordinal": 261,
      "text": "node",
      "top": 1142.0,
      "left": 666.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0262",
      "page": 58,
      "ordinal": 262,
      "text": "节点满足资",
      "top": 1142.0,
      "left": 701.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0263",
      "page": 58,
      "ordinal": 263,
      "text": "源请求；",
      "top": 1164.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0264",
      "page": 58,
      "ordinal": 264,
      "text": "node",
      "top": 1164.0,
      "left": 170.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0265",
      "page": 58,
      "ordinal": 265,
      "text": "节点上有污点而",
      "top": 1164.0,
      "left": 205.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0266",
      "page": 58,
      "ordinal": 266,
      "text": "pod",
      "top": 1164.0,
      "left": 308.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0267",
      "page": 58,
      "ordinal": 267,
      "text": "没有定义容忍；",
      "top": 1164.0,
      "left": 334.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0268",
      "page": 58,
      "ordinal": 268,
      "text": "pod",
      "top": 1164.0,
      "left": 437.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0269",
      "page": 58,
      "ordinal": 269,
      "text": "中定义了亲和性或反亲和性而没有节点满足这些",
      "top": 1164.0,
      "left": 463.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p058-t0270",
      "page": 58,
      "ordinal": 270,
      "text": "亲和性或反亲和性；以上是调度器调度失败的几种情况。",
      "top": 1188.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b002"
      }
    },
    {
      "id": "p059-t0001",
      "page": 59,
      "ordinal": 1,
      "text": "2",
      "top": 44.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0002",
      "page": 59,
      "ordinal": 2,
      "text": "、",
      "top": 44.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0003",
      "page": 59,
      "ordinal": 3,
      "text": "pvc",
      "top": 44.0,
      "left": 135.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0004",
      "page": 59,
      "ordinal": 4,
      "text": "、",
      "top": 44.0,
      "left": 158.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0005",
      "page": 59,
      "ordinal": 5,
      "text": "pv",
      "top": 44.0,
      "left": 173.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0006",
      "page": 59,
      "ordinal": 6,
      "text": "无法动态创建。如果因为",
      "top": 44.0,
      "left": 189.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0007",
      "page": 59,
      "ordinal": 7,
      "text": "pvc",
      "top": 44.0,
      "left": 350.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0008",
      "page": 59,
      "ordinal": 8,
      "text": "或",
      "top": 44.0,
      "left": 373.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0009",
      "page": 59,
      "ordinal": 9,
      "text": "pv",
      "top": 44.0,
      "left": 388.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0010",
      "page": 59,
      "ordinal": 10,
      "text": "无法动态创建，那么",
      "top": 44.0,
      "left": 404.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0011",
      "page": 59,
      "ordinal": 11,
      "text": "pod",
      "top": 44.0,
      "left": 536.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0012",
      "page": 59,
      "ordinal": 12,
      "text": "也会一直处于",
      "top": 44.0,
      "left": 562.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0013",
      "page": 59,
      "ordinal": 13,
      "text": "pending",
      "top": 44.0,
      "left": 650.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0014",
      "page": 59,
      "ordinal": 14,
      "text": "状态，比如",
      "top": 44.0,
      "left": 706.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0015",
      "page": 59,
      "ordinal": 15,
      "text": "要使用",
      "top": 67.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0016",
      "page": 59,
      "ordinal": 16,
      "text": "StatefulSet ",
      "top": 67.0,
      "left": 156.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0017",
      "page": 59,
      "ordinal": 17,
      "text": "创建",
      "top": 67.0,
      "left": 233.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0018",
      "page": 59,
      "ordinal": 18,
      "text": "redis",
      "top": 67.0,
      "left": 262.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0019",
      "page": 59,
      "ordinal": 19,
      "text": "集群，因为粗心大意，定义的",
      "top": 67.0,
      "left": 296.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0020",
      "page": 59,
      "ordinal": 20,
      "text": "storageClassName",
      "top": 67.0,
      "left": 486.0,
      "width": 127.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0021",
      "page": 59,
      "ordinal": 21,
      "text": "名称写错了，那么会造成",
      "top": 67.0,
      "left": 614.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0022",
      "page": 59,
      "ordinal": 22,
      "text": "无法创建",
      "top": 91.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0023",
      "page": 59,
      "ordinal": 23,
      "text": "pvc",
      "top": 91.0,
      "left": 170.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0024",
      "page": 59,
      "ordinal": 24,
      "text": "，这种情况",
      "top": 91.0,
      "left": 194.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0025",
      "page": 59,
      "ordinal": 25,
      "text": "pod",
      "top": 91.0,
      "left": 267.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0026",
      "page": 59,
      "ordinal": 26,
      "text": "也会一直处于",
      "top": 91.0,
      "left": 293.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0027",
      "page": 59,
      "ordinal": 27,
      "text": "pending",
      "top": 91.0,
      "left": 381.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0028",
      "page": 59,
      "ordinal": 28,
      "text": "状态，或者，即使",
      "top": 91.0,
      "left": 437.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0029",
      "page": 59,
      "ordinal": 29,
      "text": "pvc",
      "top": 91.0,
      "left": 554.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0030",
      "page": 59,
      "ordinal": 30,
      "text": "是正常创建了，但是由于某些异",
      "top": 91.0,
      "left": 577.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0031",
      "page": 59,
      "ordinal": 31,
      "text": "常原因导致动态供应存储无法正常创建",
      "top": 113.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0032",
      "page": 59,
      "ordinal": 32,
      "text": "pv",
      "top": 113.0,
      "left": 360.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0033",
      "page": 59,
      "ordinal": 33,
      "text": "，那么这种情况",
      "top": 113.0,
      "left": 377.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0034",
      "page": 59,
      "ordinal": 34,
      "text": "pod",
      "top": 113.0,
      "left": 479.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0035",
      "page": 59,
      "ordinal": 35,
      "text": "也会一直处于",
      "top": 113.0,
      "left": 506.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0036",
      "page": 59,
      "ordinal": 36,
      "text": "pending",
      "top": 113.0,
      "left": 594.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0037",
      "page": 59,
      "ordinal": 37,
      "text": "状态。",
      "top": 113.0,
      "left": 649.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p058-h03",
        "heading_id": "p058-h03",
        "block_id": "q-p058-h03-b003"
      }
    },
    {
      "id": "p059-t0038",
      "page": 59,
      "ordinal": 38,
      "text": "pod",
      "top": 148.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01"
      }
    },
    {
      "id": "p059-t0039",
      "page": 59,
      "ordinal": 39,
      "text": "的初始化容器是干什么的？",
      "top": 148.0,
      "left": 160.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01"
      }
    },
    {
      "id": "p059-t0041",
      "page": 59,
      "ordinal": 41,
      "text": "init container",
      "top": 199.0,
      "left": 112.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b001"
      }
    },
    {
      "id": "p059-t0042",
      "page": 59,
      "ordinal": 42,
      "text": "，初始化容器用于在启动应用容器之前完成应用容器所需要的前置条件，初始化容器本质",
      "top": 199.0,
      "left": 202.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b001"
      }
    },
    {
      "id": "p059-t0043",
      "page": 59,
      "ordinal": 43,
      "text": "上和应用容器是一样的，但是初始化容器是仅允许一次就结束的任务，初始化容器具有两大特征：",
      "top": 222.0,
      "left": 112.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b001"
      }
    },
    {
      "id": "p059-t0044",
      "page": 59,
      "ordinal": 44,
      "text": "1",
      "top": 246.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b002"
      }
    },
    {
      "id": "p059-t0045",
      "page": 59,
      "ordinal": 45,
      "text": "、初始化容器必须运行完成直至结束，若某初始化容器运行失败，那么",
      "top": 246.0,
      "left": 120.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b002"
      }
    },
    {
      "id": "p059-t0046",
      "page": 59,
      "ordinal": 46,
      "text": "kubernetes",
      "top": 246.0,
      "left": 573.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b002"
      }
    },
    {
      "id": "p059-t0047",
      "page": 59,
      "ordinal": 47,
      "text": "需要重启它直到成",
      "top": 246.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b002"
      }
    },
    {
      "id": "p059-t0048",
      "page": 59,
      "ordinal": 48,
      "text": "功完成；",
      "top": 269.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b002"
      }
    },
    {
      "id": "p059-t0049",
      "page": 59,
      "ordinal": 49,
      "text": "2",
      "top": 292.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b003"
      }
    },
    {
      "id": "p059-t0050",
      "page": 59,
      "ordinal": 50,
      "text": "、初始化容器必须按照定义的顺序执行，当且仅当前一个初始化容器成功之后，后面的一个初始化容器",
      "top": 292.0,
      "left": 120.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b003"
      }
    },
    {
      "id": "p059-t0051",
      "page": 59,
      "ordinal": 51,
      "text": "才能运行；",
      "top": 316.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h01",
        "heading_id": "p059-h01",
        "block_id": "q-p059-h01-b003"
      }
    },
    {
      "id": "p059-t0052",
      "page": 59,
      "ordinal": 52,
      "text": "pod",
      "top": 350.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02"
      }
    },
    {
      "id": "p059-t0053",
      "page": 59,
      "ordinal": 53,
      "text": "的资源请求、限制如何定义？",
      "top": 350.0,
      "left": 160.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02"
      }
    },
    {
      "id": "p059-t0055",
      "page": 59,
      "ordinal": 55,
      "text": "pod",
      "top": 401.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0056",
      "page": 59,
      "ordinal": 56,
      "text": "的资源请求、资源限制可以直接在",
      "top": 401.0,
      "left": 139.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0057",
      "page": 59,
      "ordinal": 57,
      "text": "pod",
      "top": 401.0,
      "left": 358.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0058",
      "page": 59,
      "ordinal": 58,
      "text": "中定义，主要包括两块内容，",
      "top": 401.0,
      "left": 385.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0059",
      "page": 59,
      "ordinal": 59,
      "text": "limits",
      "top": 401.0,
      "left": 575.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0060",
      "page": 59,
      "ordinal": 60,
      "text": "，限制",
      "top": 401.0,
      "left": 612.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0061",
      "page": 59,
      "ordinal": 61,
      "text": "pod",
      "top": 401.0,
      "left": 655.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0062",
      "page": 59,
      "ordinal": 62,
      "text": "能使用的最大",
      "top": 401.0,
      "left": 682.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0063",
      "page": 59,
      "ordinal": 63,
      "text": "cpu",
      "top": 424.0,
      "left": 112.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0064",
      "page": 59,
      "ordinal": 64,
      "text": "和内存，",
      "top": 424.0,
      "left": 137.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0065",
      "page": 59,
      "ordinal": 65,
      "text": "requests",
      "top": 424.0,
      "left": 195.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0066",
      "page": 59,
      "ordinal": 66,
      "text": "，",
      "top": 424.0,
      "left": 255.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0067",
      "page": 59,
      "ordinal": 67,
      "text": "pod",
      "top": 424.0,
      "left": 269.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0068",
      "page": 59,
      "ordinal": 68,
      "text": "启动时申请的",
      "top": 424.0,
      "left": 296.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0069",
      "page": 59,
      "ordinal": 69,
      "text": "cpu",
      "top": 424.0,
      "left": 384.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0070",
      "page": 59,
      "ordinal": 70,
      "text": "和内存。",
      "top": 424.0,
      "left": 409.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b001"
      }
    },
    {
      "id": "p059-t0071",
      "page": 59,
      "ordinal": 71,
      "text": "pod",
      "top": 643.0,
      "left": 112.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0072",
      "page": 59,
      "ordinal": 72,
      "text": "的定义中有个",
      "top": 643.0,
      "left": 160.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0073",
      "page": 59,
      "ordinal": 73,
      "text": "command",
      "top": 643.0,
      "left": 314.0,
      "width": 128.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0074",
      "page": 59,
      "ordinal": 74,
      "text": "和",
      "top": 643.0,
      "left": 441.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0075",
      "page": 59,
      "ordinal": 75,
      "text": "args",
      "top": 643.0,
      "left": 467.0,
      "width": 54.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0076",
      "page": 59,
      "ordinal": 76,
      "text": "参数，这两个参数不会",
      "top": 643.0,
      "left": 521.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0077",
      "page": 59,
      "ordinal": 77,
      "text": "和",
      "top": 674.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0078",
      "page": 59,
      "ordinal": 78,
      "text": "docker",
      "top": 674.0,
      "left": 137.0,
      "width": 88.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0079",
      "page": 59,
      "ordinal": 79,
      "text": "镜像的",
      "top": 674.0,
      "left": 225.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0080",
      "page": 59,
      "ordinal": 80,
      "text": "entrypointc",
      "top": 674.0,
      "left": 302.0,
      "width": 150.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0081",
      "page": 59,
      "ordinal": 81,
      "text": "冲突吗",
      "top": 674.0,
      "left": 452.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03"
      }
    },
    {
      "id": "p059-t0083",
      "page": 59,
      "ordinal": 83,
      "text": "不会。",
      "top": 725.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0084",
      "page": 59,
      "ordinal": 84,
      "text": "在",
      "top": 749.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0085",
      "page": 59,
      "ordinal": 85,
      "text": "pod",
      "top": 749.0,
      "left": 126.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0086",
      "page": 59,
      "ordinal": 86,
      "text": "中定义的",
      "top": 749.0,
      "left": 153.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0087",
      "page": 59,
      "ordinal": 87,
      "text": "command",
      "top": 749.0,
      "left": 212.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0088",
      "page": 59,
      "ordinal": 88,
      "text": "参数用于指定容器的启动命令列表，如果不指定，则默认使用",
      "top": 749.0,
      "left": 281.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0089",
      "page": 59,
      "ordinal": 89,
      "text": "Dockerfile",
      "top": 749.0,
      "left": 676.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0090",
      "page": 59,
      "ordinal": 90,
      "text": "打包",
      "top": 749.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0091",
      "page": 59,
      "ordinal": 91,
      "text": "时的启动命令，",
      "top": 773.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0092",
      "page": 59,
      "ordinal": 92,
      "text": "args",
      "top": 773.0,
      "left": 214.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0093",
      "page": 59,
      "ordinal": 93,
      "text": "参数用于容器的启动命令需要的参数列表；",
      "top": 773.0,
      "left": 243.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0094",
      "page": 59,
      "ordinal": 94,
      "text": "特别说明：",
      "top": 795.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0095",
      "page": 59,
      "ordinal": 95,
      "text": "kubernetes",
      "top": 819.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0096",
      "page": 59,
      "ordinal": 96,
      "text": "中的",
      "top": 819.0,
      "left": 189.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0097",
      "page": 59,
      "ordinal": 97,
      "text": "command",
      "top": 819.0,
      "left": 218.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0098",
      "page": 59,
      "ordinal": 98,
      "text": "、",
      "top": 819.0,
      "left": 287.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0099",
      "page": 59,
      "ordinal": 99,
      "text": "args",
      "top": 819.0,
      "left": 302.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0100",
      "page": 59,
      "ordinal": 100,
      "text": "其实是实现覆盖",
      "top": 819.0,
      "left": 331.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0101",
      "page": 59,
      "ordinal": 101,
      "text": "dockerfile",
      "top": 819.0,
      "left": 433.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0102",
      "page": 59,
      "ordinal": 102,
      "text": "中的",
      "top": 819.0,
      "left": 501.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0103",
      "page": 59,
      "ordinal": 103,
      "text": "ENTRYPOINT",
      "top": 819.0,
      "left": 530.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0104",
      "page": 59,
      "ordinal": 104,
      "text": "的功能的。当",
      "top": 819.0,
      "left": 618.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b001"
      }
    },
    {
      "id": "p059-t0105",
      "page": 59,
      "ordinal": 105,
      "text": "1",
      "top": 842.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0106",
      "page": 59,
      "ordinal": 106,
      "text": "、如果",
      "top": 842.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0107",
      "page": 59,
      "ordinal": 107,
      "text": "command",
      "top": 842.0,
      "left": 164.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0108",
      "page": 59,
      "ordinal": 108,
      "text": "和",
      "top": 842.0,
      "left": 233.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0109",
      "page": 59,
      "ordinal": 109,
      "text": "args",
      "top": 842.0,
      "left": 248.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0110",
      "page": 59,
      "ordinal": 110,
      "text": "均没有写，那么使用",
      "top": 842.0,
      "left": 277.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0111",
      "page": 59,
      "ordinal": 111,
      "text": "Dockerfile",
      "top": 842.0,
      "left": 408.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0112",
      "page": 59,
      "ordinal": 112,
      "text": "的配置；",
      "top": 842.0,
      "left": 477.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b002"
      }
    },
    {
      "id": "p059-t0113",
      "page": 59,
      "ordinal": 113,
      "text": "2",
      "top": 866.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0114",
      "page": 59,
      "ordinal": 114,
      "text": "、如果",
      "top": 866.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0115",
      "page": 59,
      "ordinal": 115,
      "text": "command",
      "top": 866.0,
      "left": 164.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0116",
      "page": 59,
      "ordinal": 116,
      "text": "写了但",
      "top": 866.0,
      "left": 233.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0117",
      "page": 59,
      "ordinal": 117,
      "text": "args",
      "top": 866.0,
      "left": 277.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0118",
      "page": 59,
      "ordinal": 118,
      "text": "没写，那么",
      "top": 866.0,
      "left": 306.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0119",
      "page": 59,
      "ordinal": 119,
      "text": "Dockerfile",
      "top": 866.0,
      "left": 379.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0120",
      "page": 59,
      "ordinal": 120,
      "text": "默认的配置会被忽略，执行指定的",
      "top": 866.0,
      "left": 448.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0121",
      "page": 59,
      "ordinal": 121,
      "text": "command",
      "top": 866.0,
      "left": 667.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0122",
      "page": 59,
      "ordinal": 122,
      "text": "；",
      "top": 866.0,
      "left": 736.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b003"
      }
    },
    {
      "id": "p059-t0123",
      "page": 59,
      "ordinal": 123,
      "text": "3",
      "top": 890.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0124",
      "page": 59,
      "ordinal": 124,
      "text": "、如果",
      "top": 890.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0125",
      "page": 59,
      "ordinal": 125,
      "text": "command",
      "top": 890.0,
      "left": 164.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0126",
      "page": 59,
      "ordinal": 126,
      "text": "没写但",
      "top": 890.0,
      "left": 233.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0127",
      "page": 59,
      "ordinal": 127,
      "text": "args",
      "top": 890.0,
      "left": 277.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0128",
      "page": 59,
      "ordinal": 128,
      "text": "写了，那么",
      "top": 890.0,
      "left": 306.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0129",
      "page": 59,
      "ordinal": 129,
      "text": "Dockerfile",
      "top": 890.0,
      "left": 379.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0130",
      "page": 59,
      "ordinal": 130,
      "text": "中的",
      "top": 890.0,
      "left": 448.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0131",
      "page": 59,
      "ordinal": 131,
      "text": "ENTRYPOINT",
      "top": 890.0,
      "left": 477.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0132",
      "page": 59,
      "ordinal": 132,
      "text": "的会被执行，使用当前",
      "top": 890.0,
      "left": 565.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0133",
      "page": 59,
      "ordinal": 133,
      "text": "args",
      "top": 890.0,
      "left": 711.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0134",
      "page": 59,
      "ordinal": 134,
      "text": "的参",
      "top": 890.0,
      "left": 740.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0135",
      "page": 59,
      "ordinal": 135,
      "text": "数；",
      "top": 912.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b004"
      }
    },
    {
      "id": "p059-t0136",
      "page": 59,
      "ordinal": 136,
      "text": "4",
      "top": 936.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0137",
      "page": 59,
      "ordinal": 137,
      "text": "、如果",
      "top": 936.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0138",
      "page": 59,
      "ordinal": 138,
      "text": "command",
      "top": 936.0,
      "left": 164.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0139",
      "page": 59,
      "ordinal": 139,
      "text": "和",
      "top": 936.0,
      "left": 233.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0140",
      "page": 59,
      "ordinal": 140,
      "text": "args",
      "top": 936.0,
      "left": 248.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0141",
      "page": 59,
      "ordinal": 141,
      "text": "都写了，那么",
      "top": 936.0,
      "left": 277.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0142",
      "page": 59,
      "ordinal": 142,
      "text": "Dockerfile",
      "top": 936.0,
      "left": 365.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0143",
      "page": 59,
      "ordinal": 143,
      "text": "会被忽略，执行输入的",
      "top": 936.0,
      "left": 433.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0144",
      "page": 59,
      "ordinal": 144,
      "text": "command",
      "top": 936.0,
      "left": 580.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0145",
      "page": 59,
      "ordinal": 145,
      "text": "和",
      "top": 936.0,
      "left": 649.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0146",
      "page": 59,
      "ordinal": 146,
      "text": "args",
      "top": 936.0,
      "left": 663.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0147",
      "page": 59,
      "ordinal": 147,
      "text": "。",
      "top": 936.0,
      "left": 692.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h03",
        "heading_id": "p059-h03",
        "block_id": "q-p059-h03-b005"
      }
    },
    {
      "id": "p059-t0148",
      "page": 59,
      "ordinal": 148,
      "text": "标签及标签选择器是什么，如何使用",
      "top": 970.0,
      "left": 112.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04"
      }
    },
    {
      "id": "p059-t0150",
      "page": 59,
      "ordinal": 150,
      "text": "标签是键值对类型，标签可以附加到任何资源对象上，主要用于管理对象，查询和筛选。标签常被用于",
      "top": 1021.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b001"
      }
    },
    {
      "id": "p059-t0151",
      "page": 59,
      "ordinal": 151,
      "text": "标签选择器的匹配度检查，从而完成资源筛选；一个资源可以定义一个或多个标签在其上面。",
      "top": 1045.0,
      "left": 112.0,
      "width": 600.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b001"
      }
    },
    {
      "id": "p059-t0152",
      "page": 59,
      "ordinal": 152,
      "text": "标签选择器，标签要与标签选择器结合在一起，标签选择器允许我们选择标记有特定标签的资源对象子",
      "top": 1080.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0153",
      "page": 59,
      "ordinal": 153,
      "text": "集，如",
      "top": 1103.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0154",
      "page": 59,
      "ordinal": 154,
      "text": "pod",
      "top": 1103.0,
      "left": 156.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0155",
      "page": 59,
      "ordinal": 155,
      "text": "，并对这些特定标签的",
      "top": 1103.0,
      "left": 182.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0156",
      "page": 59,
      "ordinal": 156,
      "text": "pod",
      "top": 1103.0,
      "left": 329.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0157",
      "page": 59,
      "ordinal": 157,
      "text": "进行查询，删除等操作。",
      "top": 1103.0,
      "left": 355.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0158",
      "page": 59,
      "ordinal": 158,
      "text": "标签和标签选择器最重要的使用之一在于，在",
      "top": 1126.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0159",
      "page": 59,
      "ordinal": 159,
      "text": "deployment",
      "top": 1126.0,
      "left": 404.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0160",
      "page": 59,
      "ordinal": 160,
      "text": "中，在",
      "top": 1126.0,
      "left": 486.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0161",
      "page": 59,
      "ordinal": 161,
      "text": "pod",
      "top": 1126.0,
      "left": 530.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0162",
      "page": 59,
      "ordinal": 162,
      "text": "模板中定义",
      "top": 1126.0,
      "left": 557.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0163",
      "page": 59,
      "ordinal": 163,
      "text": "pod",
      "top": 1126.0,
      "left": 630.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0164",
      "page": 59,
      "ordinal": 164,
      "text": "的标签，然后在",
      "top": 1126.0,
      "left": 657.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0165",
      "page": 59,
      "ordinal": 165,
      "text": "deployment",
      "top": 1149.0,
      "left": 112.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0166",
      "page": 59,
      "ordinal": 166,
      "text": "定义标签选择器，这样就通过标签选择器来选择哪些",
      "top": 1149.0,
      "left": 194.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0167",
      "page": 59,
      "ordinal": 167,
      "text": "pod",
      "top": 1149.0,
      "left": 530.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0168",
      "page": 59,
      "ordinal": 168,
      "text": "是受其控制的，",
      "top": 1149.0,
      "left": 557.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0169",
      "page": 59,
      "ordinal": 169,
      "text": "service",
      "top": 1149.0,
      "left": 659.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0170",
      "page": 59,
      "ordinal": 170,
      "text": "也是通过标",
      "top": 1149.0,
      "left": 707.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0171",
      "page": 59,
      "ordinal": 171,
      "text": "签选择器来关联哪些",
      "top": 1173.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0172",
      "page": 59,
      "ordinal": 172,
      "text": "pod",
      "top": 1173.0,
      "left": 243.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0173",
      "page": 59,
      "ordinal": 173,
      "text": "最后其服务后端",
      "top": 1173.0,
      "left": 270.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0174",
      "page": 59,
      "ordinal": 174,
      "text": "pod",
      "top": 1173.0,
      "left": 373.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p059-h04",
        "heading_id": "p059-h04",
        "block_id": "q-p059-h04-b002"
      }
    },
    {
      "id": "p059-t0175",
      "page": 59,
      "ordinal": 175,
      "text": " resources:                 #",
      "top": 476.0,
      "left": 126.0,
      "width": 230.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0176",
      "page": 59,
      "ordinal": 176,
      "text": "资源配额",
      "top": 475.0,
      "left": 356.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0177",
      "page": 59,
      "ordinal": 177,
      "text": "      limits:                   #",
      "top": 497.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0178",
      "page": 59,
      "ordinal": 178,
      "text": "限制最大资源，上限",
      "top": 496.0,
      "left": 388.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0179",
      "page": 59,
      "ordinal": 179,
      "text": "        cpu: 2                  #CPU",
      "top": 519.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0180",
      "page": 59,
      "ordinal": 180,
      "text": "限制，单位是",
      "top": 518.0,
      "left": 412.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0181",
      "page": 59,
      "ordinal": 181,
      "text": "code",
      "top": 519.0,
      "left": 491.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0182",
      "page": 59,
      "ordinal": 182,
      "text": "数",
      "top": 518.0,
      "left": 523.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0183",
      "page": 59,
      "ordinal": 183,
      "text": "        memory: 2G              #",
      "top": 539.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0184",
      "page": 59,
      "ordinal": 184,
      "text": "内存最大限制",
      "top": 538.0,
      "left": 388.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0185",
      "page": 59,
      "ordinal": 185,
      "text": "      requests:                 #",
      "top": 560.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0186",
      "page": 59,
      "ordinal": 186,
      "text": "请求资源（最小，下限）",
      "top": 559.0,
      "left": 388.0,
      "width": 145.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0187",
      "page": 59,
      "ordinal": 187,
      "text": "        cpu: 1                  #CPU",
      "top": 582.0,
      "left": 126.0,
      "width": 286.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0188",
      "page": 59,
      "ordinal": 188,
      "text": "请求，单位是",
      "top": 581.0,
      "left": 412.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0189",
      "page": 59,
      "ordinal": 189,
      "text": "code",
      "top": 582.0,
      "left": 491.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0190",
      "page": 59,
      "ordinal": 190,
      "text": "数",
      "top": 581.0,
      "left": 523.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0191",
      "page": 59,
      "ordinal": 191,
      "text": "        memory: 500G            #",
      "top": 603.0,
      "left": 126.0,
      "width": 262.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p059-t0192",
      "page": 59,
      "ordinal": 192,
      "text": "内存最小请求",
      "top": 602.0,
      "left": 388.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p059-h02",
        "heading_id": "p059-h02",
        "block_id": "q-p059-h02-b002"
      }
    },
    {
      "id": "p060-t0001",
      "page": 60,
      "ordinal": 1,
      "text": "service",
      "top": 40.0,
      "left": 112.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01"
      }
    },
    {
      "id": "p060-t0002",
      "page": 60,
      "ordinal": 2,
      "text": "是如何与",
      "top": 40.0,
      "left": 202.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01"
      }
    },
    {
      "id": "p060-t0003",
      "page": 60,
      "ordinal": 3,
      "text": "pod",
      "top": 40.0,
      "left": 304.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01"
      }
    },
    {
      "id": "p060-t0004",
      "page": 60,
      "ordinal": 4,
      "text": "关联的",
      "top": 40.0,
      "left": 352.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01"
      }
    },
    {
      "id": "p060-t0006",
      "page": 60,
      "ordinal": 6,
      "text": "答案是通过标签选择器，每一个由",
      "top": 91.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0007",
      "page": 60,
      "ordinal": 7,
      "text": "deployment",
      "top": 91.0,
      "left": 331.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0008",
      "page": 60,
      "ordinal": 8,
      "text": "创建的",
      "top": 91.0,
      "left": 413.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0009",
      "page": 60,
      "ordinal": 9,
      "text": "pod",
      "top": 91.0,
      "left": 457.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0010",
      "page": 60,
      "ordinal": 10,
      "text": "都带有标签，这样，",
      "top": 91.0,
      "left": 484.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0011",
      "page": 60,
      "ordinal": 11,
      "text": "service",
      "top": 91.0,
      "left": 615.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0012",
      "page": 60,
      "ordinal": 12,
      "text": "就可以定义标签选",
      "top": 91.0,
      "left": 663.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0013",
      "page": 60,
      "ordinal": 13,
      "text": "择器来关联哪些",
      "top": 114.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0014",
      "page": 60,
      "ordinal": 14,
      "text": "pod",
      "top": 114.0,
      "left": 214.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0015",
      "page": 60,
      "ordinal": 15,
      "text": "是作为其后端了，就是这样，",
      "top": 114.0,
      "left": 241.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0016",
      "page": 60,
      "ordinal": 16,
      "text": "service",
      "top": 114.0,
      "left": 431.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0017",
      "page": 60,
      "ordinal": 17,
      "text": "就与",
      "top": 114.0,
      "left": 478.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0018",
      "page": 60,
      "ordinal": 18,
      "text": "pod",
      "top": 114.0,
      "left": 508.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0019",
      "page": 60,
      "ordinal": 19,
      "text": "管联在一起了。",
      "top": 114.0,
      "left": 534.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h01",
        "heading_id": "p060-h01",
        "block_id": "q-p060-h01-b001"
      }
    },
    {
      "id": "p060-t0020",
      "page": 60,
      "ordinal": 20,
      "text": "service",
      "top": 148.0,
      "left": 112.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02"
      }
    },
    {
      "id": "p060-t0021",
      "page": 60,
      "ordinal": 21,
      "text": "的域名解析格式、",
      "top": 148.0,
      "left": 202.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02"
      }
    },
    {
      "id": "p060-t0022",
      "page": 60,
      "ordinal": 22,
      "text": "pod",
      "top": 148.0,
      "left": 407.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02"
      }
    },
    {
      "id": "p060-t0023",
      "page": 60,
      "ordinal": 23,
      "text": "的域名解析格式",
      "top": 148.0,
      "left": 455.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02"
      }
    },
    {
      "id": "p060-t0025",
      "page": 60,
      "ordinal": 25,
      "text": "service",
      "top": 199.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0026",
      "page": 60,
      "ordinal": 26,
      "text": "的",
      "top": 199.0,
      "left": 159.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0027",
      "page": 60,
      "ordinal": 27,
      "text": "DNS",
      "top": 199.0,
      "left": 174.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0028",
      "page": 60,
      "ordinal": 28,
      "text": "域名表示格式为",
      "top": 199.0,
      "left": 203.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0029",
      "page": 60,
      "ordinal": 29,
      "text": "..svc.",
      "top": 199.0,
      "left": 306.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0030",
      "page": 60,
      "ordinal": 30,
      "text": "，",
      "top": 199.0,
      "left": 339.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0031",
      "page": 60,
      "ordinal": 31,
      "text": "servicename",
      "top": 199.0,
      "left": 353.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0032",
      "page": 60,
      "ordinal": 32,
      "text": "是",
      "top": 199.0,
      "left": 440.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0033",
      "page": 60,
      "ordinal": 33,
      "text": "service",
      "top": 199.0,
      "left": 454.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0034",
      "page": 60,
      "ordinal": 34,
      "text": "的名称，",
      "top": 199.0,
      "left": 502.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0035",
      "page": 60,
      "ordinal": 35,
      "text": "namespace",
      "top": 199.0,
      "left": 560.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0036",
      "page": 60,
      "ordinal": 36,
      "text": "是",
      "top": 199.0,
      "left": 638.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0037",
      "page": 60,
      "ordinal": 37,
      "text": "service",
      "top": 199.0,
      "left": 653.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0038",
      "page": 60,
      "ordinal": 38,
      "text": "所处的命名",
      "top": 199.0,
      "left": 700.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0039",
      "page": 60,
      "ordinal": 39,
      "text": "空间，",
      "top": 222.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0040",
      "page": 60,
      "ordinal": 40,
      "text": "clusterdomain",
      "top": 222.0,
      "left": 156.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0041",
      "page": 60,
      "ordinal": 41,
      "text": "是",
      "top": 222.0,
      "left": 254.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0042",
      "page": 60,
      "ordinal": 42,
      "text": "k8s",
      "top": 222.0,
      "left": 268.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0043",
      "page": 60,
      "ordinal": 43,
      "text": "集群设置的域名后缀，一般默认为",
      "top": 222.0,
      "left": 291.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0044",
      "page": 60,
      "ordinal": 44,
      "text": " cluster.local",
      "top": 222.0,
      "left": 511.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0045",
      "page": 60,
      "ordinal": 45,
      "text": "，一般的，我们不会去改",
      "top": 222.0,
      "left": 596.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0046",
      "page": 60,
      "ordinal": 46,
      "text": "k8s",
      "top": 222.0,
      "left": 757.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0047",
      "page": 60,
      "ordinal": 47,
      "text": "集群设置的域名后缀，同时，当",
      "top": 246.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0048",
      "page": 60,
      "ordinal": 48,
      "text": "pod",
      "top": 246.0,
      "left": 317.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0049",
      "page": 60,
      "ordinal": 49,
      "text": "要链接的",
      "top": 246.0,
      "left": 343.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0050",
      "page": 60,
      "ordinal": 50,
      "text": "svc",
      "top": 246.0,
      "left": 402.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0051",
      "page": 60,
      "ordinal": 51,
      "text": "处于同一个命名空间时，可以省略以及后面的",
      "top": 246.0,
      "left": 423.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0052",
      "page": 60,
      "ordinal": 52,
      "text": ".svc",
      "top": 246.0,
      "left": 716.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0053",
      "page": 60,
      "ordinal": 53,
      "text": "不",
      "top": 246.0,
      "left": 741.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0054",
      "page": 60,
      "ordinal": 54,
      "text": "写，这样，就可以有下面三种方式来表示",
      "top": 270.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0055",
      "page": 60,
      "ordinal": 55,
      "text": "svc",
      "top": 270.0,
      "left": 375.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0056",
      "page": 60,
      "ordinal": 56,
      "text": "的域名",
      "top": 270.0,
      "left": 396.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b001"
      }
    },
    {
      "id": "p060-t0057",
      "page": 60,
      "ordinal": 57,
      "text": "pod",
      "top": 450.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0058",
      "page": 60,
      "ordinal": 58,
      "text": "的",
      "top": 450.0,
      "left": 139.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0059",
      "page": 60,
      "ordinal": 59,
      "text": "DNS",
      "top": 450.0,
      "left": 153.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0060",
      "page": 60,
      "ordinal": 60,
      "text": "域名格式为：",
      "top": 450.0,
      "left": 183.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0061",
      "page": 60,
      "ordinal": 61,
      "text": "..pod. ",
      "top": 450.0,
      "left": 271.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0062",
      "page": 60,
      "ordinal": 62,
      "text": "，其中，",
      "top": 450.0,
      "left": 313.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0063",
      "page": 60,
      "ordinal": 63,
      "text": "pod-ip",
      "top": 450.0,
      "left": 371.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0064",
      "page": 60,
      "ordinal": 64,
      "text": "需要使用",
      "top": 450.0,
      "left": 415.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0065",
      "page": 60,
      "ordinal": 65,
      "text": "-",
      "top": 450.0,
      "left": 474.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0066",
      "page": 60,
      "ordinal": 66,
      "text": "将",
      "top": 450.0,
      "left": 479.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0067",
      "page": 60,
      "ordinal": 67,
      "text": "ip",
      "top": 450.0,
      "left": 493.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0068",
      "page": 60,
      "ordinal": 68,
      "text": "直接的点替换掉，",
      "top": 450.0,
      "left": 506.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0069",
      "page": 60,
      "ordinal": 69,
      "text": "namespace",
      "top": 450.0,
      "left": 623.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0070",
      "page": 60,
      "ordinal": 70,
      "text": "为",
      "top": 450.0,
      "left": 701.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0071",
      "page": 60,
      "ordinal": 71,
      "text": "pod",
      "top": 450.0,
      "left": 716.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0072",
      "page": 60,
      "ordinal": 72,
      "text": "所在",
      "top": 450.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0073",
      "page": 60,
      "ordinal": 73,
      "text": "的命名空间，",
      "top": 473.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0074",
      "page": 60,
      "ordinal": 74,
      "text": "clusterdomain",
      "top": 473.0,
      "left": 200.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0075",
      "page": 60,
      "ordinal": 75,
      "text": "是",
      "top": 473.0,
      "left": 298.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0076",
      "page": 60,
      "ordinal": 76,
      "text": "k8s",
      "top": 473.0,
      "left": 312.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0077",
      "page": 60,
      "ordinal": 77,
      "text": "集群设置的域名后缀，一般默认为",
      "top": 473.0,
      "left": 335.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0078",
      "page": 60,
      "ordinal": 78,
      "text": " cluster.local ",
      "top": 473.0,
      "left": 555.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0079",
      "page": 60,
      "ordinal": 79,
      "text": "，如果没有改变",
      "top": 473.0,
      "left": 643.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0080",
      "page": 60,
      "ordinal": 80,
      "text": "k8s",
      "top": 473.0,
      "left": 746.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0081",
      "page": 60,
      "ordinal": 81,
      "text": "集群默认的域名后缀，则可以省略该后缀不写。除此之外，其他的均不可省略，这一点与",
      "top": 497.0,
      "left": 112.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0082",
      "page": 60,
      "ordinal": 82,
      "text": "svc",
      "top": 497.0,
      "left": 682.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0083",
      "page": 60,
      "ordinal": 83,
      "text": "域名有所不",
      "top": 497.0,
      "left": 703.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0084",
      "page": 60,
      "ordinal": 84,
      "text": "同。",
      "top": 519.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b003"
      }
    },
    {
      "id": "p060-t0085",
      "page": 60,
      "ordinal": 85,
      "text": "对于",
      "top": 848.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0086",
      "page": 60,
      "ordinal": 86,
      "text": "StatefulSet",
      "top": 848.0,
      "left": 141.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0087",
      "page": 60,
      "ordinal": 87,
      "text": "创建的",
      "top": 848.0,
      "left": 215.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0088",
      "page": 60,
      "ordinal": 88,
      "text": "pod",
      "top": 848.0,
      "left": 259.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0089",
      "page": 60,
      "ordinal": 89,
      "text": "，",
      "top": 848.0,
      "left": 285.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0090",
      "page": 60,
      "ordinal": 90,
      "text": "statefulset.spec.serviceName",
      "top": 848.0,
      "left": 300.0,
      "width": 199.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0091",
      "page": 60,
      "ordinal": 91,
      "text": "字段解释如下：",
      "top": 848.0,
      "left": 499.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0092",
      "page": 60,
      "ordinal": 92,
      "text": "也就是说",
      "top": 872.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0093",
      "page": 60,
      "ordinal": 93,
      "text": "StatefulSet",
      "top": 872.0,
      "left": 170.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0094",
      "page": 60,
      "ordinal": 94,
      "text": "创建的",
      "top": 872.0,
      "left": 244.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0095",
      "page": 60,
      "ordinal": 95,
      "text": "pod",
      "top": 872.0,
      "left": 288.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0096",
      "page": 60,
      "ordinal": 96,
      "text": "，其",
      "top": 872.0,
      "left": 315.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0097",
      "page": 60,
      "ordinal": 97,
      "text": "pod",
      "top": 872.0,
      "left": 344.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0098",
      "page": 60,
      "ordinal": 98,
      "text": "的域名为：",
      "top": 872.0,
      "left": 371.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0099",
      "page": 60,
      "ordinal": 99,
      "text": "pod-specific-",
      "top": 872.0,
      "left": 444.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0100",
      "page": 60,
      "ordinal": 100,
      "text": "string.serviceName.default.svc.cluster.local",
      "top": 895.0,
      "left": 112.0,
      "width": 293.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0101",
      "page": 60,
      "ordinal": 101,
      "text": "，而",
      "top": 895.0,
      "left": 405.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0102",
      "page": 60,
      "ordinal": 102,
      "text": "pod-specific-string",
      "top": 895.0,
      "left": 434.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0103",
      "page": 60,
      "ordinal": 103,
      "text": "就是",
      "top": 895.0,
      "left": 560.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0104",
      "page": 60,
      "ordinal": 104,
      "text": "pod",
      "top": 895.0,
      "left": 589.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0105",
      "page": 60,
      "ordinal": 105,
      "text": "的名称。",
      "top": 895.0,
      "left": 616.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0106",
      "page": 60,
      "ordinal": 106,
      "text": "例如：",
      "top": 918.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0107",
      "page": 60,
      "ordinal": 107,
      "text": "redis-sts-0.redis-svc.default.svc.cluster.local:6379,redis-sts-1.redis-",
      "top": 918.0,
      "left": 156.0,
      "width": 451.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0108",
      "page": 60,
      "ordinal": 108,
      "text": "svc.default.svc.cluster.local:6379,redis-sts-2.redis-svc.default.svc.cluster.local:6379,redis-sts-",
      "top": 941.0,
      "left": 112.0,
      "width": 624.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0109",
      "page": 60,
      "ordinal": 109,
      "text": "3.redis-svc.default.svc.cluster.local:6379,redis-sts-4.redis-svc.default.svc.cluster.local:6379,redis-",
      "top": 965.0,
      "left": 112.0,
      "width": 651.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0110",
      "page": 60,
      "ordinal": 110,
      "text": "sts-5.redis-svc.default.svc.cluster.local:6379",
      "top": 989.0,
      "left": 112.0,
      "width": 295.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0111",
      "page": 60,
      "ordinal": 111,
      "text": "，",
      "top": 989.0,
      "left": 407.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0112",
      "page": 60,
      "ordinal": 112,
      "text": "pod",
      "top": 989.0,
      "left": 422.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0113",
      "page": 60,
      "ordinal": 113,
      "text": "里面的应用程序就可以拿这串字符串去连接",
      "top": 989.0,
      "left": 449.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0114",
      "page": 60,
      "ordinal": 114,
      "text": "Redis",
      "top": 989.0,
      "left": 726.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0115",
      "page": 60,
      "ordinal": 115,
      "text": "集",
      "top": 989.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0116",
      "page": 60,
      "ordinal": 116,
      "text": "群了",
      "top": 1011.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b005"
      }
    },
    {
      "id": "p060-t0117",
      "page": 60,
      "ordinal": 117,
      "text": "service",
      "top": 1046.0,
      "left": 112.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03"
      }
    },
    {
      "id": "p060-t0118",
      "page": 60,
      "ordinal": 118,
      "text": "的类型有哪几种",
      "top": 1046.0,
      "left": 202.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03"
      }
    },
    {
      "id": "p060-t0120",
      "page": 60,
      "ordinal": 120,
      "text": "ClusterIP",
      "top": 1097.0,
      "left": 112.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0121",
      "page": 60,
      "ordinal": 121,
      "text": "：表示",
      "top": 1097.0,
      "left": 173.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0122",
      "page": 60,
      "ordinal": 122,
      "text": "service",
      "top": 1097.0,
      "left": 217.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0123",
      "page": 60,
      "ordinal": 123,
      "text": "仅供集群内部使用，默认值就是",
      "top": 1097.0,
      "left": 264.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0124",
      "page": 60,
      "ordinal": 124,
      "text": "ClusterIP",
      "top": 1097.0,
      "left": 469.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0125",
      "page": 60,
      "ordinal": 125,
      "text": "类型",
      "top": 1097.0,
      "left": 530.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0126",
      "page": 60,
      "ordinal": 126,
      "text": "NodePort",
      "top": 1120.0,
      "left": 112.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0127",
      "page": 60,
      "ordinal": 127,
      "text": "：表示",
      "top": 1120.0,
      "left": 178.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0128",
      "page": 60,
      "ordinal": 128,
      "text": "service",
      "top": 1120.0,
      "left": 221.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0129",
      "page": 60,
      "ordinal": 129,
      "text": "可以对外访问应用，会在每个节点上暴露一个端口，这样外部浏览器访问地址",
      "top": 1120.0,
      "left": 269.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0130",
      "page": 60,
      "ordinal": 130,
      "text": "为：任意节点的",
      "top": 1144.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0131",
      "page": 60,
      "ordinal": 131,
      "text": "IP",
      "top": 1144.0,
      "left": 214.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0132",
      "page": 60,
      "ordinal": 132,
      "text": "：",
      "top": 1144.0,
      "left": 227.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0133",
      "page": 60,
      "ordinal": 133,
      "text": "NodePort",
      "top": 1144.0,
      "left": 242.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0134",
      "page": 60,
      "ordinal": 134,
      "text": "就能连上",
      "top": 1144.0,
      "left": 307.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0135",
      "page": 60,
      "ordinal": 135,
      "text": "service",
      "top": 1144.0,
      "left": 366.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0136",
      "page": 60,
      "ordinal": 136,
      "text": "了",
      "top": 1144.0,
      "left": 413.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0137",
      "page": 60,
      "ordinal": 137,
      "text": "LoadBalancer",
      "top": 1167.0,
      "left": 112.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0138",
      "page": 60,
      "ordinal": 138,
      "text": "：表示",
      "top": 1167.0,
      "left": 205.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0139",
      "page": 60,
      "ordinal": 139,
      "text": "service",
      "top": 1167.0,
      "left": 249.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0140",
      "page": 60,
      "ordinal": 140,
      "text": "对外访问应用，这种类型的",
      "top": 1167.0,
      "left": 296.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0141",
      "page": 60,
      "ordinal": 141,
      "text": "service",
      "top": 1167.0,
      "left": 472.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0142",
      "page": 60,
      "ordinal": 142,
      "text": "是公有云环境下的",
      "top": 1167.0,
      "left": 519.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0143",
      "page": 60,
      "ordinal": 143,
      "text": "service",
      "top": 1167.0,
      "left": 636.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0144",
      "page": 60,
      "ordinal": 144,
      "text": "，此模式需要",
      "top": 1167.0,
      "left": 683.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0145",
      "page": 60,
      "ordinal": 145,
      "text": "外部云厂商的支持，需要有一个公网",
      "top": 1190.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0146",
      "page": 60,
      "ordinal": 146,
      "text": "IP",
      "top": 1190.0,
      "left": 346.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0147",
      "page": 60,
      "ordinal": 147,
      "text": "地址",
      "top": 1190.0,
      "left": 359.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p060-t0148",
      "page": 60,
      "ordinal": 148,
      "text": "svc-nginx.default.svc.cluster.local             #",
      "top": 322.0,
      "left": 126.0,
      "width": 389.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0149",
      "page": 60,
      "ordinal": 149,
      "text": "完整的写法",
      "top": 321.0,
      "left": 515.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0151",
      "page": 60,
      "ordinal": 151,
      "text": "svc-nginx.default                               #",
      "top": 342.0,
      "left": 126.0,
      "width": 389.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0152",
      "page": 60,
      "ordinal": 152,
      "text": "带命名空间写法",
      "top": 341.0,
      "left": 515.0,
      "width": 92.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0153",
      "page": 60,
      "ordinal": 153,
      "text": ",",
      "top": 342.0,
      "left": 607.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0154",
      "page": 60,
      "ordinal": 154,
      "text": "省略了后面的",
      "top": 341.0,
      "left": 615.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0155",
      "page": 60,
      "ordinal": 155,
      "text": ".svc.",
      "top": 342.0,
      "left": 694.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0156",
      "page": 60,
      "ordinal": 156,
      "text": "<clusterdomain>",
      "top": 363.0,
      "left": 126.0,
      "width": 119.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0157",
      "page": 60,
      "ordinal": 157,
      "text": "svc-nginx                                       #",
      "top": 385.0,
      "left": 126.0,
      "width": 389.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0158",
      "page": 60,
      "ordinal": 158,
      "text": "如果",
      "top": 384.0,
      "left": 515.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0159",
      "page": 60,
      "ordinal": 159,
      "text": "pod",
      "top": 385.0,
      "left": 541.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0160",
      "page": 60,
      "ordinal": 160,
      "text": "与",
      "top": 384.0,
      "left": 565.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0161",
      "page": 60,
      "ordinal": 161,
      "text": "svc",
      "top": 385.0,
      "left": 578.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0162",
      "page": 60,
      "ordinal": 162,
      "text": "在同一个命名空间，可以将",
      "top": 384.0,
      "left": 602.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0163",
      "page": 60,
      "ordinal": 163,
      "text": "命名空间省略不写",
      "top": 404.0,
      "left": 126.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b002"
      }
    },
    {
      "id": "p060-t0164",
      "page": 60,
      "ordinal": 164,
      "text": "#",
      "top": 572.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0165",
      "page": 60,
      "ordinal": 165,
      "text": "进入",
      "top": 571.0,
      "left": 134.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0166",
      "page": 60,
      "ordinal": 166,
      "text": "default",
      "top": 572.0,
      "left": 161.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0167",
      "page": 60,
      "ordinal": 167,
      "text": "命名空间的",
      "top": 571.0,
      "left": 216.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0168",
      "page": 60,
      "ordinal": 168,
      "text": "busybox pod",
      "top": 572.0,
      "left": 282.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0169",
      "page": 60,
      "ordinal": 169,
      "text": "里面，测试下载文件",
      "top": 571.0,
      "left": 369.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0170",
      "page": 60,
      "ordinal": 170,
      "text": "kubectl -n default exec -it deployment-busybox-567674bd67-lmrgw -- sh",
      "top": 593.0,
      "left": 126.0,
      "width": 547.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0171",
      "page": 60,
      "ordinal": 171,
      "text": "wget 10-244-166-167.helm.pod.cluster.local:80       #",
      "top": 614.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0172",
      "page": 60,
      "ordinal": 172,
      "text": "可以正常下载，这里下载的是",
      "top": 613.0,
      "left": 547.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0173",
      "page": 60,
      "ordinal": 173,
      "text": "helm",
      "top": 614.0,
      "left": 718.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0174",
      "page": 60,
      "ordinal": 174,
      "text": "命",
      "top": 613.0,
      "left": 750.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0175",
      "page": 60,
      "ordinal": 175,
      "text": "名空间里的",
      "top": 634.0,
      "left": 126.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0176",
      "page": 60,
      "ordinal": 176,
      "text": "IP",
      "top": 635.0,
      "left": 192.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0177",
      "page": 60,
      "ordinal": 177,
      "text": "为",
      "top": 634.0,
      "left": 208.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0178",
      "page": 60,
      "ordinal": 178,
      "text": "10.244.166.167",
      "top": 635.0,
      "left": 221.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0179",
      "page": 60,
      "ordinal": 179,
      "text": "的",
      "top": 634.0,
      "left": 332.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0180",
      "page": 60,
      "ordinal": 180,
      "text": "pod",
      "top": 635.0,
      "left": 345.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0181",
      "page": 60,
      "ordinal": 181,
      "text": "wget 10-244-166-167.helm.pod:80                     #",
      "top": 656.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0182",
      "page": 60,
      "ordinal": 182,
      "text": "可以正常下载，这里把",
      "top": 655.0,
      "left": 547.0,
      "width": 132.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0183",
      "page": 60,
      "ordinal": 183,
      "text": "k8s",
      "top": 656.0,
      "left": 678.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0184",
      "page": 60,
      "ordinal": 184,
      "text": "集群设置的",
      "top": 655.0,
      "left": 702.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0185",
      "page": 60,
      "ordinal": 185,
      "text": "域名后缀默认省略了",
      "top": 676.0,
      "left": 126.0,
      "width": 118.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0187",
      "page": 60,
      "ordinal": 187,
      "text": "wget 10-244-166-143.default.pod:80                  #",
      "top": 699.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0188",
      "page": 60,
      "ordinal": 188,
      "text": "可以正常下载，这里下载的是",
      "top": 698.0,
      "left": 547.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0189",
      "page": 60,
      "ordinal": 189,
      "text": "default",
      "top": 719.0,
      "left": 126.0,
      "width": 56.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0190",
      "page": 60,
      "ordinal": 190,
      "text": "命名空间里的",
      "top": 718.0,
      "left": 182.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0191",
      "page": 60,
      "ordinal": 191,
      "text": "IP",
      "top": 719.0,
      "left": 261.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0192",
      "page": 60,
      "ordinal": 192,
      "text": "为",
      "top": 718.0,
      "left": 277.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0193",
      "page": 60,
      "ordinal": 193,
      "text": "10.244.166.143",
      "top": 719.0,
      "left": 290.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0194",
      "page": 60,
      "ordinal": 194,
      "text": "的",
      "top": 718.0,
      "left": 401.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0195",
      "page": 60,
      "ordinal": 195,
      "text": "pod",
      "top": 719.0,
      "left": 414.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0196",
      "page": 60,
      "ordinal": 196,
      "text": "wget 10-244-166-143.default:80                      #",
      "top": 740.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0197",
      "page": 60,
      "ordinal": 197,
      "text": "报错了，错误写法，说明不能省略",
      "top": 739.0,
      "left": 547.0,
      "width": 197.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0198",
      "page": 60,
      "ordinal": 198,
      "text": "pod",
      "top": 740.0,
      "left": 744.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0199",
      "page": 60,
      "ordinal": 199,
      "text": "关键字",
      "top": 761.0,
      "left": 126.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0200",
      "page": 60,
      "ordinal": 200,
      "text": "wget 10-244-166-143:80                              #",
      "top": 782.0,
      "left": 126.0,
      "width": 420.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0201",
      "page": 60,
      "ordinal": 201,
      "text": "报错了，错误写法，说明不能省略命名",
      "top": 781.0,
      "left": 547.0,
      "width": 224.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0202",
      "page": 60,
      "ordinal": 202,
      "text": "空间和",
      "top": 802.0,
      "left": 126.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0203",
      "page": 60,
      "ordinal": 203,
      "text": "pod",
      "top": 803.0,
      "left": 166.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p060-t0204",
      "page": 60,
      "ordinal": 204,
      "text": "关键字",
      "top": 802.0,
      "left": 190.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p060-h02",
        "heading_id": "p060-h02",
        "block_id": "q-p060-h02-b004"
      }
    },
    {
      "id": "p061-t0001",
      "page": 61,
      "ordinal": 1,
      "text": "ExternalName",
      "top": 44.0,
      "left": 112.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0002",
      "page": 61,
      "ordinal": 2,
      "text": "：这种类型的",
      "top": 44.0,
      "left": 209.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0003",
      "page": 61,
      "ordinal": 3,
      "text": "service",
      "top": 44.0,
      "left": 296.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0004",
      "page": 61,
      "ordinal": 4,
      "text": "会把集群外部的服务引入集群内部，这样集群内直接访问",
      "top": 44.0,
      "left": 344.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0005",
      "page": 61,
      "ordinal": 5,
      "text": "service",
      "top": 44.0,
      "left": 709.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0006",
      "page": 61,
      "ordinal": 6,
      "text": "就",
      "top": 44.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0007",
      "page": 61,
      "ordinal": 7,
      "text": "可以间接的使用集群外部服务了",
      "top": 67.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0008",
      "page": 61,
      "ordinal": 8,
      "text": "一般情况下，",
      "top": 91.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0009",
      "page": 61,
      "ordinal": 9,
      "text": "service",
      "top": 91.0,
      "left": 200.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0010",
      "page": 61,
      "ordinal": 10,
      "text": "都是",
      "top": 91.0,
      "left": 247.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0011",
      "page": 61,
      "ordinal": 11,
      "text": "ClusterIP",
      "top": 91.0,
      "left": 276.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0012",
      "page": 61,
      "ordinal": 12,
      "text": "类型的，通过",
      "top": 91.0,
      "left": 337.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0013",
      "page": 61,
      "ordinal": 13,
      "text": "ingress",
      "top": 91.0,
      "left": 425.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0014",
      "page": 61,
      "ordinal": 14,
      "text": "接入的外部流量。",
      "top": 91.0,
      "left": 474.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p060-h03",
        "heading_id": "p060-h03",
        "block_id": "q-p060-h03-b001"
      }
    },
    {
      "id": "p061-t0015",
      "page": 61,
      "ordinal": 15,
      "text": "一个应用",
      "top": 124.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0016",
      "page": 61,
      "ordinal": 16,
      "text": "pod",
      "top": 124.0,
      "left": 214.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0017",
      "page": 61,
      "ordinal": 17,
      "text": "是如何发现",
      "top": 124.0,
      "left": 262.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0018",
      "page": 61,
      "ordinal": 18,
      "text": "service",
      "top": 124.0,
      "left": 390.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0019",
      "page": 61,
      "ordinal": 19,
      "text": "的，或者说，",
      "top": 124.0,
      "left": 480.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0020",
      "page": 61,
      "ordinal": 20,
      "text": "pod",
      "top": 124.0,
      "left": 634.0,
      "width": 48.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0021",
      "page": 61,
      "ordinal": 21,
      "text": "里面的",
      "top": 124.0,
      "left": 682.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0022",
      "page": 61,
      "ordinal": 22,
      "text": "容器用于是如何连接",
      "top": 156.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0023",
      "page": 61,
      "ordinal": 23,
      "text": "service",
      "top": 156.0,
      "left": 342.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0024",
      "page": 61,
      "ordinal": 24,
      "text": "的？",
      "top": 156.0,
      "left": 432.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01"
      }
    },
    {
      "id": "p061-t0026",
      "page": 61,
      "ordinal": 26,
      "text": "有两种方式，一种是通过环境变量，另一种是通过",
      "top": 207.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b001"
      }
    },
    {
      "id": "p061-t0027",
      "page": 61,
      "ordinal": 27,
      "text": "service",
      "top": 207.0,
      "left": 434.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b001"
      }
    },
    {
      "id": "p061-t0028",
      "page": 61,
      "ordinal": 28,
      "text": "的",
      "top": 207.0,
      "left": 481.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b001"
      }
    },
    {
      "id": "p061-t0029",
      "page": 61,
      "ordinal": 29,
      "text": "dns",
      "top": 207.0,
      "left": 495.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b001"
      }
    },
    {
      "id": "p061-t0030",
      "page": 61,
      "ordinal": 30,
      "text": "域名方式。",
      "top": 207.0,
      "left": 520.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b001"
      }
    },
    {
      "id": "p061-t0031",
      "page": 61,
      "ordinal": 31,
      "text": "1",
      "top": 230.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0032",
      "page": 61,
      "ordinal": 32,
      "text": "、环境变量：当",
      "top": 230.0,
      "left": 120.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0033",
      "page": 61,
      "ordinal": 33,
      "text": "pod",
      "top": 230.0,
      "left": 222.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0034",
      "page": 61,
      "ordinal": 34,
      "text": "被创建之后，",
      "top": 230.0,
      "left": 249.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0035",
      "page": 61,
      "ordinal": 35,
      "text": "k8s",
      "top": 230.0,
      "left": 337.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0036",
      "page": 61,
      "ordinal": 36,
      "text": "系统会自动为容器注入集群内有效的",
      "top": 230.0,
      "left": 360.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0037",
      "page": 61,
      "ordinal": 37,
      "text": "service",
      "top": 230.0,
      "left": 594.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0038",
      "page": 61,
      "ordinal": 38,
      "text": "名称和端口号等信息",
      "top": 230.0,
      "left": 641.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0039",
      "page": 61,
      "ordinal": 39,
      "text": "为环境变量的形式，这样容器应用直接通过取环境变量值就能访问",
      "top": 254.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0040",
      "page": 61,
      "ordinal": 40,
      "text": "service",
      "top": 254.0,
      "left": 536.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0041",
      "page": 61,
      "ordinal": 41,
      "text": "了，如",
      "top": 254.0,
      "left": 583.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0042",
      "page": 61,
      "ordinal": 42,
      "text": "curl ",
      "top": 254.0,
      "left": 627.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0043",
      "page": 61,
      "ordinal": 43,
      "text": "http://${WEBAPP_SERVICE_HOST}:{WEBAPP_SERVICE_PORT}",
      "top": 278.0,
      "left": 112.0,
      "width": 406.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b002"
      }
    },
    {
      "id": "p061-t0044",
      "page": 61,
      "ordinal": 44,
      "text": "2",
      "top": 300.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0045",
      "page": 61,
      "ordinal": 45,
      "text": "、",
      "top": 300.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0046",
      "page": 61,
      "ordinal": 46,
      "text": "DNS",
      "top": 300.0,
      "left": 135.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0047",
      "page": 61,
      "ordinal": 47,
      "text": "方式：使用",
      "top": 300.0,
      "left": 164.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0048",
      "page": 61,
      "ordinal": 48,
      "text": "dns",
      "top": 300.0,
      "left": 238.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0049",
      "page": 61,
      "ordinal": 49,
      "text": "域名解析的前提是",
      "top": 300.0,
      "left": 262.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0050",
      "page": 61,
      "ordinal": 50,
      "text": "k8s",
      "top": 300.0,
      "left": 379.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0051",
      "page": 61,
      "ordinal": 51,
      "text": "集群内有",
      "top": 300.0,
      "left": 403.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0052",
      "page": 61,
      "ordinal": 52,
      "text": "DNS",
      "top": 300.0,
      "left": 461.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0053",
      "page": 61,
      "ordinal": 53,
      "text": "域名解析服务器，默认",
      "top": 300.0,
      "left": 491.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0054",
      "page": 61,
      "ordinal": 54,
      "text": "k8s",
      "top": 300.0,
      "left": 637.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0055",
      "page": 61,
      "ordinal": 55,
      "text": "中会有一个",
      "top": 300.0,
      "left": 660.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0056",
      "page": 61,
      "ordinal": 56,
      "text": "CoreDNS",
      "top": 324.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0057",
      "page": 61,
      "ordinal": 57,
      "text": "作为",
      "top": 324.0,
      "left": 174.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0058",
      "page": 61,
      "ordinal": 58,
      "text": "k8s",
      "top": 324.0,
      "left": 203.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0059",
      "page": 61,
      "ordinal": 59,
      "text": "集群的默认",
      "top": 324.0,
      "left": 226.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0060",
      "page": 61,
      "ordinal": 60,
      "text": "DNS",
      "top": 324.0,
      "left": 299.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0061",
      "page": 61,
      "ordinal": 61,
      "text": "服务器提供域名解析服务器；",
      "top": 324.0,
      "left": 329.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0062",
      "page": 61,
      "ordinal": 62,
      "text": "service",
      "top": 324.0,
      "left": 519.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0063",
      "page": 61,
      "ordinal": 63,
      "text": "的",
      "top": 324.0,
      "left": 566.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0064",
      "page": 61,
      "ordinal": 64,
      "text": "DNS",
      "top": 324.0,
      "left": 581.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0065",
      "page": 61,
      "ordinal": 65,
      "text": "域名表示格式为",
      "top": 324.0,
      "left": 611.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0066",
      "page": 61,
      "ordinal": 66,
      "text": "..svc.",
      "top": 324.0,
      "left": 713.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0067",
      "page": 61,
      "ordinal": 67,
      "text": "，",
      "top": 324.0,
      "left": 746.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0068",
      "page": 61,
      "ordinal": 68,
      "text": "servicename",
      "top": 347.0,
      "left": 112.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0069",
      "page": 61,
      "ordinal": 69,
      "text": "是",
      "top": 347.0,
      "left": 198.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0070",
      "page": 61,
      "ordinal": 70,
      "text": "service",
      "top": 347.0,
      "left": 213.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0071",
      "page": 61,
      "ordinal": 71,
      "text": "的名称，",
      "top": 347.0,
      "left": 260.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0072",
      "page": 61,
      "ordinal": 72,
      "text": "namespace",
      "top": 347.0,
      "left": 318.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0073",
      "page": 61,
      "ordinal": 73,
      "text": "是",
      "top": 347.0,
      "left": 397.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0074",
      "page": 61,
      "ordinal": 74,
      "text": "service",
      "top": 347.0,
      "left": 411.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0075",
      "page": 61,
      "ordinal": 75,
      "text": "所处的命名空间，",
      "top": 347.0,
      "left": 459.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0076",
      "page": 61,
      "ordinal": 76,
      "text": "clusterdomain",
      "top": 347.0,
      "left": 576.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0077",
      "page": 61,
      "ordinal": 77,
      "text": "是",
      "top": 347.0,
      "left": 674.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0078",
      "page": 61,
      "ordinal": 78,
      "text": "k8s",
      "top": 347.0,
      "left": 688.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0079",
      "page": 61,
      "ordinal": 79,
      "text": "集群设置",
      "top": 347.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0080",
      "page": 61,
      "ordinal": 80,
      "text": "的域名后缀，一般默认为",
      "top": 371.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0081",
      "page": 61,
      "ordinal": 81,
      "text": " cluster.local ",
      "top": 371.0,
      "left": 273.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0082",
      "page": 61,
      "ordinal": 82,
      "text": "，这样容器应用直接通过",
      "top": 371.0,
      "left": 361.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0083",
      "page": 61,
      "ordinal": 83,
      "text": "service",
      "top": 371.0,
      "left": 522.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0084",
      "page": 61,
      "ordinal": 84,
      "text": "域名就能访问",
      "top": 371.0,
      "left": 570.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0085",
      "page": 61,
      "ordinal": 85,
      "text": "service",
      "top": 371.0,
      "left": 657.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0086",
      "page": 61,
      "ordinal": 86,
      "text": "了，如",
      "top": 371.0,
      "left": 705.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0087",
      "page": 61,
      "ordinal": 87,
      "text": "wget ",
      "top": 371.0,
      "left": 749.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0088",
      "page": 61,
      "ordinal": 88,
      "text": "http://svc-deployment-nginx.default.svc.cluster.local:80",
      "top": 393.0,
      "left": 112.0,
      "width": 376.0,
      "height": 20.0,
      "font": "2",
      "size": 15,
      "links": [
        "http://svc-deployment-nginx.default.svc.cluster.local/"
      ],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0089",
      "page": 61,
      "ordinal": 89,
      "text": "，另外，",
      "top": 393.0,
      "left": 487.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [
        "http://svc-deployment-nginx.default.svc.cluster.local/"
      ],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0090",
      "page": 61,
      "ordinal": 90,
      "text": "service",
      "top": 393.0,
      "left": 546.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0091",
      "page": 61,
      "ordinal": 91,
      "text": "的",
      "top": 393.0,
      "left": 593.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0092",
      "page": 61,
      "ordinal": 92,
      "text": "port",
      "top": 393.0,
      "left": 608.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0093",
      "page": 61,
      "ordinal": 93,
      "text": "端口如果定义了名",
      "top": 393.0,
      "left": 637.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0094",
      "page": 61,
      "ordinal": 94,
      "text": "称，那么",
      "top": 417.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0095",
      "page": 61,
      "ordinal": 95,
      "text": "port",
      "top": 417.0,
      "left": 170.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0096",
      "page": 61,
      "ordinal": 96,
      "text": "也可以通过",
      "top": 417.0,
      "left": 199.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0097",
      "page": 61,
      "ordinal": 97,
      "text": "DNS",
      "top": 417.0,
      "left": 272.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0098",
      "page": 61,
      "ordinal": 98,
      "text": "进行解析，格式为：",
      "top": 417.0,
      "left": 302.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0099",
      "page": 61,
      "ordinal": 99,
      "text": ".",
      "top": 417.0,
      "left": 434.0,
      "width": 4.0,
      "height": 20.0,
      "font": "12",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0100",
      "page": 61,
      "ordinal": 100,
      "text": "...svc.",
      "top": 417.0,
      "left": 437.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h01",
        "heading_id": "p061-h01",
        "block_id": "q-p061-h01-b003"
      }
    },
    {
      "id": "p061-t0101",
      "page": 61,
      "ordinal": 101,
      "text": "如何创建一个",
      "top": 452.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0102",
      "page": 61,
      "ordinal": 102,
      "text": "service",
      "top": 452.0,
      "left": 265.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0103",
      "page": 61,
      "ordinal": 103,
      "text": "代理外部的服务，或者换句话来说，",
      "top": 452.0,
      "left": 355.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0104",
      "page": 61,
      "ordinal": 104,
      "text": "在",
      "top": 483.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0105",
      "page": 61,
      "ordinal": 105,
      "text": "k8s",
      "top": 483.0,
      "left": 137.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0106",
      "page": 61,
      "ordinal": 106,
      "text": "集群内的应用如何访问外部的服务，如数据库服务，",
      "top": 483.0,
      "left": 181.0,
      "width": 589.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0107",
      "page": 61,
      "ordinal": 107,
      "text": "缓存服务等",
      "top": 515.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0108",
      "page": 61,
      "ordinal": 108,
      "text": "?",
      "top": 515.0,
      "left": 240.0,
      "width": 12.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02"
      }
    },
    {
      "id": "p061-t0110",
      "page": 61,
      "ordinal": 110,
      "text": "可以通过创建一个没有标签选择器的",
      "top": 566.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b001"
      }
    },
    {
      "id": "p061-t0111",
      "page": 61,
      "ordinal": 111,
      "text": "service",
      "top": 566.0,
      "left": 346.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b001"
      }
    },
    {
      "id": "p061-t0112",
      "page": 61,
      "ordinal": 112,
      "text": "来代理集群外部的服务。",
      "top": 566.0,
      "left": 393.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b001"
      }
    },
    {
      "id": "p061-t0113",
      "page": 61,
      "ordinal": 113,
      "text": "1",
      "top": 588.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0114",
      "page": 61,
      "ordinal": 114,
      "text": "、创建",
      "top": 588.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0115",
      "page": 61,
      "ordinal": 115,
      "text": "service",
      "top": 588.0,
      "left": 164.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0116",
      "page": 61,
      "ordinal": 116,
      "text": "时不指定",
      "top": 588.0,
      "left": 211.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0117",
      "page": 61,
      "ordinal": 117,
      "text": "selector",
      "top": 588.0,
      "left": 270.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0118",
      "page": 61,
      "ordinal": 118,
      "text": "标签选择器，但需要指定",
      "top": 588.0,
      "left": 324.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0119",
      "page": 61,
      "ordinal": 119,
      "text": "service",
      "top": 588.0,
      "left": 485.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0120",
      "page": 61,
      "ordinal": 120,
      "text": "的",
      "top": 588.0,
      "left": 532.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0121",
      "page": 61,
      "ordinal": 121,
      "text": "port",
      "top": 588.0,
      "left": 547.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0122",
      "page": 61,
      "ordinal": 122,
      "text": "端口、端口的",
      "top": 588.0,
      "left": 576.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0123",
      "page": 61,
      "ordinal": 123,
      "text": "name",
      "top": 588.0,
      "left": 663.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0124",
      "page": 61,
      "ordinal": 124,
      "text": "、端口协议",
      "top": 588.0,
      "left": 702.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0125",
      "page": 61,
      "ordinal": 125,
      "text": "等，这样创建出来的",
      "top": 612.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0126",
      "page": 61,
      "ordinal": 126,
      "text": "service",
      "top": 612.0,
      "left": 243.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0127",
      "page": 61,
      "ordinal": 127,
      "text": "因为没有指定标签选择器就不会自动创建",
      "top": 612.0,
      "left": 291.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0128",
      "page": 61,
      "ordinal": 128,
      "text": "endpoint",
      "top": 612.0,
      "left": 554.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0129",
      "page": 61,
      "ordinal": 129,
      "text": "；",
      "top": 612.0,
      "left": 616.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b002"
      }
    },
    {
      "id": "p061-t0130",
      "page": 61,
      "ordinal": 130,
      "text": "2",
      "top": 635.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0131",
      "page": 61,
      "ordinal": 131,
      "text": "、手动创建一个与",
      "top": 635.0,
      "left": 120.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0132",
      "page": 61,
      "ordinal": 132,
      "text": "service",
      "top": 635.0,
      "left": 237.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0133",
      "page": 61,
      "ordinal": 133,
      "text": "同名的",
      "top": 635.0,
      "left": 284.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0134",
      "page": 61,
      "ordinal": 134,
      "text": "endpoint",
      "top": 635.0,
      "left": 328.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0135",
      "page": 61,
      "ordinal": 135,
      "text": "，",
      "top": 635.0,
      "left": 390.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0136",
      "page": 61,
      "ordinal": 136,
      "text": "endpoint",
      "top": 635.0,
      "left": 405.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0137",
      "page": 61,
      "ordinal": 137,
      "text": "中定义外部服务的",
      "top": 635.0,
      "left": 467.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0138",
      "page": 61,
      "ordinal": 138,
      "text": "IP",
      "top": 635.0,
      "left": 584.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0139",
      "page": 61,
      "ordinal": 139,
      "text": "和端口，",
      "top": 635.0,
      "left": 596.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0140",
      "page": 61,
      "ordinal": 140,
      "text": "endpoint",
      "top": 635.0,
      "left": 655.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0141",
      "page": 61,
      "ordinal": 141,
      "text": "的名称一",
      "top": 635.0,
      "left": 717.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0142",
      "page": 61,
      "ordinal": 142,
      "text": "定要与",
      "top": 659.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0143",
      "page": 61,
      "ordinal": 143,
      "text": "service",
      "top": 659.0,
      "left": 156.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0144",
      "page": 61,
      "ordinal": 144,
      "text": "的名称一样，端口协议也要一样，端口的",
      "top": 659.0,
      "left": 203.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0145",
      "page": 61,
      "ordinal": 145,
      "text": "name",
      "top": 659.0,
      "left": 466.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0146",
      "page": 61,
      "ordinal": 146,
      "text": "也要与",
      "top": 659.0,
      "left": 505.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0147",
      "page": 61,
      "ordinal": 147,
      "text": "service",
      "top": 659.0,
      "left": 549.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0148",
      "page": 61,
      "ordinal": 148,
      "text": "的端口的",
      "top": 659.0,
      "left": 596.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0149",
      "page": 61,
      "ordinal": 149,
      "text": "name",
      "top": 659.0,
      "left": 655.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0150",
      "page": 61,
      "ordinal": 150,
      "text": "一样，不然",
      "top": 659.0,
      "left": 694.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0151",
      "page": 61,
      "ordinal": 151,
      "text": "endpoint",
      "top": 683.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0152",
      "page": 61,
      "ordinal": 152,
      "text": "不能与",
      "top": 683.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0153",
      "page": 61,
      "ordinal": 153,
      "text": "service",
      "top": 683.0,
      "left": 217.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0154",
      "page": 61,
      "ordinal": 154,
      "text": "进行关联。",
      "top": 683.0,
      "left": 265.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0155",
      "page": 61,
      "ordinal": 155,
      "text": "完成以上两步，",
      "top": 705.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0156",
      "page": 61,
      "ordinal": 156,
      "text": "k8s",
      "top": 705.0,
      "left": 214.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0157",
      "page": 61,
      "ordinal": 157,
      "text": "会自动将",
      "top": 705.0,
      "left": 237.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0158",
      "page": 61,
      "ordinal": 158,
      "text": "service",
      "top": 705.0,
      "left": 296.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0159",
      "page": 61,
      "ordinal": 159,
      "text": "和同名的",
      "top": 705.0,
      "left": 343.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0160",
      "page": 61,
      "ordinal": 160,
      "text": "endpoint",
      "top": 705.0,
      "left": 401.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0161",
      "page": 61,
      "ordinal": 161,
      "text": "进行关联，这样，",
      "top": 705.0,
      "left": 463.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0162",
      "page": 61,
      "ordinal": 162,
      "text": "k8s",
      "top": 705.0,
      "left": 580.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0163",
      "page": 61,
      "ordinal": 163,
      "text": "集群内的应用服务直接访问",
      "top": 705.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0164",
      "page": 61,
      "ordinal": 164,
      "text": "这个",
      "top": 729.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0165",
      "page": 61,
      "ordinal": 165,
      "text": "service",
      "top": 729.0,
      "left": 141.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0166",
      "page": 61,
      "ordinal": 166,
      "text": "就可以相当于访问外部的服务了。",
      "top": 729.0,
      "left": 188.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h02",
        "heading_id": "p061-h02",
        "block_id": "q-p061-h02-b003"
      }
    },
    {
      "id": "p061-t0167",
      "page": 61,
      "ordinal": 167,
      "text": "service",
      "top": 763.0,
      "left": 112.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0168",
      "page": 61,
      "ordinal": 168,
      "text": "、",
      "top": 763.0,
      "left": 202.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0169",
      "page": 61,
      "ordinal": 169,
      "text": "endpoint",
      "top": 763.0,
      "left": 227.0,
      "width": 116.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0170",
      "page": 61,
      "ordinal": 170,
      "text": "、",
      "top": 763.0,
      "left": 343.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0171",
      "page": 61,
      "ordinal": 171,
      "text": "kube-proxys",
      "top": 763.0,
      "left": 369.0,
      "width": 158.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0172",
      "page": 61,
      "ordinal": 172,
      "text": "三种的关系是什么？",
      "top": 763.0,
      "left": 527.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03"
      }
    },
    {
      "id": "p061-t0174",
      "page": 61,
      "ordinal": 174,
      "text": "service",
      "top": 814.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0175",
      "page": 61,
      "ordinal": 175,
      "text": "：在",
      "top": 814.0,
      "left": 159.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0176",
      "page": 61,
      "ordinal": 176,
      "text": "kubernetes",
      "top": 814.0,
      "left": 188.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0177",
      "page": 61,
      "ordinal": 177,
      "text": "中，",
      "top": 814.0,
      "left": 266.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0178",
      "page": 61,
      "ordinal": 178,
      "text": "service",
      "top": 814.0,
      "left": 295.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0179",
      "page": 61,
      "ordinal": 179,
      "text": "是一种为一组功能相同的",
      "top": 814.0,
      "left": 342.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0180",
      "page": 61,
      "ordinal": 180,
      "text": "pod",
      "top": 814.0,
      "left": 503.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0181",
      "page": 61,
      "ordinal": 181,
      "text": "提供单一不变的接入点的资源。当",
      "top": 814.0,
      "left": 530.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0182",
      "page": 61,
      "ordinal": 182,
      "text": "service",
      "top": 838.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0183",
      "page": 61,
      "ordinal": 183,
      "text": "被建立时，",
      "top": 838.0,
      "left": 159.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0184",
      "page": 61,
      "ordinal": 184,
      "text": "service",
      "top": 838.0,
      "left": 232.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0185",
      "page": 61,
      "ordinal": 185,
      "text": "的",
      "top": 838.0,
      "left": 280.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0186",
      "page": 61,
      "ordinal": 186,
      "text": "IP",
      "top": 838.0,
      "left": 294.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0187",
      "page": 61,
      "ordinal": 187,
      "text": "和端口不会改变，这样外部的客户端（也可以是集群内部的客户端）通过",
      "top": 838.0,
      "left": 307.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0188",
      "page": 61,
      "ordinal": 188,
      "text": "service",
      "top": 860.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0189",
      "page": 61,
      "ordinal": 189,
      "text": "的",
      "top": 860.0,
      "left": 159.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0190",
      "page": 61,
      "ordinal": 190,
      "text": "IP",
      "top": 860.0,
      "left": 174.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0191",
      "page": 61,
      "ordinal": 191,
      "text": "和端口来建立链接，这些链接会被路由到提供该服务的任意一个",
      "top": 860.0,
      "left": 187.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0192",
      "page": 61,
      "ordinal": 192,
      "text": "pod",
      "top": 860.0,
      "left": 596.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0193",
      "page": 61,
      "ordinal": 193,
      "text": "上。通过这样的方式，",
      "top": 860.0,
      "left": 623.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0194",
      "page": 61,
      "ordinal": 194,
      "text": "客户端不需要知道每个单独提供服务的",
      "top": 884.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0195",
      "page": 61,
      "ordinal": 195,
      "text": "pod",
      "top": 884.0,
      "left": 360.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0196",
      "page": 61,
      "ordinal": 196,
      "text": "地址，这样",
      "top": 884.0,
      "left": 387.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0197",
      "page": 61,
      "ordinal": 197,
      "text": "pod",
      "top": 884.0,
      "left": 460.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0198",
      "page": 61,
      "ordinal": 198,
      "text": "就可以在集群中随时被创建或销毁。",
      "top": 884.0,
      "left": 487.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0199",
      "page": 61,
      "ordinal": 199,
      "text": "endpoint",
      "top": 908.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0200",
      "page": 61,
      "ordinal": 200,
      "text": "：",
      "top": 908.0,
      "left": 174.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0201",
      "page": 61,
      "ordinal": 201,
      "text": "service",
      "top": 908.0,
      "left": 188.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0202",
      "page": 61,
      "ordinal": 202,
      "text": "维护一个叫",
      "top": 908.0,
      "left": 235.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0203",
      "page": 61,
      "ordinal": 203,
      "text": "endpoint",
      "top": 908.0,
      "left": 309.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0204",
      "page": 61,
      "ordinal": 204,
      "text": "的资源列表，",
      "top": 908.0,
      "left": 370.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0205",
      "page": 61,
      "ordinal": 205,
      "text": "endpoint",
      "top": 908.0,
      "left": 458.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0206",
      "page": 61,
      "ordinal": 206,
      "text": "资源对象保存着",
      "top": 908.0,
      "left": 520.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0207",
      "page": 61,
      "ordinal": 207,
      "text": "service",
      "top": 908.0,
      "left": 622.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0208",
      "page": 61,
      "ordinal": 208,
      "text": "关联的",
      "top": 908.0,
      "left": 670.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0209",
      "page": 61,
      "ordinal": 209,
      "text": "pod",
      "top": 908.0,
      "left": 714.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0210",
      "page": 61,
      "ordinal": 210,
      "text": "的",
      "top": 908.0,
      "left": 740.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0211",
      "page": 61,
      "ordinal": 211,
      "text": "ip",
      "top": 908.0,
      "left": 755.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0212",
      "page": 61,
      "ordinal": 212,
      "text": "和",
      "top": 908.0,
      "left": 768.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0213",
      "page": 61,
      "ordinal": 213,
      "text": "端口。从表面上看，当",
      "top": 931.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0214",
      "page": 61,
      "ordinal": 214,
      "text": "pod",
      "top": 931.0,
      "left": 258.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0215",
      "page": 61,
      "ordinal": 215,
      "text": "消失，",
      "top": 931.0,
      "left": 285.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0216",
      "page": 61,
      "ordinal": 216,
      "text": "service",
      "top": 931.0,
      "left": 329.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0217",
      "page": 61,
      "ordinal": 217,
      "text": "会在",
      "top": 931.0,
      "left": 376.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0218",
      "page": 61,
      "ordinal": 218,
      "text": "endpoint",
      "top": 931.0,
      "left": 405.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0219",
      "page": 61,
      "ordinal": 219,
      "text": "列表中剔除",
      "top": 931.0,
      "left": 467.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0220",
      "page": 61,
      "ordinal": 220,
      "text": "pod",
      "top": 931.0,
      "left": 540.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0221",
      "page": 61,
      "ordinal": 221,
      "text": "，当有新的",
      "top": 931.0,
      "left": 567.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0222",
      "page": 61,
      "ordinal": 222,
      "text": "pod",
      "top": 931.0,
      "left": 640.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0223",
      "page": 61,
      "ordinal": 223,
      "text": "加入，",
      "top": 931.0,
      "left": 667.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0224",
      "page": 61,
      "ordinal": 224,
      "text": "service",
      "top": 931.0,
      "left": 711.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0225",
      "page": 61,
      "ordinal": 225,
      "text": "就",
      "top": 931.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0226",
      "page": 61,
      "ordinal": 226,
      "text": "会将",
      "top": 955.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0227",
      "page": 61,
      "ordinal": 227,
      "text": "pod ip",
      "top": 955.0,
      "left": 141.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0228",
      "page": 61,
      "ordinal": 228,
      "text": "加入",
      "top": 955.0,
      "left": 184.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0229",
      "page": 61,
      "ordinal": 229,
      "text": "endpoint",
      "top": 955.0,
      "left": 213.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0230",
      "page": 61,
      "ordinal": 230,
      "text": "列表；但是正在底层的逻辑是，",
      "top": 955.0,
      "left": 275.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0231",
      "page": 61,
      "ordinal": 231,
      "text": "endpoint",
      "top": 955.0,
      "left": 480.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0232",
      "page": 61,
      "ordinal": 232,
      "text": "的这种自动剔除、添加、更新",
      "top": 955.0,
      "left": 542.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0233",
      "page": 61,
      "ordinal": 233,
      "text": "pod",
      "top": 955.0,
      "left": 732.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0234",
      "page": 61,
      "ordinal": 234,
      "text": "的",
      "top": 955.0,
      "left": 759.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0235",
      "page": 61,
      "ordinal": 235,
      "text": "地址其实底层是由",
      "top": 977.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0236",
      "page": 61,
      "ordinal": 236,
      "text": "endpoint controller",
      "top": 977.0,
      "left": 229.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0237",
      "page": 61,
      "ordinal": 237,
      "text": "控制的，",
      "top": 977.0,
      "left": 361.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0238",
      "page": 61,
      "ordinal": 238,
      "text": "endpoint controller",
      "top": 977.0,
      "left": 419.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0239",
      "page": 61,
      "ordinal": 239,
      "text": "负责监听",
      "top": 977.0,
      "left": 551.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0240",
      "page": 61,
      "ordinal": 240,
      "text": "service",
      "top": 977.0,
      "left": 610.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0241",
      "page": 61,
      "ordinal": 241,
      "text": "和对应的",
      "top": 977.0,
      "left": 657.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0242",
      "page": 61,
      "ordinal": 242,
      "text": "pod",
      "top": 977.0,
      "left": 715.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0243",
      "page": 61,
      "ordinal": 243,
      "text": "副本",
      "top": 977.0,
      "left": 742.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0244",
      "page": 61,
      "ordinal": 244,
      "text": "的变化，如果监听到",
      "top": 1001.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0245",
      "page": 61,
      "ordinal": 245,
      "text": "service",
      "top": 1001.0,
      "left": 243.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0246",
      "page": 61,
      "ordinal": 246,
      "text": "被删除，则删除和该",
      "top": 1001.0,
      "left": 291.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0247",
      "page": 61,
      "ordinal": 247,
      "text": "service",
      "top": 1001.0,
      "left": 422.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0248",
      "page": 61,
      "ordinal": 248,
      "text": "同名的",
      "top": 1001.0,
      "left": 470.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0249",
      "page": 61,
      "ordinal": 249,
      "text": "endpoint",
      "top": 1001.0,
      "left": 514.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0250",
      "page": 61,
      "ordinal": 250,
      "text": "对象，如果监听到新的",
      "top": 1001.0,
      "left": 575.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0251",
      "page": 61,
      "ordinal": 251,
      "text": "service",
      "top": 1001.0,
      "left": 722.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0252",
      "page": 61,
      "ordinal": 252,
      "text": "被创建或者修改，则根据该",
      "top": 1025.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0253",
      "page": 61,
      "ordinal": 253,
      "text": "service",
      "top": 1025.0,
      "left": 287.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0254",
      "page": 61,
      "ordinal": 254,
      "text": "信息获取得相关",
      "top": 1025.0,
      "left": 335.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0255",
      "page": 61,
      "ordinal": 255,
      "text": "pod",
      "top": 1025.0,
      "left": 437.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0256",
      "page": 61,
      "ordinal": 256,
      "text": "列表，然后创建或更新",
      "top": 1025.0,
      "left": 464.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0257",
      "page": 61,
      "ordinal": 257,
      "text": "service",
      "top": 1025.0,
      "left": 610.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0258",
      "page": 61,
      "ordinal": 258,
      "text": "对应的",
      "top": 1025.0,
      "left": 657.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0259",
      "page": 61,
      "ordinal": 259,
      "text": "endpoint",
      "top": 1025.0,
      "left": 701.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0260",
      "page": 61,
      "ordinal": 260,
      "text": "对",
      "top": 1025.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0261",
      "page": 61,
      "ordinal": 261,
      "text": "象，如果监听到",
      "top": 1048.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0262",
      "page": 61,
      "ordinal": 262,
      "text": "pod",
      "top": 1048.0,
      "left": 214.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0263",
      "page": 61,
      "ordinal": 263,
      "text": "事件，则更新它所对应的",
      "top": 1048.0,
      "left": 241.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0264",
      "page": 61,
      "ordinal": 264,
      "text": "service",
      "top": 1048.0,
      "left": 402.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0265",
      "page": 61,
      "ordinal": 265,
      "text": "的",
      "top": 1048.0,
      "left": 449.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0266",
      "page": 61,
      "ordinal": 266,
      "text": "endpoint",
      "top": 1048.0,
      "left": 464.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0267",
      "page": 61,
      "ordinal": 267,
      "text": "对象。",
      "top": 1048.0,
      "left": 526.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0268",
      "page": 61,
      "ordinal": 268,
      "text": "kube-proxy",
      "top": 1072.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0269",
      "page": 61,
      "ordinal": 269,
      "text": "：",
      "top": 1072.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0270",
      "page": 61,
      "ordinal": 270,
      "text": "kube-proxy",
      "top": 1072.0,
      "left": 204.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0271",
      "page": 61,
      "ordinal": 271,
      "text": "运行在",
      "top": 1072.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0272",
      "page": 61,
      "ordinal": 272,
      "text": "node",
      "top": 1072.0,
      "left": 325.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0273",
      "page": 61,
      "ordinal": 273,
      "text": "节点上，在",
      "top": 1072.0,
      "left": 360.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0274",
      "page": 61,
      "ordinal": 274,
      "text": "Node",
      "top": 1072.0,
      "left": 433.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0275",
      "page": 61,
      "ordinal": 275,
      "text": "节点上实现",
      "top": 1072.0,
      "left": 470.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0276",
      "page": 61,
      "ordinal": 276,
      "text": "Pod",
      "top": 1072.0,
      "left": 543.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0277",
      "page": 61,
      "ordinal": 277,
      "text": "网络代理，维护网络规则和四层",
      "top": 1072.0,
      "left": 570.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0278",
      "page": 61,
      "ordinal": 278,
      "text": "负载均衡工作，",
      "top": 1094.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0279",
      "page": 61,
      "ordinal": 279,
      "text": "kube-proxy",
      "top": 1094.0,
      "left": 214.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0280",
      "page": 61,
      "ordinal": 280,
      "text": "会监听",
      "top": 1094.0,
      "left": 291.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0281",
      "page": 61,
      "ordinal": 281,
      "text": "api-server",
      "top": 1094.0,
      "left": 335.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0282",
      "page": 61,
      "ordinal": 282,
      "text": "中从而获取",
      "top": 1094.0,
      "left": 403.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0283",
      "page": 61,
      "ordinal": 283,
      "text": "service",
      "top": 1094.0,
      "left": 477.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0284",
      "page": 61,
      "ordinal": 284,
      "text": "和",
      "top": 1094.0,
      "left": 524.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0285",
      "page": 61,
      "ordinal": 285,
      "text": "endpoint",
      "top": 1094.0,
      "left": 539.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0286",
      "page": 61,
      "ordinal": 286,
      "text": "的变化情况，创建并维护路",
      "top": 1094.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0287",
      "page": 61,
      "ordinal": 287,
      "text": "由规则以提供服务",
      "top": 1118.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0288",
      "page": 61,
      "ordinal": 288,
      "text": "IP",
      "top": 1118.0,
      "left": 229.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0289",
      "page": 61,
      "ordinal": 289,
      "text": "和负载均衡功能。简单理解此进程是",
      "top": 1118.0,
      "left": 242.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0290",
      "page": 61,
      "ordinal": 290,
      "text": "Service",
      "top": 1118.0,
      "left": 476.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0291",
      "page": 61,
      "ordinal": 291,
      "text": "的透明代理兼负载均衡器，其核心功能",
      "top": 1118.0,
      "left": 524.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0292",
      "page": 61,
      "ordinal": 292,
      "text": "是将到某个",
      "top": 1142.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0293",
      "page": 61,
      "ordinal": 293,
      "text": "Service",
      "top": 1142.0,
      "left": 185.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0294",
      "page": 61,
      "ordinal": 294,
      "text": "的访问请求转发到后端的多个",
      "top": 1142.0,
      "left": 233.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0295",
      "page": 61,
      "ordinal": 295,
      "text": "Pod",
      "top": 1142.0,
      "left": 423.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p061-t0296",
      "page": 61,
      "ordinal": 296,
      "text": "实例上",
      "top": 1142.0,
      "left": 450.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p061-h03",
        "heading_id": "p061-h03",
        "block_id": "q-p061-h03-b001"
      }
    },
    {
      "id": "p062-t0001",
      "page": 62,
      "ordinal": 1,
      "text": "无头",
      "top": 40.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0002",
      "page": 62,
      "ordinal": 2,
      "text": "service",
      "top": 40.0,
      "left": 163.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0003",
      "page": 62,
      "ordinal": 3,
      "text": "和普通的",
      "top": 40.0,
      "left": 253.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0004",
      "page": 62,
      "ordinal": 4,
      "text": "service",
      "top": 40.0,
      "left": 355.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0005",
      "page": 62,
      "ordinal": 5,
      "text": "有什么区别，无头",
      "top": 40.0,
      "left": 446.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0006",
      "page": 62,
      "ordinal": 6,
      "text": "service",
      "top": 40.0,
      "left": 650.0,
      "width": 90.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0007",
      "page": 62,
      "ordinal": 7,
      "text": "使",
      "top": 40.0,
      "left": 740.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0008",
      "page": 62,
      "ordinal": 8,
      "text": "用场景是什么",
      "top": 71.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01"
      }
    },
    {
      "id": "p062-t0010",
      "page": 62,
      "ordinal": 10,
      "text": "无头",
      "top": 122.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0011",
      "page": 62,
      "ordinal": 11,
      "text": "service",
      "top": 122.0,
      "left": 141.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0012",
      "page": 62,
      "ordinal": 12,
      "text": "没有",
      "top": 122.0,
      "left": 188.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0013",
      "page": 62,
      "ordinal": 13,
      "text": "cluster ip",
      "top": 122.0,
      "left": 218.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0014",
      "page": 62,
      "ordinal": 14,
      "text": "，在定义",
      "top": 122.0,
      "left": 280.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0015",
      "page": 62,
      "ordinal": 15,
      "text": "service",
      "top": 122.0,
      "left": 339.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0016",
      "page": 62,
      "ordinal": 16,
      "text": "时将",
      "top": 122.0,
      "left": 386.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0017",
      "page": 62,
      "ordinal": 17,
      "text": " service.spec.clusterIP",
      "top": 122.0,
      "left": 415.0,
      "width": 149.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0018",
      "page": 62,
      "ordinal": 18,
      "text": "：",
      "top": 122.0,
      "left": 564.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0019",
      "page": 62,
      "ordinal": 19,
      "text": "None",
      "top": 122.0,
      "left": 579.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0020",
      "page": 62,
      "ordinal": 20,
      "text": "，就表示创建的是无头",
      "top": 122.0,
      "left": 616.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0021",
      "page": 62,
      "ordinal": 21,
      "text": "service",
      "top": 146.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0022",
      "page": 62,
      "ordinal": 22,
      "text": "。",
      "top": 146.0,
      "left": 159.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0023",
      "page": 62,
      "ordinal": 23,
      "text": "普通的",
      "top": 168.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0024",
      "page": 62,
      "ordinal": 24,
      "text": "service",
      "top": 168.0,
      "left": 156.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0025",
      "page": 62,
      "ordinal": 25,
      "text": "是用于为一组后端",
      "top": 168.0,
      "left": 203.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0026",
      "page": 62,
      "ordinal": 26,
      "text": "pod",
      "top": 168.0,
      "left": 320.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0027",
      "page": 62,
      "ordinal": 27,
      "text": "提供请求连接的负载均衡，让客户端能通过固定的",
      "top": 168.0,
      "left": 347.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0028",
      "page": 62,
      "ordinal": 28,
      "text": "service ip",
      "top": 168.0,
      "left": 668.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0029",
      "page": 62,
      "ordinal": 29,
      "text": "地址来",
      "top": 168.0,
      "left": 732.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0030",
      "page": 62,
      "ordinal": 30,
      "text": "访问",
      "top": 192.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0031",
      "page": 62,
      "ordinal": 31,
      "text": "pod",
      "top": 192.0,
      "left": 141.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0032",
      "page": 62,
      "ordinal": 32,
      "text": "，这类的",
      "top": 192.0,
      "left": 168.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0033",
      "page": 62,
      "ordinal": 33,
      "text": "pod",
      "top": 192.0,
      "left": 226.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0034",
      "page": 62,
      "ordinal": 34,
      "text": "是没有状态的，同时",
      "top": 192.0,
      "left": 253.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0035",
      "page": 62,
      "ordinal": 35,
      "text": "service",
      "top": 192.0,
      "left": 385.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0036",
      "page": 62,
      "ordinal": 36,
      "text": "还具有负载均衡和服务发现的功能。普通",
      "top": 192.0,
      "left": 432.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0037",
      "page": 62,
      "ordinal": 37,
      "text": "service",
      "top": 192.0,
      "left": 695.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0038",
      "page": 62,
      "ordinal": 38,
      "text": "跟我",
      "top": 192.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0039",
      "page": 62,
      "ordinal": 39,
      "text": "们平时使用的",
      "top": 216.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0040",
      "page": 62,
      "ordinal": 40,
      "text": "nginx",
      "top": 216.0,
      "left": 200.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0041",
      "page": 62,
      "ordinal": 41,
      "text": "反向代理很相识。",
      "top": 216.0,
      "left": 237.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0042",
      "page": 62,
      "ordinal": 42,
      "text": "但是，试想这样一种情况，有",
      "top": 239.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0043",
      "page": 62,
      "ordinal": 43,
      "text": "6",
      "top": 239.0,
      "left": 302.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0044",
      "page": 62,
      "ordinal": 44,
      "text": "个",
      "top": 239.0,
      "left": 310.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0045",
      "page": 62,
      "ordinal": 45,
      "text": "redis pod ,",
      "top": 239.0,
      "left": 325.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0046",
      "page": 62,
      "ordinal": 46,
      "text": "它们相互之间要通信并要组成一个",
      "top": 239.0,
      "left": 397.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0047",
      "page": 62,
      "ordinal": 47,
      "text": "redis",
      "top": 239.0,
      "left": 616.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0048",
      "page": 62,
      "ordinal": 48,
      "text": "集群，不在需要所谓",
      "top": 239.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0049",
      "page": 62,
      "ordinal": 49,
      "text": "的",
      "top": 263.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0050",
      "page": 62,
      "ordinal": 50,
      "text": "service",
      "top": 263.0,
      "left": 126.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0051",
      "page": 62,
      "ordinal": 51,
      "text": "负载均衡，这时无头",
      "top": 263.0,
      "left": 174.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0052",
      "page": 62,
      "ordinal": 52,
      "text": "service",
      "top": 263.0,
      "left": 305.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0053",
      "page": 62,
      "ordinal": 53,
      "text": "就是派上用场了，无头",
      "top": 263.0,
      "left": 353.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0054",
      "page": 62,
      "ordinal": 54,
      "text": "service",
      "top": 263.0,
      "left": 499.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0055",
      "page": 62,
      "ordinal": 55,
      "text": "由于没有",
      "top": 263.0,
      "left": 546.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0056",
      "page": 62,
      "ordinal": 56,
      "text": "cluster ip",
      "top": 263.0,
      "left": 605.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0057",
      "page": 62,
      "ordinal": 57,
      "text": "，",
      "top": 263.0,
      "left": 667.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0058",
      "page": 62,
      "ordinal": 58,
      "text": "kube-proxy",
      "top": 263.0,
      "left": 682.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0059",
      "page": 62,
      "ordinal": 59,
      "text": "就",
      "top": 263.0,
      "left": 759.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0060",
      "page": 62,
      "ordinal": 60,
      "text": "不会处理它也就不会对它生成规则负载均衡，无头",
      "top": 285.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0061",
      "page": 62,
      "ordinal": 61,
      "text": "service",
      "top": 285.0,
      "left": 434.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0062",
      "page": 62,
      "ordinal": 62,
      "text": "直接绑定的是",
      "top": 285.0,
      "left": 481.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0063",
      "page": 62,
      "ordinal": 63,
      "text": "pod ",
      "top": 285.0,
      "left": 569.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0064",
      "page": 62,
      "ordinal": 64,
      "text": "的",
      "top": 285.0,
      "left": 599.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0065",
      "page": 62,
      "ordinal": 65,
      "text": "ip",
      "top": 285.0,
      "left": 614.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0066",
      "page": 62,
      "ordinal": 66,
      "text": "。无头",
      "top": 285.0,
      "left": 626.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0067",
      "page": 62,
      "ordinal": 67,
      "text": "service",
      "top": 285.0,
      "left": 670.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0068",
      "page": 62,
      "ordinal": 68,
      "text": "仍会有标",
      "top": 285.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0069",
      "page": 62,
      "ordinal": 69,
      "text": "签选择器，有标签选择器就会有",
      "top": 309.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0070",
      "page": 62,
      "ordinal": 70,
      "text": "endpoint",
      "top": 309.0,
      "left": 317.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0071",
      "page": 62,
      "ordinal": 71,
      "text": "资源。",
      "top": 309.0,
      "left": 378.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0072",
      "page": 62,
      "ordinal": 72,
      "text": "使用场景：无头",
      "top": 333.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0073",
      "page": 62,
      "ordinal": 73,
      "text": "service",
      "top": 333.0,
      "left": 214.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0074",
      "page": 62,
      "ordinal": 74,
      "text": "一般用于有状态的应用场景，如",
      "top": 333.0,
      "left": 261.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0075",
      "page": 62,
      "ordinal": 75,
      "text": "Kaka",
      "top": 333.0,
      "left": 466.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0076",
      "page": 62,
      "ordinal": 76,
      "text": "集群、",
      "top": 333.0,
      "left": 499.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0077",
      "page": 62,
      "ordinal": 77,
      "text": "Redis",
      "top": 333.0,
      "left": 543.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0078",
      "page": 62,
      "ordinal": 78,
      "text": "集群等，这类",
      "top": 333.0,
      "left": 580.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0079",
      "page": 62,
      "ordinal": 79,
      "text": "pod",
      "top": 333.0,
      "left": 668.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0080",
      "page": 62,
      "ordinal": 80,
      "text": "之间需要相互",
      "top": 333.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0081",
      "page": 62,
      "ordinal": 81,
      "text": "通信相互组成集群，不在需要所谓的",
      "top": 356.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0082",
      "page": 62,
      "ordinal": 82,
      "text": "service",
      "top": 356.0,
      "left": 346.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0083",
      "page": 62,
      "ordinal": 83,
      "text": "负载均衡。",
      "top": 356.0,
      "left": 393.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h01",
        "heading_id": "p062-h01",
        "block_id": "q-p062-h01-b001"
      }
    },
    {
      "id": "p062-t0084",
      "page": 62,
      "ordinal": 84,
      "text": "deployment",
      "top": 390.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02"
      }
    },
    {
      "id": "p062-t0085",
      "page": 62,
      "ordinal": 85,
      "text": "怎么扩容或缩容？",
      "top": 390.0,
      "left": 266.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02"
      }
    },
    {
      "id": "p062-t0087",
      "page": 62,
      "ordinal": 87,
      "text": "直接修改",
      "top": 441.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b001"
      }
    },
    {
      "id": "p062-t0088",
      "page": 62,
      "ordinal": 88,
      "text": "pod",
      "top": 441.0,
      "left": 170.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b001"
      }
    },
    {
      "id": "p062-t0089",
      "page": 62,
      "ordinal": 89,
      "text": "副本数即可，可以通过下面的方式来修改",
      "top": 441.0,
      "left": 197.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b001"
      }
    },
    {
      "id": "p062-t0090",
      "page": 62,
      "ordinal": 90,
      "text": "pod",
      "top": 441.0,
      "left": 460.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b001"
      }
    },
    {
      "id": "p062-t0091",
      "page": 62,
      "ordinal": 91,
      "text": "副本数：",
      "top": 441.0,
      "left": 487.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b001"
      }
    },
    {
      "id": "p062-t0092",
      "page": 62,
      "ordinal": 92,
      "text": "1",
      "top": 464.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0093",
      "page": 62,
      "ordinal": 93,
      "text": "、直接修改",
      "top": 464.0,
      "left": 120.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0094",
      "page": 62,
      "ordinal": 94,
      "text": "yaml",
      "top": 464.0,
      "left": 193.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0095",
      "page": 62,
      "ordinal": 95,
      "text": "文件的",
      "top": 464.0,
      "left": 226.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0096",
      "page": 62,
      "ordinal": 96,
      "text": "replicas",
      "top": 464.0,
      "left": 270.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0097",
      "page": 62,
      "ordinal": 97,
      "text": "字段数值，然后",
      "top": 464.0,
      "left": 323.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0098",
      "page": 62,
      "ordinal": 98,
      "text": "kubectl apply -f xxx.yaml",
      "top": 464.0,
      "left": 425.0,
      "width": 168.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0099",
      "page": 62,
      "ordinal": 99,
      "text": "来实现更新；",
      "top": 464.0,
      "left": 592.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b002"
      }
    },
    {
      "id": "p062-t0100",
      "page": 62,
      "ordinal": 100,
      "text": "2",
      "top": 488.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0101",
      "page": 62,
      "ordinal": 101,
      "text": "、使用",
      "top": 488.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0102",
      "page": 62,
      "ordinal": 102,
      "text": "kubectl edit deployment xxx ",
      "top": 488.0,
      "left": 164.0,
      "width": 196.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0103",
      "page": 62,
      "ordinal": 103,
      "text": "修改",
      "top": 488.0,
      "left": 360.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0104",
      "page": 62,
      "ordinal": 104,
      "text": "replicas",
      "top": 488.0,
      "left": 389.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0105",
      "page": 62,
      "ordinal": 105,
      "text": "来实现在线更新；",
      "top": 488.0,
      "left": 442.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b003"
      }
    },
    {
      "id": "p062-t0106",
      "page": 62,
      "ordinal": 106,
      "text": "3",
      "top": 512.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b004"
      }
    },
    {
      "id": "p062-t0107",
      "page": 62,
      "ordinal": 107,
      "text": "、使用",
      "top": 512.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b004"
      }
    },
    {
      "id": "p062-t0108",
      "page": 62,
      "ordinal": 108,
      "text": "kubectl scale --replicas=5 deployment/deployment-nginx",
      "top": 512.0,
      "left": 164.0,
      "width": 385.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b004"
      }
    },
    {
      "id": "p062-t0109",
      "page": 62,
      "ordinal": 109,
      "text": "命令来扩容缩容。",
      "top": 512.0,
      "left": 549.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h02",
        "heading_id": "p062-h02",
        "block_id": "q-p062-h02-b004"
      }
    },
    {
      "id": "p062-t0110",
      "page": 62,
      "ordinal": 110,
      "text": "deployment",
      "top": 546.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03"
      }
    },
    {
      "id": "p062-t0111",
      "page": 62,
      "ordinal": 111,
      "text": "的更新升级策略有哪些？",
      "top": 546.0,
      "left": 266.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03"
      }
    },
    {
      "id": "p062-t0113",
      "page": 62,
      "ordinal": 113,
      "text": "deployment",
      "top": 596.0,
      "left": 112.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b001"
      }
    },
    {
      "id": "p062-t0114",
      "page": 62,
      "ordinal": 114,
      "text": "的升级策略主要有两种。",
      "top": 596.0,
      "left": 194.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b001"
      }
    },
    {
      "id": "p062-t0115",
      "page": 62,
      "ordinal": 115,
      "text": "1",
      "top": 620.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0116",
      "page": 62,
      "ordinal": 116,
      "text": "、",
      "top": 620.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0117",
      "page": 62,
      "ordinal": 117,
      "text": "Recreate ",
      "top": 620.0,
      "left": 135.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0118",
      "page": 62,
      "ordinal": 118,
      "text": "重建更新：这种更新策略会杀掉所有正在运行的",
      "top": 620.0,
      "left": 198.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0119",
      "page": 62,
      "ordinal": 119,
      "text": "pod",
      "top": 620.0,
      "left": 506.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0120",
      "page": 62,
      "ordinal": 120,
      "text": "，然后再重新创建的",
      "top": 620.0,
      "left": 532.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0121",
      "page": 62,
      "ordinal": 121,
      "text": "pod",
      "top": 620.0,
      "left": 664.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0122",
      "page": 62,
      "ordinal": 122,
      "text": "；",
      "top": 620.0,
      "left": 691.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b002"
      }
    },
    {
      "id": "p062-t0123",
      "page": 62,
      "ordinal": 123,
      "text": "2",
      "top": 643.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0124",
      "page": 62,
      "ordinal": 124,
      "text": "、",
      "top": 643.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0125",
      "page": 62,
      "ordinal": 125,
      "text": "rollingUpdate ",
      "top": 643.0,
      "left": 135.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0126",
      "page": 62,
      "ordinal": 126,
      "text": "滚动更新：这种更新策略，",
      "top": 643.0,
      "left": 231.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0127",
      "page": 62,
      "ordinal": 127,
      "text": "deployment",
      "top": 643.0,
      "left": 407.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0128",
      "page": 62,
      "ordinal": 128,
      "text": "会以滚动更新的方式来逐个更新",
      "top": 643.0,
      "left": 489.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0129",
      "page": 62,
      "ordinal": 129,
      "text": "pod",
      "top": 643.0,
      "left": 694.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0130",
      "page": 62,
      "ordinal": 130,
      "text": "，同时通",
      "top": 643.0,
      "left": 720.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0131",
      "page": 62,
      "ordinal": 131,
      "text": "过设置滚动更新的两个参数",
      "top": 667.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0132",
      "page": 62,
      "ordinal": 132,
      "text": "maxUnavailable",
      "top": 667.0,
      "left": 287.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0133",
      "page": 62,
      "ordinal": 133,
      "text": "、",
      "top": 667.0,
      "left": 396.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0134",
      "page": 62,
      "ordinal": 134,
      "text": "maxSurge",
      "top": 667.0,
      "left": 411.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0135",
      "page": 62,
      "ordinal": 135,
      "text": "来控制更新的过程。",
      "top": 667.0,
      "left": 479.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h03",
        "heading_id": "p062-h03",
        "block_id": "q-p062-h03-b003"
      }
    },
    {
      "id": "p062-t0136",
      "page": 62,
      "ordinal": 136,
      "text": "deployment",
      "top": 701.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04"
      }
    },
    {
      "id": "p062-t0137",
      "page": 62,
      "ordinal": 137,
      "text": "的滚动更新策略有两个特别主要的参数，解释",
      "top": 701.0,
      "left": 266.0,
      "width": 512.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04"
      }
    },
    {
      "id": "p062-t0138",
      "page": 62,
      "ordinal": 138,
      "text": "一下它们是什么意思",
      "top": 732.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04"
      }
    },
    {
      "id": "p062-t0140",
      "page": 62,
      "ordinal": 140,
      "text": "maxUnavailable",
      "top": 783.0,
      "left": 112.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0141",
      "page": 62,
      "ordinal": 141,
      "text": "：最大不可用数，",
      "top": 783.0,
      "left": 221.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0142",
      "page": 62,
      "ordinal": 142,
      "text": "maxUnavailable",
      "top": 783.0,
      "left": 338.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0143",
      "page": 62,
      "ordinal": 143,
      "text": "用于指定",
      "top": 783.0,
      "left": 447.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0144",
      "page": 62,
      "ordinal": 144,
      "text": "deployment",
      "top": 783.0,
      "left": 505.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0145",
      "page": 62,
      "ordinal": 145,
      "text": "在更新的过程中不可用状态的",
      "top": 783.0,
      "left": 587.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0146",
      "page": 62,
      "ordinal": 146,
      "text": "pod",
      "top": 806.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0147",
      "page": 62,
      "ordinal": 147,
      "text": "的最大数量，",
      "top": 806.0,
      "left": 139.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0148",
      "page": 62,
      "ordinal": 148,
      "text": "maxUnavailable",
      "top": 806.0,
      "left": 226.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0149",
      "page": 62,
      "ordinal": 149,
      "text": "的值可以是一个整数值，也可以是",
      "top": 806.0,
      "left": 335.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0150",
      "page": 62,
      "ordinal": 150,
      "text": "pod",
      "top": 806.0,
      "left": 555.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0151",
      "page": 62,
      "ordinal": 151,
      "text": "期望副本的百分比，如",
      "top": 806.0,
      "left": 581.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0152",
      "page": 62,
      "ordinal": 152,
      "text": "25%",
      "top": 806.0,
      "left": 728.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0153",
      "page": 62,
      "ordinal": 153,
      "text": "，",
      "top": 806.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0154",
      "page": 62,
      "ordinal": 154,
      "text": "计算时向下取整。",
      "top": 830.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0155",
      "page": 62,
      "ordinal": 155,
      "text": "maxSurge",
      "top": 854.0,
      "left": 112.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0156",
      "page": 62,
      "ordinal": 156,
      "text": "：最大激增数，",
      "top": 854.0,
      "left": 180.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0157",
      "page": 62,
      "ordinal": 157,
      "text": "maxSurge",
      "top": 854.0,
      "left": 283.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0158",
      "page": 62,
      "ordinal": 158,
      "text": "指定",
      "top": 854.0,
      "left": 351.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0159",
      "page": 62,
      "ordinal": 159,
      "text": "deployment",
      "top": 854.0,
      "left": 381.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0160",
      "page": 62,
      "ordinal": 160,
      "text": "在更新的过程中",
      "top": 854.0,
      "left": 463.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0161",
      "page": 62,
      "ordinal": 161,
      "text": "pod",
      "top": 854.0,
      "left": 565.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0162",
      "page": 62,
      "ordinal": 162,
      "text": "的总数量最大能超过",
      "top": 854.0,
      "left": 592.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0163",
      "page": 62,
      "ordinal": 163,
      "text": "pod",
      "top": 854.0,
      "left": 723.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0164",
      "page": 62,
      "ordinal": 164,
      "text": "副本",
      "top": 854.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0165",
      "page": 62,
      "ordinal": 165,
      "text": "数多少个，",
      "top": 876.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0166",
      "page": 62,
      "ordinal": 166,
      "text": "maxUnavailable",
      "top": 876.0,
      "left": 185.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0167",
      "page": 62,
      "ordinal": 167,
      "text": "的值可以是一个整数值，也可以是",
      "top": 876.0,
      "left": 294.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0168",
      "page": 62,
      "ordinal": 168,
      "text": "pod",
      "top": 876.0,
      "left": 513.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0169",
      "page": 62,
      "ordinal": 169,
      "text": "期望副本的百分比，如",
      "top": 876.0,
      "left": 540.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0170",
      "page": 62,
      "ordinal": 170,
      "text": "25%",
      "top": 876.0,
      "left": 686.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0171",
      "page": 62,
      "ordinal": 171,
      "text": "，计算时",
      "top": 876.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0172",
      "page": 62,
      "ordinal": 172,
      "text": "向上取整。",
      "top": 900.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h04",
        "heading_id": "p062-h04",
        "block_id": "q-p062-h04-b001"
      }
    },
    {
      "id": "p062-t0173",
      "page": 62,
      "ordinal": 173,
      "text": "deployment",
      "top": 934.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05"
      }
    },
    {
      "id": "p062-t0174",
      "page": 62,
      "ordinal": 174,
      "text": "更新的命令有哪些",
      "top": 934.0,
      "left": 266.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05"
      }
    },
    {
      "id": "p062-t0176",
      "page": 62,
      "ordinal": 176,
      "text": "可以通过三种方式来实现更新",
      "top": 985.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b001"
      }
    },
    {
      "id": "p062-t0177",
      "page": 62,
      "ordinal": 177,
      "text": "deployment",
      "top": 985.0,
      "left": 302.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b001"
      }
    },
    {
      "id": "p062-t0178",
      "page": 62,
      "ordinal": 178,
      "text": "。",
      "top": 985.0,
      "left": 384.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b001"
      }
    },
    {
      "id": "p062-t0179",
      "page": 62,
      "ordinal": 179,
      "text": "1",
      "top": 1009.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0180",
      "page": 62,
      "ordinal": 180,
      "text": "、直接修改",
      "top": 1009.0,
      "left": 120.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0181",
      "page": 62,
      "ordinal": 181,
      "text": "yaml",
      "top": 1009.0,
      "left": 193.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0182",
      "page": 62,
      "ordinal": 182,
      "text": "文件的镜像版本，然后",
      "top": 1009.0,
      "left": 226.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0183",
      "page": 62,
      "ordinal": 183,
      "text": "kubectl apply -f xxx.yaml",
      "top": 1009.0,
      "left": 372.0,
      "width": 168.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0184",
      "page": 62,
      "ordinal": 184,
      "text": "来实现更新；",
      "top": 1009.0,
      "left": 540.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b002"
      }
    },
    {
      "id": "p062-t0185",
      "page": 62,
      "ordinal": 185,
      "text": "2",
      "top": 1032.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b003"
      }
    },
    {
      "id": "p062-t0186",
      "page": 62,
      "ordinal": 186,
      "text": "、使用",
      "top": 1032.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b003"
      }
    },
    {
      "id": "p062-t0187",
      "page": 62,
      "ordinal": 187,
      "text": "kubectl edit deployment xxx ",
      "top": 1032.0,
      "left": 164.0,
      "width": 196.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b003"
      }
    },
    {
      "id": "p062-t0188",
      "page": 62,
      "ordinal": 188,
      "text": "实现在线更新；",
      "top": 1032.0,
      "left": 360.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b003"
      }
    },
    {
      "id": "p062-t0189",
      "page": 62,
      "ordinal": 189,
      "text": "3",
      "top": 1055.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b004"
      }
    },
    {
      "id": "p062-t0190",
      "page": 62,
      "ordinal": 190,
      "text": "、使用",
      "top": 1055.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b004"
      }
    },
    {
      "id": "p062-t0191",
      "page": 62,
      "ordinal": 191,
      "text": "kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1 ",
      "top": 1055.0,
      "left": 164.0,
      "width": 503.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b004"
      }
    },
    {
      "id": "p062-t0192",
      "page": 62,
      "ordinal": 192,
      "text": "命令来更新",
      "top": 1055.0,
      "left": 667.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h05",
        "heading_id": "p062-h05",
        "block_id": "q-p062-h05-b004"
      }
    },
    {
      "id": "p062-t0193",
      "page": 62,
      "ordinal": 193,
      "text": "简述一下",
      "top": 1090.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06"
      }
    },
    {
      "id": "p062-t0194",
      "page": 62,
      "ordinal": 194,
      "text": "deployment",
      "top": 1090.0,
      "left": 214.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06"
      }
    },
    {
      "id": "p062-t0195",
      "page": 62,
      "ordinal": 195,
      "text": "的更新过程",
      "top": 1090.0,
      "left": 368.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06"
      }
    },
    {
      "id": "p062-t0197",
      "page": 62,
      "ordinal": 197,
      "text": "eployment",
      "top": 1140.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0198",
      "page": 62,
      "ordinal": 198,
      "text": "是通过控制",
      "top": 1140.0,
      "left": 185.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0199",
      "page": 62,
      "ordinal": 199,
      "text": "replicaset",
      "top": 1140.0,
      "left": 258.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0200",
      "page": 62,
      "ordinal": 200,
      "text": "来实现，由",
      "top": 1140.0,
      "left": 324.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0201",
      "page": 62,
      "ordinal": 201,
      "text": "replicaset",
      "top": 1140.0,
      "left": 397.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0202",
      "page": 62,
      "ordinal": 202,
      "text": "真正创建",
      "top": 1140.0,
      "left": 463.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0203",
      "page": 62,
      "ordinal": 203,
      "text": "pod",
      "top": 1140.0,
      "left": 521.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0204",
      "page": 62,
      "ordinal": 204,
      "text": "副本，每更新一次",
      "top": 1140.0,
      "left": 548.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0205",
      "page": 62,
      "ordinal": 205,
      "text": "deployment",
      "top": 1140.0,
      "left": 665.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0206",
      "page": 62,
      "ordinal": 206,
      "text": "，都",
      "top": 1140.0,
      "left": 747.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0207",
      "page": 62,
      "ordinal": 207,
      "text": "会创建新的",
      "top": 1164.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0208",
      "page": 62,
      "ordinal": 208,
      "text": "replicaset",
      "top": 1164.0,
      "left": 185.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0209",
      "page": 62,
      "ordinal": 209,
      "text": "，下面来举例",
      "top": 1164.0,
      "left": 251.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0210",
      "page": 62,
      "ordinal": 210,
      "text": "deployment",
      "top": 1164.0,
      "left": 339.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0211",
      "page": 62,
      "ordinal": 211,
      "text": "的更新过程：",
      "top": 1164.0,
      "left": 421.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0212",
      "page": 62,
      "ordinal": 212,
      "text": "假设要升级一个",
      "top": 1188.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0213",
      "page": 62,
      "ordinal": 213,
      "text": "nginx-deployment",
      "top": 1188.0,
      "left": 214.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0214",
      "page": 62,
      "ordinal": 214,
      "text": "的版本镜像为",
      "top": 1188.0,
      "left": 338.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0215",
      "page": 62,
      "ordinal": 215,
      "text": "nginx:1.9",
      "top": 1188.0,
      "left": 426.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0216",
      "page": 62,
      "ordinal": 216,
      "text": "，",
      "top": 1188.0,
      "left": 488.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0217",
      "page": 62,
      "ordinal": 217,
      "text": "deployment",
      "top": 1188.0,
      "left": 502.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p062-t0218",
      "page": 62,
      "ordinal": 218,
      "text": "的定义滚动更新参数如下：",
      "top": 1188.0,
      "left": 584.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b001"
      }
    },
    {
      "id": "p063-t0001",
      "page": 63,
      "ordinal": 1,
      "text": "卷",
      "top": 730.0,
      "left": 128.0,
      "width": 15.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b001"
      }
    },
    {
      "id": "p063-t0002",
      "page": 63,
      "ordinal": 2,
      "text": "作用",
      "top": 730.0,
      "left": 252.0,
      "width": 29.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b001"
      }
    },
    {
      "id": "p063-t0003",
      "page": 63,
      "ordinal": 3,
      "text": "常用场景",
      "top": 730.0,
      "left": 505.0,
      "width": 59.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b001"
      }
    },
    {
      "id": "p063-t0004",
      "page": 63,
      "ordinal": 4,
      "text": "emptyDir",
      "top": 792.0,
      "left": 128.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0005",
      "page": 63,
      "ordinal": 5,
      "text": "用于存储临时数据的简单空目录",
      "top": 792.0,
      "left": 252.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0006",
      "page": 63,
      "ordinal": 6,
      "text": "一个",
      "top": 768.0,
      "left": 505.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0007",
      "page": 63,
      "ordinal": 7,
      "text": "pod",
      "top": 768.0,
      "left": 534.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0008",
      "page": 63,
      "ordinal": 8,
      "text": "中的多个容器需要共享彼此的数",
      "top": 768.0,
      "left": 561.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0009",
      "page": 63,
      "ordinal": 9,
      "text": "据",
      "top": 792.0,
      "left": 505.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0011",
      "page": 63,
      "ordinal": 11,
      "text": "，",
      "top": 792.0,
      "left": 523.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0012",
      "page": 63,
      "ordinal": 12,
      "text": "emptyDir",
      "top": 792.0,
      "left": 538.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0013",
      "page": 63,
      "ordinal": 13,
      "text": "的数据随着容器的消亡也",
      "top": 792.0,
      "left": 601.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0014",
      "page": 63,
      "ordinal": 14,
      "text": "会销毁",
      "top": 814.0,
      "left": 505.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b002"
      }
    },
    {
      "id": "p063-t0015",
      "page": 63,
      "ordinal": 15,
      "text": "hostPath",
      "top": 900.0,
      "left": 128.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0016",
      "page": 63,
      "ordinal": 16,
      "text": "用于将目录从工作节点的文件系统",
      "top": 887.0,
      "left": 252.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0017",
      "page": 63,
      "ordinal": 17,
      "text": "挂载到",
      "top": 911.0,
      "left": 252.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0018",
      "page": 63,
      "ordinal": 18,
      "text": "pod",
      "top": 911.0,
      "left": 296.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0019",
      "page": 63,
      "ordinal": 19,
      "text": "中",
      "top": 911.0,
      "left": 323.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0020",
      "page": 63,
      "ordinal": 20,
      "text": "不常用，缺点是，",
      "top": 852.0,
      "left": 505.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0021",
      "page": 63,
      "ordinal": 21,
      "text": "pod",
      "top": 852.0,
      "left": 622.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0022",
      "page": 63,
      "ordinal": 22,
      "text": "的调度不是固定",
      "top": 852.0,
      "left": 649.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0023",
      "page": 63,
      "ordinal": 23,
      "text": "的，也就是当",
      "top": 876.0,
      "left": 505.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0024",
      "page": 63,
      "ordinal": 24,
      "text": "pod",
      "top": 876.0,
      "left": 593.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0025",
      "page": 63,
      "ordinal": 25,
      "text": "消失后",
      "top": 876.0,
      "left": 619.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0026",
      "page": 63,
      "ordinal": 26,
      "text": "deployment",
      "top": 876.0,
      "left": 663.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0027",
      "page": 63,
      "ordinal": 27,
      "text": "重",
      "top": 876.0,
      "left": 745.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0028",
      "page": 63,
      "ordinal": 28,
      "text": "新创建一个",
      "top": 900.0,
      "left": 505.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0029",
      "page": 63,
      "ordinal": 29,
      "text": "pod",
      "top": 900.0,
      "left": 578.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0030",
      "page": 63,
      "ordinal": 30,
      "text": "，而这",
      "top": 900.0,
      "left": 605.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0031",
      "page": 63,
      "ordinal": 31,
      "text": "pod",
      "top": 900.0,
      "left": 649.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0032",
      "page": 63,
      "ordinal": 32,
      "text": "如果不是被调",
      "top": 900.0,
      "left": 675.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0033",
      "page": 63,
      "ordinal": 33,
      "text": "度到之前",
      "top": 923.0,
      "left": 505.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0034",
      "page": 63,
      "ordinal": 34,
      "text": "pod",
      "top": 923.0,
      "left": 563.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0035",
      "page": 63,
      "ordinal": 35,
      "text": "的节点，那么该",
      "top": 923.0,
      "left": 590.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0036",
      "page": 63,
      "ordinal": 36,
      "text": "pod",
      "top": 923.0,
      "left": 692.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0037",
      "page": 63,
      "ordinal": 37,
      "text": "就不能",
      "top": 923.0,
      "left": 719.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0038",
      "page": 63,
      "ordinal": 38,
      "text": "访问之前的数据",
      "top": 946.0,
      "left": 505.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b003"
      }
    },
    {
      "id": "p063-t0039",
      "page": 63,
      "ordinal": 39,
      "text": "configMap",
      "top": 1019.0,
      "left": 128.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0040",
      "page": 63,
      "ordinal": 40,
      "text": "用于将非敏感的数据保存到键值对",
      "top": 984.0,
      "left": 252.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0041",
      "page": 63,
      "ordinal": 41,
      "text": "中，使用时可以使用作为环境变",
      "top": 1008.0,
      "left": 252.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0042",
      "page": 63,
      "ordinal": 42,
      "text": "量、命令行参数",
      "top": 1031.0,
      "left": 252.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0043",
      "page": 63,
      "ordinal": 43,
      "text": "arg",
      "top": 1031.0,
      "left": 355.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0044",
      "page": 63,
      "ordinal": 44,
      "text": "，存储卷被",
      "top": 1031.0,
      "left": 377.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0045",
      "page": 63,
      "ordinal": 45,
      "text": "pods",
      "top": 1054.0,
      "left": 252.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0046",
      "page": 63,
      "ordinal": 46,
      "text": "挂载使用",
      "top": 1054.0,
      "left": 286.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0047",
      "page": 63,
      "ordinal": 47,
      "text": "将应用程序的不敏感配置文件创建为",
      "top": 995.0,
      "left": 505.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0048",
      "page": 63,
      "ordinal": 48,
      "text": "configmap",
      "top": 1019.0,
      "left": 505.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0049",
      "page": 63,
      "ordinal": 49,
      "text": "卷，在",
      "top": 1019.0,
      "left": 577.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0050",
      "page": 63,
      "ordinal": 50,
      "text": "pod",
      "top": 1019.0,
      "left": 621.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0051",
      "page": 63,
      "ordinal": 51,
      "text": "中挂载",
      "top": 1019.0,
      "left": 648.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0052",
      "page": 63,
      "ordinal": 52,
      "text": "configmap",
      "top": 1019.0,
      "left": 691.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0053",
      "page": 63,
      "ordinal": 53,
      "text": "卷，可是实现热更新",
      "top": 1043.0,
      "left": 505.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p063-t0054",
      "page": 63,
      "ordinal": 54,
      "text": "通过计算我们得出，",
      "top": 163.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0055",
      "page": 63,
      "ordinal": 55,
      "text": "3*25%=0.75",
      "top": 163.0,
      "left": 243.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0056",
      "page": 63,
      "ordinal": 56,
      "text": "，",
      "top": 163.0,
      "left": 326.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0057",
      "page": 63,
      "ordinal": 57,
      "text": "maxUnavailable",
      "top": 163.0,
      "left": 341.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0058",
      "page": 63,
      "ordinal": 58,
      "text": "是向下取整，则",
      "top": 163.0,
      "left": 450.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0059",
      "page": 63,
      "ordinal": 59,
      "text": "maxUnavailable=0",
      "top": 163.0,
      "left": 552.0,
      "width": 126.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0060",
      "page": 63,
      "ordinal": 60,
      "text": "，",
      "top": 163.0,
      "left": 678.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0061",
      "page": 63,
      "ordinal": 61,
      "text": "maxSurge",
      "top": 163.0,
      "left": 692.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0062",
      "page": 63,
      "ordinal": 62,
      "text": "是",
      "top": 163.0,
      "left": 761.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0063",
      "page": 63,
      "ordinal": 63,
      "text": "向上取整，则",
      "top": 186.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0064",
      "page": 63,
      "ordinal": 64,
      "text": "maxSurge=1",
      "top": 186.0,
      "left": 200.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0065",
      "page": 63,
      "ordinal": 65,
      "text": "，所以我们得出在整个",
      "top": 186.0,
      "left": 285.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0066",
      "page": 63,
      "ordinal": 66,
      "text": "deployment",
      "top": 186.0,
      "left": 431.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0067",
      "page": 63,
      "ordinal": 67,
      "text": "升级镜像过程中，不管旧的",
      "top": 186.0,
      "left": 513.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0068",
      "page": 63,
      "ordinal": 68,
      "text": "pod",
      "top": 186.0,
      "left": 689.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0069",
      "page": 63,
      "ordinal": 69,
      "text": "和新的",
      "top": 186.0,
      "left": 715.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0070",
      "page": 63,
      "ordinal": 70,
      "text": "pod",
      "top": 209.0,
      "left": 112.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0071",
      "page": 63,
      "ordinal": 71,
      "text": "是如何创建消亡的，",
      "top": 209.0,
      "left": 139.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0072",
      "page": 63,
      "ordinal": 72,
      "text": "pod",
      "top": 209.0,
      "left": 270.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0073",
      "page": 63,
      "ordinal": 73,
      "text": "总数最大不能超过",
      "top": 209.0,
      "left": 297.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0074",
      "page": 63,
      "ordinal": 74,
      "text": "3+maxSurge=4",
      "top": 209.0,
      "left": 414.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0075",
      "page": 63,
      "ordinal": 75,
      "text": "个，最大",
      "top": 209.0,
      "left": 516.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0076",
      "page": 63,
      "ordinal": 76,
      "text": "pod",
      "top": 209.0,
      "left": 574.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0077",
      "page": 63,
      "ordinal": 77,
      "text": "不可用数",
      "top": 209.0,
      "left": 601.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0078",
      "page": 63,
      "ordinal": 78,
      "text": "3-",
      "top": 209.0,
      "left": 660.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0079",
      "page": 63,
      "ordinal": 79,
      "text": "maxUnavailable=3",
      "top": 233.0,
      "left": 112.0,
      "width": 126.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0080",
      "page": 63,
      "ordinal": 80,
      "text": "个。",
      "top": 233.0,
      "left": 237.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b003"
      }
    },
    {
      "id": "p063-t0081",
      "page": 63,
      "ordinal": 81,
      "text": "现在具体讲一下",
      "top": 267.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0082",
      "page": 63,
      "ordinal": 82,
      "text": "deployment",
      "top": 267.0,
      "left": 214.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0083",
      "page": 63,
      "ordinal": 83,
      "text": "的更新升级过程：",
      "top": 267.0,
      "left": 296.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0084",
      "page": 63,
      "ordinal": 84,
      "text": "使用",
      "top": 291.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0085",
      "page": 63,
      "ordinal": 85,
      "text": "kubectl set image deployment/nginx nginx=nginx:1.9 --record ",
      "top": 291.0,
      "left": 141.0,
      "width": 421.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0086",
      "page": 63,
      "ordinal": 86,
      "text": "命令来更新；",
      "top": 291.0,
      "left": 562.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b004"
      }
    },
    {
      "id": "p063-t0087",
      "page": 63,
      "ordinal": 87,
      "text": "1",
      "top": 315.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0088",
      "page": 63,
      "ordinal": 88,
      "text": "、",
      "top": 315.0,
      "left": 120.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0089",
      "page": 63,
      "ordinal": 89,
      "text": "deployment",
      "top": 315.0,
      "left": 135.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0090",
      "page": 63,
      "ordinal": 90,
      "text": "创建一个新的",
      "top": 315.0,
      "left": 217.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0091",
      "page": 63,
      "ordinal": 91,
      "text": "replaceset",
      "top": 315.0,
      "left": 304.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0092",
      "page": 63,
      "ordinal": 92,
      "text": "，先新增",
      "top": 315.0,
      "left": 375.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0093",
      "page": 63,
      "ordinal": 93,
      "text": "1",
      "top": 315.0,
      "left": 433.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0094",
      "page": 63,
      "ordinal": 94,
      "text": "个新版本",
      "top": 315.0,
      "left": 442.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0095",
      "page": 63,
      "ordinal": 95,
      "text": "pod",
      "top": 315.0,
      "left": 500.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0096",
      "page": 63,
      "ordinal": 96,
      "text": "，此时",
      "top": 315.0,
      "left": 527.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0097",
      "page": 63,
      "ordinal": 97,
      "text": "pod",
      "top": 315.0,
      "left": 571.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0098",
      "page": 63,
      "ordinal": 98,
      "text": "总数为",
      "top": 315.0,
      "left": 598.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0099",
      "page": 63,
      "ordinal": 99,
      "text": "4",
      "top": 315.0,
      "left": 642.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0100",
      "page": 63,
      "ordinal": 100,
      "text": "个，不能再新增了，",
      "top": 315.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0101",
      "page": 63,
      "ordinal": 101,
      "text": "再新增就超过",
      "top": 338.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0102",
      "page": 63,
      "ordinal": 102,
      "text": "pod",
      "top": 338.0,
      "left": 200.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0103",
      "page": 63,
      "ordinal": 103,
      "text": "总数",
      "top": 338.0,
      "left": 226.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0104",
      "page": 63,
      "ordinal": 104,
      "text": "4",
      "top": 338.0,
      "left": 256.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0105",
      "page": 63,
      "ordinal": 105,
      "text": "个了；旧",
      "top": 338.0,
      "left": 264.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0106",
      "page": 63,
      "ordinal": 106,
      "text": "=3",
      "top": 338.0,
      "left": 322.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0107",
      "page": 63,
      "ordinal": 107,
      "text": "，新",
      "top": 338.0,
      "left": 339.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0108",
      "page": 63,
      "ordinal": 108,
      "text": "=1",
      "top": 338.0,
      "left": 368.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0109",
      "page": 63,
      "ordinal": 109,
      "text": "，总",
      "top": 338.0,
      "left": 385.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0110",
      "page": 63,
      "ordinal": 110,
      "text": "=4",
      "top": 338.0,
      "left": 414.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0111",
      "page": 63,
      "ordinal": 111,
      "text": "；",
      "top": 338.0,
      "left": 431.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b005"
      }
    },
    {
      "id": "p063-t0112",
      "page": 63,
      "ordinal": 112,
      "text": "2",
      "top": 362.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0113",
      "page": 63,
      "ordinal": 113,
      "text": "、减少一个旧版本的",
      "top": 362.0,
      "left": 120.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0114",
      "page": 63,
      "ordinal": 114,
      "text": "pod",
      "top": 362.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0115",
      "page": 63,
      "ordinal": 115,
      "text": "，此时",
      "top": 362.0,
      "left": 278.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0116",
      "page": 63,
      "ordinal": 116,
      "text": "pod",
      "top": 362.0,
      "left": 322.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0117",
      "page": 63,
      "ordinal": 117,
      "text": "总数为",
      "top": 362.0,
      "left": 349.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0118",
      "page": 63,
      "ordinal": 118,
      "text": "3",
      "top": 362.0,
      "left": 393.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0119",
      "page": 63,
      "ordinal": 119,
      "text": "个，这时不能再减少了，再减少就不满足最大",
      "top": 362.0,
      "left": 401.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0120",
      "page": 63,
      "ordinal": 120,
      "text": "pod",
      "top": 362.0,
      "left": 694.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0121",
      "page": 63,
      "ordinal": 121,
      "text": "不可用数",
      "top": 362.0,
      "left": 721.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0122",
      "page": 63,
      "ordinal": 122,
      "text": "3",
      "top": 384.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0123",
      "page": 63,
      "ordinal": 123,
      "text": "个了；旧",
      "top": 384.0,
      "left": 120.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0124",
      "page": 63,
      "ordinal": 124,
      "text": "=2",
      "top": 384.0,
      "left": 179.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0125",
      "page": 63,
      "ordinal": 125,
      "text": "，新",
      "top": 384.0,
      "left": 195.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0126",
      "page": 63,
      "ordinal": 126,
      "text": "=1",
      "top": 384.0,
      "left": 225.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0127",
      "page": 63,
      "ordinal": 127,
      "text": "，总",
      "top": 384.0,
      "left": 241.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0128",
      "page": 63,
      "ordinal": 128,
      "text": "=3",
      "top": 384.0,
      "left": 271.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0129",
      "page": 63,
      "ordinal": 129,
      "text": "；",
      "top": 384.0,
      "left": 287.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b006"
      }
    },
    {
      "id": "p063-t0130",
      "page": 63,
      "ordinal": 130,
      "text": "3",
      "top": 408.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0131",
      "page": 63,
      "ordinal": 131,
      "text": "、再新增一个新版本的",
      "top": 408.0,
      "left": 120.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0132",
      "page": 63,
      "ordinal": 132,
      "text": "pod",
      "top": 408.0,
      "left": 266.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0133",
      "page": 63,
      "ordinal": 133,
      "text": "，此时",
      "top": 408.0,
      "left": 293.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0134",
      "page": 63,
      "ordinal": 134,
      "text": "pod",
      "top": 408.0,
      "left": 337.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0135",
      "page": 63,
      "ordinal": 135,
      "text": "总数为",
      "top": 408.0,
      "left": 364.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0136",
      "page": 63,
      "ordinal": 136,
      "text": "4",
      "top": 408.0,
      "left": 408.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0137",
      "page": 63,
      "ordinal": 137,
      "text": "个，不能再新增了；旧",
      "top": 408.0,
      "left": 416.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0138",
      "page": 63,
      "ordinal": 138,
      "text": "=2",
      "top": 408.0,
      "left": 562.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0139",
      "page": 63,
      "ordinal": 139,
      "text": "，新",
      "top": 408.0,
      "left": 579.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0140",
      "page": 63,
      "ordinal": 140,
      "text": "=2",
      "top": 408.0,
      "left": 608.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0141",
      "page": 63,
      "ordinal": 141,
      "text": "，总",
      "top": 408.0,
      "left": 625.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0142",
      "page": 63,
      "ordinal": 142,
      "text": "=4",
      "top": 408.0,
      "left": 654.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0143",
      "page": 63,
      "ordinal": 143,
      "text": "；",
      "top": 408.0,
      "left": 671.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b007"
      }
    },
    {
      "id": "p063-t0144",
      "page": 63,
      "ordinal": 144,
      "text": "4",
      "top": 432.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0145",
      "page": 63,
      "ordinal": 145,
      "text": "、减少一个旧版本的",
      "top": 432.0,
      "left": 120.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0146",
      "page": 63,
      "ordinal": 146,
      "text": "pod",
      "top": 432.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0147",
      "page": 63,
      "ordinal": 147,
      "text": "，此时",
      "top": 432.0,
      "left": 278.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0148",
      "page": 63,
      "ordinal": 148,
      "text": "pod",
      "top": 432.0,
      "left": 322.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0149",
      "page": 63,
      "ordinal": 149,
      "text": "总数为",
      "top": 432.0,
      "left": 349.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0150",
      "page": 63,
      "ordinal": 150,
      "text": "3",
      "top": 432.0,
      "left": 393.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0151",
      "page": 63,
      "ordinal": 151,
      "text": "个，这时不能再减少了；旧",
      "top": 432.0,
      "left": 401.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0152",
      "page": 63,
      "ordinal": 152,
      "text": "=1",
      "top": 432.0,
      "left": 577.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0153",
      "page": 63,
      "ordinal": 153,
      "text": "，新",
      "top": 432.0,
      "left": 594.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0154",
      "page": 63,
      "ordinal": 154,
      "text": "=2",
      "top": 432.0,
      "left": 623.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0155",
      "page": 63,
      "ordinal": 155,
      "text": "，总",
      "top": 432.0,
      "left": 640.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0156",
      "page": 63,
      "ordinal": 156,
      "text": "=3",
      "top": 432.0,
      "left": 669.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0157",
      "page": 63,
      "ordinal": 157,
      "text": "；",
      "top": 432.0,
      "left": 686.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b008"
      }
    },
    {
      "id": "p063-t0158",
      "page": 63,
      "ordinal": 158,
      "text": "5",
      "top": 455.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0159",
      "page": 63,
      "ordinal": 159,
      "text": "、再新增一个新版本的",
      "top": 455.0,
      "left": 120.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0160",
      "page": 63,
      "ordinal": 160,
      "text": "pod",
      "top": 455.0,
      "left": 266.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0161",
      "page": 63,
      "ordinal": 161,
      "text": "，此时",
      "top": 455.0,
      "left": 293.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0162",
      "page": 63,
      "ordinal": 162,
      "text": "pod",
      "top": 455.0,
      "left": 337.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0163",
      "page": 63,
      "ordinal": 163,
      "text": "总数为",
      "top": 455.0,
      "left": 364.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0164",
      "page": 63,
      "ordinal": 164,
      "text": "4",
      "top": 455.0,
      "left": 408.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0165",
      "page": 63,
      "ordinal": 165,
      "text": "个，不能再新增了；旧",
      "top": 455.0,
      "left": 416.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0166",
      "page": 63,
      "ordinal": 166,
      "text": "=1",
      "top": 455.0,
      "left": 562.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0167",
      "page": 63,
      "ordinal": 167,
      "text": "，新",
      "top": 455.0,
      "left": 579.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0168",
      "page": 63,
      "ordinal": 168,
      "text": "=3",
      "top": 455.0,
      "left": 608.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0169",
      "page": 63,
      "ordinal": 169,
      "text": "，总",
      "top": 455.0,
      "left": 625.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0170",
      "page": 63,
      "ordinal": 170,
      "text": "=4",
      "top": 455.0,
      "left": 654.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0171",
      "page": 63,
      "ordinal": 171,
      "text": "；",
      "top": 455.0,
      "left": 671.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b009"
      }
    },
    {
      "id": "p063-t0172",
      "page": 63,
      "ordinal": 172,
      "text": "6",
      "top": 479.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0173",
      "page": 63,
      "ordinal": 173,
      "text": "、减少一个旧版本的",
      "top": 479.0,
      "left": 120.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0174",
      "page": 63,
      "ordinal": 174,
      "text": "pod",
      "top": 479.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0175",
      "page": 63,
      "ordinal": 175,
      "text": "，此时",
      "top": 479.0,
      "left": 278.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0176",
      "page": 63,
      "ordinal": 176,
      "text": "pod",
      "top": 479.0,
      "left": 322.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0177",
      "page": 63,
      "ordinal": 177,
      "text": "总数为",
      "top": 479.0,
      "left": 349.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0178",
      "page": 63,
      "ordinal": 178,
      "text": "3",
      "top": 479.0,
      "left": 393.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0179",
      "page": 63,
      "ordinal": 179,
      "text": "个，更新完成，",
      "top": 479.0,
      "left": 401.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0180",
      "page": 63,
      "ordinal": 180,
      "text": "pod",
      "top": 479.0,
      "left": 504.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0181",
      "page": 63,
      "ordinal": 181,
      "text": "都是新版本了；旧",
      "top": 479.0,
      "left": 530.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0182",
      "page": 63,
      "ordinal": 182,
      "text": "=0",
      "top": 479.0,
      "left": 647.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0183",
      "page": 63,
      "ordinal": 183,
      "text": "，新",
      "top": 479.0,
      "left": 664.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0184",
      "page": 63,
      "ordinal": 184,
      "text": "=3",
      "top": 479.0,
      "left": 693.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0185",
      "page": 63,
      "ordinal": 185,
      "text": "，总",
      "top": 479.0,
      "left": 710.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0186",
      "page": 63,
      "ordinal": 186,
      "text": "=3",
      "top": 479.0,
      "left": 739.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0187",
      "page": 63,
      "ordinal": 187,
      "text": "；",
      "top": 479.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b010"
      }
    },
    {
      "id": "p063-t0188",
      "page": 63,
      "ordinal": 188,
      "text": "deployment",
      "top": 512.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01"
      }
    },
    {
      "id": "p063-t0189",
      "page": 63,
      "ordinal": 189,
      "text": "的回滚使用什么命令",
      "top": 512.0,
      "left": 266.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01"
      }
    },
    {
      "id": "p063-t0191",
      "page": 63,
      "ordinal": 191,
      "text": "在升级",
      "top": 563.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0192",
      "page": 63,
      "ordinal": 192,
      "text": "deployment",
      "top": 563.0,
      "left": 156.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0193",
      "page": 63,
      "ordinal": 193,
      "text": "时",
      "top": 563.0,
      "left": 238.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0194",
      "page": 63,
      "ordinal": 194,
      "text": "kubectl set image ",
      "top": 563.0,
      "left": 252.0,
      "width": 123.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0195",
      "page": 63,
      "ordinal": 195,
      "text": "命令加上",
      "top": 563.0,
      "left": 375.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0196",
      "page": 63,
      "ordinal": 196,
      "text": " --record ",
      "top": 563.0,
      "left": 434.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0197",
      "page": 63,
      "ordinal": 197,
      "text": "参数可以记录具体的升级历史信息，使用",
      "top": 563.0,
      "left": 496.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0198",
      "page": 63,
      "ordinal": 198,
      "text": "kubectl rollout history deployment/deployment-nginx ",
      "top": 587.0,
      "left": 112.0,
      "width": 368.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0199",
      "page": 63,
      "ordinal": 199,
      "text": "命令来查看指定的",
      "top": 587.0,
      "left": 480.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0200",
      "page": 63,
      "ordinal": 200,
      "text": "deployment",
      "top": 587.0,
      "left": 597.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0201",
      "page": 63,
      "ordinal": 201,
      "text": "升级历史记录，",
      "top": 587.0,
      "left": 679.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0202",
      "page": 63,
      "ordinal": 202,
      "text": "如果需要回滚到某个指定的版本，可以使用",
      "top": 611.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0203",
      "page": 63,
      "ordinal": 203,
      "text": "kubectl rollout undo deployment/deployment-nginx --to-",
      "top": 611.0,
      "left": 390.0,
      "width": 385.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0204",
      "page": 63,
      "ordinal": 204,
      "text": "revision=2 ",
      "top": 634.0,
      "left": 112.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0205",
      "page": 63,
      "ordinal": 205,
      "text": "命令来实现。",
      "top": 634.0,
      "left": 186.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h01",
        "heading_id": "p063-h01",
        "block_id": "q-p063-h01-b001"
      }
    },
    {
      "id": "p063-t0206",
      "page": 63,
      "ordinal": 206,
      "text": "讲一下都有哪些存储卷，作用分别是什么",
      "top": 668.0,
      "left": 112.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02"
      }
    },
    {
      "id": "p063-t0207",
      "page": 63,
      "ordinal": 207,
      "text": "?",
      "top": 668.0,
      "left": 572.0,
      "width": 12.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02"
      }
    },
    {
      "id": "p063-t0209",
      "page": 63,
      "ordinal": 209,
      "text": "replicas: 3",
      "top": 55.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0210",
      "page": 63,
      "ordinal": 210,
      "text": "deployment.spec.strategy.type: RollingUpdate",
      "top": 77.0,
      "left": 126.0,
      "width": 349.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0211",
      "page": 63,
      "ordinal": 211,
      "text": "maxUnavailable",
      "top": 97.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0212",
      "page": 63,
      "ordinal": 212,
      "text": "：",
      "top": 96.0,
      "left": 237.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0213",
      "page": 63,
      "ordinal": 213,
      "text": "25%",
      "top": 97.0,
      "left": 251.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0214",
      "page": 63,
      "ordinal": 214,
      "text": "maxSurge",
      "top": 118.0,
      "left": 126.0,
      "width": 63.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0215",
      "page": 63,
      "ordinal": 215,
      "text": "：",
      "top": 117.0,
      "left": 190.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p063-t0216",
      "page": 63,
      "ordinal": 216,
      "text": "25%",
      "top": 118.0,
      "left": 203.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/08-kubernetes#q-p062-h06",
        "heading_id": "p062-h06",
        "block_id": "q-p062-h06-b002"
      }
    },
    {
      "id": "p064-t0001",
      "page": 64,
      "ordinal": 1,
      "text": "卷",
      "top": 51.0,
      "left": 128.0,
      "width": 15.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p064-t0002",
      "page": 64,
      "ordinal": 2,
      "text": "作用",
      "top": 51.0,
      "left": 252.0,
      "width": 29.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p064-t0003",
      "page": 64,
      "ordinal": 3,
      "text": "常用场景",
      "top": 51.0,
      "left": 505.0,
      "width": 59.0,
      "height": 19.0,
      "font": "14",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b004"
      }
    },
    {
      "id": "p064-t0004",
      "page": 64,
      "ordinal": 4,
      "text": "secret",
      "top": 148.0,
      "left": 128.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0005",
      "page": 64,
      "ordinal": 5,
      "text": "主要用于存储和管理一些敏感数",
      "top": 90.0,
      "left": 252.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0006",
      "page": 64,
      "ordinal": 6,
      "text": "据，然后通过在",
      "top": 113.0,
      "left": 252.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0007",
      "page": 64,
      "ordinal": 7,
      "text": " Pod ",
      "top": 113.0,
      "left": 355.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0008",
      "page": 64,
      "ordinal": 8,
      "text": "的容器里挂",
      "top": 113.0,
      "left": 389.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0009",
      "page": 64,
      "ordinal": 9,
      "text": "载",
      "top": 136.0,
      "left": 252.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0010",
      "page": 64,
      "ordinal": 10,
      "text": " Volume ",
      "top": 136.0,
      "left": 267.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0011",
      "page": 64,
      "ordinal": 11,
      "text": "的方式或者环境变量的",
      "top": 136.0,
      "left": 327.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0012",
      "page": 64,
      "ordinal": 12,
      "text": "方式访问到这些",
      "top": 159.0,
      "left": 252.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0013",
      "page": 64,
      "ordinal": 13,
      "text": " Secret ",
      "top": 159.0,
      "left": 355.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0014",
      "page": 64,
      "ordinal": 14,
      "text": "里保存的",
      "top": 159.0,
      "left": 405.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0015",
      "page": 64,
      "ordinal": 15,
      "text": "信息了，",
      "top": 183.0,
      "left": 252.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0016",
      "page": 64,
      "ordinal": 16,
      "text": "pod",
      "top": 183.0,
      "left": 311.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0017",
      "page": 64,
      "ordinal": 17,
      "text": "会自动解密",
      "top": 183.0,
      "left": 338.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0018",
      "page": 64,
      "ordinal": 18,
      "text": "Secret ",
      "top": 183.0,
      "left": 411.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0019",
      "page": 64,
      "ordinal": 19,
      "text": "的",
      "top": 183.0,
      "left": 457.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0020",
      "page": 64,
      "ordinal": 20,
      "text": "信息",
      "top": 207.0,
      "left": 252.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0021",
      "page": 64,
      "ordinal": 21,
      "text": "将应用程序的账号密码等敏感信息通过",
      "top": 136.0,
      "left": 505.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0022",
      "page": 64,
      "ordinal": 22,
      "text": "secret",
      "top": 159.0,
      "left": 505.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0023",
      "page": 64,
      "ordinal": 23,
      "text": "卷的形式挂载到",
      "top": 159.0,
      "left": 546.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0024",
      "page": 64,
      "ordinal": 24,
      "text": "pod",
      "top": 159.0,
      "left": 649.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0025",
      "page": 64,
      "ordinal": 25,
      "text": "中使用",
      "top": 159.0,
      "left": 675.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b005"
      }
    },
    {
      "id": "p064-t0026",
      "page": 64,
      "ordinal": 26,
      "text": "downwardApi",
      "top": 267.0,
      "left": 128.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0027",
      "page": 64,
      "ordinal": 27,
      "text": "主要用于暴露",
      "top": 256.0,
      "left": 252.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0028",
      "page": 64,
      "ordinal": 28,
      "text": "pod",
      "top": 256.0,
      "left": 340.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0029",
      "page": 64,
      "ordinal": 29,
      "text": "元数据，如",
      "top": 256.0,
      "left": 367.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0030",
      "page": 64,
      "ordinal": 30,
      "text": "pod",
      "top": 256.0,
      "left": 440.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0031",
      "page": 64,
      "ordinal": 31,
      "text": "的名字",
      "top": 280.0,
      "left": 252.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0032",
      "page": 64,
      "ordinal": 32,
      "text": "pod",
      "top": 245.0,
      "left": 505.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0033",
      "page": 64,
      "ordinal": 33,
      "text": "中的应用程序需要指定",
      "top": 245.0,
      "left": 532.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0034",
      "page": 64,
      "ordinal": 34,
      "text": "pod",
      "top": 245.0,
      "left": 678.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0035",
      "page": 64,
      "ordinal": 35,
      "text": "的",
      "top": 245.0,
      "left": 705.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0036",
      "page": 64,
      "ordinal": 36,
      "text": "name",
      "top": 245.0,
      "left": 719.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0037",
      "page": 64,
      "ordinal": 37,
      "text": "等元数据，就可以通过",
      "top": 267.0,
      "left": 505.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0038",
      "page": 64,
      "ordinal": 38,
      "text": "downwardApi ",
      "top": 267.0,
      "left": 651.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0039",
      "page": 64,
      "ordinal": 39,
      "text": "卷",
      "top": 267.0,
      "left": 749.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0040",
      "page": 64,
      "ordinal": 40,
      "text": "的形式挂载给",
      "top": 291.0,
      "left": 505.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0041",
      "page": 64,
      "ordinal": 41,
      "text": "pod",
      "top": 291.0,
      "left": 593.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0042",
      "page": 64,
      "ordinal": 42,
      "text": "使用",
      "top": 291.0,
      "left": 619.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b006"
      }
    },
    {
      "id": "p064-t0043",
      "page": 64,
      "ordinal": 43,
      "text": "projected",
      "top": 341.0,
      "left": 128.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0044",
      "page": 64,
      "ordinal": 44,
      "text": "这是一种特殊的卷，用于将上面这",
      "top": 329.0,
      "left": 252.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0045",
      "page": 64,
      "ordinal": 45,
      "text": "些卷一次性的挂载给",
      "top": 353.0,
      "left": 252.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0046",
      "page": 64,
      "ordinal": 46,
      "text": "pod",
      "top": 353.0,
      "left": 384.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0047",
      "page": 64,
      "ordinal": 47,
      "text": "使用",
      "top": 353.0,
      "left": 411.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0048",
      "page": 64,
      "ordinal": 48,
      "text": "将上面这些卷一次性的挂载给",
      "top": 341.0,
      "left": 505.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0049",
      "page": 64,
      "ordinal": 49,
      "text": "pod",
      "top": 341.0,
      "left": 695.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0050",
      "page": 64,
      "ordinal": 50,
      "text": "使用",
      "top": 341.0,
      "left": 722.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b007"
      }
    },
    {
      "id": "p064-t0051",
      "page": 64,
      "ordinal": 51,
      "text": "pvc",
      "top": 402.0,
      "left": 128.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0052",
      "page": 64,
      "ordinal": 52,
      "text": "pvc",
      "top": 402.0,
      "left": 252.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0053",
      "page": 64,
      "ordinal": 53,
      "text": "是存储卷声明",
      "top": 402.0,
      "left": 276.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0054",
      "page": 64,
      "ordinal": 54,
      "text": "通常会创建",
      "top": 391.0,
      "left": 505.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0055",
      "page": 64,
      "ordinal": 55,
      "text": "pvc",
      "top": 391.0,
      "left": 578.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0056",
      "page": 64,
      "ordinal": 56,
      "text": "表示对存储的申请，然后",
      "top": 391.0,
      "left": 601.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0057",
      "page": 64,
      "ordinal": 57,
      "text": "在",
      "top": 414.0,
      "left": 505.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0058",
      "page": 64,
      "ordinal": 58,
      "text": "pod",
      "top": 414.0,
      "left": 519.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0059",
      "page": 64,
      "ordinal": 59,
      "text": "中使用",
      "top": 414.0,
      "left": 546.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0060",
      "page": 64,
      "ordinal": 60,
      "text": "pvc",
      "top": 414.0,
      "left": 590.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b008"
      }
    },
    {
      "id": "p064-t0061",
      "page": 64,
      "ordinal": 61,
      "text": "网络存储卷",
      "top": 464.0,
      "left": 128.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0062",
      "page": 64,
      "ordinal": 62,
      "text": "pod",
      "top": 452.0,
      "left": 252.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0063",
      "page": 64,
      "ordinal": 63,
      "text": "挂载网络存储卷，这样就能将",
      "top": 452.0,
      "left": 279.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0064",
      "page": 64,
      "ordinal": 64,
      "text": "数据持久化到后端的存储里",
      "top": 476.0,
      "left": 252.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0065",
      "page": 64,
      "ordinal": 65,
      "text": "常见的网络存储卷有",
      "top": 452.0,
      "left": 505.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0066",
      "page": 64,
      "ordinal": 66,
      "text": "nfs",
      "top": 452.0,
      "left": 636.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0067",
      "page": 64,
      "ordinal": 67,
      "text": "存储、",
      "top": 452.0,
      "left": 657.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0068",
      "page": 64,
      "ordinal": 68,
      "text": "glusterfs",
      "top": 452.0,
      "left": 701.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0069",
      "page": 64,
      "ordinal": 69,
      "text": "卷、",
      "top": 476.0,
      "left": 505.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0070",
      "page": 64,
      "ordinal": 70,
      "text": "ceph rbd",
      "top": 476.0,
      "left": 534.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0071",
      "page": 64,
      "ordinal": 71,
      "text": "存储卷",
      "top": 476.0,
      "left": 595.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p063-h02",
        "heading_id": "p063-h02",
        "block_id": "q-p063-h02-b009"
      }
    },
    {
      "id": "p064-t0072",
      "page": 64,
      "ordinal": 72,
      "text": "pv",
      "top": 520.0,
      "left": 112.0,
      "width": 31.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01"
      }
    },
    {
      "id": "p064-t0073",
      "page": 64,
      "ordinal": 73,
      "text": "的访问模式有哪几种",
      "top": 520.0,
      "left": 143.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01"
      }
    },
    {
      "id": "p064-t0075",
      "page": 64,
      "ordinal": 75,
      "text": "ReadWriteOnce",
      "top": 571.0,
      "left": 112.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0076",
      "page": 64,
      "ordinal": 76,
      "text": "，简写：",
      "top": 571.0,
      "left": 218.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0077",
      "page": 64,
      "ordinal": 77,
      "text": "RWO",
      "top": 571.0,
      "left": 277.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0078",
      "page": 64,
      "ordinal": 78,
      "text": "表示，只仅允许单个节点以读写方式挂载；",
      "top": 571.0,
      "left": 324.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0079",
      "page": 64,
      "ordinal": 79,
      "text": "ReadOnlyMany",
      "top": 595.0,
      "left": 112.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0080",
      "page": 64,
      "ordinal": 80,
      "text": "，简写：",
      "top": 595.0,
      "left": 215.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0081",
      "page": 64,
      "ordinal": 81,
      "text": "ROX",
      "top": 595.0,
      "left": 274.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0082",
      "page": 64,
      "ordinal": 82,
      "text": "表示，可以被许多节点以只读方式挂载；",
      "top": 595.0,
      "left": 309.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0083",
      "page": 64,
      "ordinal": 83,
      "text": "ReadWriteMany",
      "top": 618.0,
      "left": 112.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0084",
      "page": 64,
      "ordinal": 84,
      "text": "，简写：",
      "top": 618.0,
      "left": 220.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0085",
      "page": 64,
      "ordinal": 85,
      "text": "RWX",
      "top": 618.0,
      "left": 279.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0086",
      "page": 64,
      "ordinal": 86,
      "text": "表示，可以被多个节点以读写方式挂载；",
      "top": 618.0,
      "left": 324.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h01",
        "heading_id": "p064-h01",
        "block_id": "q-p064-h01-b001"
      }
    },
    {
      "id": "p064-t0087",
      "page": 64,
      "ordinal": 87,
      "text": "pv",
      "top": 653.0,
      "left": 112.0,
      "width": 31.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02"
      }
    },
    {
      "id": "p064-t0088",
      "page": 64,
      "ordinal": 88,
      "text": "的回收策略有哪几种",
      "top": 653.0,
      "left": 143.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02"
      }
    },
    {
      "id": "p064-t0090",
      "page": 64,
      "ordinal": 90,
      "text": "主要有",
      "top": 703.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0091",
      "page": 64,
      "ordinal": 91,
      "text": "2",
      "top": 703.0,
      "left": 156.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0092",
      "page": 64,
      "ordinal": 92,
      "text": "中回收策略：",
      "top": 703.0,
      "left": 164.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0093",
      "page": 64,
      "ordinal": 93,
      "text": "retain ",
      "top": 703.0,
      "left": 252.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0094",
      "page": 64,
      "ordinal": 94,
      "text": "保留、",
      "top": 703.0,
      "left": 296.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0095",
      "page": 64,
      "ordinal": 95,
      "text": "delete ",
      "top": 703.0,
      "left": 340.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0096",
      "page": 64,
      "ordinal": 96,
      "text": "删除。",
      "top": 703.0,
      "left": 386.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0097",
      "page": 64,
      "ordinal": 97,
      "text": "Retain",
      "top": 726.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0098",
      "page": 64,
      "ordinal": 98,
      "text": "：保留，该策略允许手动回收资源，当删除",
      "top": 726.0,
      "left": 155.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0099",
      "page": 64,
      "ordinal": 99,
      "text": "PVC",
      "top": 726.0,
      "left": 433.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0100",
      "page": 64,
      "ordinal": 100,
      "text": "时，",
      "top": 726.0,
      "left": 460.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0101",
      "page": 64,
      "ordinal": 101,
      "text": "PV",
      "top": 726.0,
      "left": 489.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0102",
      "page": 64,
      "ordinal": 102,
      "text": "仍然存在，",
      "top": 726.0,
      "left": 506.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0103",
      "page": 64,
      "ordinal": 103,
      "text": "PV",
      "top": 726.0,
      "left": 579.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0104",
      "page": 64,
      "ordinal": 104,
      "text": "被视为已释放，管理员可以",
      "top": 726.0,
      "left": 597.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0105",
      "page": 64,
      "ordinal": 105,
      "text": "手动回收卷。",
      "top": 750.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0106",
      "page": 64,
      "ordinal": 106,
      "text": "Delete",
      "top": 774.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0107",
      "page": 64,
      "ordinal": 107,
      "text": "：删除，如果",
      "top": 774.0,
      "left": 156.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0108",
      "page": 64,
      "ordinal": 108,
      "text": "Volume",
      "top": 774.0,
      "left": 244.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0109",
      "page": 64,
      "ordinal": 109,
      "text": "插件支持，删除",
      "top": 774.0,
      "left": 296.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0110",
      "page": 64,
      "ordinal": 110,
      "text": "PVC",
      "top": 774.0,
      "left": 398.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0111",
      "page": 64,
      "ordinal": 111,
      "text": "时会同时删除",
      "top": 774.0,
      "left": 425.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0112",
      "page": 64,
      "ordinal": 112,
      "text": "PV",
      "top": 774.0,
      "left": 513.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0113",
      "page": 64,
      "ordinal": 113,
      "text": "，动态卷默认为",
      "top": 774.0,
      "left": 530.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0114",
      "page": 64,
      "ordinal": 114,
      "text": "Delete",
      "top": 774.0,
      "left": 632.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0115",
      "page": 64,
      "ordinal": 115,
      "text": "，目前支持",
      "top": 774.0,
      "left": 677.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0116",
      "page": 64,
      "ordinal": 116,
      "text": "Delete",
      "top": 797.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0117",
      "page": 64,
      "ordinal": 117,
      "text": "的存储后端包括",
      "top": 797.0,
      "left": 156.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0118",
      "page": 64,
      "ordinal": 118,
      "text": "AWS EBS",
      "top": 797.0,
      "left": 258.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0119",
      "page": 64,
      "ordinal": 119,
      "text": "，",
      "top": 797.0,
      "left": 319.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0120",
      "page": 64,
      "ordinal": 120,
      "text": "GCE PD",
      "top": 797.0,
      "left": 333.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0121",
      "page": 64,
      "ordinal": 121,
      "text": "，",
      "top": 797.0,
      "left": 384.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0122",
      "page": 64,
      "ordinal": 122,
      "text": "Azure Disk",
      "top": 797.0,
      "left": 399.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0123",
      "page": 64,
      "ordinal": 123,
      "text": "，",
      "top": 797.0,
      "left": 471.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0124",
      "page": 64,
      "ordinal": 124,
      "text": "OpenStack Cinder",
      "top": 797.0,
      "left": 486.0,
      "width": 122.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0125",
      "page": 64,
      "ordinal": 125,
      "text": "等。",
      "top": 797.0,
      "left": 608.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h02",
        "heading_id": "p064-h02",
        "block_id": "q-p064-h02-b001"
      }
    },
    {
      "id": "p064-t0126",
      "page": 64,
      "ordinal": 126,
      "text": "在",
      "top": 831.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03"
      }
    },
    {
      "id": "p064-t0127",
      "page": 64,
      "ordinal": 127,
      "text": "pv",
      "top": 831.0,
      "left": 137.0,
      "width": 31.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03"
      }
    },
    {
      "id": "p064-t0128",
      "page": 64,
      "ordinal": 128,
      "text": "的生命周期中，一般有几种状态",
      "top": 831.0,
      "left": 168.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03"
      }
    },
    {
      "id": "p064-t0130",
      "page": 64,
      "ordinal": 130,
      "text": "pv",
      "top": 882.0,
      "left": 112.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0131",
      "page": 64,
      "ordinal": 131,
      "text": "一共有",
      "top": 882.0,
      "left": 128.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0132",
      "page": 64,
      "ordinal": 132,
      "text": "4",
      "top": 882.0,
      "left": 172.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0133",
      "page": 64,
      "ordinal": 133,
      "text": "中状态，分别是：",
      "top": 882.0,
      "left": 180.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0134",
      "page": 64,
      "ordinal": 134,
      "text": "创建",
      "top": 905.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0135",
      "page": 64,
      "ordinal": 135,
      "text": "pv",
      "top": 905.0,
      "left": 141.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0136",
      "page": 64,
      "ordinal": 136,
      "text": "后，",
      "top": 905.0,
      "left": 157.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0137",
      "page": 64,
      "ordinal": 137,
      "text": "pv",
      "top": 905.0,
      "left": 187.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0138",
      "page": 64,
      "ordinal": 138,
      "text": "的的状态有以下",
      "top": 905.0,
      "left": 203.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0139",
      "page": 64,
      "ordinal": 139,
      "text": "4",
      "top": 905.0,
      "left": 305.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0140",
      "page": 64,
      "ordinal": 140,
      "text": "种：",
      "top": 905.0,
      "left": 314.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0141",
      "page": 64,
      "ordinal": 141,
      "text": "Available",
      "top": 905.0,
      "left": 343.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0142",
      "page": 64,
      "ordinal": 142,
      "text": "（可用）、",
      "top": 905.0,
      "left": 404.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0143",
      "page": 64,
      "ordinal": 143,
      "text": "Bound",
      "top": 905.0,
      "left": 477.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0144",
      "page": 64,
      "ordinal": 144,
      "text": "（已绑定）、",
      "top": 905.0,
      "left": 522.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0145",
      "page": 64,
      "ordinal": 145,
      "text": "Released",
      "top": 905.0,
      "left": 610.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0146",
      "page": 64,
      "ordinal": 146,
      "text": "（已释放）、",
      "top": 905.0,
      "left": 671.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0147",
      "page": 64,
      "ordinal": 147,
      "text": "Failed",
      "top": 929.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0148",
      "page": 64,
      "ordinal": 148,
      "text": "（失败）",
      "top": 929.0,
      "left": 152.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0149",
      "page": 64,
      "ordinal": 149,
      "text": "Available",
      "top": 953.0,
      "left": 112.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0150",
      "page": 64,
      "ordinal": 150,
      "text": "，表示",
      "top": 953.0,
      "left": 173.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0151",
      "page": 64,
      "ordinal": 151,
      "text": "pv",
      "top": 953.0,
      "left": 217.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0152",
      "page": 64,
      "ordinal": 152,
      "text": "已经创建正常，处于可用状态；",
      "top": 953.0,
      "left": 233.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0153",
      "page": 64,
      "ordinal": 153,
      "text": "Bound",
      "top": 975.0,
      "left": 112.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0154",
      "page": 64,
      "ordinal": 154,
      "text": "，表示",
      "top": 975.0,
      "left": 157.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0155",
      "page": 64,
      "ordinal": 155,
      "text": "pv",
      "top": 975.0,
      "left": 201.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0156",
      "page": 64,
      "ordinal": 156,
      "text": "已经被某个",
      "top": 975.0,
      "left": 217.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0157",
      "page": 64,
      "ordinal": 157,
      "text": "pvc",
      "top": 975.0,
      "left": 290.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0158",
      "page": 64,
      "ordinal": 158,
      "text": "绑定，注意，一个",
      "top": 975.0,
      "left": 314.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0159",
      "page": 64,
      "ordinal": 159,
      "text": "pv",
      "top": 975.0,
      "left": 431.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0160",
      "page": 64,
      "ordinal": 160,
      "text": "一旦被某个",
      "top": 975.0,
      "left": 447.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0161",
      "page": 64,
      "ordinal": 161,
      "text": "pvc",
      "top": 975.0,
      "left": 520.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0162",
      "page": 64,
      "ordinal": 162,
      "text": "绑定，那么该",
      "top": 975.0,
      "left": 543.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0163",
      "page": 64,
      "ordinal": 163,
      "text": "pvc",
      "top": 975.0,
      "left": 631.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0164",
      "page": 64,
      "ordinal": 164,
      "text": "就独占该",
      "top": 975.0,
      "left": 654.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0165",
      "page": 64,
      "ordinal": 165,
      "text": "pv",
      "top": 975.0,
      "left": 713.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0166",
      "page": 64,
      "ordinal": 166,
      "text": "，其他",
      "top": 975.0,
      "left": 729.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0167",
      "page": 64,
      "ordinal": 167,
      "text": "pvc",
      "top": 999.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0168",
      "page": 64,
      "ordinal": 168,
      "text": "不能再与该",
      "top": 999.0,
      "left": 135.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0169",
      "page": 64,
      "ordinal": 169,
      "text": "pv",
      "top": 999.0,
      "left": 208.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0170",
      "page": 64,
      "ordinal": 170,
      "text": "绑定；",
      "top": 999.0,
      "left": 224.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0171",
      "page": 64,
      "ordinal": 171,
      "text": "Released",
      "top": 1022.0,
      "left": 112.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0172",
      "page": 64,
      "ordinal": 172,
      "text": "，表示",
      "top": 1022.0,
      "left": 173.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0173",
      "page": 64,
      "ordinal": 173,
      "text": "pvc",
      "top": 1022.0,
      "left": 217.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0174",
      "page": 64,
      "ordinal": 174,
      "text": "被删除了，",
      "top": 1022.0,
      "left": 240.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0175",
      "page": 64,
      "ordinal": 175,
      "text": "pv",
      "top": 1022.0,
      "left": 313.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0176",
      "page": 64,
      "ordinal": 176,
      "text": "状态就会变成已释放；",
      "top": 1022.0,
      "left": 330.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0177",
      "page": 64,
      "ordinal": 177,
      "text": "Failed",
      "top": 1046.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0178",
      "page": 64,
      "ordinal": 178,
      "text": "，表示",
      "top": 1046.0,
      "left": 152.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0179",
      "page": 64,
      "ordinal": 179,
      "text": "pv",
      "top": 1046.0,
      "left": 196.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p064-t0180",
      "page": 64,
      "ordinal": 180,
      "text": "的自动回收失败；",
      "top": 1046.0,
      "left": 212.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p064-h03",
        "heading_id": "p064-h03",
        "block_id": "q-p064-h03-b001"
      }
    },
    {
      "id": "p065-t0001",
      "page": 65,
      "ordinal": 1,
      "text": "存储类的资源回收策略",
      "top": 40.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01"
      }
    },
    {
      "id": "p065-t0003",
      "page": 65,
      "ordinal": 3,
      "text": "主要有",
      "top": 91.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0004",
      "page": 65,
      "ordinal": 4,
      "text": "2",
      "top": 91.0,
      "left": 156.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0005",
      "page": 65,
      "ordinal": 5,
      "text": "中回收策略，",
      "top": 91.0,
      "left": 164.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0006",
      "page": 65,
      "ordinal": 6,
      "text": "delete ",
      "top": 91.0,
      "left": 252.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0007",
      "page": 65,
      "ordinal": 7,
      "text": "删除，默认就是",
      "top": 91.0,
      "left": 298.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0008",
      "page": 65,
      "ordinal": 8,
      "text": "delete",
      "top": 91.0,
      "left": 400.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0009",
      "page": 65,
      "ordinal": 9,
      "text": "策略、",
      "top": 91.0,
      "left": 443.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0010",
      "page": 65,
      "ordinal": 10,
      "text": "retain ",
      "top": 91.0,
      "left": 487.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0011",
      "page": 65,
      "ordinal": 11,
      "text": "保留。",
      "top": 91.0,
      "left": 531.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0012",
      "page": 65,
      "ordinal": 12,
      "text": "Retain",
      "top": 114.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0013",
      "page": 65,
      "ordinal": 13,
      "text": "：保留，该策略允许手动回收资源，当删除",
      "top": 114.0,
      "left": 155.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0014",
      "page": 65,
      "ordinal": 14,
      "text": "PVC",
      "top": 114.0,
      "left": 433.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0015",
      "page": 65,
      "ordinal": 15,
      "text": "时，",
      "top": 114.0,
      "left": 460.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0016",
      "page": 65,
      "ordinal": 16,
      "text": "PV",
      "top": 114.0,
      "left": 489.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0017",
      "page": 65,
      "ordinal": 17,
      "text": "仍然存在，",
      "top": 114.0,
      "left": 506.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0018",
      "page": 65,
      "ordinal": 18,
      "text": "PV",
      "top": 114.0,
      "left": 579.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0019",
      "page": 65,
      "ordinal": 19,
      "text": "被视为已释放，管理员可以",
      "top": 114.0,
      "left": 597.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0020",
      "page": 65,
      "ordinal": 20,
      "text": "手动回收卷。",
      "top": 137.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0021",
      "page": 65,
      "ordinal": 21,
      "text": "Delete",
      "top": 161.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0022",
      "page": 65,
      "ordinal": 22,
      "text": "：删除，如果",
      "top": 161.0,
      "left": 156.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0023",
      "page": 65,
      "ordinal": 23,
      "text": "Volume",
      "top": 161.0,
      "left": 244.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0024",
      "page": 65,
      "ordinal": 24,
      "text": "插件支持，删除",
      "top": 161.0,
      "left": 296.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0025",
      "page": 65,
      "ordinal": 25,
      "text": "PVC",
      "top": 161.0,
      "left": 398.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0026",
      "page": 65,
      "ordinal": 26,
      "text": "时会同时删除",
      "top": 161.0,
      "left": 425.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0027",
      "page": 65,
      "ordinal": 27,
      "text": "PV",
      "top": 161.0,
      "left": 513.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0028",
      "page": 65,
      "ordinal": 28,
      "text": "，动态卷默认为",
      "top": 161.0,
      "left": 530.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0029",
      "page": 65,
      "ordinal": 29,
      "text": "Delete",
      "top": 161.0,
      "left": 632.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0030",
      "page": 65,
      "ordinal": 30,
      "text": "，目前支持",
      "top": 161.0,
      "left": 677.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0031",
      "page": 65,
      "ordinal": 31,
      "text": "Delete",
      "top": 184.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0032",
      "page": 65,
      "ordinal": 32,
      "text": "的存储后端包括",
      "top": 184.0,
      "left": 156.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0033",
      "page": 65,
      "ordinal": 33,
      "text": "AWS EBS",
      "top": 184.0,
      "left": 258.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0034",
      "page": 65,
      "ordinal": 34,
      "text": "，",
      "top": 184.0,
      "left": 319.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0035",
      "page": 65,
      "ordinal": 35,
      "text": "GCE PD",
      "top": 184.0,
      "left": 333.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0036",
      "page": 65,
      "ordinal": 36,
      "text": "，",
      "top": 184.0,
      "left": 384.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0037",
      "page": 65,
      "ordinal": 37,
      "text": "Azure Disk",
      "top": 184.0,
      "left": 399.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0038",
      "page": 65,
      "ordinal": 38,
      "text": "，",
      "top": 184.0,
      "left": 471.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0039",
      "page": 65,
      "ordinal": 39,
      "text": "OpenStack Cinder",
      "top": 184.0,
      "left": 486.0,
      "width": 122.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0040",
      "page": 65,
      "ordinal": 40,
      "text": "等。",
      "top": 184.0,
      "left": 608.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h01",
        "heading_id": "p065-h01",
        "block_id": "q-p065-h01-b001"
      }
    },
    {
      "id": "p065-t0041",
      "page": 65,
      "ordinal": 41,
      "text": "怎么使一个",
      "top": 219.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02"
      }
    },
    {
      "id": "p065-t0042",
      "page": 65,
      "ordinal": 42,
      "text": "node",
      "top": 219.0,
      "left": 240.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02"
      }
    },
    {
      "id": "p065-t0043",
      "page": 65,
      "ordinal": 43,
      "text": "脱离集群调度，比如要停机维护单又不能",
      "top": 219.0,
      "left": 304.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02"
      }
    },
    {
      "id": "p065-t0044",
      "page": 65,
      "ordinal": 44,
      "text": "影响业务应用",
      "top": 250.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02"
      }
    },
    {
      "id": "p065-t0046",
      "page": 65,
      "ordinal": 46,
      "text": "crodon",
      "top": 301.0,
      "left": 112.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02",
        "block_id": "q-p065-h02-b001"
      }
    },
    {
      "id": "p065-t0047",
      "page": 65,
      "ordinal": 47,
      "text": "背后的原理其实就是打污点",
      "top": 301.0,
      "left": 160.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02",
        "block_id": "q-p065-h02-b001"
      }
    },
    {
      "id": "p065-t0048",
      "page": 65,
      "ordinal": 48,
      "text": "使用",
      "top": 324.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02",
        "block_id": "q-p065-h02-b001"
      }
    },
    {
      "id": "p065-t0049",
      "page": 65,
      "ordinal": 49,
      "text": "kubectl drain ",
      "top": 324.0,
      "left": 141.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02",
        "block_id": "q-p065-h02-b001"
      }
    },
    {
      "id": "p065-t0050",
      "page": 65,
      "ordinal": 50,
      "text": "命令",
      "top": 324.0,
      "left": 234.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h02",
        "heading_id": "p065-h02",
        "block_id": "q-p065-h02-b001"
      }
    },
    {
      "id": "p065-t0051",
      "page": 65,
      "ordinal": 51,
      "text": "pv",
      "top": 358.0,
      "left": 112.0,
      "width": 31.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03"
      }
    },
    {
      "id": "p065-t0052",
      "page": 65,
      "ordinal": 52,
      "text": "存储空间不足怎么扩容",
      "top": 358.0,
      "left": 143.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03"
      }
    },
    {
      "id": "p065-t0054",
      "page": 65,
      "ordinal": 54,
      "text": "一般的，我们会使用动态分配存储资源，在创建",
      "top": 409.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0055",
      "page": 65,
      "ordinal": 55,
      "text": "storageclass",
      "top": 409.0,
      "left": 419.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0056",
      "page": 65,
      "ordinal": 56,
      "text": "时指定参数",
      "top": 409.0,
      "left": 503.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0057",
      "page": 65,
      "ordinal": 57,
      "text": " allowVolumeExpansion",
      "top": 409.0,
      "left": 576.0,
      "width": 162.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0058",
      "page": 65,
      "ordinal": 58,
      "text": "：",
      "top": 409.0,
      "left": 738.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0059",
      "page": 65,
      "ordinal": 59,
      "text": "true",
      "top": 433.0,
      "left": 112.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0060",
      "page": 65,
      "ordinal": 60,
      "text": "，表示允许用户通过修改",
      "top": 433.0,
      "left": 140.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0061",
      "page": 65,
      "ordinal": 61,
      "text": "pvc",
      "top": 433.0,
      "left": 301.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0062",
      "page": 65,
      "ordinal": 62,
      "text": "申请的存储空间自动完成",
      "top": 433.0,
      "left": 324.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0063",
      "page": 65,
      "ordinal": 63,
      "text": "pv",
      "top": 433.0,
      "left": 485.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0064",
      "page": 65,
      "ordinal": 64,
      "text": "的扩容，当增大",
      "top": 433.0,
      "left": 501.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0065",
      "page": 65,
      "ordinal": 65,
      "text": "pvc",
      "top": 433.0,
      "left": 604.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0066",
      "page": 65,
      "ordinal": 66,
      "text": "的存储空间时，不会重",
      "top": 433.0,
      "left": 627.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0067",
      "page": 65,
      "ordinal": 67,
      "text": "新创建一个",
      "top": 456.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0068",
      "page": 65,
      "ordinal": 68,
      "text": "pv",
      "top": 456.0,
      "left": 185.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0069",
      "page": 65,
      "ordinal": 69,
      "text": "，而是扩容其绑定的后端",
      "top": 456.0,
      "left": 201.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0070",
      "page": 65,
      "ordinal": 70,
      "text": "pv",
      "top": 456.0,
      "left": 362.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0071",
      "page": 65,
      "ordinal": 71,
      "text": "。这样就能完成扩容了。但是",
      "top": 456.0,
      "left": 378.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0072",
      "page": 65,
      "ordinal": 72,
      "text": "allowVolumeExpansion",
      "top": 456.0,
      "left": 568.0,
      "width": 158.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0073",
      "page": 65,
      "ordinal": 73,
      "text": "这个特",
      "top": 456.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0074",
      "page": 65,
      "ordinal": 74,
      "text": "性只支持扩容空间不支持减少空间。",
      "top": 479.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h03",
        "heading_id": "p065-h03",
        "block_id": "q-p065-h03-b001"
      }
    },
    {
      "id": "p065-t0075",
      "page": 65,
      "ordinal": 75,
      "text": "k8s",
      "top": 514.0,
      "left": 112.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04"
      }
    },
    {
      "id": "p065-t0076",
      "page": 65,
      "ordinal": 76,
      "text": "生产中遇到什么特别影响深刻的问题吗，问题排查解决",
      "top": 514.0,
      "left": 155.0,
      "width": 614.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04"
      }
    },
    {
      "id": "p065-t0077",
      "page": 65,
      "ordinal": 77,
      "text": "思路是怎么样的？",
      "top": 545.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04"
      }
    },
    {
      "id": "p065-t0079",
      "page": 65,
      "ordinal": 79,
      "text": "前端的",
      "top": 596.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b001"
      }
    },
    {
      "id": "p065-t0080",
      "page": 65,
      "ordinal": 80,
      "text": "lb",
      "top": 596.0,
      "left": 156.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b001"
      }
    },
    {
      "id": "p065-t0081",
      "page": 65,
      "ordinal": 81,
      "text": "负载均衡服务器上的",
      "top": 596.0,
      "left": 168.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b001"
      }
    },
    {
      "id": "p065-t0082",
      "page": 65,
      "ordinal": 82,
      "text": "keepalived",
      "top": 596.0,
      "left": 300.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b001"
      }
    },
    {
      "id": "p065-t0083",
      "page": 65,
      "ordinal": 83,
      "text": "出现过脑裂现象。",
      "top": 596.0,
      "left": 373.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b001"
      }
    },
    {
      "id": "p065-t0084",
      "page": 65,
      "ordinal": 84,
      "text": "1",
      "top": 620.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b002"
      }
    },
    {
      "id": "p065-t0085",
      "page": 65,
      "ordinal": 85,
      "text": "、当时问题现象是这样的，",
      "top": 620.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b002"
      }
    },
    {
      "id": "p065-t0086",
      "page": 65,
      "ordinal": 86,
      "text": "vip",
      "top": 620.0,
      "left": 296.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b002"
      }
    },
    {
      "id": "p065-t0087",
      "page": 65,
      "ordinal": 87,
      "text": "同时出现在主服务器和备服务器上，但业务上又没受到影响；",
      "top": 620.0,
      "left": 316.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b002"
      }
    },
    {
      "id": "p065-t0088",
      "page": 65,
      "ordinal": 88,
      "text": "2",
      "top": 643.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0089",
      "page": 65,
      "ordinal": 89,
      "text": "、这时首先去查看备服务器上的",
      "top": 643.0,
      "left": 120.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0090",
      "page": 65,
      "ordinal": 90,
      "text": "keepalived",
      "top": 643.0,
      "left": 325.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0091",
      "page": 65,
      "ordinal": 91,
      "text": "日志，发现有日志信息显示凌晨的时候备服务器出现了",
      "top": 643.0,
      "left": 398.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0092",
      "page": 65,
      "ordinal": 92,
      "text": "vrrp",
      "top": 643.0,
      "left": 749.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0093",
      "page": 65,
      "ordinal": 93,
      "text": "协议超时，所以才导致了备服务器接管了",
      "top": 666.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0094",
      "page": 65,
      "ordinal": 94,
      "text": "vip",
      "top": 666.0,
      "left": 375.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0095",
      "page": 65,
      "ordinal": 95,
      "text": "；查看主服务器上的",
      "top": 666.0,
      "left": 395.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0096",
      "page": 65,
      "ordinal": 96,
      "text": "keepalived",
      "top": 666.0,
      "left": 527.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0097",
      "page": 65,
      "ordinal": 97,
      "text": "日志，没有发现明显的报错",
      "top": 666.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0098",
      "page": 65,
      "ordinal": 98,
      "text": "信息，继续查看主服务器和备服务器上的",
      "top": 689.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0099",
      "page": 65,
      "ordinal": 99,
      "text": "keepalived",
      "top": 689.0,
      "left": 375.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0100",
      "page": 65,
      "ordinal": 100,
      "text": "进程状态，都是",
      "top": 689.0,
      "left": 448.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0101",
      "page": 65,
      "ordinal": 101,
      "text": "running",
      "top": 689.0,
      "left": 550.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0102",
      "page": 65,
      "ordinal": 102,
      "text": "状态的；查看主服务器上检",
      "top": 689.0,
      "left": 604.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0103",
      "page": 65,
      "ordinal": 103,
      "text": "测脚本所检测的进程，其进程也是正常的，也就是说主服务器根本没有成功执行检测脚本（成功执行检",
      "top": 713.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0104",
      "page": 65,
      "ordinal": 104,
      "text": "查脚本是会",
      "top": 737.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0105",
      "page": 65,
      "ordinal": 105,
      "text": "kill",
      "top": 737.0,
      "left": 185.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0106",
      "page": 65,
      "ordinal": 106,
      "text": "掉",
      "top": 737.0,
      "left": 204.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0107",
      "page": 65,
      "ordinal": 107,
      "text": "keepalived",
      "top": 737.0,
      "left": 218.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0108",
      "page": 65,
      "ordinal": 108,
      "text": "进程，脚本里面其实就是配置了检查",
      "top": 737.0,
      "left": 291.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0109",
      "page": 65,
      "ordinal": 109,
      "text": "nginx",
      "top": 737.0,
      "left": 525.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0110",
      "page": 65,
      "ordinal": 110,
      "text": "进程是否存活，如果检查到",
      "top": 737.0,
      "left": 563.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0111",
      "page": 65,
      "ordinal": 111,
      "text": "nginx",
      "top": 737.0,
      "left": 738.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0112",
      "page": 65,
      "ordinal": 112,
      "text": "不存活则",
      "top": 760.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0113",
      "page": 65,
      "ordinal": 113,
      "text": "kill",
      "top": 760.0,
      "left": 170.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0114",
      "page": 65,
      "ordinal": 114,
      "text": "掉",
      "top": 760.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0115",
      "page": 65,
      "ordinal": 115,
      "text": "keepalived",
      "top": 760.0,
      "left": 204.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0116",
      "page": 65,
      "ordinal": 116,
      "text": "，这样来实现备服务器接管",
      "top": 760.0,
      "left": 277.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0117",
      "page": 65,
      "ordinal": 117,
      "text": "vip",
      "top": 760.0,
      "left": 452.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0118",
      "page": 65,
      "ordinal": 118,
      "text": "）；",
      "top": 760.0,
      "left": 472.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b003"
      }
    },
    {
      "id": "p065-t0119",
      "page": 65,
      "ordinal": 119,
      "text": "3",
      "top": 783.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0120",
      "page": 65,
      "ordinal": 120,
      "text": "、排查服务器上的防火墙、",
      "top": 783.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0121",
      "page": 65,
      "ordinal": 121,
      "text": "selinux",
      "top": 783.0,
      "left": 296.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0122",
      "page": 65,
      "ordinal": 122,
      "text": "，防火墙状态和",
      "top": 783.0,
      "left": 344.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0123",
      "page": 65,
      "ordinal": 123,
      "text": "selinux",
      "top": 783.0,
      "left": 446.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0124",
      "page": 65,
      "ordinal": 124,
      "text": "状态都是关闭着的；",
      "top": 783.0,
      "left": 494.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b004"
      }
    },
    {
      "id": "p065-t0125",
      "page": 65,
      "ordinal": 125,
      "text": "4",
      "top": 806.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0126",
      "page": 65,
      "ordinal": 126,
      "text": "、使用",
      "top": 806.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0127",
      "page": 65,
      "ordinal": 127,
      "text": "tcpdump",
      "top": 806.0,
      "left": 164.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0128",
      "page": 65,
      "ordinal": 128,
      "text": "工具在备服务器上进行抓取数据包分析，分析发现，现在确实是备接管的",
      "top": 806.0,
      "left": 226.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0129",
      "page": 65,
      "ordinal": 129,
      "text": "vip",
      "top": 806.0,
      "left": 694.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0130",
      "page": 65,
      "ordinal": 130,
      "text": "，也确实",
      "top": 806.0,
      "left": 714.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0131",
      "page": 65,
      "ordinal": 131,
      "text": "是备服务器也在对外发送",
      "top": 830.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0132",
      "page": 65,
      "ordinal": 132,
      "text": "vrrp",
      "top": 830.0,
      "left": 273.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0133",
      "page": 65,
      "ordinal": 133,
      "text": "心跳包，所以现在外部流量应该都是流入备服务器上的",
      "top": 830.0,
      "left": 301.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0134",
      "page": 65,
      "ordinal": 134,
      "text": "vip",
      "top": 830.0,
      "left": 652.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0135",
      "page": 65,
      "ordinal": 135,
      "text": "；",
      "top": 830.0,
      "left": 672.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b005"
      }
    },
    {
      "id": "p065-t0136",
      "page": 65,
      "ordinal": 136,
      "text": "5",
      "top": 854.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b006"
      }
    },
    {
      "id": "p065-t0137",
      "page": 65,
      "ordinal": 137,
      "text": "、怀疑：主服务器上设置的",
      "top": 854.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b006"
      }
    },
    {
      "id": "p065-t0138",
      "page": 65,
      "ordinal": 138,
      "text": "vrrp",
      "top": 854.0,
      "left": 296.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b006"
      }
    },
    {
      "id": "p065-t0139",
      "page": 65,
      "ordinal": 139,
      "text": "心跳包时间间隔太长，以及检测脚本设置的检测时间设置不合理导致该",
      "top": 854.0,
      "left": 324.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b006"
      }
    },
    {
      "id": "p065-t0140",
      "page": 65,
      "ordinal": 140,
      "text": "问题；",
      "top": 876.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b006"
      }
    },
    {
      "id": "p065-t0141",
      "page": 65,
      "ordinal": 141,
      "text": "6",
      "top": 900.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0142",
      "page": 65,
      "ordinal": 142,
      "text": "、修改",
      "top": 900.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0143",
      "page": 65,
      "ordinal": 143,
      "text": "vrrp",
      "top": 900.0,
      "left": 164.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0144",
      "page": 65,
      "ordinal": 144,
      "text": "协议的心跳包时间间隔，由原来的",
      "top": 900.0,
      "left": 192.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0145",
      "page": 65,
      "ordinal": 145,
      "text": "2",
      "top": 900.0,
      "left": 412.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0146",
      "page": 65,
      "ordinal": 146,
      "text": "秒改成",
      "top": 900.0,
      "left": 420.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0147",
      "page": 65,
      "ordinal": 147,
      "text": "1",
      "top": 900.0,
      "left": 464.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0148",
      "page": 65,
      "ordinal": 148,
      "text": "秒就发送一次心跳包；检测脚本的检测时间也修",
      "top": 900.0,
      "left": 472.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0149",
      "page": 65,
      "ordinal": 149,
      "text": "改短一点，同时还修改检测脚本的检测失败的次数，比如连续检测",
      "top": 923.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0150",
      "page": 65,
      "ordinal": 150,
      "text": "2",
      "top": 923.0,
      "left": 536.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0151",
      "page": 65,
      "ordinal": 151,
      "text": "次失败才认定为检测失败；",
      "top": 923.0,
      "left": 544.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b007"
      }
    },
    {
      "id": "p065-t0152",
      "page": 65,
      "ordinal": 152,
      "text": "7",
      "top": 947.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0153",
      "page": 65,
      "ordinal": 153,
      "text": "、重启主备上的",
      "top": 947.0,
      "left": 120.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0154",
      "page": 65,
      "ordinal": 154,
      "text": "keepalived",
      "top": 947.0,
      "left": 222.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0155",
      "page": 65,
      "ordinal": 155,
      "text": "，现在",
      "top": 947.0,
      "left": 296.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0156",
      "page": 65,
      "ordinal": 156,
      "text": "keepalived",
      "top": 947.0,
      "left": 339.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0157",
      "page": 65,
      "ordinal": 157,
      "text": "是正常的，主服务器上有",
      "top": 947.0,
      "left": 413.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0158",
      "page": 65,
      "ordinal": 158,
      "text": "vip",
      "top": 947.0,
      "left": 573.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0159",
      "page": 65,
      "ordinal": 159,
      "text": "，备服务器上没有",
      "top": 947.0,
      "left": 593.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0160",
      "page": 65,
      "ordinal": 160,
      "text": "vip",
      "top": 947.0,
      "left": 710.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0161",
      "page": 65,
      "ordinal": 161,
      "text": "；",
      "top": 947.0,
      "left": 730.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b008"
      }
    },
    {
      "id": "p065-t0162",
      "page": 65,
      "ordinal": 162,
      "text": "8",
      "top": 971.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0163",
      "page": 65,
      "ordinal": 163,
      "text": "、持续观察：第二天又发现",
      "top": 971.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0164",
      "page": 65,
      "ordinal": 164,
      "text": "keepalived",
      "top": 971.0,
      "left": 296.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0165",
      "page": 65,
      "ordinal": 165,
      "text": "出现过脑裂现象，",
      "top": 971.0,
      "left": 369.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0166",
      "page": 65,
      "ordinal": 166,
      "text": "vip",
      "top": 971.0,
      "left": 486.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0167",
      "page": 65,
      "ordinal": 167,
      "text": "又同时出现在主服务器和备服务器上，又",
      "top": 971.0,
      "left": 506.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0168",
      "page": 65,
      "ordinal": 168,
      "text": "是凌晨的时候备服务器显示",
      "top": 993.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0169",
      "page": 65,
      "ordinal": 169,
      "text": "vrrp",
      "top": 993.0,
      "left": 287.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0170",
      "page": 65,
      "ordinal": 170,
      "text": "心跳包超时，所以才导致备服务器接管了",
      "top": 993.0,
      "left": 315.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0171",
      "page": 65,
      "ordinal": 171,
      "text": "vip",
      "top": 993.0,
      "left": 579.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0172",
      "page": 65,
      "ordinal": 172,
      "text": "；",
      "top": 993.0,
      "left": 599.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b009"
      }
    },
    {
      "id": "p065-t0173",
      "page": 65,
      "ordinal": 173,
      "text": "9",
      "top": 1017.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0174",
      "page": 65,
      "ordinal": 174,
      "text": "、同样的时间，都是凌晨，",
      "top": 1017.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0175",
      "page": 65,
      "ordinal": 175,
      "text": "vrrp",
      "top": 1017.0,
      "left": 296.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0176",
      "page": 65,
      "ordinal": 176,
      "text": "协议超时；很奇怪，很有理由怀疑是网络问题，询问第三方厂家上层路",
      "top": 1017.0,
      "left": 324.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0177",
      "page": 65,
      "ordinal": 177,
      "text": "由器是否禁止了",
      "top": 1040.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0178",
      "page": 65,
      "ordinal": 178,
      "text": "vrrp",
      "top": 1040.0,
      "left": 214.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0179",
      "page": 65,
      "ordinal": 179,
      "text": "协议，第三方厂家回复，没有禁止",
      "top": 1040.0,
      "left": 242.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0180",
      "page": 65,
      "ordinal": 180,
      "text": "vrrp",
      "top": 1040.0,
      "left": 462.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0181",
      "page": 65,
      "ordinal": 181,
      "text": "协议；",
      "top": 1040.0,
      "left": 490.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b010"
      }
    },
    {
      "id": "p065-t0182",
      "page": 65,
      "ordinal": 182,
      "text": "10",
      "top": 1064.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b011"
      }
    },
    {
      "id": "p065-t0183",
      "page": 65,
      "ordinal": 183,
      "text": "、百度、看官方文档求解；",
      "top": 1064.0,
      "left": 128.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b011"
      }
    },
    {
      "id": "p065-t0184",
      "page": 65,
      "ordinal": 184,
      "text": "11",
      "top": 1088.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0185",
      "page": 65,
      "ordinal": 185,
      "text": "、百度、看官网文档得知，",
      "top": 1088.0,
      "left": 128.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0186",
      "page": 65,
      "ordinal": 186,
      "text": "keepalived",
      "top": 1088.0,
      "left": 304.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0187",
      "page": 65,
      "ordinal": 187,
      "text": "有",
      "top": 1088.0,
      "left": 377.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0188",
      "page": 65,
      "ordinal": 188,
      "text": "2",
      "top": 1088.0,
      "left": 392.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0189",
      "page": 65,
      "ordinal": 189,
      "text": "种传播模式，一种是组播模式，一种是单播模式，",
      "top": 1088.0,
      "left": 400.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0190",
      "page": 65,
      "ordinal": 190,
      "text": "keepalived",
      "top": 1110.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0191",
      "page": 65,
      "ordinal": 191,
      "text": "默认在组播模式下工作，主服务器会往主播地址",
      "top": 1110.0,
      "left": 185.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0192",
      "page": 65,
      "ordinal": 192,
      "text": "224.0.0.18",
      "top": 1110.0,
      "left": 492.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0193",
      "page": 65,
      "ordinal": 193,
      "text": "发送心跳包，当局域网内有多个",
      "top": 1110.0,
      "left": 562.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0194",
      "page": 65,
      "ordinal": 194,
      "text": "keepalived",
      "top": 1134.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0195",
      "page": 65,
      "ordinal": 195,
      "text": "实例的时候，如果都用主播模式，会存在冲突干扰的情况，所以官方建议使用单播模式通",
      "top": 1134.0,
      "left": 185.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0196",
      "page": 65,
      "ordinal": 196,
      "text": "信，单播模式就是点对点通行，即主向备服务器一对一的发送心跳包；",
      "top": 1157.0,
      "left": 112.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b012"
      }
    },
    {
      "id": "p065-t0197",
      "page": 65,
      "ordinal": 197,
      "text": "12",
      "top": 1181.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p065-t0198",
      "page": 65,
      "ordinal": 198,
      "text": "、将",
      "top": 1181.0,
      "left": 128.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p065-t0199",
      "page": 65,
      "ordinal": 199,
      "text": "keepalived",
      "top": 1181.0,
      "left": 158.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p065-t0200",
      "page": 65,
      "ordinal": 200,
      "text": "模式改为单播模式，继续观察，无再发生脑裂现象。问题得以解决。",
      "top": 1181.0,
      "left": 231.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0001",
      "page": 66,
      "ordinal": 1,
      "text": "答：测试环境二进制搭建",
      "top": 44.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0002",
      "page": 66,
      "ordinal": 2,
      "text": "etcd",
      "top": 44.0,
      "left": 273.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0003",
      "page": 66,
      "ordinal": 3,
      "text": "集群，",
      "top": 44.0,
      "left": 302.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0004",
      "page": 66,
      "ordinal": 4,
      "text": "etcd",
      "top": 44.0,
      "left": 346.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0005",
      "page": 66,
      "ordinal": 5,
      "text": "集群出现",
      "top": 44.0,
      "left": 375.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0006",
      "page": 66,
      "ordinal": 6,
      "text": "2",
      "top": 44.0,
      "left": 434.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0007",
      "page": 66,
      "ordinal": 7,
      "text": "个",
      "top": 44.0,
      "left": 442.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0008",
      "page": 66,
      "ordinal": 8,
      "text": "leader",
      "top": 44.0,
      "left": 457.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0009",
      "page": 66,
      "ordinal": 9,
      "text": "的现象。",
      "top": 44.0,
      "left": 500.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b013"
      }
    },
    {
      "id": "p066-t0010",
      "page": 66,
      "ordinal": 10,
      "text": "1",
      "top": 67.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0011",
      "page": 66,
      "ordinal": 11,
      "text": "、问题现象就是：刚搭建的",
      "top": 67.0,
      "left": 120.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0012",
      "page": 66,
      "ordinal": 12,
      "text": "k8s",
      "top": 67.0,
      "left": 296.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0013",
      "page": 66,
      "ordinal": 13,
      "text": "集群，是测试环境的，搭建完成之后发现，使用",
      "top": 67.0,
      "left": 319.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0014",
      "page": 66,
      "ordinal": 14,
      "text": "kubectl get nodes ",
      "top": 67.0,
      "left": 626.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0015",
      "page": 66,
      "ordinal": 15,
      "text": "显示",
      "top": 67.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0016",
      "page": 66,
      "ordinal": 16,
      "text": "没有资源，",
      "top": 91.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0017",
      "page": 66,
      "ordinal": 17,
      "text": "kubectl get namespace ",
      "top": 91.0,
      "left": 185.0,
      "width": 161.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0018",
      "page": 66,
      "ordinal": 18,
      "text": "一会能正常显示全部的命名空间，一会又显示不了命名空间，这种",
      "top": 91.0,
      "left": 345.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0019",
      "page": 66,
      "ordinal": 19,
      "text": "奇怪情况。",
      "top": 113.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b014"
      }
    },
    {
      "id": "p066-t0020",
      "page": 66,
      "ordinal": 20,
      "text": "2",
      "top": 137.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0021",
      "page": 66,
      "ordinal": 21,
      "text": "、当时经验不是很足，第一点想到的是不是因为网络插件",
      "top": 137.0,
      "left": 120.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0022",
      "page": 66,
      "ordinal": 22,
      "text": "calico",
      "top": 137.0,
      "left": 486.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0023",
      "page": 66,
      "ordinal": 23,
      "text": "没装导致的，但是想想，即使没有安装",
      "top": 137.0,
      "left": 524.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0024",
      "page": 66,
      "ordinal": 24,
      "text": "网络插件，最多是",
      "top": 161.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0025",
      "page": 66,
      "ordinal": 25,
      "text": "node",
      "top": 161.0,
      "left": 229.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0026",
      "page": 66,
      "ordinal": 26,
      "text": "节点状态是",
      "top": 161.0,
      "left": 264.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0027",
      "page": 66,
      "ordinal": 27,
      "text": "notready",
      "top": 161.0,
      "left": 337.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0028",
      "page": 66,
      "ordinal": 28,
      "text": "，也不可能是没有资源发现呀；",
      "top": 161.0,
      "left": 398.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b015"
      }
    },
    {
      "id": "p066-t0029",
      "page": 66,
      "ordinal": 29,
      "text": "3",
      "top": 184.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0030",
      "page": 66,
      "ordinal": 30,
      "text": "、然后想到",
      "top": 184.0,
      "left": 120.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0031",
      "page": 66,
      "ordinal": 31,
      "text": "etcd",
      "top": 184.0,
      "left": 193.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0032",
      "page": 66,
      "ordinal": 32,
      "text": "数据库，",
      "top": 184.0,
      "left": 223.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0033",
      "page": 66,
      "ordinal": 33,
      "text": "k8s",
      "top": 184.0,
      "left": 281.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0034",
      "page": 66,
      "ordinal": 34,
      "text": "的资源都是存储在",
      "top": 184.0,
      "left": 304.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0035",
      "page": 66,
      "ordinal": 35,
      "text": "etcd",
      "top": 184.0,
      "left": 421.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0036",
      "page": 66,
      "ordinal": 36,
      "text": "数据库中的；",
      "top": 184.0,
      "left": 450.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b016"
      }
    },
    {
      "id": "p066-t0037",
      "page": 66,
      "ordinal": 37,
      "text": "4",
      "top": 208.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0038",
      "page": 66,
      "ordinal": 38,
      "text": "、查看",
      "top": 208.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0039",
      "page": 66,
      "ordinal": 39,
      "text": "etcd",
      "top": 208.0,
      "left": 164.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0040",
      "page": 66,
      "ordinal": 40,
      "text": "进程服务的启动状态，发现",
      "top": 208.0,
      "left": 193.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0041",
      "page": 66,
      "ordinal": 41,
      "text": "etcd",
      "top": 208.0,
      "left": 369.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0042",
      "page": 66,
      "ordinal": 42,
      "text": "服务状态是处于",
      "top": 208.0,
      "left": 398.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0043",
      "page": 66,
      "ordinal": 43,
      "text": "running",
      "top": 208.0,
      "left": 500.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0044",
      "page": 66,
      "ordinal": 44,
      "text": "状态，但是日志有大量的报错信",
      "top": 208.0,
      "left": 554.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0045",
      "page": 66,
      "ordinal": 45,
      "text": "息，日志大概报错信息就是集群节点的",
      "top": 230.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0046",
      "page": 66,
      "ordinal": 46,
      "text": "id",
      "top": 230.0,
      "left": 360.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0047",
      "page": 66,
      "ordinal": 47,
      "text": "不匹配，存在冲突等等报错信息；",
      "top": 230.0,
      "left": 373.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b017"
      }
    },
    {
      "id": "p066-t0048",
      "page": 66,
      "ordinal": 48,
      "text": "5",
      "top": 254.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0049",
      "page": 66,
      "ordinal": 49,
      "text": "、使用",
      "top": 254.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0050",
      "page": 66,
      "ordinal": 50,
      "text": "etcdctl",
      "top": 254.0,
      "left": 164.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0051",
      "page": 66,
      "ordinal": 51,
      "text": "命令查看",
      "top": 254.0,
      "left": 209.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0052",
      "page": 66,
      "ordinal": 52,
      "text": "etcd",
      "top": 254.0,
      "left": 268.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0053",
      "page": 66,
      "ordinal": 53,
      "text": "集群的健康状态，发现集群是",
      "top": 254.0,
      "left": 297.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0054",
      "page": 66,
      "ordinal": 54,
      "text": "health",
      "top": 254.0,
      "left": 487.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0055",
      "page": 66,
      "ordinal": 55,
      "text": "状态，但是居然显示有",
      "top": 254.0,
      "left": 530.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0056",
      "page": 66,
      "ordinal": 56,
      "text": "2",
      "top": 254.0,
      "left": 676.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0057",
      "page": 66,
      "ordinal": 57,
      "text": "个",
      "top": 254.0,
      "left": 685.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0058",
      "page": 66,
      "ordinal": 58,
      "text": "leader",
      "top": 254.0,
      "left": 699.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0059",
      "page": 66,
      "ordinal": 59,
      "text": "，这",
      "top": 254.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0060",
      "page": 66,
      "ordinal": 60,
      "text": "很奇怪（当初安装",
      "top": 278.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0061",
      "page": 66,
      "ordinal": 61,
      "text": "etcd",
      "top": 278.0,
      "left": 229.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0062",
      "page": 66,
      "ordinal": 62,
      "text": "的时候其实也只是简单看到了集群是健康状态，然后没注意到有",
      "top": 278.0,
      "left": 258.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0063",
      "page": 66,
      "ordinal": 63,
      "text": "2",
      "top": 278.0,
      "left": 668.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0064",
      "page": 66,
      "ordinal": 64,
      "text": "个",
      "top": 278.0,
      "left": 676.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0065",
      "page": 66,
      "ordinal": 65,
      "text": "leader",
      "top": 278.0,
      "left": 691.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0066",
      "page": 66,
      "ordinal": 66,
      "text": "，也没",
      "top": 278.0,
      "left": 734.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0067",
      "page": 66,
      "ordinal": 67,
      "text": "太关注",
      "top": 301.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0068",
      "page": 66,
      "ordinal": 68,
      "text": "etcd",
      "top": 301.0,
      "left": 156.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0069",
      "page": 66,
      "ordinal": 69,
      "text": "服务进程的日志报错信息，以为",
      "top": 301.0,
      "left": 185.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0070",
      "page": 66,
      "ordinal": 70,
      "text": "etcd",
      "top": 301.0,
      "left": 390.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0071",
      "page": 66,
      "ordinal": 71,
      "text": "集群状态是",
      "top": 301.0,
      "left": 419.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0072",
      "page": 66,
      "ordinal": 72,
      "text": "health",
      "top": 301.0,
      "left": 492.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0073",
      "page": 66,
      "ordinal": 73,
      "text": "状态就可以了）",
      "top": 301.0,
      "left": 535.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b018"
      }
    },
    {
      "id": "p066-t0074",
      "page": 66,
      "ordinal": 74,
      "text": "6",
      "top": 325.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0075",
      "page": 66,
      "ordinal": 75,
      "text": "、现在",
      "top": 325.0,
      "left": 120.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0076",
      "page": 66,
      "ordinal": 76,
      "text": "etcd",
      "top": 325.0,
      "left": 164.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0077",
      "page": 66,
      "ordinal": 77,
      "text": "出现了",
      "top": 325.0,
      "left": 193.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0078",
      "page": 66,
      "ordinal": 78,
      "text": "2",
      "top": 325.0,
      "left": 237.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0079",
      "page": 66,
      "ordinal": 79,
      "text": "个",
      "top": 325.0,
      "left": 246.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0080",
      "page": 66,
      "ordinal": 80,
      "text": "leader",
      "top": 325.0,
      "left": 260.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0081",
      "page": 66,
      "ordinal": 81,
      "text": "，肯定是存在问题的；",
      "top": 325.0,
      "left": 303.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b019"
      }
    },
    {
      "id": "p066-t0082",
      "page": 66,
      "ordinal": 82,
      "text": "7",
      "top": 347.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0083",
      "page": 66,
      "ordinal": 83,
      "text": "、全部检测一遍",
      "top": 347.0,
      "left": 120.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0084",
      "page": 66,
      "ordinal": 84,
      "text": "etcd",
      "top": 347.0,
      "left": 222.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0085",
      "page": 66,
      "ordinal": 85,
      "text": "的各个节点的配置文件，确认配置文件里面各个参数配置都没有问题，重启",
      "top": 347.0,
      "left": 252.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0086",
      "page": 66,
      "ordinal": 86,
      "text": "etcd",
      "top": 347.0,
      "left": 734.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0087",
      "page": 66,
      "ordinal": 87,
      "text": "集",
      "top": 347.0,
      "left": 764.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0088",
      "page": 66,
      "ordinal": 88,
      "text": "群，报错信息仍未解决，仍然存在",
      "top": 371.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0089",
      "page": 66,
      "ordinal": 89,
      "text": "2",
      "top": 371.0,
      "left": 331.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0090",
      "page": 66,
      "ordinal": 90,
      "text": "个",
      "top": 371.0,
      "left": 339.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0091",
      "page": 66,
      "ordinal": 91,
      "text": "leader",
      "top": 371.0,
      "left": 354.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0092",
      "page": 66,
      "ordinal": 92,
      "text": "；",
      "top": 371.0,
      "left": 397.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b020"
      }
    },
    {
      "id": "p066-t0093",
      "page": 66,
      "ordinal": 93,
      "text": "8",
      "top": 395.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0094",
      "page": 66,
      "ordinal": 94,
      "text": "、尝试把其中一个",
      "top": 395.0,
      "left": 120.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0095",
      "page": 66,
      "ordinal": 95,
      "text": "leader",
      "top": 395.0,
      "left": 237.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0096",
      "page": 66,
      "ordinal": 96,
      "text": "节点踢出集群，然后再重新添加它进入集群，仍然是报错，仍然显示有",
      "top": 395.0,
      "left": 280.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0097",
      "page": 66,
      "ordinal": 97,
      "text": "2",
      "top": 395.0,
      "left": 734.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0098",
      "page": 66,
      "ordinal": 98,
      "text": "个",
      "top": 395.0,
      "left": 742.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0099",
      "page": 66,
      "ordinal": 99,
      "text": "leader",
      "top": 418.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0100",
      "page": 66,
      "ordinal": 100,
      "text": "；",
      "top": 418.0,
      "left": 155.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b021"
      }
    },
    {
      "id": "p066-t0101",
      "page": 66,
      "ordinal": 101,
      "text": "9",
      "top": 442.0,
      "left": 112.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0102",
      "page": 66,
      "ordinal": 102,
      "text": "、尝试重新生成",
      "top": 442.0,
      "left": 120.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0103",
      "page": 66,
      "ordinal": 103,
      "text": "etcd",
      "top": 442.0,
      "left": 222.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0104",
      "page": 66,
      "ordinal": 104,
      "text": "的证书，重新颁发",
      "top": 442.0,
      "left": 252.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0105",
      "page": 66,
      "ordinal": 105,
      "text": "etcd",
      "top": 442.0,
      "left": 369.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0106",
      "page": 66,
      "ordinal": 106,
      "text": "的证书，问题仍然存在，仍然显示有",
      "top": 442.0,
      "left": 398.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0107",
      "page": 66,
      "ordinal": 107,
      "text": "2",
      "top": 442.0,
      "left": 632.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0108",
      "page": 66,
      "ordinal": 108,
      "text": "个",
      "top": 442.0,
      "left": 640.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0109",
      "page": 66,
      "ordinal": 109,
      "text": "leader",
      "top": 442.0,
      "left": 655.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0110",
      "page": 66,
      "ordinal": 110,
      "text": "；日志仍是",
      "top": 442.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0111",
      "page": 66,
      "ordinal": 111,
      "text": "报错集群节点的",
      "top": 464.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0112",
      "page": 66,
      "ordinal": 112,
      "text": "id",
      "top": 464.0,
      "left": 214.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0113",
      "page": 66,
      "ordinal": 113,
      "text": "不匹配，存在冲突；",
      "top": 464.0,
      "left": 227.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b022"
      }
    },
    {
      "id": "p066-t0114",
      "page": 66,
      "ordinal": 114,
      "text": "10",
      "top": 488.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0115",
      "page": 66,
      "ordinal": 115,
      "text": "、计算",
      "top": 488.0,
      "left": 128.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0116",
      "page": 66,
      "ordinal": 116,
      "text": "etcd",
      "top": 488.0,
      "left": 172.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0117",
      "page": 66,
      "ordinal": 117,
      "text": "命令的",
      "top": 488.0,
      "left": 202.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0118",
      "page": 66,
      "ordinal": 118,
      "text": "MD5",
      "top": 488.0,
      "left": 246.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0119",
      "page": 66,
      "ordinal": 119,
      "text": "值，确保各个节点的",
      "top": 488.0,
      "left": 278.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0120",
      "page": 66,
      "ordinal": 120,
      "text": "etcd",
      "top": 488.0,
      "left": 409.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0121",
      "page": 66,
      "ordinal": 121,
      "text": "命令是相同的，确保在",
      "top": 488.0,
      "left": 439.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0122",
      "page": 66,
      "ordinal": 122,
      "text": "scp",
      "top": 488.0,
      "left": 585.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0123",
      "page": 66,
      "ordinal": 123,
      "text": "传输的时候没有损耗等",
      "top": 488.0,
      "left": 608.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0124",
      "page": 66,
      "ordinal": 124,
      "text": "等，问题仍未解决；",
      "top": 512.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b023"
      }
    },
    {
      "id": "p066-t0125",
      "page": 66,
      "ordinal": 125,
      "text": "11",
      "top": 535.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b024"
      }
    },
    {
      "id": "p066-t0126",
      "page": 66,
      "ordinal": 126,
      "text": "、无解，请求同事，架构师介入帮忙排查问题，仍未解决；",
      "top": 535.0,
      "left": 128.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b024"
      }
    },
    {
      "id": "p066-t0127",
      "page": 66,
      "ordinal": 127,
      "text": "12",
      "top": 559.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0128",
      "page": 66,
      "ordinal": 128,
      "text": "、删除全部",
      "top": 559.0,
      "left": 128.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0129",
      "page": 66,
      "ordinal": 129,
      "text": "etcd",
      "top": 559.0,
      "left": 202.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0130",
      "page": 66,
      "ordinal": 130,
      "text": "相关的文件，重新部署",
      "top": 559.0,
      "left": 231.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0131",
      "page": 66,
      "ordinal": 131,
      "text": "etcd",
      "top": 559.0,
      "left": 377.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0132",
      "page": 66,
      "ordinal": 132,
      "text": "集群，",
      "top": 559.0,
      "left": 406.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0133",
      "page": 66,
      "ordinal": 133,
      "text": "etcd",
      "top": 559.0,
      "left": 450.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0134",
      "page": 66,
      "ordinal": 134,
      "text": "集群正常了，现在只有一个",
      "top": 559.0,
      "left": 480.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0135",
      "page": 66,
      "ordinal": 135,
      "text": "leader",
      "top": 559.0,
      "left": 655.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0136",
      "page": 66,
      "ordinal": 136,
      "text": "，使用命令",
      "top": 559.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0137",
      "page": 66,
      "ordinal": 137,
      "text": "kubectl get nodes ",
      "top": 581.0,
      "left": 112.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0138",
      "page": 66,
      "ordinal": 138,
      "text": "查看节点，也能正常显示了；",
      "top": 581.0,
      "left": 236.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b025"
      }
    },
    {
      "id": "p066-t0139",
      "page": 66,
      "ordinal": 139,
      "text": "13",
      "top": 605.0,
      "left": 112.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0140",
      "page": 66,
      "ordinal": 140,
      "text": "、最终问题的原因也没有定位出来，只能怀疑是环境问题了，由于是刚部署的",
      "top": 605.0,
      "left": 128.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0141",
      "page": 66,
      "ordinal": 141,
      "text": "k8s",
      "top": 605.0,
      "left": 626.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0142",
      "page": 66,
      "ordinal": 142,
      "text": "测试环境，",
      "top": 605.0,
      "left": 649.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0143",
      "page": 66,
      "ordinal": 143,
      "text": "etcd",
      "top": 605.0,
      "left": 722.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0144",
      "page": 66,
      "ordinal": 144,
      "text": "里面",
      "top": 605.0,
      "left": 751.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0145",
      "page": 66,
      "ordinal": 145,
      "text": "没有数据，所以可以删除重新创建",
      "top": 629.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0146",
      "page": 66,
      "ordinal": 146,
      "text": "etcd",
      "top": 629.0,
      "left": 331.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0147",
      "page": 66,
      "ordinal": 147,
      "text": "集群，如果是线上环境的",
      "top": 629.0,
      "left": 360.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0148",
      "page": 66,
      "ordinal": 148,
      "text": "etcd",
      "top": 629.0,
      "left": 521.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0149",
      "page": 66,
      "ordinal": 149,
      "text": "集群出现这种问题，就不能随便删",
      "top": 629.0,
      "left": 551.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0150",
      "page": 66,
      "ordinal": 150,
      "text": "除",
      "top": 652.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0151",
      "page": 66,
      "ordinal": 151,
      "text": "etcd",
      "top": 652.0,
      "left": 126.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0152",
      "page": 66,
      "ordinal": 152,
      "text": "集群了，必须要先进行数据备份才能进行其他方法的处理。",
      "top": 652.0,
      "left": 156.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/08-kubernetes#q-p065-h04",
        "heading_id": "p065-h04",
        "block_id": "q-p065-h04-b026"
      }
    },
    {
      "id": "p066-t0153",
      "page": 66,
      "ordinal": 153,
      "text": "redis",
      "top": 686.0,
      "left": 112.0,
      "width": 82.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h01"
      }
    },
    {
      "id": "p066-t0155",
      "page": 66,
      "ordinal": 155,
      "text": "什么是",
      "top": 742.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02"
      }
    },
    {
      "id": "p066-t0156",
      "page": 66,
      "ordinal": 156,
      "text": " Redis?  ",
      "top": 742.0,
      "left": 189.0,
      "width": 101.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02"
      }
    },
    {
      "id": "p066-t0158",
      "page": 66,
      "ordinal": 158,
      "text": " Redis ",
      "top": 792.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0159",
      "page": 66,
      "ordinal": 159,
      "text": "是完全开源免费的，遵守",
      "top": 792.0,
      "left": 156.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0160",
      "page": 66,
      "ordinal": 160,
      "text": " BSD ",
      "top": 792.0,
      "left": 317.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0161",
      "page": 66,
      "ordinal": 161,
      "text": "协议，是一个高性能的",
      "top": 792.0,
      "left": 353.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0162",
      "page": 66,
      "ordinal": 162,
      "text": " key-value ",
      "top": 792.0,
      "left": 499.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0163",
      "page": 66,
      "ordinal": 163,
      "text": "数据",
      "top": 792.0,
      "left": 571.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0165",
      "page": 66,
      "ordinal": 165,
      "text": "库。",
      "top": 792.0,
      "left": 604.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0167",
      "page": 66,
      "ordinal": 167,
      "text": "Redis ",
      "top": 815.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0168",
      "page": 66,
      "ordinal": 168,
      "text": "与其他",
      "top": 815.0,
      "left": 152.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0169",
      "page": 66,
      "ordinal": 169,
      "text": " key - value ",
      "top": 815.0,
      "left": 196.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0170",
      "page": 66,
      "ordinal": 170,
      "text": "缓存产品有以下三个特点：",
      "top": 815.0,
      "left": 276.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b001"
      }
    },
    {
      "id": "p066-t0172",
      "page": 66,
      "ordinal": 172,
      "text": "1. Redis ",
      "top": 850.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b002"
      }
    },
    {
      "id": "p066-t0173",
      "page": 66,
      "ordinal": 173,
      "text": "支持数据的持久化，可以将内存中的数据保存在磁盘中，重启的时",
      "top": 850.0,
      "left": 186.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b002"
      }
    },
    {
      "id": "p066-t0175",
      "page": 66,
      "ordinal": 175,
      "text": "候可以再次加载进行使",
      "top": 850.0,
      "left": 614.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b002"
      }
    },
    {
      "id": "p066-t0176",
      "page": 66,
      "ordinal": 176,
      "text": "用。",
      "top": 874.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b002"
      }
    },
    {
      "id": "p066-t0178",
      "page": 66,
      "ordinal": 178,
      "text": "2. Redis ",
      "top": 905.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0179",
      "page": 66,
      "ordinal": 179,
      "text": "不仅仅支持简单的",
      "top": 905.0,
      "left": 186.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0180",
      "page": 66,
      "ordinal": 180,
      "text": " key-value ",
      "top": 905.0,
      "left": 303.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0181",
      "page": 66,
      "ordinal": 181,
      "text": "类型的数据，同时还提供",
      "top": 905.0,
      "left": 375.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0182",
      "page": 66,
      "ordinal": 182,
      "text": " list",
      "top": 905.0,
      "left": 536.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0183",
      "page": 66,
      "ordinal": 183,
      "text": "，",
      "top": 905.0,
      "left": 559.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0184",
      "page": 66,
      "ordinal": 184,
      "text": " set",
      "top": 905.0,
      "left": 574.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0185",
      "page": 66,
      "ordinal": 185,
      "text": "，",
      "top": 905.0,
      "left": 598.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0186",
      "page": 66,
      "ordinal": 186,
      "text": "zset",
      "top": 905.0,
      "left": 613.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0187",
      "page": 66,
      "ordinal": 187,
      "text": "，",
      "top": 905.0,
      "left": 640.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0188",
      "page": 66,
      "ordinal": 188,
      "text": "hash ",
      "top": 905.0,
      "left": 654.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0189",
      "page": 66,
      "ordinal": 189,
      "text": "等数据结构的",
      "top": 905.0,
      "left": 691.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0190",
      "page": 66,
      "ordinal": 190,
      "text": "存储。",
      "top": 928.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b003"
      }
    },
    {
      "id": "p066-t0192",
      "page": 66,
      "ordinal": 192,
      "text": "3. Redis ",
      "top": 959.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0193",
      "page": 66,
      "ordinal": 193,
      "text": "支持数据的备份，即",
      "top": 959.0,
      "left": 186.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0194",
      "page": 66,
      "ordinal": 194,
      "text": " master-slave ",
      "top": 959.0,
      "left": 318.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0195",
      "page": 66,
      "ordinal": 195,
      "text": "模式的数据备份。",
      "top": 959.0,
      "left": 413.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0196",
      "page": 66,
      "ordinal": 196,
      "text": " Redis ",
      "top": 959.0,
      "left": 530.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0197",
      "page": 66,
      "ordinal": 197,
      "text": "优势：",
      "top": 959.0,
      "left": 574.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b004"
      }
    },
    {
      "id": "p066-t0199",
      "page": 66,
      "ordinal": 199,
      "text": "4. ",
      "top": 990.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0200",
      "page": 66,
      "ordinal": 200,
      "text": "性能极高",
      "top": 990.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0201",
      "page": 66,
      "ordinal": 201,
      "text": " – Redis ",
      "top": 990.0,
      "left": 204.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0202",
      "page": 66,
      "ordinal": 202,
      "text": "能读的速度是",
      "top": 990.0,
      "left": 260.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0203",
      "page": 66,
      "ordinal": 203,
      "text": " 110000 ",
      "top": 990.0,
      "left": 347.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0204",
      "page": 66,
      "ordinal": 204,
      "text": "次",
      "top": 990.0,
      "left": 405.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0205",
      "page": 66,
      "ordinal": 205,
      "text": "/s,",
      "top": 990.0,
      "left": 420.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0206",
      "page": 66,
      "ordinal": 206,
      "text": "写的速度是",
      "top": 990.0,
      "left": 436.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0207",
      "page": 66,
      "ordinal": 207,
      "text": " 81000 ",
      "top": 990.0,
      "left": 509.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0208",
      "page": 66,
      "ordinal": 208,
      "text": "次",
      "top": 990.0,
      "left": 558.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0209",
      "page": 66,
      "ordinal": 209,
      "text": " /s ",
      "top": 990.0,
      "left": 573.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0210",
      "page": 66,
      "ordinal": 210,
      "text": "。",
      "top": 990.0,
      "left": 593.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b005"
      }
    },
    {
      "id": "p066-t0212",
      "page": 66,
      "ordinal": 212,
      "text": "5. ",
      "top": 1020.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0213",
      "page": 66,
      "ordinal": 213,
      "text": "丰富的数据类型",
      "top": 1020.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0214",
      "page": 66,
      "ordinal": 214,
      "text": " – Redis ",
      "top": 1020.0,
      "left": 248.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0215",
      "page": 66,
      "ordinal": 215,
      "text": "支持二进制案例的",
      "top": 1020.0,
      "left": 303.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0216",
      "page": 66,
      "ordinal": 216,
      "text": " Strings, Lists, Hashes, Sets ",
      "top": 1020.0,
      "left": 420.0,
      "width": 185.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0217",
      "page": 66,
      "ordinal": 217,
      "text": "及",
      "top": 1020.0,
      "left": 606.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0218",
      "page": 66,
      "ordinal": 218,
      "text": " Ordered Sets ",
      "top": 1020.0,
      "left": 621.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0219",
      "page": 66,
      "ordinal": 219,
      "text": "数据类型",
      "top": 1020.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0220",
      "page": 66,
      "ordinal": 220,
      "text": "操作。",
      "top": 1044.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b006"
      }
    },
    {
      "id": "p066-t0222",
      "page": 66,
      "ordinal": 222,
      "text": "6. ",
      "top": 1074.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0223",
      "page": 66,
      "ordinal": 223,
      "text": "原子",
      "top": 1074.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0224",
      "page": 66,
      "ordinal": 224,
      "text": " – Redis ",
      "top": 1074.0,
      "left": 175.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0225",
      "page": 66,
      "ordinal": 225,
      "text": "的所有操作都是原子性的，意思就是要么成功执行要么失",
      "top": 1074.0,
      "left": 230.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0227",
      "page": 66,
      "ordinal": 227,
      "text": "败完全不执行。单个操作是",
      "top": 1074.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0228",
      "page": 66,
      "ordinal": 228,
      "text": "原子性的。多个操作也支持事务，即原子性，",
      "top": 1098.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0230",
      "page": 66,
      "ordinal": 230,
      "text": "通过",
      "top": 1098.0,
      "left": 442.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0231",
      "page": 66,
      "ordinal": 231,
      "text": " MULTI ",
      "top": 1098.0,
      "left": 471.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0232",
      "page": 66,
      "ordinal": 232,
      "text": "和",
      "top": 1098.0,
      "left": 522.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0233",
      "page": 66,
      "ordinal": 233,
      "text": " EXEC ",
      "top": 1098.0,
      "left": 537.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0234",
      "page": 66,
      "ordinal": 234,
      "text": "指令包起来。",
      "top": 1098.0,
      "left": 578.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b007"
      }
    },
    {
      "id": "p066-t0236",
      "page": 66,
      "ordinal": 236,
      "text": "7. ",
      "top": 1128.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0237",
      "page": 66,
      "ordinal": 237,
      "text": "丰富的特性",
      "top": 1128.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0238",
      "page": 66,
      "ordinal": 238,
      "text": " – Redis ",
      "top": 1128.0,
      "left": 219.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0239",
      "page": 66,
      "ordinal": 239,
      "text": "还支持",
      "top": 1128.0,
      "left": 274.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0240",
      "page": 66,
      "ordinal": 240,
      "text": " publish/subscribe, ",
      "top": 1128.0,
      "left": 318.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0241",
      "page": 66,
      "ordinal": 241,
      "text": "通知",
      "top": 1128.0,
      "left": 451.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0242",
      "page": 66,
      "ordinal": 242,
      "text": ", key ",
      "top": 1128.0,
      "left": 480.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0243",
      "page": 66,
      "ordinal": 243,
      "text": "过期等等",
      "top": 1128.0,
      "left": 514.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p066-t0245",
      "page": 66,
      "ordinal": 245,
      "text": "特性。",
      "top": 1128.0,
      "left": 577.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p066-h02",
        "heading_id": "p066-h02",
        "block_id": "q-p066-h02-b008"
      }
    },
    {
      "id": "p067-t0001",
      "page": 67,
      "ordinal": 1,
      "text": "Redis ",
      "top": 40.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01"
      }
    },
    {
      "id": "p067-t0002",
      "page": 67,
      "ordinal": 2,
      "text": "与其他",
      "top": 40.0,
      "left": 187.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01"
      }
    },
    {
      "id": "p067-t0003",
      "page": 67,
      "ordinal": 3,
      "text": " key-value ",
      "top": 40.0,
      "left": 264.0,
      "width": 137.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01"
      }
    },
    {
      "id": "p067-t0004",
      "page": 67,
      "ordinal": 4,
      "text": "存储有什么不同？",
      "top": 40.0,
      "left": 401.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01"
      }
    },
    {
      "id": "p067-t0007",
      "page": 67,
      "ordinal": 7,
      "text": "1. Redis ",
      "top": 91.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0008",
      "page": 67,
      "ordinal": 8,
      "text": "有着更为复杂的数据结构并且提供对他们的原子性操作，这是一个",
      "top": 91.0,
      "left": 186.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0010",
      "page": 67,
      "ordinal": 10,
      "text": "不同于其他数据库的进化",
      "top": 91.0,
      "left": 614.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0011",
      "page": 67,
      "ordinal": 11,
      "text": "路径。",
      "top": 114.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0012",
      "page": 67,
      "ordinal": 12,
      "text": "Redis ",
      "top": 114.0,
      "left": 189.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0013",
      "page": 67,
      "ordinal": 13,
      "text": "的数据类型都是基于基本数据结构",
      "top": 114.0,
      "left": 230.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0015",
      "page": 67,
      "ordinal": 15,
      "text": "的同",
      "top": 114.0,
      "left": 453.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0017",
      "page": 67,
      "ordinal": 17,
      "text": "时对程序员透明，无需进行额外的抽象。",
      "top": 114.0,
      "left": 486.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b001"
      }
    },
    {
      "id": "p067-t0019",
      "page": 67,
      "ordinal": 19,
      "text": "2. Redis ",
      "top": 145.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0020",
      "page": 67,
      "ordinal": 20,
      "text": "运行在内存中但是可以持久化到磁盘，所以在对不同数据集进行高",
      "top": 145.0,
      "left": 186.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0022",
      "page": 67,
      "ordinal": 22,
      "text": "速读写时需要权衡内存，",
      "top": 145.0,
      "left": 614.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0023",
      "page": 67,
      "ordinal": 23,
      "text": "因为数据量不能大于硬件内存。在内存数据库方",
      "top": 168.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0025",
      "page": 67,
      "ordinal": 25,
      "text": "面的",
      "top": 168.0,
      "left": 456.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0027",
      "page": 67,
      "ordinal": 27,
      "text": "另一个优点是，相比在磁盘上相同的复杂的数",
      "top": 168.0,
      "left": 489.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0028",
      "page": 67,
      "ordinal": 28,
      "text": "据结构，在内存中操作",
      "top": 192.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0030",
      "page": 67,
      "ordinal": 30,
      "text": "起来非常",
      "top": 192.0,
      "left": 296.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0032",
      "page": 67,
      "ordinal": 32,
      "text": "简单，这样",
      "top": 192.0,
      "left": 358.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0033",
      "page": 67,
      "ordinal": 33,
      "text": " Redis ",
      "top": 192.0,
      "left": 431.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0034",
      "page": 67,
      "ordinal": 34,
      "text": "可以做很多内部复杂性很强的事情。同时，在",
      "top": 192.0,
      "left": 475.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0036",
      "page": 67,
      "ordinal": 36,
      "text": "磁盘格式方面",
      "top": 215.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0038",
      "page": 67,
      "ordinal": 38,
      "text": "他们是紧凑的以追加的方式产生的，因为他们并不需要进行",
      "top": 215.0,
      "left": 237.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0040",
      "page": 67,
      "ordinal": 40,
      "text": "随机访问",
      "top": 215.0,
      "left": 621.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h01",
        "heading_id": "p067-h01",
        "block_id": "q-p067-h01-b002"
      }
    },
    {
      "id": "p067-t0042",
      "page": 67,
      "ordinal": 42,
      "text": "Redis ",
      "top": 249.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02"
      }
    },
    {
      "id": "p067-t0043",
      "page": 67,
      "ordinal": 43,
      "text": "的数据类型？",
      "top": 249.0,
      "left": 187.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02"
      }
    },
    {
      "id": "p067-t0046",
      "page": 67,
      "ordinal": 46,
      "text": " Redis ",
      "top": 300.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0047",
      "page": 67,
      "ordinal": 47,
      "text": "支持五种数据类型：",
      "top": 300.0,
      "left": 156.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0048",
      "page": 67,
      "ordinal": 48,
      "text": "string",
      "top": 300.0,
      "left": 288.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0049",
      "page": 67,
      "ordinal": 49,
      "text": "（字符串），",
      "top": 300.0,
      "left": 327.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0050",
      "page": 67,
      "ordinal": 50,
      "text": "hash",
      "top": 300.0,
      "left": 414.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0051",
      "page": 67,
      "ordinal": 51,
      "text": "（哈希），",
      "top": 300.0,
      "left": 447.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0052",
      "page": 67,
      "ordinal": 52,
      "text": "list",
      "top": 300.0,
      "left": 521.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0053",
      "page": 67,
      "ordinal": 53,
      "text": "（列",
      "top": 300.0,
      "left": 540.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0055",
      "page": 67,
      "ordinal": 55,
      "text": "表），",
      "top": 300.0,
      "left": 573.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0056",
      "page": 67,
      "ordinal": 56,
      "text": "set",
      "top": 300.0,
      "left": 617.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0057",
      "page": 67,
      "ordinal": 57,
      "text": "（集合）及",
      "top": 300.0,
      "left": 637.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0059",
      "page": 67,
      "ordinal": 59,
      "text": "zsetsorted set",
      "top": 324.0,
      "left": 112.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0060",
      "page": 67,
      "ordinal": 60,
      "text": "：有序集合",
      "top": 324.0,
      "left": 207.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0061",
      "page": 67,
      "ordinal": 61,
      "text": ")",
      "top": 324.0,
      "left": 280.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0062",
      "page": 67,
      "ordinal": 62,
      "text": "。",
      "top": 324.0,
      "left": 285.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0064",
      "page": 67,
      "ordinal": 64,
      "text": "我们实际项目中比较常用的是",
      "top": 324.0,
      "left": 303.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0065",
      "page": 67,
      "ordinal": 65,
      "text": " string",
      "top": 324.0,
      "left": 493.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0066",
      "page": 67,
      "ordinal": 66,
      "text": "，",
      "top": 324.0,
      "left": 536.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0067",
      "page": 67,
      "ordinal": 67,
      "text": "hash ",
      "top": 324.0,
      "left": 550.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0068",
      "page": 67,
      "ordinal": 68,
      "text": "如果你是",
      "top": 324.0,
      "left": 587.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0069",
      "page": 67,
      "ordinal": 69,
      "text": " Redis ",
      "top": 324.0,
      "left": 646.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0070",
      "page": 67,
      "ordinal": 70,
      "text": "中高级用户，",
      "top": 324.0,
      "left": 690.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0071",
      "page": 67,
      "ordinal": 71,
      "text": "还",
      "top": 347.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0073",
      "page": 67,
      "ordinal": 73,
      "text": "需要加上下面几种数据结构",
      "top": 347.0,
      "left": 130.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0074",
      "page": 67,
      "ordinal": 74,
      "text": " HyperLogLog",
      "top": 347.0,
      "left": 306.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0075",
      "page": 67,
      "ordinal": 75,
      "text": "、",
      "top": 347.0,
      "left": 400.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0076",
      "page": 67,
      "ordinal": 76,
      "text": "Geo",
      "top": 347.0,
      "left": 414.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0077",
      "page": 67,
      "ordinal": 77,
      "text": "、",
      "top": 347.0,
      "left": 442.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0078",
      "page": 67,
      "ordinal": 78,
      "text": "Pub/Sub",
      "top": 347.0,
      "left": 457.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0079",
      "page": 67,
      "ordinal": 79,
      "text": "。",
      "top": 347.0,
      "left": 515.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0081",
      "page": 67,
      "ordinal": 81,
      "text": "如果你说还玩过",
      "top": 347.0,
      "left": 533.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0082",
      "page": 67,
      "ordinal": 82,
      "text": " Redis Module",
      "top": 347.0,
      "left": 635.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0083",
      "page": 67,
      "ordinal": 83,
      "text": "，像",
      "top": 347.0,
      "left": 732.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0085",
      "page": 67,
      "ordinal": 85,
      "text": "BloomFilter",
      "top": 370.0,
      "left": 112.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0086",
      "page": 67,
      "ordinal": 86,
      "text": "，",
      "top": 370.0,
      "left": 190.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0087",
      "page": 67,
      "ordinal": 87,
      "text": "RedisSearch",
      "top": 370.0,
      "left": 205.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0088",
      "page": 67,
      "ordinal": 88,
      "text": "，",
      "top": 370.0,
      "left": 288.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0089",
      "page": 67,
      "ordinal": 89,
      "text": "Redis-ML",
      "top": 370.0,
      "left": 303.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0090",
      "page": 67,
      "ordinal": 90,
      "text": "，",
      "top": 370.0,
      "left": 365.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0092",
      "page": 67,
      "ordinal": 92,
      "text": "面试官得眼睛就开始发亮了。",
      "top": 370.0,
      "left": 384.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h02",
        "heading_id": "p067-h02",
        "block_id": "q-p067-h02-b001"
      }
    },
    {
      "id": "p067-t0094",
      "page": 67,
      "ordinal": 94,
      "text": "使用",
      "top": 404.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03"
      }
    },
    {
      "id": "p067-t0095",
      "page": 67,
      "ordinal": 95,
      "text": " Redis ",
      "top": 404.0,
      "left": 163.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03"
      }
    },
    {
      "id": "p067-t0096",
      "page": 67,
      "ordinal": 96,
      "text": "有哪些好处？",
      "top": 404.0,
      "left": 245.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03"
      }
    },
    {
      "id": "p067-t0099",
      "page": 67,
      "ordinal": 99,
      "text": "1. ",
      "top": 455.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0100",
      "page": 67,
      "ordinal": 100,
      "text": "速度快，因为数据存在内存中，类似于",
      "top": 455.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0101",
      "page": 67,
      "ordinal": 101,
      "text": " HashMap",
      "top": 455.0,
      "left": 394.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0102",
      "page": 67,
      "ordinal": 102,
      "text": "，",
      "top": 455.0,
      "left": 463.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0103",
      "page": 67,
      "ordinal": 103,
      "text": "HashMap ",
      "top": 455.0,
      "left": 478.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0104",
      "page": 67,
      "ordinal": 104,
      "text": "的优势就是查",
      "top": 455.0,
      "left": 547.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0106",
      "page": 67,
      "ordinal": 106,
      "text": "找和操作的时间复杂",
      "top": 455.0,
      "left": 638.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0107",
      "page": 67,
      "ordinal": 107,
      "text": "度都是",
      "top": 479.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0108",
      "page": 67,
      "ordinal": 108,
      "text": " O1) ",
      "top": 479.0,
      "left": 189.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b001"
      }
    },
    {
      "id": "p067-t0109",
      "page": 67,
      "ordinal": 109,
      "text": "2. ",
      "top": 509.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0110",
      "page": 67,
      "ordinal": 110,
      "text": "支持丰富数据类型，支持",
      "top": 509.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0111",
      "page": 67,
      "ordinal": 111,
      "text": " string",
      "top": 509.0,
      "left": 306.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0112",
      "page": 67,
      "ordinal": 112,
      "text": "，",
      "top": 509.0,
      "left": 349.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0113",
      "page": 67,
      "ordinal": 113,
      "text": "list",
      "top": 509.0,
      "left": 364.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0114",
      "page": 67,
      "ordinal": 114,
      "text": "，",
      "top": 509.0,
      "left": 383.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0115",
      "page": 67,
      "ordinal": 115,
      "text": "set",
      "top": 509.0,
      "left": 398.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0116",
      "page": 67,
      "ordinal": 116,
      "text": "，",
      "top": 509.0,
      "left": 418.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0117",
      "page": 67,
      "ordinal": 117,
      "text": "Zset",
      "top": 509.0,
      "left": 433.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0118",
      "page": 67,
      "ordinal": 118,
      "text": "，",
      "top": 509.0,
      "left": 461.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0119",
      "page": 67,
      "ordinal": 119,
      "text": "hash ",
      "top": 509.0,
      "left": 476.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0120",
      "page": 67,
      "ordinal": 120,
      "text": "等",
      "top": 509.0,
      "left": 513.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b002"
      }
    },
    {
      "id": "p067-t0122",
      "page": 67,
      "ordinal": 122,
      "text": "3. ",
      "top": 540.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b003"
      }
    },
    {
      "id": "p067-t0123",
      "page": 67,
      "ordinal": 123,
      "text": "支持事务，操作都是原子性，所谓的原子性就是对数据的更改要么全部执",
      "top": 540.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b003"
      }
    },
    {
      "id": "p067-t0125",
      "page": 67,
      "ordinal": 125,
      "text": "行，要么全部不执行",
      "top": 540.0,
      "left": 617.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b003"
      }
    },
    {
      "id": "p067-t0127",
      "page": 67,
      "ordinal": 127,
      "text": "4. ",
      "top": 571.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b004"
      }
    },
    {
      "id": "p067-t0128",
      "page": 67,
      "ordinal": 128,
      "text": "丰富的特性：可用于缓存，消息，按",
      "top": 571.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b004"
      }
    },
    {
      "id": "p067-t0129",
      "page": 67,
      "ordinal": 129,
      "text": " key ",
      "top": 571.0,
      "left": 380.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b004"
      }
    },
    {
      "id": "p067-t0130",
      "page": 67,
      "ordinal": 130,
      "text": "设置过期时间，过期后将会自动删除",
      "top": 571.0,
      "left": 410.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h03",
        "heading_id": "p067-h03",
        "block_id": "q-p067-h03-b004"
      }
    },
    {
      "id": "p067-t0131",
      "page": 67,
      "ordinal": 131,
      "text": "Redis ",
      "top": 606.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04"
      }
    },
    {
      "id": "p067-t0132",
      "page": 67,
      "ordinal": 132,
      "text": "相比",
      "top": 606.0,
      "left": 187.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04"
      }
    },
    {
      "id": "p067-t0133",
      "page": 67,
      "ordinal": 133,
      "text": " Memcached ",
      "top": 606.0,
      "left": 238.0,
      "width": 168.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04"
      }
    },
    {
      "id": "p067-t0134",
      "page": 67,
      "ordinal": 134,
      "text": "有哪些优势？",
      "top": 606.0,
      "left": 406.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04"
      }
    },
    {
      "id": "p067-t0137",
      "page": 67,
      "ordinal": 137,
      "text": "1. Memcached ",
      "top": 656.0,
      "left": 129.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b001"
      }
    },
    {
      "id": "p067-t0138",
      "page": 67,
      "ordinal": 138,
      "text": "所有的值均是简单的字符串，",
      "top": 656.0,
      "left": 233.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b001"
      }
    },
    {
      "id": "p067-t0139",
      "page": 67,
      "ordinal": 139,
      "text": "redis ",
      "top": 656.0,
      "left": 423.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b001"
      }
    },
    {
      "id": "p067-t0140",
      "page": 67,
      "ordinal": 140,
      "text": "作为其替代者，支持更为",
      "top": 656.0,
      "left": 460.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b001"
      }
    },
    {
      "id": "p067-t0142",
      "page": 67,
      "ordinal": 142,
      "text": "丰富的数据类",
      "top": 656.0,
      "left": 625.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b001"
      }
    },
    {
      "id": "p067-t0144",
      "page": 67,
      "ordinal": 144,
      "text": "2. Redis ",
      "top": 687.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b002"
      }
    },
    {
      "id": "p067-t0145",
      "page": 67,
      "ordinal": 145,
      "text": "的速度比",
      "top": 687.0,
      "left": 186.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b002"
      }
    },
    {
      "id": "p067-t0146",
      "page": 67,
      "ordinal": 146,
      "text": " Memcached ",
      "top": 687.0,
      "left": 245.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b002"
      }
    },
    {
      "id": "p067-t0147",
      "page": 67,
      "ordinal": 147,
      "text": "快很",
      "top": 687.0,
      "left": 335.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b002"
      }
    },
    {
      "id": "p067-t0149",
      "page": 67,
      "ordinal": 149,
      "text": "3. Redis ",
      "top": 717.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b003"
      }
    },
    {
      "id": "p067-t0150",
      "page": 67,
      "ordinal": 150,
      "text": "可以持久化其数据",
      "top": 717.0,
      "left": 186.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h04",
        "heading_id": "p067-h04",
        "block_id": "q-p067-h04-b003"
      }
    },
    {
      "id": "p067-t0152",
      "page": 67,
      "ordinal": 152,
      "text": "Memcache ",
      "top": 752.0,
      "left": 112.0,
      "width": 145.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05"
      }
    },
    {
      "id": "p067-t0153",
      "page": 67,
      "ordinal": 153,
      "text": "与",
      "top": 752.0,
      "left": 257.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05"
      }
    },
    {
      "id": "p067-t0154",
      "page": 67,
      "ordinal": 154,
      "text": " Redis ",
      "top": 752.0,
      "left": 282.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05"
      }
    },
    {
      "id": "p067-t0155",
      "page": 67,
      "ordinal": 155,
      "text": "的区别都有哪些？",
      "top": 752.0,
      "left": 364.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05"
      }
    },
    {
      "id": "p067-t0158",
      "page": 67,
      "ordinal": 158,
      "text": "1. ",
      "top": 803.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0159",
      "page": 67,
      "ordinal": 159,
      "text": "存储方式",
      "top": 803.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0160",
      "page": 67,
      "ordinal": 160,
      "text": " Memecache ",
      "top": 803.0,
      "left": 204.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0161",
      "page": 67,
      "ordinal": 161,
      "text": "把数据全部存在内存之中，断电后会挂掉，数据不",
      "top": 803.0,
      "left": 294.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0163",
      "page": 67,
      "ordinal": 163,
      "text": "能超过内存大小。",
      "top": 803.0,
      "left": 620.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0164",
      "page": 67,
      "ordinal": 164,
      "text": " Redis ",
      "top": 803.0,
      "left": 737.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0165",
      "page": 67,
      "ordinal": 165,
      "text": "有部份存在硬盘上，这样能保证数据的持久性。",
      "top": 825.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b001"
      }
    },
    {
      "id": "p067-t0167",
      "page": 67,
      "ordinal": 167,
      "text": "2. ",
      "top": 857.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0168",
      "page": 67,
      "ordinal": 168,
      "text": "数据支持类型",
      "top": 857.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0169",
      "page": 67,
      "ordinal": 169,
      "text": " Memcache ",
      "top": 857.0,
      "left": 233.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0170",
      "page": 67,
      "ordinal": 170,
      "text": "对数据类型支持相对简单。",
      "top": 857.0,
      "left": 315.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0171",
      "page": 67,
      "ordinal": 171,
      "text": " Redis ",
      "top": 857.0,
      "left": 491.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0172",
      "page": 67,
      "ordinal": 172,
      "text": "有复杂的数",
      "top": 857.0,
      "left": 535.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0174",
      "page": 67,
      "ordinal": 174,
      "text": "据类型。",
      "top": 857.0,
      "left": 612.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b002"
      }
    },
    {
      "id": "p067-t0176",
      "page": 67,
      "ordinal": 176,
      "text": "3. ",
      "top": 887.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0177",
      "page": 67,
      "ordinal": 177,
      "text": "使用底层模型不同",
      "top": 887.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0179",
      "page": 67,
      "ordinal": 179,
      "text": "它们之间底层实现方式",
      "top": 887.0,
      "left": 266.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0181",
      "page": 67,
      "ordinal": 181,
      "text": "以及与客户端之间通信的应用",
      "top": 887.0,
      "left": 416.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0183",
      "page": 67,
      "ordinal": 183,
      "text": "协议不一样。",
      "top": 887.0,
      "left": 610.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0184",
      "page": 67,
      "ordinal": 184,
      "text": " Redis ",
      "top": 887.0,
      "left": 698.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0185",
      "page": 67,
      "ordinal": 185,
      "text": "直接",
      "top": 887.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0186",
      "page": 67,
      "ordinal": 186,
      "text": "自己构建了",
      "top": 911.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0187",
      "page": 67,
      "ordinal": 187,
      "text": " VM ",
      "top": 911.0,
      "left": 219.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0188",
      "page": 67,
      "ordinal": 188,
      "text": "机制",
      "top": 911.0,
      "left": 248.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0190",
      "page": 67,
      "ordinal": 190,
      "text": "，因为一般的系统调用系统",
      "top": 911.0,
      "left": 281.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0192",
      "page": 67,
      "ordinal": 192,
      "text": "函",
      "top": 911.0,
      "left": 460.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0194",
      "page": 67,
      "ordinal": 194,
      "text": "数的话，会浪费一定的时间去移动和请求",
      "top": 911.0,
      "left": 479.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h05",
        "heading_id": "p067-h05",
        "block_id": "q-p067-h05-b003"
      }
    },
    {
      "id": "p067-t0196",
      "page": 67,
      "ordinal": 196,
      "text": "Redis ",
      "top": 946.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06"
      }
    },
    {
      "id": "p067-t0197",
      "page": 67,
      "ordinal": 197,
      "text": "是单进程单线程的",
      "top": 946.0,
      "left": 187.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06"
      }
    },
    {
      "id": "p067-t0200",
      "page": 67,
      "ordinal": 200,
      "text": " Redis ",
      "top": 995.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0201",
      "page": 67,
      "ordinal": 201,
      "text": "是单进程单线程的，",
      "top": 995.0,
      "left": 156.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0202",
      "page": 67,
      "ordinal": 202,
      "text": "redis ",
      "top": 995.0,
      "left": 288.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0203",
      "page": 67,
      "ordinal": 203,
      "text": "利用队列技术将并发访问变为串行访",
      "top": 995.0,
      "left": 325.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0205",
      "page": 67,
      "ordinal": 205,
      "text": "问，消",
      "top": 995.0,
      "left": 563.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0207",
      "page": 67,
      "ordinal": 207,
      "text": "除了传统数据库串行控制",
      "top": 995.0,
      "left": 611.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0208",
      "page": 67,
      "ordinal": 208,
      "text": "的开销",
      "top": 1019.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h06",
        "heading_id": "p067-h06",
        "block_id": "q-p067-h06-b001"
      }
    },
    {
      "id": "p067-t0210",
      "page": 67,
      "ordinal": 210,
      "text": "一个字符串类型的值能存储最大容量是多少",
      "top": 1054.0,
      "left": 112.0,
      "width": 486.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p067-h07",
        "heading_id": "p067-h07"
      }
    },
    {
      "id": "p067-t0213",
      "page": 67,
      "ordinal": 213,
      "text": "513M",
      "top": 1104.0,
      "left": 112.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p067-h07",
        "heading_id": "p067-h07",
        "block_id": "q-p067-h07-b001"
      }
    },
    {
      "id": "p068-t0001",
      "page": 68,
      "ordinal": 1,
      "text": "Redis ",
      "top": 40.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01"
      }
    },
    {
      "id": "p068-t0002",
      "page": 68,
      "ordinal": 2,
      "text": "的持久化机制是什么？各自的优缺点？",
      "top": 40.0,
      "left": 187.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01"
      }
    },
    {
      "id": "p068-t0005",
      "page": 68,
      "ordinal": 5,
      "text": " Redis ",
      "top": 91.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0006",
      "page": 68,
      "ordinal": 6,
      "text": "提供两种持久化机制",
      "top": 91.0,
      "left": 156.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0007",
      "page": 68,
      "ordinal": 7,
      "text": " RDB ",
      "top": 91.0,
      "left": 288.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0008",
      "page": 68,
      "ordinal": 8,
      "text": "和",
      "top": 91.0,
      "left": 325.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0009",
      "page": 68,
      "ordinal": 9,
      "text": " AOF ",
      "top": 91.0,
      "left": 339.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0010",
      "page": 68,
      "ordinal": 10,
      "text": "机制：",
      "top": 91.0,
      "left": 375.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0011",
      "page": 68,
      "ordinal": 11,
      "text": " RDBRedis DataBase)",
      "top": 114.0,
      "left": 112.0,
      "width": 143.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0012",
      "page": 68,
      "ordinal": 12,
      "text": "持久化方式：",
      "top": 114.0,
      "left": 255.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0014",
      "page": 68,
      "ordinal": 14,
      "text": "是指用数据集快照的方式半持久化模式",
      "top": 137.0,
      "left": 116.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0015",
      "page": 68,
      "ordinal": 15,
      "text": ")",
      "top": 137.0,
      "left": 364.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0016",
      "page": 68,
      "ordinal": 16,
      "text": "记录",
      "top": 137.0,
      "left": 369.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0017",
      "page": 68,
      "ordinal": 17,
      "text": " Redis ",
      "top": 137.0,
      "left": 398.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0018",
      "page": 68,
      "ordinal": 18,
      "text": "数据库的所有键值对",
      "top": 137.0,
      "left": 442.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0019",
      "page": 68,
      "ordinal": 19,
      "text": ",",
      "top": 137.0,
      "left": 574.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0020",
      "page": 68,
      "ordinal": 20,
      "text": "在某",
      "top": 137.0,
      "left": 577.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0022",
      "page": 68,
      "ordinal": 22,
      "text": "个时间点将数据写入一个",
      "top": 137.0,
      "left": 611.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0023",
      "page": 68,
      "ordinal": 23,
      "text": "临时文件，持久化结束后，用这个临时文件替换上次",
      "top": 161.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0025",
      "page": 68,
      "ordinal": 25,
      "text": "持久化的文件，达到数据恢复。",
      "top": 161.0,
      "left": 452.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0027",
      "page": 68,
      "ordinal": 27,
      "text": "优点：",
      "top": 184.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b001"
      }
    },
    {
      "id": "p068-t0029",
      "page": 68,
      "ordinal": 29,
      "text": "1. ",
      "top": 219.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b002"
      }
    },
    {
      "id": "p068-t0030",
      "page": 68,
      "ordinal": 30,
      "text": "只有一个文件",
      "top": 219.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b002"
      }
    },
    {
      "id": "p068-t0031",
      "page": 68,
      "ordinal": 31,
      "text": " dump.rdb",
      "top": 219.0,
      "left": 233.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b002"
      }
    },
    {
      "id": "p068-t0032",
      "page": 68,
      "ordinal": 32,
      "text": "，方便持久化。",
      "top": 219.0,
      "left": 305.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b002"
      }
    },
    {
      "id": "p068-t0034",
      "page": 68,
      "ordinal": 34,
      "text": "2. ",
      "top": 251.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b003"
      }
    },
    {
      "id": "p068-t0035",
      "page": 68,
      "ordinal": 35,
      "text": "容灾性好，一个文件可以保存到安全的磁盘。",
      "top": 251.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b003"
      }
    },
    {
      "id": "p068-t0037",
      "page": 68,
      "ordinal": 37,
      "text": "3. ",
      "top": 281.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0038",
      "page": 68,
      "ordinal": 38,
      "text": "性能最大化，",
      "top": 281.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0039",
      "page": 68,
      "ordinal": 39,
      "text": "fork ",
      "top": 281.0,
      "left": 233.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0040",
      "page": 68,
      "ordinal": 40,
      "text": "子进程来完成写操作，让主进程继续处理命令，所以",
      "top": 281.0,
      "left": 264.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0042",
      "page": 68,
      "ordinal": 42,
      "text": "是",
      "top": 281.0,
      "left": 605.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0043",
      "page": 68,
      "ordinal": 43,
      "text": " IO ",
      "top": 281.0,
      "left": 619.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0044",
      "page": 68,
      "ordinal": 44,
      "text": "最大化。使用单独子",
      "top": 281.0,
      "left": 642.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0045",
      "page": 68,
      "ordinal": 45,
      "text": "进程来进行持久化，主进程不会进行任何",
      "top": 305.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0046",
      "page": 68,
      "ordinal": 46,
      "text": " IO ",
      "top": 305.0,
      "left": 409.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0047",
      "page": 68,
      "ordinal": 47,
      "text": "操",
      "top": 305.0,
      "left": 432.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0049",
      "page": 68,
      "ordinal": 49,
      "text": "作，保证了",
      "top": 305.0,
      "left": 450.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0050",
      "page": 68,
      "ordinal": 50,
      "text": " Redis ",
      "top": 305.0,
      "left": 523.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0051",
      "page": 68,
      "ordinal": 51,
      "text": "的高性能",
      "top": 305.0,
      "left": 568.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0052",
      "page": 68,
      "ordinal": 52,
      "text": ") ",
      "top": 305.0,
      "left": 626.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b004"
      }
    },
    {
      "id": "p068-t0053",
      "page": 68,
      "ordinal": 53,
      "text": "4. ",
      "top": 335.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b005"
      }
    },
    {
      "id": "p068-t0054",
      "page": 68,
      "ordinal": 54,
      "text": "相对于数据集大时，比",
      "top": 335.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b005"
      }
    },
    {
      "id": "p068-t0055",
      "page": 68,
      "ordinal": 55,
      "text": " AOF ",
      "top": 335.0,
      "left": 292.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b005"
      }
    },
    {
      "id": "p068-t0056",
      "page": 68,
      "ordinal": 56,
      "text": "的启动效率更高。",
      "top": 335.0,
      "left": 328.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b005"
      }
    },
    {
      "id": "p068-t0058",
      "page": 68,
      "ordinal": 58,
      "text": "缺点：",
      "top": 370.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b006"
      }
    },
    {
      "id": "p068-t0060",
      "page": 68,
      "ordinal": 60,
      "text": "1. ",
      "top": 405.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0061",
      "page": 68,
      "ordinal": 61,
      "text": "数据安全性低。",
      "top": 405.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0062",
      "page": 68,
      "ordinal": 62,
      "text": "RDB ",
      "top": 405.0,
      "left": 248.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0063",
      "page": 68,
      "ordinal": 63,
      "text": "是间隔一段时间进行持久化，如果持久化之间",
      "top": 405.0,
      "left": 281.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0064",
      "page": 68,
      "ordinal": 64,
      "text": " Redis ",
      "top": 405.0,
      "left": 573.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0065",
      "page": 68,
      "ordinal": 65,
      "text": "发生",
      "top": 405.0,
      "left": 618.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0067",
      "page": 68,
      "ordinal": 67,
      "text": "故障，会发生数据",
      "top": 405.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0068",
      "page": 68,
      "ordinal": 68,
      "text": "丢失。所以这种方式更适合数据要求不严谨的时候。",
      "top": 428.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b007"
      }
    },
    {
      "id": "p068-t0070",
      "page": 68,
      "ordinal": 70,
      "text": " AOFAppend-only file)",
      "top": 463.0,
      "left": 112.0,
      "width": 148.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0071",
      "page": 68,
      "ordinal": 71,
      "text": "持久化方式：",
      "top": 463.0,
      "left": 259.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0073",
      "page": 68,
      "ordinal": 73,
      "text": "是指所有的命令行记录以",
      "top": 487.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0074",
      "page": 68,
      "ordinal": 74,
      "text": " Redis ",
      "top": 487.0,
      "left": 273.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0075",
      "page": 68,
      "ordinal": 75,
      "text": "命令请求协议的格式完全持久化存储",
      "top": 487.0,
      "left": 317.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0076",
      "page": 68,
      "ordinal": 76,
      "text": ")",
      "top": 487.0,
      "left": 551.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0077",
      "page": 68,
      "ordinal": 77,
      "text": "保存为",
      "top": 487.0,
      "left": 555.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0078",
      "page": 68,
      "ordinal": 78,
      "text": " aof ",
      "top": 487.0,
      "left": 599.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0079",
      "page": 68,
      "ordinal": 79,
      "text": "文件。",
      "top": 487.0,
      "left": 629.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0081",
      "page": 68,
      "ordinal": 81,
      "text": "优点：",
      "top": 510.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b008"
      }
    },
    {
      "id": "p068-t0083",
      "page": 68,
      "ordinal": 83,
      "text": "1. ",
      "top": 545.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0084",
      "page": 68,
      "ordinal": 84,
      "text": "数据安全，",
      "top": 545.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0085",
      "page": 68,
      "ordinal": 85,
      "text": "aof ",
      "top": 545.0,
      "left": 219.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0086",
      "page": 68,
      "ordinal": 86,
      "text": "持久化可以配置",
      "top": 545.0,
      "left": 244.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0087",
      "page": 68,
      "ordinal": 87,
      "text": " appendfsync ",
      "top": 545.0,
      "left": 347.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0088",
      "page": 68,
      "ordinal": 88,
      "text": "属性，有",
      "top": 545.0,
      "left": 442.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0089",
      "page": 68,
      "ordinal": 89,
      "text": " always",
      "top": 545.0,
      "left": 500.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0090",
      "page": 68,
      "ordinal": 90,
      "text": "，每进行",
      "top": 545.0,
      "left": 550.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0092",
      "page": 68,
      "ordinal": 92,
      "text": "一次命令操作就记录到",
      "top": 545.0,
      "left": 612.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0094",
      "page": 68,
      "ordinal": 94,
      "text": "aof ",
      "top": 569.0,
      "left": 146.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0095",
      "page": 68,
      "ordinal": 95,
      "text": "文件中一次。",
      "top": 569.0,
      "left": 171.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b009"
      }
    },
    {
      "id": "p068-t0097",
      "page": 68,
      "ordinal": 97,
      "text": "2. ",
      "top": 599.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0098",
      "page": 68,
      "ordinal": 98,
      "text": "通过",
      "top": 599.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0099",
      "page": 68,
      "ordinal": 99,
      "text": " append ",
      "top": 599.0,
      "left": 175.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0100",
      "page": 68,
      "ordinal": 100,
      "text": "模式写文件，即使中途服务器宕机，可以通过",
      "top": 599.0,
      "left": 235.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0101",
      "page": 68,
      "ordinal": 101,
      "text": " redis check-aof ",
      "top": 599.0,
      "left": 527.0,
      "width": 116.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0102",
      "page": 68,
      "ordinal": 102,
      "text": "工具解决数据一致性",
      "top": 599.0,
      "left": 643.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0103",
      "page": 68,
      "ordinal": 103,
      "text": "问题。",
      "top": 623.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b010"
      }
    },
    {
      "id": "p068-t0105",
      "page": 68,
      "ordinal": 105,
      "text": "3. AOF ",
      "top": 653.0,
      "left": 129.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0106",
      "page": 68,
      "ordinal": 106,
      "text": "机制的",
      "top": 653.0,
      "left": 177.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0107",
      "page": 68,
      "ordinal": 107,
      "text": " rewrite ",
      "top": 653.0,
      "left": 221.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0108",
      "page": 68,
      "ordinal": 108,
      "text": "模式。",
      "top": 653.0,
      "left": 278.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0109",
      "page": 68,
      "ordinal": 109,
      "text": "AOF ",
      "top": 653.0,
      "left": 321.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0110",
      "page": 68,
      "ordinal": 110,
      "text": "文件没被",
      "top": 653.0,
      "left": 353.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0111",
      "page": 68,
      "ordinal": 111,
      "text": " rewrite ",
      "top": 653.0,
      "left": 412.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0112",
      "page": 68,
      "ordinal": 112,
      "text": "之前（文件过大时会",
      "top": 653.0,
      "left": 468.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0114",
      "page": 68,
      "ordinal": 114,
      "text": "对命令进行合并重写），可",
      "top": 653.0,
      "left": 604.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0115",
      "page": 68,
      "ordinal": 115,
      "text": "以删除其中的某些命令（比如误操作的",
      "top": 677.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0116",
      "page": 68,
      "ordinal": 116,
      "text": " flushall",
      "top": 677.0,
      "left": 394.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0117",
      "page": 68,
      "ordinal": 117,
      "text": "）",
      "top": 677.0,
      "left": 447.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0118",
      "page": 68,
      "ordinal": 118,
      "text": ") ",
      "top": 677.0,
      "left": 462.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b011"
      }
    },
    {
      "id": "p068-t0119",
      "page": 68,
      "ordinal": 119,
      "text": "缺点：",
      "top": 712.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b012"
      }
    },
    {
      "id": "p068-t0121",
      "page": 68,
      "ordinal": 121,
      "text": "1. AOF ",
      "top": 747.0,
      "left": 129.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b013"
      }
    },
    {
      "id": "p068-t0122",
      "page": 68,
      "ordinal": 122,
      "text": "文件比",
      "top": 747.0,
      "left": 177.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b013"
      }
    },
    {
      "id": "p068-t0123",
      "page": 68,
      "ordinal": 123,
      "text": " RDB ",
      "top": 747.0,
      "left": 221.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b013"
      }
    },
    {
      "id": "p068-t0124",
      "page": 68,
      "ordinal": 124,
      "text": "文件大，且恢复速度慢。",
      "top": 747.0,
      "left": 258.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b013"
      }
    },
    {
      "id": "p068-t0126",
      "page": 68,
      "ordinal": 126,
      "text": "2. ",
      "top": 778.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b014"
      }
    },
    {
      "id": "p068-t0127",
      "page": 68,
      "ordinal": 127,
      "text": "数据集大的时候，比",
      "top": 778.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b014"
      }
    },
    {
      "id": "p068-t0128",
      "page": 68,
      "ordinal": 128,
      "text": " rdb ",
      "top": 778.0,
      "left": 277.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b014"
      }
    },
    {
      "id": "p068-t0129",
      "page": 68,
      "ordinal": 129,
      "text": "启动效率低",
      "top": 778.0,
      "left": 309.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h01",
        "heading_id": "p068-h01",
        "block_id": "q-p068-h01-b014"
      }
    },
    {
      "id": "p068-t0131",
      "page": 68,
      "ordinal": 131,
      "text": "Redis ",
      "top": 813.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02"
      }
    },
    {
      "id": "p068-t0132",
      "page": 68,
      "ordinal": 132,
      "text": "常见性能问题和解决方案：",
      "top": 813.0,
      "left": 187.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02"
      }
    },
    {
      "id": "p068-t0135",
      "page": 68,
      "ordinal": 135,
      "text": "1. Master ",
      "top": 863.0,
      "left": 129.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0136",
      "page": 68,
      "ordinal": 136,
      "text": "最好不要写内存快照，如果",
      "top": 863.0,
      "left": 197.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0137",
      "page": 68,
      "ordinal": 137,
      "text": " Master ",
      "top": 863.0,
      "left": 372.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0138",
      "page": 68,
      "ordinal": 138,
      "text": "写内存快照，",
      "top": 863.0,
      "left": 428.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0139",
      "page": 68,
      "ordinal": 139,
      "text": "save ",
      "top": 863.0,
      "left": 515.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0140",
      "page": 68,
      "ordinal": 140,
      "text": "命令调度",
      "top": 863.0,
      "left": 550.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0141",
      "page": 68,
      "ordinal": 141,
      "text": " rdbSave ",
      "top": 863.0,
      "left": 608.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0142",
      "page": 68,
      "ordinal": 142,
      "text": "函数，会阻塞主",
      "top": 863.0,
      "left": 672.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0143",
      "page": 68,
      "ordinal": 143,
      "text": "线程的工作，当快照比较大时对性能影响是非常大",
      "top": 886.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0145",
      "page": 68,
      "ordinal": 145,
      "text": "的，会间断性暂停服务",
      "top": 886.0,
      "left": 471.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b001"
      }
    },
    {
      "id": "p068-t0147",
      "page": 68,
      "ordinal": 147,
      "text": "2. ",
      "top": 917.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0148",
      "page": 68,
      "ordinal": 148,
      "text": "如果数据比较重要，某个",
      "top": 917.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0149",
      "page": 68,
      "ordinal": 149,
      "text": " Slave ",
      "top": 917.0,
      "left": 306.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0150",
      "page": 68,
      "ordinal": 150,
      "text": "开启",
      "top": 917.0,
      "left": 349.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0151",
      "page": 68,
      "ordinal": 151,
      "text": " AOF ",
      "top": 917.0,
      "left": 379.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0152",
      "page": 68,
      "ordinal": 152,
      "text": "备份数据，策略设置为每秒同",
      "top": 917.0,
      "left": 414.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0154",
      "page": 68,
      "ordinal": 154,
      "text": "步一",
      "top": 917.0,
      "left": 608.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0156",
      "page": 68,
      "ordinal": 156,
      "text": "（",
      "top": 917.0,
      "left": 641.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b002"
      }
    },
    {
      "id": "p068-t0157",
      "page": 68,
      "ordinal": 157,
      "text": "3. ",
      "top": 948.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0158",
      "page": 68,
      "ordinal": 158,
      "text": "为了主从复制的速度和连接的稳定性，",
      "top": 948.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0159",
      "page": 68,
      "ordinal": 159,
      "text": "Master ",
      "top": 948.0,
      "left": 394.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0160",
      "page": 68,
      "ordinal": 160,
      "text": "和",
      "top": 948.0,
      "left": 446.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0161",
      "page": 68,
      "ordinal": 161,
      "text": " Slave ",
      "top": 948.0,
      "left": 460.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0162",
      "page": 68,
      "ordinal": 162,
      "text": "最好在同一个局",
      "top": 948.0,
      "left": 503.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0164",
      "page": 68,
      "ordinal": 164,
      "text": "域网",
      "top": 948.0,
      "left": 609.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b003"
      }
    },
    {
      "id": "p068-t0166",
      "page": 68,
      "ordinal": 166,
      "text": "4. ",
      "top": 978.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b004"
      }
    },
    {
      "id": "p068-t0167",
      "page": 68,
      "ordinal": 167,
      "text": "尽量避免在压力很大的主库上增加从",
      "top": 978.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b004"
      }
    },
    {
      "id": "p068-t0169",
      "page": 68,
      "ordinal": 169,
      "text": "5. ",
      "top": 1009.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0170",
      "page": 68,
      "ordinal": 170,
      "text": "主从复制不要用图状结构，用单向链表结构更为稳定，即：",
      "top": 1009.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0171",
      "page": 68,
      "ordinal": 171,
      "text": "Master <- Slave1<- Slave2 <- Slave3…",
      "top": 1009.0,
      "left": 526.0,
      "width": 249.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0172",
      "page": 68,
      "ordinal": 172,
      "text": "这样的结构方便解决单点故障问题，实现",
      "top": 1032.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0173",
      "page": 68,
      "ordinal": 173,
      "text": " Slave ",
      "top": 1032.0,
      "left": 409.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0174",
      "page": 68,
      "ordinal": 174,
      "text": "对",
      "top": 1032.0,
      "left": 452.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0175",
      "page": 68,
      "ordinal": 175,
      "text": " Master ",
      "top": 1032.0,
      "left": 466.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0176",
      "page": 68,
      "ordinal": 176,
      "text": "的替换。如果",
      "top": 1032.0,
      "left": 522.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0177",
      "page": 68,
      "ordinal": 177,
      "text": " Master ",
      "top": 1032.0,
      "left": 609.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0178",
      "page": 68,
      "ordinal": 178,
      "text": "挂了，可以立刻启",
      "top": 1032.0,
      "left": 665.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0179",
      "page": 68,
      "ordinal": 179,
      "text": "用",
      "top": 1056.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0180",
      "page": 68,
      "ordinal": 180,
      "text": " Slave1 ",
      "top": 1056.0,
      "left": 160.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0181",
      "page": 68,
      "ordinal": 181,
      "text": "做",
      "top": 1056.0,
      "left": 211.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0182",
      "page": 68,
      "ordinal": 182,
      "text": " Master",
      "top": 1056.0,
      "left": 226.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0183",
      "page": 68,
      "ordinal": 183,
      "text": "，其",
      "top": 1056.0,
      "left": 278.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0185",
      "page": 68,
      "ordinal": 185,
      "text": "他不变。",
      "top": 1056.0,
      "left": 311.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h02",
        "heading_id": "p068-h02",
        "block_id": "q-p068-h02-b005"
      }
    },
    {
      "id": "p068-t0187",
      "page": 68,
      "ordinal": 187,
      "text": "Redis ",
      "top": 1091.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03"
      }
    },
    {
      "id": "p068-t0188",
      "page": 68,
      "ordinal": 188,
      "text": "过期键的删除策略？",
      "top": 1091.0,
      "left": 187.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03"
      }
    },
    {
      "id": "p068-t0190",
      "page": 68,
      "ordinal": 190,
      "text": "、",
      "top": 1091.0,
      "left": 424.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03"
      }
    },
    {
      "id": "p068-t0192",
      "page": 68,
      "ordinal": 192,
      "text": "1. ",
      "top": 1142.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0193",
      "page": 68,
      "ordinal": 193,
      "text": "定时删除",
      "top": 1142.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0194",
      "page": 68,
      "ordinal": 194,
      "text": ":",
      "top": 1142.0,
      "left": 204.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0195",
      "page": 68,
      "ordinal": 195,
      "text": "在设置键的过期时间的同时，创建一个定时器",
      "top": 1142.0,
      "left": 208.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0196",
      "page": 68,
      "ordinal": 196,
      "text": " timer). ",
      "top": 1142.0,
      "left": 500.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0197",
      "page": 68,
      "ordinal": 197,
      "text": "让定时",
      "top": 1142.0,
      "left": 553.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0199",
      "page": 68,
      "ordinal": 199,
      "text": "器在键的过期时间来临时，",
      "top": 1142.0,
      "left": 601.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p068-t0200",
      "page": 68,
      "ordinal": 200,
      "text": "立即执行对键的删除操作。",
      "top": 1164.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b001"
      }
    },
    {
      "id": "p069-t0001",
      "page": 69,
      "ordinal": 1,
      "text": "2. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0002",
      "page": 69,
      "ordinal": 2,
      "text": "惰性删除",
      "top": 44.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0003",
      "page": 69,
      "ordinal": 3,
      "text": ":",
      "top": 44.0,
      "left": 204.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0004",
      "page": 69,
      "ordinal": 4,
      "text": "放任键过期不管，但是每次从键空间中获取键时，都检查取得",
      "top": 44.0,
      "left": 208.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0006",
      "page": 69,
      "ordinal": 6,
      "text": "的键是否过期，如果过期的",
      "top": 44.0,
      "left": 607.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0007",
      "page": 69,
      "ordinal": 7,
      "text": "话，就删除该键",
      "top": 67.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0008",
      "page": 69,
      "ordinal": 8,
      "text": ";",
      "top": 67.0,
      "left": 248.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0009",
      "page": 69,
      "ordinal": 9,
      "text": "如果没有过期，就返回该键。",
      "top": 67.0,
      "left": 252.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b002"
      }
    },
    {
      "id": "p069-t0011",
      "page": 69,
      "ordinal": 11,
      "text": "3. ",
      "top": 98.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0012",
      "page": 69,
      "ordinal": 12,
      "text": "定期删除",
      "top": 98.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0013",
      "page": 69,
      "ordinal": 13,
      "text": ":",
      "top": 98.0,
      "left": 204.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0014",
      "page": 69,
      "ordinal": 14,
      "text": "每隔一段时间程序就对数据库进行一次检查，删除里面的过期",
      "top": 98.0,
      "left": 208.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0016",
      "page": 69,
      "ordinal": 16,
      "text": "键。至于要删除多少过期",
      "top": 98.0,
      "left": 607.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0017",
      "page": 69,
      "ordinal": 17,
      "text": "键，以及要检查多少个数据库，则由算法决定。",
      "top": 121.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p068-h03",
        "heading_id": "p068-h03",
        "block_id": "q-p068-h03-b003"
      }
    },
    {
      "id": "p069-t0019",
      "page": 69,
      "ordinal": 19,
      "text": "Redis ",
      "top": 156.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01"
      }
    },
    {
      "id": "p069-t0020",
      "page": 69,
      "ordinal": 20,
      "text": "的回收策略（淘汰策略）",
      "top": 156.0,
      "left": 187.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01"
      }
    },
    {
      "id": "p069-t0021",
      "page": 69,
      "ordinal": 21,
      "text": "? ",
      "top": 156.0,
      "left": 469.0,
      "width": 19.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01"
      }
    },
    {
      "id": "p069-t0023",
      "page": 69,
      "ordinal": 23,
      "text": "1. volatile-lru",
      "top": 207.0,
      "left": 129.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b001"
      }
    },
    {
      "id": "p069-t0024",
      "page": 69,
      "ordinal": 24,
      "text": "：从已设置过期时间的数据集（",
      "top": 207.0,
      "left": 218.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b001"
      }
    },
    {
      "id": "p069-t0025",
      "page": 69,
      "ordinal": 25,
      "text": "server.db[i].expires",
      "top": 207.0,
      "left": 422.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b001"
      }
    },
    {
      "id": "p069-t0026",
      "page": 69,
      "ordinal": 26,
      "text": "）中挑选",
      "top": 207.0,
      "left": 554.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b001"
      }
    },
    {
      "id": "p069-t0028",
      "page": 69,
      "ordinal": 28,
      "text": "最近最少使用的数据淘汰",
      "top": 207.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b001"
      }
    },
    {
      "id": "p069-t0030",
      "page": 69,
      "ordinal": 30,
      "text": "2. volatile-ttl",
      "top": 237.0,
      "left": 129.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b002"
      }
    },
    {
      "id": "p069-t0031",
      "page": 69,
      "ordinal": 31,
      "text": "：从已设置过期时间的数据集（",
      "top": 237.0,
      "left": 213.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b002"
      }
    },
    {
      "id": "p069-t0032",
      "page": 69,
      "ordinal": 32,
      "text": "server.db[i].expires",
      "top": 237.0,
      "left": 418.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b002"
      }
    },
    {
      "id": "p069-t0033",
      "page": 69,
      "ordinal": 33,
      "text": "）中挑选",
      "top": 237.0,
      "left": 549.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b002"
      }
    },
    {
      "id": "p069-t0035",
      "page": 69,
      "ordinal": 35,
      "text": "将要过期的数据淘汰",
      "top": 237.0,
      "left": 611.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b002"
      }
    },
    {
      "id": "p069-t0037",
      "page": 69,
      "ordinal": 37,
      "text": "3. volatile-random",
      "top": 267.0,
      "left": 129.0,
      "width": 124.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b003"
      }
    },
    {
      "id": "p069-t0038",
      "page": 69,
      "ordinal": 38,
      "text": "：从已设置过期时间的数据集（",
      "top": 267.0,
      "left": 253.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b003"
      }
    },
    {
      "id": "p069-t0039",
      "page": 69,
      "ordinal": 39,
      "text": "server.db[i].expires",
      "top": 267.0,
      "left": 458.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b003"
      }
    },
    {
      "id": "p069-t0040",
      "page": 69,
      "ordinal": 40,
      "text": "）中任",
      "top": 267.0,
      "left": 590.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b003"
      }
    },
    {
      "id": "p069-t0042",
      "page": 69,
      "ordinal": 42,
      "text": "意选择数据淘汰",
      "top": 267.0,
      "left": 637.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b003"
      }
    },
    {
      "id": "p069-t0044",
      "page": 69,
      "ordinal": 44,
      "text": "4. allkeys-lru",
      "top": 298.0,
      "left": 129.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b004"
      }
    },
    {
      "id": "p069-t0045",
      "page": 69,
      "ordinal": 45,
      "text": "：从数据集（",
      "top": 298.0,
      "left": 215.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b004"
      }
    },
    {
      "id": "p069-t0046",
      "page": 69,
      "ordinal": 46,
      "text": "server.db[i].dict",
      "top": 298.0,
      "left": 302.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b004"
      }
    },
    {
      "id": "p069-t0047",
      "page": 69,
      "ordinal": 47,
      "text": "）中挑选最近最少使用的数据淘",
      "top": 298.0,
      "left": 409.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b004"
      }
    },
    {
      "id": "p069-t0049",
      "page": 69,
      "ordinal": 49,
      "text": "汰",
      "top": 298.0,
      "left": 617.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b004"
      }
    },
    {
      "id": "p069-t0051",
      "page": 69,
      "ordinal": 51,
      "text": "5. allkeys-random",
      "top": 329.0,
      "left": 129.0,
      "width": 121.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b005"
      }
    },
    {
      "id": "p069-t0052",
      "page": 69,
      "ordinal": 52,
      "text": "：从数据集（",
      "top": 329.0,
      "left": 250.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b005"
      }
    },
    {
      "id": "p069-t0053",
      "page": 69,
      "ordinal": 53,
      "text": "server.db[i].dict",
      "top": 329.0,
      "left": 338.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b005"
      }
    },
    {
      "id": "p069-t0054",
      "page": 69,
      "ordinal": 54,
      "text": "）中任意选择数据淘汰",
      "top": 329.0,
      "left": 445.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b005"
      }
    },
    {
      "id": "p069-t0055",
      "page": 69,
      "ordinal": 55,
      "text": "6. no-enviction",
      "top": 360.0,
      "left": 129.0,
      "width": 100.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0056",
      "page": 69,
      "ordinal": 56,
      "text": "（驱逐）：禁止驱逐数据",
      "top": 360.0,
      "left": 230.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0058",
      "page": 69,
      "ordinal": 58,
      "text": "注意这里的",
      "top": 360.0,
      "left": 395.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0059",
      "page": 69,
      "ordinal": 59,
      "text": " 6 ",
      "top": 360.0,
      "left": 468.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0060",
      "page": 69,
      "ordinal": 60,
      "text": "种机制，",
      "top": 360.0,
      "left": 484.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0061",
      "page": 69,
      "ordinal": 61,
      "text": "volatile ",
      "top": 360.0,
      "left": 542.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0062",
      "page": 69,
      "ordinal": 62,
      "text": "和",
      "top": 360.0,
      "left": 595.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0063",
      "page": 69,
      "ordinal": 63,
      "text": " allkeys ",
      "top": 360.0,
      "left": 609.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0064",
      "page": 69,
      "ordinal": 64,
      "text": "规定了是对已设置",
      "top": 360.0,
      "left": 663.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0065",
      "page": 69,
      "ordinal": 65,
      "text": "过期时间的数",
      "top": 383.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0067",
      "page": 69,
      "ordinal": 67,
      "text": "据集淘汰数据还是从全部数据集淘汰数据，后面的",
      "top": 383.0,
      "left": 237.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0068",
      "page": 69,
      "ordinal": 68,
      "text": " lru",
      "top": 383.0,
      "left": 559.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0069",
      "page": 69,
      "ordinal": 69,
      "text": "、",
      "top": 383.0,
      "left": 581.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0070",
      "page": 69,
      "ordinal": 70,
      "text": "ttl ",
      "top": 383.0,
      "left": 596.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0071",
      "page": 69,
      "ordinal": 71,
      "text": "以及",
      "top": 383.0,
      "left": 614.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0072",
      "page": 69,
      "ordinal": 72,
      "text": " random ",
      "top": 383.0,
      "left": 643.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0073",
      "page": 69,
      "ordinal": 73,
      "text": "是",
      "top": 383.0,
      "left": 705.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0075",
      "page": 69,
      "ordinal": 75,
      "text": "三种不同",
      "top": 383.0,
      "left": 723.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0076",
      "page": 69,
      "ordinal": 76,
      "text": "的淘汰策略，再加上一种",
      "top": 407.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0077",
      "page": 69,
      "ordinal": 77,
      "text": " no-enviction ",
      "top": 407.0,
      "left": 306.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0078",
      "page": 69,
      "ordinal": 78,
      "text": "永不回收的策略。",
      "top": 407.0,
      "left": 398.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b006"
      }
    },
    {
      "id": "p069-t0080",
      "page": 69,
      "ordinal": 80,
      "text": "使用策略规则：",
      "top": 440.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "subheading",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b007"
      }
    },
    {
      "id": "p069-t0083",
      "page": 69,
      "ordinal": 83,
      "text": "1. ",
      "top": 491.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b008"
      }
    },
    {
      "id": "p069-t0084",
      "page": 69,
      "ordinal": 84,
      "text": "如果数据呈现幂律分布，也就是一部分数据访问频率高，一部分数据访问",
      "top": 491.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b008"
      }
    },
    {
      "id": "p069-t0086",
      "page": 69,
      "ordinal": 86,
      "text": "频率低，则使用",
      "top": 491.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b008"
      }
    },
    {
      "id": "p069-t0087",
      "page": 69,
      "ordinal": 87,
      "text": " allkeys-",
      "top": 491.0,
      "left": 720.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b008"
      }
    },
    {
      "id": "p069-t0088",
      "page": 69,
      "ordinal": 88,
      "text": "lr ",
      "top": 515.0,
      "left": 146.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b008"
      }
    },
    {
      "id": "p069-t0089",
      "page": 69,
      "ordinal": 89,
      "text": "2. ",
      "top": 545.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b009"
      }
    },
    {
      "id": "p069-t0090",
      "page": 69,
      "ordinal": 90,
      "text": "如果数据呈现平等分布，也就是所有的数据访问频率都相同，则使用",
      "top": 545.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b009"
      }
    },
    {
      "id": "p069-t0091",
      "page": 69,
      "ordinal": 91,
      "text": " allkeys-random",
      "top": 545.0,
      "left": 584.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h01",
        "heading_id": "p069-h01",
        "block_id": "q-p069-h01-b009"
      }
    },
    {
      "id": "p069-t0092",
      "page": 69,
      "ordinal": 92,
      "text": "为什么",
      "top": 580.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03"
      }
    },
    {
      "id": "p069-t0093",
      "page": 69,
      "ordinal": 93,
      "text": " Redis ",
      "top": 580.0,
      "left": 189.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03"
      }
    },
    {
      "id": "p069-t0094",
      "page": 69,
      "ordinal": 94,
      "text": "需要把所有数据放到内存中？",
      "top": 580.0,
      "left": 271.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03"
      }
    },
    {
      "id": "p069-t0097",
      "page": 69,
      "ordinal": 97,
      "text": "1. Redis ",
      "top": 631.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0098",
      "page": 69,
      "ordinal": 98,
      "text": "为了达到最快的读写速度将数据都读到内存中，并通过异步的方式",
      "top": 631.0,
      "left": 186.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0100",
      "page": 69,
      "ordinal": 100,
      "text": "将数",
      "top": 631.0,
      "left": 614.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0102",
      "page": 69,
      "ordinal": 102,
      "text": "据写入磁盘。所以",
      "top": 631.0,
      "left": 647.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0104",
      "page": 69,
      "ordinal": 104,
      "text": "Redis ",
      "top": 654.0,
      "left": 146.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0105",
      "page": 69,
      "ordinal": 105,
      "text": "具有快速和数据持久化的特征。如果不将数据放",
      "top": 654.0,
      "left": 186.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0107",
      "page": 69,
      "ordinal": 107,
      "text": "在",
      "top": 654.0,
      "left": 497.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0109",
      "page": 69,
      "ordinal": 109,
      "text": "内存中，磁盘",
      "top": 654.0,
      "left": 516.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0110",
      "page": 69,
      "ordinal": 110,
      "text": " I/O ",
      "top": 654.0,
      "left": 603.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0111",
      "page": 69,
      "ordinal": 111,
      "text": "速度为严重影响",
      "top": 654.0,
      "left": 632.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0112",
      "page": 69,
      "ordinal": 112,
      "text": " Redis ",
      "top": 654.0,
      "left": 734.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0113",
      "page": 69,
      "ordinal": 113,
      "text": "的性能。在内存越来越便宜的今",
      "top": 678.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0115",
      "page": 69,
      "ordinal": 115,
      "text": "天，",
      "top": 678.0,
      "left": 354.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0116",
      "page": 69,
      "ordinal": 116,
      "text": " Redis ",
      "top": 678.0,
      "left": 383.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0117",
      "page": 69,
      "ordinal": 117,
      "text": "将会越来越受欢迎。如果设置了最大使用的内存，则数",
      "top": 678.0,
      "left": 428.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0118",
      "page": 69,
      "ordinal": 118,
      "text": "据已有记录",
      "top": 701.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0120",
      "page": 69,
      "ordinal": 120,
      "text": "数达",
      "top": 701.0,
      "left": 222.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0122",
      "page": 69,
      "ordinal": 122,
      "text": "到内存限值后不能继续插入新值。",
      "top": 701.0,
      "left": 255.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h03",
        "heading_id": "p069-h03",
        "block_id": "q-p069-h03-b001"
      }
    },
    {
      "id": "p069-t0124",
      "page": 69,
      "ordinal": 124,
      "text": "Redis ",
      "top": 735.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04"
      }
    },
    {
      "id": "p069-t0125",
      "page": 69,
      "ordinal": 125,
      "text": "的同步机制了解么？",
      "top": 735.0,
      "left": 187.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04"
      }
    },
    {
      "id": "p069-t0128",
      "page": 69,
      "ordinal": 128,
      "text": "1. Redis ",
      "top": 786.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0129",
      "page": 69,
      "ordinal": 129,
      "text": "可以使用主从同步，从从同步。第一次同步时，主节点做一次",
      "top": 786.0,
      "left": 186.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0130",
      "page": 69,
      "ordinal": 130,
      "text": " bgsave",
      "top": 786.0,
      "left": 581.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0131",
      "page": 69,
      "ordinal": 131,
      "text": "，",
      "top": 786.0,
      "left": 632.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0133",
      "page": 69,
      "ordinal": 133,
      "text": "并同时将后续修改",
      "top": 786.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0134",
      "page": 69,
      "ordinal": 134,
      "text": "操作记录到内存",
      "top": 810.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0135",
      "page": 69,
      "ordinal": 135,
      "text": " buffer",
      "top": 810.0,
      "left": 248.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0136",
      "page": 69,
      "ordinal": 136,
      "text": "，待完成后将",
      "top": 810.0,
      "left": 294.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0137",
      "page": 69,
      "ordinal": 137,
      "text": " rdb ",
      "top": 810.0,
      "left": 381.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0138",
      "page": 69,
      "ordinal": 138,
      "text": "文件全",
      "top": 810.0,
      "left": 413.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0140",
      "page": 69,
      "ordinal": 140,
      "text": "量同步到",
      "top": 810.0,
      "left": 461.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0142",
      "page": 69,
      "ordinal": 142,
      "text": "复制节点，复制节点接受完成后将",
      "top": 810.0,
      "left": 523.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0143",
      "page": 69,
      "ordinal": 143,
      "text": " rdb ",
      "top": 810.0,
      "left": 742.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0144",
      "page": 69,
      "ordinal": 144,
      "text": "镜像加载到内存。加载完成",
      "top": 833.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0146",
      "page": 69,
      "ordinal": 146,
      "text": "后，再通",
      "top": 833.0,
      "left": 325.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0148",
      "page": 69,
      "ordinal": 148,
      "text": "知主节点将期间修改的操作记录同步到复制节点进行重放就完",
      "top": 833.0,
      "left": 387.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0149",
      "page": 69,
      "ordinal": 149,
      "text": "成了同步过程。",
      "top": 856.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h04",
        "heading_id": "p069-h04",
        "block_id": "q-p069-h04-b001"
      }
    },
    {
      "id": "p069-t0151",
      "page": 69,
      "ordinal": 151,
      "text": "Pipeline ",
      "top": 890.0,
      "left": 112.0,
      "width": 109.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05"
      }
    },
    {
      "id": "p069-t0152",
      "page": 69,
      "ordinal": 152,
      "text": "有什么好处，为什么要用",
      "top": 890.0,
      "left": 221.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05"
      }
    },
    {
      "id": "p069-t0153",
      "page": 69,
      "ordinal": 153,
      "text": " Pipeline",
      "top": 890.0,
      "left": 503.0,
      "width": 109.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05"
      }
    },
    {
      "id": "p069-t0154",
      "page": 69,
      "ordinal": 154,
      "text": "？",
      "top": 890.0,
      "left": 612.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05"
      }
    },
    {
      "id": "p069-t0157",
      "page": 69,
      "ordinal": 157,
      "text": "可以将多次",
      "top": 941.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0158",
      "page": 69,
      "ordinal": 158,
      "text": " IO ",
      "top": 941.0,
      "left": 185.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0159",
      "page": 69,
      "ordinal": 159,
      "text": "往返的时间缩减为一次，前提是",
      "top": 941.0,
      "left": 208.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0160",
      "page": 69,
      "ordinal": 160,
      "text": " pipeline ",
      "top": 941.0,
      "left": 413.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0161",
      "page": 69,
      "ordinal": 161,
      "text": "执行的指令之",
      "top": 941.0,
      "left": 475.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0163",
      "page": 69,
      "ordinal": 163,
      "text": "间没",
      "top": 941.0,
      "left": 566.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0165",
      "page": 69,
      "ordinal": 165,
      "text": "有因果相关性。使用",
      "top": 941.0,
      "left": 599.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0166",
      "page": 69,
      "ordinal": 166,
      "text": " Redis-",
      "top": 941.0,
      "left": 731.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0167",
      "page": 69,
      "ordinal": 167,
      "text": "benchmark ",
      "top": 965.0,
      "left": 112.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0168",
      "page": 69,
      "ordinal": 168,
      "text": "进行压测的时候可以发现影响",
      "top": 965.0,
      "left": 193.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0169",
      "page": 69,
      "ordinal": 169,
      "text": " Redis ",
      "top": 965.0,
      "left": 383.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0170",
      "page": 69,
      "ordinal": 170,
      "text": "的",
      "top": 965.0,
      "left": 428.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0171",
      "page": 69,
      "ordinal": 171,
      "text": " QPS ",
      "top": 965.0,
      "left": 442.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0172",
      "page": 69,
      "ordinal": 172,
      "text": "峰值的一个重要因素是",
      "top": 965.0,
      "left": 478.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0173",
      "page": 69,
      "ordinal": 173,
      "text": " pipeline ",
      "top": 965.0,
      "left": 624.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0174",
      "page": 69,
      "ordinal": 174,
      "text": "批次指令的数",
      "top": 965.0,
      "left": 686.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0175",
      "page": 69,
      "ordinal": 175,
      "text": "目。",
      "top": 989.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h05",
        "heading_id": "p069-h05",
        "block_id": "q-p069-h05-b001"
      }
    },
    {
      "id": "p069-t0177",
      "page": 69,
      "ordinal": 177,
      "text": "是否使用过",
      "top": 1023.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06"
      }
    },
    {
      "id": "p069-t0178",
      "page": 69,
      "ordinal": 178,
      "text": " Redis ",
      "top": 1023.0,
      "left": 240.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06"
      }
    },
    {
      "id": "p069-t0179",
      "page": 69,
      "ordinal": 179,
      "text": "集群，集群的原理是什么？",
      "top": 1023.0,
      "left": 322.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06"
      }
    },
    {
      "id": "p069-t0182",
      "page": 69,
      "ordinal": 182,
      "text": "1. Redis Sentinal ",
      "top": 1073.0,
      "left": 129.0,
      "width": 115.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0183",
      "page": 69,
      "ordinal": 183,
      "text": "着眼于高可用，在",
      "top": 1073.0,
      "left": 245.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0184",
      "page": 69,
      "ordinal": 184,
      "text": " master ",
      "top": 1073.0,
      "left": 362.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0185",
      "page": 69,
      "ordinal": 185,
      "text": "宕机时会自动将",
      "top": 1073.0,
      "left": 418.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0186",
      "page": 69,
      "ordinal": 186,
      "text": " slave ",
      "top": 1073.0,
      "left": 520.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0187",
      "page": 69,
      "ordinal": 187,
      "text": "提升",
      "top": 1073.0,
      "left": 562.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0189",
      "page": 69,
      "ordinal": 189,
      "text": "为",
      "top": 1073.0,
      "left": 595.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0190",
      "page": 69,
      "ordinal": 190,
      "text": " master",
      "top": 1073.0,
      "left": 610.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0191",
      "page": 69,
      "ordinal": 191,
      "text": "，继续提供服务。",
      "top": 1073.0,
      "left": 661.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b001"
      }
    },
    {
      "id": "p069-t0193",
      "page": 69,
      "ordinal": 193,
      "text": "2. Redis Cluster ",
      "top": 1104.0,
      "left": 129.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p069-t0194",
      "page": 69,
      "ordinal": 194,
      "text": "着眼于扩展性，在单个",
      "top": 1104.0,
      "left": 238.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p069-t0195",
      "page": 69,
      "ordinal": 195,
      "text": " Redis ",
      "top": 1104.0,
      "left": 384.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p069-t0196",
      "page": 69,
      "ordinal": 196,
      "text": "内存不足时，使用",
      "top": 1104.0,
      "left": 429.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p069-t0197",
      "page": 69,
      "ordinal": 197,
      "text": " Cluster ",
      "top": 1104.0,
      "left": 546.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p069-t0198",
      "page": 69,
      "ordinal": 198,
      "text": "进行分片存储。",
      "top": 1104.0,
      "left": 602.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p069-h06",
        "heading_id": "p069-h06",
        "block_id": "q-p069-h06-b002"
      }
    },
    {
      "id": "p070-t0001",
      "page": 70,
      "ordinal": 1,
      "text": "Redis ",
      "top": 40.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01"
      }
    },
    {
      "id": "p070-t0002",
      "page": 70,
      "ordinal": 2,
      "text": "集群方案什么情况下会导致整个集群不可用？",
      "top": 40.0,
      "left": 187.0,
      "width": 512.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01"
      }
    },
    {
      "id": "p070-t0005",
      "page": 70,
      "ordinal": 5,
      "text": "有",
      "top": 91.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0006",
      "page": 70,
      "ordinal": 6,
      "text": " A",
      "top": 91.0,
      "left": 126.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0007",
      "page": 70,
      "ordinal": 7,
      "text": "，",
      "top": 91.0,
      "left": 139.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0008",
      "page": 70,
      "ordinal": 8,
      "text": "B",
      "top": 91.0,
      "left": 154.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0009",
      "page": 70,
      "ordinal": 9,
      "text": "，",
      "top": 91.0,
      "left": 164.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0010",
      "page": 70,
      "ordinal": 10,
      "text": "C ",
      "top": 91.0,
      "left": 178.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0011",
      "page": 70,
      "ordinal": 11,
      "text": "三个节点的集群",
      "top": 91.0,
      "left": 191.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0012",
      "page": 70,
      "ordinal": 12,
      "text": ",",
      "top": 91.0,
      "left": 294.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0013",
      "page": 70,
      "ordinal": 13,
      "text": "在没有复制模型的情况下",
      "top": 91.0,
      "left": 297.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0014",
      "page": 70,
      "ordinal": 14,
      "text": ",",
      "top": 91.0,
      "left": 458.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0015",
      "page": 70,
      "ordinal": 15,
      "text": "如果节点",
      "top": 91.0,
      "left": 462.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0016",
      "page": 70,
      "ordinal": 16,
      "text": " B ",
      "top": 91.0,
      "left": 520.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0017",
      "page": 70,
      "ordinal": 17,
      "text": "失败了，",
      "top": 91.0,
      "left": 537.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0019",
      "page": 70,
      "ordinal": 19,
      "text": "那么整个集群就会以为缺少",
      "top": 91.0,
      "left": 599.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0021",
      "page": 70,
      "ordinal": 21,
      "text": "5501-11000 ",
      "top": 114.0,
      "left": 112.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0022",
      "page": 70,
      "ordinal": 22,
      "text": "这个范围的槽而不可用。",
      "top": 114.0,
      "left": 196.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h01",
        "heading_id": "p070-h01",
        "block_id": "q-p070-h01-b001"
      }
    },
    {
      "id": "p070-t0023",
      "page": 70,
      "ordinal": 23,
      "text": "Redis ",
      "top": 148.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02"
      }
    },
    {
      "id": "p070-t0024",
      "page": 70,
      "ordinal": 24,
      "text": "如何设置密码及验证密码？",
      "top": 148.0,
      "left": 187.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02"
      }
    },
    {
      "id": "p070-t0027",
      "page": 70,
      "ordinal": 27,
      "text": "设置密码：",
      "top": 199.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02",
        "block_id": "q-p070-h02-b001"
      }
    },
    {
      "id": "p070-t0028",
      "page": 70,
      "ordinal": 28,
      "text": "config set requirepass 123456 ",
      "top": 199.0,
      "left": 185.0,
      "width": 208.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02",
        "block_id": "q-p070-h02-b001"
      }
    },
    {
      "id": "p070-t0029",
      "page": 70,
      "ordinal": 29,
      "text": "授权密码：",
      "top": 222.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02",
        "block_id": "q-p070-h02-b001"
      }
    },
    {
      "id": "p070-t0030",
      "page": 70,
      "ordinal": 30,
      "text": "auth 123456",
      "top": 222.0,
      "left": 185.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h02",
        "heading_id": "p070-h02",
        "block_id": "q-p070-h02-b001"
      }
    },
    {
      "id": "p070-t0031",
      "page": 70,
      "ordinal": 31,
      "text": "说说",
      "top": 257.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03"
      }
    },
    {
      "id": "p070-t0032",
      "page": 70,
      "ordinal": 32,
      "text": " Redis ",
      "top": 257.0,
      "left": 163.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03"
      }
    },
    {
      "id": "p070-t0033",
      "page": 70,
      "ordinal": 33,
      "text": "哈希槽的概念？",
      "top": 257.0,
      "left": 245.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03"
      }
    },
    {
      "id": "p070-t0036",
      "page": 70,
      "ordinal": 36,
      "text": "Redis ",
      "top": 308.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0037",
      "page": 70,
      "ordinal": 37,
      "text": "集群没有使用一致性",
      "top": 308.0,
      "left": 152.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0038",
      "page": 70,
      "ordinal": 38,
      "text": " hash,",
      "top": 308.0,
      "left": 284.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0039",
      "page": 70,
      "ordinal": 39,
      "text": "而是引入了哈希槽的概念，",
      "top": 308.0,
      "left": 325.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0040",
      "page": 70,
      "ordinal": 40,
      "text": "Redis ",
      "top": 308.0,
      "left": 500.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0041",
      "page": 70,
      "ordinal": 41,
      "text": "集群",
      "top": 308.0,
      "left": 541.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0043",
      "page": 70,
      "ordinal": 43,
      "text": "有",
      "top": 308.0,
      "left": 574.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0044",
      "page": 70,
      "ordinal": 44,
      "text": " 16384 ",
      "top": 308.0,
      "left": 588.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0045",
      "page": 70,
      "ordinal": 45,
      "text": "个哈希槽，每个",
      "top": 308.0,
      "left": 638.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0046",
      "page": 70,
      "ordinal": 46,
      "text": " key ",
      "top": 308.0,
      "left": 740.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0047",
      "page": 70,
      "ordinal": 47,
      "text": "通过",
      "top": 332.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0048",
      "page": 70,
      "ordinal": 48,
      "text": " CRC16 ",
      "top": 332.0,
      "left": 141.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0049",
      "page": 70,
      "ordinal": 49,
      "text": "校验后对",
      "top": 332.0,
      "left": 193.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0050",
      "page": 70,
      "ordinal": 50,
      "text": " 16384 ",
      "top": 332.0,
      "left": 251.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0051",
      "page": 70,
      "ordinal": 51,
      "text": "取模来决定放置",
      "top": 332.0,
      "left": 301.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0053",
      "page": 70,
      "ordinal": 53,
      "text": "哪",
      "top": 332.0,
      "left": 407.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0055",
      "page": 70,
      "ordinal": 55,
      "text": "个槽，集群的每个节点负责一部分",
      "top": 332.0,
      "left": 425.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0056",
      "page": 70,
      "ordinal": 56,
      "text": " hash ",
      "top": 332.0,
      "left": 645.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0057",
      "page": 70,
      "ordinal": 57,
      "text": "槽。",
      "top": 332.0,
      "left": 685.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h03",
        "heading_id": "p070-h03",
        "block_id": "q-p070-h03-b001"
      }
    },
    {
      "id": "p070-t0059",
      "page": 70,
      "ordinal": 59,
      "text": "Redis ",
      "top": 365.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04"
      }
    },
    {
      "id": "p070-t0060",
      "page": 70,
      "ordinal": 60,
      "text": "集群的主从复制模型是怎样的？",
      "top": 365.0,
      "left": 187.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04"
      }
    },
    {
      "id": "p070-t0063",
      "page": 70,
      "ordinal": 63,
      "text": "为了使在部分节点失败或者大部分节点无法通信的情况下集群仍然可用，",
      "top": 416.0,
      "left": 112.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0065",
      "page": 70,
      "ordinal": 65,
      "text": "所以",
      "top": 416.0,
      "left": 584.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0067",
      "page": 70,
      "ordinal": 67,
      "text": "集群使用了主从复制模型",
      "top": 416.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0068",
      "page": 70,
      "ordinal": 68,
      "text": ",",
      "top": 416.0,
      "left": 777.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0069",
      "page": 70,
      "ordinal": 69,
      "text": "每个节点都会有",
      "top": 440.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0070",
      "page": 70,
      "ordinal": 70,
      "text": " N-1 ",
      "top": 440.0,
      "left": 214.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0071",
      "page": 70,
      "ordinal": 71,
      "text": "个复制品。",
      "top": 440.0,
      "left": 246.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h04",
        "heading_id": "p070-h04",
        "block_id": "q-p070-h04-b001"
      }
    },
    {
      "id": "p070-t0072",
      "page": 70,
      "ordinal": 72,
      "text": "Redis ",
      "top": 474.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05"
      }
    },
    {
      "id": "p070-t0073",
      "page": 70,
      "ordinal": 73,
      "text": "集群会有写操作丢失吗？为什么？",
      "top": 474.0,
      "left": 187.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05"
      }
    },
    {
      "id": "p070-t0076",
      "page": 70,
      "ordinal": 76,
      "text": "Redis ",
      "top": 525.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05",
        "block_id": "q-p070-h05-b001"
      }
    },
    {
      "id": "p070-t0077",
      "page": 70,
      "ordinal": 77,
      "text": "并不能保证数据的强一致性，这意味这在实际中集群在特定的条件",
      "top": 525.0,
      "left": 152.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05",
        "block_id": "q-p070-h05-b001"
      }
    },
    {
      "id": "p070-t0079",
      "page": 70,
      "ordinal": 79,
      "text": "下可",
      "top": 525.0,
      "left": 580.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05",
        "block_id": "q-p070-h05-b001"
      }
    },
    {
      "id": "p070-t0081",
      "page": 70,
      "ordinal": 81,
      "text": "能会丢失写操作。",
      "top": 525.0,
      "left": 613.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h05",
        "heading_id": "p070-h05",
        "block_id": "q-p070-h05-b001"
      }
    },
    {
      "id": "p070-t0083",
      "page": 70,
      "ordinal": 83,
      "text": "Redis ",
      "top": 559.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h06",
        "heading_id": "p070-h06"
      }
    },
    {
      "id": "p070-t0084",
      "page": 70,
      "ordinal": 84,
      "text": "集群之间是如何复制的？",
      "top": 559.0,
      "left": 187.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h06",
        "heading_id": "p070-h06"
      }
    },
    {
      "id": "p070-t0087",
      "page": 70,
      "ordinal": 87,
      "text": "异步复制",
      "top": 609.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h06",
        "heading_id": "p070-h06",
        "block_id": "q-p070-h06-b001"
      }
    },
    {
      "id": "p070-t0089",
      "page": 70,
      "ordinal": 89,
      "text": "Redis ",
      "top": 644.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h07",
        "heading_id": "p070-h07"
      }
    },
    {
      "id": "p070-t0090",
      "page": 70,
      "ordinal": 90,
      "text": "集群最大节点个数是多少？",
      "top": 644.0,
      "left": 187.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h07",
        "heading_id": "p070-h07"
      }
    },
    {
      "id": "p070-t0093",
      "page": 70,
      "ordinal": 93,
      "text": "16384 ",
      "top": 695.0,
      "left": 112.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h07",
        "heading_id": "p070-h07",
        "block_id": "q-p070-h07-b001"
      }
    },
    {
      "id": "p070-t0094",
      "page": 70,
      "ordinal": 94,
      "text": "个。",
      "top": 695.0,
      "left": 157.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h07",
        "heading_id": "p070-h07",
        "block_id": "q-p070-h07-b001"
      }
    },
    {
      "id": "p070-t0096",
      "page": 70,
      "ordinal": 96,
      "text": "Redis ",
      "top": 730.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08"
      }
    },
    {
      "id": "p070-t0097",
      "page": 70,
      "ordinal": 97,
      "text": "集群如何选择数据库？",
      "top": 730.0,
      "left": 187.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08"
      }
    },
    {
      "id": "p070-t0100",
      "page": 70,
      "ordinal": 100,
      "text": "Redis ",
      "top": 780.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08",
        "block_id": "q-p070-h08-b001"
      }
    },
    {
      "id": "p070-t0101",
      "page": 70,
      "ordinal": 101,
      "text": "集群目前无法做数据库选择，默认在",
      "top": 780.0,
      "left": 152.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08",
        "block_id": "q-p070-h08-b001"
      }
    },
    {
      "id": "p070-t0102",
      "page": 70,
      "ordinal": 102,
      "text": " 0 ",
      "top": 780.0,
      "left": 386.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08",
        "block_id": "q-p070-h08-b001"
      }
    },
    {
      "id": "p070-t0103",
      "page": 70,
      "ordinal": 103,
      "text": "数据库。",
      "top": 780.0,
      "left": 402.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h08",
        "heading_id": "p070-h08",
        "block_id": "q-p070-h08-b001"
      }
    },
    {
      "id": "p070-t0104",
      "page": 70,
      "ordinal": 104,
      "text": "怎么测试",
      "top": 814.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09"
      }
    },
    {
      "id": "p070-t0105",
      "page": 70,
      "ordinal": 105,
      "text": " Redis ",
      "top": 814.0,
      "left": 214.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09"
      }
    },
    {
      "id": "p070-t0106",
      "page": 70,
      "ordinal": 106,
      "text": "的连通性",
      "top": 814.0,
      "left": 296.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09"
      }
    },
    {
      "id": "p070-t0109",
      "page": 70,
      "ordinal": 109,
      "text": "使用",
      "top": 865.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09",
        "block_id": "q-p070-h09-b001"
      }
    },
    {
      "id": "p070-t0110",
      "page": 70,
      "ordinal": 110,
      "text": " ping ",
      "top": 865.0,
      "left": 141.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09",
        "block_id": "q-p070-h09-b001"
      }
    },
    {
      "id": "p070-t0111",
      "page": 70,
      "ordinal": 111,
      "text": "命令。",
      "top": 865.0,
      "left": 178.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h09",
        "heading_id": "p070-h09",
        "block_id": "q-p070-h09-b001"
      }
    },
    {
      "id": "p070-t0112",
      "page": 70,
      "ordinal": 112,
      "text": "怎么理解",
      "top": 899.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10"
      }
    },
    {
      "id": "p070-t0113",
      "page": 70,
      "ordinal": 113,
      "text": " Redis ",
      "top": 899.0,
      "left": 214.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10"
      }
    },
    {
      "id": "p070-t0114",
      "page": 70,
      "ordinal": 114,
      "text": "事务？",
      "top": 899.0,
      "left": 296.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10"
      }
    },
    {
      "id": "p070-t0117",
      "page": 70,
      "ordinal": 117,
      "text": "1. ",
      "top": 950.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b001"
      }
    },
    {
      "id": "p070-t0118",
      "page": 70,
      "ordinal": 118,
      "text": "事务是一个单独的隔离操作：事务中的所有命令都会序列化、按顺序地执",
      "top": 950.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b001"
      }
    },
    {
      "id": "p070-t0120",
      "page": 70,
      "ordinal": 120,
      "text": "行。事务在执行的过程",
      "top": 950.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b001"
      }
    },
    {
      "id": "p070-t0121",
      "page": 70,
      "ordinal": 121,
      "text": "中，不会被其他客户端发送来的命令请求所打断。",
      "top": 974.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b001"
      }
    },
    {
      "id": "p070-t0123",
      "page": 70,
      "ordinal": 123,
      "text": "2. ",
      "top": 1004.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b002"
      }
    },
    {
      "id": "p070-t0124",
      "page": 70,
      "ordinal": 124,
      "text": "事务是一个原子操作：事务中的命令要么全部被执行，要么全部都不执",
      "top": 1004.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b002"
      }
    },
    {
      "id": "p070-t0126",
      "page": 70,
      "ordinal": 126,
      "text": "行。",
      "top": 1004.0,
      "left": 603.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h10",
        "heading_id": "p070-h10",
        "block_id": "q-p070-h10-b002"
      }
    },
    {
      "id": "p070-t0127",
      "page": 70,
      "ordinal": 127,
      "text": "Redis ",
      "top": 1039.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11"
      }
    },
    {
      "id": "p070-t0128",
      "page": 70,
      "ordinal": 128,
      "text": "事务相关的命令有哪几个？",
      "top": 1039.0,
      "left": 187.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11"
      }
    },
    {
      "id": "p070-t0131",
      "page": 70,
      "ordinal": 131,
      "text": "MULTI",
      "top": 1090.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0132",
      "page": 70,
      "ordinal": 132,
      "text": "、",
      "top": 1090.0,
      "left": 155.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0133",
      "page": 70,
      "ordinal": 133,
      "text": "EXEC",
      "top": 1090.0,
      "left": 170.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0134",
      "page": 70,
      "ordinal": 134,
      "text": "、",
      "top": 1090.0,
      "left": 204.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0135",
      "page": 70,
      "ordinal": 135,
      "text": "DISCARD",
      "top": 1090.0,
      "left": 219.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0136",
      "page": 70,
      "ordinal": 136,
      "text": "、",
      "top": 1090.0,
      "left": 279.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0137",
      "page": 70,
      "ordinal": 137,
      "text": "WATCH ",
      "top": 1090.0,
      "left": 294.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h11",
        "heading_id": "p070-h11",
        "block_id": "q-p070-h11-b001"
      }
    },
    {
      "id": "p070-t0138",
      "page": 70,
      "ordinal": 138,
      "text": "Redis key ",
      "top": 1124.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12"
      }
    },
    {
      "id": "p070-t0139",
      "page": 70,
      "ordinal": 139,
      "text": "的过期时间和永久有效分别怎么设置？",
      "top": 1124.0,
      "left": 239.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12"
      }
    },
    {
      "id": "p070-t0142",
      "page": 70,
      "ordinal": 142,
      "text": "EXPIRE ",
      "top": 1174.0,
      "left": 112.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12",
        "block_id": "q-p070-h12-b001"
      }
    },
    {
      "id": "p070-t0143",
      "page": 70,
      "ordinal": 143,
      "text": "和",
      "top": 1174.0,
      "left": 162.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12",
        "block_id": "q-p070-h12-b001"
      }
    },
    {
      "id": "p070-t0144",
      "page": 70,
      "ordinal": 144,
      "text": " PERSIST ",
      "top": 1174.0,
      "left": 177.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12",
        "block_id": "q-p070-h12-b001"
      }
    },
    {
      "id": "p070-t0145",
      "page": 70,
      "ordinal": 145,
      "text": "命令。",
      "top": 1174.0,
      "left": 239.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p070-h12",
        "heading_id": "p070-h12",
        "block_id": "q-p070-h12-b001"
      }
    },
    {
      "id": "p071-t0001",
      "page": 71,
      "ordinal": 1,
      "text": "Redis ",
      "top": 40.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01"
      }
    },
    {
      "id": "p071-t0002",
      "page": 71,
      "ordinal": 2,
      "text": "如何做内存优化？",
      "top": 40.0,
      "left": 187.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01"
      }
    },
    {
      "id": "p071-t0005",
      "page": 71,
      "ordinal": 5,
      "text": "尽可能使用散列表（",
      "top": 91.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0006",
      "page": 71,
      "ordinal": 6,
      "text": "hashes",
      "top": 91.0,
      "left": 243.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0007",
      "page": 71,
      "ordinal": 7,
      "text": "），散列表（是说散列表里面存储的数少）使用的",
      "top": 91.0,
      "left": 292.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0009",
      "page": 71,
      "ordinal": 9,
      "text": "内存非常小，所以你应该",
      "top": 91.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0010",
      "page": 71,
      "ordinal": 10,
      "text": "尽可能的将你的数据模型抽象到一个散列表里面。比",
      "top": 114.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0012",
      "page": 71,
      "ordinal": 12,
      "text": "如你的",
      "top": 114.0,
      "left": 452.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0013",
      "page": 71,
      "ordinal": 13,
      "text": " web ",
      "top": 114.0,
      "left": 496.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0014",
      "page": 71,
      "ordinal": 14,
      "text": "系统中有一个用户对象，不要为这个用",
      "top": 114.0,
      "left": 532.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0015",
      "page": 71,
      "ordinal": 15,
      "text": "户的名称，姓氏，邮箱，密",
      "top": 137.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0017",
      "page": 71,
      "ordinal": 17,
      "text": "码设置单独的",
      "top": 137.0,
      "left": 291.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0018",
      "page": 71,
      "ordinal": 18,
      "text": " key,",
      "top": 137.0,
      "left": 379.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0019",
      "page": 71,
      "ordinal": 19,
      "text": "而是应该把这个用户的所有信息存储到一张散列表里面。",
      "top": 137.0,
      "left": 409.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h01",
        "heading_id": "p071-h01",
        "block_id": "q-p071-h01-b001"
      }
    },
    {
      "id": "p071-t0021",
      "page": 71,
      "ordinal": 21,
      "text": "Redis ",
      "top": 172.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02"
      }
    },
    {
      "id": "p071-t0022",
      "page": 71,
      "ordinal": 22,
      "text": "回收进程如何工作的？",
      "top": 172.0,
      "left": 187.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02"
      }
    },
    {
      "id": "p071-t0025",
      "page": 71,
      "ordinal": 25,
      "text": "一个客户端运行了新的命令，添加了新的数据。",
      "top": 222.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0026",
      "page": 71,
      "ordinal": 26,
      "text": "Redi ",
      "top": 222.0,
      "left": 419.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0027",
      "page": 71,
      "ordinal": 27,
      "text": "检查内存使用情况，",
      "top": 222.0,
      "left": 453.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0029",
      "page": 71,
      "ordinal": 29,
      "text": "如",
      "top": 222.0,
      "left": 588.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0031",
      "page": 71,
      "ordinal": 31,
      "text": "果大于",
      "top": 222.0,
      "left": 606.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0032",
      "page": 71,
      "ordinal": 32,
      "text": " maxmemory ",
      "top": 222.0,
      "left": 650.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0033",
      "page": 71,
      "ordinal": 33,
      "text": "的限",
      "top": 222.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0034",
      "page": 71,
      "ordinal": 34,
      "text": "制",
      "top": 246.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0035",
      "page": 71,
      "ordinal": 35,
      "text": ", ",
      "top": 246.0,
      "left": 126.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0036",
      "page": 71,
      "ordinal": 36,
      "text": "则根据设定好的策略进行回收。一个新的命令被",
      "top": 246.0,
      "left": 134.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0038",
      "page": 71,
      "ordinal": 38,
      "text": "执",
      "top": 246.0,
      "left": 445.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0040",
      "page": 71,
      "ordinal": 40,
      "text": "行，等等。所以我们不断地穿越内存限制的边",
      "top": 246.0,
      "left": 463.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0041",
      "page": 71,
      "ordinal": 41,
      "text": "界，通过不断达到边界然后不",
      "top": 270.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0043",
      "page": 71,
      "ordinal": 43,
      "text": "断",
      "top": 270.0,
      "left": 306.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0045",
      "page": 71,
      "ordinal": 45,
      "text": "地回收回到边界以下。如果一个命令的结果导致大量内存被使用（例如",
      "top": 270.0,
      "left": 324.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0046",
      "page": 71,
      "ordinal": 46,
      "text": "很大",
      "top": 293.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0048",
      "page": 71,
      "ordinal": 48,
      "text": "的",
      "top": 293.0,
      "left": 145.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0050",
      "page": 71,
      "ordinal": 50,
      "text": "集合的交集保存到一个新的键），不用多久内存限制就会被这个内存使用量超",
      "top": 293.0,
      "left": 163.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0052",
      "page": 71,
      "ordinal": 52,
      "text": "越。",
      "top": 293.0,
      "left": 664.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h02",
        "heading_id": "p071-h02",
        "block_id": "q-p071-h02-b001"
      }
    },
    {
      "id": "p071-t0053",
      "page": 71,
      "ordinal": 53,
      "text": "都有哪些办法可以降低",
      "top": 327.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03"
      }
    },
    {
      "id": "p071-t0054",
      "page": 71,
      "ordinal": 54,
      "text": " Redis ",
      "top": 327.0,
      "left": 368.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03"
      }
    },
    {
      "id": "p071-t0055",
      "page": 71,
      "ordinal": 55,
      "text": "的内存使用情况呢？",
      "top": 327.0,
      "left": 450.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03"
      }
    },
    {
      "id": "p071-t0058",
      "page": 71,
      "ordinal": 58,
      "text": "如果你使用的是",
      "top": 378.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0059",
      "page": 71,
      "ordinal": 59,
      "text": " 32 ",
      "top": 378.0,
      "left": 214.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0060",
      "page": 71,
      "ordinal": 60,
      "text": "位的",
      "top": 378.0,
      "left": 238.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0061",
      "page": 71,
      "ordinal": 61,
      "text": " Redis ",
      "top": 378.0,
      "left": 268.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0062",
      "page": 71,
      "ordinal": 62,
      "text": "实例，可以好好利用",
      "top": 378.0,
      "left": 312.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0063",
      "page": 71,
      "ordinal": 63,
      "text": " Hash,list,sorted set,set ",
      "top": 378.0,
      "left": 444.0,
      "width": 161.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0064",
      "page": 71,
      "ordinal": 64,
      "text": "等集合类型数据，因为通常",
      "top": 378.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0065",
      "page": 71,
      "ordinal": 65,
      "text": "情况下很多小的",
      "top": 401.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0066",
      "page": 71,
      "ordinal": 66,
      "text": " Key-Value ",
      "top": 401.0,
      "left": 214.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0067",
      "page": 71,
      "ordinal": 67,
      "text": "可以用更紧凑",
      "top": 401.0,
      "left": 289.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0069",
      "page": 71,
      "ordinal": 69,
      "text": "的方式存放到一起。",
      "top": 401.0,
      "left": 380.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h03",
        "heading_id": "p071-h03",
        "block_id": "q-p071-h03-b001"
      }
    },
    {
      "id": "p071-t0071",
      "page": 71,
      "ordinal": 71,
      "text": "Redis ",
      "top": 436.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04"
      }
    },
    {
      "id": "p071-t0072",
      "page": 71,
      "ordinal": 72,
      "text": "的内存用完了会发生什么？",
      "top": 436.0,
      "left": 187.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04"
      }
    },
    {
      "id": "p071-t0075",
      "page": 71,
      "ordinal": 75,
      "text": "如果达到设置的上限，",
      "top": 487.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0076",
      "page": 71,
      "ordinal": 76,
      "text": "Redis ",
      "top": 487.0,
      "left": 258.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0077",
      "page": 71,
      "ordinal": 77,
      "text": "的写命令会返回错误信息（但是读命令还可",
      "top": 487.0,
      "left": 299.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0079",
      "page": 71,
      "ordinal": 79,
      "text": "以正",
      "top": 487.0,
      "left": 580.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0081",
      "page": 71,
      "ordinal": 81,
      "text": "常返回。）或者你可以将",
      "top": 487.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0083",
      "page": 71,
      "ordinal": 83,
      "text": "Redis ",
      "top": 509.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0084",
      "page": 71,
      "ordinal": 84,
      "text": "当缓存来使用配置淘汰机制，当",
      "top": 509.0,
      "left": 152.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0085",
      "page": 71,
      "ordinal": 85,
      "text": " Redis ",
      "top": 509.0,
      "left": 357.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0086",
      "page": 71,
      "ordinal": 86,
      "text": "达到",
      "top": 509.0,
      "left": 402.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0088",
      "page": 71,
      "ordinal": 88,
      "text": "内存上限时会冲刷掉旧的内容。",
      "top": 509.0,
      "left": 435.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h04",
        "heading_id": "p071-h04",
        "block_id": "q-p071-h04-b001"
      }
    },
    {
      "id": "p071-t0090",
      "page": 71,
      "ordinal": 90,
      "text": "一个",
      "top": 544.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05"
      }
    },
    {
      "id": "p071-t0091",
      "page": 71,
      "ordinal": 91,
      "text": " Redis ",
      "top": 544.0,
      "left": 163.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05"
      }
    },
    {
      "id": "p071-t0092",
      "page": 71,
      "ordinal": 92,
      "text": "实例最多能存放多少的",
      "top": 544.0,
      "left": 245.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05"
      }
    },
    {
      "id": "p071-t0093",
      "page": 71,
      "ordinal": 93,
      "text": " keys",
      "top": 544.0,
      "left": 501.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05"
      }
    },
    {
      "id": "p071-t0094",
      "page": 71,
      "ordinal": 94,
      "text": "？",
      "top": 544.0,
      "left": 566.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05"
      }
    },
    {
      "id": "p071-t0097",
      "page": 71,
      "ordinal": 97,
      "text": "List",
      "top": 595.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0098",
      "page": 71,
      "ordinal": 98,
      "text": "、",
      "top": 595.0,
      "left": 135.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0099",
      "page": 71,
      "ordinal": 99,
      "text": "Set",
      "top": 595.0,
      "left": 150.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0100",
      "page": 71,
      "ordinal": 100,
      "text": "、",
      "top": 595.0,
      "left": 171.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0101",
      "page": 71,
      "ordinal": 101,
      "text": " Sorted Set ",
      "top": 595.0,
      "left": 186.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0102",
      "page": 71,
      "ordinal": 102,
      "text": "他们最多能存放多少元素？",
      "top": 595.0,
      "left": 264.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0104",
      "page": 71,
      "ordinal": 104,
      "text": "理论上",
      "top": 595.0,
      "left": 443.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0105",
      "page": 71,
      "ordinal": 105,
      "text": " Redis ",
      "top": 595.0,
      "left": 487.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0106",
      "page": 71,
      "ordinal": 106,
      "text": "可以处理多达",
      "top": 595.0,
      "left": 531.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0107",
      "page": 71,
      "ordinal": 107,
      "text": " 2",
      "top": 595.0,
      "left": 619.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0108",
      "page": 71,
      "ordinal": 108,
      "text": "的",
      "top": 595.0,
      "left": 631.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0109",
      "page": 71,
      "ordinal": 109,
      "text": "32",
      "top": 595.0,
      "left": 646.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0110",
      "page": 71,
      "ordinal": 110,
      "text": "次方",
      "top": 595.0,
      "left": 663.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0112",
      "page": 71,
      "ordinal": 112,
      "text": "的",
      "top": 595.0,
      "left": 696.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0113",
      "page": 71,
      "ordinal": 113,
      "text": " keys",
      "top": 595.0,
      "left": 710.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0114",
      "page": 71,
      "ordinal": 114,
      "text": "，并",
      "top": 595.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0115",
      "page": 71,
      "ordinal": 115,
      "text": "且在实际中进行了测试，每个实",
      "top": 618.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0117",
      "page": 71,
      "ordinal": 117,
      "text": "例至少存放了",
      "top": 618.0,
      "left": 320.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0118",
      "page": 71,
      "ordinal": 118,
      "text": " 2 ",
      "top": 618.0,
      "left": 408.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0119",
      "page": 71,
      "ordinal": 119,
      "text": "亿",
      "top": 618.0,
      "left": 424.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0120",
      "page": 71,
      "ordinal": 120,
      "text": " 5 ",
      "top": 618.0,
      "left": 439.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0121",
      "page": 71,
      "ordinal": 121,
      "text": "千万的",
      "top": 618.0,
      "left": 455.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0122",
      "page": 71,
      "ordinal": 122,
      "text": " keys",
      "top": 618.0,
      "left": 498.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0123",
      "page": 71,
      "ordinal": 123,
      "text": "。我们正在测试一些较大的值。任何",
      "top": 618.0,
      "left": 532.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0125",
      "page": 71,
      "ordinal": 125,
      "text": "list",
      "top": 642.0,
      "left": 112.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0126",
      "page": 71,
      "ordinal": 126,
      "text": "、",
      "top": 642.0,
      "left": 131.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0127",
      "page": 71,
      "ordinal": 127,
      "text": " set",
      "top": 642.0,
      "left": 146.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0128",
      "page": 71,
      "ordinal": 128,
      "text": "、和",
      "top": 642.0,
      "left": 170.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0129",
      "page": 71,
      "ordinal": 129,
      "text": " sorted set ",
      "top": 642.0,
      "left": 199.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0130",
      "page": 71,
      "ordinal": 130,
      "text": "都可以放",
      "top": 642.0,
      "left": 275.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0131",
      "page": 71,
      "ordinal": 131,
      "text": " 232 ",
      "top": 642.0,
      "left": 334.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0132",
      "page": 71,
      "ordinal": 132,
      "text": "个元素。换句话说，",
      "top": 642.0,
      "left": 366.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0133",
      "page": 71,
      "ordinal": 133,
      "text": "Redis ",
      "top": 642.0,
      "left": 498.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0134",
      "page": 71,
      "ordinal": 134,
      "text": "的存储极限是",
      "top": 642.0,
      "left": 539.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0136",
      "page": 71,
      "ordinal": 136,
      "text": "系统中的可用内存值。",
      "top": 642.0,
      "left": 630.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h05",
        "heading_id": "p071-h05",
        "block_id": "q-p071-h05-b001"
      }
    },
    {
      "id": "p071-t0138",
      "page": 71,
      "ordinal": 138,
      "text": "MySQL ",
      "top": 676.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0139",
      "page": 71,
      "ordinal": 139,
      "text": "里有",
      "top": 676.0,
      "left": 206.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0140",
      "page": 71,
      "ordinal": 140,
      "text": " 2000w ",
      "top": 676.0,
      "left": 257.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0141",
      "page": 71,
      "ordinal": 141,
      "text": "数据，",
      "top": 676.0,
      "left": 351.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0142",
      "page": 71,
      "ordinal": 142,
      "text": "Redis ",
      "top": 676.0,
      "left": 428.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0143",
      "page": 71,
      "ordinal": 143,
      "text": "中只存",
      "top": 676.0,
      "left": 503.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0144",
      "page": 71,
      "ordinal": 144,
      "text": " 20w ",
      "top": 676.0,
      "left": 580.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0145",
      "page": 71,
      "ordinal": 145,
      "text": "的数据，如",
      "top": 676.0,
      "left": 644.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0147",
      "page": 71,
      "ordinal": 147,
      "text": "何保证",
      "top": 707.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0148",
      "page": 71,
      "ordinal": 148,
      "text": " Redis ",
      "top": 707.0,
      "left": 189.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0149",
      "page": 71,
      "ordinal": 149,
      "text": "中的数据都是热点数据？",
      "top": 707.0,
      "left": 271.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06"
      }
    },
    {
      "id": "p071-t0151",
      "page": 71,
      "ordinal": 151,
      "text": "Redis ",
      "top": 758.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0152",
      "page": 71,
      "ordinal": 152,
      "text": "内存数据集大小上升",
      "top": 758.0,
      "left": 152.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0154",
      "page": 71,
      "ordinal": 154,
      "text": "到一定大小的时候，就会施行数据淘汰策略。",
      "top": 758.0,
      "left": 288.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0156",
      "page": 71,
      "ordinal": 156,
      "text": "相关知识：",
      "top": 758.0,
      "left": 584.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0157",
      "page": 71,
      "ordinal": 157,
      "text": "Redis ",
      "top": 758.0,
      "left": 657.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0158",
      "page": 71,
      "ordinal": 158,
      "text": "提供",
      "top": 758.0,
      "left": 698.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0159",
      "page": 71,
      "ordinal": 159,
      "text": " 6 ",
      "top": 758.0,
      "left": 727.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0160",
      "page": 71,
      "ordinal": 160,
      "text": "种数",
      "top": 758.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0161",
      "page": 71,
      "ordinal": 161,
      "text": "据淘汰策略：",
      "top": 782.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0163",
      "page": 71,
      "ordinal": 163,
      "text": "volatile-lru",
      "top": 805.0,
      "left": 112.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0164",
      "page": 71,
      "ordinal": 164,
      "text": "：从已设置过期时间的数据集（",
      "top": 805.0,
      "left": 184.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0165",
      "page": 71,
      "ordinal": 165,
      "text": "server.db[i].expires",
      "top": 805.0,
      "left": 389.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0166",
      "page": 71,
      "ordinal": 166,
      "text": "）中挑选",
      "top": 805.0,
      "left": 520.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0168",
      "page": 71,
      "ordinal": 168,
      "text": "最近最少使用的数据淘汰",
      "top": 805.0,
      "left": 582.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0170",
      "page": 71,
      "ordinal": 170,
      "text": "volatile-ttl",
      "top": 829.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0171",
      "page": 71,
      "ordinal": 171,
      "text": "：从已设置过期时间的数据集（",
      "top": 829.0,
      "left": 179.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0172",
      "page": 71,
      "ordinal": 172,
      "text": "server.db[i].expires",
      "top": 829.0,
      "left": 384.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0173",
      "page": 71,
      "ordinal": 173,
      "text": "）中挑选",
      "top": 829.0,
      "left": 515.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0175",
      "page": 71,
      "ordinal": 175,
      "text": "将要过期的数据淘汰",
      "top": 829.0,
      "left": 578.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0177",
      "page": 71,
      "ordinal": 177,
      "text": "volatile-random",
      "top": 851.0,
      "left": 112.0,
      "width": 108.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0178",
      "page": 71,
      "ordinal": 178,
      "text": "：从已设置过期时间的数据集（",
      "top": 851.0,
      "left": 220.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0179",
      "page": 71,
      "ordinal": 179,
      "text": "server.db[i].expires",
      "top": 851.0,
      "left": 424.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0180",
      "page": 71,
      "ordinal": 180,
      "text": "）中任",
      "top": 851.0,
      "left": 556.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0182",
      "page": 71,
      "ordinal": 182,
      "text": "意选择数据淘汰",
      "top": 851.0,
      "left": 603.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0184",
      "page": 71,
      "ordinal": 184,
      "text": "allkeys-lru",
      "top": 875.0,
      "left": 112.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0185",
      "page": 71,
      "ordinal": 185,
      "text": "：从数据集（",
      "top": 875.0,
      "left": 181.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0186",
      "page": 71,
      "ordinal": 186,
      "text": "server.db[i].dict",
      "top": 875.0,
      "left": 269.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0187",
      "page": 71,
      "ordinal": 187,
      "text": "）中挑选最近最少使用的数据淘",
      "top": 875.0,
      "left": 375.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0189",
      "page": 71,
      "ordinal": 189,
      "text": "汰",
      "top": 875.0,
      "left": 584.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0191",
      "page": 71,
      "ordinal": 191,
      "text": "allkeys-random",
      "top": 899.0,
      "left": 112.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0192",
      "page": 71,
      "ordinal": 192,
      "text": "：从数据集（",
      "top": 899.0,
      "left": 217.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0193",
      "page": 71,
      "ordinal": 193,
      "text": "server.db[i].dict",
      "top": 899.0,
      "left": 304.0,
      "width": 106.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0194",
      "page": 71,
      "ordinal": 194,
      "text": "）中任意选择数据淘汰",
      "top": 899.0,
      "left": 411.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0196",
      "page": 71,
      "ordinal": 196,
      "text": "no-enviction",
      "top": 922.0,
      "left": 112.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0197",
      "page": 71,
      "ordinal": 197,
      "text": "（驱逐）：禁止驱逐数据",
      "top": 922.0,
      "left": 196.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h06",
        "heading_id": "p071-h06",
        "block_id": "q-p071-h06-b001"
      }
    },
    {
      "id": "p071-t0199",
      "page": 71,
      "ordinal": 199,
      "text": "Redis ",
      "top": 957.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07"
      }
    },
    {
      "id": "p071-t0200",
      "page": 71,
      "ordinal": 200,
      "text": "最适合的场景？",
      "top": 957.0,
      "left": 187.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07"
      }
    },
    {
      "id": "p071-t0202",
      "page": 71,
      "ordinal": 202,
      "text": "1. ",
      "top": 1007.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0203",
      "page": 71,
      "ordinal": 203,
      "text": "会话缓存（",
      "top": 1007.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0204",
      "page": 71,
      "ordinal": 204,
      "text": "Session Cache",
      "top": 1007.0,
      "left": 219.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0205",
      "page": 71,
      "ordinal": 205,
      "text": "）",
      "top": 1007.0,
      "left": 316.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0207",
      "page": 71,
      "ordinal": 207,
      "text": "最常用的一种使用",
      "top": 1007.0,
      "left": 334.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0208",
      "page": 71,
      "ordinal": 208,
      "text": " Redis ",
      "top": 1007.0,
      "left": 451.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0209",
      "page": 71,
      "ordinal": 209,
      "text": "的情景是会话缓存（",
      "top": 1007.0,
      "left": 496.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0210",
      "page": 71,
      "ordinal": 210,
      "text": "session cache",
      "top": 1007.0,
      "left": 627.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0211",
      "page": 71,
      "ordinal": 211,
      "text": "）。用",
      "top": 1007.0,
      "left": 721.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0213",
      "page": 71,
      "ordinal": 213,
      "text": "Redis ",
      "top": 1030.0,
      "left": 146.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0214",
      "page": 71,
      "ordinal": 214,
      "text": "缓",
      "top": 1030.0,
      "left": 186.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0216",
      "page": 71,
      "ordinal": 216,
      "text": "存会话比其他存储（如",
      "top": 1030.0,
      "left": 205.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0217",
      "page": 71,
      "ordinal": 217,
      "text": " Memcached",
      "top": 1030.0,
      "left": 351.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0218",
      "page": 71,
      "ordinal": 218,
      "text": "）的优势在于：",
      "top": 1030.0,
      "left": 438.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0219",
      "page": 71,
      "ordinal": 219,
      "text": "Redis ",
      "top": 1030.0,
      "left": 540.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0220",
      "page": 71,
      "ordinal": 220,
      "text": "提供持久化。当维护",
      "top": 1030.0,
      "left": 581.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0222",
      "page": 71,
      "ordinal": 222,
      "text": "一个不是",
      "top": 1030.0,
      "left": 716.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0223",
      "page": 71,
      "ordinal": 223,
      "text": "严格要求一致性的缓存时，如果用户的购物车信息全部丢失，大部分",
      "top": 1054.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0225",
      "page": 71,
      "ordinal": 225,
      "text": "人都会不高兴的，现在，他们",
      "top": 1054.0,
      "left": 588.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0226",
      "page": 71,
      "ordinal": 226,
      "text": "还会这样吗？",
      "top": 1077.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0228",
      "page": 71,
      "ordinal": 228,
      "text": "幸运的是，随着",
      "top": 1077.0,
      "left": 237.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0229",
      "page": 71,
      "ordinal": 229,
      "text": " Redis ",
      "top": 1077.0,
      "left": 339.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0230",
      "page": 71,
      "ordinal": 230,
      "text": "这些年的",
      "top": 1077.0,
      "left": 384.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0232",
      "page": 71,
      "ordinal": 232,
      "text": "改进，很容易找到怎么恰当的使用",
      "top": 1077.0,
      "left": 446.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0233",
      "page": 71,
      "ordinal": 233,
      "text": " Redis ",
      "top": 1077.0,
      "left": 666.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0234",
      "page": 71,
      "ordinal": 234,
      "text": "来缓存会",
      "top": 1077.0,
      "left": 710.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0235",
      "page": 71,
      "ordinal": 235,
      "text": "话的文档。甚至广为人知的",
      "top": 1101.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0237",
      "page": 71,
      "ordinal": 237,
      "text": "商业平台",
      "top": 1101.0,
      "left": 325.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0238",
      "page": 71,
      "ordinal": 238,
      "text": " Magento ",
      "top": 1101.0,
      "left": 383.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0239",
      "page": 71,
      "ordinal": 239,
      "text": "也提供",
      "top": 1101.0,
      "left": 451.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0240",
      "page": 71,
      "ordinal": 240,
      "text": " Redis ",
      "top": 1101.0,
      "left": 495.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p071-t0241",
      "page": 71,
      "ordinal": 241,
      "text": "的插件。",
      "top": 1101.0,
      "left": 540.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b001"
      }
    },
    {
      "id": "p072-t0001",
      "page": 72,
      "ordinal": 1,
      "text": "2. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0002",
      "page": 72,
      "ordinal": 2,
      "text": "全页缓存（",
      "top": 44.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0003",
      "page": 72,
      "ordinal": 3,
      "text": "FPC",
      "top": 44.0,
      "left": 219.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0004",
      "page": 72,
      "ordinal": 4,
      "text": "）",
      "top": 44.0,
      "left": 244.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0006",
      "page": 72,
      "ordinal": 6,
      "text": "除基本的会话",
      "top": 44.0,
      "left": 263.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0007",
      "page": 72,
      "ordinal": 7,
      "text": " token ",
      "top": 44.0,
      "left": 350.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0008",
      "page": 72,
      "ordinal": 8,
      "text": "之外，",
      "top": 44.0,
      "left": 397.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0009",
      "page": 72,
      "ordinal": 9,
      "text": "Redis ",
      "top": 44.0,
      "left": 441.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0010",
      "page": 72,
      "ordinal": 10,
      "text": "还提供很简便的",
      "top": 44.0,
      "left": 481.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0011",
      "page": 72,
      "ordinal": 11,
      "text": " FPC ",
      "top": 44.0,
      "left": 584.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0012",
      "page": 72,
      "ordinal": 12,
      "text": "平台。回到一致性问",
      "top": 44.0,
      "left": 617.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0014",
      "page": 72,
      "ordinal": 14,
      "text": "题，",
      "top": 44.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0015",
      "page": 72,
      "ordinal": 15,
      "text": "即使重启了",
      "top": 67.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0016",
      "page": 72,
      "ordinal": 16,
      "text": " Redis ",
      "top": 67.0,
      "left": 219.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0017",
      "page": 72,
      "ordinal": 17,
      "text": "实例，因为有磁盘的持久化，用户也不会看到页面加载",
      "top": 67.0,
      "left": 263.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0019",
      "page": 72,
      "ordinal": 19,
      "text": "速度的下降，这是一个极",
      "top": 67.0,
      "left": 618.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0020",
      "page": 72,
      "ordinal": 20,
      "text": "大改进，类似",
      "top": 91.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0021",
      "page": 72,
      "ordinal": 21,
      "text": " PHP ",
      "top": 91.0,
      "left": 233.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0022",
      "page": 72,
      "ordinal": 22,
      "text": "本地",
      "top": 91.0,
      "left": 269.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0023",
      "page": 72,
      "ordinal": 23,
      "text": " FPC",
      "top": 91.0,
      "left": 298.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0024",
      "page": 72,
      "ordinal": 24,
      "text": "。",
      "top": 91.0,
      "left": 328.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0026",
      "page": 72,
      "ordinal": 26,
      "text": "再次以",
      "top": 91.0,
      "left": 346.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0027",
      "page": 72,
      "ordinal": 27,
      "text": " Magento ",
      "top": 91.0,
      "left": 390.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0028",
      "page": 72,
      "ordinal": 28,
      "text": "为",
      "top": 91.0,
      "left": 458.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0030",
      "page": 72,
      "ordinal": 30,
      "text": "例，",
      "top": 91.0,
      "left": 477.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0031",
      "page": 72,
      "ordinal": 31,
      "text": "Magento ",
      "top": 91.0,
      "left": 506.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0032",
      "page": 72,
      "ordinal": 32,
      "text": "提供一个插件来使用",
      "top": 91.0,
      "left": 570.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0033",
      "page": 72,
      "ordinal": 33,
      "text": " Redis ",
      "top": 91.0,
      "left": 702.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0034",
      "page": 72,
      "ordinal": 34,
      "text": "作为",
      "top": 91.0,
      "left": 746.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0035",
      "page": 72,
      "ordinal": 35,
      "text": "全页缓存后端。",
      "top": 113.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0037",
      "page": 72,
      "ordinal": 37,
      "text": "此外，对",
      "top": 113.0,
      "left": 252.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0038",
      "page": 72,
      "ordinal": 38,
      "text": " WordPress ",
      "top": 113.0,
      "left": 310.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0039",
      "page": 72,
      "ordinal": 39,
      "text": "的用户来说，",
      "top": 113.0,
      "left": 392.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0040",
      "page": 72,
      "ordinal": 40,
      "text": "Pantheon ",
      "top": 113.0,
      "left": 480.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0041",
      "page": 72,
      "ordinal": 41,
      "text": "有一个非常好的插件",
      "top": 113.0,
      "left": 550.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0042",
      "page": 72,
      "ordinal": 42,
      "text": " wp-redis",
      "top": 113.0,
      "left": 681.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0043",
      "page": 72,
      "ordinal": 43,
      "text": "，这",
      "top": 113.0,
      "left": 744.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0044",
      "page": 72,
      "ordinal": 44,
      "text": "个插件",
      "top": 137.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0046",
      "page": 72,
      "ordinal": 46,
      "text": "能帮助你以最快速度加载你曾浏览过的页面。",
      "top": 137.0,
      "left": 193.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b002"
      }
    },
    {
      "id": "p072-t0048",
      "page": 72,
      "ordinal": 48,
      "text": "3. ",
      "top": 167.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0049",
      "page": 72,
      "ordinal": 49,
      "text": "队列",
      "top": 167.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0050",
      "page": 72,
      "ordinal": 50,
      "text": " Redis ",
      "top": 167.0,
      "left": 175.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0051",
      "page": 72,
      "ordinal": 51,
      "text": "在内存存储引擎领域的一大优点是提供",
      "top": 167.0,
      "left": 219.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0052",
      "page": 72,
      "ordinal": 52,
      "text": " list ",
      "top": 167.0,
      "left": 468.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0053",
      "page": 72,
      "ordinal": 53,
      "text": "和",
      "top": 167.0,
      "left": 495.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0054",
      "page": 72,
      "ordinal": 54,
      "text": " set ",
      "top": 167.0,
      "left": 510.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0055",
      "page": 72,
      "ordinal": 55,
      "text": "操作，这使得",
      "top": 167.0,
      "left": 538.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0056",
      "page": 72,
      "ordinal": 56,
      "text": " Redis ",
      "top": 167.0,
      "left": 625.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0057",
      "page": 72,
      "ordinal": 57,
      "text": "能作为一个很好",
      "top": 167.0,
      "left": 670.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0058",
      "page": 72,
      "ordinal": 58,
      "text": "的消息队列平台来使用。",
      "top": 191.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0059",
      "page": 72,
      "ordinal": 59,
      "text": "Redis ",
      "top": 191.0,
      "left": 306.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0060",
      "page": 72,
      "ordinal": 60,
      "text": "作为队列使用的操作，",
      "top": 191.0,
      "left": 347.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0062",
      "page": 72,
      "ordinal": 62,
      "text": "就类似于本地程序语言（如",
      "top": 191.0,
      "left": 497.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0063",
      "page": 72,
      "ordinal": 63,
      "text": " Python",
      "top": 191.0,
      "left": 673.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0064",
      "page": 72,
      "ordinal": 64,
      "text": "）对",
      "top": 191.0,
      "left": 725.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0065",
      "page": 72,
      "ordinal": 65,
      "text": " list ",
      "top": 191.0,
      "left": 754.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0066",
      "page": 72,
      "ordinal": 66,
      "text": "的",
      "top": 215.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0067",
      "page": 72,
      "ordinal": 67,
      "text": " push/pop ",
      "top": 215.0,
      "left": 160.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0068",
      "page": 72,
      "ordinal": 68,
      "text": "操作。",
      "top": 215.0,
      "left": 234.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0070",
      "page": 72,
      "ordinal": 70,
      "text": "如果你快",
      "top": 215.0,
      "left": 281.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0072",
      "page": 72,
      "ordinal": 72,
      "text": "速的在",
      "top": 215.0,
      "left": 344.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0073",
      "page": 72,
      "ordinal": 73,
      "text": " Google ",
      "top": 215.0,
      "left": 388.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0074",
      "page": 72,
      "ordinal": 74,
      "text": "中搜索",
      "top": 215.0,
      "left": 443.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0075",
      "page": 72,
      "ordinal": 75,
      "text": "“Redis queues”",
      "top": 215.0,
      "left": 487.0,
      "width": 101.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0076",
      "page": 72,
      "ordinal": 76,
      "text": "，你马上就能找到大量的开源",
      "top": 215.0,
      "left": 589.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0077",
      "page": 72,
      "ordinal": 77,
      "text": "项目，",
      "top": 238.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0079",
      "page": 72,
      "ordinal": 79,
      "text": "这些项目的目的就是利用",
      "top": 238.0,
      "left": 193.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0080",
      "page": 72,
      "ordinal": 80,
      "text": " Redis ",
      "top": 238.0,
      "left": 354.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0081",
      "page": 72,
      "ordinal": 81,
      "text": "创建非常好的后端工具，以满足各种队列需",
      "top": 238.0,
      "left": 399.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0083",
      "page": 72,
      "ordinal": 83,
      "text": "求。例如，",
      "top": 238.0,
      "left": 680.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0084",
      "page": 72,
      "ordinal": 84,
      "text": "Celery ",
      "top": 262.0,
      "left": 146.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0085",
      "page": 72,
      "ordinal": 85,
      "text": "有一个后台就是使用",
      "top": 262.0,
      "left": 192.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0086",
      "page": 72,
      "ordinal": 86,
      "text": " Redis ",
      "top": 262.0,
      "left": 324.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0087",
      "page": 72,
      "ordinal": 87,
      "text": "作为",
      "top": 262.0,
      "left": 368.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0088",
      "page": 72,
      "ordinal": 88,
      "text": " broker",
      "top": 262.0,
      "left": 397.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0089",
      "page": 72,
      "ordinal": 89,
      "text": "，你可以从这里去",
      "top": 262.0,
      "left": 447.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0091",
      "page": 72,
      "ordinal": 91,
      "text": "查看。",
      "top": 262.0,
      "left": 568.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b003"
      }
    },
    {
      "id": "p072-t0093",
      "page": 72,
      "ordinal": 93,
      "text": "4. ",
      "top": 292.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0094",
      "page": 72,
      "ordinal": 94,
      "text": "排行榜",
      "top": 292.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0095",
      "page": 72,
      "ordinal": 95,
      "text": "/",
      "top": 292.0,
      "left": 189.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0096",
      "page": 72,
      "ordinal": 96,
      "text": "计数器",
      "top": 292.0,
      "left": 195.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0097",
      "page": 72,
      "ordinal": 97,
      "text": " Redis ",
      "top": 292.0,
      "left": 239.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0098",
      "page": 72,
      "ordinal": 98,
      "text": "在内存中对数字进行递增或递减的操作实现的非常好。集合（",
      "top": 292.0,
      "left": 283.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0099",
      "page": 72,
      "ordinal": 99,
      "text": "Set",
      "top": 292.0,
      "left": 678.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0100",
      "page": 72,
      "ordinal": 100,
      "text": "）和有",
      "top": 292.0,
      "left": 699.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0102",
      "page": 72,
      "ordinal": 102,
      "text": "序集",
      "top": 292.0,
      "left": 747.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0103",
      "page": 72,
      "ordinal": 103,
      "text": "合（",
      "top": 316.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0104",
      "page": 72,
      "ordinal": 104,
      "text": "Sorted Set",
      "top": 316.0,
      "left": 175.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0105",
      "page": 72,
      "ordinal": 105,
      "text": "）也使得我们在执行这些操作的时候变的非常简单，",
      "top": 316.0,
      "left": 245.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0106",
      "page": 72,
      "ordinal": 106,
      "text": "Redis ",
      "top": 316.0,
      "left": 581.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0107",
      "page": 72,
      "ordinal": 107,
      "text": "只是正好提供了这两种",
      "top": 316.0,
      "left": 622.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0108",
      "page": 72,
      "ordinal": 108,
      "text": "数据结构。所以，我们要从排序集合中获取到排名最靠",
      "top": 339.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0110",
      "page": 72,
      "ordinal": 110,
      "text": "前的",
      "top": 339.0,
      "left": 500.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0111",
      "page": 72,
      "ordinal": 111,
      "text": " 10 ",
      "top": 339.0,
      "left": 530.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0112",
      "page": 72,
      "ordinal": 112,
      "text": "个用户",
      "top": 339.0,
      "left": 554.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0113",
      "page": 72,
      "ordinal": 113,
      "text": "–",
      "top": 339.0,
      "left": 598.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0114",
      "page": 72,
      "ordinal": 114,
      "text": "我们称之为",
      "top": 339.0,
      "left": 605.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0115",
      "page": 72,
      "ordinal": 115,
      "text": "“user_scores”",
      "top": 362.0,
      "left": 146.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0116",
      "page": 72,
      "ordinal": 116,
      "text": "，我们只需要像下面一样执行即",
      "top": 362.0,
      "left": 236.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0118",
      "page": 72,
      "ordinal": 118,
      "text": "可：",
      "top": 362.0,
      "left": 445.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0120",
      "page": 72,
      "ordinal": 120,
      "text": "当然，这是假定你是根据你用户的分数做递增",
      "top": 362.0,
      "left": 478.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0121",
      "page": 72,
      "ordinal": 121,
      "text": "的排序。如果你想返回用户",
      "top": 386.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0123",
      "page": 72,
      "ordinal": 123,
      "text": "及用户的分数，你需要这样执行：",
      "top": 386.0,
      "left": 325.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0124",
      "page": 72,
      "ordinal": 124,
      "text": " ZRANGE user_scores 0 10 ",
      "top": 386.0,
      "left": 544.0,
      "width": 181.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0125",
      "page": 72,
      "ordinal": 125,
      "text": "WITHSCORES Agora Games ",
      "top": 409.0,
      "left": 146.0,
      "width": 190.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0126",
      "page": 72,
      "ordinal": 126,
      "text": "就是一个很好的例子，用",
      "top": 409.0,
      "left": 335.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0127",
      "page": 72,
      "ordinal": 127,
      "text": " Ruby ",
      "top": 409.0,
      "left": 496.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0128",
      "page": 72,
      "ordinal": 128,
      "text": "实现的，它的排行榜就是使用",
      "top": 409.0,
      "left": 538.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0129",
      "page": 72,
      "ordinal": 129,
      "text": " Redis ",
      "top": 409.0,
      "left": 728.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0130",
      "page": 72,
      "ordinal": 130,
      "text": "来存储数据的，你可以在这里看到。",
      "top": 433.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b004"
      }
    },
    {
      "id": "p072-t0132",
      "page": 72,
      "ordinal": 132,
      "text": "5. ",
      "top": 463.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0133",
      "page": 72,
      "ordinal": 133,
      "text": "发布",
      "top": 463.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0134",
      "page": 72,
      "ordinal": 134,
      "text": "/",
      "top": 463.0,
      "left": 175.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0135",
      "page": 72,
      "ordinal": 135,
      "text": "订阅",
      "top": 463.0,
      "left": 180.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0137",
      "page": 72,
      "ordinal": 137,
      "text": "最后（但肯定不是最不重要的）是",
      "top": 463.0,
      "left": 213.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0138",
      "page": 72,
      "ordinal": 138,
      "text": " Redis ",
      "top": 463.0,
      "left": 433.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0139",
      "page": 72,
      "ordinal": 139,
      "text": "的发布",
      "top": 463.0,
      "left": 477.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0140",
      "page": 72,
      "ordinal": 140,
      "text": "/",
      "top": 463.0,
      "left": 521.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0141",
      "page": 72,
      "ordinal": 141,
      "text": "订阅功能。发布",
      "top": 463.0,
      "left": 526.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0142",
      "page": 72,
      "ordinal": 142,
      "text": "/",
      "top": 463.0,
      "left": 629.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0143",
      "page": 72,
      "ordinal": 143,
      "text": "订阅的使用",
      "top": 463.0,
      "left": 634.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0145",
      "page": 72,
      "ordinal": 145,
      "text": "场景确实",
      "top": 463.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0146",
      "page": 72,
      "ordinal": 146,
      "text": "非常多。我已看见人们在社交网络连接中使用，还可作为基于发布",
      "top": 487.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0147",
      "page": 72,
      "ordinal": 147,
      "text": "/",
      "top": 487.0,
      "left": 570.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0148",
      "page": 72,
      "ordinal": 148,
      "text": "订",
      "top": 487.0,
      "left": 575.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0150",
      "page": 72,
      "ordinal": 150,
      "text": "阅的脚本触发器，甚至用",
      "top": 487.0,
      "left": 593.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0152",
      "page": 72,
      "ordinal": 152,
      "text": "Redis ",
      "top": 510.0,
      "left": 146.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0153",
      "page": 72,
      "ordinal": 153,
      "text": "的发布",
      "top": 510.0,
      "left": 186.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0154",
      "page": 72,
      "ordinal": 154,
      "text": "/",
      "top": 510.0,
      "left": 230.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0155",
      "page": 72,
      "ordinal": 155,
      "text": "订阅功能来建立聊天系统！",
      "top": 510.0,
      "left": 235.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p071-h07",
        "heading_id": "p071-h07",
        "block_id": "q-p071-h07-b005"
      }
    },
    {
      "id": "p072-t0156",
      "page": 72,
      "ordinal": 156,
      "text": "假如",
      "top": 544.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0157",
      "page": 72,
      "ordinal": 157,
      "text": " Redis ",
      "top": 544.0,
      "left": 163.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0158",
      "page": 72,
      "ordinal": 158,
      "text": "里面有",
      "top": 544.0,
      "left": 245.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0159",
      "page": 72,
      "ordinal": 159,
      "text": " 1 ",
      "top": 544.0,
      "left": 322.0,
      "width": 28.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0160",
      "page": 72,
      "ordinal": 160,
      "text": "亿个",
      "top": 544.0,
      "left": 350.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0161",
      "page": 72,
      "ordinal": 161,
      "text": " key",
      "top": 544.0,
      "left": 401.0,
      "width": 52.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0162",
      "page": 72,
      "ordinal": 162,
      "text": "，其中有",
      "top": 544.0,
      "left": 453.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0163",
      "page": 72,
      "ordinal": 163,
      "text": " 10w ",
      "top": 544.0,
      "left": 555.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0164",
      "page": 72,
      "ordinal": 164,
      "text": "个",
      "top": 544.0,
      "left": 620.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0165",
      "page": 72,
      "ordinal": 165,
      "text": " key ",
      "top": 544.0,
      "left": 645.0,
      "width": 59.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0166",
      "page": 72,
      "ordinal": 166,
      "text": "是以某",
      "top": 544.0,
      "left": 704.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [
        "af://n1301"
      ],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0168",
      "page": 72,
      "ordinal": 168,
      "text": "个固定的已知的前缀开头的，如果将它们全部找出来？",
      "top": 575.0,
      "left": 112.0,
      "width": 614.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01"
      }
    },
    {
      "id": "p072-t0171",
      "page": 72,
      "ordinal": 171,
      "text": "使用",
      "top": 626.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0172",
      "page": 72,
      "ordinal": 172,
      "text": " keys ",
      "top": 626.0,
      "left": 141.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0173",
      "page": 72,
      "ordinal": 173,
      "text": "指令可以扫出指定模式的",
      "top": 626.0,
      "left": 179.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0174",
      "page": 72,
      "ordinal": 174,
      "text": " key ",
      "top": 626.0,
      "left": 340.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0175",
      "page": 72,
      "ordinal": 175,
      "text": "列表。",
      "top": 626.0,
      "left": 371.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0177",
      "page": 72,
      "ordinal": 177,
      "text": "对方接着追问：如果这个",
      "top": 626.0,
      "left": 418.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0178",
      "page": 72,
      "ordinal": 178,
      "text": " Redis ",
      "top": 626.0,
      "left": 579.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0179",
      "page": 72,
      "ordinal": 179,
      "text": "正在给线上的业务提供",
      "top": 626.0,
      "left": 624.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0180",
      "page": 72,
      "ordinal": 180,
      "text": "服务，那使用",
      "top": 650.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0181",
      "page": 72,
      "ordinal": 181,
      "text": " keys ",
      "top": 650.0,
      "left": 200.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0182",
      "page": 72,
      "ordinal": 182,
      "text": "指",
      "top": 650.0,
      "left": 237.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0184",
      "page": 72,
      "ordinal": 184,
      "text": "令会有什么问题？",
      "top": 650.0,
      "left": 256.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0186",
      "page": 72,
      "ordinal": 186,
      "text": "这个时候你要回答",
      "top": 650.0,
      "left": 377.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0187",
      "page": 72,
      "ordinal": 187,
      "text": " Redis ",
      "top": 650.0,
      "left": 494.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0188",
      "page": 72,
      "ordinal": 188,
      "text": "关键的一个特性：",
      "top": 650.0,
      "left": 538.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0189",
      "page": 72,
      "ordinal": 189,
      "text": "Redis ",
      "top": 650.0,
      "left": 655.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0190",
      "page": 72,
      "ordinal": 190,
      "text": "的单线程",
      "top": 650.0,
      "left": 696.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0191",
      "page": 72,
      "ordinal": 191,
      "text": "的。",
      "top": 674.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0192",
      "page": 72,
      "ordinal": 192,
      "text": "keys ",
      "top": 674.0,
      "left": 141.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0193",
      "page": 72,
      "ordinal": 193,
      "text": "指令会",
      "top": 674.0,
      "left": 175.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0195",
      "page": 72,
      "ordinal": 195,
      "text": "导致线程阻塞一段时间，线上服务会停顿，直到指令执行完毕，服务才能恢",
      "top": 674.0,
      "left": 223.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0197",
      "page": 72,
      "ordinal": 197,
      "text": "复。这个时",
      "top": 674.0,
      "left": 709.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0198",
      "page": 72,
      "ordinal": 198,
      "text": "候可以使用",
      "top": 697.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0199",
      "page": 72,
      "ordinal": 199,
      "text": " scan ",
      "top": 697.0,
      "left": 185.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0200",
      "page": 72,
      "ordinal": 200,
      "text": "指令，",
      "top": 697.0,
      "left": 224.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0201",
      "page": 72,
      "ordinal": 201,
      "text": "scan ",
      "top": 697.0,
      "left": 267.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0202",
      "page": 72,
      "ordinal": 202,
      "text": "指令可以无阻塞的提取出指定模式的",
      "top": 697.0,
      "left": 302.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0203",
      "page": 72,
      "ordinal": 203,
      "text": " 70 key ",
      "top": 697.0,
      "left": 536.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0204",
      "page": 72,
      "ordinal": 204,
      "text": "列表，但是会有一定的重复概",
      "top": 697.0,
      "left": 588.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0205",
      "page": 72,
      "ordinal": 205,
      "text": "率，在客户端做一次去重就可以了，但是整",
      "top": 720.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0207",
      "page": 72,
      "ordinal": 207,
      "text": "体所花费的时间会比直接用",
      "top": 720.0,
      "left": 393.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0208",
      "page": 72,
      "ordinal": 208,
      "text": " keys ",
      "top": 720.0,
      "left": 569.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0209",
      "page": 72,
      "ordinal": 209,
      "text": "指令长。",
      "top": 720.0,
      "left": 607.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h01",
        "heading_id": "p072-h01",
        "block_id": "q-p072-h01-b001"
      }
    },
    {
      "id": "p072-t0210",
      "page": 72,
      "ordinal": 210,
      "text": "如果有大量的",
      "top": 754.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02"
      }
    },
    {
      "id": "p072-t0211",
      "page": 72,
      "ordinal": 211,
      "text": " key ",
      "top": 754.0,
      "left": 265.0,
      "width": 59.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02"
      }
    },
    {
      "id": "p072-t0212",
      "page": 72,
      "ordinal": 212,
      "text": "需要设置同一时间过期，一般需要注意",
      "top": 754.0,
      "left": 324.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02"
      }
    },
    {
      "id": "p072-t0213",
      "page": 72,
      "ordinal": 213,
      "text": "什",
      "top": 786.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02"
      }
    },
    {
      "id": "p072-t0215",
      "page": 72,
      "ordinal": 215,
      "text": "么？",
      "top": 786.0,
      "left": 144.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02"
      }
    },
    {
      "id": "p072-t0218",
      "page": 72,
      "ordinal": 218,
      "text": "如果大量的",
      "top": 837.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0219",
      "page": 72,
      "ordinal": 219,
      "text": " key ",
      "top": 837.0,
      "left": 185.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0220",
      "page": 72,
      "ordinal": 220,
      "text": "过期时间设置的过于集中，到过期的那个时间点，",
      "top": 837.0,
      "left": 216.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0221",
      "page": 72,
      "ordinal": 221,
      "text": "Redis ",
      "top": 837.0,
      "left": 537.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0222",
      "page": 72,
      "ordinal": 222,
      "text": "可能",
      "top": 837.0,
      "left": 578.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0224",
      "page": 72,
      "ordinal": 224,
      "text": "会出现短暂的卡顿现象。",
      "top": 837.0,
      "left": 611.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0225",
      "page": 72,
      "ordinal": 225,
      "text": "一般需要在时间上加一个随机值，使得过期时间",
      "top": 860.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0227",
      "page": 72,
      "ordinal": 227,
      "text": "分散",
      "top": 860.0,
      "left": 423.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0229",
      "page": 72,
      "ordinal": 229,
      "text": "一些。",
      "top": 860.0,
      "left": 456.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h02",
        "heading_id": "p072-h02",
        "block_id": "q-p072-h02-b001"
      }
    },
    {
      "id": "p072-t0230",
      "page": 72,
      "ordinal": 230,
      "text": "使用过",
      "top": 894.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03"
      }
    },
    {
      "id": "p072-t0231",
      "page": 72,
      "ordinal": 231,
      "text": " Redis ",
      "top": 894.0,
      "left": 189.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03"
      }
    },
    {
      "id": "p072-t0232",
      "page": 72,
      "ordinal": 232,
      "text": "做异步队列么，你是怎么用的？",
      "top": 894.0,
      "left": 271.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03"
      }
    },
    {
      "id": "p072-t0235",
      "page": 72,
      "ordinal": 235,
      "text": "一般使用",
      "top": 945.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0236",
      "page": 72,
      "ordinal": 236,
      "text": " list ",
      "top": 945.0,
      "left": 170.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0237",
      "page": 72,
      "ordinal": 237,
      "text": "结构作为队列，",
      "top": 945.0,
      "left": 197.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0238",
      "page": 72,
      "ordinal": 238,
      "text": "rpush ",
      "top": 945.0,
      "left": 300.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0239",
      "page": 72,
      "ordinal": 239,
      "text": "生产消息，",
      "top": 945.0,
      "left": 343.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0240",
      "page": 72,
      "ordinal": 240,
      "text": "lpop ",
      "top": 945.0,
      "left": 417.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0241",
      "page": 72,
      "ordinal": 241,
      "text": "消费消息。当",
      "top": 945.0,
      "left": 451.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0242",
      "page": 72,
      "ordinal": 242,
      "text": " lpop ",
      "top": 945.0,
      "left": 539.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0243",
      "page": 72,
      "ordinal": 243,
      "text": "没",
      "top": 945.0,
      "left": 577.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0245",
      "page": 72,
      "ordinal": 245,
      "text": "有消息的时候，要适当",
      "top": 945.0,
      "left": 595.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0246",
      "page": 72,
      "ordinal": 246,
      "text": " sleep ",
      "top": 945.0,
      "left": 741.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0247",
      "page": 72,
      "ordinal": 247,
      "text": "一会再重试。",
      "top": 968.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0249",
      "page": 72,
      "ordinal": 249,
      "text": "如果对方追问可不可以不",
      "top": 992.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0251",
      "page": 72,
      "ordinal": 251,
      "text": "用",
      "top": 992.0,
      "left": 276.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0252",
      "page": 72,
      "ordinal": 252,
      "text": " sleep ",
      "top": 992.0,
      "left": 291.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0253",
      "page": 72,
      "ordinal": 253,
      "text": "呢？",
      "top": 992.0,
      "left": 335.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0255",
      "page": 72,
      "ordinal": 255,
      "text": "list ",
      "top": 1016.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0256",
      "page": 72,
      "ordinal": 256,
      "text": "还有个指令叫",
      "top": 1016.0,
      "left": 135.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0257",
      "page": 72,
      "ordinal": 257,
      "text": " blpop",
      "top": 1016.0,
      "left": 223.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0258",
      "page": 72,
      "ordinal": 258,
      "text": "，在没有消息的时候，它会阻塞住直",
      "top": 1016.0,
      "left": 266.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0260",
      "page": 72,
      "ordinal": 260,
      "text": "到消息到来。",
      "top": 1016.0,
      "left": 504.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0262",
      "page": 72,
      "ordinal": 262,
      "text": "如果对方追问能不能生产一次消费多次呢？",
      "top": 1039.0,
      "left": 116.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0264",
      "page": 72,
      "ordinal": 264,
      "text": "使用",
      "top": 1062.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0265",
      "page": 72,
      "ordinal": 265,
      "text": " pub/sub ",
      "top": 1062.0,
      "left": 141.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0266",
      "page": 72,
      "ordinal": 266,
      "text": "主题订",
      "top": 1062.0,
      "left": 206.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0268",
      "page": 72,
      "ordinal": 268,
      "text": "阅者模式，可以实现",
      "top": 1062.0,
      "left": 253.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0269",
      "page": 72,
      "ordinal": 269,
      "text": " 1:N ",
      "top": 1062.0,
      "left": 385.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0270",
      "page": 72,
      "ordinal": 270,
      "text": "的消息队列。",
      "top": 1062.0,
      "left": 416.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0272",
      "page": 72,
      "ordinal": 272,
      "text": "如果对方追问",
      "top": 1085.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0273",
      "page": 72,
      "ordinal": 273,
      "text": " pub/sub ",
      "top": 1085.0,
      "left": 200.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0274",
      "page": 72,
      "ordinal": 274,
      "text": "有什么缺点？",
      "top": 1085.0,
      "left": 264.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0276",
      "page": 72,
      "ordinal": 276,
      "text": "在消费者下线的情况下，生产的消息会丢失，得使用专业的消息队列如",
      "top": 1109.0,
      "left": 112.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0277",
      "page": 72,
      "ordinal": 277,
      "text": " RabbitMQ ",
      "top": 1109.0,
      "left": 565.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0278",
      "page": 72,
      "ordinal": 278,
      "text": "等。",
      "top": 1109.0,
      "left": 641.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0280",
      "page": 72,
      "ordinal": 280,
      "text": "如果对方追问",
      "top": 1133.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0281",
      "page": 72,
      "ordinal": 281,
      "text": " Redis ",
      "top": 1133.0,
      "left": 200.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0282",
      "page": 72,
      "ordinal": 282,
      "text": "如何实现延时队列？",
      "top": 1133.0,
      "left": 244.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0284",
      "page": 72,
      "ordinal": 284,
      "text": "使用",
      "top": 1155.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0285",
      "page": 72,
      "ordinal": 285,
      "text": " sortedset",
      "top": 1155.0,
      "left": 141.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0286",
      "page": 72,
      "ordinal": 286,
      "text": "，拿时间",
      "top": 1155.0,
      "left": 209.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0288",
      "page": 72,
      "ordinal": 288,
      "text": "戳作为",
      "top": 1155.0,
      "left": 272.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0289",
      "page": 72,
      "ordinal": 289,
      "text": " score",
      "top": 1155.0,
      "left": 315.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0290",
      "page": 72,
      "ordinal": 290,
      "text": "，消息内容作为",
      "top": 1155.0,
      "left": 356.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0291",
      "page": 72,
      "ordinal": 291,
      "text": " key ",
      "top": 1155.0,
      "left": 459.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0292",
      "page": 72,
      "ordinal": 292,
      "text": "调用",
      "top": 1155.0,
      "left": 489.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0293",
      "page": 72,
      "ordinal": 293,
      "text": " zadd ",
      "top": 1155.0,
      "left": 519.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0294",
      "page": 72,
      "ordinal": 294,
      "text": "来生产消息，消费者用",
      "top": 1155.0,
      "left": 559.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0296",
      "page": 72,
      "ordinal": 296,
      "text": "zrangebyscore ",
      "top": 1179.0,
      "left": 112.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0297",
      "page": 72,
      "ordinal": 297,
      "text": "指令获取",
      "top": 1179.0,
      "left": 215.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0298",
      "page": 72,
      "ordinal": 298,
      "text": " N ",
      "top": 1179.0,
      "left": 273.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p072-t0299",
      "page": 72,
      "ordinal": 299,
      "text": "秒之前的数据轮询进行处理。",
      "top": 1179.0,
      "left": 292.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p072-h03",
        "heading_id": "p072-h03",
        "block_id": "q-p072-h03-b001"
      }
    },
    {
      "id": "p073-t0001",
      "page": 73,
      "ordinal": 1,
      "text": "使用过",
      "top": 40.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01"
      }
    },
    {
      "id": "p073-t0002",
      "page": 73,
      "ordinal": 2,
      "text": " Redis ",
      "top": 40.0,
      "left": 189.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01"
      }
    },
    {
      "id": "p073-t0003",
      "page": 73,
      "ordinal": 3,
      "text": "分布式锁么，它是什么回事",
      "top": 40.0,
      "left": 271.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01"
      }
    },
    {
      "id": "p073-t0005",
      "page": 73,
      "ordinal": 5,
      "text": "先拿",
      "top": 40.0,
      "left": 584.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01"
      }
    },
    {
      "id": "p073-t0008",
      "page": 73,
      "ordinal": 8,
      "text": "setnx ",
      "top": 91.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0009",
      "page": 73,
      "ordinal": 9,
      "text": "来争抢锁，抢到之后，再用",
      "top": 91.0,
      "left": 153.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0010",
      "page": 73,
      "ordinal": 10,
      "text": " expire ",
      "top": 91.0,
      "left": 328.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0011",
      "page": 73,
      "ordinal": 11,
      "text": "给锁加一个过期时间防止锁忘",
      "top": 91.0,
      "left": 378.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0013",
      "page": 73,
      "ordinal": 13,
      "text": "记了释放。",
      "top": 91.0,
      "left": 572.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0015",
      "page": 73,
      "ordinal": 15,
      "text": "这时候对方会告诉你",
      "top": 91.0,
      "left": 649.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0016",
      "page": 73,
      "ordinal": 16,
      "text": "说你回答得不错，然后接着问如果在",
      "top": 114.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0017",
      "page": 73,
      "ordinal": 17,
      "text": " setnx ",
      "top": 114.0,
      "left": 346.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0018",
      "page": 73,
      "ordinal": 18,
      "text": "之后执行",
      "top": 114.0,
      "left": 390.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0019",
      "page": 73,
      "ordinal": 19,
      "text": " expire ",
      "top": 114.0,
      "left": 449.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0020",
      "page": 73,
      "ordinal": 20,
      "text": "之前进程意外",
      "top": 114.0,
      "left": 499.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0021",
      "page": 73,
      "ordinal": 21,
      "text": " crash ",
      "top": 114.0,
      "left": 587.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0022",
      "page": 73,
      "ordinal": 22,
      "text": "或者要重启维护了，那",
      "top": 114.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0023",
      "page": 73,
      "ordinal": 23,
      "text": "会怎么样？可以同时把",
      "top": 137.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0024",
      "page": 73,
      "ordinal": 24,
      "text": " setnx ",
      "top": 137.0,
      "left": 258.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0025",
      "page": 73,
      "ordinal": 25,
      "text": "和",
      "top": 137.0,
      "left": 303.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0026",
      "page": 73,
      "ordinal": 26,
      "text": " expire ",
      "top": 137.0,
      "left": 317.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0027",
      "page": 73,
      "ordinal": 27,
      "text": "合成一条指令来用的！",
      "top": 137.0,
      "left": 368.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p073-h01",
        "heading_id": "p073-h01",
        "block_id": "q-p073-h01-b001"
      }
    },
    {
      "id": "p073-t0028",
      "page": 73,
      "ordinal": 28,
      "text": "mysql",
      "top": 171.0,
      "left": 112.0,
      "width": 98.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h02"
      }
    },
    {
      "id": "p073-t0030",
      "page": 73,
      "ordinal": 30,
      "text": "据库三大范式是什么",
      "top": 227.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03"
      }
    },
    {
      "id": "p073-t0033",
      "page": 73,
      "ordinal": 33,
      "text": "1. ",
      "top": 278.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b001"
      }
    },
    {
      "id": "p073-t0034",
      "page": 73,
      "ordinal": 34,
      "text": "第一范式：每个列都不可以再拆分。",
      "top": 278.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b001"
      }
    },
    {
      "id": "p073-t0036",
      "page": 73,
      "ordinal": 36,
      "text": "2. ",
      "top": 309.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b002"
      }
    },
    {
      "id": "p073-t0037",
      "page": 73,
      "ordinal": 37,
      "text": "第二范式：在第一范式的基础上，非主键列完全依赖于主键，而不能是依",
      "top": 309.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b002"
      }
    },
    {
      "id": "p073-t0039",
      "page": 73,
      "ordinal": 39,
      "text": "赖于主键的一部分。",
      "top": 309.0,
      "left": 617.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b002"
      }
    },
    {
      "id": "p073-t0040",
      "page": 73,
      "ordinal": 40,
      "text": "3. ",
      "top": 339.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0041",
      "page": 73,
      "ordinal": 41,
      "text": "第三范式：在第二范式的基础上，非主键列只依赖于主键，不依赖于其他",
      "top": 339.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0043",
      "page": 73,
      "ordinal": 43,
      "text": "非主键。",
      "top": 339.0,
      "left": 617.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0045",
      "page": 73,
      "ordinal": 45,
      "text": "在设计数据库结",
      "top": 339.0,
      "left": 680.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0046",
      "page": 73,
      "ordinal": 46,
      "text": "构的时候，要尽量遵守三范式，如果不遵守，必须有足够",
      "top": 363.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0048",
      "page": 73,
      "ordinal": 48,
      "text": "的理由。比如性能。事实上我们经常会为",
      "top": 363.0,
      "left": 515.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0049",
      "page": 73,
      "ordinal": 49,
      "text": "了性能而妥协数据库的设计。",
      "top": 386.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h03",
        "heading_id": "p073-h03",
        "block_id": "q-p073-h03-b003"
      }
    },
    {
      "id": "p073-t0051",
      "page": 73,
      "ordinal": 51,
      "text": "MySQL ",
      "top": 420.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04"
      }
    },
    {
      "id": "p073-t0052",
      "page": 73,
      "ordinal": 52,
      "text": "有关权限的表都有哪几个？",
      "top": 420.0,
      "left": 206.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04"
      }
    },
    {
      "id": "p073-t0055",
      "page": 73,
      "ordinal": 55,
      "text": "MySQL ",
      "top": 471.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0056",
      "page": 73,
      "ordinal": 56,
      "text": "服务器通过权限表来控制用户对数据库的访问，权限表存放在",
      "top": 471.0,
      "left": 163.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0057",
      "page": 73,
      "ordinal": 57,
      "text": " MySQL ",
      "top": 471.0,
      "left": 558.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0058",
      "page": 73,
      "ordinal": 58,
      "text": "数",
      "top": 471.0,
      "left": 613.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0060",
      "page": 73,
      "ordinal": 60,
      "text": "据库里，由",
      "top": 471.0,
      "left": 632.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0062",
      "page": 73,
      "ordinal": 62,
      "text": "mysql_install_db ",
      "top": 495.0,
      "left": 112.0,
      "width": 116.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0063",
      "page": 73,
      "ordinal": 63,
      "text": "脚本初始化。这些权限表分别",
      "top": 495.0,
      "left": 228.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0064",
      "page": 73,
      "ordinal": 64,
      "text": " user",
      "top": 495.0,
      "left": 418.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0065",
      "page": 73,
      "ordinal": 65,
      "text": "，",
      "top": 495.0,
      "left": 452.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0066",
      "page": 73,
      "ordinal": 66,
      "text": "db",
      "top": 495.0,
      "left": 466.0,
      "width": 18.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0067",
      "page": 73,
      "ordinal": 67,
      "text": "，",
      "top": 495.0,
      "left": 484.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0068",
      "page": 73,
      "ordinal": 68,
      "text": " table_priv",
      "top": 495.0,
      "left": 499.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0069",
      "page": 73,
      "ordinal": 69,
      "text": "，",
      "top": 495.0,
      "left": 569.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0070",
      "page": 73,
      "ordinal": 70,
      "text": "columns_priv ",
      "top": 495.0,
      "left": 584.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0071",
      "page": 73,
      "ordinal": 71,
      "text": "和",
      "top": 495.0,
      "left": 678.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0072",
      "page": 73,
      "ordinal": 72,
      "text": " host",
      "top": 495.0,
      "left": 693.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0073",
      "page": 73,
      "ordinal": 73,
      "text": "。下面",
      "top": 495.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0074",
      "page": 73,
      "ordinal": 74,
      "text": "分别介绍一下这些表的结构和内容：",
      "top": 518.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b001"
      }
    },
    {
      "id": "p073-t0076",
      "page": 73,
      "ordinal": 76,
      "text": "1. user ",
      "top": 553.0,
      "left": 129.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b002"
      }
    },
    {
      "id": "p073-t0077",
      "page": 73,
      "ordinal": 77,
      "text": "权限表：记录允许连接到服务器的用户帐号信息，里面的权限是全局",
      "top": 553.0,
      "left": 179.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b002"
      }
    },
    {
      "id": "p073-t0079",
      "page": 73,
      "ordinal": 79,
      "text": "级的。",
      "top": 553.0,
      "left": 622.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b002"
      }
    },
    {
      "id": "p073-t0081",
      "page": 73,
      "ordinal": 81,
      "text": "2. db ",
      "top": 584.0,
      "left": 129.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b003"
      }
    },
    {
      "id": "p073-t0082",
      "page": 73,
      "ordinal": 82,
      "text": "权限表：记录各个帐号在各个数据库上的操作权限。",
      "top": 584.0,
      "left": 167.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b003"
      }
    },
    {
      "id": "p073-t0084",
      "page": 73,
      "ordinal": 84,
      "text": "3. table_priv ",
      "top": 614.0,
      "left": 129.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b004"
      }
    },
    {
      "id": "p073-t0085",
      "page": 73,
      "ordinal": 85,
      "text": "权限表：记录数据表级的操作权限。",
      "top": 614.0,
      "left": 216.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b004"
      }
    },
    {
      "id": "p073-t0087",
      "page": 73,
      "ordinal": 87,
      "text": "4. columns_priv ",
      "top": 645.0,
      "left": 129.0,
      "width": 110.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b005"
      }
    },
    {
      "id": "p073-t0088",
      "page": 73,
      "ordinal": 88,
      "text": "权限表：记录数据列级的操作权限。",
      "top": 645.0,
      "left": 240.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b005"
      }
    },
    {
      "id": "p073-t0090",
      "page": 73,
      "ordinal": 90,
      "text": "5. host ",
      "top": 676.0,
      "left": 129.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0091",
      "page": 73,
      "ordinal": 91,
      "text": "权限表：配合",
      "top": 676.0,
      "left": 179.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0092",
      "page": 73,
      "ordinal": 92,
      "text": " db ",
      "top": 676.0,
      "left": 267.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0093",
      "page": 73,
      "ordinal": 93,
      "text": "权限表对给定主机上数据库级操作权限作更细致的控",
      "top": 676.0,
      "left": 293.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0095",
      "page": 73,
      "ordinal": 95,
      "text": "制。这个权限表不受",
      "top": 676.0,
      "left": 633.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0097",
      "page": 73,
      "ordinal": 97,
      "text": "GRANT ",
      "top": 699.0,
      "left": 146.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0098",
      "page": 73,
      "ordinal": 98,
      "text": "和",
      "top": 699.0,
      "left": 197.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0099",
      "page": 73,
      "ordinal": 99,
      "text": " REVOKE ",
      "top": 699.0,
      "left": 212.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0100",
      "page": 73,
      "ordinal": 100,
      "text": "语句的影响。",
      "top": 699.0,
      "left": 274.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h04",
        "heading_id": "p073-h04",
        "block_id": "q-p073-h04-b006"
      }
    },
    {
      "id": "p073-t0102",
      "page": 73,
      "ordinal": 102,
      "text": "MySQL ",
      "top": 734.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05"
      }
    },
    {
      "id": "p073-t0103",
      "page": 73,
      "ordinal": 103,
      "text": "的",
      "top": 734.0,
      "left": 206.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05"
      }
    },
    {
      "id": "p073-t0104",
      "page": 73,
      "ordinal": 104,
      "text": " Binlog ",
      "top": 734.0,
      "left": 232.0,
      "width": 93.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05"
      }
    },
    {
      "id": "p073-t0105",
      "page": 73,
      "ordinal": 105,
      "text": "有有几种录入格式？分别有什么区别？",
      "top": 734.0,
      "left": 325.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05"
      }
    },
    {
      "id": "p073-t0108",
      "page": 73,
      "ordinal": 108,
      "text": "有三种格式，",
      "top": 784.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0109",
      "page": 73,
      "ordinal": 109,
      "text": "statement",
      "top": 784.0,
      "left": 200.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0110",
      "page": 73,
      "ordinal": 110,
      "text": "，",
      "top": 784.0,
      "left": 269.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0111",
      "page": 73,
      "ordinal": 111,
      "text": "row ",
      "top": 784.0,
      "left": 284.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0112",
      "page": 73,
      "ordinal": 112,
      "text": "和",
      "top": 784.0,
      "left": 314.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0113",
      "page": 73,
      "ordinal": 113,
      "text": " mixed",
      "top": 784.0,
      "left": 328.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0114",
      "page": 73,
      "ordinal": 114,
      "text": "。",
      "top": 784.0,
      "left": 374.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b001"
      }
    },
    {
      "id": "p073-t0116",
      "page": 73,
      "ordinal": 116,
      "text": "1. statement ",
      "top": 820.0,
      "left": 129.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0117",
      "page": 73,
      "ordinal": 117,
      "text": "模式下，每一条会修改数据的",
      "top": 820.0,
      "left": 219.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0118",
      "page": 73,
      "ordinal": 118,
      "text": " SQL ",
      "top": 820.0,
      "left": 409.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0119",
      "page": 73,
      "ordinal": 119,
      "text": "都会记录在",
      "top": 820.0,
      "left": 444.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0120",
      "page": 73,
      "ordinal": 120,
      "text": " Binlog ",
      "top": 820.0,
      "left": 517.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0121",
      "page": 73,
      "ordinal": 121,
      "text": "中。不需",
      "top": 820.0,
      "left": 567.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0123",
      "page": 73,
      "ordinal": 123,
      "text": "要记录每一行的变化，",
      "top": 820.0,
      "left": 629.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0124",
      "page": 73,
      "ordinal": 124,
      "text": "减少了",
      "top": 842.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0125",
      "page": 73,
      "ordinal": 125,
      "text": " Binlog ",
      "top": 842.0,
      "left": 189.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0126",
      "page": 73,
      "ordinal": 126,
      "text": "日志量，节约了",
      "top": 842.0,
      "left": 240.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0127",
      "page": 73,
      "ordinal": 127,
      "text": " IO",
      "top": 842.0,
      "left": 342.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0128",
      "page": 73,
      "ordinal": 128,
      "text": "，提高性能。由于",
      "top": 842.0,
      "left": 361.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0129",
      "page": 73,
      "ordinal": 129,
      "text": " sql ",
      "top": 842.0,
      "left": 478.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0130",
      "page": 73,
      "ordinal": 130,
      "text": "的执行是有上下文的，因此在保存的时候",
      "top": 842.0,
      "left": 506.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0131",
      "page": 73,
      "ordinal": 131,
      "text": "需要保存相关的信息，同时还",
      "top": 866.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0133",
      "page": 73,
      "ordinal": 133,
      "text": "有一些使用了函数之类的语句无法被记录复制。",
      "top": 866.0,
      "left": 339.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b002"
      }
    },
    {
      "id": "p073-t0135",
      "page": 73,
      "ordinal": 135,
      "text": "2. row ",
      "top": 897.0,
      "left": 129.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0136",
      "page": 73,
      "ordinal": 136,
      "text": "级别下，不记录",
      "top": 897.0,
      "left": 175.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0137",
      "page": 73,
      "ordinal": 137,
      "text": " SQL ",
      "top": 897.0,
      "left": 278.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0138",
      "page": 73,
      "ordinal": 138,
      "text": "语句上下文相关信息，仅保存哪条记录被修改。记",
      "top": 897.0,
      "left": 312.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0140",
      "page": 73,
      "ordinal": 140,
      "text": "录单元为每一行的改",
      "top": 897.0,
      "left": 638.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0141",
      "page": 73,
      "ordinal": 141,
      "text": "动，基本是可以全部记下来但是由于很多操作，会导",
      "top": 920.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0143",
      "page": 73,
      "ordinal": 143,
      "text": "致大量行的改动",
      "top": 920.0,
      "left": 486.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0144",
      "page": 73,
      "ordinal": 144,
      "text": "(",
      "top": 920.0,
      "left": 588.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0145",
      "page": 73,
      "ordinal": 145,
      "text": "比如",
      "top": 920.0,
      "left": 592.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0146",
      "page": 73,
      "ordinal": 146,
      "text": " alter table)",
      "top": 920.0,
      "left": 622.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0147",
      "page": 73,
      "ordinal": 147,
      "text": "，因此这种",
      "top": 920.0,
      "left": 699.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0148",
      "page": 73,
      "ordinal": 148,
      "text": "模式的文件保存的信息太",
      "top": 944.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0150",
      "page": 73,
      "ordinal": 150,
      "text": "多，日志量太大。",
      "top": 944.0,
      "left": 310.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b003"
      }
    },
    {
      "id": "p073-t0152",
      "page": 73,
      "ordinal": 152,
      "text": "3. mixed",
      "top": 974.0,
      "left": 129.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0153",
      "page": 73,
      "ordinal": 153,
      "text": "，一种折中的方案，普通操作使用",
      "top": 974.0,
      "left": 188.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0154",
      "page": 73,
      "ordinal": 154,
      "text": " statement ",
      "top": 974.0,
      "left": 407.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0155",
      "page": 73,
      "ordinal": 155,
      "text": "记录，当无法使用",
      "top": 974.0,
      "left": 484.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0156",
      "page": 73,
      "ordinal": 156,
      "text": " statement ",
      "top": 974.0,
      "left": 601.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0157",
      "page": 73,
      "ordinal": 157,
      "text": "的时候使用",
      "top": 974.0,
      "left": 678.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0158",
      "page": 73,
      "ordinal": 158,
      "text": " row  ",
      "top": 974.0,
      "left": 752.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h05",
        "heading_id": "p073-h05",
        "block_id": "q-p073-h05-b004"
      }
    },
    {
      "id": "p073-t0159",
      "page": 73,
      "ordinal": 159,
      "text": "MySQL ",
      "top": 1009.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0160",
      "page": 73,
      "ordinal": 160,
      "text": "存储引擎",
      "top": 1009.0,
      "left": 206.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0161",
      "page": 73,
      "ordinal": 161,
      "text": " MyISAM ",
      "top": 1009.0,
      "left": 308.0,
      "width": 116.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0162",
      "page": 73,
      "ordinal": 162,
      "text": "与",
      "top": 1009.0,
      "left": 425.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0163",
      "page": 73,
      "ordinal": 163,
      "text": " InnoDB ",
      "top": 1009.0,
      "left": 450.0,
      "width": 107.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0164",
      "page": 73,
      "ordinal": 164,
      "text": "区别",
      "top": 1009.0,
      "left": 558.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06"
      }
    },
    {
      "id": "p073-t0167",
      "page": 73,
      "ordinal": 167,
      "text": "1. ",
      "top": 1059.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0168",
      "page": 73,
      "ordinal": 168,
      "text": "锁粒度方面：由于锁粒度不同，",
      "top": 1059.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0169",
      "page": 73,
      "ordinal": 169,
      "text": "InnoDB ",
      "top": 1059.0,
      "left": 350.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0170",
      "page": 73,
      "ordinal": 170,
      "text": "比",
      "top": 1059.0,
      "left": 405.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0171",
      "page": 73,
      "ordinal": 171,
      "text": " MyISAM ",
      "top": 1059.0,
      "left": 420.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0172",
      "page": 73,
      "ordinal": 172,
      "text": "支持更高的并发",
      "top": 1059.0,
      "left": 482.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0173",
      "page": 73,
      "ordinal": 173,
      "text": ";InnoDB ",
      "top": 1059.0,
      "left": 585.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0174",
      "page": 73,
      "ordinal": 174,
      "text": "的锁粒度为行锁、",
      "top": 1059.0,
      "left": 643.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0175",
      "page": 73,
      "ordinal": 175,
      "text": "MyISAM ",
      "top": 1083.0,
      "left": 146.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0176",
      "page": 73,
      "ordinal": 176,
      "text": "的锁粒度为表锁、行锁需要对每一行进行加锁，",
      "top": 1083.0,
      "left": 204.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0177",
      "page": 73,
      "ordinal": 177,
      "text": " 73 ",
      "top": 1083.0,
      "left": 512.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0178",
      "page": 73,
      "ordinal": 178,
      "text": "所以锁的开销更大，但是能解决脏读",
      "top": 1083.0,
      "left": 536.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0179",
      "page": 73,
      "ordinal": 179,
      "text": "和不可重复读的问题，相对来说也更",
      "top": 1107.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0181",
      "page": 73,
      "ordinal": 181,
      "text": "容易发生死锁",
      "top": 1107.0,
      "left": 383.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b001"
      }
    },
    {
      "id": "p073-t0183",
      "page": 73,
      "ordinal": 183,
      "text": "2. ",
      "top": 1137.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0184",
      "page": 73,
      "ordinal": 184,
      "text": "可恢复性上：由于",
      "top": 1137.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0185",
      "page": 73,
      "ordinal": 185,
      "text": " InnoDB ",
      "top": 1137.0,
      "left": 263.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0186",
      "page": 73,
      "ordinal": 186,
      "text": "是有事务日志的，所以在产生由于数据库崩溃等",
      "top": 1137.0,
      "left": 321.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0188",
      "page": 73,
      "ordinal": 188,
      "text": "条件后，可以根据日志",
      "top": 1137.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0189",
      "page": 73,
      "ordinal": 189,
      "text": "文件进行恢复。而",
      "top": 1161.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0190",
      "page": 73,
      "ordinal": 190,
      "text": " MyISAM ",
      "top": 1161.0,
      "left": 263.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p073-t0191",
      "page": 73,
      "ordinal": 191,
      "text": "则没有事务日志。",
      "top": 1161.0,
      "left": 325.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b002"
      }
    },
    {
      "id": "p074-t0001",
      "page": 74,
      "ordinal": 1,
      "text": "3. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0002",
      "page": 74,
      "ordinal": 2,
      "text": "查询性能上",
      "top": 44.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0003",
      "page": 74,
      "ordinal": 3,
      "text": ":MylSAM ",
      "top": 44.0,
      "left": 219.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0004",
      "page": 74,
      "ordinal": 4,
      "text": "要优于",
      "top": 44.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0005",
      "page": 74,
      "ordinal": 5,
      "text": " InnoDB ",
      "top": 44.0,
      "left": 325.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0006",
      "page": 74,
      "ordinal": 6,
      "text": "因为",
      "top": 44.0,
      "left": 384.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0007",
      "page": 74,
      "ordinal": 7,
      "text": " InnoDB ",
      "top": 44.0,
      "left": 413.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0008",
      "page": 74,
      "ordinal": 8,
      "text": "在查询过程中，是需要维护",
      "top": 44.0,
      "left": 471.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0010",
      "page": 74,
      "ordinal": 10,
      "text": "数据缓存，而且查",
      "top": 44.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0011",
      "page": 74,
      "ordinal": 11,
      "text": "询过程是先定位到行所在的数据块，然后在从数据块中",
      "top": 67.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0013",
      "page": 74,
      "ordinal": 13,
      "text": "定位到要查找的行",
      "top": 67.0,
      "left": 500.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0014",
      "page": 74,
      "ordinal": 14,
      "text": ";",
      "top": 67.0,
      "left": 617.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0015",
      "page": 74,
      "ordinal": 15,
      "text": "而",
      "top": 67.0,
      "left": 621.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0016",
      "page": 74,
      "ordinal": 16,
      "text": " MyISAM ",
      "top": 67.0,
      "left": 636.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0017",
      "page": 74,
      "ordinal": 17,
      "text": "可以直接定",
      "top": 67.0,
      "left": 699.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0018",
      "page": 74,
      "ordinal": 18,
      "text": "位到数据所在的内存地址，可以",
      "top": 91.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0020",
      "page": 74,
      "ordinal": 20,
      "text": "直接找到数据。",
      "top": 91.0,
      "left": 354.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b003"
      }
    },
    {
      "id": "p074-t0022",
      "page": 74,
      "ordinal": 22,
      "text": "4. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0023",
      "page": 74,
      "ordinal": 23,
      "text": "表结构文件上",
      "top": 121.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0024",
      "page": 74,
      "ordinal": 24,
      "text": ":MyISAM ",
      "top": 121.0,
      "left": 233.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0025",
      "page": 74,
      "ordinal": 25,
      "text": "的表结构文件包括",
      "top": 121.0,
      "left": 296.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0026",
      "page": 74,
      "ordinal": 26,
      "text": ":frm(",
      "top": 121.0,
      "left": 413.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0027",
      "page": 74,
      "ordinal": 27,
      "text": "表结构定义",
      "top": 121.0,
      "left": 446.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0028",
      "page": 74,
      "ordinal": 28,
      "text": "),.MYI(",
      "top": 121.0,
      "left": 519.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0029",
      "page": 74,
      "ordinal": 29,
      "text": "索",
      "top": 121.0,
      "left": 561.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0031",
      "page": 74,
      "ordinal": 31,
      "text": "引",
      "top": 121.0,
      "left": 579.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0032",
      "page": 74,
      "ordinal": 32,
      "text": "),.MYD(",
      "top": 121.0,
      "left": 594.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0033",
      "page": 74,
      "ordinal": 33,
      "text": "数据",
      "top": 121.0,
      "left": 642.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0034",
      "page": 74,
      "ordinal": 34,
      "text": ");",
      "top": 121.0,
      "left": 671.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0035",
      "page": 74,
      "ordinal": 35,
      "text": "而",
      "top": 121.0,
      "left": 679.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0036",
      "page": 74,
      "ordinal": 36,
      "text": " InnoDB ",
      "top": 121.0,
      "left": 694.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0037",
      "page": 74,
      "ordinal": 37,
      "text": "的表",
      "top": 121.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0038",
      "page": 74,
      "ordinal": 38,
      "text": "数据文件为",
      "top": 145.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0039",
      "page": 74,
      "ordinal": 39,
      "text": ":ibd ",
      "top": 145.0,
      "left": 219.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0040",
      "page": 74,
      "ordinal": 40,
      "text": "和",
      "top": 145.0,
      "left": 248.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0041",
      "page": 74,
      "ordinal": 41,
      "text": " frm(",
      "top": 145.0,
      "left": 263.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0042",
      "page": 74,
      "ordinal": 42,
      "text": "表结构定义",
      "top": 145.0,
      "left": 295.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0043",
      "page": 74,
      "ordinal": 43,
      "text": ")",
      "top": 145.0,
      "left": 368.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0044",
      "page": 74,
      "ordinal": 44,
      "text": "。",
      "top": 145.0,
      "left": 373.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p073-h06",
        "heading_id": "p073-h06",
        "block_id": "q-p073-h06-b004"
      }
    },
    {
      "id": "p074-t0046",
      "page": 74,
      "ordinal": 46,
      "text": "MyISAM ",
      "top": 178.0,
      "left": 112.0,
      "width": 110.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01"
      }
    },
    {
      "id": "p074-t0047",
      "page": 74,
      "ordinal": 47,
      "text": "索引与",
      "top": 178.0,
      "left": 221.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01"
      }
    },
    {
      "id": "p074-t0048",
      "page": 74,
      "ordinal": 48,
      "text": " InnoDB ",
      "top": 178.0,
      "left": 298.0,
      "width": 107.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01"
      }
    },
    {
      "id": "p074-t0049",
      "page": 74,
      "ordinal": 49,
      "text": "索引的区别？",
      "top": 178.0,
      "left": 406.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01"
      }
    },
    {
      "id": "p074-t0052",
      "page": 74,
      "ordinal": 52,
      "text": "1. InnoDB ",
      "top": 229.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b001"
      }
    },
    {
      "id": "p074-t0053",
      "page": 74,
      "ordinal": 53,
      "text": "索引是聚簇索引，",
      "top": 229.0,
      "left": 200.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b001"
      }
    },
    {
      "id": "p074-t0054",
      "page": 74,
      "ordinal": 54,
      "text": "MyISAM ",
      "top": 229.0,
      "left": 317.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b001"
      }
    },
    {
      "id": "p074-t0055",
      "page": 74,
      "ordinal": 55,
      "text": "索引是非聚簇索引。",
      "top": 229.0,
      "left": 376.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b001"
      }
    },
    {
      "id": "p074-t0057",
      "page": 74,
      "ordinal": 57,
      "text": "2. InnoDB ",
      "top": 261.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b002"
      }
    },
    {
      "id": "p074-t0058",
      "page": 74,
      "ordinal": 58,
      "text": "的主键索引的叶子节点存储着行数据，因此主键索引非常高效。",
      "top": 261.0,
      "left": 200.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b002"
      }
    },
    {
      "id": "p074-t0060",
      "page": 74,
      "ordinal": 60,
      "text": "3. MyISAM ",
      "top": 291.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b003"
      }
    },
    {
      "id": "p074-t0061",
      "page": 74,
      "ordinal": 61,
      "text": "索引的叶子节点存储的是行数据地址，需要再寻址一次才能得到数",
      "top": 291.0,
      "left": 204.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b003"
      }
    },
    {
      "id": "p074-t0063",
      "page": 74,
      "ordinal": 63,
      "text": "据。",
      "top": 291.0,
      "left": 632.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b003"
      }
    },
    {
      "id": "p074-t0065",
      "page": 74,
      "ordinal": 65,
      "text": "4. InnoDB ",
      "top": 321.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b004"
      }
    },
    {
      "id": "p074-t0066",
      "page": 74,
      "ordinal": 66,
      "text": "非主键索引的叶子节点存储的是主键和其他带索引的列数据，因此",
      "top": 321.0,
      "left": 200.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b004"
      }
    },
    {
      "id": "p074-t0068",
      "page": 74,
      "ordinal": 68,
      "text": "查询时做到覆盖索引会",
      "top": 321.0,
      "left": 628.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b004"
      }
    },
    {
      "id": "p074-t0069",
      "page": 74,
      "ordinal": 69,
      "text": "非常高效。",
      "top": 345.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h01",
        "heading_id": "p074-h01",
        "block_id": "q-p074-h01-b004"
      }
    },
    {
      "id": "p074-t0071",
      "page": 74,
      "ordinal": 71,
      "text": "什么是索引",
      "top": 380.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02"
      }
    },
    {
      "id": "p074-t0075",
      "page": 74,
      "ordinal": 75,
      "text": "索引是一种特殊的文件",
      "top": 431.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0076",
      "page": 74,
      "ordinal": 76,
      "text": "(InnoDB ",
      "top": 431.0,
      "left": 262.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0077",
      "page": 74,
      "ordinal": 77,
      "text": "数据表上的索引是表空间的一个组成部分",
      "top": 431.0,
      "left": 321.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0078",
      "page": 74,
      "ordinal": 78,
      "text": ")",
      "top": 431.0,
      "left": 584.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0079",
      "page": 74,
      "ordinal": 79,
      "text": "，它",
      "top": 431.0,
      "left": 589.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0081",
      "page": 74,
      "ordinal": 81,
      "text": "们包含着对数据表里所",
      "top": 431.0,
      "left": 622.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0082",
      "page": 74,
      "ordinal": 82,
      "text": "有记录的引用指针。",
      "top": 453.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0084",
      "page": 74,
      "ordinal": 84,
      "text": "索引是一种数据结构。数据库索引，是数据库管理系统中一个排序的数据结",
      "top": 453.0,
      "left": 247.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0086",
      "page": 74,
      "ordinal": 86,
      "text": "构，以",
      "top": 453.0,
      "left": 734.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0087",
      "page": 74,
      "ordinal": 87,
      "text": "协助快速查询、更新数据库表中数据。索引的实现通常使用",
      "top": 477.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0088",
      "page": 74,
      "ordinal": 88,
      "text": " B ",
      "top": 477.0,
      "left": 492.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0089",
      "page": 74,
      "ordinal": 89,
      "text": "树及其变",
      "top": 477.0,
      "left": 509.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0091",
      "page": 74,
      "ordinal": 91,
      "text": "种",
      "top": 477.0,
      "left": 571.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0092",
      "page": 74,
      "ordinal": 92,
      "text": " B+",
      "top": 477.0,
      "left": 586.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0093",
      "page": 74,
      "ordinal": 93,
      "text": "树。",
      "top": 477.0,
      "left": 608.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0095",
      "page": 74,
      "ordinal": 95,
      "text": "更通俗的说，索引就",
      "top": 477.0,
      "left": 641.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0096",
      "page": 74,
      "ordinal": 96,
      "text": "相当于目录。为了方便查找书中的内容，通过对内容建立",
      "top": 500.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0098",
      "page": 74,
      "ordinal": 98,
      "text": "索引形成目录。索引是一个文件，它是要占据",
      "top": 500.0,
      "left": 481.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0099",
      "page": 74,
      "ordinal": 99,
      "text": "物理空间的。",
      "top": 524.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h02",
        "heading_id": "p074-h02",
        "block_id": "q-p074-h02-b001"
      }
    },
    {
      "id": "p074-t0101",
      "page": 74,
      "ordinal": 101,
      "text": "索引有哪些优缺点",
      "top": 559.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03"
      }
    },
    {
      "id": "p074-t0105",
      "page": 74,
      "ordinal": 105,
      "text": "索引的优点",
      "top": 609.0,
      "left": 116.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b001"
      }
    },
    {
      "id": "p074-t0107",
      "page": 74,
      "ordinal": 107,
      "text": "1. ",
      "top": 644.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b002"
      }
    },
    {
      "id": "p074-t0108",
      "page": 74,
      "ordinal": 108,
      "text": "可以大大加快数据的检索速度，这也是创建索引的最主要的原因。",
      "top": 644.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b002"
      }
    },
    {
      "id": "p074-t0110",
      "page": 74,
      "ordinal": 110,
      "text": "2. ",
      "top": 675.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b003"
      }
    },
    {
      "id": "p074-t0111",
      "page": 74,
      "ordinal": 111,
      "text": "通过使用索引，可以在查询的过程中，使用优化隐藏器，提高系统的性",
      "top": 675.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b003"
      }
    },
    {
      "id": "p074-t0113",
      "page": 74,
      "ordinal": 113,
      "text": "能。",
      "top": 675.0,
      "left": 603.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b003"
      }
    },
    {
      "id": "p074-t0115",
      "page": 74,
      "ordinal": 115,
      "text": "索引的缺点",
      "top": 710.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b004"
      }
    },
    {
      "id": "p074-t0117",
      "page": 74,
      "ordinal": 117,
      "text": "1. ",
      "top": 744.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0118",
      "page": 74,
      "ordinal": 118,
      "text": "时间方面：创建索引和维护索引要耗费时间，具体地，当对表中的数据进",
      "top": 744.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0120",
      "page": 74,
      "ordinal": 120,
      "text": "行增加、删除和修改的时",
      "top": 744.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0121",
      "page": 74,
      "ordinal": 121,
      "text": "候，索引也要动态的维护，会降低增",
      "top": 768.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0122",
      "page": 74,
      "ordinal": 122,
      "text": "/",
      "top": 768.0,
      "left": 380.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0123",
      "page": 74,
      "ordinal": 123,
      "text": "改",
      "top": 768.0,
      "left": 385.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0124",
      "page": 74,
      "ordinal": 124,
      "text": "/",
      "top": 768.0,
      "left": 399.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0125",
      "page": 74,
      "ordinal": 125,
      "text": "删的执",
      "top": 768.0,
      "left": 405.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0127",
      "page": 74,
      "ordinal": 127,
      "text": "行效率；",
      "top": 768.0,
      "left": 453.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b005"
      }
    },
    {
      "id": "p074-t0129",
      "page": 74,
      "ordinal": 129,
      "text": "2. ",
      "top": 798.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b006"
      }
    },
    {
      "id": "p074-t0130",
      "page": 74,
      "ordinal": 130,
      "text": "空间方面：索引需要占物理空间",
      "top": 798.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h03",
        "heading_id": "p074-h03",
        "block_id": "q-p074-h03-b006"
      }
    },
    {
      "id": "p074-t0132",
      "page": 74,
      "ordinal": 132,
      "text": "索引有哪几种类型？",
      "top": 833.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04"
      }
    },
    {
      "id": "p074-t0135",
      "page": 74,
      "ordinal": 135,
      "text": "主键索引",
      "top": 884.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0136",
      "page": 74,
      "ordinal": 136,
      "text": ": ",
      "top": 884.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0137",
      "page": 74,
      "ordinal": 137,
      "text": "数据列不允许重复，不允许为",
      "top": 908.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0138",
      "page": 74,
      "ordinal": 138,
      "text": " NULL",
      "top": 908.0,
      "left": 302.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0139",
      "page": 74,
      "ordinal": 139,
      "text": "，一个表只能有一个主键。",
      "top": 908.0,
      "left": 343.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0141",
      "page": 74,
      "ordinal": 141,
      "text": "唯一索引",
      "top": 931.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0142",
      "page": 74,
      "ordinal": 142,
      "text": ": ",
      "top": 931.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0143",
      "page": 74,
      "ordinal": 143,
      "text": "数据列不允许重复，允许为",
      "top": 955.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0144",
      "page": 74,
      "ordinal": 144,
      "text": " NULL ",
      "top": 955.0,
      "left": 287.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0145",
      "page": 74,
      "ordinal": 145,
      "text": "值，一个表允许多个列创建唯一索引。",
      "top": 955.0,
      "left": 332.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b001"
      }
    },
    {
      "id": "p074-t0147",
      "page": 74,
      "ordinal": 147,
      "text": "1. ",
      "top": 990.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b002"
      }
    },
    {
      "id": "p074-t0148",
      "page": 74,
      "ordinal": 148,
      "text": "可以通过",
      "top": 990.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b002"
      }
    },
    {
      "id": "p074-t0149",
      "page": 74,
      "ordinal": 149,
      "text": " ALTER TABLE table_name ADD UNIQUE (column); ",
      "top": 990.0,
      "left": 204.0,
      "width": 341.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b002"
      }
    },
    {
      "id": "p074-t0150",
      "page": 74,
      "ordinal": 150,
      "text": "创建唯一索",
      "top": 990.0,
      "left": 545.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b002"
      }
    },
    {
      "id": "p074-t0152",
      "page": 74,
      "ordinal": 152,
      "text": "引。",
      "top": 990.0,
      "left": 622.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b002"
      }
    },
    {
      "id": "p074-t0154",
      "page": 74,
      "ordinal": 154,
      "text": "2. ",
      "top": 1020.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b003"
      }
    },
    {
      "id": "p074-t0155",
      "page": 74,
      "ordinal": 155,
      "text": "可以通过",
      "top": 1020.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b003"
      }
    },
    {
      "id": "p074-t0156",
      "page": 74,
      "ordinal": 156,
      "text": " ALTER TABLE table_name ADD UNIQUE (column1,column2); ",
      "top": 1020.0,
      "left": 204.0,
      "width": 412.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b003"
      }
    },
    {
      "id": "p074-t0157",
      "page": 74,
      "ordinal": 157,
      "text": "创",
      "top": 1020.0,
      "left": 616.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b003"
      }
    },
    {
      "id": "p074-t0159",
      "page": 74,
      "ordinal": 159,
      "text": "建唯一组合索引。",
      "top": 1020.0,
      "left": 635.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b003"
      }
    },
    {
      "id": "p074-t0161",
      "page": 74,
      "ordinal": 161,
      "text": "普通索引",
      "top": 1055.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b004"
      }
    },
    {
      "id": "p074-t0162",
      "page": 74,
      "ordinal": 162,
      "text": ": ",
      "top": 1055.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b004"
      }
    },
    {
      "id": "p074-t0163",
      "page": 74,
      "ordinal": 163,
      "text": "基本的索引类型，没有唯一性的限制，允许为",
      "top": 1079.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b004"
      }
    },
    {
      "id": "p074-t0164",
      "page": 74,
      "ordinal": 164,
      "text": " NULL ",
      "top": 1079.0,
      "left": 404.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b004"
      }
    },
    {
      "id": "p074-t0165",
      "page": 74,
      "ordinal": 165,
      "text": "值。",
      "top": 1079.0,
      "left": 449.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b004"
      }
    },
    {
      "id": "p074-t0167",
      "page": 74,
      "ordinal": 167,
      "text": "1. ",
      "top": 1113.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b005"
      }
    },
    {
      "id": "p074-t0168",
      "page": 74,
      "ordinal": 168,
      "text": "可以通过",
      "top": 1113.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b005"
      }
    },
    {
      "id": "p074-t0169",
      "page": 74,
      "ordinal": 169,
      "text": " ALTER TABLE table_name ADD INDEX index_name (column);",
      "top": 1113.0,
      "left": 204.0,
      "width": 410.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b005"
      }
    },
    {
      "id": "p074-t0170",
      "page": 74,
      "ordinal": 170,
      "text": "创建",
      "top": 1113.0,
      "left": 614.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b005"
      }
    },
    {
      "id": "p074-t0172",
      "page": 74,
      "ordinal": 172,
      "text": "普通索引",
      "top": 1113.0,
      "left": 647.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b005"
      }
    },
    {
      "id": "p074-t0174",
      "page": 74,
      "ordinal": 174,
      "text": "2. ",
      "top": 1144.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p074-t0175",
      "page": 74,
      "ordinal": 175,
      "text": "可以通过",
      "top": 1144.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p074-t0176",
      "page": 74,
      "ordinal": 176,
      "text": " ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3);",
      "top": 1144.0,
      "left": 204.0,
      "width": 549.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p074-t0177",
      "page": 74,
      "ordinal": 177,
      "text": "创建",
      "top": 1144.0,
      "left": 753.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p074-t0178",
      "page": 74,
      "ordinal": 178,
      "text": "组合索引。",
      "top": 1167.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p075-t0001",
      "page": 75,
      "ordinal": 1,
      "text": "全文索引：",
      "top": 44.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p075-t0003",
      "page": 75,
      "ordinal": 3,
      "text": "是目前搜索引擎使用的一种关键技术。",
      "top": 67.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b006"
      }
    },
    {
      "id": "p075-t0005",
      "page": 75,
      "ordinal": 5,
      "text": "1. ",
      "top": 102.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b007"
      }
    },
    {
      "id": "p075-t0006",
      "page": 75,
      "ordinal": 6,
      "text": "可以通过",
      "top": 102.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b007"
      }
    },
    {
      "id": "p075-t0007",
      "page": 75,
      "ordinal": 7,
      "text": " ALTER TABLE table_name ADD FULLTEXT (column);",
      "top": 102.0,
      "left": 204.0,
      "width": 347.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b007"
      }
    },
    {
      "id": "p075-t0008",
      "page": 75,
      "ordinal": 8,
      "text": "创建全文索引。",
      "top": 102.0,
      "left": 551.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p074-h04",
        "heading_id": "p074-h04",
        "block_id": "q-p074-h04-b007"
      }
    },
    {
      "id": "p075-t0010",
      "page": 75,
      "ordinal": 10,
      "text": "MySQL ",
      "top": 137.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01"
      }
    },
    {
      "id": "p075-t0011",
      "page": 75,
      "ordinal": 11,
      "text": "中有哪几种锁？",
      "top": 137.0,
      "left": 206.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01"
      }
    },
    {
      "id": "p075-t0014",
      "page": 75,
      "ordinal": 14,
      "text": "1. ",
      "top": 188.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b001"
      }
    },
    {
      "id": "p075-t0015",
      "page": 75,
      "ordinal": 15,
      "text": "表级锁：开销小，加锁快；不会出现死锁；锁定粒度大，发生锁冲突的概",
      "top": 188.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b001"
      }
    },
    {
      "id": "p075-t0017",
      "page": 75,
      "ordinal": 17,
      "text": "率最高，并发度最低。",
      "top": 188.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b001"
      }
    },
    {
      "id": "p075-t0019",
      "page": 75,
      "ordinal": 19,
      "text": "2. ",
      "top": 218.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b002"
      }
    },
    {
      "id": "p075-t0020",
      "page": 75,
      "ordinal": 20,
      "text": "行级锁：开销大，加锁慢；会出现死锁；锁定粒度最小，发生锁冲突的概",
      "top": 218.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b002"
      }
    },
    {
      "id": "p075-t0022",
      "page": 75,
      "ordinal": 22,
      "text": "率最低，并发度也最高。",
      "top": 218.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b002"
      }
    },
    {
      "id": "p075-t0024",
      "page": 75,
      "ordinal": 24,
      "text": "3. ",
      "top": 248.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b003"
      }
    },
    {
      "id": "p075-t0025",
      "page": 75,
      "ordinal": 25,
      "text": "页面锁：开销和加锁时间界于表锁和行锁之间；会出现死锁；锁定粒度界",
      "top": 248.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b003"
      }
    },
    {
      "id": "p075-t0027",
      "page": 75,
      "ordinal": 27,
      "text": "于表锁和行锁之间，并发",
      "top": 248.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b003"
      }
    },
    {
      "id": "p075-t0028",
      "page": 75,
      "ordinal": 28,
      "text": "度一般。",
      "top": 272.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h01",
        "heading_id": "p075-h01",
        "block_id": "q-p075-h01-b003"
      }
    },
    {
      "id": "p075-t0030",
      "page": 75,
      "ordinal": 30,
      "text": "MySQL ",
      "top": 307.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0031",
      "page": 75,
      "ordinal": 31,
      "text": "中",
      "top": 307.0,
      "left": 206.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0032",
      "page": 75,
      "ordinal": 32,
      "text": " InnoDB ",
      "top": 307.0,
      "left": 232.0,
      "width": 107.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0033",
      "page": 75,
      "ordinal": 33,
      "text": "支持的四种事务隔离级别名称，以及逐",
      "top": 307.0,
      "left": 339.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0034",
      "page": 75,
      "ordinal": 34,
      "text": "级",
      "top": 338.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0036",
      "page": 75,
      "ordinal": 36,
      "text": "之间的区别？",
      "top": 338.0,
      "left": 144.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02"
      }
    },
    {
      "id": "p075-t0039",
      "page": 75,
      "ordinal": 39,
      "text": "1. SQL ",
      "top": 389.0,
      "left": 129.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b001"
      }
    },
    {
      "id": "p075-t0040",
      "page": 75,
      "ordinal": 40,
      "text": "标准定义的四个隔离级别为：",
      "top": 389.0,
      "left": 176.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b001"
      }
    },
    {
      "id": "p075-t0042",
      "page": 75,
      "ordinal": 42,
      "text": "2. read uncommited",
      "top": 419.0,
      "left": 129.0,
      "width": 138.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b002"
      }
    },
    {
      "id": "p075-t0043",
      "page": 75,
      "ordinal": 43,
      "text": "：读到未提交数据",
      "top": 419.0,
      "left": 268.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b002"
      }
    },
    {
      "id": "p075-t0045",
      "page": 75,
      "ordinal": 45,
      "text": "3. read committed",
      "top": 450.0,
      "left": 129.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b003"
      }
    },
    {
      "id": "p075-t0046",
      "page": 75,
      "ordinal": 46,
      "text": "：脏读，不可重复读",
      "top": 450.0,
      "left": 255.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b003"
      }
    },
    {
      "id": "p075-t0048",
      "page": 75,
      "ordinal": 48,
      "text": "4. repeatable read",
      "top": 480.0,
      "left": 129.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b004"
      }
    },
    {
      "id": "p075-t0049",
      "page": 75,
      "ordinal": 49,
      "text": "：可重读",
      "top": 480.0,
      "left": 254.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b004"
      }
    },
    {
      "id": "p075-t0051",
      "page": 75,
      "ordinal": 51,
      "text": "5. serializable",
      "top": 512.0,
      "left": 129.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b005"
      }
    },
    {
      "id": "p075-t0052",
      "page": 75,
      "ordinal": 52,
      "text": "：串行事物",
      "top": 512.0,
      "left": 222.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h02",
        "heading_id": "p075-h02",
        "block_id": "q-p075-h02-b005"
      }
    },
    {
      "id": "p075-t0054",
      "page": 75,
      "ordinal": 54,
      "text": "char ",
      "top": 546.0,
      "left": 112.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03"
      }
    },
    {
      "id": "p075-t0055",
      "page": 75,
      "ordinal": 55,
      "text": "和",
      "top": 546.0,
      "left": 175.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03"
      }
    },
    {
      "id": "p075-t0056",
      "page": 75,
      "ordinal": 56,
      "text": " varchar ",
      "top": 546.0,
      "left": 201.0,
      "width": 112.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03"
      }
    },
    {
      "id": "p075-t0057",
      "page": 75,
      "ordinal": 57,
      "text": "的区别？",
      "top": 546.0,
      "left": 313.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03"
      }
    },
    {
      "id": "p075-t0060",
      "page": 75,
      "ordinal": 60,
      "text": "1. char ",
      "top": 596.0,
      "left": 129.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b001"
      }
    },
    {
      "id": "p075-t0061",
      "page": 75,
      "ordinal": 61,
      "text": "和",
      "top": 596.0,
      "left": 179.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b001"
      }
    },
    {
      "id": "p075-t0062",
      "page": 75,
      "ordinal": 62,
      "text": " varchar ",
      "top": 596.0,
      "left": 194.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b001"
      }
    },
    {
      "id": "p075-t0063",
      "page": 75,
      "ordinal": 63,
      "text": "类型在存储和检索方面有所不同",
      "top": 596.0,
      "left": 253.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b001"
      }
    },
    {
      "id": "p075-t0065",
      "page": 75,
      "ordinal": 65,
      "text": "2. char ",
      "top": 627.0,
      "left": 129.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b002"
      }
    },
    {
      "id": "p075-t0066",
      "page": 75,
      "ordinal": 66,
      "text": "列长度固定为创建表时声明的长度，长度值范围是",
      "top": 627.0,
      "left": 179.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b002"
      }
    },
    {
      "id": "p075-t0067",
      "page": 75,
      "ordinal": 67,
      "text": " 1 ",
      "top": 627.0,
      "left": 501.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b002"
      }
    },
    {
      "id": "p075-t0068",
      "page": 75,
      "ordinal": 68,
      "text": "到",
      "top": 627.0,
      "left": 517.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b002"
      }
    },
    {
      "id": "p075-t0069",
      "page": 75,
      "ordinal": 69,
      "text": " 255 ",
      "top": 627.0,
      "left": 532.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b002"
      }
    },
    {
      "id": "p075-t0070",
      "page": 75,
      "ordinal": 70,
      "text": "3. ",
      "top": 658.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0071",
      "page": 75,
      "ordinal": 71,
      "text": "当",
      "top": 658.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0072",
      "page": 75,
      "ordinal": 72,
      "text": " char ",
      "top": 658.0,
      "left": 160.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0073",
      "page": 75,
      "ordinal": 73,
      "text": "值被存储时，它们被用空格填充到特定长度，检索",
      "top": 658.0,
      "left": 198.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0074",
      "page": 75,
      "ordinal": 74,
      "text": " char ",
      "top": 658.0,
      "left": 520.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0075",
      "page": 75,
      "ordinal": 75,
      "text": "值时需删",
      "top": 658.0,
      "left": 557.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0077",
      "page": 75,
      "ordinal": 77,
      "text": "除尾随空格。",
      "top": 658.0,
      "left": 619.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h03",
        "heading_id": "p075-h03",
        "block_id": "q-p075-h03-b003"
      }
    },
    {
      "id": "p075-t0079",
      "page": 75,
      "ordinal": 79,
      "text": "主键和候选键有什么区别？",
      "top": 692.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04"
      }
    },
    {
      "id": "p075-t0083",
      "page": 75,
      "ordinal": 83,
      "text": "表格的每一行都由主键唯一标识",
      "top": 743.0,
      "left": 116.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0084",
      "page": 75,
      "ordinal": 84,
      "text": ",",
      "top": 743.0,
      "left": 320.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0085",
      "page": 75,
      "ordinal": 85,
      "text": "一个表只有一个主键。",
      "top": 743.0,
      "left": 324.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0087",
      "page": 75,
      "ordinal": 87,
      "text": "主键也是候选键。按照惯例，候选键可以被指定",
      "top": 743.0,
      "left": 474.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0088",
      "page": 75,
      "ordinal": 88,
      "text": "为主键，并且可以用于任何外",
      "top": 766.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0090",
      "page": 75,
      "ordinal": 90,
      "text": "键引用",
      "top": 766.0,
      "left": 306.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h04",
        "heading_id": "p075-h04",
        "block_id": "q-p075-h04-b001"
      }
    },
    {
      "id": "p075-t0092",
      "page": 75,
      "ordinal": 92,
      "text": "如何在",
      "top": 800.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05"
      }
    },
    {
      "id": "p075-t0093",
      "page": 75,
      "ordinal": 93,
      "text": " Unix ",
      "top": 800.0,
      "left": 189.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05"
      }
    },
    {
      "id": "p075-t0094",
      "page": 75,
      "ordinal": 94,
      "text": "和",
      "top": 800.0,
      "left": 261.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05"
      }
    },
    {
      "id": "p075-t0095",
      "page": 75,
      "ordinal": 95,
      "text": " MySQL ",
      "top": 800.0,
      "left": 286.0,
      "width": 101.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05"
      }
    },
    {
      "id": "p075-t0096",
      "page": 75,
      "ordinal": 96,
      "text": "时间戳之间进行转换？",
      "top": 800.0,
      "left": 387.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05"
      }
    },
    {
      "id": "p075-t0099",
      "page": 75,
      "ordinal": 99,
      "text": " UNIX_TIMESTAMP ",
      "top": 851.0,
      "left": 112.0,
      "width": 129.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0100",
      "page": 75,
      "ordinal": 100,
      "text": "是从",
      "top": 851.0,
      "left": 241.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0101",
      "page": 75,
      "ordinal": 101,
      "text": " MySQL ",
      "top": 851.0,
      "left": 270.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0102",
      "page": 75,
      "ordinal": 102,
      "text": "时间戳转换为",
      "top": 851.0,
      "left": 325.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0103",
      "page": 75,
      "ordinal": 103,
      "text": " Unix ",
      "top": 851.0,
      "left": 413.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0104",
      "page": 75,
      "ordinal": 104,
      "text": "时间戳的命令",
      "top": 851.0,
      "left": 452.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0105",
      "page": 75,
      "ordinal": 105,
      "text": " FROM_UNIXTIME ",
      "top": 851.0,
      "left": 540.0,
      "width": 123.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0106",
      "page": 75,
      "ordinal": 106,
      "text": "是从",
      "top": 851.0,
      "left": 663.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0107",
      "page": 75,
      "ordinal": 107,
      "text": " Unix ",
      "top": 851.0,
      "left": 692.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0108",
      "page": 75,
      "ordinal": 108,
      "text": "时间戳",
      "top": 851.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0109",
      "page": 75,
      "ordinal": 109,
      "text": "转换为",
      "top": 875.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0110",
      "page": 75,
      "ordinal": 110,
      "text": " MySQL ",
      "top": 875.0,
      "left": 156.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0111",
      "page": 75,
      "ordinal": 111,
      "text": "时间戳的命令",
      "top": 875.0,
      "left": 211.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h05",
        "heading_id": "p075-h05",
        "block_id": "q-p075-h05-b001"
      }
    },
    {
      "id": "p075-t0113",
      "page": 75,
      "ordinal": 113,
      "text": "MyISAM ",
      "top": 910.0,
      "left": 112.0,
      "width": 110.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06"
      }
    },
    {
      "id": "p075-t0114",
      "page": 75,
      "ordinal": 114,
      "text": "表类型将在哪里存储，并且还提供其存储格式？",
      "top": 910.0,
      "left": 221.0,
      "width": 537.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06"
      }
    },
    {
      "id": "p075-t0117",
      "page": 75,
      "ordinal": 117,
      "text": "每个",
      "top": 960.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b001"
      }
    },
    {
      "id": "p075-t0118",
      "page": 75,
      "ordinal": 118,
      "text": " MyISAM ",
      "top": 960.0,
      "left": 141.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b001"
      }
    },
    {
      "id": "p075-t0119",
      "page": 75,
      "ordinal": 119,
      "text": "表格以三种格式存储在磁盘上：",
      "top": 960.0,
      "left": 204.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b001"
      }
    },
    {
      "id": "p075-t0120",
      "page": 75,
      "ordinal": 120,
      "text": "1. “.frm”",
      "top": 995.0,
      "left": 129.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b002"
      }
    },
    {
      "id": "p075-t0121",
      "page": 75,
      "ordinal": 121,
      "text": "文件",
      "top": 995.0,
      "left": 184.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b002"
      }
    },
    {
      "id": "p075-t0123",
      "page": 75,
      "ordinal": 123,
      "text": "存储表定义",
      "top": 995.0,
      "left": 217.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b002"
      }
    },
    {
      "id": "p075-t0124",
      "page": 75,
      "ordinal": 124,
      "text": "2. ",
      "top": 1026.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0125",
      "page": 75,
      "ordinal": 125,
      "text": "数据文件具有",
      "top": 1026.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0126",
      "page": 75,
      "ordinal": 126,
      "text": "“.MYD”",
      "top": 1026.0,
      "left": 233.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0127",
      "page": 75,
      "ordinal": 127,
      "text": "（",
      "top": 1026.0,
      "left": 279.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0128",
      "page": 75,
      "ordinal": 128,
      "text": "MYData",
      "top": 1026.0,
      "left": 294.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0129",
      "page": 75,
      "ordinal": 129,
      "text": "）扩展名",
      "top": 1026.0,
      "left": 348.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b003"
      }
    },
    {
      "id": "p075-t0131",
      "page": 75,
      "ordinal": 131,
      "text": "3. ",
      "top": 1056.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p075-t0132",
      "page": 75,
      "ordinal": 132,
      "text": "索引文件具有",
      "top": 1056.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p075-t0133",
      "page": 75,
      "ordinal": 133,
      "text": "“.MYI”",
      "top": 1056.0,
      "left": 233.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p075-t0134",
      "page": 75,
      "ordinal": 134,
      "text": "（",
      "top": 1056.0,
      "left": 273.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p075-t0135",
      "page": 75,
      "ordinal": 135,
      "text": "MYIndex",
      "top": 1056.0,
      "left": 287.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p075-t0136",
      "page": 75,
      "ordinal": 136,
      "text": "）扩展名",
      "top": 1056.0,
      "left": 347.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p075-h06",
        "heading_id": "p075-h06",
        "block_id": "q-p075-h06-b004"
      }
    },
    {
      "id": "p076-t0001",
      "page": 76,
      "ordinal": 1,
      "text": "MySQL ",
      "top": 40.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01"
      }
    },
    {
      "id": "p076-t0002",
      "page": 76,
      "ordinal": 2,
      "text": "里记录货币用什么字段类型好",
      "top": 40.0,
      "left": 206.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01"
      }
    },
    {
      "id": "p076-t0005",
      "page": 76,
      "ordinal": 5,
      "text": "NUMERIC ",
      "top": 91.0,
      "left": 112.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0006",
      "page": 76,
      "ordinal": 6,
      "text": "和",
      "top": 91.0,
      "left": 181.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0007",
      "page": 76,
      "ordinal": 7,
      "text": " DECIMAL ",
      "top": 91.0,
      "left": 196.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0008",
      "page": 76,
      "ordinal": 8,
      "text": "类型被",
      "top": 91.0,
      "left": 265.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0009",
      "page": 76,
      "ordinal": 9,
      "text": " MySQL ",
      "top": 91.0,
      "left": 309.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0010",
      "page": 76,
      "ordinal": 10,
      "text": "实现为同样的类型，这在",
      "top": 91.0,
      "left": 364.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0011",
      "page": 76,
      "ordinal": 11,
      "text": " SQL92 ",
      "top": 91.0,
      "left": 525.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0012",
      "page": 76,
      "ordinal": 12,
      "text": "标准允许。",
      "top": 91.0,
      "left": 577.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0014",
      "page": 76,
      "ordinal": 14,
      "text": "他们被用于保存",
      "top": 91.0,
      "left": 653.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0015",
      "page": 76,
      "ordinal": 15,
      "text": "值，该值的准确精度是极其重要的值，例如与金钱有关的数",
      "top": 114.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0017",
      "page": 76,
      "ordinal": 17,
      "text": "据。当声明一个类是这些类型之一时，精度",
      "top": 114.0,
      "left": 496.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0018",
      "page": 76,
      "ordinal": 18,
      "text": "和规模的能被",
      "top": 137.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0019",
      "page": 76,
      "ordinal": 19,
      "text": "(",
      "top": 137.0,
      "left": 200.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0020",
      "page": 76,
      "ordinal": 20,
      "text": "并且通常是",
      "top": 137.0,
      "left": 204.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0021",
      "page": 76,
      "ordinal": 21,
      "text": ")",
      "top": 137.0,
      "left": 277.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0022",
      "page": 76,
      "ordinal": 22,
      "text": "指定。",
      "top": 137.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0024",
      "page": 76,
      "ordinal": 24,
      "text": "例如：",
      "top": 137.0,
      "left": 329.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0025",
      "page": 76,
      "ordinal": 25,
      "text": " salary DECIMAL(9,2)  ",
      "top": 137.0,
      "left": 373.0,
      "width": 147.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0026",
      "page": 76,
      "ordinal": 26,
      "text": "在这个例子中，",
      "top": 137.0,
      "left": 519.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0027",
      "page": 76,
      "ordinal": 27,
      "text": "9(precision)",
      "top": 137.0,
      "left": 622.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0028",
      "page": 76,
      "ordinal": 28,
      "text": "代表将被用",
      "top": 137.0,
      "left": 701.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0029",
      "page": 76,
      "ordinal": 29,
      "text": "于存储值的总的小数位数，而",
      "top": 161.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0030",
      "page": 76,
      "ordinal": 30,
      "text": " 2(scale)",
      "top": 161.0,
      "left": 302.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0031",
      "page": 76,
      "ordinal": 31,
      "text": "代表将被用于存储小数点后的位数。",
      "top": 161.0,
      "left": 357.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0033",
      "page": 76,
      "ordinal": 33,
      "text": "因此，在这种情况下，能被",
      "top": 161.0,
      "left": 594.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0034",
      "page": 76,
      "ordinal": 34,
      "text": "存储在",
      "top": 184.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0035",
      "page": 76,
      "ordinal": 35,
      "text": " salary ",
      "top": 184.0,
      "left": 156.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0036",
      "page": 76,
      "ordinal": 36,
      "text": "列中的值的范围是从",
      "top": 184.0,
      "left": 204.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0037",
      "page": 76,
      "ordinal": 37,
      "text": "-9999999.99 ",
      "top": 184.0,
      "left": 335.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0038",
      "page": 76,
      "ordinal": 38,
      "text": "到",
      "top": 184.0,
      "left": 423.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0039",
      "page": 76,
      "ordinal": 39,
      "text": " 9999999.99",
      "top": 184.0,
      "left": 437.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0040",
      "page": 76,
      "ordinal": 40,
      "text": "。",
      "top": 184.0,
      "left": 520.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h01",
        "heading_id": "p076-h01",
        "block_id": "q-p076-h01-b001"
      }
    },
    {
      "id": "p076-t0042",
      "page": 76,
      "ordinal": 42,
      "text": "创建索引时需要注意什么？",
      "top": 219.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02"
      }
    },
    {
      "id": "p076-t0045",
      "page": 76,
      "ordinal": 45,
      "text": "1. ",
      "top": 270.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0046",
      "page": 76,
      "ordinal": 46,
      "text": "非空字段：应该指定列为",
      "top": 270.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0047",
      "page": 76,
      "ordinal": 47,
      "text": " NOT NULL",
      "top": 270.0,
      "left": 306.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0048",
      "page": 76,
      "ordinal": 48,
      "text": "，除非你想存储",
      "top": 270.0,
      "left": 381.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0049",
      "page": 76,
      "ordinal": 49,
      "text": " NULL",
      "top": 270.0,
      "left": 484.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0050",
      "page": 76,
      "ordinal": 50,
      "text": "。在",
      "top": 270.0,
      "left": 524.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0051",
      "page": 76,
      "ordinal": 51,
      "text": " MySQL ",
      "top": 270.0,
      "left": 554.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0052",
      "page": 76,
      "ordinal": 52,
      "text": "中，含",
      "top": 270.0,
      "left": 609.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0054",
      "page": 76,
      "ordinal": 54,
      "text": "有空值的列很难进",
      "top": 270.0,
      "left": 656.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0055",
      "page": 76,
      "ordinal": 55,
      "text": "行查询优化，因为它们使得索引、索引的统计信息以及",
      "top": 293.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0057",
      "page": 76,
      "ordinal": 57,
      "text": "比较运算更加复杂。应该用",
      "top": 293.0,
      "left": 500.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0058",
      "page": 76,
      "ordinal": 58,
      "text": " 0",
      "top": 293.0,
      "left": 676.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0059",
      "page": 76,
      "ordinal": 59,
      "text": "、一个特殊的",
      "top": 293.0,
      "left": 688.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0060",
      "page": 76,
      "ordinal": 60,
      "text": "值或者一个空串代替空值；",
      "top": 316.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b001"
      }
    },
    {
      "id": "p076-t0062",
      "page": 76,
      "ordinal": 62,
      "text": "2. ",
      "top": 347.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0063",
      "page": 76,
      "ordinal": 63,
      "text": "取值离散大的字段：（变量各个取值之间的差异程度）的列放到联合索引",
      "top": 347.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0065",
      "page": 76,
      "ordinal": 65,
      "text": "的前面，可以通过",
      "top": 347.0,
      "left": 617.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0067",
      "page": 76,
      "ordinal": 67,
      "text": "count()",
      "top": 370.0,
      "left": 146.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0068",
      "page": 76,
      "ordinal": 68,
      "text": "函数查看字段的差异值，返回值越大说明字段的",
      "top": 370.0,
      "left": 193.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0070",
      "page": 76,
      "ordinal": 70,
      "text": "唯一值越多字段的离散程度高；",
      "top": 370.0,
      "left": 504.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b002"
      }
    },
    {
      "id": "p076-t0072",
      "page": 76,
      "ordinal": 72,
      "text": "3. ",
      "top": 401.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0073",
      "page": 76,
      "ordinal": 73,
      "text": "索引字段越小越好：数据库的数据存储以页为单位一页存储的数据越多一",
      "top": 401.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0075",
      "page": 76,
      "ordinal": 75,
      "text": "次",
      "top": 401.0,
      "left": 617.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0076",
      "page": 76,
      "ordinal": 76,
      "text": " I/O ",
      "top": 401.0,
      "left": 632.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0077",
      "page": 76,
      "ordinal": 77,
      "text": "操作获取的数据越",
      "top": 401.0,
      "left": 660.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0078",
      "page": 76,
      "ordinal": 78,
      "text": "大效率越高",
      "top": 424.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h02",
        "heading_id": "p076-h02",
        "block_id": "q-p076-h02-b003"
      }
    },
    {
      "id": "p076-t0080",
      "page": 76,
      "ordinal": 80,
      "text": "使用索引查询一定能提高查询的性能吗？为什么",
      "top": 458.0,
      "left": 112.0,
      "width": 537.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03"
      }
    },
    {
      "id": "p076-t0083",
      "page": 76,
      "ordinal": 83,
      "text": "通常，通过索引查询数据比全表扫描要快。但是我们也必须注意到它的代价。",
      "top": 509.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0085",
      "page": 76,
      "ordinal": 85,
      "text": "索引需要空间来存储，也",
      "top": 509.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0086",
      "page": 76,
      "ordinal": 86,
      "text": "需要定期维护，",
      "top": 533.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0088",
      "page": 76,
      "ordinal": 88,
      "text": "每当有记录在表中增减或索引列被修",
      "top": 533.0,
      "left": 218.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0090",
      "page": 76,
      "ordinal": 90,
      "text": "改时，索引本身也会被修改。",
      "top": 533.0,
      "left": 456.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0092",
      "page": 76,
      "ordinal": 92,
      "text": "这意味着每条记录的",
      "top": 533.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0094",
      "page": 76,
      "ordinal": 94,
      "text": "INSERT",
      "top": 557.0,
      "left": 112.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0095",
      "page": 76,
      "ordinal": 95,
      "text": "，",
      "top": 557.0,
      "left": 160.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0096",
      "page": 76,
      "ordinal": 96,
      "text": "DELETE",
      "top": 557.0,
      "left": 175.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0097",
      "page": 76,
      "ordinal": 97,
      "text": "，",
      "top": 557.0,
      "left": 226.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0098",
      "page": 76,
      "ordinal": 98,
      "text": "UPDATE ",
      "top": 557.0,
      "left": 240.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0099",
      "page": 76,
      "ordinal": 99,
      "text": "将为此多付出",
      "top": 557.0,
      "left": 300.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0100",
      "page": 76,
      "ordinal": 100,
      "text": " 4",
      "top": 557.0,
      "left": 387.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0101",
      "page": 76,
      "ordinal": 101,
      "text": "，",
      "top": 557.0,
      "left": 399.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0102",
      "page": 76,
      "ordinal": 102,
      "text": "5 ",
      "top": 557.0,
      "left": 414.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0103",
      "page": 76,
      "ordinal": 103,
      "text": "次的磁盘",
      "top": 557.0,
      "left": 426.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0104",
      "page": 76,
      "ordinal": 104,
      "text": " I/O",
      "top": 557.0,
      "left": 485.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0105",
      "page": 76,
      "ordinal": 105,
      "text": "。",
      "top": 557.0,
      "left": 509.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0107",
      "page": 76,
      "ordinal": 107,
      "text": "因为索引需要额外的存储空间和处理，",
      "top": 557.0,
      "left": 528.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0108",
      "page": 76,
      "ordinal": 108,
      "text": "那",
      "top": 580.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0110",
      "page": 76,
      "ordinal": 110,
      "text": "些不必要的索引反而会使查询反应时间变慢。使用索引查询不一定能提高查询",
      "top": 580.0,
      "left": 130.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0112",
      "page": 76,
      "ordinal": 112,
      "text": "性能，索引范围查询",
      "top": 580.0,
      "left": 631.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0113",
      "page": 76,
      "ordinal": 113,
      "text": "(INDEX RANGE SCAN)",
      "top": 603.0,
      "left": 112.0,
      "width": 144.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0114",
      "page": 76,
      "ordinal": 114,
      "text": "适用于两种情况",
      "top": 603.0,
      "left": 256.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0115",
      "page": 76,
      "ordinal": 115,
      "text": ": ",
      "top": 603.0,
      "left": 358.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b001"
      }
    },
    {
      "id": "p076-t0116",
      "page": 76,
      "ordinal": 116,
      "text": "1. ",
      "top": 639.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b002"
      }
    },
    {
      "id": "p076-t0117",
      "page": 76,
      "ordinal": 117,
      "text": "基于一个范围的检索，一般查询返回结果集小于表中记录数的",
      "top": 639.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b002"
      }
    },
    {
      "id": "p076-t0118",
      "page": 76,
      "ordinal": 118,
      "text": " 30% ",
      "top": 639.0,
      "left": 540.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b002"
      }
    },
    {
      "id": "p076-t0119",
      "page": 76,
      "ordinal": 119,
      "text": "2. ",
      "top": 669.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b003"
      }
    },
    {
      "id": "p076-t0120",
      "page": 76,
      "ordinal": 120,
      "text": "基于非唯一性索引的检索",
      "top": 669.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h03",
        "heading_id": "p076-h03",
        "block_id": "q-p076-h03-b003"
      }
    },
    {
      "id": "p076-t0122",
      "page": 76,
      "ordinal": 122,
      "text": "百万级别或以上的数据如何删除",
      "top": 704.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04"
      }
    },
    {
      "id": "p076-t0125",
      "page": 76,
      "ordinal": 125,
      "text": "关于索引：由于索引需要额外的维护成本，因为索引文件是单独存在的文件",
      "top": 753.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0126",
      "page": 76,
      "ordinal": 126,
      "text": ",",
      "top": 753.0,
      "left": 594.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0127",
      "page": 76,
      "ordinal": 127,
      "text": "所",
      "top": 753.0,
      "left": 598.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0129",
      "page": 76,
      "ordinal": 129,
      "text": "以当我们对数据的增加",
      "top": 753.0,
      "left": 616.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0130",
      "page": 76,
      "ordinal": 130,
      "text": ",",
      "top": 753.0,
      "left": 763.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0131",
      "page": 76,
      "ordinal": 131,
      "text": "修",
      "top": 753.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0132",
      "page": 76,
      "ordinal": 132,
      "text": "改",
      "top": 777.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0133",
      "page": 76,
      "ordinal": 133,
      "text": ",",
      "top": 777.0,
      "left": 126.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0134",
      "page": 76,
      "ordinal": 134,
      "text": "删除",
      "top": 777.0,
      "left": 130.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0135",
      "page": 76,
      "ordinal": 135,
      "text": ",",
      "top": 777.0,
      "left": 159.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0136",
      "page": 76,
      "ordinal": 136,
      "text": "都会产生额外的对索引文件的操作",
      "top": 777.0,
      "left": 163.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0137",
      "page": 76,
      "ordinal": 137,
      "text": ",",
      "top": 777.0,
      "left": 382.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0138",
      "page": 76,
      "ordinal": 138,
      "text": "这些操",
      "top": 777.0,
      "left": 386.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0140",
      "page": 76,
      "ordinal": 140,
      "text": "作需要消耗额外的",
      "top": 777.0,
      "left": 433.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0141",
      "page": 76,
      "ordinal": 141,
      "text": " IO,",
      "top": 777.0,
      "left": 550.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0142",
      "page": 76,
      "ordinal": 142,
      "text": "会降低增",
      "top": 777.0,
      "left": 573.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0143",
      "page": 76,
      "ordinal": 143,
      "text": "/",
      "top": 777.0,
      "left": 632.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0144",
      "page": 76,
      "ordinal": 144,
      "text": "改",
      "top": 777.0,
      "left": 637.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0145",
      "page": 76,
      "ordinal": 145,
      "text": "/",
      "top": 777.0,
      "left": 652.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0146",
      "page": 76,
      "ordinal": 146,
      "text": "删的执行效率。所",
      "top": 777.0,
      "left": 657.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0147",
      "page": 76,
      "ordinal": 147,
      "text": "以，在我们删除数据库",
      "top": 801.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0149",
      "page": 76,
      "ordinal": 149,
      "text": "百万级别数据的时候，查询",
      "top": 801.0,
      "left": 262.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0150",
      "page": 76,
      "ordinal": 150,
      "text": " MySQL ",
      "top": 801.0,
      "left": 437.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0151",
      "page": 76,
      "ordinal": 151,
      "text": "官方手册得知删除数据的速度和创建的索引",
      "top": 801.0,
      "left": 492.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0153",
      "page": 76,
      "ordinal": 153,
      "text": "数量是成正比的。",
      "top": 824.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b001"
      }
    },
    {
      "id": "p076-t0155",
      "page": 76,
      "ordinal": 155,
      "text": "1. ",
      "top": 859.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b002"
      }
    },
    {
      "id": "p076-t0156",
      "page": 76,
      "ordinal": 156,
      "text": "所以我们想要删除百万数据的时候可以先删除索引（此时大概耗时三分多",
      "top": 859.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b002"
      }
    },
    {
      "id": "p076-t0158",
      "page": 76,
      "ordinal": 158,
      "text": "钟）",
      "top": 859.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b002"
      }
    },
    {
      "id": "p076-t0160",
      "page": 76,
      "ordinal": 160,
      "text": "2. ",
      "top": 890.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b003"
      }
    },
    {
      "id": "p076-t0161",
      "page": 76,
      "ordinal": 161,
      "text": "然后删除其中无用数据（此过程需要不到两分钟）",
      "top": 890.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b003"
      }
    },
    {
      "id": "p076-t0163",
      "page": 76,
      "ordinal": 163,
      "text": "3. ",
      "top": 921.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0164",
      "page": 76,
      "ordinal": 164,
      "text": "删除完成后重新创建索引",
      "top": 921.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0165",
      "page": 76,
      "ordinal": 165,
      "text": "(",
      "top": 921.0,
      "left": 306.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0166",
      "page": 76,
      "ordinal": 166,
      "text": "此时数据较少了",
      "top": 921.0,
      "left": 311.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0167",
      "page": 76,
      "ordinal": 167,
      "text": ")",
      "top": 921.0,
      "left": 413.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0168",
      "page": 76,
      "ordinal": 168,
      "text": "创建索引也非常快，约十分钟",
      "top": 921.0,
      "left": 417.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0170",
      "page": 76,
      "ordinal": 170,
      "text": "左右。",
      "top": 921.0,
      "left": 611.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b004"
      }
    },
    {
      "id": "p076-t0172",
      "page": 76,
      "ordinal": 172,
      "text": "4. ",
      "top": 951.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b005"
      }
    },
    {
      "id": "p076-t0173",
      "page": 76,
      "ordinal": 173,
      "text": "与之前的直接删除绝对是要快速很多，更别说万一删除中断",
      "top": 951.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b005"
      }
    },
    {
      "id": "p076-t0174",
      "page": 76,
      "ordinal": 174,
      "text": ",",
      "top": 951.0,
      "left": 526.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b005"
      }
    },
    {
      "id": "p076-t0175",
      "page": 76,
      "ordinal": 175,
      "text": "一切删除会回",
      "top": 951.0,
      "left": 529.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b005"
      }
    },
    {
      "id": "p076-t0177",
      "page": 76,
      "ordinal": 177,
      "text": "滚。那更是坑了。",
      "top": 951.0,
      "left": 621.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h04",
        "heading_id": "p076-h04",
        "block_id": "q-p076-h04-b005"
      }
    },
    {
      "id": "p076-t0179",
      "page": 76,
      "ordinal": 179,
      "text": "什么是最左前缀原则？什么是最左匹配原则",
      "top": 986.0,
      "left": 112.0,
      "width": 486.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05"
      }
    },
    {
      "id": "p076-t0182",
      "page": 76,
      "ordinal": 182,
      "text": "顾名思义，就是最左优先，在创建多列索引时，要根据业务需求，",
      "top": 1037.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0183",
      "page": 76,
      "ordinal": 183,
      "text": "where ",
      "top": 1037.0,
      "left": 536.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0184",
      "page": 76,
      "ordinal": 184,
      "text": "子句",
      "top": 1037.0,
      "left": 582.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0186",
      "page": 76,
      "ordinal": 186,
      "text": "中使用最频繁的一列放在",
      "top": 1037.0,
      "left": 615.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0187",
      "page": 76,
      "ordinal": 187,
      "text": "最左边。",
      "top": 1059.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0189",
      "page": 76,
      "ordinal": 189,
      "text": "最左前缀匹配原则，非常重要的原则，",
      "top": 1059.0,
      "left": 174.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0190",
      "page": 76,
      "ordinal": 190,
      "text": "MySQL ",
      "top": 1059.0,
      "left": 423.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0191",
      "page": 76,
      "ordinal": 191,
      "text": "会一直向右匹配直到遇到范围查",
      "top": 1059.0,
      "left": 474.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0193",
      "page": 76,
      "ordinal": 193,
      "text": "询",
      "top": 1059.0,
      "left": 683.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0194",
      "page": 76,
      "ordinal": 194,
      "text": "(>",
      "top": 1059.0,
      "left": 697.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0195",
      "page": 76,
      "ordinal": 195,
      "text": "、",
      "top": 1059.0,
      "left": 710.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0196",
      "page": 76,
      "ordinal": 196,
      "text": "<",
      "top": 1059.0,
      "left": 725.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0197",
      "page": 76,
      "ordinal": 197,
      "text": "、",
      "top": 1059.0,
      "left": 733.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0198",
      "page": 76,
      "ordinal": 198,
      "text": "between",
      "top": 1083.0,
      "left": 112.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0199",
      "page": 76,
      "ordinal": 199,
      "text": "、",
      "top": 1083.0,
      "left": 171.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0200",
      "page": 76,
      "ordinal": 200,
      "text": "like)",
      "top": 1083.0,
      "left": 185.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0201",
      "page": 76,
      "ordinal": 201,
      "text": "就停止匹配，比如",
      "top": 1083.0,
      "left": 213.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0202",
      "page": 76,
      "ordinal": 202,
      "text": " a = 1 and b = 2 and c > 3 and d = 4 ",
      "top": 1083.0,
      "left": 330.0,
      "width": 239.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0203",
      "page": 76,
      "ordinal": 203,
      "text": "如果建立",
      "top": 1083.0,
      "left": 569.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0204",
      "page": 76,
      "ordinal": 204,
      "text": "(a,b,c,d)",
      "top": 1083.0,
      "left": 627.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0205",
      "page": 76,
      "ordinal": 205,
      "text": "顺序的索引，",
      "top": 1083.0,
      "left": 680.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0206",
      "page": 76,
      "ordinal": 206,
      "text": "d ",
      "top": 1083.0,
      "left": 768.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0207",
      "page": 76,
      "ordinal": 207,
      "text": "是用不到索引的，如果建立",
      "top": 1107.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0208",
      "page": 76,
      "ordinal": 208,
      "text": " (a,b,d,c)",
      "top": 1107.0,
      "left": 287.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0209",
      "page": 76,
      "ordinal": 209,
      "text": "的索引则都可以用到，",
      "top": 1107.0,
      "left": 343.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0210",
      "page": 76,
      "ordinal": 210,
      "text": "a,b,d ",
      "top": 1107.0,
      "left": 490.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0211",
      "page": 76,
      "ordinal": 211,
      "text": "的顺序可以任意调整。",
      "top": 1107.0,
      "left": 527.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0212",
      "page": 76,
      "ordinal": 212,
      "text": " =",
      "top": 1107.0,
      "left": 673.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0213",
      "page": 76,
      "ordinal": 213,
      "text": "和",
      "top": 1107.0,
      "left": 685.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0214",
      "page": 76,
      "ordinal": 214,
      "text": " in ",
      "top": 1107.0,
      "left": 700.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0215",
      "page": 76,
      "ordinal": 215,
      "text": "可以乱",
      "top": 1107.0,
      "left": 720.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0216",
      "page": 76,
      "ordinal": 216,
      "text": "序，比如",
      "top": 1130.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0217",
      "page": 76,
      "ordinal": 217,
      "text": " a = 1 and b = 2 and c = 3 ",
      "top": 1130.0,
      "left": 170.0,
      "width": 172.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0218",
      "page": 76,
      "ordinal": 218,
      "text": "建立",
      "top": 1130.0,
      "left": 342.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0219",
      "page": 76,
      "ordinal": 219,
      "text": "(a,b,c)",
      "top": 1130.0,
      "left": 371.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0220",
      "page": 76,
      "ordinal": 220,
      "text": "索引可以任",
      "top": 1130.0,
      "left": 411.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0222",
      "page": 76,
      "ordinal": 222,
      "text": "意顺序，",
      "top": 1130.0,
      "left": 488.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0223",
      "page": 76,
      "ordinal": 223,
      "text": "MySQL ",
      "top": 1130.0,
      "left": 547.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0224",
      "page": 76,
      "ordinal": 224,
      "text": "的查询优化器会帮你优化成",
      "top": 1130.0,
      "left": 598.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p076-t0225",
      "page": 76,
      "ordinal": 225,
      "text": "索引可以识别的形式。",
      "top": 1154.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p076-h05",
        "heading_id": "p076-h05",
        "block_id": "q-p076-h05-b001"
      }
    },
    {
      "id": "p077-t0001",
      "page": 77,
      "ordinal": 1,
      "text": "什么是聚簇索引？何时使用聚簇索引与非聚簇索引",
      "top": 40.0,
      "left": 112.0,
      "width": 563.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01"
      }
    },
    {
      "id": "p077-t0004",
      "page": 77,
      "ordinal": 4,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b001"
      }
    },
    {
      "id": "p077-t0005",
      "page": 77,
      "ordinal": 5,
      "text": "聚簇索引：将数据存储与索引放到了一块，找到索引也就找到了数据",
      "top": 91.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b001"
      }
    },
    {
      "id": "p077-t0007",
      "page": 77,
      "ordinal": 7,
      "text": "2. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0008",
      "page": 77,
      "ordinal": 8,
      "text": "非聚簇索引：将数据存储于索引分开结构，索引结构的叶子节点指向了数",
      "top": 121.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0010",
      "page": 77,
      "ordinal": 10,
      "text": "据的对应行，",
      "top": 121.0,
      "left": 617.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0011",
      "page": 77,
      "ordinal": 11,
      "text": "myisam ",
      "top": 121.0,
      "left": 705.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0012",
      "page": 77,
      "ordinal": 12,
      "text": "通",
      "top": 121.0,
      "left": 762.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0013",
      "page": 77,
      "ordinal": 13,
      "text": "过",
      "top": 145.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0014",
      "page": 77,
      "ordinal": 14,
      "text": " key_buffer ",
      "top": 145.0,
      "left": 160.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0015",
      "page": 77,
      "ordinal": 15,
      "text": "把索引先缓存到内存中，当需要访问",
      "top": 145.0,
      "left": 240.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0017",
      "page": 77,
      "ordinal": 17,
      "text": "数据时（通过索引访问数据），在内存中直接",
      "top": 145.0,
      "left": 477.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0018",
      "page": 77,
      "ordinal": 18,
      "text": "搜索索引，然后通过索引找",
      "top": 168.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0020",
      "page": 77,
      "ordinal": 20,
      "text": "到磁盘相应数据，这也就是为什么索引不在",
      "top": 168.0,
      "left": 325.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0021",
      "page": 77,
      "ordinal": 21,
      "text": " key buffer ",
      "top": 168.0,
      "left": 603.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0022",
      "page": 77,
      "ordinal": 22,
      "text": "命中时，速度慢",
      "top": 168.0,
      "left": 679.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0023",
      "page": 77,
      "ordinal": 23,
      "text": "的",
      "top": 192.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0025",
      "page": 77,
      "ordinal": 25,
      "text": "原因。",
      "top": 192.0,
      "left": 164.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h01",
        "heading_id": "p077-h01",
        "block_id": "q-p077-h01-b002"
      }
    },
    {
      "id": "p077-t0027",
      "page": 77,
      "ordinal": 27,
      "text": "MySQL ",
      "top": 226.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02"
      }
    },
    {
      "id": "p077-t0028",
      "page": 77,
      "ordinal": 28,
      "text": "连接器",
      "top": 226.0,
      "left": 206.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02"
      }
    },
    {
      "id": "p077-t0031",
      "page": 77,
      "ordinal": 31,
      "text": "首先需要在",
      "top": 276.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0032",
      "page": 77,
      "ordinal": 32,
      "text": " MySQL ",
      "top": 276.0,
      "left": 185.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0033",
      "page": 77,
      "ordinal": 33,
      "text": "客户端登陆才能使用，所以需要",
      "top": 276.0,
      "left": 240.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0035",
      "page": 77,
      "ordinal": 35,
      "text": "个连接器",
      "top": 276.0,
      "left": 449.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0037",
      "page": 77,
      "ordinal": 37,
      "text": "来连接用户和",
      "top": 276.0,
      "left": 511.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0038",
      "page": 77,
      "ordinal": 38,
      "text": " MySQL ",
      "top": 276.0,
      "left": 599.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0039",
      "page": 77,
      "ordinal": 39,
      "text": "数据库，我们",
      "top": 276.0,
      "left": 654.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0041",
      "page": 77,
      "ordinal": 41,
      "text": "一般",
      "top": 276.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0042",
      "page": 77,
      "ordinal": 42,
      "text": "是使用",
      "top": 300.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0043",
      "page": 77,
      "ordinal": 43,
      "text": " mysql-u ",
      "top": 300.0,
      "left": 156.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0044",
      "page": 77,
      "ordinal": 44,
      "text": "用户名",
      "top": 300.0,
      "left": 218.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0045",
      "page": 77,
      "ordinal": 45,
      "text": "-p ",
      "top": 300.0,
      "left": 261.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0046",
      "page": 77,
      "ordinal": 46,
      "text": "密码",
      "top": 300.0,
      "left": 279.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0048",
      "page": 77,
      "ordinal": 48,
      "text": "来进行",
      "top": 324.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0049",
      "page": 77,
      "ordinal": 49,
      "text": " MySQL ",
      "top": 324.0,
      "left": 156.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0050",
      "page": 77,
      "ordinal": 50,
      "text": "登陆，和服务端建立连接。在完成",
      "top": 324.0,
      "left": 211.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0051",
      "page": 77,
      "ordinal": 51,
      "text": " TCP ",
      "top": 324.0,
      "left": 430.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0052",
      "page": 77,
      "ordinal": 52,
      "text": "握手后，连接器会根据你",
      "top": 324.0,
      "left": 464.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0054",
      "page": 77,
      "ordinal": 54,
      "text": "输入的用户名和密码验",
      "top": 324.0,
      "left": 629.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0055",
      "page": 77,
      "ordinal": 55,
      "text": "证你的登录身份。如果用户名或者密码错误，",
      "top": 347.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0056",
      "page": 77,
      "ordinal": 56,
      "text": "MySQL ",
      "top": 347.0,
      "left": 404.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0057",
      "page": 77,
      "ordinal": 57,
      "text": "就",
      "top": 347.0,
      "left": 456.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0059",
      "page": 77,
      "ordinal": 59,
      "text": "会提示",
      "top": 347.0,
      "left": 474.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0060",
      "page": 77,
      "ordinal": 60,
      "text": " Access denied for user",
      "top": 347.0,
      "left": 518.0,
      "width": 157.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0061",
      "page": 77,
      "ordinal": 61,
      "text": "，来结束执行。",
      "top": 347.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0062",
      "page": 77,
      "ordinal": 62,
      "text": "如果登录成功后，",
      "top": 370.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0063",
      "page": 77,
      "ordinal": 63,
      "text": "MySQL ",
      "top": 370.0,
      "left": 229.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0064",
      "page": 77,
      "ordinal": 64,
      "text": "会根",
      "top": 370.0,
      "left": 280.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0066",
      "page": 77,
      "ordinal": 66,
      "text": "据权限表中的记录来判定你的权限。",
      "top": 370.0,
      "left": 313.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h02",
        "heading_id": "p077-h02",
        "block_id": "q-p077-h02-b001"
      }
    },
    {
      "id": "p077-t0068",
      "page": 77,
      "ordinal": 68,
      "text": "MySQL ",
      "top": 404.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03"
      }
    },
    {
      "id": "p077-t0069",
      "page": 77,
      "ordinal": 69,
      "text": "查询缓存",
      "top": 404.0,
      "left": 206.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03"
      }
    },
    {
      "id": "p077-t0072",
      "page": 77,
      "ordinal": 72,
      "text": "连接完成后，你就可以执行",
      "top": 455.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0073",
      "page": 77,
      "ordinal": 73,
      "text": " SQL ",
      "top": 455.0,
      "left": 287.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0074",
      "page": 77,
      "ordinal": 74,
      "text": "语句了，这行逻辑就会来到第二步",
      "top": 455.0,
      "left": 322.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0075",
      "page": 77,
      "ordinal": 75,
      "text": ":",
      "top": 455.0,
      "left": 541.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0076",
      "page": 77,
      "ordinal": 76,
      "text": "查询缓存。",
      "top": 455.0,
      "left": 545.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0077",
      "page": 77,
      "ordinal": 77,
      "text": " MySQL ",
      "top": 455.0,
      "left": 618.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0078",
      "page": 77,
      "ordinal": 78,
      "text": "在得到一个执行",
      "top": 455.0,
      "left": 673.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0079",
      "page": 77,
      "ordinal": 79,
      "text": "请求后，会首先去查询缓存",
      "top": 479.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0081",
      "page": 77,
      "ordinal": 81,
      "text": "中查找，是否执行过这条",
      "top": 479.0,
      "left": 291.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0082",
      "page": 77,
      "ordinal": 82,
      "text": " SQL ",
      "top": 479.0,
      "left": 452.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0083",
      "page": 77,
      "ordinal": 83,
      "text": "语句，之前执行过的语句以及结果会以",
      "top": 479.0,
      "left": 487.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0084",
      "page": 77,
      "ordinal": 84,
      "text": " key-",
      "top": 479.0,
      "left": 735.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0085",
      "page": 77,
      "ordinal": 85,
      "text": "value ",
      "top": 503.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0086",
      "page": 77,
      "ordinal": 86,
      "text": "对的形式，被直接放在",
      "top": 503.0,
      "left": 152.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0088",
      "page": 77,
      "ordinal": 88,
      "text": "内存中。",
      "top": 503.0,
      "left": 302.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0089",
      "page": 77,
      "ordinal": 89,
      "text": "key ",
      "top": 503.0,
      "left": 360.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0090",
      "page": 77,
      "ordinal": 90,
      "text": "是查询语句，",
      "top": 503.0,
      "left": 387.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0091",
      "page": 77,
      "ordinal": 91,
      "text": "value ",
      "top": 503.0,
      "left": 475.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0092",
      "page": 77,
      "ordinal": 92,
      "text": "是查询的结果。",
      "top": 503.0,
      "left": 515.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0094",
      "page": 77,
      "ordinal": 94,
      "text": "如果通过",
      "top": 503.0,
      "left": 622.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0095",
      "page": 77,
      "ordinal": 95,
      "text": " key ",
      "top": 503.0,
      "left": 680.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0096",
      "page": 77,
      "ordinal": 96,
      "text": "能够查找",
      "top": 503.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0097",
      "page": 77,
      "ordinal": 97,
      "text": "到这条",
      "top": 525.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0098",
      "page": 77,
      "ordinal": 98,
      "text": " SQL ",
      "top": 525.0,
      "left": 156.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0099",
      "page": 77,
      "ordinal": 99,
      "text": "语句，就直接妾返回",
      "top": 525.0,
      "left": 190.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0100",
      "page": 77,
      "ordinal": 100,
      "text": " SQL ",
      "top": 525.0,
      "left": 322.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0101",
      "page": 77,
      "ordinal": 101,
      "text": "的执行结果。如果语句不在查询缓存中，就会继续后面的执行阶",
      "top": 525.0,
      "left": 356.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0102",
      "page": 77,
      "ordinal": 102,
      "text": "段。执行完成后，执行结果",
      "top": 549.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0104",
      "page": 77,
      "ordinal": 104,
      "text": "就会被放入查询缓存中。",
      "top": 549.0,
      "left": 291.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0106",
      "page": 77,
      "ordinal": 106,
      "text": "可以看到，如果查询命中缓存，",
      "top": 549.0,
      "left": 456.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0107",
      "page": 77,
      "ordinal": 107,
      "text": "MySQL ",
      "top": 549.0,
      "left": 660.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0108",
      "page": 77,
      "ordinal": 108,
      "text": "不需要执",
      "top": 549.0,
      "left": 712.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0109",
      "page": 77,
      "ordinal": 109,
      "text": "行后面的复杂操作，就可以直",
      "top": 572.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0111",
      "page": 77,
      "ordinal": 111,
      "text": "接返回结果，效率会很高。",
      "top": 572.0,
      "left": 306.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h03",
        "heading_id": "p077-h03",
        "block_id": "q-p077-h03-b001"
      }
    },
    {
      "id": "p077-t0113",
      "page": 77,
      "ordinal": 113,
      "text": "MySQL ",
      "top": 607.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04"
      }
    },
    {
      "id": "p077-t0114",
      "page": 77,
      "ordinal": 114,
      "text": "分析器",
      "top": 607.0,
      "left": 206.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04"
      }
    },
    {
      "id": "p077-t0117",
      "page": 77,
      "ordinal": 117,
      "text": "如果没有命中查询，就开始执行真正的",
      "top": 658.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b001"
      }
    },
    {
      "id": "p077-t0118",
      "page": 77,
      "ordinal": 118,
      "text": " SQL ",
      "top": 658.0,
      "left": 360.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b001"
      }
    },
    {
      "id": "p077-t0119",
      "page": 77,
      "ordinal": 119,
      "text": "语句。",
      "top": 658.0,
      "left": 395.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b001"
      }
    },
    {
      "id": "p077-t0121",
      "page": 77,
      "ordinal": 121,
      "text": "1. ",
      "top": 693.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0122",
      "page": 77,
      "ordinal": 122,
      "text": "首先，",
      "top": 693.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0123",
      "page": 77,
      "ordinal": 123,
      "text": "MySQL ",
      "top": 693.0,
      "left": 189.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0124",
      "page": 77,
      "ordinal": 124,
      "text": "会根据你写的",
      "top": 693.0,
      "left": 241.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0125",
      "page": 77,
      "ordinal": 125,
      "text": " SQL ",
      "top": 693.0,
      "left": 329.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0126",
      "page": 77,
      "ordinal": 126,
      "text": "语句进行解析，分析器会先做词法分析，你",
      "top": 693.0,
      "left": 363.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0128",
      "page": 77,
      "ordinal": 128,
      "text": "写的",
      "top": 693.0,
      "left": 645.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0129",
      "page": 77,
      "ordinal": 129,
      "text": " SQL ",
      "top": 693.0,
      "left": 674.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0130",
      "page": 77,
      "ordinal": 130,
      "text": "就是由多个",
      "top": 693.0,
      "left": 709.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0131",
      "page": 77,
      "ordinal": 131,
      "text": "字符串和空格组成的一条",
      "top": 716.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0132",
      "page": 77,
      "ordinal": 132,
      "text": " SQL ",
      "top": 716.0,
      "left": 306.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0133",
      "page": 77,
      "ordinal": 133,
      "text": "语句，",
      "top": 716.0,
      "left": 341.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0134",
      "page": 77,
      "ordinal": 134,
      "text": "MySQL ",
      "top": 716.0,
      "left": 385.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0135",
      "page": 77,
      "ordinal": 135,
      "text": "需要识别出",
      "top": 716.0,
      "left": 436.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0137",
      "page": 77,
      "ordinal": 137,
      "text": "里面的字符串是什么，代表什么。",
      "top": 716.0,
      "left": 513.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b002"
      }
    },
    {
      "id": "p077-t0139",
      "page": 77,
      "ordinal": 139,
      "text": "2. ",
      "top": 747.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0140",
      "page": 77,
      "ordinal": 140,
      "text": "然后进行语法分析，根据词法分析的结果，语法分析器会根据语法规则，",
      "top": 747.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0142",
      "page": 77,
      "ordinal": 142,
      "text": "判断你输入的这个",
      "top": 747.0,
      "left": 617.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0143",
      "page": 77,
      "ordinal": 143,
      "text": " SQL ",
      "top": 747.0,
      "left": 734.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0144",
      "page": 77,
      "ordinal": 144,
      "text": "语句是否满足",
      "top": 770.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0145",
      "page": 77,
      "ordinal": 145,
      "text": " MySQL ",
      "top": 770.0,
      "left": 233.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0146",
      "page": 77,
      "ordinal": 146,
      "text": "语法。如果",
      "top": 770.0,
      "left": 288.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0147",
      "page": 77,
      "ordinal": 147,
      "text": " SQL ",
      "top": 770.0,
      "left": 362.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0148",
      "page": 77,
      "ordinal": 148,
      "text": "语句不正确，",
      "top": 770.0,
      "left": 396.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0150",
      "page": 77,
      "ordinal": 150,
      "text": "就会提示",
      "top": 770.0,
      "left": 488.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0151",
      "page": 77,
      "ordinal": 151,
      "text": " You have an error in your SQL ",
      "top": 770.0,
      "left": 546.0,
      "width": 212.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0152",
      "page": 77,
      "ordinal": 152,
      "text": "syntax  ",
      "top": 794.0,
      "left": 146.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h04",
        "heading_id": "p077-h04",
        "block_id": "q-p077-h04-b003"
      }
    },
    {
      "id": "p077-t0153",
      "page": 77,
      "ordinal": 153,
      "text": "MySQL ",
      "top": 827.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05"
      }
    },
    {
      "id": "p077-t0154",
      "page": 77,
      "ordinal": 154,
      "text": "优化器",
      "top": 827.0,
      "left": 206.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05"
      }
    },
    {
      "id": "p077-t0157",
      "page": 77,
      "ordinal": 157,
      "text": "经过分析器的词法分析和语法分析后，你这条",
      "top": 878.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0158",
      "page": 77,
      "ordinal": 158,
      "text": " SQL ",
      "top": 878.0,
      "left": 404.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0159",
      "page": 77,
      "ordinal": 159,
      "text": "就合法了，",
      "top": 878.0,
      "left": 439.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0160",
      "page": 77,
      "ordinal": 160,
      "text": "MySQL ",
      "top": 878.0,
      "left": 512.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0161",
      "page": 77,
      "ordinal": 161,
      "text": "就知道你",
      "top": 878.0,
      "left": 563.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0163",
      "page": 77,
      "ordinal": 163,
      "text": "要做什么了。但是在执",
      "top": 878.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0164",
      "page": 77,
      "ordinal": 164,
      "text": "行前，还需要进行优化器的处理，优化器会判断你使用",
      "top": 902.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0166",
      "page": 77,
      "ordinal": 166,
      "text": "了哪种索引，使用了何种连接，优化器的作用就",
      "top": 902.0,
      "left": 467.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0167",
      "page": 77,
      "ordinal": 167,
      "text": "是确定效率最高的执行方案",
      "top": 926.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h05",
        "heading_id": "p077-h05",
        "block_id": "q-p077-h05-b001"
      }
    },
    {
      "id": "p077-t0169",
      "page": 77,
      "ordinal": 169,
      "text": "MySQL ",
      "top": 960.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06"
      }
    },
    {
      "id": "p077-t0170",
      "page": 77,
      "ordinal": 170,
      "text": "执行器",
      "top": 960.0,
      "left": 206.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06"
      }
    },
    {
      "id": "p077-t0173",
      "page": 77,
      "ordinal": 173,
      "text": "MySQL ",
      "top": 1010.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0174",
      "page": 77,
      "ordinal": 174,
      "text": "通过分析器知道了你的",
      "top": 1010.0,
      "left": 163.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0175",
      "page": 77,
      "ordinal": 175,
      "text": " SQL ",
      "top": 1010.0,
      "left": 309.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0176",
      "page": 77,
      "ordinal": 176,
      "text": "语句是否合法，你想要做什么操作，通过优",
      "top": 1010.0,
      "left": 344.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0178",
      "page": 77,
      "ordinal": 178,
      "text": "化器知道了该怎么做效",
      "top": 1010.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0179",
      "page": 77,
      "ordinal": 179,
      "text": "率最高，然后就进入了执行阶段，开始执行这条",
      "top": 1034.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0180",
      "page": 77,
      "ordinal": 180,
      "text": " SQL ",
      "top": 1034.0,
      "left": 419.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0181",
      "page": 77,
      "ordinal": 181,
      "text": "语",
      "top": 1034.0,
      "left": 453.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0183",
      "page": 77,
      "ordinal": 183,
      "text": "句在执行阶段，",
      "top": 1034.0,
      "left": 472.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0184",
      "page": 77,
      "ordinal": 184,
      "text": "MySQL ",
      "top": 1034.0,
      "left": 574.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0185",
      "page": 77,
      "ordinal": 185,
      "text": "首先会判断你有没有执",
      "top": 1034.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0186",
      "page": 77,
      "ordinal": 186,
      "text": "行这条语句的权限，没有权限的",
      "top": 1057.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0188",
      "page": 77,
      "ordinal": 188,
      "text": "话，就会返回没有权限的错误。如果有权限，就打开表继续执行。打开",
      "top": 1057.0,
      "left": 320.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0189",
      "page": 77,
      "ordinal": 189,
      "text": "表的时候，执行器就会根据表的引擎定义，去使用这个引擎提供的接口。对于有索引的表，执行的逻辑",
      "top": 1081.0,
      "left": 112.0,
      "width": 658.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p077-t0190",
      "page": 77,
      "ordinal": 190,
      "text": "也差不多。",
      "top": 1104.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p077-h06",
        "heading_id": "p077-h06",
        "block_id": "q-p077-h06-b001"
      }
    },
    {
      "id": "p078-t0001",
      "page": 78,
      "ordinal": 1,
      "text": "什么是临时表，何时删除临时表？",
      "top": 40.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01"
      }
    },
    {
      "id": "p078-t0004",
      "page": 78,
      "ordinal": 4,
      "text": "什么是临时表",
      "top": 91.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0005",
      "page": 78,
      "ordinal": 5,
      "text": "?MySQL ",
      "top": 91.0,
      "left": 200.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0006",
      "page": 78,
      "ordinal": 6,
      "text": "在执行",
      "top": 91.0,
      "left": 257.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0007",
      "page": 78,
      "ordinal": 7,
      "text": " SQL ",
      "top": 91.0,
      "left": 301.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0008",
      "page": 78,
      "ordinal": 8,
      "text": "语句的过程中",
      "top": 91.0,
      "left": 336.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0010",
      "page": 78,
      "ordinal": 10,
      "text": "通常会临时创建一些存储中间",
      "top": 91.0,
      "left": 427.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0012",
      "page": 78,
      "ordinal": 12,
      "text": "结果集的表，临时",
      "top": 91.0,
      "left": 621.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0014",
      "page": 78,
      "ordinal": 14,
      "text": "表只",
      "top": 91.0,
      "left": 742.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0015",
      "page": 78,
      "ordinal": 15,
      "text": "对当前连接可见，在连接关闭时，临时表会被删除并",
      "top": 114.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0017",
      "page": 78,
      "ordinal": 17,
      "text": "释放所有表空间。",
      "top": 114.0,
      "left": 452.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0019",
      "page": 78,
      "ordinal": 19,
      "text": "临时表分为两种",
      "top": 114.0,
      "left": 573.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0020",
      "page": 78,
      "ordinal": 20,
      "text": ":",
      "top": 114.0,
      "left": 675.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0021",
      "page": 78,
      "ordinal": 21,
      "text": "一种是内存临时",
      "top": 114.0,
      "left": 679.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0022",
      "page": 78,
      "ordinal": 22,
      "text": "表，一种是磁盘临时表，什么区别呢",
      "top": 137.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0023",
      "page": 78,
      "ordinal": 23,
      "text": "?",
      "top": 137.0,
      "left": 346.0,
      "width": 6.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0024",
      "page": 78,
      "ordinal": 24,
      "text": "内存临",
      "top": 137.0,
      "left": 352.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0026",
      "page": 78,
      "ordinal": 26,
      "text": "时表使用的是",
      "top": 137.0,
      "left": 400.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0027",
      "page": 78,
      "ordinal": 27,
      "text": " MEMORY ",
      "top": 137.0,
      "left": 487.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0028",
      "page": 78,
      "ordinal": 28,
      "text": "存储引擎，而临时表采用的是",
      "top": 137.0,
      "left": 558.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0030",
      "page": 78,
      "ordinal": 30,
      "text": "MylSAM ",
      "top": 161.0,
      "left": 112.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0031",
      "page": 78,
      "ordinal": 31,
      "text": "存储引擎。",
      "top": 161.0,
      "left": 170.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0032",
      "page": 78,
      "ordinal": 32,
      "text": " MySQL ",
      "top": 161.0,
      "left": 243.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0033",
      "page": 78,
      "ordinal": 33,
      "text": "会在下面这几种情况产生临时表。",
      "top": 161.0,
      "left": 299.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b001"
      }
    },
    {
      "id": "p078-t0035",
      "page": 78,
      "ordinal": 35,
      "text": "1. ",
      "top": 195.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0036",
      "page": 78,
      "ordinal": 36,
      "text": "使用",
      "top": 195.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0037",
      "page": 78,
      "ordinal": 37,
      "text": " UNION ",
      "top": 195.0,
      "left": 175.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0038",
      "page": 78,
      "ordinal": 38,
      "text": "查询",
      "top": 195.0,
      "left": 231.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0039",
      "page": 78,
      "ordinal": 39,
      "text": ":UNION ",
      "top": 195.0,
      "left": 260.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0040",
      "page": 78,
      "ordinal": 40,
      "text": "有两种，一种是",
      "top": 195.0,
      "left": 316.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0041",
      "page": 78,
      "ordinal": 41,
      "text": " UNION",
      "top": 195.0,
      "left": 418.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0042",
      "page": 78,
      "ordinal": 42,
      "text": "，一种是",
      "top": 195.0,
      "left": 470.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0043",
      "page": 78,
      "ordinal": 43,
      "text": " UNION ALL",
      "top": 195.0,
      "left": 528.0,
      "width": 80.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0044",
      "page": 78,
      "ordinal": 44,
      "text": "，它们",
      "top": 195.0,
      "left": 609.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0046",
      "page": 78,
      "ordinal": 46,
      "text": "都用于联合查询",
      "top": 195.0,
      "left": 656.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0047",
      "page": 78,
      "ordinal": 47,
      "text": ";",
      "top": 195.0,
      "left": 759.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0048",
      "page": 78,
      "ordinal": 48,
      "text": "区",
      "top": 195.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0049",
      "page": 78,
      "ordinal": 49,
      "text": "别是使用",
      "top": 219.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0050",
      "page": 78,
      "ordinal": 50,
      "text": " UNION ",
      "top": 219.0,
      "left": 204.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0051",
      "page": 78,
      "ordinal": 51,
      "text": "会去掉两个表中的重复数据，相当于对",
      "top": 219.0,
      "left": 260.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0053",
      "page": 78,
      "ordinal": 53,
      "text": "结果集做了一下",
      "top": 219.0,
      "left": 512.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0055",
      "page": 78,
      "ordinal": 55,
      "text": "去重",
      "top": 219.0,
      "left": 618.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0056",
      "page": 78,
      "ordinal": 56,
      "text": "(distinct)",
      "top": 219.0,
      "left": 648.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0057",
      "page": 78,
      "ordinal": 57,
      "text": "。使用",
      "top": 219.0,
      "left": 706.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0059",
      "page": 78,
      "ordinal": 59,
      "text": "UNIONALL",
      "top": 243.0,
      "left": 146.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0060",
      "page": 78,
      "ordinal": 60,
      "text": "，则不会排重，返回所有",
      "top": 243.0,
      "left": 218.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0062",
      "page": 78,
      "ordinal": 62,
      "text": "的行。使用",
      "top": 243.0,
      "left": 383.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0063",
      "page": 78,
      "ordinal": 63,
      "text": " UNION ",
      "top": 243.0,
      "left": 456.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0064",
      "page": 78,
      "ordinal": 64,
      "text": "查询会产生临时表。",
      "top": 243.0,
      "left": 512.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b002"
      }
    },
    {
      "id": "p078-t0066",
      "page": 78,
      "ordinal": 66,
      "text": "2. ",
      "top": 273.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0067",
      "page": 78,
      "ordinal": 67,
      "text": "使用",
      "top": 273.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0068",
      "page": 78,
      "ordinal": 68,
      "text": " TEMPTABLE ",
      "top": 273.0,
      "left": 175.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0069",
      "page": 78,
      "ordinal": 69,
      "text": "算法或者是",
      "top": 273.0,
      "left": 263.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0070",
      "page": 78,
      "ordinal": 70,
      "text": " UNION ",
      "top": 273.0,
      "left": 336.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0071",
      "page": 78,
      "ordinal": 71,
      "text": "查询中的视图。",
      "top": 273.0,
      "left": 392.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0072",
      "page": 78,
      "ordinal": 72,
      "text": "TEMPTABLE ",
      "top": 273.0,
      "left": 494.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0073",
      "page": 78,
      "ordinal": 73,
      "text": "算法是一种创",
      "top": 273.0,
      "left": 579.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0075",
      "page": 78,
      "ordinal": 75,
      "text": "建临时表的算",
      "top": 273.0,
      "left": 671.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0076",
      "page": 78,
      "ordinal": 76,
      "text": "法，它是将结果放置到临时表中，意味这要",
      "top": 297.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0077",
      "page": 78,
      "ordinal": 77,
      "text": " MySQL ",
      "top": 297.0,
      "left": 423.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0078",
      "page": 78,
      "ordinal": 78,
      "text": "要先创建",
      "top": 297.0,
      "left": 479.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0080",
      "page": 78,
      "ordinal": 80,
      "text": "好一个临时表，然后将结果放到临时",
      "top": 297.0,
      "left": 541.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0081",
      "page": 78,
      "ordinal": 81,
      "text": "表中去，然后再使用这个临时表进行",
      "top": 320.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0083",
      "page": 78,
      "ordinal": 83,
      "text": "相应的查询。",
      "top": 320.0,
      "left": 383.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b003"
      }
    },
    {
      "id": "p078-t0085",
      "page": 78,
      "ordinal": 85,
      "text": "3. ORDER BY ",
      "top": 351.0,
      "left": 129.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b004"
      }
    },
    {
      "id": "p078-t0086",
      "page": 78,
      "ordinal": 86,
      "text": "和",
      "top": 351.0,
      "left": 219.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b004"
      }
    },
    {
      "id": "p078-t0087",
      "page": 78,
      "ordinal": 87,
      "text": " GROUPBY ",
      "top": 351.0,
      "left": 234.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b004"
      }
    },
    {
      "id": "p078-t0088",
      "page": 78,
      "ordinal": 88,
      "text": "的子句不一样时也会产生临时表。",
      "top": 351.0,
      "left": 309.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b004"
      }
    },
    {
      "id": "p078-t0089",
      "page": 78,
      "ordinal": 89,
      "text": "4. DISTINCT ",
      "top": 382.0,
      "left": 129.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b005"
      }
    },
    {
      "id": "p078-t0090",
      "page": 78,
      "ordinal": 90,
      "text": "查询并且加上",
      "top": 382.0,
      "left": 213.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b005"
      }
    },
    {
      "id": "p078-t0091",
      "page": 78,
      "ordinal": 91,
      "text": " ORDER BY ",
      "top": 382.0,
      "left": 300.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b005"
      }
    },
    {
      "id": "p078-t0092",
      "page": 78,
      "ordinal": 92,
      "text": "时",
      "top": 382.0,
      "left": 378.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b005"
      }
    },
    {
      "id": "p078-t0093",
      "page": 78,
      "ordinal": 93,
      "text": ";",
      "top": 382.0,
      "left": 392.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b005"
      }
    },
    {
      "id": "p078-t0094",
      "page": 78,
      "ordinal": 94,
      "text": "5. SQL ",
      "top": 413.0,
      "left": 129.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0095",
      "page": 78,
      "ordinal": 95,
      "text": "中用到",
      "top": 413.0,
      "left": 176.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0096",
      "page": 78,
      "ordinal": 96,
      "text": " SQL_SMALL_RESULT ",
      "top": 413.0,
      "left": 220.0,
      "width": 145.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0097",
      "page": 78,
      "ordinal": 97,
      "text": "选项时",
      "top": 413.0,
      "left": 365.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0098",
      "page": 78,
      "ordinal": 98,
      "text": ";",
      "top": 413.0,
      "left": 409.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0099",
      "page": 78,
      "ordinal": 99,
      "text": "如果查询结果比较小的时候，可以加",
      "top": 413.0,
      "left": 413.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0101",
      "page": 78,
      "ordinal": 101,
      "text": "上",
      "top": 413.0,
      "left": 651.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0102",
      "page": 78,
      "ordinal": 102,
      "text": " SQL SMALL ",
      "top": 413.0,
      "left": 665.0,
      "width": 84.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0103",
      "page": 78,
      "ordinal": 103,
      "text": "RESULT ",
      "top": 436.0,
      "left": 146.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0104",
      "page": 78,
      "ordinal": 104,
      "text": "来优化，产生临时表",
      "top": 436.0,
      "left": 201.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b006"
      }
    },
    {
      "id": "p078-t0106",
      "page": 78,
      "ordinal": 106,
      "text": "6. FROM ",
      "top": 467.0,
      "left": 129.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b007"
      }
    },
    {
      "id": "p078-t0107",
      "page": 78,
      "ordinal": 107,
      "text": "中的子查询",
      "top": 467.0,
      "left": 190.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b007"
      }
    },
    {
      "id": "p078-t0108",
      "page": 78,
      "ordinal": 108,
      "text": "; ",
      "top": 467.0,
      "left": 264.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b007"
      }
    },
    {
      "id": "p078-t0109",
      "page": 78,
      "ordinal": 109,
      "text": "7. EXPLAIN ",
      "top": 497.0,
      "left": 129.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0110",
      "page": 78,
      "ordinal": 110,
      "text": "查看执行计划结果的",
      "top": 497.0,
      "left": 207.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0111",
      "page": 78,
      "ordinal": 111,
      "text": " Extra ",
      "top": 497.0,
      "left": 338.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0112",
      "page": 78,
      "ordinal": 112,
      "text": "列中，如果使用",
      "top": 497.0,
      "left": 381.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0113",
      "page": 78,
      "ordinal": 113,
      "text": " Using Temporary ",
      "top": 497.0,
      "left": 483.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0114",
      "page": 78,
      "ordinal": 114,
      "text": "就",
      "top": 497.0,
      "left": 608.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0116",
      "page": 78,
      "ordinal": 116,
      "text": "表示会用到临时表",
      "top": 497.0,
      "left": 627.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h01",
        "heading_id": "p078-h01",
        "block_id": "q-p078-h01-b008"
      }
    },
    {
      "id": "p078-t0118",
      "page": 78,
      "ordinal": 118,
      "text": "谈谈",
      "top": 532.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02"
      }
    },
    {
      "id": "p078-t0119",
      "page": 78,
      "ordinal": 119,
      "text": " SQL ",
      "top": 532.0,
      "left": 163.0,
      "width": 62.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02"
      }
    },
    {
      "id": "p078-t0120",
      "page": 78,
      "ordinal": 120,
      "text": "优化的经验",
      "top": 532.0,
      "left": 225.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02"
      }
    },
    {
      "id": "p078-t0123",
      "page": 78,
      "ordinal": 123,
      "text": "1. ",
      "top": 582.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0124",
      "page": 78,
      "ordinal": 124,
      "text": "查询语句无论是使用哪种判断条件等于、小于、大于，",
      "top": 582.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0125",
      "page": 78,
      "ordinal": 125,
      "text": "WHERE ",
      "top": 582.0,
      "left": 497.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0126",
      "page": 78,
      "ordinal": 126,
      "text": "左侧的条件",
      "top": 582.0,
      "left": 550.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0128",
      "page": 78,
      "ordinal": 128,
      "text": "查询字段不要使用函数",
      "top": 582.0,
      "left": 627.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0129",
      "page": 78,
      "ordinal": 129,
      "text": "或者表达式",
      "top": 606.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b001"
      }
    },
    {
      "id": "p078-t0131",
      "page": 78,
      "ordinal": 131,
      "text": "2. ",
      "top": 636.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0132",
      "page": 78,
      "ordinal": 132,
      "text": "使用",
      "top": 636.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0133",
      "page": 78,
      "ordinal": 133,
      "text": " EXPLAIN ",
      "top": 636.0,
      "left": 175.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0134",
      "page": 78,
      "ordinal": 134,
      "text": "命令优化你的",
      "top": 636.0,
      "left": 240.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0135",
      "page": 78,
      "ordinal": 135,
      "text": " SELECT ",
      "top": 636.0,
      "left": 327.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0136",
      "page": 78,
      "ordinal": 136,
      "text": "查询，对于复杂、效率低的",
      "top": 636.0,
      "left": 384.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0137",
      "page": 78,
      "ordinal": 137,
      "text": " SQL ",
      "top": 636.0,
      "left": 560.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0138",
      "page": 78,
      "ordinal": 138,
      "text": "语",
      "top": 636.0,
      "left": 594.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0140",
      "page": 78,
      "ordinal": 140,
      "text": "句，我们通常是使用",
      "top": 636.0,
      "left": 613.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0142",
      "page": 78,
      "ordinal": 142,
      "text": "explainsql ",
      "top": 660.0,
      "left": 146.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0143",
      "page": 78,
      "ordinal": 143,
      "text": "来分析这条",
      "top": 660.0,
      "left": 218.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0144",
      "page": 78,
      "ordinal": 144,
      "text": " SQL ",
      "top": 660.0,
      "left": 291.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0145",
      "page": 78,
      "ordinal": 145,
      "text": "语句，这样方便我们分",
      "top": 660.0,
      "left": 326.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0147",
      "page": 78,
      "ordinal": 147,
      "text": "析，进行优化。",
      "top": 660.0,
      "left": 476.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b002"
      }
    },
    {
      "id": "p078-t0149",
      "page": 78,
      "ordinal": 149,
      "text": "3. ",
      "top": 690.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0150",
      "page": 78,
      "ordinal": 150,
      "text": "当你的",
      "top": 690.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0151",
      "page": 78,
      "ordinal": 151,
      "text": " SELECT ",
      "top": 690.0,
      "left": 189.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0152",
      "page": 78,
      "ordinal": 152,
      "text": "查询语句只需要使用一条记录时，要使用",
      "top": 690.0,
      "left": 246.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0153",
      "page": 78,
      "ordinal": 153,
      "text": " LIMIT 1",
      "top": 690.0,
      "left": 509.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0154",
      "page": 78,
      "ordinal": 154,
      "text": "。不要",
      "top": 690.0,
      "left": 562.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0156",
      "page": 78,
      "ordinal": 156,
      "text": "直接使用",
      "top": 690.0,
      "left": 610.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0157",
      "page": 78,
      "ordinal": 157,
      "text": " SELECT*",
      "top": 690.0,
      "left": 669.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0158",
      "page": 78,
      "ordinal": 158,
      "text": "，而应",
      "top": 690.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0159",
      "page": 78,
      "ordinal": 159,
      "text": "该使用具体需要查询的表字段，因为使用",
      "top": 714.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0160",
      "page": 78,
      "ordinal": 160,
      "text": " EXPLAIN ",
      "top": 714.0,
      "left": 409.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0161",
      "page": 78,
      "ordinal": 161,
      "text": "进行分析时，",
      "top": 714.0,
      "left": 474.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0162",
      "page": 78,
      "ordinal": 162,
      "text": "SELECT\"",
      "top": 714.0,
      "left": 561.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0163",
      "page": 78,
      "ordinal": 163,
      "text": "使用的是全表扫描，也就",
      "top": 714.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0164",
      "page": 78,
      "ordinal": 164,
      "text": "是",
      "top": 738.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0165",
      "page": 78,
      "ordinal": 165,
      "text": " type =all ",
      "top": 738.0,
      "left": 160.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0166",
      "page": 78,
      "ordinal": 166,
      "text": "。",
      "top": 738.0,
      "left": 225.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b003"
      }
    },
    {
      "id": "p078-t0168",
      "page": 78,
      "ordinal": 168,
      "text": "4. ",
      "top": 768.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b004"
      }
    },
    {
      "id": "p078-t0169",
      "page": 78,
      "ordinal": 169,
      "text": "为每一张表设置一个",
      "top": 768.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b004"
      }
    },
    {
      "id": "p078-t0170",
      "page": 78,
      "ordinal": 170,
      "text": " ID ",
      "top": 768.0,
      "left": 277.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b004"
      }
    },
    {
      "id": "p078-t0171",
      "page": 78,
      "ordinal": 171,
      "text": "属性。",
      "top": 768.0,
      "left": 299.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b004"
      }
    },
    {
      "id": "p078-t0173",
      "page": 78,
      "ordinal": 173,
      "text": "5. ",
      "top": 798.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b005"
      }
    },
    {
      "id": "p078-t0174",
      "page": 78,
      "ordinal": 174,
      "text": "避免在",
      "top": 798.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b005"
      }
    },
    {
      "id": "p078-t0175",
      "page": 78,
      "ordinal": 175,
      "text": " MHERE ",
      "top": 798.0,
      "left": 189.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b005"
      }
    },
    {
      "id": "p078-t0176",
      "page": 78,
      "ordinal": 176,
      "text": "字句中对字段进行",
      "top": 798.0,
      "left": 246.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b005"
      }
    },
    {
      "id": "p078-t0177",
      "page": 78,
      "ordinal": 177,
      "text": " NULL ",
      "top": 798.0,
      "left": 363.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b005"
      }
    },
    {
      "id": "p078-t0178",
      "page": 78,
      "ordinal": 178,
      "text": "6. ",
      "top": 830.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0179",
      "page": 78,
      "ordinal": 179,
      "text": "判断避免在",
      "top": 830.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0180",
      "page": 78,
      "ordinal": 180,
      "text": " WHERE ",
      "top": 830.0,
      "left": 219.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0181",
      "page": 78,
      "ordinal": 181,
      "text": "中使用",
      "top": 830.0,
      "left": 276.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0182",
      "page": 78,
      "ordinal": 182,
      "text": "!",
      "top": 830.0,
      "left": 320.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0183",
      "page": 78,
      "ordinal": 183,
      "text": "或",
      "top": 830.0,
      "left": 324.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0184",
      "page": 78,
      "ordinal": 184,
      "text": ">",
      "top": 830.0,
      "left": 338.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0185",
      "page": 78,
      "ordinal": 185,
      "text": "操作符",
      "top": 830.0,
      "left": 347.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b006"
      }
    },
    {
      "id": "p078-t0187",
      "page": 78,
      "ordinal": 187,
      "text": "7. ",
      "top": 860.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b007"
      }
    },
    {
      "id": "p078-t0188",
      "page": 78,
      "ordinal": 188,
      "text": "使用",
      "top": 860.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b007"
      }
    },
    {
      "id": "p078-t0189",
      "page": 78,
      "ordinal": 189,
      "text": " BETWEEN AND ",
      "top": 860.0,
      "left": 175.0,
      "width": 109.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b007"
      }
    },
    {
      "id": "p078-t0190",
      "page": 78,
      "ordinal": 190,
      "text": "替代",
      "top": 860.0,
      "left": 284.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b007"
      }
    },
    {
      "id": "p078-t0191",
      "page": 78,
      "ordinal": 191,
      "text": " IN ",
      "top": 860.0,
      "left": 313.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b007"
      }
    },
    {
      "id": "p078-t0192",
      "page": 78,
      "ordinal": 192,
      "text": "8. ",
      "top": 891.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b008"
      }
    },
    {
      "id": "p078-t0193",
      "page": 78,
      "ordinal": 193,
      "text": "为搜索字段创建索引",
      "top": 891.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b008"
      }
    },
    {
      "id": "p078-t0195",
      "page": 78,
      "ordinal": 195,
      "text": "9. ",
      "top": 921.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0196",
      "page": 78,
      "ordinal": 196,
      "text": "选择正确的存储引擎，",
      "top": 921.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0197",
      "page": 78,
      "ordinal": 197,
      "text": "InnoDB",
      "top": 921.0,
      "left": 292.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0198",
      "page": 78,
      "ordinal": 198,
      "text": "、",
      "top": 921.0,
      "left": 343.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0199",
      "page": 78,
      "ordinal": 199,
      "text": "MyISAM",
      "top": 921.0,
      "left": 357.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0200",
      "page": 78,
      "ordinal": 200,
      "text": "、",
      "top": 921.0,
      "left": 413.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0201",
      "page": 78,
      "ordinal": 201,
      "text": "MEMORY ",
      "top": 921.0,
      "left": 427.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0202",
      "page": 78,
      "ordinal": 202,
      "text": "等",
      "top": 921.0,
      "left": 494.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b009"
      }
    },
    {
      "id": "p078-t0204",
      "page": 78,
      "ordinal": 204,
      "text": "10. ",
      "top": 953.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0205",
      "page": 78,
      "ordinal": 205,
      "text": "使用",
      "top": 953.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0206",
      "page": 78,
      "ordinal": 206,
      "text": " LIKE%abc%",
      "top": 953.0,
      "left": 175.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0207",
      "page": 78,
      "ordinal": 207,
      "text": "不会走索引，而使用",
      "top": 953.0,
      "left": 255.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0208",
      "page": 78,
      "ordinal": 208,
      "text": " LIKE abc%",
      "top": 953.0,
      "left": 387.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0209",
      "page": 78,
      "ordinal": 209,
      "text": "会走索引。",
      "top": 953.0,
      "left": 460.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b010"
      }
    },
    {
      "id": "p078-t0211",
      "page": 78,
      "ordinal": 211,
      "text": "11. ",
      "top": 983.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0212",
      "page": 78,
      "ordinal": 212,
      "text": "对于枚举类型的字段",
      "top": 983.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0213",
      "page": 78,
      "ordinal": 213,
      "text": "(",
      "top": 983.0,
      "left": 277.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0214",
      "page": 78,
      "ordinal": 214,
      "text": "即有固定罗列值的字段",
      "top": 983.0,
      "left": 281.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0215",
      "page": 78,
      "ordinal": 215,
      "text": ")",
      "top": 983.0,
      "left": 428.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0216",
      "page": 78,
      "ordinal": 216,
      "text": "，建议使用",
      "top": 983.0,
      "left": 432.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0217",
      "page": 78,
      "ordinal": 217,
      "text": " ENUM ",
      "top": 983.0,
      "left": 505.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0218",
      "page": 78,
      "ordinal": 218,
      "text": "而不是",
      "top": 983.0,
      "left": 556.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0219",
      "page": 78,
      "ordinal": 219,
      "text": " VARCHAR",
      "top": 983.0,
      "left": 600.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0220",
      "page": 78,
      "ordinal": 220,
      "text": "，如性别、星",
      "top": 983.0,
      "left": 669.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0221",
      "page": 78,
      "ordinal": 221,
      "text": "期、类型、类别等。",
      "top": 1007.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b011"
      }
    },
    {
      "id": "p078-t0223",
      "page": 78,
      "ordinal": 223,
      "text": "12. ",
      "top": 1037.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0224",
      "page": 78,
      "ordinal": 224,
      "text": "拆分大的",
      "top": 1037.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0225",
      "page": 78,
      "ordinal": 225,
      "text": " DELETE ",
      "top": 1037.0,
      "left": 204.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0226",
      "page": 78,
      "ordinal": 226,
      "text": "或",
      "top": 1037.0,
      "left": 262.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0227",
      "page": 78,
      "ordinal": 227,
      "text": " INSERT ",
      "top": 1037.0,
      "left": 277.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0228",
      "page": 78,
      "ordinal": 228,
      "text": "语句",
      "top": 1037.0,
      "left": 333.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b012"
      }
    },
    {
      "id": "p078-t0230",
      "page": 78,
      "ordinal": 230,
      "text": "13. ",
      "top": 1067.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b013"
      }
    },
    {
      "id": "p078-t0231",
      "page": 78,
      "ordinal": 231,
      "text": "选择合适的字段类型，选择标准是尽可能小、尽可能定长、尽可能使用整",
      "top": 1067.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b013"
      }
    },
    {
      "id": "p078-t0233",
      "page": 78,
      "ordinal": 233,
      "text": "数。",
      "top": 1067.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b013"
      }
    },
    {
      "id": "p078-t0235",
      "page": 78,
      "ordinal": 235,
      "text": "14. ",
      "top": 1099.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b014"
      }
    },
    {
      "id": "p078-t0236",
      "page": 78,
      "ordinal": 236,
      "text": "字段设计尽可能使用",
      "top": 1099.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b014"
      }
    },
    {
      "id": "p078-t0237",
      "page": 78,
      "ordinal": 237,
      "text": " NOT NULL ",
      "top": 1099.0,
      "left": 277.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b014"
      }
    },
    {
      "id": "p078-t0238",
      "page": 78,
      "ordinal": 238,
      "text": "15. ",
      "top": 1129.0,
      "left": 121.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b015"
      }
    },
    {
      "id": "p078-t0239",
      "page": 78,
      "ordinal": 239,
      "text": "进行水平切割或者垂直分割",
      "top": 1129.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p078-h02",
        "heading_id": "p078-h02",
        "block_id": "q-p078-h02-b015"
      }
    },
    {
      "id": "p079-t0001",
      "page": 79,
      "ordinal": 1,
      "text": "什么叫外链接？",
      "top": 40.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01"
      }
    },
    {
      "id": "p079-t0004",
      "page": 79,
      "ordinal": 4,
      "text": "外连接分为三种，分别是是左外连接",
      "top": 91.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0005",
      "page": 79,
      "ordinal": 5,
      "text": "(LEFT OUTER J0IN ",
      "top": 91.0,
      "left": 346.0,
      "width": 122.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0006",
      "page": 79,
      "ordinal": 6,
      "text": "或",
      "top": 91.0,
      "left": 468.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0007",
      "page": 79,
      "ordinal": 7,
      "text": " LEFT JOIN ",
      "top": 91.0,
      "left": 482.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0008",
      "page": 79,
      "ordinal": 8,
      "text": "右外连",
      "top": 91.0,
      "left": 555.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0010",
      "page": 79,
      "ordinal": 10,
      "text": "接",
      "top": 91.0,
      "left": 603.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0011",
      "page": 79,
      "ordinal": 11,
      "text": "(RIGHT OUTER JOIN ",
      "top": 91.0,
      "left": 618.0,
      "width": 136.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0012",
      "page": 79,
      "ordinal": 12,
      "text": "或",
      "top": 91.0,
      "left": 754.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0014",
      "page": 79,
      "ordinal": 14,
      "text": "RIC GHT JOIN",
      "top": 114.0,
      "left": 112.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0015",
      "page": 79,
      "ordinal": 15,
      "text": "、全外连接",
      "top": 114.0,
      "left": 202.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0016",
      "page": 79,
      "ordinal": 16,
      "text": "(FULL OUTER JOIN ",
      "top": 114.0,
      "left": 275.0,
      "width": 127.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0017",
      "page": 79,
      "ordinal": 17,
      "text": "或",
      "top": 114.0,
      "left": 402.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0018",
      "page": 79,
      "ordinal": 18,
      "text": " FULLJOIN)",
      "top": 114.0,
      "left": 416.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0019",
      "page": 79,
      "ordinal": 19,
      "text": "。",
      "top": 114.0,
      "left": 488.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0021",
      "page": 79,
      "ordinal": 21,
      "text": "左外连接",
      "top": 114.0,
      "left": 507.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0022",
      "page": 79,
      "ordinal": 22,
      "text": ":",
      "top": 114.0,
      "left": 565.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0023",
      "page": 79,
      "ordinal": 23,
      "text": "又称为左连接，这种连接方式会",
      "top": 114.0,
      "left": 569.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0024",
      "page": 79,
      "ordinal": 24,
      "text": "显示左表不符合条件的数据行，右边",
      "top": 137.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0026",
      "page": 79,
      "ordinal": 26,
      "text": "不符合条件的数据行直接显示",
      "top": 137.0,
      "left": 350.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0027",
      "page": 79,
      "ordinal": 27,
      "text": " NULL",
      "top": 137.0,
      "left": 540.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0028",
      "page": 79,
      "ordinal": 28,
      "text": "。",
      "top": 137.0,
      "left": 580.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0030",
      "page": 79,
      "ordinal": 30,
      "text": "右外连接",
      "top": 137.0,
      "left": 599.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0031",
      "page": 79,
      "ordinal": 31,
      "text": ":",
      "top": 137.0,
      "left": 657.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0032",
      "page": 79,
      "ordinal": 32,
      "text": "也被称为右连接，",
      "top": 137.0,
      "left": 661.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0033",
      "page": 79,
      "ordinal": 33,
      "text": "他与左连接相对，这种连接方式会显示右表不符合",
      "top": 161.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0035",
      "page": 79,
      "ordinal": 35,
      "text": "条件的数据行，左表不符合条件的数据行直接显示",
      "top": 161.0,
      "left": 437.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0037",
      "page": 79,
      "ordinal": 37,
      "text": "NULL  ",
      "top": 184.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h01",
        "heading_id": "p079-h01",
        "block_id": "q-p079-h01-b001"
      }
    },
    {
      "id": "p079-t0038",
      "page": 79,
      "ordinal": 38,
      "text": "什么叫内链接？",
      "top": 219.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h02",
        "heading_id": "p079-h02"
      }
    },
    {
      "id": "p079-t0041",
      "page": 79,
      "ordinal": 41,
      "text": "结合两个表中相同的字段，返回关联字段相符的记录就是内链接",
      "top": 270.0,
      "left": 112.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h02",
        "heading_id": "p079-h02",
        "block_id": "q-p079-h02-b001"
      }
    },
    {
      "id": "p079-t0043",
      "page": 79,
      "ordinal": 43,
      "text": "使用",
      "top": 304.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03"
      }
    },
    {
      "id": "p079-t0044",
      "page": 79,
      "ordinal": 44,
      "text": " union ",
      "top": 304.0,
      "left": 163.0,
      "width": 87.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03"
      }
    },
    {
      "id": "p079-t0045",
      "page": 79,
      "ordinal": 45,
      "text": "和",
      "top": 304.0,
      "left": 250.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03"
      }
    },
    {
      "id": "p079-t0046",
      "page": 79,
      "ordinal": 46,
      "text": " union all ",
      "top": 304.0,
      "left": 276.0,
      "width": 125.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03"
      }
    },
    {
      "id": "p079-t0047",
      "page": 79,
      "ordinal": 47,
      "text": "时需要注意些什么？",
      "top": 304.0,
      "left": 401.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03"
      }
    },
    {
      "id": "p079-t0051",
      "page": 79,
      "ordinal": 51,
      "text": "通过",
      "top": 354.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0052",
      "page": 79,
      "ordinal": 52,
      "text": " union ",
      "top": 354.0,
      "left": 145.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0053",
      "page": 79,
      "ordinal": 53,
      "text": "连接的",
      "top": 354.0,
      "left": 192.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0054",
      "page": 79,
      "ordinal": 54,
      "text": " SQL ",
      "top": 354.0,
      "left": 236.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0055",
      "page": 79,
      "ordinal": 55,
      "text": "分别单独取出的列数必须相同。",
      "top": 354.0,
      "left": 270.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0057",
      "page": 79,
      "ordinal": 57,
      "text": "使用",
      "top": 354.0,
      "left": 479.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0058",
      "page": 79,
      "ordinal": 58,
      "text": " union ",
      "top": 354.0,
      "left": 508.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0059",
      "page": 79,
      "ordinal": 59,
      "text": "时，多个相等的行将会被合并，由",
      "top": 354.0,
      "left": 555.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0060",
      "page": 79,
      "ordinal": 60,
      "text": "于合升比较耗时，一般不直接使",
      "top": 378.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0062",
      "page": 79,
      "ordinal": 62,
      "text": "用",
      "top": 378.0,
      "left": 320.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0063",
      "page": 79,
      "ordinal": 63,
      "text": " union ",
      "top": 378.0,
      "left": 335.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0064",
      "page": 79,
      "ordinal": 64,
      "text": "进行合并，而是通常采用",
      "top": 378.0,
      "left": 382.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0065",
      "page": 79,
      "ordinal": 65,
      "text": " union all ",
      "top": 378.0,
      "left": 543.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0066",
      "page": 79,
      "ordinal": 66,
      "text": "进行合并。",
      "top": 378.0,
      "left": 609.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h03",
        "heading_id": "p079-h03",
        "block_id": "q-p079-h03-b001"
      }
    },
    {
      "id": "p079-t0068",
      "page": 79,
      "ordinal": 68,
      "text": "MyISAM ",
      "top": 412.0,
      "left": 112.0,
      "width": 110.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04"
      }
    },
    {
      "id": "p079-t0069",
      "page": 79,
      "ordinal": 69,
      "text": "存储引擎的特点",
      "top": 412.0,
      "left": 221.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04"
      }
    },
    {
      "id": "p079-t0072",
      "page": 79,
      "ordinal": 72,
      "text": "在",
      "top": 463.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0073",
      "page": 79,
      "ordinal": 73,
      "text": " 5.1 ",
      "top": 463.0,
      "left": 126.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0074",
      "page": 79,
      "ordinal": 74,
      "text": "版本之前，",
      "top": 463.0,
      "left": 155.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0075",
      "page": 79,
      "ordinal": 75,
      "text": "MyISAM ",
      "top": 463.0,
      "left": 228.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0076",
      "page": 79,
      "ordinal": 76,
      "text": "是",
      "top": 463.0,
      "left": 287.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0077",
      "page": 79,
      "ordinal": 77,
      "text": " MySQL ",
      "top": 463.0,
      "left": 301.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0078",
      "page": 79,
      "ordinal": 78,
      "text": "的默认存储引擎，",
      "top": 463.0,
      "left": 356.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0079",
      "page": 79,
      "ordinal": 79,
      "text": "MylSAM ",
      "top": 463.0,
      "left": 473.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0080",
      "page": 79,
      "ordinal": 80,
      "text": "并发性比较差，使",
      "top": 463.0,
      "left": 532.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0082",
      "page": 79,
      "ordinal": 82,
      "text": "用的场景比较少主",
      "top": 463.0,
      "left": 653.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0083",
      "page": 79,
      "ordinal": 83,
      "text": "要特点是",
      "top": 487.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0084",
      "page": 79,
      "ordinal": 84,
      "text": ": ",
      "top": 487.0,
      "left": 170.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b001"
      }
    },
    {
      "id": "p079-t0085",
      "page": 79,
      "ordinal": 85,
      "text": "1. ",
      "top": 522.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b002"
      }
    },
    {
      "id": "p079-t0086",
      "page": 79,
      "ordinal": 86,
      "text": "不支持事务操作，",
      "top": 522.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b002"
      }
    },
    {
      "id": "p079-t0087",
      "page": 79,
      "ordinal": 87,
      "text": "ACID ",
      "top": 522.0,
      "left": 263.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b002"
      }
    },
    {
      "id": "p079-t0088",
      "page": 79,
      "ordinal": 88,
      "text": "的特性也就不存在了，这一设计是为了性能和效率",
      "top": 522.0,
      "left": 300.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b002"
      }
    },
    {
      "id": "p079-t0090",
      "page": 79,
      "ordinal": 90,
      "text": "考虑的，",
      "top": 522.0,
      "left": 625.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b002"
      }
    },
    {
      "id": "p079-t0092",
      "page": 79,
      "ordinal": 92,
      "text": "2. ",
      "top": 552.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b003"
      }
    },
    {
      "id": "p079-t0093",
      "page": 79,
      "ordinal": 93,
      "text": "不支持外键操作，如果强行增加外键，",
      "top": 552.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b003"
      }
    },
    {
      "id": "p079-t0094",
      "page": 79,
      "ordinal": 94,
      "text": "MySQL ",
      "top": 552.0,
      "left": 394.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b003"
      }
    },
    {
      "id": "p079-t0095",
      "page": 79,
      "ordinal": 95,
      "text": "不会报错，只不过外键不起作",
      "top": 552.0,
      "left": 446.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b003"
      }
    },
    {
      "id": "p079-t0097",
      "page": 79,
      "ordinal": 97,
      "text": "用。",
      "top": 552.0,
      "left": 639.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b003"
      }
    },
    {
      "id": "p079-t0099",
      "page": 79,
      "ordinal": 99,
      "text": "3. MyISAM ",
      "top": 582.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b004"
      }
    },
    {
      "id": "p079-t0100",
      "page": 79,
      "ordinal": 100,
      "text": "默认的锁粒度是表级锁，所以并发性能比较差，加锁比较快，锁冲",
      "top": 582.0,
      "left": 204.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b004"
      }
    },
    {
      "id": "p079-t0102",
      "page": 79,
      "ordinal": 102,
      "text": "突比较少，不太容易发",
      "top": 582.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b004"
      }
    },
    {
      "id": "p079-t0103",
      "page": 79,
      "ordinal": 103,
      "text": "生死锁的情况。",
      "top": 606.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b004"
      }
    },
    {
      "id": "p079-t0105",
      "page": 79,
      "ordinal": 105,
      "text": "4. MyISAM ",
      "top": 636.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0106",
      "page": 79,
      "ordinal": 106,
      "text": "会在磁盘上存储三个文件，文件名和表名相同，扩展名分别是",
      "top": 636.0,
      "left": 204.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0107",
      "page": 79,
      "ordinal": 107,
      "text": " frm(",
      "top": 636.0,
      "left": 599.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0108",
      "page": 79,
      "ordinal": 108,
      "text": "存储表定义",
      "top": 636.0,
      "left": 632.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0109",
      "page": 79,
      "ordinal": 109,
      "text": ")",
      "top": 636.0,
      "left": 705.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0110",
      "page": 79,
      "ordinal": 110,
      "text": "、",
      "top": 636.0,
      "left": 709.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0111",
      "page": 79,
      "ordinal": 111,
      "text": "MYD(MYData",
      "top": 660.0,
      "left": 146.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0112",
      "page": 79,
      "ordinal": 112,
      "text": "，存储数据",
      "top": 660.0,
      "left": 235.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0113",
      "page": 79,
      "ordinal": 113,
      "text": ")",
      "top": 660.0,
      "left": 308.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0114",
      "page": 79,
      "ordinal": 114,
      "text": "、",
      "top": 660.0,
      "left": 313.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0115",
      "page": 79,
      "ordinal": 115,
      "text": "MYI(MyIndex",
      "top": 660.0,
      "left": 327.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0116",
      "page": 79,
      "ordinal": 116,
      "text": "，存储索引",
      "top": 660.0,
      "left": 416.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0117",
      "page": 79,
      "ordinal": 117,
      "text": ")",
      "top": 660.0,
      "left": 489.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0118",
      "page": 79,
      "ordinal": 118,
      "text": "。",
      "top": 660.0,
      "left": 493.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0120",
      "page": 79,
      "ordinal": 120,
      "text": "这里需要特别注意的是",
      "top": 660.0,
      "left": 512.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0121",
      "page": 79,
      "ordinal": 121,
      "text": " MyISAM ",
      "top": 660.0,
      "left": 658.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0122",
      "page": 79,
      "ordinal": 122,
      "text": "只缓存",
      "top": 660.0,
      "left": 721.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0124",
      "page": 79,
      "ordinal": 124,
      "text": "索引文件，并不缓存数据文件。",
      "top": 684.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b005"
      }
    },
    {
      "id": "p079-t0126",
      "page": 79,
      "ordinal": 126,
      "text": "5. MyISAM ",
      "top": 714.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0127",
      "page": 79,
      "ordinal": 127,
      "text": "支持的索引类型有全局索引",
      "top": 714.0,
      "left": 204.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0128",
      "page": 79,
      "ordinal": 128,
      "text": "(Full-Text)",
      "top": 714.0,
      "left": 380.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0129",
      "page": 79,
      "ordinal": 129,
      "text": "、",
      "top": 714.0,
      "left": 446.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0130",
      "page": 79,
      "ordinal": 130,
      "text": "B-Tree ",
      "top": 714.0,
      "left": 461.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0131",
      "page": 79,
      "ordinal": 131,
      "text": "索引、",
      "top": 714.0,
      "left": 509.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0132",
      "page": 79,
      "ordinal": 132,
      "text": "R-Tree ",
      "top": 714.0,
      "left": 553.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0133",
      "page": 79,
      "ordinal": 133,
      "text": "索",
      "top": 714.0,
      "left": 601.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0135",
      "page": 79,
      "ordinal": 135,
      "text": "引",
      "top": 714.0,
      "left": 620.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0136",
      "page": 79,
      "ordinal": 136,
      "text": "   Full-Text ",
      "top": 714.0,
      "left": 634.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0137",
      "page": 79,
      "ordinal": 137,
      "text": "索引",
      "top": 714.0,
      "left": 712.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0138",
      "page": 79,
      "ordinal": 138,
      "text": ":",
      "top": 714.0,
      "left": 742.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0139",
      "page": 79,
      "ordinal": 139,
      "text": "它的",
      "top": 714.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0140",
      "page": 79,
      "ordinal": 140,
      "text": "出现是为了解决针对文本的模糊查询效率较低的",
      "top": 738.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0142",
      "page": 79,
      "ordinal": 142,
      "text": "问题。",
      "top": 738.0,
      "left": 456.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0143",
      "page": 79,
      "ordinal": 143,
      "text": "   B-Tree ",
      "top": 738.0,
      "left": 500.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0144",
      "page": 79,
      "ordinal": 144,
      "text": "索引",
      "top": 738.0,
      "left": 565.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0145",
      "page": 79,
      "ordinal": 145,
      "text": ":",
      "top": 738.0,
      "left": 594.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0146",
      "page": 79,
      "ordinal": 146,
      "text": "所有的索引节点都按照平衡",
      "top": 738.0,
      "left": 598.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0147",
      "page": 79,
      "ordinal": 147,
      "text": "树的数据结构来存储，所有的",
      "top": 761.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0149",
      "page": 79,
      "ordinal": 149,
      "text": "索引数据节点都在叶节点",
      "top": 761.0,
      "left": 339.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0150",
      "page": 79,
      "ordinal": 150,
      "text": "   R-Tree ",
      "top": 761.0,
      "left": 500.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0151",
      "page": 79,
      "ordinal": 151,
      "text": "索引",
      "top": 761.0,
      "left": 565.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0152",
      "page": 79,
      "ordinal": 152,
      "text": ":",
      "top": 761.0,
      "left": 594.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0153",
      "page": 79,
      "ordinal": 153,
      "text": "它的存储方式和",
      "top": 761.0,
      "left": 598.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0154",
      "page": 79,
      "ordinal": 154,
      "text": " B-Tree ",
      "top": 761.0,
      "left": 700.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0155",
      "page": 79,
      "ordinal": 155,
      "text": "索引",
      "top": 761.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0156",
      "page": 79,
      "ordinal": 156,
      "text": "有一些区别，主要设计用于",
      "top": 785.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0158",
      "page": 79,
      "ordinal": 158,
      "text": "存储空间和多维数据的字段做索引目前的",
      "top": 785.0,
      "left": 325.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0159",
      "page": 79,
      "ordinal": 159,
      "text": " MySQL ",
      "top": 785.0,
      "left": 588.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0160",
      "page": 79,
      "ordinal": 160,
      "text": "版本仅支持",
      "top": 785.0,
      "left": 643.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0162",
      "page": 79,
      "ordinal": 162,
      "text": "geometry ",
      "top": 809.0,
      "left": 146.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0163",
      "page": 79,
      "ordinal": 163,
      "text": "类型的字段作索引，相对于",
      "top": 809.0,
      "left": 215.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0164",
      "page": 79,
      "ordinal": 164,
      "text": " BTREE,RTREE ",
      "top": 809.0,
      "left": 390.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0165",
      "page": 79,
      "ordinal": 165,
      "text": "的优势在于范围查找。",
      "top": 809.0,
      "left": 487.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b006"
      }
    },
    {
      "id": "p079-t0167",
      "page": 79,
      "ordinal": 167,
      "text": "6. ",
      "top": 839.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b007"
      }
    },
    {
      "id": "p079-t0168",
      "page": 79,
      "ordinal": 168,
      "text": "数据库所在主机如果宕机，",
      "top": 839.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b007"
      }
    },
    {
      "id": "p079-t0169",
      "page": 79,
      "ordinal": 169,
      "text": "MyISAM ",
      "top": 839.0,
      "left": 321.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b007"
      }
    },
    {
      "id": "p079-t0170",
      "page": 79,
      "ordinal": 170,
      "text": "的数据文件容易损坏，而且难以恢复。",
      "top": 839.0,
      "left": 380.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b007"
      }
    },
    {
      "id": "p079-t0172",
      "page": 79,
      "ordinal": 172,
      "text": "7. ",
      "top": 869.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b008"
      }
    },
    {
      "id": "p079-t0173",
      "page": 79,
      "ordinal": 173,
      "text": "增删改查性能方面",
      "top": 869.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b008"
      }
    },
    {
      "id": "p079-t0174",
      "page": 79,
      "ordinal": 174,
      "text": ":SELECT ",
      "top": 869.0,
      "left": 263.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b008"
      }
    },
    {
      "id": "p079-t0175",
      "page": 79,
      "ordinal": 175,
      "text": "性能较高，适用于查询较多的情况",
      "top": 869.0,
      "left": 319.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h04",
        "heading_id": "p079-h04",
        "block_id": "q-p079-h04-b008"
      }
    },
    {
      "id": "p079-t0177",
      "page": 79,
      "ordinal": 177,
      "text": "InnoDB ",
      "top": 904.0,
      "left": 112.0,
      "width": 101.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05"
      }
    },
    {
      "id": "p079-t0178",
      "page": 79,
      "ordinal": 178,
      "text": "存储引擎的特点",
      "top": 904.0,
      "left": 213.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05"
      }
    },
    {
      "id": "p079-t0181",
      "page": 79,
      "ordinal": 181,
      "text": "自从",
      "top": 955.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0182",
      "page": 79,
      "ordinal": 182,
      "text": " MySQL5.1 ",
      "top": 955.0,
      "left": 141.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0183",
      "page": 79,
      "ordinal": 183,
      "text": "之后，默认的存储引擎变成了",
      "top": 955.0,
      "left": 217.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0184",
      "page": 79,
      "ordinal": 184,
      "text": " InnoDB ",
      "top": 955.0,
      "left": 407.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0185",
      "page": 79,
      "ordinal": 185,
      "text": "存储引擎，相对于",
      "top": 955.0,
      "left": 466.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0186",
      "page": 79,
      "ordinal": 186,
      "text": " MylSAM",
      "top": 955.0,
      "left": 583.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0187",
      "page": 79,
      "ordinal": 187,
      "text": "，",
      "top": 955.0,
      "left": 641.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0188",
      "page": 79,
      "ordinal": 188,
      "text": "InnoDB ",
      "top": 955.0,
      "left": 656.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0189",
      "page": 79,
      "ordinal": 189,
      "text": "存储引擎",
      "top": 955.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0190",
      "page": 79,
      "ordinal": 190,
      "text": "有了较大的改变，它的主要特点是",
      "top": 978.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b001"
      }
    },
    {
      "id": "p079-t0191",
      "page": 79,
      "ordinal": 191,
      "text": "1. ",
      "top": 1013.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0192",
      "page": 79,
      "ordinal": 192,
      "text": "支持事务操作，具有事务",
      "top": 1013.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0193",
      "page": 79,
      "ordinal": 193,
      "text": " ACID ",
      "top": 1013.0,
      "left": 306.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0194",
      "page": 79,
      "ordinal": 194,
      "text": "隔离特性，默认的隔离级别是可重复读",
      "top": 1013.0,
      "left": 347.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0195",
      "page": 79,
      "ordinal": 195,
      "text": " (repetable-read)",
      "top": 1013.0,
      "left": 596.0,
      "width": 114.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0196",
      "page": 79,
      "ordinal": 196,
      "text": "、通过",
      "top": 1013.0,
      "left": 710.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0198",
      "page": 79,
      "ordinal": 198,
      "text": "MVCC(",
      "top": 1037.0,
      "left": 146.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0199",
      "page": 79,
      "ordinal": 199,
      "text": "并发版本控制",
      "top": 1037.0,
      "left": 190.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0200",
      "page": 79,
      "ordinal": 200,
      "text": ")",
      "top": 1037.0,
      "left": 278.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0201",
      "page": 79,
      "ordinal": 201,
      "text": "来实现的。能够解决",
      "top": 1037.0,
      "left": 282.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0203",
      "page": 79,
      "ordinal": 203,
      "text": "脏读",
      "top": 1037.0,
      "left": 418.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0205",
      "page": 79,
      "ordinal": 205,
      "text": "和",
      "top": 1037.0,
      "left": 451.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0207",
      "page": 79,
      "ordinal": 207,
      "text": "不可重复读",
      "top": 1037.0,
      "left": 469.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0209",
      "page": 79,
      "ordinal": 209,
      "text": "的问题。",
      "top": 1037.0,
      "left": 546.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0210",
      "page": 79,
      "ordinal": 210,
      "text": " InnoDB ",
      "top": 1037.0,
      "left": 605.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0211",
      "page": 79,
      "ordinal": 211,
      "text": "支持外键操作。",
      "top": 1037.0,
      "left": 663.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b002"
      }
    },
    {
      "id": "p079-t0213",
      "page": 79,
      "ordinal": 213,
      "text": "2. InnoDB ",
      "top": 1067.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b003"
      }
    },
    {
      "id": "p079-t0214",
      "page": 79,
      "ordinal": 214,
      "text": "默认的锁粒度行级锁，并发性能比较好，会发生死锁的情况。",
      "top": 1067.0,
      "left": 200.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b003"
      }
    },
    {
      "id": "p079-t0216",
      "page": 79,
      "ordinal": 216,
      "text": "3. ",
      "top": 1098.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0217",
      "page": 79,
      "ordinal": 217,
      "text": "和",
      "top": 1098.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0218",
      "page": 79,
      "ordinal": 218,
      "text": " MyISAM ",
      "top": 1098.0,
      "left": 160.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0219",
      "page": 79,
      "ordinal": 219,
      "text": "一样的是，",
      "top": 1098.0,
      "left": 223.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0220",
      "page": 79,
      "ordinal": 220,
      "text": "InnoDB ",
      "top": 1098.0,
      "left": 296.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0221",
      "page": 79,
      "ordinal": 221,
      "text": "存储引擎也有",
      "top": 1098.0,
      "left": 351.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0222",
      "page": 79,
      "ordinal": 222,
      "text": " frm ",
      "top": 1098.0,
      "left": 439.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0223",
      "page": 79,
      "ordinal": 223,
      "text": "文件存储表结构定义，但是",
      "top": 1098.0,
      "left": 471.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0225",
      "page": 79,
      "ordinal": 225,
      "text": "不同的是，",
      "top": 1098.0,
      "left": 650.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0226",
      "page": 79,
      "ordinal": 226,
      "text": "InnoDB ",
      "top": 1098.0,
      "left": 723.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0227",
      "page": 79,
      "ordinal": 227,
      "text": "的表数据与索引数据是存储在一起的，都位于",
      "top": 1121.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0228",
      "page": 79,
      "ordinal": 228,
      "text": " B+",
      "top": 1121.0,
      "left": 438.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0229",
      "page": 79,
      "ordinal": 229,
      "text": "数的叶",
      "top": 1121.0,
      "left": 460.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0231",
      "page": 79,
      "ordinal": 231,
      "text": "子节点上，而",
      "top": 1121.0,
      "left": 507.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0232",
      "page": 79,
      "ordinal": 232,
      "text": " MylSAM ",
      "top": 1121.0,
      "left": 595.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0233",
      "page": 79,
      "ordinal": 233,
      "text": "的表数据和索引数",
      "top": 1121.0,
      "left": 657.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0234",
      "page": 79,
      "ordinal": 234,
      "text": "据是分开的。",
      "top": 1145.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b004"
      }
    },
    {
      "id": "p079-t0236",
      "page": 79,
      "ordinal": 236,
      "text": "4. InnoDB ",
      "top": 1175.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b005"
      }
    },
    {
      "id": "p079-t0237",
      "page": 79,
      "ordinal": 237,
      "text": "有安全的日志文件，这个日志文件用于恢复因数据库崩溃或其他情",
      "top": 1175.0,
      "left": 200.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b005"
      }
    },
    {
      "id": "p079-t0239",
      "page": 79,
      "ordinal": 239,
      "text": "况导致的数据丢失问",
      "top": 1175.0,
      "left": 628.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b005"
      }
    },
    {
      "id": "p079-t0240",
      "page": 79,
      "ordinal": 240,
      "text": "题，保证数据的一致性。",
      "top": 1199.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b005"
      }
    },
    {
      "id": "p080-t0001",
      "page": 80,
      "ordinal": 1,
      "text": "5. InnoDB ",
      "top": 44.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b006"
      }
    },
    {
      "id": "p080-t0002",
      "page": 80,
      "ordinal": 2,
      "text": "和",
      "top": 44.0,
      "left": 200.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b006"
      }
    },
    {
      "id": "p080-t0003",
      "page": 80,
      "ordinal": 3,
      "text": " MylSAM ",
      "top": 44.0,
      "left": 215.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b006"
      }
    },
    {
      "id": "p080-t0004",
      "page": 80,
      "ordinal": 4,
      "text": "支持的索引类型相同，但具体实现因为文件结构的不同有",
      "top": 44.0,
      "left": 277.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b006"
      }
    },
    {
      "id": "p080-t0006",
      "page": 80,
      "ordinal": 6,
      "text": "很大差异。",
      "top": 44.0,
      "left": 647.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b006"
      }
    },
    {
      "id": "p080-t0008",
      "page": 80,
      "ordinal": 8,
      "text": "6. ",
      "top": 74.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0009",
      "page": 80,
      "ordinal": 9,
      "text": "增删改查性能方面，果执行大量的增删改操作，推荐使用",
      "top": 74.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0010",
      "page": 80,
      "ordinal": 10,
      "text": " InnoDB ",
      "top": 74.0,
      "left": 511.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0011",
      "page": 80,
      "ordinal": 11,
      "text": "存储引",
      "top": 74.0,
      "left": 570.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0013",
      "page": 80,
      "ordinal": 13,
      "text": "擎，它在删除操作时是对",
      "top": 74.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0014",
      "page": 80,
      "ordinal": 14,
      "text": "行删除，不会重建表。",
      "top": 98.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/10-mysql#q-p079-h05",
        "heading_id": "p079-h05",
        "block_id": "q-p079-h05-b007"
      }
    },
    {
      "id": "p080-t0016",
      "page": 80,
      "ordinal": 16,
      "text": "linux",
      "top": 131.0,
      "left": 112.0,
      "width": 82.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h01"
      }
    },
    {
      "id": "p080-t0018",
      "page": 80,
      "ordinal": 18,
      "text": "什么是",
      "top": 187.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02"
      }
    },
    {
      "id": "p080-t0019",
      "page": 80,
      "ordinal": 19,
      "text": " Linux ",
      "top": 187.0,
      "left": 189.0,
      "width": 84.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02"
      }
    },
    {
      "id": "p080-t0021",
      "page": 80,
      "ordinal": 21,
      "text": "Linux ",
      "top": 238.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0022",
      "page": 80,
      "ordinal": 22,
      "text": "是⼀套免费使⽤和⾃由传播的类",
      "top": 238.0,
      "left": 152.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0023",
      "page": 80,
      "ordinal": 23,
      "text": " Unix ",
      "top": 238.0,
      "left": 357.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0024",
      "page": 80,
      "ordinal": 24,
      "text": "操作系统，是⼀个基于",
      "top": 238.0,
      "left": 396.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0025",
      "page": 80,
      "ordinal": 25,
      "text": " POSIX",
      "top": 238.0,
      "left": 542.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0026",
      "page": 80,
      "ordinal": 26,
      "text": "和",
      "top": 238.0,
      "left": 587.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0027",
      "page": 80,
      "ordinal": 27,
      "text": " Unix ",
      "top": 238.0,
      "left": 601.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0028",
      "page": 80,
      "ordinal": 28,
      "text": "的多⽤户、多任务、",
      "top": 238.0,
      "left": 640.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0029",
      "page": 80,
      "ordinal": 29,
      "text": "⽀持多线程",
      "top": 262.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0031",
      "page": 80,
      "ordinal": 31,
      "text": "和多",
      "top": 262.0,
      "left": 189.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0032",
      "page": 80,
      "ordinal": 32,
      "text": " CPU",
      "top": 262.0,
      "left": 218.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0033",
      "page": 80,
      "ordinal": 33,
      "text": "的操作系统。它能运⾏主要的",
      "top": 262.0,
      "left": 250.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0034",
      "page": 80,
      "ordinal": 34,
      "text": " Unix ",
      "top": 262.0,
      "left": 441.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0035",
      "page": 80,
      "ordinal": 35,
      "text": "⼯具软件、应⽤程序和⽹络协议。它⽀持",
      "top": 262.0,
      "left": 479.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0036",
      "page": 80,
      "ordinal": 36,
      "text": "32 ",
      "top": 262.0,
      "left": 742.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0037",
      "page": 80,
      "ordinal": 37,
      "text": "位",
      "top": 262.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0038",
      "page": 80,
      "ordinal": 38,
      "text": "和",
      "top": 284.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0039",
      "page": 80,
      "ordinal": 39,
      "text": "64 ",
      "top": 284.0,
      "left": 126.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0040",
      "page": 80,
      "ordinal": 40,
      "text": "位硬件。",
      "top": 284.0,
      "left": 147.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0041",
      "page": 80,
      "ordinal": 41,
      "text": "Linux ",
      "top": 284.0,
      "left": 205.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0042",
      "page": 80,
      "ordinal": 42,
      "text": "继承了",
      "top": 284.0,
      "left": 246.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0043",
      "page": 80,
      "ordinal": 43,
      "text": " Unix ",
      "top": 284.0,
      "left": 290.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0044",
      "page": 80,
      "ordinal": 44,
      "text": "以⽹络为核⼼的设计思想，是⼀个性能稳定的多⽤户⽹络操作系统",
      "top": 284.0,
      "left": 329.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h02",
        "heading_id": "p080-h02",
        "block_id": "q-p080-h02-b001"
      }
    },
    {
      "id": "p080-t0046",
      "page": 80,
      "ordinal": 46,
      "text": "Unix ",
      "top": 319.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03"
      }
    },
    {
      "id": "p080-t0047",
      "page": 80,
      "ordinal": 47,
      "text": "和",
      "top": 319.0,
      "left": 177.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03"
      }
    },
    {
      "id": "p080-t0048",
      "page": 80,
      "ordinal": 48,
      "text": " Linux ",
      "top": 319.0,
      "left": 203.0,
      "width": 84.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03"
      }
    },
    {
      "id": "p080-t0049",
      "page": 80,
      "ordinal": 49,
      "text": "有什么区别",
      "top": 319.0,
      "left": 287.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03"
      }
    },
    {
      "id": "p080-t0052",
      "page": 80,
      "ordinal": 52,
      "text": " Linux ",
      "top": 370.0,
      "left": 112.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0053",
      "page": 80,
      "ordinal": 53,
      "text": "和",
      "top": 370.0,
      "left": 156.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0054",
      "page": 80,
      "ordinal": 54,
      "text": " Unix ",
      "top": 370.0,
      "left": 171.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0055",
      "page": 80,
      "ordinal": 55,
      "text": "都是功能强⼤的操作系统，都是应⽤⼴泛的服务器操作系统，有很多相似之处，甚⾄有⼀",
      "top": 370.0,
      "left": 209.0,
      "width": 570.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0056",
      "page": 80,
      "ordinal": 56,
      "text": "部分⼈错",
      "top": 393.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0058",
      "page": 80,
      "ordinal": 58,
      "text": "误地认为",
      "top": 393.0,
      "left": 174.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0059",
      "page": 80,
      "ordinal": 59,
      "text": " Unix ",
      "top": 393.0,
      "left": 233.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0060",
      "page": 80,
      "ordinal": 60,
      "text": "和",
      "top": 393.0,
      "left": 271.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0061",
      "page": 80,
      "ordinal": 61,
      "text": " Linux ",
      "top": 393.0,
      "left": 286.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0062",
      "page": 80,
      "ordinal": 62,
      "text": "操作系统是⼀样的，然⽽，事实并⾮如此，以下是两者的区别。",
      "top": 393.0,
      "left": 330.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b001"
      }
    },
    {
      "id": "p080-t0064",
      "page": 80,
      "ordinal": 64,
      "text": "1. ",
      "top": 428.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0065",
      "page": 80,
      "ordinal": 65,
      "text": "开源性：",
      "top": 428.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0066",
      "page": 80,
      "ordinal": 66,
      "text": "Linux ",
      "top": 428.0,
      "left": 204.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0067",
      "page": 80,
      "ordinal": 67,
      "text": "是⼀款开源操作系统，不需要付费，即可使⽤；",
      "top": 428.0,
      "left": 245.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0068",
      "page": 80,
      "ordinal": 68,
      "text": "Unix ",
      "top": 428.0,
      "left": 552.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0069",
      "page": 80,
      "ordinal": 69,
      "text": "是⼀款对源码实⾏知识产权保",
      "top": 428.0,
      "left": 587.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0070",
      "page": 80,
      "ordinal": 70,
      "text": "护的传统",
      "top": 452.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0072",
      "page": 80,
      "ordinal": 72,
      "text": "商业软件，使⽤需要付费授权使⽤。",
      "top": 452.0,
      "left": 208.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b002"
      }
    },
    {
      "id": "p080-t0074",
      "page": 80,
      "ordinal": 74,
      "text": "2. ",
      "top": 482.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0075",
      "page": 80,
      "ordinal": 75,
      "text": "跨平台性：",
      "top": 482.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0076",
      "page": 80,
      "ordinal": 76,
      "text": "Linux ",
      "top": 482.0,
      "left": 219.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0077",
      "page": 80,
      "ordinal": 77,
      "text": "操作系统具有良好的跨平台性能，可运⾏在多种硬件平台上；",
      "top": 482.0,
      "left": 259.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0078",
      "page": 80,
      "ordinal": 78,
      "text": "Unix ",
      "top": 482.0,
      "left": 654.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0079",
      "page": 80,
      "ordinal": 79,
      "text": "操作系统跨平",
      "top": 482.0,
      "left": 689.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0080",
      "page": 80,
      "ordinal": 80,
      "text": "台性能较",
      "top": 506.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0082",
      "page": 80,
      "ordinal": 82,
      "text": "弱，⼤多需与硬件配套使⽤。",
      "top": 506.0,
      "left": 208.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b003"
      }
    },
    {
      "id": "p080-t0084",
      "page": 80,
      "ordinal": 84,
      "text": "3. ",
      "top": 536.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0085",
      "page": 80,
      "ordinal": 85,
      "text": "可视化界⾯：",
      "top": 536.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0086",
      "page": 80,
      "ordinal": 86,
      "text": "Linux ",
      "top": 536.0,
      "left": 233.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0087",
      "page": 80,
      "ordinal": 87,
      "text": "除了进⾏命令⾏操作，还有窗体管理系统；",
      "top": 536.0,
      "left": 274.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0088",
      "page": 80,
      "ordinal": 88,
      "text": "Unix ",
      "top": 536.0,
      "left": 552.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0089",
      "page": 80,
      "ordinal": 89,
      "text": "只是命令⾏下的系统。",
      "top": 536.0,
      "left": 587.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b004"
      }
    },
    {
      "id": "p080-t0091",
      "page": 80,
      "ordinal": 91,
      "text": "4. ",
      "top": 568.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0092",
      "page": 80,
      "ordinal": 92,
      "text": "硬件环境：",
      "top": 568.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0093",
      "page": 80,
      "ordinal": 93,
      "text": "Linux ",
      "top": 568.0,
      "left": 219.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0094",
      "page": 80,
      "ordinal": 94,
      "text": "操作系统对硬件的要求较低，安装⽅法更易掌握；",
      "top": 568.0,
      "left": 259.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0095",
      "page": 80,
      "ordinal": 95,
      "text": "Unix ",
      "top": 568.0,
      "left": 581.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0096",
      "page": 80,
      "ordinal": 96,
      "text": "对硬件要求⽐较苛刻，按",
      "top": 568.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0097",
      "page": 80,
      "ordinal": 97,
      "text": "照难度较",
      "top": 590.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0099",
      "page": 80,
      "ordinal": 99,
      "text": "⼤。",
      "top": 590.0,
      "left": 208.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b005"
      }
    },
    {
      "id": "p080-t0101",
      "page": 80,
      "ordinal": 101,
      "text": "5. ",
      "top": 622.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0102",
      "page": 80,
      "ordinal": 102,
      "text": "⽤户群体：",
      "top": 622.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0103",
      "page": 80,
      "ordinal": 103,
      "text": "Linux ",
      "top": 622.0,
      "left": 219.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0104",
      "page": 80,
      "ordinal": 104,
      "text": "的⽤户群体很⼴泛，个⼈和企业均可使⽤；",
      "top": 622.0,
      "left": 259.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0105",
      "page": 80,
      "ordinal": 105,
      "text": "Unix ",
      "top": 622.0,
      "left": 537.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0106",
      "page": 80,
      "ordinal": 106,
      "text": "的⽤户群体⽐较窄，多是安全性",
      "top": 622.0,
      "left": 572.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0107",
      "page": 80,
      "ordinal": 107,
      "text": "要求⾼的",
      "top": 644.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0109",
      "page": 80,
      "ordinal": 109,
      "text": "⼤型企业使⽤，如银⾏、电信部⻔等，或者",
      "top": 644.0,
      "left": 208.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0110",
      "page": 80,
      "ordinal": 110,
      "text": " Unix ",
      "top": 644.0,
      "left": 486.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0111",
      "page": 80,
      "ordinal": 111,
      "text": "硬件⼚商使⽤，如",
      "top": 644.0,
      "left": 524.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0112",
      "page": 80,
      "ordinal": 112,
      "text": " Sun",
      "top": 644.0,
      "left": 641.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0113",
      "page": 80,
      "ordinal": 113,
      "text": "等。相⽐于",
      "top": 644.0,
      "left": 671.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0114",
      "page": 80,
      "ordinal": 114,
      "text": " Unix ",
      "top": 644.0,
      "left": 744.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0115",
      "page": 80,
      "ordinal": 115,
      "text": "操作系统，",
      "top": 668.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0116",
      "page": 80,
      "ordinal": 116,
      "text": "Linux ",
      "top": 668.0,
      "left": 219.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0117",
      "page": 80,
      "ordinal": 117,
      "text": "操作系统更受⼴⼤计算机爱好者的喜爱，主要原因是",
      "top": 668.0,
      "left": 259.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0118",
      "page": 80,
      "ordinal": 118,
      "text": " Linux ",
      "top": 668.0,
      "left": 596.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0119",
      "page": 80,
      "ordinal": 119,
      "text": "操作系统具有",
      "top": 668.0,
      "left": 640.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0120",
      "page": 80,
      "ordinal": 120,
      "text": " Unix ",
      "top": 668.0,
      "left": 728.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0121",
      "page": 80,
      "ordinal": 121,
      "text": "操",
      "top": 668.0,
      "left": 767.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0122",
      "page": 80,
      "ordinal": 122,
      "text": "作系统的全部功能，并且能",
      "top": 692.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0124",
      "page": 80,
      "ordinal": 124,
      "text": "够在普通",
      "top": 692.0,
      "left": 325.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0125",
      "page": 80,
      "ordinal": 125,
      "text": " PC",
      "top": 692.0,
      "left": 383.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0126",
      "page": 80,
      "ordinal": 126,
      "text": "计算机上实现全部的",
      "top": 692.0,
      "left": 405.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0127",
      "page": 80,
      "ordinal": 127,
      "text": " Unix ",
      "top": 692.0,
      "left": 537.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0128",
      "page": 80,
      "ordinal": 128,
      "text": "特性，开源免费的特性，更容易",
      "top": 692.0,
      "left": 575.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0129",
      "page": 80,
      "ordinal": 129,
      "text": "普及使⽤",
      "top": 715.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h03",
        "heading_id": "p080-h03",
        "block_id": "q-p080-h03-b006"
      }
    },
    {
      "id": "p080-t0131",
      "page": 80,
      "ordinal": 131,
      "text": "什么是",
      "top": 750.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04"
      }
    },
    {
      "id": "p080-t0132",
      "page": 80,
      "ordinal": 132,
      "text": " Linux ",
      "top": 750.0,
      "left": 189.0,
      "width": 84.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04"
      }
    },
    {
      "id": "p080-t0133",
      "page": 80,
      "ordinal": 133,
      "text": "内核？",
      "top": 750.0,
      "left": 273.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04"
      }
    },
    {
      "id": "p080-t0136",
      "page": 80,
      "ordinal": 136,
      "text": "Linux ",
      "top": 801.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0137",
      "page": 80,
      "ordinal": 137,
      "text": "系统的核⼼是内核。内核控制着计算机系统上的所有硬件和软件，在必要时分配硬件，并根据需要",
      "top": 801.0,
      "left": 152.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0138",
      "page": 80,
      "ordinal": 138,
      "text": "执⾏软",
      "top": 823.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0140",
      "page": 80,
      "ordinal": 140,
      "text": "件。",
      "top": 823.0,
      "left": 159.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0142",
      "page": 80,
      "ordinal": 142,
      "text": "系统内存管理",
      "top": 823.0,
      "left": 192.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0144",
      "page": 80,
      "ordinal": 144,
      "text": "应⽤程序管理",
      "top": 823.0,
      "left": 284.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0146",
      "page": 80,
      "ordinal": 146,
      "text": "硬件设备管理",
      "top": 823.0,
      "left": 376.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0148",
      "page": 80,
      "ordinal": 148,
      "text": "⽂件系统管理",
      "top": 823.0,
      "left": 467.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h04",
        "heading_id": "p080-h04",
        "block_id": "q-p080-h04-b001"
      }
    },
    {
      "id": "p080-t0150",
      "page": 80,
      "ordinal": 150,
      "text": "Linux ",
      "top": 858.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05"
      }
    },
    {
      "id": "p080-t0151",
      "page": 80,
      "ordinal": 151,
      "text": "的基本组件是什么？",
      "top": 858.0,
      "left": 189.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05"
      }
    },
    {
      "id": "p080-t0154",
      "page": 80,
      "ordinal": 154,
      "text": "就像任何其他典型的操作系统⼀样，",
      "top": 909.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0155",
      "page": 80,
      "ordinal": 155,
      "text": "Linux ",
      "top": 909.0,
      "left": 346.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0156",
      "page": 80,
      "ordinal": 156,
      "text": "拥有所有这些组件：内核，",
      "top": 909.0,
      "left": 386.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0157",
      "page": 80,
      "ordinal": 157,
      "text": "shell ",
      "top": 909.0,
      "left": 562.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0158",
      "page": 80,
      "ordinal": 158,
      "text": "和",
      "top": 909.0,
      "left": 597.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0159",
      "page": 80,
      "ordinal": 159,
      "text": " GUI",
      "top": 909.0,
      "left": 612.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0160",
      "page": 80,
      "ordinal": 160,
      "text": "，系统实⽤程序和应",
      "top": 909.0,
      "left": 641.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0161",
      "page": 80,
      "ordinal": 161,
      "text": "⽤程序。",
      "top": 932.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0162",
      "page": 80,
      "ordinal": 162,
      "text": " Linux ",
      "top": 932.0,
      "left": 170.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0163",
      "page": 80,
      "ordinal": 163,
      "text": "⽐其他操作系统更具优势的是每个⽅⾯都附带其他功能，所有代码都可以免费下载",
      "top": 932.0,
      "left": 215.0,
      "width": 527.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h05",
        "heading_id": "p080-h05",
        "block_id": "q-p080-h05-b001"
      }
    },
    {
      "id": "p080-t0165",
      "page": 80,
      "ordinal": 165,
      "text": "Linux ",
      "top": 967.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06"
      }
    },
    {
      "id": "p080-t0166",
      "page": 80,
      "ordinal": 166,
      "text": "的体系结构",
      "top": 967.0,
      "left": 189.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06"
      }
    },
    {
      "id": "p080-t0169",
      "page": 80,
      "ordinal": 169,
      "text": "从⼤的⽅⾯讲，",
      "top": 1017.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0170",
      "page": 80,
      "ordinal": 170,
      "text": "Linux ",
      "top": 1017.0,
      "left": 214.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0171",
      "page": 80,
      "ordinal": 171,
      "text": "体系结构可以分为两块：",
      "top": 1017.0,
      "left": 255.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0173",
      "page": 80,
      "ordinal": 173,
      "text": "⽤户空间",
      "top": 1017.0,
      "left": 420.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0174",
      "page": 80,
      "ordinal": 174,
      "text": "(User Space)",
      "top": 1017.0,
      "left": 478.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0175",
      "page": 80,
      "ordinal": 175,
      "text": "：⽤户空间⼜包括⽤户的应⽤程序",
      "top": 1017.0,
      "left": 563.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0176",
      "page": 80,
      "ordinal": 176,
      "text": "(User Applications)",
      "top": 1040.0,
      "left": 112.0,
      "width": 128.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0177",
      "page": 80,
      "ordinal": 177,
      "text": "、",
      "top": 1040.0,
      "left": 239.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0178",
      "page": 80,
      "ordinal": 178,
      "text": "C ",
      "top": 1040.0,
      "left": 254.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0179",
      "page": 80,
      "ordinal": 179,
      "text": "库",
      "top": 1040.0,
      "left": 267.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0180",
      "page": 80,
      "ordinal": 180,
      "text": "(C Library)",
      "top": 1040.0,
      "left": 282.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0181",
      "page": 80,
      "ordinal": 181,
      "text": "。",
      "top": 1040.0,
      "left": 351.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0183",
      "page": 80,
      "ordinal": 183,
      "text": "内核空间",
      "top": 1040.0,
      "left": 369.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0184",
      "page": 80,
      "ordinal": 184,
      "text": "(Kernel Space)",
      "top": 1040.0,
      "left": 428.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0185",
      "page": 80,
      "ordinal": 185,
      "text": "：内核空间⼜包括系统调⽤接⼝",
      "top": 1040.0,
      "left": 525.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0186",
      "page": 80,
      "ordinal": 186,
      "text": "(System Call Interface)",
      "top": 1064.0,
      "left": 112.0,
      "width": 151.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0187",
      "page": 80,
      "ordinal": 187,
      "text": "、内核",
      "top": 1064.0,
      "left": 263.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0188",
      "page": 80,
      "ordinal": 188,
      "text": "(Kernel)",
      "top": 1064.0,
      "left": 307.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0189",
      "page": 80,
      "ordinal": 189,
      "text": "、平台架构相",
      "top": 1064.0,
      "left": 359.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0191",
      "page": 80,
      "ordinal": 191,
      "text": "关的代码",
      "top": 1064.0,
      "left": 451.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0192",
      "page": 80,
      "ordinal": 192,
      "text": "(Architecture - Dependent Kernel ",
      "top": 1064.0,
      "left": 509.0,
      "width": 228.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0193",
      "page": 80,
      "ordinal": 193,
      "text": "Code)",
      "top": 1088.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0194",
      "page": 80,
      "ordinal": 194,
      "text": "。",
      "top": 1088.0,
      "left": 151.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0196",
      "page": 80,
      "ordinal": 196,
      "text": "为什么",
      "top": 1088.0,
      "left": 170.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0197",
      "page": 80,
      "ordinal": 197,
      "text": " Linux ",
      "top": 1088.0,
      "left": 214.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0198",
      "page": 80,
      "ordinal": 198,
      "text": "体系结构要分为⽤户空间和内核空间的原因？",
      "top": 1088.0,
      "left": 258.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b001"
      }
    },
    {
      "id": "p080-t0200",
      "page": 80,
      "ordinal": 200,
      "text": "1. ",
      "top": 1122.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0201",
      "page": 80,
      "ordinal": 201,
      "text": "现代",
      "top": 1122.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0202",
      "page": 80,
      "ordinal": 202,
      "text": " CPU ",
      "top": 1122.0,
      "left": 175.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0203",
      "page": 80,
      "ordinal": 203,
      "text": "实现了不同的⼯作模式，不同模式下",
      "top": 1122.0,
      "left": 211.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0204",
      "page": 80,
      "ordinal": 204,
      "text": " CPU ",
      "top": 1122.0,
      "left": 445.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0205",
      "page": 80,
      "ordinal": 205,
      "text": "可以执⾏的指令和访问的寄存器不同。",
      "top": 1122.0,
      "left": 481.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b002"
      }
    },
    {
      "id": "p080-t0207",
      "page": 80,
      "ordinal": 207,
      "text": "2. Linux ",
      "top": 1153.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0208",
      "page": 80,
      "ordinal": 208,
      "text": "从",
      "top": 1153.0,
      "left": 186.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0209",
      "page": 80,
      "ordinal": 209,
      "text": " CPU ",
      "top": 1153.0,
      "left": 201.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0210",
      "page": 80,
      "ordinal": 210,
      "text": "的⻆度出发，为了保护内核的安全，把系统分成了两部分。⽤户空间和内核空间是程",
      "top": 1153.0,
      "left": 237.0,
      "width": 541.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0211",
      "page": 80,
      "ordinal": 211,
      "text": "序执⾏的",
      "top": 1176.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0213",
      "page": 80,
      "ordinal": 213,
      "text": "两种不同的状态，我们可以通过两种⽅式完成⽤户空间到内核空间的转移：",
      "top": 1176.0,
      "left": 208.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0214",
      "page": 80,
      "ordinal": 214,
      "text": "1",
      "top": 1176.0,
      "left": 690.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0215",
      "page": 80,
      "ordinal": 215,
      "text": "）系统调",
      "top": 1176.0,
      "left": 699.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0216",
      "page": 80,
      "ordinal": 216,
      "text": "⽤；",
      "top": 1200.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0217",
      "page": 80,
      "ordinal": 217,
      "text": "2",
      "top": 1200.0,
      "left": 175.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p080-t0218",
      "page": 80,
      "ordinal": 218,
      "text": "）硬件中断。",
      "top": 1200.0,
      "left": 183.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p080-h06",
        "heading_id": "p080-h06",
        "block_id": "q-p080-h06-b003"
      }
    },
    {
      "id": "p081-t0001",
      "page": 81,
      "ordinal": 1,
      "text": "BASH ",
      "top": 40.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01"
      }
    },
    {
      "id": "p081-t0002",
      "page": 81,
      "ordinal": 2,
      "text": "和",
      "top": 40.0,
      "left": 187.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01"
      }
    },
    {
      "id": "p081-t0003",
      "page": 81,
      "ordinal": 3,
      "text": " DOS ",
      "top": 40.0,
      "left": 213.0,
      "width": 67.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01"
      }
    },
    {
      "id": "p081-t0004",
      "page": 81,
      "ordinal": 4,
      "text": "之间的基本区别是什么？",
      "top": 40.0,
      "left": 279.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01"
      }
    },
    {
      "id": "p081-t0007",
      "page": 81,
      "ordinal": 7,
      "text": " BASH",
      "top": 91.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0008",
      "page": 81,
      "ordinal": 8,
      "text": "和",
      "top": 91.0,
      "left": 153.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0009",
      "page": 81,
      "ordinal": 9,
      "text": " DOS",
      "top": 91.0,
      "left": 168.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0010",
      "page": 81,
      "ordinal": 10,
      "text": "控制台之间的主要区别在于",
      "top": 91.0,
      "left": 202.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0011",
      "page": 81,
      "ordinal": 11,
      "text": "3 ",
      "top": 91.0,
      "left": 377.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0012",
      "page": 81,
      "ordinal": 12,
      "text": "个⽅⾯：",
      "top": 91.0,
      "left": 389.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b001"
      }
    },
    {
      "id": "p081-t0014",
      "page": 81,
      "ordinal": 14,
      "text": "1. BASH",
      "top": 126.0,
      "left": 129.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b002"
      }
    },
    {
      "id": "p081-t0015",
      "page": 81,
      "ordinal": 15,
      "text": "命令区分⼤⼩写，⽽",
      "top": 126.0,
      "left": 183.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b002"
      }
    },
    {
      "id": "p081-t0016",
      "page": 81,
      "ordinal": 16,
      "text": " DOS",
      "top": 126.0,
      "left": 315.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b002"
      }
    },
    {
      "id": "p081-t0017",
      "page": 81,
      "ordinal": 17,
      "text": "命令则不区分",
      "top": 126.0,
      "left": 349.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b002"
      }
    },
    {
      "id": "p081-t0018",
      "page": 81,
      "ordinal": 18,
      "text": "; ",
      "top": 126.0,
      "left": 436.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b002"
      }
    },
    {
      "id": "p081-t0019",
      "page": 81,
      "ordinal": 19,
      "text": "2. ",
      "top": 156.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0020",
      "page": 81,
      "ordinal": 20,
      "text": "在",
      "top": 156.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0021",
      "page": 81,
      "ordinal": 21,
      "text": " BASH",
      "top": 156.0,
      "left": 160.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0022",
      "page": 81,
      "ordinal": 22,
      "text": "下，",
      "top": 156.0,
      "left": 201.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0023",
      "page": 81,
      "ordinal": 23,
      "text": "/ character ",
      "top": 156.0,
      "left": 231.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0024",
      "page": 81,
      "ordinal": 24,
      "text": "是⽬录分隔符，",
      "top": 156.0,
      "left": 308.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0025",
      "page": 81,
      "ordinal": 25,
      "text": "\\",
      "top": 156.0,
      "left": 411.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0026",
      "page": 81,
      "ordinal": 26,
      "text": "作为转义字符。在",
      "top": 156.0,
      "left": 416.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0027",
      "page": 81,
      "ordinal": 27,
      "text": " DOS",
      "top": 156.0,
      "left": 533.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0028",
      "page": 81,
      "ordinal": 28,
      "text": "下，",
      "top": 156.0,
      "left": 567.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0029",
      "page": 81,
      "ordinal": 29,
      "text": "/",
      "top": 156.0,
      "left": 596.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0030",
      "page": 81,
      "ordinal": 30,
      "text": "⽤作命令参数分隔符，",
      "top": 156.0,
      "left": 601.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0031",
      "page": 81,
      "ordinal": 31,
      "text": "\\",
      "top": 156.0,
      "left": 748.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0032",
      "page": 81,
      "ordinal": 32,
      "text": "是",
      "top": 156.0,
      "left": 753.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0033",
      "page": 81,
      "ordinal": 33,
      "text": "⽬录分隔符",
      "top": 180.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b003"
      }
    },
    {
      "id": "p081-t0035",
      "page": 81,
      "ordinal": 35,
      "text": "3. DOS",
      "top": 210.0,
      "left": 129.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0036",
      "page": 81,
      "ordinal": 36,
      "text": "遵循命名⽂件中的约定，即",
      "top": 210.0,
      "left": 176.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0037",
      "page": 81,
      "ordinal": 37,
      "text": "8 ",
      "top": 210.0,
      "left": 351.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0038",
      "page": 81,
      "ordinal": 38,
      "text": "个字符的⽂件名后跟⼀个点，扩展名为",
      "top": 210.0,
      "left": 363.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0039",
      "page": 81,
      "ordinal": 39,
      "text": "3 ",
      "top": 210.0,
      "left": 612.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0040",
      "page": 81,
      "ordinal": 40,
      "text": "个字符。",
      "top": 210.0,
      "left": 624.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0041",
      "page": 81,
      "ordinal": 41,
      "text": "BASH",
      "top": 210.0,
      "left": 683.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0042",
      "page": 81,
      "ordinal": 42,
      "text": "没有遵循",
      "top": 210.0,
      "left": 720.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0043",
      "page": 81,
      "ordinal": 43,
      "text": "这样的惯",
      "top": 234.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0045",
      "page": 81,
      "ordinal": 45,
      "text": "例",
      "top": 234.0,
      "left": 208.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h01",
        "heading_id": "p081-h01",
        "block_id": "q-p081-h01-b004"
      }
    },
    {
      "id": "p081-t0047",
      "page": 81,
      "ordinal": 47,
      "text": "Linux ",
      "top": 268.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02"
      }
    },
    {
      "id": "p081-t0048",
      "page": 81,
      "ordinal": 48,
      "text": "开机启动过程？",
      "top": 268.0,
      "left": 189.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02"
      }
    },
    {
      "id": "p081-t0051",
      "page": 81,
      "ordinal": 51,
      "text": "1. ",
      "top": 319.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b001"
      }
    },
    {
      "id": "p081-t0052",
      "page": 81,
      "ordinal": 52,
      "text": "主机加电自检，加载",
      "top": 319.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b001"
      }
    },
    {
      "id": "p081-t0053",
      "page": 81,
      "ordinal": 53,
      "text": " BIOS ",
      "top": 319.0,
      "left": 277.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b001"
      }
    },
    {
      "id": "p081-t0054",
      "page": 81,
      "ordinal": 54,
      "text": "硬件信息",
      "top": 319.0,
      "left": 318.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b001"
      }
    },
    {
      "id": "p081-t0056",
      "page": 81,
      "ordinal": 56,
      "text": "2. ",
      "top": 350.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0057",
      "page": 81,
      "ordinal": 57,
      "text": "读取",
      "top": 350.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0058",
      "page": 81,
      "ordinal": 58,
      "text": " MBR ",
      "top": 350.0,
      "left": 175.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0059",
      "page": 81,
      "ordinal": 59,
      "text": "的引导文件",
      "top": 350.0,
      "left": 214.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0060",
      "page": 81,
      "ordinal": 60,
      "text": "(GRUB",
      "top": 350.0,
      "left": 287.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0061",
      "page": 81,
      "ordinal": 61,
      "text": "、",
      "top": 350.0,
      "left": 331.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0062",
      "page": 81,
      "ordinal": 62,
      "text": "LILO) ",
      "top": 350.0,
      "left": 346.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b002"
      }
    },
    {
      "id": "p081-t0063",
      "page": 81,
      "ordinal": 63,
      "text": "3. ",
      "top": 380.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b003"
      }
    },
    {
      "id": "p081-t0064",
      "page": 81,
      "ordinal": 64,
      "text": "引导",
      "top": 380.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b003"
      }
    },
    {
      "id": "p081-t0065",
      "page": 81,
      "ordinal": 65,
      "text": " Linux ",
      "top": 380.0,
      "left": 175.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b003"
      }
    },
    {
      "id": "p081-t0066",
      "page": 81,
      "ordinal": 66,
      "text": "内核",
      "top": 380.0,
      "left": 219.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b003"
      }
    },
    {
      "id": "p081-t0068",
      "page": 81,
      "ordinal": 68,
      "text": "4. ",
      "top": 411.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b004"
      }
    },
    {
      "id": "p081-t0069",
      "page": 81,
      "ordinal": 69,
      "text": "运行第一个进程",
      "top": 411.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b004"
      }
    },
    {
      "id": "p081-t0070",
      "page": 81,
      "ordinal": 70,
      "text": " init (",
      "top": 411.0,
      "left": 248.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b004"
      }
    },
    {
      "id": "p081-t0071",
      "page": 81,
      "ordinal": 71,
      "text": "进程号永远为",
      "top": 411.0,
      "left": 281.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b004"
      }
    },
    {
      "id": "p081-t0072",
      "page": 81,
      "ordinal": 72,
      "text": " 1 ) ",
      "top": 411.0,
      "left": 369.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b004"
      }
    },
    {
      "id": "p081-t0073",
      "page": 81,
      "ordinal": 73,
      "text": "5. ",
      "top": 442.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b005"
      }
    },
    {
      "id": "p081-t0074",
      "page": 81,
      "ordinal": 74,
      "text": "进入相应的运行级别",
      "top": 442.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b005"
      }
    },
    {
      "id": "p081-t0076",
      "page": 81,
      "ordinal": 76,
      "text": "6. ",
      "top": 472.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b006"
      }
    },
    {
      "id": "p081-t0077",
      "page": 81,
      "ordinal": 77,
      "text": "运行终端，输入用户名和密码",
      "top": 472.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h02",
        "heading_id": "p081-h02",
        "block_id": "q-p081-h02-b006"
      }
    },
    {
      "id": "p081-t0079",
      "page": 81,
      "ordinal": 79,
      "text": "Linux ",
      "top": 507.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03"
      }
    },
    {
      "id": "p081-t0080",
      "page": 81,
      "ordinal": 80,
      "text": "系统缺省的运行级别？",
      "top": 507.0,
      "left": 189.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03"
      }
    },
    {
      "id": "p081-t0082",
      "page": 81,
      "ordinal": 82,
      "text": "关机",
      "top": 558.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0084",
      "page": 81,
      "ordinal": 84,
      "text": "单机用户模式",
      "top": 581.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0085",
      "page": 81,
      "ordinal": 85,
      "text": "字符界面的多用户模式",
      "top": 605.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0086",
      "page": 81,
      "ordinal": 86,
      "text": "(",
      "top": 605.0,
      "left": 258.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0087",
      "page": 81,
      "ordinal": 87,
      "text": "不支持网络",
      "top": 605.0,
      "left": 262.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0088",
      "page": 81,
      "ordinal": 88,
      "text": ") ",
      "top": 605.0,
      "left": 335.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0089",
      "page": 81,
      "ordinal": 89,
      "text": "字符界面的多用户模式",
      "top": 627.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0091",
      "page": 81,
      "ordinal": 91,
      "text": "未分配使用",
      "top": 651.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0093",
      "page": 81,
      "ordinal": 93,
      "text": "图形界面的多用户模式",
      "top": 675.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0095",
      "page": 81,
      "ordinal": 95,
      "text": "重启",
      "top": 698.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h03",
        "heading_id": "p081-h03",
        "block_id": "q-p081-h03-b001"
      }
    },
    {
      "id": "p081-t0097",
      "page": 81,
      "ordinal": 97,
      "text": "Linux ",
      "top": 733.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04"
      }
    },
    {
      "id": "p081-t0098",
      "page": 81,
      "ordinal": 98,
      "text": "使用的进程间通信方式？",
      "top": 733.0,
      "left": 189.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04"
      }
    },
    {
      "id": "p081-t0102",
      "page": 81,
      "ordinal": 102,
      "text": "管道",
      "top": 783.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0103",
      "page": 81,
      "ordinal": 103,
      "text": "(pipe)",
      "top": 783.0,
      "left": 145.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0104",
      "page": 81,
      "ordinal": 104,
      "text": "、流管道",
      "top": 783.0,
      "left": 183.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0105",
      "page": 81,
      "ordinal": 105,
      "text": "(s_pipe)",
      "top": 783.0,
      "left": 242.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0106",
      "page": 81,
      "ordinal": 106,
      "text": "、有名管道",
      "top": 783.0,
      "left": 294.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0107",
      "page": 81,
      "ordinal": 107,
      "text": "(FIFO) ",
      "top": 783.0,
      "left": 367.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0108",
      "page": 81,
      "ordinal": 108,
      "text": "信号",
      "top": 806.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0109",
      "page": 81,
      "ordinal": 109,
      "text": "(signal) ",
      "top": 806.0,
      "left": 141.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0111",
      "page": 81,
      "ordinal": 111,
      "text": "消息队列",
      "top": 830.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0113",
      "page": 81,
      "ordinal": 113,
      "text": "共享内存",
      "top": 854.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0116",
      "page": 81,
      "ordinal": 116,
      "text": "信号量",
      "top": 877.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0118",
      "page": 81,
      "ordinal": 118,
      "text": "套接字",
      "top": 900.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0119",
      "page": 81,
      "ordinal": 119,
      "text": "(socket)  ",
      "top": 900.0,
      "left": 156.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h04",
        "heading_id": "p081-h04",
        "block_id": "q-p081-h04-b001"
      }
    },
    {
      "id": "p081-t0120",
      "page": 81,
      "ordinal": 120,
      "text": "Linux ",
      "top": 934.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05"
      }
    },
    {
      "id": "p081-t0121",
      "page": 81,
      "ordinal": 121,
      "text": "有哪些系统日志文件？",
      "top": 934.0,
      "left": 189.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05"
      }
    },
    {
      "id": "p081-t0125",
      "page": 81,
      "ordinal": 125,
      "text": "比较重要的是",
      "top": 985.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0126",
      "page": 81,
      "ordinal": 126,
      "text": " /var/log/messages ",
      "top": 985.0,
      "left": 203.0,
      "width": 133.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0127",
      "page": 81,
      "ordinal": 127,
      "text": "日志文件",
      "top": 985.0,
      "left": 336.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0129",
      "page": 81,
      "ordinal": 129,
      "text": "该日志文件是许多进程日志文件的汇总，从该文件可以看出任何入侵企图或成",
      "top": 1009.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0131",
      "page": 81,
      "ordinal": 131,
      "text": "功的入侵。",
      "top": 1009.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0133",
      "page": 81,
      "ordinal": 133,
      "text": "另外，如果胖",
      "top": 1009.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0134",
      "page": 81,
      "ordinal": 134,
      "text": "友的系统里有",
      "top": 1032.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0135",
      "page": 81,
      "ordinal": 135,
      "text": " ELK ",
      "top": 1032.0,
      "left": 200.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0136",
      "page": 81,
      "ordinal": 136,
      "text": "日志集中收集，它也会被收集进",
      "top": 1032.0,
      "left": 232.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0138",
      "page": 81,
      "ordinal": 138,
      "text": "去。",
      "top": 1032.0,
      "left": 440.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h05",
        "heading_id": "p081-h05",
        "block_id": "q-p081-h05-b001"
      }
    },
    {
      "id": "p081-t0140",
      "page": 81,
      "ordinal": 140,
      "text": "什么是交换空间",
      "top": 1067.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06"
      }
    },
    {
      "id": "p081-t0144",
      "page": 81,
      "ordinal": 144,
      "text": "交换空间是",
      "top": 1117.0,
      "left": 116.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p081-t0145",
      "page": 81,
      "ordinal": 145,
      "text": " Linux ",
      "top": 1117.0,
      "left": 189.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p081-t0146",
      "page": 81,
      "ordinal": 146,
      "text": "使用的一定空间，用于临时保存一些并发运行的程序。当",
      "top": 1117.0,
      "left": 233.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p081-t0147",
      "page": 81,
      "ordinal": 147,
      "text": " RAM ",
      "top": 1117.0,
      "left": 599.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p081-t0148",
      "page": 81,
      "ordinal": 148,
      "text": "没有足够的内存来容",
      "top": 1117.0,
      "left": 638.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p081-t0149",
      "page": 81,
      "ordinal": 149,
      "text": "纳正在执行的所有程序时，就会发生这种情况",
      "top": 1140.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p081-h06",
        "heading_id": "p081-h06",
        "block_id": "q-p081-h06-b001"
      }
    },
    {
      "id": "p082-t0001",
      "page": 82,
      "ordinal": 1,
      "text": "什么是",
      "top": 40.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01"
      }
    },
    {
      "id": "p082-t0002",
      "page": 82,
      "ordinal": 2,
      "text": " Root ",
      "top": 40.0,
      "left": 189.0,
      "width": 73.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01"
      }
    },
    {
      "id": "p082-t0003",
      "page": 82,
      "ordinal": 3,
      "text": "帐户",
      "top": 40.0,
      "left": 262.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01"
      }
    },
    {
      "id": "p082-t0006",
      "page": 82,
      "ordinal": 6,
      "text": "root ",
      "top": 91.0,
      "left": 112.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0007",
      "page": 82,
      "ordinal": 7,
      "text": "帐户就像一个系统管理员帐户，允许你完全控制系统。你可以在此处创建",
      "top": 91.0,
      "left": 144.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0009",
      "page": 82,
      "ordinal": 9,
      "text": "和维护用户帐户，为每个",
      "top": 91.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0010",
      "page": 82,
      "ordinal": 10,
      "text": "帐户分配不同的权限。每次安装",
      "top": 114.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0011",
      "page": 82,
      "ordinal": 11,
      "text": " Linux ",
      "top": 114.0,
      "left": 317.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0012",
      "page": 82,
      "ordinal": 12,
      "text": "时都是默认帐",
      "top": 114.0,
      "left": 361.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0014",
      "page": 82,
      "ordinal": 14,
      "text": "户",
      "top": 114.0,
      "left": 453.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h01",
        "heading_id": "p082-h01",
        "block_id": "q-p082-h01-b001"
      }
    },
    {
      "id": "p082-t0016",
      "page": 82,
      "ordinal": 16,
      "text": "什么是",
      "top": 148.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02"
      }
    },
    {
      "id": "p082-t0017",
      "page": 82,
      "ordinal": 17,
      "text": " LILO",
      "top": 148.0,
      "left": 189.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02"
      }
    },
    {
      "id": "p082-t0018",
      "page": 82,
      "ordinal": 18,
      "text": "？",
      "top": 148.0,
      "left": 253.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02"
      }
    },
    {
      "id": "p082-t0021",
      "page": 82,
      "ordinal": 21,
      "text": "LILO ",
      "top": 199.0,
      "left": 112.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0022",
      "page": 82,
      "ordinal": 22,
      "text": "是",
      "top": 199.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0023",
      "page": 82,
      "ordinal": 23,
      "text": " Linux ",
      "top": 199.0,
      "left": 161.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0024",
      "page": 82,
      "ordinal": 24,
      "text": "的引导加载程序。它主要用于将",
      "top": 199.0,
      "left": 205.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0025",
      "page": 82,
      "ordinal": 25,
      "text": " Linux ",
      "top": 199.0,
      "left": 410.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0026",
      "page": 82,
      "ordinal": 26,
      "text": "操作系统加载到主内存",
      "top": 199.0,
      "left": 455.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0028",
      "page": 82,
      "ordinal": 28,
      "text": "中，以便它可以开始运行。",
      "top": 199.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h02",
        "heading_id": "p082-h02",
        "block_id": "q-p082-h02-b001"
      }
    },
    {
      "id": "p082-t0030",
      "page": 82,
      "ordinal": 30,
      "text": "什么是",
      "top": 233.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03"
      }
    },
    {
      "id": "p082-t0031",
      "page": 82,
      "ordinal": 31,
      "text": " BASH",
      "top": 233.0,
      "left": 189.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03"
      }
    },
    {
      "id": "p082-t0032",
      "page": 82,
      "ordinal": 32,
      "text": "？",
      "top": 233.0,
      "left": 264.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03"
      }
    },
    {
      "id": "p082-t0035",
      "page": 82,
      "ordinal": 35,
      "text": "BASH ",
      "top": 284.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0036",
      "page": 82,
      "ordinal": 36,
      "text": "是",
      "top": 284.0,
      "left": 153.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0037",
      "page": 82,
      "ordinal": 37,
      "text": " Bourne Again SHell ",
      "top": 284.0,
      "left": 168.0,
      "width": 138.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0038",
      "page": 82,
      "ordinal": 38,
      "text": "的缩写。它由",
      "top": 284.0,
      "left": 306.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0039",
      "page": 82,
      "ordinal": 39,
      "text": " Steve Bourne ",
      "top": 284.0,
      "left": 394.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0040",
      "page": 82,
      "ordinal": 40,
      "text": "编写，作为原始",
      "top": 284.0,
      "left": 492.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0041",
      "page": 82,
      "ordinal": 41,
      "text": " Bourne Shell",
      "top": 284.0,
      "left": 595.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0042",
      "page": 82,
      "ordinal": 42,
      "text": "（由",
      "top": 284.0,
      "left": 685.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0043",
      "page": 82,
      "ordinal": 43,
      "text": "/ bin / sh ",
      "top": 284.0,
      "left": 715.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0044",
      "page": 82,
      "ordinal": 44,
      "text": "表示）的替代品。它结合了原始版本的",
      "top": 308.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0045",
      "page": 82,
      "ordinal": 45,
      "text": " Bourne Shell ",
      "top": 308.0,
      "left": 360.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0046",
      "page": 82,
      "ordinal": 46,
      "text": "的所有功能，以及其他功能，使其更容易使用。从",
      "top": 308.0,
      "left": 455.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0047",
      "page": 82,
      "ordinal": 47,
      "text": "那以后，它已被改编",
      "top": 332.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0049",
      "page": 82,
      "ordinal": 49,
      "text": "为运行",
      "top": 332.0,
      "left": 247.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0050",
      "page": 82,
      "ordinal": 50,
      "text": " Linux ",
      "top": 332.0,
      "left": 291.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0051",
      "page": 82,
      "ordinal": 51,
      "text": "的大多数系统的默认",
      "top": 332.0,
      "left": 336.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0052",
      "page": 82,
      "ordinal": 52,
      "text": " shell",
      "top": 332.0,
      "left": 467.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0053",
      "page": 82,
      "ordinal": 53,
      "text": "。",
      "top": 332.0,
      "left": 503.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h03",
        "heading_id": "p082-h03",
        "block_id": "q-p082-h03-b001"
      }
    },
    {
      "id": "p082-t0055",
      "page": 82,
      "ordinal": 55,
      "text": "什么是",
      "top": 365.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04"
      }
    },
    {
      "id": "p082-t0056",
      "page": 82,
      "ordinal": 56,
      "text": " CLI",
      "top": 365.0,
      "left": 189.0,
      "width": 46.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04"
      }
    },
    {
      "id": "p082-t0057",
      "page": 82,
      "ordinal": 57,
      "text": "？",
      "top": 365.0,
      "left": 234.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04"
      }
    },
    {
      "id": "p082-t0060",
      "page": 82,
      "ordinal": 60,
      "text": "命令行界面（英语：",
      "top": 416.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0061",
      "page": 82,
      "ordinal": 61,
      "text": "command-line interface",
      "top": 416.0,
      "left": 243.0,
      "width": 162.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0062",
      "page": 82,
      "ordinal": 62,
      "text": "，缩写",
      "top": 416.0,
      "left": 406.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0063",
      "page": 82,
      "ordinal": 63,
      "text": "]",
      "top": 416.0,
      "left": 450.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0064",
      "page": 82,
      "ordinal": 64,
      "text": "：",
      "top": 416.0,
      "left": 454.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0065",
      "page": 82,
      "ordinal": 65,
      "text": "CLI",
      "top": 416.0,
      "left": 469.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0066",
      "page": 82,
      "ordinal": 66,
      "text": "）是在图形用户界",
      "top": 416.0,
      "left": 490.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0068",
      "page": 82,
      "ordinal": 68,
      "text": "面得到普及之前使用最为",
      "top": 416.0,
      "left": 611.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0069",
      "page": 82,
      "ordinal": 69,
      "text": "广泛的用户界面，它通常不支持鼠标，用户通过键盘",
      "top": 440.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0071",
      "page": 82,
      "ordinal": 71,
      "text": "输入指令，计算机接收到指令后，予以执行。也有",
      "top": 440.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0072",
      "page": 82,
      "ordinal": 72,
      "text": "人称之为字符用户界面",
      "top": 463.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0074",
      "page": 82,
      "ordinal": 74,
      "text": "（",
      "top": 463.0,
      "left": 262.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0075",
      "page": 82,
      "ordinal": 75,
      "text": "CUI",
      "top": 463.0,
      "left": 276.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0076",
      "page": 82,
      "ordinal": 76,
      "text": "）。",
      "top": 463.0,
      "left": 300.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0078",
      "page": 82,
      "ordinal": 78,
      "text": "通常认为，命令行界面（",
      "top": 463.0,
      "left": 333.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0079",
      "page": 82,
      "ordinal": 79,
      "text": "CLI",
      "top": 463.0,
      "left": 494.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0080",
      "page": 82,
      "ordinal": 80,
      "text": "）没有图形用户界面（",
      "top": 463.0,
      "left": 515.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0081",
      "page": 82,
      "ordinal": 81,
      "text": "GUI",
      "top": 463.0,
      "left": 661.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0082",
      "page": 82,
      "ordinal": 82,
      "text": "）那么方便用",
      "top": 463.0,
      "left": 687.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0083",
      "page": 82,
      "ordinal": 83,
      "text": "户操作。",
      "top": 487.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0085",
      "page": 82,
      "ordinal": 85,
      "text": "因为，命令行界面的软件通常需要用户记忆操作的命令，但是，由于其本身的",
      "top": 487.0,
      "left": 174.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0087",
      "page": 82,
      "ordinal": 87,
      "text": "特点，命令行界",
      "top": 487.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0088",
      "page": 82,
      "ordinal": 88,
      "text": "面要较图形用户界面节约计算机系统的资源。在熟记命令的前",
      "top": 509.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0090",
      "page": 82,
      "ordinal": 90,
      "text": "提下，使用命令行界面往往要较使用图形",
      "top": 509.0,
      "left": 510.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0091",
      "page": 82,
      "ordinal": 91,
      "text": "用户界面的操作速度要快。所以，图",
      "top": 533.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0093",
      "page": 82,
      "ordinal": 93,
      "text": "形用户界面的操作系统中，都保留着可选的命令行界面",
      "top": 533.0,
      "left": 350.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h04",
        "heading_id": "p082-h04",
        "block_id": "q-p082-h04-b001"
      }
    },
    {
      "id": "p082-t0095",
      "page": 82,
      "ordinal": 95,
      "text": "什么是",
      "top": 567.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05"
      }
    },
    {
      "id": "p082-t0096",
      "page": 82,
      "ordinal": 96,
      "text": " GUI",
      "top": 567.0,
      "left": 189.0,
      "width": 53.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05"
      }
    },
    {
      "id": "p082-t0097",
      "page": 82,
      "ordinal": 97,
      "text": "？",
      "top": 567.0,
      "left": 242.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05"
      }
    },
    {
      "id": "p082-t0100",
      "page": 82,
      "ordinal": 100,
      "text": "图形用户界面（",
      "top": 618.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0101",
      "page": 82,
      "ordinal": 101,
      "text": "Graphical User Interface",
      "top": 618.0,
      "left": 214.0,
      "width": 165.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0102",
      "page": 82,
      "ordinal": 102,
      "text": "，简称",
      "top": 618.0,
      "left": 379.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0103",
      "page": 82,
      "ordinal": 103,
      "text": " GUI",
      "top": 618.0,
      "left": 423.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0104",
      "page": 82,
      "ordinal": 104,
      "text": "，又称图形用户接口）",
      "top": 618.0,
      "left": 452.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0106",
      "page": 82,
      "ordinal": 106,
      "text": "是指采用图形方式显示的计",
      "top": 618.0,
      "left": 602.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0107",
      "page": 82,
      "ordinal": 107,
      "text": "算机操作用户界面。",
      "top": 642.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0108",
      "page": 82,
      "ordinal": 108,
      "text": " 91 ",
      "top": 642.0,
      "left": 243.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0109",
      "page": 82,
      "ordinal": 109,
      "text": "图形用户界面是一种人与计算机通信的界面显示格式，允许用户使用鼠标等输",
      "top": 642.0,
      "left": 268.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0111",
      "page": 82,
      "ordinal": 111,
      "text": "入设备操纵屏幕上的图标或菜单选项，以选择命令、调用文件、启动程序或执",
      "top": 665.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0113",
      "page": 82,
      "ordinal": 113,
      "text": "行其它一些日常任务。与",
      "top": 665.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0114",
      "page": 82,
      "ordinal": 114,
      "text": "通过键盘输入文本或字符命令来完成例行任务的字符",
      "top": 688.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0116",
      "page": 82,
      "ordinal": 116,
      "text": "界面相比，图形用户界面有许多优点",
      "top": 688.0,
      "left": 452.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h05",
        "heading_id": "p082-h05",
        "block_id": "q-p082-h05-b001"
      }
    },
    {
      "id": "p082-t0118",
      "page": 82,
      "ordinal": 118,
      "text": "开源的优势是什么？",
      "top": 723.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06"
      }
    },
    {
      "id": "p082-t0122",
      "page": 82,
      "ordinal": 122,
      "text": "开源允许你将软件（包括源代码）免费分发给任何感兴趣的人。然后，人们可",
      "top": 774.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0124",
      "page": 82,
      "ordinal": 124,
      "text": "以添加功能，甚至可以调",
      "top": 774.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0125",
      "page": 82,
      "ordinal": 125,
      "text": "试和更正源代码中的错误。它们甚至可以让它运行得",
      "top": 797.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0127",
      "page": 82,
      "ordinal": 127,
      "text": "更好，然后再次自由地重新分配这些增强的源代",
      "top": 797.0,
      "left": 452.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0128",
      "page": 82,
      "ordinal": 128,
      "text": "码。这最终使社区中的每个人",
      "top": 821.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0130",
      "page": 82,
      "ordinal": 130,
      "text": "受益",
      "top": 821.0,
      "left": 306.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h06",
        "heading_id": "p082-h06",
        "block_id": "q-p082-h06-b001"
      }
    },
    {
      "id": "p082-t0132",
      "page": 82,
      "ordinal": 132,
      "text": "GNU ",
      "top": 854.0,
      "left": 112.0,
      "width": 65.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07"
      }
    },
    {
      "id": "p082-t0133",
      "page": 82,
      "ordinal": 133,
      "text": "项目的重要性是什么",
      "top": 854.0,
      "left": 177.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07"
      }
    },
    {
      "id": "p082-t0137",
      "page": 82,
      "ordinal": 137,
      "text": "这种所谓的自由软件运动具有多种优势，例如可以自由地运行程序以及根据你",
      "top": 905.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07",
        "block_id": "q-p082-h07-b001"
      }
    },
    {
      "id": "p082-t0139",
      "page": 82,
      "ordinal": 139,
      "text": "的需要自由学习和修改程",
      "top": 905.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07",
        "block_id": "q-p082-h07-b001"
      }
    },
    {
      "id": "p082-t0140",
      "page": 82,
      "ordinal": 140,
      "text": "序。它还允许你将软件副本重新分发给其他人，以及",
      "top": 929.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07",
        "block_id": "q-p082-h07-b001"
      }
    },
    {
      "id": "p082-t0142",
      "page": 82,
      "ordinal": 142,
      "text": "自由改进软件并将其发布给公众",
      "top": 929.0,
      "left": 452.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p082-h07",
        "heading_id": "p082-h07",
        "block_id": "q-p082-h07-b001"
      }
    },
    {
      "id": "p083-t0001",
      "page": 83,
      "ordinal": 1,
      "text": "缓存",
      "top": 39.0,
      "left": 112.0,
      "width": 66.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/09-redis-cache#q-p083-h02",
        "heading_id": "p083-h01"
      }
    },
    {
      "id": "p083-t0003",
      "page": 83,
      "ordinal": 3,
      "text": "缓存如何实现高性能？",
      "top": 95.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h02",
        "heading_id": "p083-h02"
      }
    },
    {
      "id": "p083-t0006",
      "page": 83,
      "ordinal": 6,
      "text": "缓存如何实现高并发",
      "top": 409.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h03",
        "heading_id": "p083-h03"
      }
    },
    {
      "id": "p083-t0009",
      "page": 83,
      "ordinal": 9,
      "text": "Redis ",
      "top": 781.0,
      "left": 112.0,
      "width": 75.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04"
      }
    },
    {
      "id": "p083-t0010",
      "page": 83,
      "ordinal": 10,
      "text": "和",
      "top": 781.0,
      "left": 187.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04"
      }
    },
    {
      "id": "p083-t0011",
      "page": 83,
      "ordinal": 11,
      "text": " Memcached ",
      "top": 781.0,
      "left": 213.0,
      "width": 168.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04"
      }
    },
    {
      "id": "p083-t0012",
      "page": 83,
      "ordinal": 12,
      "text": "的区别",
      "top": 781.0,
      "left": 380.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04"
      }
    },
    {
      "id": "p083-t0015",
      "page": 83,
      "ordinal": 15,
      "text": "Redis ",
      "top": 832.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0016",
      "page": 83,
      "ordinal": 16,
      "text": "拥有更多的数据结构和丰富的数据操作",
      "top": 832.0,
      "left": 152.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0017",
      "page": 83,
      "ordinal": 17,
      "text": " Redis ",
      "top": 832.0,
      "left": 401.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0018",
      "page": 83,
      "ordinal": 18,
      "text": "内存利用率高于",
      "top": 832.0,
      "left": 446.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0019",
      "page": 83,
      "ordinal": 19,
      "text": " Memcached Redis ",
      "top": 832.0,
      "left": 548.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0020",
      "page": 83,
      "ordinal": 20,
      "text": "是单线程，",
      "top": 832.0,
      "left": 679.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0021",
      "page": 83,
      "ordinal": 21,
      "text": "Memcached ",
      "top": 855.0,
      "left": 112.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0022",
      "page": 83,
      "ordinal": 22,
      "text": "是多线程，在存储大数据的情况下，",
      "top": 855.0,
      "left": 199.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0023",
      "page": 83,
      "ordinal": 23,
      "text": "Redis ",
      "top": 855.0,
      "left": 433.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0024",
      "page": 83,
      "ordinal": 24,
      "text": "比",
      "top": 855.0,
      "left": 473.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0025",
      "page": 83,
      "ordinal": 25,
      "text": " Memcached ",
      "top": 855.0,
      "left": 488.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0026",
      "page": 83,
      "ordinal": 26,
      "text": "稍有逊色",
      "top": 855.0,
      "left": 579.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0027",
      "page": 83,
      "ordinal": 27,
      "text": " Memcached ",
      "top": 855.0,
      "left": 637.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0028",
      "page": 83,
      "ordinal": 28,
      "text": "没有原",
      "top": 855.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0029",
      "page": 83,
      "ordinal": 29,
      "text": "生的集群模式，",
      "top": 878.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0030",
      "page": 83,
      "ordinal": 30,
      "text": "Redis ",
      "top": 878.0,
      "left": 214.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0031",
      "page": 83,
      "ordinal": 31,
      "text": "官方支持",
      "top": 878.0,
      "left": 255.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0032",
      "page": 83,
      "ordinal": 32,
      "text": " Redis Cluster ",
      "top": 878.0,
      "left": 313.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0033",
      "page": 83,
      "ordinal": 33,
      "text": "集群模式",
      "top": 878.0,
      "left": 410.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h04",
        "heading_id": "p083-h04",
        "block_id": "q-p083-h04-b001"
      }
    },
    {
      "id": "p083-t0035",
      "page": 83,
      "ordinal": 35,
      "text": "用缓存可能出现的问题",
      "top": 913.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05"
      }
    },
    {
      "id": "p083-t0038",
      "page": 83,
      "ordinal": 38,
      "text": "1. ",
      "top": 964.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b001"
      }
    },
    {
      "id": "p083-t0039",
      "page": 83,
      "ordinal": 39,
      "text": "数据不一致",
      "top": 964.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b001"
      }
    },
    {
      "id": "p083-t0041",
      "page": 83,
      "ordinal": 41,
      "text": "2. ",
      "top": 994.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b002"
      }
    },
    {
      "id": "p083-t0042",
      "page": 83,
      "ordinal": 42,
      "text": "缓存雪崩",
      "top": 994.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b002"
      }
    },
    {
      "id": "p083-t0044",
      "page": 83,
      "ordinal": 44,
      "text": "3. ",
      "top": 1026.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b003"
      }
    },
    {
      "id": "p083-t0045",
      "page": 83,
      "ordinal": 45,
      "text": "缓存穿透",
      "top": 1026.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b003"
      }
    },
    {
      "id": "p083-t0047",
      "page": 83,
      "ordinal": 47,
      "text": "4. ",
      "top": 1056.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b004"
      }
    },
    {
      "id": "p083-t0048",
      "page": 83,
      "ordinal": 48,
      "text": "缓存并发竞争",
      "top": 1056.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h05",
        "heading_id": "p083-h05",
        "block_id": "q-p083-h05-b004"
      }
    },
    {
      "id": "p083-t0050",
      "page": 83,
      "ordinal": 50,
      "text": "当查询缓存报错，怎么提高可用性？",
      "top": 1091.0,
      "left": 112.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06"
      }
    },
    {
      "id": "p083-t0054",
      "page": 83,
      "ordinal": 54,
      "text": "缓存可以极大的提高查询性能，但是缓存数据丢失和缓存不可用不能影响应用",
      "top": 1140.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p083-t0056",
      "page": 83,
      "ordinal": 56,
      "text": "的正常工作。因此，一般",
      "top": 1140.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p083-t0057",
      "page": 83,
      "ordinal": 57,
      "text": "情况下，如果缓存出现异常，需要手动捕获这个异",
      "top": 1164.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p083-t0059",
      "page": 83,
      "ordinal": 59,
      "text": "常，并且记录日志，并且从数据库查询数据返回给用",
      "top": 1164.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p083-t0060",
      "page": 83,
      "ordinal": 60,
      "text": "户，而不应该导致业务不",
      "top": 1188.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p083-t0062",
      "page": 83,
      "ordinal": 62,
      "text": "可用",
      "top": 1188.0,
      "left": 276.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p083-h06",
        "heading_id": "p083-h06",
        "block_id": "q-p083-h06-b001"
      }
    },
    {
      "id": "p084-t0001",
      "page": 84,
      "ordinal": 1,
      "text": "如果避免缓存",
      "top": 40.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01"
      }
    },
    {
      "id": "p084-t0002",
      "page": 84,
      "ordinal": 2,
      "text": "”",
      "top": 40.0,
      "left": 265.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01"
      }
    },
    {
      "id": "p084-t0003",
      "page": 84,
      "ordinal": 3,
      "text": "穿透",
      "top": 40.0,
      "left": 277.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01"
      }
    },
    {
      "id": "p084-t0004",
      "page": 84,
      "ordinal": 4,
      "text": "”",
      "top": 40.0,
      "left": 328.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01"
      }
    },
    {
      "id": "p084-t0005",
      "page": 84,
      "ordinal": 5,
      "text": "的问题？",
      "top": 40.0,
      "left": 339.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01"
      }
    },
    {
      "id": "p084-t0008",
      "page": 84,
      "ordinal": 8,
      "text": "缓存穿透，是指查询一个一定不存在的数据，由于缓存是不命中时被动写，并",
      "top": 91.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0010",
      "page": 84,
      "ordinal": 10,
      "text": "且处于容错考虑，如果从",
      "top": 91.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0012",
      "page": 84,
      "ordinal": 12,
      "text": "DB ",
      "top": 114.0,
      "left": 112.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0013",
      "page": 84,
      "ordinal": 13,
      "text": "查不到数据则不写入缓存，这将导致这个不存在",
      "top": 114.0,
      "left": 136.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0015",
      "page": 84,
      "ordinal": 15,
      "text": "的数据每次请求都要到",
      "top": 114.0,
      "left": 447.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0016",
      "page": 84,
      "ordinal": 16,
      "text": " DB ",
      "top": 114.0,
      "left": 593.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0017",
      "page": 84,
      "ordinal": 17,
      "text": "去查询，失去了缓存的意",
      "top": 114.0,
      "left": 621.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0018",
      "page": 84,
      "ordinal": 18,
      "text": "义。",
      "top": 137.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0020",
      "page": 84,
      "ordinal": 20,
      "text": "如何解决",
      "top": 137.0,
      "left": 145.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0022",
      "page": 84,
      "ordinal": 22,
      "text": "有两种方案可以解决",
      "top": 161.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0024",
      "page": 84,
      "ordinal": 24,
      "text": "：",
      "top": 161.0,
      "left": 251.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b001"
      }
    },
    {
      "id": "p084-t0025",
      "page": 84,
      "ordinal": 25,
      "text": "1. ",
      "top": 195.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0026",
      "page": 84,
      "ordinal": 26,
      "text": "方案一，缓存空对象。",
      "top": 195.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0028",
      "page": 84,
      "ordinal": 28,
      "text": "当从",
      "top": 195.0,
      "left": 296.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0029",
      "page": 84,
      "ordinal": 29,
      "text": " DB ",
      "top": 195.0,
      "left": 325.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0030",
      "page": 84,
      "ordinal": 30,
      "text": "查询数据为空，我们仍然将这个空结果进行缓存，具体的值需要使",
      "top": 195.0,
      "left": 353.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0031",
      "page": 84,
      "ordinal": 31,
      "text": "用",
      "top": 219.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0033",
      "page": 84,
      "ordinal": 33,
      "text": "特殊的标识，能和真正缓存的数据区分开。另外，需要设置较短的过期时间，",
      "top": 219.0,
      "left": 164.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0035",
      "page": 84,
      "ordinal": 35,
      "text": "一般建议不要超过",
      "top": 219.0,
      "left": 665.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0037",
      "page": 84,
      "ordinal": 37,
      "text": "5 ",
      "top": 243.0,
      "left": 146.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0038",
      "page": 84,
      "ordinal": 38,
      "text": "分钟。",
      "top": 243.0,
      "left": 158.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b002"
      }
    },
    {
      "id": "p084-t0040",
      "page": 84,
      "ordinal": 40,
      "text": "2. ",
      "top": 273.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0041",
      "page": 84,
      "ordinal": 41,
      "text": "方案二，",
      "top": 273.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0042",
      "page": 84,
      "ordinal": 42,
      "text": "BloomFilter ",
      "top": 273.0,
      "left": 204.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0043",
      "page": 84,
      "ordinal": 43,
      "text": "布隆过滤器。",
      "top": 273.0,
      "left": 287.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0045",
      "page": 84,
      "ordinal": 45,
      "text": "在缓存服务的基础上，构建",
      "top": 273.0,
      "left": 378.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0046",
      "page": 84,
      "ordinal": 46,
      "text": " BloomFilter ",
      "top": 273.0,
      "left": 554.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0047",
      "page": 84,
      "ordinal": 47,
      "text": "数据结构，在",
      "top": 273.0,
      "left": 640.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0049",
      "page": 84,
      "ordinal": 49,
      "text": "BloomFilter ",
      "top": 297.0,
      "left": 146.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0050",
      "page": 84,
      "ordinal": 50,
      "text": "中存储",
      "top": 297.0,
      "left": 228.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0052",
      "page": 84,
      "ordinal": 52,
      "text": "对应的",
      "top": 297.0,
      "left": 276.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0053",
      "page": 84,
      "ordinal": 53,
      "text": " KEY ",
      "top": 297.0,
      "left": 320.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0054",
      "page": 84,
      "ordinal": 54,
      "text": "是否存在，如果存在，说明该",
      "top": 297.0,
      "left": 352.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0055",
      "page": 84,
      "ordinal": 55,
      "text": " KEY ",
      "top": 297.0,
      "left": 543.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0056",
      "page": 84,
      "ordinal": 56,
      "text": "对应的值不为空",
      "top": 297.0,
      "left": 576.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h01",
        "heading_id": "p084-h01",
        "block_id": "q-p084-h01-b003"
      }
    },
    {
      "id": "p084-t0058",
      "page": 84,
      "ordinal": 58,
      "text": "如何避免缓存",
      "top": 331.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02"
      }
    },
    {
      "id": "p084-t0059",
      "page": 84,
      "ordinal": 59,
      "text": "“",
      "top": 331.0,
      "left": 265.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02"
      }
    },
    {
      "id": "p084-t0060",
      "page": 84,
      "ordinal": 60,
      "text": "雪崩",
      "top": 331.0,
      "left": 277.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02"
      }
    },
    {
      "id": "p084-t0061",
      "page": 84,
      "ordinal": 61,
      "text": "”",
      "top": 331.0,
      "left": 328.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02"
      }
    },
    {
      "id": "p084-t0062",
      "page": 84,
      "ordinal": 62,
      "text": "的问题",
      "top": 331.0,
      "left": 339.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02"
      }
    },
    {
      "id": "p084-t0065",
      "page": 84,
      "ordinal": 65,
      "text": "缓存雪崩，是指缓存由于某些原因无法提供服务",
      "top": 382.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0066",
      "page": 84,
      "ordinal": 66,
      "text": "( ",
      "top": 382.0,
      "left": 419.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0067",
      "page": 84,
      "ordinal": 67,
      "text": "例如，缓存挂掉了",
      "top": 382.0,
      "left": 427.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0068",
      "page": 84,
      "ordinal": 68,
      "text": " )",
      "top": 382.0,
      "left": 544.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0069",
      "page": 84,
      "ordinal": 69,
      "text": "，所有",
      "top": 382.0,
      "left": 552.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0071",
      "page": 84,
      "ordinal": 71,
      "text": "请求全部达到",
      "top": 382.0,
      "left": 600.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0072",
      "page": 84,
      "ordinal": 72,
      "text": " DB ",
      "top": 382.0,
      "left": 688.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0073",
      "page": 84,
      "ordinal": 73,
      "text": "中，导致",
      "top": 382.0,
      "left": 715.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0075",
      "page": 84,
      "ordinal": 75,
      "text": "DB ",
      "top": 406.0,
      "left": 112.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0076",
      "page": 84,
      "ordinal": 76,
      "text": "负荷大增，最终挂掉的情况。",
      "top": 406.0,
      "left": 136.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0077",
      "page": 84,
      "ordinal": 77,
      "text": "预防和解决缓存雪崩的问题，可以从以下多个方面进行共同着手。",
      "top": 428.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0078",
      "page": 84,
      "ordinal": 78,
      "text": " 1",
      "top": 428.0,
      "left": 536.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0079",
      "page": 84,
      "ordinal": 79,
      "text": "）缓存高可用：通过搭建缓存的高可",
      "top": 428.0,
      "left": 548.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0080",
      "page": 84,
      "ordinal": 80,
      "text": "用，避免缓存挂掉导致无法提供服务的",
      "top": 452.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0082",
      "page": 84,
      "ordinal": 82,
      "text": "情况，从而降低出现缓存雪崩的情况。假设我们使用",
      "top": 452.0,
      "left": 364.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0083",
      "page": 84,
      "ordinal": 83,
      "text": " Redis ",
      "top": 452.0,
      "left": 701.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0084",
      "page": 84,
      "ordinal": 84,
      "text": "作为",
      "top": 452.0,
      "left": 745.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0085",
      "page": 84,
      "ordinal": 85,
      "text": "缓存，则可以",
      "top": 476.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0087",
      "page": 84,
      "ordinal": 87,
      "text": "使用",
      "top": 476.0,
      "left": 203.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0088",
      "page": 84,
      "ordinal": 88,
      "text": " Redis Sentinel ",
      "top": 476.0,
      "left": 233.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0089",
      "page": 84,
      "ordinal": 89,
      "text": "或",
      "top": 476.0,
      "left": 336.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0090",
      "page": 84,
      "ordinal": 90,
      "text": " Redis Cluster ",
      "top": 476.0,
      "left": 350.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0091",
      "page": 84,
      "ordinal": 91,
      "text": "实现高可用。",
      "top": 476.0,
      "left": 447.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0092",
      "page": 84,
      "ordinal": 92,
      "text": " 2",
      "top": 476.0,
      "left": 535.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0093",
      "page": 84,
      "ordinal": 93,
      "text": "）本地缓存：如果使用本地缓存时，",
      "top": 476.0,
      "left": 547.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0094",
      "page": 84,
      "ordinal": 94,
      "text": "即使分布式缓存挂了，也可以将",
      "top": 499.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0095",
      "page": 84,
      "ordinal": 95,
      "text": " DB ",
      "top": 499.0,
      "left": 317.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0096",
      "page": 84,
      "ordinal": 96,
      "text": "查",
      "top": 499.0,
      "left": 344.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0098",
      "page": 84,
      "ordinal": 98,
      "text": "询到的结果缓存到本地，避免后续请求全部到达",
      "top": 499.0,
      "left": 363.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0099",
      "page": 84,
      "ordinal": 99,
      "text": " DB ",
      "top": 499.0,
      "left": 670.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0100",
      "page": 84,
      "ordinal": 100,
      "text": "中。如果我",
      "top": 499.0,
      "left": 698.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0101",
      "page": 84,
      "ordinal": 101,
      "text": "们使用",
      "top": 523.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0102",
      "page": 84,
      "ordinal": 102,
      "text": " JVM ",
      "top": 523.0,
      "left": 156.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0103",
      "page": 84,
      "ordinal": 103,
      "text": "，",
      "top": 523.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0105",
      "page": 84,
      "ordinal": 105,
      "text": "则可以使用",
      "top": 523.0,
      "left": 207.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0106",
      "page": 84,
      "ordinal": 106,
      "text": " Ehcache",
      "top": 523.0,
      "left": 281.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0107",
      "page": 84,
      "ordinal": 107,
      "text": "、",
      "top": 523.0,
      "left": 341.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0108",
      "page": 84,
      "ordinal": 108,
      "text": "Guava Cache ",
      "top": 523.0,
      "left": 355.0,
      "width": 92.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0109",
      "page": 84,
      "ordinal": 109,
      "text": "实现本地缓存的功能。",
      "top": 523.0,
      "left": 448.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h02",
        "heading_id": "p084-h02",
        "block_id": "q-p084-h02-b001"
      }
    },
    {
      "id": "p084-t0111",
      "page": 84,
      "ordinal": 111,
      "text": "如何",
      "top": 556.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0113",
      "page": 84,
      "ordinal": 113,
      "text": "避免缓存",
      "top": 556.0,
      "left": 170.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0114",
      "page": 84,
      "ordinal": 114,
      "text": "“",
      "top": 556.0,
      "left": 272.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0115",
      "page": 84,
      "ordinal": 115,
      "text": "击穿",
      "top": 556.0,
      "left": 283.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0116",
      "page": 84,
      "ordinal": 116,
      "text": "”",
      "top": 556.0,
      "left": 335.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0117",
      "page": 84,
      "ordinal": 117,
      "text": "的问题",
      "top": 556.0,
      "left": 346.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03"
      }
    },
    {
      "id": "p084-t0121",
      "page": 84,
      "ordinal": 121,
      "text": "缓存击穿，是指某个极度",
      "top": 607.0,
      "left": 116.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0122",
      "page": 84,
      "ordinal": 122,
      "text": "“",
      "top": 607.0,
      "left": 276.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0123",
      "page": 84,
      "ordinal": 123,
      "text": "热点",
      "top": 607.0,
      "left": 282.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0124",
      "page": 84,
      "ordinal": 124,
      "text": "”",
      "top": 607.0,
      "left": 311.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0125",
      "page": 84,
      "ordinal": 125,
      "text": "数据在某个时间点过期时，恰好在这个时间",
      "top": 607.0,
      "left": 316.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0127",
      "page": 84,
      "ordinal": 127,
      "text": "点对这个",
      "top": 607.0,
      "left": 598.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0128",
      "page": 84,
      "ordinal": 128,
      "text": " KEY ",
      "top": 607.0,
      "left": 656.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0129",
      "page": 84,
      "ordinal": 129,
      "text": "有大量的并发",
      "top": 607.0,
      "left": 689.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0130",
      "page": 84,
      "ordinal": 130,
      "text": "请求过来，这些请求发现缓存过期一般都会从",
      "top": 631.0,
      "left": 112.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0131",
      "page": 84,
      "ordinal": 131,
      "text": " DB ",
      "top": 631.0,
      "left": 404.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0132",
      "page": 84,
      "ordinal": 132,
      "text": "加载数据并回设到缓存，但是这个时候大并发的请求",
      "top": 631.0,
      "left": 432.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0133",
      "page": 84,
      "ordinal": 133,
      "text": "可能会瞬间",
      "top": 654.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0134",
      "page": 84,
      "ordinal": 134,
      "text": " DB ",
      "top": 654.0,
      "left": 185.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0135",
      "page": 84,
      "ordinal": 135,
      "text": "压垮。",
      "top": 654.0,
      "left": 213.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0137",
      "page": 84,
      "ordinal": 137,
      "text": "对于一些设置了过期时间的",
      "top": 654.0,
      "left": 260.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0138",
      "page": 84,
      "ordinal": 138,
      "text": " KEY ",
      "top": 654.0,
      "left": 436.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0139",
      "page": 84,
      "ordinal": 139,
      "text": "，如果这些",
      "top": 654.0,
      "left": 469.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0140",
      "page": 84,
      "ordinal": 140,
      "text": " KEY ",
      "top": 654.0,
      "left": 542.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0141",
      "page": 84,
      "ordinal": 141,
      "text": "可能会在某些时间点被超高",
      "top": 654.0,
      "left": 575.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0143",
      "page": 84,
      "ordinal": 143,
      "text": "并",
      "top": 654.0,
      "left": 754.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0144",
      "page": 84,
      "ordinal": 144,
      "text": "发地访问，是一种非常",
      "top": 678.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0145",
      "page": 84,
      "ordinal": 145,
      "text": "“",
      "top": 678.0,
      "left": 258.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0146",
      "page": 84,
      "ordinal": 146,
      "text": "热点",
      "top": 678.0,
      "left": 263.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0147",
      "page": 84,
      "ordinal": 147,
      "text": "”",
      "top": 678.0,
      "left": 292.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0148",
      "page": 84,
      "ordinal": 148,
      "text": "的数据。这个时候，需要考虑这个问题。",
      "top": 678.0,
      "left": 297.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0150",
      "page": 84,
      "ordinal": 150,
      "text": "区别：",
      "top": 678.0,
      "left": 565.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b001"
      }
    },
    {
      "id": "p084-t0152",
      "page": 84,
      "ordinal": 152,
      "text": "1. ",
      "top": 713.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0153",
      "page": 84,
      "ordinal": 153,
      "text": "和缓存",
      "top": 713.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0154",
      "page": 84,
      "ordinal": 154,
      "text": "“",
      "top": 713.0,
      "left": 189.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0155",
      "page": 84,
      "ordinal": 155,
      "text": "雪崩",
      "top": 713.0,
      "left": 194.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0156",
      "page": 84,
      "ordinal": 156,
      "text": "“”",
      "top": 713.0,
      "left": 224.0,
      "width": 10.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0157",
      "page": 84,
      "ordinal": 157,
      "text": "的区别在于，前者针对某一",
      "top": 713.0,
      "left": 234.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0158",
      "page": 84,
      "ordinal": 158,
      "text": " KEY ",
      "top": 713.0,
      "left": 409.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0159",
      "page": 84,
      "ordinal": 159,
      "text": "缓存，后者则是很多",
      "top": 713.0,
      "left": 442.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0160",
      "page": 84,
      "ordinal": 160,
      "text": " KEY ",
      "top": 713.0,
      "left": 574.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0161",
      "page": 84,
      "ordinal": 161,
      "text": "。",
      "top": 713.0,
      "left": 607.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b002"
      }
    },
    {
      "id": "p084-t0163",
      "page": 84,
      "ordinal": 163,
      "text": "2. ",
      "top": 743.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0164",
      "page": 84,
      "ordinal": 164,
      "text": "和缓存",
      "top": 743.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0165",
      "page": 84,
      "ordinal": 165,
      "text": "“",
      "top": 743.0,
      "left": 189.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0166",
      "page": 84,
      "ordinal": 166,
      "text": "穿透",
      "top": 743.0,
      "left": 194.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0167",
      "page": 84,
      "ordinal": 167,
      "text": "“”",
      "top": 743.0,
      "left": 224.0,
      "width": 10.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0168",
      "page": 84,
      "ordinal": 168,
      "text": "的区别在于，这个",
      "top": 743.0,
      "left": 234.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0169",
      "page": 84,
      "ordinal": 169,
      "text": " KEY ",
      "top": 743.0,
      "left": 351.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0170",
      "page": 84,
      "ordinal": 170,
      "text": "是真实存在对应的值的",
      "top": 743.0,
      "left": 384.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b003"
      }
    },
    {
      "id": "p084-t0173",
      "page": 84,
      "ordinal": 173,
      "text": "有两种方案可以解决：",
      "top": 778.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b004"
      }
    },
    {
      "id": "p084-t0174",
      "page": 84,
      "ordinal": 174,
      "text": "1. ",
      "top": 813.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0175",
      "page": 84,
      "ordinal": 175,
      "text": "方案一，使用互斥锁。请求发现缓存不存在后，去查询",
      "top": 813.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0176",
      "page": 84,
      "ordinal": 176,
      "text": " DB ",
      "top": 813.0,
      "left": 497.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0177",
      "page": 84,
      "ordinal": 177,
      "text": "前，使用分布",
      "top": 813.0,
      "left": 524.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0179",
      "page": 84,
      "ordinal": 179,
      "text": "式锁，保证有且只有一个",
      "top": 813.0,
      "left": 616.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0180",
      "page": 84,
      "ordinal": 180,
      "text": "线程去查询",
      "top": 837.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0181",
      "page": 84,
      "ordinal": 181,
      "text": " DB ",
      "top": 837.0,
      "left": 219.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0182",
      "page": 84,
      "ordinal": 182,
      "text": "，并更新到缓存。",
      "top": 837.0,
      "left": 246.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b005"
      }
    },
    {
      "id": "p084-t0183",
      "page": 84,
      "ordinal": 183,
      "text": "2. ",
      "top": 868.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0184",
      "page": 84,
      "ordinal": 184,
      "text": "方案二，手动过期。缓存上从不设置过期时间，功能上将过期时间存在",
      "top": 868.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0185",
      "page": 84,
      "ordinal": 185,
      "text": " KEY ",
      "top": 868.0,
      "left": 599.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0186",
      "page": 84,
      "ordinal": 186,
      "text": "对应的",
      "top": 868.0,
      "left": 632.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0187",
      "page": 84,
      "ordinal": 187,
      "text": " VALUE ",
      "top": 868.0,
      "left": 676.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0188",
      "page": 84,
      "ordinal": 188,
      "text": "里。流",
      "top": 868.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0189",
      "page": 84,
      "ordinal": 189,
      "text": "程如下：",
      "top": 891.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b006"
      }
    },
    {
      "id": "p084-t0191",
      "page": 84,
      "ordinal": 191,
      "text": "1. ",
      "top": 922.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0192",
      "page": 84,
      "ordinal": 192,
      "text": "获取缓存。通过",
      "top": 922.0,
      "left": 179.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0193",
      "page": 84,
      "ordinal": 193,
      "text": " VALUE ",
      "top": 922.0,
      "left": 282.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0194",
      "page": 84,
      "ordinal": 194,
      "text": "的过期时间，判断是否过期。如果未过期，则",
      "top": 922.0,
      "left": 334.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0196",
      "page": 84,
      "ordinal": 196,
      "text": "直接返回；如果已过",
      "top": 922.0,
      "left": 630.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0197",
      "page": 84,
      "ordinal": 197,
      "text": "期，继续往下执行。",
      "top": 945.0,
      "left": 179.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b007"
      }
    },
    {
      "id": "p084-t0199",
      "page": 84,
      "ordinal": 199,
      "text": "2. ",
      "top": 976.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0200",
      "page": 84,
      "ordinal": 200,
      "text": "通过一个后台的异步线程进行缓存的构建，也就是",
      "top": 976.0,
      "left": 179.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0201",
      "page": 84,
      "ordinal": 201,
      "text": "“",
      "top": 976.0,
      "left": 501.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0202",
      "page": 84,
      "ordinal": 202,
      "text": "手动",
      "top": 976.0,
      "left": 506.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0203",
      "page": 84,
      "ordinal": 203,
      "text": "”",
      "top": 976.0,
      "left": 535.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0204",
      "page": 84,
      "ordinal": 204,
      "text": "过期。通过",
      "top": 976.0,
      "left": 540.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0206",
      "page": 84,
      "ordinal": 206,
      "text": "后台的异步线程，保证有",
      "top": 976.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0207",
      "page": 84,
      "ordinal": 207,
      "text": "且只有一个线程去查询",
      "top": 1000.0,
      "left": 179.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0208",
      "page": 84,
      "ordinal": 208,
      "text": " DB",
      "top": 1000.0,
      "left": 326.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0209",
      "page": 84,
      "ordinal": 209,
      "text": "。",
      "top": 1000.0,
      "left": 349.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b008"
      }
    },
    {
      "id": "p084-t0211",
      "page": 84,
      "ordinal": 211,
      "text": "3. ",
      "top": 1030.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p084-t0212",
      "page": 84,
      "ordinal": 212,
      "text": "同时，虽然",
      "top": 1030.0,
      "left": 179.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p084-t0213",
      "page": 84,
      "ordinal": 213,
      "text": " VALUE ",
      "top": 1030.0,
      "left": 252.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p084-t0214",
      "page": 84,
      "ordinal": 214,
      "text": "已经过期，还是直接返回。通过这样的方式，保证",
      "top": 1030.0,
      "left": 304.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p084-t0216",
      "page": 84,
      "ordinal": 216,
      "text": "服务的可用性，虽然损",
      "top": 1030.0,
      "left": 630.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p084-t0217",
      "page": 84,
      "ordinal": 217,
      "text": "失了一定的时效性。",
      "top": 1054.0,
      "left": 179.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p084-h03",
        "heading_id": "p084-h03",
        "block_id": "q-p084-h03-b009"
      }
    },
    {
      "id": "p085-t0001",
      "page": 85,
      "ordinal": 1,
      "text": "什么是缓存预热？如何实现缓存预热",
      "top": 40.0,
      "left": 112.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01"
      }
    },
    {
      "id": "p085-t0005",
      "page": 85,
      "ordinal": 5,
      "text": "缓存预热",
      "top": 91.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0007",
      "page": 85,
      "ordinal": 7,
      "text": "在刚启动的缓存系统中，如果缓存中没有任何数据，如果依靠用户请求的方式",
      "top": 114.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0009",
      "page": 85,
      "ordinal": 9,
      "text": "重建缓存数据，那么对数",
      "top": 114.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0010",
      "page": 85,
      "ordinal": 10,
      "text": "据库的压力非常大，而且系统的性能开销也是巨大",
      "top": 137.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0012",
      "page": 85,
      "ordinal": 12,
      "text": "的。",
      "top": 137.0,
      "left": 437.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0014",
      "page": 85,
      "ordinal": 14,
      "text": "此时，最好的策略是启动时就把热点数据加载",
      "top": 137.0,
      "left": 470.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0015",
      "page": 85,
      "ordinal": 15,
      "text": "好。这样，用户请求时，直接读",
      "top": 161.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0017",
      "page": 85,
      "ordinal": 17,
      "text": "取的就是缓存的数据，而无需去读取",
      "top": 161.0,
      "left": 320.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0018",
      "page": 85,
      "ordinal": 18,
      "text": " DB ",
      "top": 161.0,
      "left": 554.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0019",
      "page": 85,
      "ordinal": 19,
      "text": "重建缓存数据。举个例子，热",
      "top": 161.0,
      "left": 582.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0020",
      "page": 85,
      "ordinal": 20,
      "text": "门的或",
      "top": 184.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0022",
      "page": 85,
      "ordinal": 22,
      "text": "者推荐的商品，需要提前预热到缓存中",
      "top": 184.0,
      "left": 159.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0024",
      "page": 85,
      "ordinal": 24,
      "text": "如何实现",
      "top": 208.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0026",
      "page": 85,
      "ordinal": 26,
      "text": "一般来说，有如下几种方式来实现：",
      "top": 231.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0028",
      "page": 85,
      "ordinal": 28,
      "text": "数据量不大时，项目启动时，自动进行初始化。",
      "top": 231.0,
      "left": 350.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0030",
      "page": 85,
      "ordinal": 30,
      "text": "写个修复数据脚",
      "top": 231.0,
      "left": 660.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0031",
      "page": 85,
      "ordinal": 31,
      "text": "本，手动执行该脚本。",
      "top": 254.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0033",
      "page": 85,
      "ordinal": 33,
      "text": "写个管理界面，可以手动点击，预热对应的数据到缓存中。",
      "top": 254.0,
      "left": 262.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h01",
        "heading_id": "p085-h01",
        "block_id": "q-p085-h01-b001"
      }
    },
    {
      "id": "p085-t0035",
      "page": 85,
      "ordinal": 35,
      "text": "缓存数据的淘汰策略有哪些？",
      "top": 288.0,
      "left": 112.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02"
      }
    },
    {
      "id": "p085-t0039",
      "page": 85,
      "ordinal": 39,
      "text": "除了缓存服务器自带的缓存自动失效策略之外，我们还可以根据具体的业务需",
      "top": 339.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0041",
      "page": 85,
      "ordinal": 41,
      "text": "求进行自定义的",
      "top": 339.0,
      "left": 617.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0042",
      "page": 85,
      "ordinal": 42,
      "text": "“",
      "top": 339.0,
      "left": 719.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0043",
      "page": 85,
      "ordinal": 43,
      "text": "手动",
      "top": 339.0,
      "left": 724.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0044",
      "page": 85,
      "ordinal": 44,
      "text": "”",
      "top": 339.0,
      "left": 753.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0045",
      "page": 85,
      "ordinal": 45,
      "text": "缓",
      "top": 339.0,
      "left": 758.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0046",
      "page": 85,
      "ordinal": 46,
      "text": "存淘汰，常见的策略有两种：",
      "top": 363.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0047",
      "page": 85,
      "ordinal": 47,
      "text": " 1",
      "top": 363.0,
      "left": 302.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0048",
      "page": 85,
      "ordinal": 48,
      "text": "、定时去清理过期的缓存。",
      "top": 363.0,
      "left": 314.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0049",
      "page": 85,
      "ordinal": 49,
      "text": " 2",
      "top": 363.0,
      "left": 490.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0050",
      "page": 85,
      "ordinal": 50,
      "text": "、当有用户请求过来时，再判断这个请求所",
      "top": 363.0,
      "left": 502.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0051",
      "page": 85,
      "ordinal": 51,
      "text": "用到的缓存是否过期，过期的话",
      "top": 387.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0053",
      "page": 85,
      "ordinal": 53,
      "text": "就去底层系统得到新数据并更新缓存。",
      "top": 387.0,
      "left": 320.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0055",
      "page": 85,
      "ordinal": 55,
      "text": "两者各有优劣，第一种的缺点是",
      "top": 387.0,
      "left": 573.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0056",
      "page": 85,
      "ordinal": 56,
      "text": "维护大量缓存的",
      "top": 409.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0057",
      "page": 85,
      "ordinal": 57,
      "text": " key ",
      "top": 409.0,
      "left": 214.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0058",
      "page": 85,
      "ordinal": 58,
      "text": "是比较麻烦的，第二种",
      "top": 409.0,
      "left": 245.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0060",
      "page": 85,
      "ordinal": 60,
      "text": "的缺点就是每次用户请求过来都要判断缓存失效，逻辑相对",
      "top": 409.0,
      "left": 395.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0061",
      "page": 85,
      "ordinal": 61,
      "text": "比较复杂！",
      "top": 433.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0063",
      "page": 85,
      "ordinal": 63,
      "text": "具体用哪种方案，大家可以根据自己的应用场景来权衡。",
      "top": 433.0,
      "left": 189.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p085-h02",
        "heading_id": "p085-h02",
        "block_id": "q-p085-h02-b001"
      }
    },
    {
      "id": "p085-t0065",
      "page": 85,
      "ordinal": 65,
      "text": "网络和操作系统",
      "top": 466.0,
      "left": 112.0,
      "width": 230.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h03"
      }
    },
    {
      "id": "p085-t0068",
      "page": 85,
      "ordinal": 68,
      "text": "进程和线程的区别？",
      "top": 522.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04"
      }
    },
    {
      "id": "p085-t0071",
      "page": 85,
      "ordinal": 71,
      "text": "1. ",
      "top": 573.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b001"
      }
    },
    {
      "id": "p085-t0072",
      "page": 85,
      "ordinal": 72,
      "text": "调度：进程是资源管理的基本单位，线程是程序执行的基本单位。",
      "top": 573.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b001"
      }
    },
    {
      "id": "p085-t0074",
      "page": 85,
      "ordinal": 74,
      "text": "2. ",
      "top": 604.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b002"
      }
    },
    {
      "id": "p085-t0075",
      "page": 85,
      "ordinal": 75,
      "text": "切换：线程上下文切换比进程上下文切换要快得多。",
      "top": 604.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b002"
      }
    },
    {
      "id": "p085-t0076",
      "page": 85,
      "ordinal": 76,
      "text": "3. ",
      "top": 635.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b003"
      }
    },
    {
      "id": "p085-t0077",
      "page": 85,
      "ordinal": 77,
      "text": "拥有资源：",
      "top": 635.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b003"
      }
    },
    {
      "id": "p085-t0079",
      "page": 85,
      "ordinal": 79,
      "text": "进程是拥有资源的一个独立单位，线程不拥有系统资源，但是",
      "top": 635.0,
      "left": 222.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b003"
      }
    },
    {
      "id": "p085-t0081",
      "page": 85,
      "ordinal": 81,
      "text": "可以访问隶属于进程的资",
      "top": 635.0,
      "left": 621.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b003"
      }
    },
    {
      "id": "p085-t0082",
      "page": 85,
      "ordinal": 82,
      "text": "源。",
      "top": 658.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b003"
      }
    },
    {
      "id": "p085-t0083",
      "page": 85,
      "ordinal": 83,
      "text": "4. ",
      "top": 689.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0084",
      "page": 85,
      "ordinal": 84,
      "text": "系统开销：",
      "top": 689.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0086",
      "page": 85,
      "ordinal": 86,
      "text": "创建或撤销进程时，系统都要为之分配或回收系统资源，如内",
      "top": 689.0,
      "left": 222.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0088",
      "page": 85,
      "ordinal": 88,
      "text": "存空间，",
      "top": 689.0,
      "left": 621.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0089",
      "page": 85,
      "ordinal": 89,
      "text": "I/O ",
      "top": 689.0,
      "left": 680.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0090",
      "page": 85,
      "ordinal": 90,
      "text": "设备等，",
      "top": 689.0,
      "left": 704.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0091",
      "page": 85,
      "ordinal": 91,
      "text": "OS ",
      "top": 689.0,
      "left": 763.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0092",
      "page": 85,
      "ordinal": 92,
      "text": "所付出的开销显著大于在创建或撤销线程时的开",
      "top": 713.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0094",
      "page": 85,
      "ordinal": 94,
      "text": "销，进程切换的开销也远大于线程切换的开销。",
      "top": 713.0,
      "left": 456.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h04",
        "heading_id": "p085-h04",
        "block_id": "q-p085-h04-b004"
      }
    },
    {
      "id": "p085-t0096",
      "page": 85,
      "ordinal": 96,
      "text": "协程与线程的区别？",
      "top": 746.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05"
      }
    },
    {
      "id": "p085-t0099",
      "page": 85,
      "ordinal": 99,
      "text": "1. ",
      "top": 797.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b001"
      }
    },
    {
      "id": "p085-t0100",
      "page": 85,
      "ordinal": 100,
      "text": "线程和进程都是同步机制，而协程是异步机制。",
      "top": 797.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b001"
      }
    },
    {
      "id": "p085-t0102",
      "page": 85,
      "ordinal": 102,
      "text": "2. ",
      "top": 828.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b002"
      }
    },
    {
      "id": "p085-t0103",
      "page": 85,
      "ordinal": 103,
      "text": "线程是抢占式，而协程是非抢占式的。需要用户释放使用权切换到其他协",
      "top": 828.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b002"
      }
    },
    {
      "id": "p085-t0105",
      "page": 85,
      "ordinal": 105,
      "text": "程，因此同一时间其实只",
      "top": 828.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b002"
      }
    },
    {
      "id": "p085-t0106",
      "page": 85,
      "ordinal": 106,
      "text": "有一个协程拥有运行权，相当于单线程的能力。",
      "top": 851.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b002"
      }
    },
    {
      "id": "p085-t0108",
      "page": 85,
      "ordinal": 108,
      "text": "3. ",
      "top": 883.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b003"
      }
    },
    {
      "id": "p085-t0109",
      "page": 85,
      "ordinal": 109,
      "text": "一个线程可以有多个协程，一个进程也可以有多个协程。",
      "top": 883.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b003"
      }
    },
    {
      "id": "p085-t0111",
      "page": 85,
      "ordinal": 111,
      "text": "4. ",
      "top": 913.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0112",
      "page": 85,
      "ordinal": 112,
      "text": "协程不被操作系统内核管理，而完全是由程序控制。线程是被分割的",
      "top": 913.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0113",
      "page": 85,
      "ordinal": 113,
      "text": " CPU ",
      "top": 913.0,
      "left": 584.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0114",
      "page": 85,
      "ordinal": 114,
      "text": "资源，协程是组织好的代",
      "top": 913.0,
      "left": 621.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0115",
      "page": 85,
      "ordinal": 115,
      "text": "码流程，线程是协程的资源。但协程不会直接使",
      "top": 937.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0117",
      "page": 85,
      "ordinal": 117,
      "text": "用线程，协程直接利用的是执行器关联任意线程或",
      "top": 937.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0118",
      "page": 85,
      "ordinal": 118,
      "text": "线程池。",
      "top": 959.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b004"
      }
    },
    {
      "id": "p085-t0120",
      "page": 85,
      "ordinal": 120,
      "text": "5. ",
      "top": 991.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b005"
      }
    },
    {
      "id": "p085-t0121",
      "page": 85,
      "ordinal": 121,
      "text": "协程能保留上一次调用时的状态。",
      "top": 991.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h05",
        "heading_id": "p085-h05",
        "block_id": "q-p085-h05-b005"
      }
    },
    {
      "id": "p085-t0123",
      "page": 85,
      "ordinal": 123,
      "text": "并发和并行有什么区别？",
      "top": 1025.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06"
      }
    },
    {
      "id": "p085-t0126",
      "page": 85,
      "ordinal": 126,
      "text": "并发就是在一段时间内，多个任务都会被处理；但在某一时刻，只有一个任务",
      "top": 1075.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0128",
      "page": 85,
      "ordinal": 128,
      "text": "在执行。单核处理器可以",
      "top": 1075.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0129",
      "page": 85,
      "ordinal": 129,
      "text": "做到并发。比如有两个进程",
      "top": 1099.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0130",
      "page": 85,
      "ordinal": 130,
      "text": " A ",
      "top": 1099.0,
      "left": 287.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0131",
      "page": 85,
      "ordinal": 131,
      "text": "和",
      "top": 1099.0,
      "left": 304.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0132",
      "page": 85,
      "ordinal": 132,
      "text": " B",
      "top": 1099.0,
      "left": 319.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0133",
      "page": 85,
      "ordinal": 133,
      "text": "，",
      "top": 1099.0,
      "left": 332.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0134",
      "page": 85,
      "ordinal": 134,
      "text": "A ",
      "top": 1099.0,
      "left": 347.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0135",
      "page": 85,
      "ordinal": 135,
      "text": "运行一个时间",
      "top": 1099.0,
      "left": 360.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0136",
      "page": 85,
      "ordinal": 136,
      "text": " 98 ",
      "top": 1099.0,
      "left": 447.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0137",
      "page": 85,
      "ordinal": 137,
      "text": "片之后，切换到",
      "top": 1099.0,
      "left": 472.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0138",
      "page": 85,
      "ordinal": 138,
      "text": " B",
      "top": 1099.0,
      "left": 574.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0139",
      "page": 85,
      "ordinal": 139,
      "text": "，",
      "top": 1099.0,
      "left": 587.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0140",
      "page": 85,
      "ordinal": 140,
      "text": "B ",
      "top": 1099.0,
      "left": 602.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0141",
      "page": 85,
      "ordinal": 141,
      "text": "运行一个时间片之后又切",
      "top": 1099.0,
      "left": 615.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0142",
      "page": 85,
      "ordinal": 142,
      "text": "换到",
      "top": 1122.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0143",
      "page": 85,
      "ordinal": 143,
      "text": " A",
      "top": 1122.0,
      "left": 141.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0144",
      "page": 85,
      "ordinal": 144,
      "text": "。因为切换速度足够",
      "top": 1122.0,
      "left": 154.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0146",
      "page": 85,
      "ordinal": 146,
      "text": "快，所以宏观上表现为在一段时间内能同时运行多个程序。",
      "top": 1122.0,
      "left": 289.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0148",
      "page": 85,
      "ordinal": 148,
      "text": "并行就是在同一",
      "top": 1122.0,
      "left": 674.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0149",
      "page": 85,
      "ordinal": 149,
      "text": "时刻，有多个任务在执行。这个需要多核处理器才能完成，在",
      "top": 1146.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0151",
      "page": 85,
      "ordinal": 151,
      "text": "微观上就能同时执行多条指令，不同的程",
      "top": 1146.0,
      "left": 510.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0152",
      "page": 85,
      "ordinal": 152,
      "text": "序被放到不同的处理器上运行，这个",
      "top": 1170.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p085-t0154",
      "page": 85,
      "ordinal": 154,
      "text": "是物理上的多个进程同时进行。",
      "top": 1170.0,
      "left": 350.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p085-h06",
        "heading_id": "p085-h06",
        "block_id": "q-p085-h06-b001"
      }
    },
    {
      "id": "p086-t0001",
      "page": 86,
      "ordinal": 1,
      "text": "进程与线程的切换流程",
      "top": 40.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01"
      }
    },
    {
      "id": "p086-t0005",
      "page": 86,
      "ordinal": 5,
      "text": "进程切换分两步：",
      "top": 91.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b001"
      }
    },
    {
      "id": "p086-t0007",
      "page": 86,
      "ordinal": 7,
      "text": "1. ",
      "top": 126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b002"
      }
    },
    {
      "id": "p086-t0008",
      "page": 86,
      "ordinal": 8,
      "text": "切换页表以使用新的地址空间，一旦去切换上下文，处理器中所有已经缓存",
      "top": 126.0,
      "left": 146.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b002"
      }
    },
    {
      "id": "p086-t0010",
      "page": 86,
      "ordinal": 10,
      "text": "的内存地址一瞬间都作",
      "top": 126.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b002"
      }
    },
    {
      "id": "p086-t0011",
      "page": 86,
      "ordinal": 11,
      "text": "废了。",
      "top": 149.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b002"
      }
    },
    {
      "id": "p086-t0013",
      "page": 86,
      "ordinal": 13,
      "text": "2. ",
      "top": 180.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0014",
      "page": 86,
      "ordinal": 14,
      "text": "切换内核栈和硬件上下文。",
      "top": 180.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0016",
      "page": 86,
      "ordinal": 16,
      "text": "对于",
      "top": 180.0,
      "left": 325.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0017",
      "page": 86,
      "ordinal": 17,
      "text": " linux ",
      "top": 180.0,
      "left": 354.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0018",
      "page": 86,
      "ordinal": 18,
      "text": "来说，线程和进程的最大区别就在于地址空间，对于线程切",
      "top": 180.0,
      "left": 395.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0019",
      "page": 86,
      "ordinal": 19,
      "text": "换，第",
      "top": 203.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0020",
      "page": 86,
      "ordinal": 20,
      "text": " 1 ",
      "top": 203.0,
      "left": 189.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0021",
      "page": 86,
      "ordinal": 21,
      "text": "步是不需要做的，第",
      "top": 203.0,
      "left": 205.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0022",
      "page": 86,
      "ordinal": 22,
      "text": " 2 ",
      "top": 203.0,
      "left": 337.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0023",
      "page": 86,
      "ordinal": 23,
      "text": "步是进程和线程切换都要做的。",
      "top": 203.0,
      "left": 353.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0025",
      "page": 86,
      "ordinal": 25,
      "text": "因为每个进程都有自己的虚拟地址",
      "top": 203.0,
      "left": 561.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0026",
      "page": 86,
      "ordinal": 26,
      "text": "空间，而线程是共享所在进程的虚拟地址空",
      "top": 227.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0028",
      "page": 86,
      "ordinal": 28,
      "text": "间的，因此同一个进程中的线程进行线程切换时不涉及",
      "top": 227.0,
      "left": 427.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0029",
      "page": 86,
      "ordinal": 29,
      "text": "虚拟地址空间的转换",
      "top": 251.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h01",
        "heading_id": "p086-h01",
        "block_id": "q-p086-h01-b003"
      }
    },
    {
      "id": "p086-t0031",
      "page": 86,
      "ordinal": 31,
      "text": "为什么虚拟地址空间切换会比较耗时？",
      "top": 284.0,
      "left": 112.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02"
      }
    },
    {
      "id": "p086-t0035",
      "page": 86,
      "ordinal": 35,
      "text": "进程都有自己的虚拟地址空间，把虚拟地址转换为物理地址需要查找页表，页",
      "top": 335.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0037",
      "page": 86,
      "ordinal": 37,
      "text": "表查找是一个很慢的过",
      "top": 335.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0038",
      "page": 86,
      "ordinal": 38,
      "text": "程，因此通常使用",
      "top": 359.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0039",
      "page": 86,
      "ordinal": 39,
      "text": " Cache ",
      "top": 359.0,
      "left": 229.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0040",
      "page": 86,
      "ordinal": 40,
      "text": "来缓存常用的地址映射，这样",
      "top": 359.0,
      "left": 278.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0042",
      "page": 86,
      "ordinal": 42,
      "text": "可以加速页表查找，这个",
      "top": 359.0,
      "left": 472.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0043",
      "page": 86,
      "ordinal": 43,
      "text": " Cache ",
      "top": 359.0,
      "left": 633.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0044",
      "page": 86,
      "ordinal": 44,
      "text": "就是",
      "top": 359.0,
      "left": 682.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0045",
      "page": 86,
      "ordinal": 45,
      "text": " TLB",
      "top": 359.0,
      "left": 711.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0046",
      "page": 86,
      "ordinal": 46,
      "text": "（",
      "top": 382.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0047",
      "page": 86,
      "ordinal": 47,
      "text": "translation Lookaside Buffer",
      "top": 382.0,
      "left": 126.0,
      "width": 193.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0048",
      "page": 86,
      "ordinal": 48,
      "text": "，",
      "top": 382.0,
      "left": 319.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0049",
      "page": 86,
      "ordinal": 49,
      "text": " TLB ",
      "top": 382.0,
      "left": 334.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0050",
      "page": 86,
      "ordinal": 50,
      "text": "本质上就是一个",
      "top": 382.0,
      "left": 367.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0051",
      "page": 86,
      "ordinal": 51,
      "text": " Cache",
      "top": 382.0,
      "left": 469.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0052",
      "page": 86,
      "ordinal": 52,
      "text": "，是用来加速页表查找的）。",
      "top": 382.0,
      "left": 514.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0054",
      "page": 86,
      "ordinal": 54,
      "text": "由于每个进",
      "top": 382.0,
      "left": 708.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0055",
      "page": 86,
      "ordinal": 55,
      "text": "程都有自己的虚拟地址空间，那么显然每个进程都有自己的页表，",
      "top": 406.0,
      "left": 112.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0057",
      "page": 86,
      "ordinal": 57,
      "text": "那么当进程切换后页表也要进行切",
      "top": 406.0,
      "left": 540.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0058",
      "page": 86,
      "ordinal": 58,
      "text": "换，页表切换后",
      "top": 428.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0059",
      "page": 86,
      "ordinal": 59,
      "text": " TLB ",
      "top": 428.0,
      "left": 214.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0060",
      "page": 86,
      "ordinal": 60,
      "text": "就失效了，",
      "top": 428.0,
      "left": 247.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0061",
      "page": 86,
      "ordinal": 61,
      "text": "Cache ",
      "top": 428.0,
      "left": 320.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0062",
      "page": 86,
      "ordinal": 62,
      "text": "失效",
      "top": 428.0,
      "left": 365.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0064",
      "page": 86,
      "ordinal": 64,
      "text": "导致命中率降低，那么虚拟地址转换为物理地址就会变慢，",
      "top": 428.0,
      "left": 398.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0065",
      "page": 86,
      "ordinal": 65,
      "text": "表现出来的就是程",
      "top": 452.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0067",
      "page": 86,
      "ordinal": 67,
      "text": "序运行会变慢，而线程切换则不会导致",
      "top": 452.0,
      "left": 233.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0068",
      "page": 86,
      "ordinal": 68,
      "text": " TLB ",
      "top": 452.0,
      "left": 481.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0069",
      "page": 86,
      "ordinal": 69,
      "text": "失效，因为线程无需切换地址空",
      "top": 452.0,
      "left": 514.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0071",
      "page": 86,
      "ordinal": 71,
      "text": "间，因此",
      "top": 452.0,
      "left": 722.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0072",
      "page": 86,
      "ordinal": 72,
      "text": "我们通常说线程切换要比较进程切换块，原因就在这里",
      "top": 476.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h02",
        "heading_id": "p086-h02",
        "block_id": "q-p086-h02-b001"
      }
    },
    {
      "id": "p086-t0074",
      "page": 86,
      "ordinal": 74,
      "text": "进程间通信方式有哪些？",
      "top": 510.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03"
      }
    },
    {
      "id": "p086-t0077",
      "page": 86,
      "ordinal": 77,
      "text": "1. ",
      "top": 561.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0078",
      "page": 86,
      "ordinal": 78,
      "text": "管道：管道这种通讯方式有两种限制，一是半双工的通信，数据只能单向流",
      "top": 561.0,
      "left": 146.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0080",
      "page": 86,
      "ordinal": 80,
      "text": "动，二是只能在具有亲",
      "top": 561.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0081",
      "page": 86,
      "ordinal": 81,
      "text": "缘关系的进程间使用。进程的亲缘关系通常是指父子进",
      "top": 584.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0083",
      "page": 86,
      "ordinal": 83,
      "text": "程关系。",
      "top": 584.0,
      "left": 500.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0085",
      "page": 86,
      "ordinal": 85,
      "text": "管道可以分为两类：匿名管道和命",
      "top": 584.0,
      "left": 563.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0086",
      "page": 86,
      "ordinal": 86,
      "text": "名管道。匿名管道是单向的，只能在有亲缘",
      "top": 607.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0088",
      "page": 86,
      "ordinal": 88,
      "text": "关系的进程间通信；命名管道以磁盘文件的方式存在，",
      "top": 607.0,
      "left": 427.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0089",
      "page": 86,
      "ordinal": 89,
      "text": "可以实现本机任意两个",
      "top": 631.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0091",
      "page": 86,
      "ordinal": 91,
      "text": "进程通信。",
      "top": 631.0,
      "left": 296.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b001"
      }
    },
    {
      "id": "p086-t0093",
      "page": 86,
      "ordinal": 93,
      "text": "2. ",
      "top": 661.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0094",
      "page": 86,
      "ordinal": 94,
      "text": "信号：信号是一种比较复杂的通信方式，信号可以在任何时候发给某一进程，",
      "top": 661.0,
      "left": 146.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0096",
      "page": 86,
      "ordinal": 96,
      "text": "而无需知道该进程的",
      "top": 661.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0097",
      "page": 86,
      "ordinal": 97,
      "text": "状态",
      "top": 685.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0098",
      "page": 86,
      "ordinal": 98,
      "text": "   Linux ",
      "top": 685.0,
      "left": 175.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0099",
      "page": 86,
      "ordinal": 99,
      "text": "系统中常用信号：",
      "top": 685.0,
      "left": 227.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b002"
      }
    },
    {
      "id": "p086-t0101",
      "page": 86,
      "ordinal": 101,
      "text": "1. SIGHUP",
      "top": 715.0,
      "left": 163.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b003"
      }
    },
    {
      "id": "p086-t0102",
      "page": 86,
      "ordinal": 102,
      "text": "：用户从终端注销，所有已启动进程都将收到该进程。系统缺省状",
      "top": 715.0,
      "left": 232.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b003"
      }
    },
    {
      "id": "p086-t0104",
      "page": 86,
      "ordinal": 104,
      "text": "态下对该信号的处",
      "top": 715.0,
      "left": 660.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b003"
      }
    },
    {
      "id": "p086-t0105",
      "page": 86,
      "ordinal": 105,
      "text": "理是终止进程。",
      "top": 739.0,
      "left": 179.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b003"
      }
    },
    {
      "id": "p086-t0107",
      "page": 86,
      "ordinal": 107,
      "text": "2. SIGINT",
      "top": 770.0,
      "left": 163.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b004"
      }
    },
    {
      "id": "p086-t0108",
      "page": 86,
      "ordinal": 108,
      "text": "：程序终止信号。程序运行过程中，按",
      "top": 770.0,
      "left": 225.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b004"
      }
    },
    {
      "id": "p086-t0109",
      "page": 86,
      "ordinal": 109,
      "text": " Ctrl+C ",
      "top": 770.0,
      "left": 474.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b004"
      }
    },
    {
      "id": "p086-t0110",
      "page": 86,
      "ordinal": 110,
      "text": "键将产生该信号。",
      "top": 770.0,
      "left": 523.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b004"
      }
    },
    {
      "id": "p086-t0112",
      "page": 86,
      "ordinal": 112,
      "text": "3. SIGQUIT",
      "top": 801.0,
      "left": 163.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b005"
      }
    },
    {
      "id": "p086-t0113",
      "page": 86,
      "ordinal": 113,
      "text": "：程序退出信号。程序运行过程中，按",
      "top": 801.0,
      "left": 236.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b005"
      }
    },
    {
      "id": "p086-t0114",
      "page": 86,
      "ordinal": 114,
      "text": " Ctrl+\\",
      "top": 801.0,
      "left": 485.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b005"
      }
    },
    {
      "id": "p086-t0115",
      "page": 86,
      "ordinal": 115,
      "text": "键将产生该信",
      "top": 801.0,
      "left": 526.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b005"
      }
    },
    {
      "id": "p086-t0117",
      "page": 86,
      "ordinal": 117,
      "text": "号。",
      "top": 801.0,
      "left": 618.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b005"
      }
    },
    {
      "id": "p086-t0118",
      "page": 86,
      "ordinal": 118,
      "text": "4. SIGBUS ",
      "top": 831.0,
      "left": 163.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b006"
      }
    },
    {
      "id": "p086-t0119",
      "page": 86,
      "ordinal": 119,
      "text": "和",
      "top": 831.0,
      "left": 234.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b006"
      }
    },
    {
      "id": "p086-t0120",
      "page": 86,
      "ordinal": 120,
      "text": " SIGSEGV",
      "top": 831.0,
      "left": 249.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b006"
      }
    },
    {
      "id": "p086-t0121",
      "page": 86,
      "ordinal": 121,
      "text": "：进程访问非法地址。",
      "top": 831.0,
      "left": 311.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b006"
      }
    },
    {
      "id": "p086-t0123",
      "page": 86,
      "ordinal": 123,
      "text": "5. SIGFPE",
      "top": 861.0,
      "left": 163.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b007"
      }
    },
    {
      "id": "p086-t0124",
      "page": 86,
      "ordinal": 124,
      "text": "：运算中出现致命错误，如除零操作、数据溢出等。",
      "top": 861.0,
      "left": 226.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b007"
      }
    },
    {
      "id": "p086-t0126",
      "page": 86,
      "ordinal": 126,
      "text": "6. SIGKILL",
      "top": 893.0,
      "left": 163.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0127",
      "page": 86,
      "ordinal": 127,
      "text": "：用户终止进程执行信号。",
      "top": 893.0,
      "left": 230.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0128",
      "page": 86,
      "ordinal": 128,
      "text": "shell ",
      "top": 893.0,
      "left": 406.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0129",
      "page": 86,
      "ordinal": 129,
      "text": "下执行",
      "top": 893.0,
      "left": 441.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0130",
      "page": 86,
      "ordinal": 130,
      "text": " kill -9 ",
      "top": 893.0,
      "left": 485.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0131",
      "page": 86,
      "ordinal": 131,
      "text": "发送该信号。",
      "top": 893.0,
      "left": 528.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b008"
      }
    },
    {
      "id": "p086-t0133",
      "page": 86,
      "ordinal": 133,
      "text": "7. SIGTERM",
      "top": 923.0,
      "left": 163.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0134",
      "page": 86,
      "ordinal": 134,
      "text": "：结束进程信号。",
      "top": 923.0,
      "left": 240.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0135",
      "page": 86,
      "ordinal": 135,
      "text": "shell ",
      "top": 923.0,
      "left": 357.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0136",
      "page": 86,
      "ordinal": 136,
      "text": "下执行",
      "top": 923.0,
      "left": 393.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0137",
      "page": 86,
      "ordinal": 137,
      "text": " kill ",
      "top": 923.0,
      "left": 437.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0138",
      "page": 86,
      "ordinal": 138,
      "text": "进程",
      "top": 923.0,
      "left": 463.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0139",
      "page": 86,
      "ordinal": 139,
      "text": " pid ",
      "top": 923.0,
      "left": 492.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0140",
      "page": 86,
      "ordinal": 140,
      "text": "发送该信号。",
      "top": 923.0,
      "left": 522.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b009"
      }
    },
    {
      "id": "p086-t0142",
      "page": 86,
      "ordinal": 142,
      "text": "8. SIGALRM",
      "top": 954.0,
      "left": 163.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b010"
      }
    },
    {
      "id": "p086-t0143",
      "page": 86,
      "ordinal": 143,
      "text": "：定时器信号。",
      "top": 954.0,
      "left": 241.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b010"
      }
    },
    {
      "id": "p086-t0145",
      "page": 86,
      "ordinal": 145,
      "text": "9. SIGCLD",
      "top": 985.0,
      "left": 163.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b011"
      }
    },
    {
      "id": "p086-t0146",
      "page": 86,
      "ordinal": 146,
      "text": "：子进程退出信号。如果其父进程没有忽略该信号也没有处理该信",
      "top": 985.0,
      "left": 229.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b011"
      }
    },
    {
      "id": "p086-t0148",
      "page": 86,
      "ordinal": 148,
      "text": "号，则子进程退出",
      "top": 985.0,
      "left": 657.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b011"
      }
    },
    {
      "id": "p086-t0149",
      "page": 86,
      "ordinal": 149,
      "text": "后将形成僵尸进程",
      "top": 1008.0,
      "left": 179.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b011"
      }
    },
    {
      "id": "p086-t0151",
      "page": 86,
      "ordinal": 151,
      "text": "3. ",
      "top": 1039.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0152",
      "page": 86,
      "ordinal": 152,
      "text": "信号量：信号量是一个计数器，可以用来控制多个进程对共享资源的访",
      "top": 1039.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0154",
      "page": 86,
      "ordinal": 154,
      "text": "问。它常作为一种锁机制，",
      "top": 1039.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0155",
      "page": 86,
      "ordinal": 155,
      "text": "防止某进程正在访问共享资源时，其他进程也",
      "top": 1062.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0157",
      "page": 86,
      "ordinal": 157,
      "text": "访问该资源。因此，主要作为进程间以及同一进程内",
      "top": 1062.0,
      "left": 442.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0158",
      "page": 86,
      "ordinal": 158,
      "text": "不同线程之间的同步",
      "top": 1085.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0160",
      "page": 86,
      "ordinal": 160,
      "text": "手段",
      "top": 1085.0,
      "left": 281.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b012"
      }
    },
    {
      "id": "p086-t0162",
      "page": 86,
      "ordinal": 162,
      "text": "4. ",
      "top": 1117.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0163",
      "page": 86,
      "ordinal": 163,
      "text": "消息队列：消息队列是消息的链接表，包括",
      "top": 1117.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0164",
      "page": 86,
      "ordinal": 164,
      "text": " Posix ",
      "top": 1117.0,
      "left": 423.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0165",
      "page": 86,
      "ordinal": 165,
      "text": "消息队列和",
      "top": 1117.0,
      "left": 467.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0166",
      "page": 86,
      "ordinal": 166,
      "text": " System V ",
      "top": 1117.0,
      "left": 540.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0167",
      "page": 86,
      "ordinal": 167,
      "text": "消",
      "top": 1117.0,
      "left": 610.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0169",
      "page": 86,
      "ordinal": 169,
      "text": "息队列。有足够权限的",
      "top": 1117.0,
      "left": 628.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0170",
      "page": 86,
      "ordinal": 170,
      "text": "进程可以向队列中添加消息，被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号",
      "top": 1139.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0171",
      "page": 86,
      "ordinal": 171,
      "text": "承载信息量少，管道只能",
      "top": 1163.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p086-t0173",
      "page": 86,
      "ordinal": 173,
      "text": "承载无格式字节流以及缓冲区大小受限等缺点。",
      "top": 1163.0,
      "left": 310.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b013"
      }
    },
    {
      "id": "p087-t0001",
      "page": 87,
      "ordinal": 1,
      "text": "5. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0002",
      "page": 87,
      "ordinal": 2,
      "text": "共享内存：共享内存就是映射一段能被其他进程所访问的内存，这段共享",
      "top": 44.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0004",
      "page": 87,
      "ordinal": 4,
      "text": "内存由一个进程创建，但",
      "top": 44.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0005",
      "page": 87,
      "ordinal": 5,
      "text": "多个进程都可以访问。共享内存是最快的",
      "top": 67.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0006",
      "page": 87,
      "ordinal": 6,
      "text": " IPC ",
      "top": 67.0,
      "left": 409.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0007",
      "page": 87,
      "ordinal": 7,
      "text": "方",
      "top": 67.0,
      "left": 438.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0009",
      "page": 87,
      "ordinal": 9,
      "text": "式，它是针对其他进程间通信方式运行效率低而专",
      "top": 67.0,
      "left": 457.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0010",
      "page": 87,
      "ordinal": 10,
      "text": "门设计的。它往往与其",
      "top": 91.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0012",
      "page": 87,
      "ordinal": 12,
      "text": "他通信机制，如信号量，配合使用，来实现进程间的同步和通信",
      "top": 91.0,
      "left": 296.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b014"
      }
    },
    {
      "id": "p087-t0014",
      "page": 87,
      "ordinal": 14,
      "text": "6. Socket",
      "top": 121.0,
      "left": 129.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b015"
      }
    },
    {
      "id": "p087-t0015",
      "page": 87,
      "ordinal": 15,
      "text": "：与其他通信机制不同的是，它可用于不同机器间的进程通信",
      "top": 121.0,
      "left": 190.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b015"
      }
    },
    {
      "id": "p087-t0018",
      "page": 87,
      "ordinal": 18,
      "text": "优缺点：",
      "top": 156.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b016"
      }
    },
    {
      "id": "p087-t0020",
      "page": 87,
      "ordinal": 20,
      "text": "1. ",
      "top": 191.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b017"
      }
    },
    {
      "id": "p087-t0021",
      "page": 87,
      "ordinal": 21,
      "text": "管道：速度慢，容量有限；",
      "top": 191.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b017"
      }
    },
    {
      "id": "p087-t0022",
      "page": 87,
      "ordinal": 22,
      "text": "2. Socket",
      "top": 222.0,
      "left": 129.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b018"
      }
    },
    {
      "id": "p087-t0023",
      "page": 87,
      "ordinal": 23,
      "text": "：任何进程间都能通讯，但速度慢；",
      "top": 222.0,
      "left": 190.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b018"
      }
    },
    {
      "id": "p087-t0025",
      "page": 87,
      "ordinal": 25,
      "text": "3. ",
      "top": 253.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b019"
      }
    },
    {
      "id": "p087-t0026",
      "page": 87,
      "ordinal": 26,
      "text": "消息队列：容量受到系统限制，且要注意第一次读的时候，要考虑上一次",
      "top": 253.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b019"
      }
    },
    {
      "id": "p087-t0028",
      "page": 87,
      "ordinal": 28,
      "text": "没有读完数据的问题；",
      "top": 253.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b019"
      }
    },
    {
      "id": "p087-t0029",
      "page": 87,
      "ordinal": 29,
      "text": "4. ",
      "top": 283.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b020"
      }
    },
    {
      "id": "p087-t0030",
      "page": 87,
      "ordinal": 30,
      "text": "信号量：不能传递复杂消息，只能用来同步；",
      "top": 283.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b020"
      }
    },
    {
      "id": "p087-t0031",
      "page": 87,
      "ordinal": 31,
      "text": "5. ",
      "top": 314.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0032",
      "page": 87,
      "ordinal": 32,
      "text": "共享内存区：能够很容易控制容量，速度快，但要保持同步，比如一个进",
      "top": 314.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0034",
      "page": 87,
      "ordinal": 34,
      "text": "程在写的时候，另一个进",
      "top": 314.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0035",
      "page": 87,
      "ordinal": 35,
      "text": "程要注意读写的问题，相当于线程中的线程安",
      "top": 337.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0037",
      "page": 87,
      "ordinal": 37,
      "text": "全，当然，共享内存区同样可以用作线程间通讯，不",
      "top": 337.0,
      "left": 442.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0038",
      "page": 87,
      "ordinal": 38,
      "text": "过没这个必要，线程",
      "top": 361.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0040",
      "page": 87,
      "ordinal": 40,
      "text": "间本来就已经共享了同一进程内的一块内存。",
      "top": 361.0,
      "left": 281.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p086-h03",
        "heading_id": "p086-h03",
        "block_id": "q-p086-h03-b021"
      }
    },
    {
      "id": "p087-t0042",
      "page": 87,
      "ordinal": 42,
      "text": "进程间同步的方式有哪些",
      "top": 395.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01"
      }
    },
    {
      "id": "p087-t0046",
      "page": 87,
      "ordinal": 46,
      "text": "临界区：",
      "top": 446.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0048",
      "page": 87,
      "ordinal": 48,
      "text": "通过对多线程的串行化来访问公共资源或一段代码，速度快，适合控制数据访",
      "top": 470.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0050",
      "page": 87,
      "ordinal": 50,
      "text": "问。",
      "top": 470.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0052",
      "page": 87,
      "ordinal": 52,
      "text": "优点：保证在某一时刻只有一个线程能访问数据的简便办法。",
      "top": 492.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0054",
      "page": 87,
      "ordinal": 54,
      "text": "缺点：虽然临界区同步速度很快，但却只能用来同步本进程内的线程，而不可",
      "top": 516.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0056",
      "page": 87,
      "ordinal": 56,
      "text": "用来同步多个进程中的线",
      "top": 516.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0057",
      "page": 87,
      "ordinal": 57,
      "text": "程",
      "top": 540.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0058",
      "page": 87,
      "ordinal": 58,
      "text": "互斥量：",
      "top": 563.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0060",
      "page": 87,
      "ordinal": 60,
      "text": "为协调共同对一个共享资源的单独访问而设计的。互斥量跟临界区很相似，比",
      "top": 586.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0062",
      "page": 87,
      "ordinal": 62,
      "text": "临界区复杂，互斥对象只",
      "top": 586.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0063",
      "page": 87,
      "ordinal": 63,
      "text": "有一个，只有拥有互斥对象的线程才具有访问资源的",
      "top": 609.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0065",
      "page": 87,
      "ordinal": 65,
      "text": "权限。",
      "top": 609.0,
      "left": 452.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0067",
      "page": 87,
      "ordinal": 67,
      "text": "优点：使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享，",
      "top": 633.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0069",
      "page": 87,
      "ordinal": 69,
      "text": "而且可以在不同应用程序",
      "top": 633.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0070",
      "page": 87,
      "ordinal": 70,
      "text": "的线程之间实现对资源的安全共享。",
      "top": 657.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0072",
      "page": 87,
      "ordinal": 72,
      "text": "缺点：",
      "top": 680.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b001"
      }
    },
    {
      "id": "p087-t0074",
      "page": 87,
      "ordinal": 74,
      "text": "1. ",
      "top": 715.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b002"
      }
    },
    {
      "id": "p087-t0075",
      "page": 87,
      "ordinal": 75,
      "text": "互斥量是可以命名的，也就是说它可以跨越进程使用，所以创建互斥量需",
      "top": 715.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b002"
      }
    },
    {
      "id": "p087-t0077",
      "page": 87,
      "ordinal": 77,
      "text": "要的资源更多，所以如果",
      "top": 715.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b002"
      }
    },
    {
      "id": "p087-t0078",
      "page": 87,
      "ordinal": 78,
      "text": "只为了在进程内部是用的话使用临界区会带来速",
      "top": 739.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b002"
      }
    },
    {
      "id": "p087-t0080",
      "page": 87,
      "ordinal": 80,
      "text": "度上的优势并能够减少资源占用量",
      "top": 739.0,
      "left": 456.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b002"
      }
    },
    {
      "id": "p087-t0082",
      "page": 87,
      "ordinal": 82,
      "text": "2. ",
      "top": 769.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0083",
      "page": 87,
      "ordinal": 83,
      "text": "通过互斥量可以指定资源被独占的方式使用，但如果有下面一种情况通过",
      "top": 769.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0085",
      "page": 87,
      "ordinal": 85,
      "text": "互斥量就无法处理，比如",
      "top": 769.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0086",
      "page": 87,
      "ordinal": 86,
      "text": "现在一位用户购买了一份三个并发访问许可的数",
      "top": 793.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0088",
      "page": 87,
      "ordinal": 88,
      "text": "据库系统，可以根据用户购买的访问许可数量来决",
      "top": 793.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0089",
      "page": 87,
      "ordinal": 89,
      "text": "定有多少个线程",
      "top": 816.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0090",
      "page": 87,
      "ordinal": 90,
      "text": "/",
      "top": 816.0,
      "left": 248.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0091",
      "page": 87,
      "ordinal": 91,
      "text": "进程能",
      "top": 816.0,
      "left": 253.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0093",
      "page": 87,
      "ordinal": 93,
      "text": "同时进行数据库操作，这时候如果利用互斥量就没有办法完成这个要求，",
      "top": 816.0,
      "left": 301.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0095",
      "page": 87,
      "ordinal": 95,
      "text": "信号量对象可以说是一种资源计数器",
      "top": 839.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b003"
      }
    },
    {
      "id": "p087-t0098",
      "page": 87,
      "ordinal": 98,
      "text": "信号量：",
      "top": 875.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0100",
      "page": 87,
      "ordinal": 100,
      "text": "为控制一个具有有限数量用户资源而设计。它允许多个线程在同一时刻访问同",
      "top": 897.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0102",
      "page": 87,
      "ordinal": 102,
      "text": "一资源，但是需要限制在",
      "top": 897.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0103",
      "page": 87,
      "ordinal": 103,
      "text": "同一时刻访问此资源的最大线程数目。互斥量是信号",
      "top": 921.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0105",
      "page": 87,
      "ordinal": 105,
      "text": "量的一种特殊情况，当信号量的最大资源数",
      "top": 921.0,
      "left": 452.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0106",
      "page": 87,
      "ordinal": 106,
      "text": "=1 ",
      "top": 921.0,
      "left": 730.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0107",
      "page": 87,
      "ordinal": 107,
      "text": "就是",
      "top": 921.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0108",
      "page": 87,
      "ordinal": 108,
      "text": "互斥量了。",
      "top": 945.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0110",
      "page": 87,
      "ordinal": 110,
      "text": "优点：适用于对",
      "top": 945.0,
      "left": 189.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0111",
      "page": 87,
      "ordinal": 111,
      "text": " Socket",
      "top": 945.0,
      "left": 291.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0112",
      "page": 87,
      "ordinal": 112,
      "text": "（套接字）程序中线程的同步",
      "top": 945.0,
      "left": 340.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0114",
      "page": 87,
      "ordinal": 114,
      "text": "缺点",
      "top": 968.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0115",
      "page": 87,
      "ordinal": 115,
      "text": ":  ",
      "top": 968.0,
      "left": 145.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b004"
      }
    },
    {
      "id": "p087-t0116",
      "page": 87,
      "ordinal": 116,
      "text": "1. ",
      "top": 1003.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b005"
      }
    },
    {
      "id": "p087-t0117",
      "page": 87,
      "ordinal": 117,
      "text": "信号量机制必须有公共内存，不能用于分布式操作系统，这是它最大的弱",
      "top": 1003.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b005"
      }
    },
    {
      "id": "p087-t0119",
      "page": 87,
      "ordinal": 119,
      "text": "点；",
      "top": 1003.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b005"
      }
    },
    {
      "id": "p087-t0121",
      "page": 87,
      "ordinal": 121,
      "text": "2. ",
      "top": 1034.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b006"
      }
    },
    {
      "id": "p087-t0122",
      "page": 87,
      "ordinal": 122,
      "text": "信号量机制功能强大，但使用时对信号量的操作分散，",
      "top": 1034.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b006"
      }
    },
    {
      "id": "p087-t0124",
      "page": 87,
      "ordinal": 124,
      "text": "而且难以控制，读",
      "top": 1034.0,
      "left": 500.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b006"
      }
    },
    {
      "id": "p087-t0126",
      "page": 87,
      "ordinal": 126,
      "text": "写和维护都很困难，加重",
      "top": 1034.0,
      "left": 621.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b006"
      }
    },
    {
      "id": "p087-t0127",
      "page": 87,
      "ordinal": 127,
      "text": "了程序员的编码负担；",
      "top": 1057.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b006"
      }
    },
    {
      "id": "p087-t0129",
      "page": 87,
      "ordinal": 129,
      "text": "3. ",
      "top": 1088.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0130",
      "page": 87,
      "ordinal": 130,
      "text": "核心操作",
      "top": 1088.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0131",
      "page": 87,
      "ordinal": 131,
      "text": " P-V ",
      "top": 1088.0,
      "left": 204.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0132",
      "page": 87,
      "ordinal": 132,
      "text": "分散在各用户程序的代码中，不易控制和管理，一旦错误，",
      "top": 1088.0,
      "left": 234.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0134",
      "page": 87,
      "ordinal": 134,
      "text": "后果严重，且不易发现和",
      "top": 1088.0,
      "left": 618.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0135",
      "page": 87,
      "ordinal": 135,
      "text": "纠正。",
      "top": 1111.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b007"
      }
    },
    {
      "id": "p087-t0138",
      "page": 87,
      "ordinal": 138,
      "text": "事件：",
      "top": 1146.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p087-t0140",
      "page": 87,
      "ordinal": 140,
      "text": "用来通知线程有一些事件已发生，从而启动后继任务的开始。",
      "top": 1170.0,
      "left": 116.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p087-t0141",
      "page": 87,
      "ordinal": 141,
      "text": " 102 ",
      "top": 1170.0,
      "left": 510.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p087-t0142",
      "page": 87,
      "ordinal": 142,
      "text": "优点：事件对象通过通知操作的方式",
      "top": 1170.0,
      "left": 543.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p087-t0143",
      "page": 87,
      "ordinal": 143,
      "text": "来保持线程的同步，并且可以实现不同进",
      "top": 1193.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p087-t0145",
      "page": 87,
      "ordinal": 145,
      "text": "程中的线程同步操作。",
      "top": 1193.0,
      "left": 379.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p087-h01",
        "heading_id": "p087-h01",
        "block_id": "q-p087-h01-b008"
      }
    },
    {
      "id": "p088-t0001",
      "page": 88,
      "ordinal": 1,
      "text": "线程同步的方式有哪些",
      "top": 40.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01"
      }
    },
    {
      "id": "p088-t0004",
      "page": 88,
      "ordinal": 4,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0005",
      "page": 88,
      "ordinal": 5,
      "text": "临界区：当多个线程访问一个独占性共享资源时，可以使用临界区对象。拥有",
      "top": 91.0,
      "left": 146.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0007",
      "page": 88,
      "ordinal": 7,
      "text": "临界区的线程可以访",
      "top": 91.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0008",
      "page": 88,
      "ordinal": 8,
      "text": "问被保护起来的资源或代码段，其他线程若想访问，则被",
      "top": 114.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0010",
      "page": 88,
      "ordinal": 10,
      "text": "挂起，直到拥有临界区的线程放弃临界区",
      "top": 114.0,
      "left": 515.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0011",
      "page": 88,
      "ordinal": 11,
      "text": "为止，以此达到用原子方式操",
      "top": 137.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0013",
      "page": 88,
      "ordinal": 13,
      "text": "作共享",
      "top": 137.0,
      "left": 339.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0015",
      "page": 88,
      "ordinal": 15,
      "text": "资源的目的。",
      "top": 137.0,
      "left": 387.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b001"
      }
    },
    {
      "id": "p088-t0017",
      "page": 88,
      "ordinal": 17,
      "text": "2. ",
      "top": 168.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0018",
      "page": 88,
      "ordinal": 18,
      "text": "事件：事件机制，则允许一个线程在处理完一个任务后，主动唤醒另外一个线",
      "top": 168.0,
      "left": 146.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0020",
      "page": 88,
      "ordinal": 20,
      "text": "程执行任务。",
      "top": 168.0,
      "left": 647.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0022",
      "page": 88,
      "ordinal": 22,
      "text": "互斥",
      "top": 168.0,
      "left": 738.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0023",
      "page": 88,
      "ordinal": 23,
      "text": "量：互斥对象和临界区对象非常相似，只是其允许在进程间使用，而临界",
      "top": 192.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0025",
      "page": 88,
      "ordinal": 25,
      "text": "区只限制与同一进程的各",
      "top": 192.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0026",
      "page": 88,
      "ordinal": 26,
      "text": "个线程之间使用，但是更节省资源，更有效率。",
      "top": 215.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b002"
      }
    },
    {
      "id": "p088-t0028",
      "page": 88,
      "ordinal": 28,
      "text": "3. ",
      "top": 246.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0029",
      "page": 88,
      "ordinal": 29,
      "text": "信号量：当需要一个计数器来限制可以使用某共享资源的线程数目时，可以使",
      "top": 246.0,
      "left": 146.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0031",
      "page": 88,
      "ordinal": 31,
      "text": "用",
      "top": 246.0,
      "left": 647.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0032",
      "page": 88,
      "ordinal": 32,
      "text": "“",
      "top": 246.0,
      "left": 661.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0033",
      "page": 88,
      "ordinal": 33,
      "text": "信号量",
      "top": 246.0,
      "left": 666.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0034",
      "page": 88,
      "ordinal": 34,
      "text": "”",
      "top": 246.0,
      "left": 710.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0035",
      "page": 88,
      "ordinal": 35,
      "text": "对象",
      "top": 246.0,
      "left": 715.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0037",
      "page": 88,
      "ordinal": 37,
      "text": "区",
      "top": 246.0,
      "left": 752.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0038",
      "page": 88,
      "ordinal": 38,
      "text": "别：",
      "top": 269.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b003"
      }
    },
    {
      "id": "p088-t0040",
      "page": 88,
      "ordinal": 40,
      "text": "1. ",
      "top": 300.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0041",
      "page": 88,
      "ordinal": 41,
      "text": "互斥量与临界区的作用非常相似，但互斥量是可以命名的，也就是说互斥",
      "top": 300.0,
      "left": 179.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0043",
      "page": 88,
      "ordinal": 43,
      "text": "量可以跨越进程使",
      "top": 300.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0044",
      "page": 88,
      "ordinal": 44,
      "text": "用，但创建互斥量需要的资源更多，所以如果只为了在",
      "top": 324.0,
      "left": 179.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0046",
      "page": 88,
      "ordinal": 46,
      "text": "进程内部是用的话使用临界区会带来",
      "top": 324.0,
      "left": 534.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0047",
      "page": 88,
      "ordinal": 47,
      "text": "速度上的优势并能够减少资源占用",
      "top": 346.0,
      "left": 179.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0049",
      "page": 88,
      "ordinal": 49,
      "text": "量",
      "top": 346.0,
      "left": 402.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0051",
      "page": 88,
      "ordinal": 51,
      "text": "。因为互斥量是跨进程的互斥量一旦被创建，就可以通",
      "top": 346.0,
      "left": 421.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0052",
      "page": 88,
      "ordinal": 52,
      "text": "过名字打开它。",
      "top": 370.0,
      "left": 179.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b004"
      }
    },
    {
      "id": "p088-t0054",
      "page": 88,
      "ordinal": 54,
      "text": "2. ",
      "top": 400.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b005"
      }
    },
    {
      "id": "p088-t0055",
      "page": 88,
      "ordinal": 55,
      "text": "互斥量，信号量，事件都可以被跨越进程使用来进行同步数据操作。",
      "top": 400.0,
      "left": 179.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h01",
        "heading_id": "p088-h01",
        "block_id": "q-p088-h01-b005"
      }
    },
    {
      "id": "p088-t0057",
      "page": 88,
      "ordinal": 57,
      "text": "线程的分类",
      "top": 435.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02"
      }
    },
    {
      "id": "p088-t0061",
      "page": 88,
      "ordinal": 61,
      "text": "从线程的运行空间来说，分为用户级线程（",
      "top": 486.0,
      "left": 116.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0062",
      "page": 88,
      "ordinal": 62,
      "text": "user-level thread, ULT",
      "top": 486.0,
      "left": 393.0,
      "width": 149.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0063",
      "page": 88,
      "ordinal": 63,
      "text": "）和内核",
      "top": 486.0,
      "left": 542.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0065",
      "page": 88,
      "ordinal": 65,
      "text": "级线程（",
      "top": 486.0,
      "left": 605.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0066",
      "page": 88,
      "ordinal": 66,
      "text": "kernel-level, ",
      "top": 486.0,
      "left": 663.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0067",
      "page": 88,
      "ordinal": 67,
      "text": "KLT",
      "top": 509.0,
      "left": 112.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0068",
      "page": 88,
      "ordinal": 68,
      "text": "）",
      "top": 509.0,
      "left": 136.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0070",
      "page": 88,
      "ordinal": 70,
      "text": "内核级线程：这类线程依赖于内核，又称为内核支持的线程或轻量级进程。无",
      "top": 533.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0072",
      "page": 88,
      "ordinal": 72,
      "text": "论是在用户程序中的线程",
      "top": 533.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0073",
      "page": 88,
      "ordinal": 73,
      "text": "还是系统进程中的线程，它们的创建、撤销和切换都",
      "top": 555.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0075",
      "page": 88,
      "ordinal": 75,
      "text": "由内核实现。比如英特尔",
      "top": 555.0,
      "left": 452.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0076",
      "page": 88,
      "ordinal": 76,
      "text": " i5-8250U ",
      "top": 555.0,
      "left": 613.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0077",
      "page": 88,
      "ordinal": 77,
      "text": "是",
      "top": 555.0,
      "left": 681.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0078",
      "page": 88,
      "ordinal": 78,
      "text": " 4 ",
      "top": 555.0,
      "left": 696.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0079",
      "page": 88,
      "ordinal": 79,
      "text": "核",
      "top": 555.0,
      "left": 712.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0080",
      "page": 88,
      "ordinal": 80,
      "text": " 8 ",
      "top": 555.0,
      "left": 726.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0081",
      "page": 88,
      "ordinal": 81,
      "text": "线",
      "top": 555.0,
      "left": 742.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0082",
      "page": 88,
      "ordinal": 82,
      "text": "程，这里的线程就是内核级线程",
      "top": 579.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0084",
      "page": 88,
      "ordinal": 84,
      "text": "用户级线程：它仅存在于用户级中，这种线程是不依赖于操作系统核心的。应",
      "top": 603.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0086",
      "page": 88,
      "ordinal": 86,
      "text": "用进程利用线程库来完成",
      "top": 603.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0087",
      "page": 88,
      "ordinal": 87,
      "text": "其创建和管理，速度比较快，操作系统内核无法感知",
      "top": 626.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0089",
      "page": 88,
      "ordinal": 89,
      "text": "用户级线程的存在。",
      "top": 626.0,
      "left": 452.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h02",
        "heading_id": "p088-h02",
        "block_id": "q-p088-h02-b001"
      }
    },
    {
      "id": "p088-t0091",
      "page": 88,
      "ordinal": 91,
      "text": "什么是临界区，如何解决冲突？",
      "top": 661.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03"
      }
    },
    {
      "id": "p088-t0095",
      "page": 88,
      "ordinal": 95,
      "text": "每个进程中访问临界资源的那段程序称为临界区，一次仅允许一个进程使用的",
      "top": 712.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b001"
      }
    },
    {
      "id": "p088-t0097",
      "page": 88,
      "ordinal": 97,
      "text": "资源称为临界资源。",
      "top": 712.0,
      "left": 617.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b001"
      }
    },
    {
      "id": "p088-t0099",
      "page": 88,
      "ordinal": 99,
      "text": "解决",
      "top": 712.0,
      "left": 752.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b001"
      }
    },
    {
      "id": "p088-t0100",
      "page": 88,
      "ordinal": 100,
      "text": "冲突的办法",
      "top": 734.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b001"
      }
    },
    {
      "id": "p088-t0102",
      "page": 88,
      "ordinal": 102,
      "text": "：",
      "top": 734.0,
      "left": 192.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b001"
      }
    },
    {
      "id": "p088-t0103",
      "page": 88,
      "ordinal": 103,
      "text": "1. ",
      "top": 770.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b002"
      }
    },
    {
      "id": "p088-t0104",
      "page": 88,
      "ordinal": 104,
      "text": "如果有若干进程要求进入空闲的临界区，一次仅允许一个进程进入，如已",
      "top": 770.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b002"
      }
    },
    {
      "id": "p088-t0106",
      "page": 88,
      "ordinal": 106,
      "text": "有进程进入自己的临界",
      "top": 770.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b002"
      }
    },
    {
      "id": "p088-t0107",
      "page": 88,
      "ordinal": 107,
      "text": "区，则其它所有试图进入临界区的进程必须等待；",
      "top": 793.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b002"
      }
    },
    {
      "id": "p088-t0109",
      "page": 88,
      "ordinal": 109,
      "text": "2. ",
      "top": 824.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b003"
      }
    },
    {
      "id": "p088-t0110",
      "page": 88,
      "ordinal": 110,
      "text": "进入临界区的进程要在有限时间内退出。",
      "top": 824.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b003"
      }
    },
    {
      "id": "p088-t0112",
      "page": 88,
      "ordinal": 112,
      "text": "3. ",
      "top": 855.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0113",
      "page": 88,
      "ordinal": 113,
      "text": "如果进程不能进入自己的临界区，则应让出",
      "top": 855.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0114",
      "page": 88,
      "ordinal": 114,
      "text": " CPU",
      "top": 855.0,
      "left": 423.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0115",
      "page": 88,
      "ordinal": 115,
      "text": "，避免进程出现",
      "top": 855.0,
      "left": 456.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0116",
      "page": 88,
      "ordinal": 116,
      "text": "“",
      "top": 855.0,
      "left": 558.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0117",
      "page": 88,
      "ordinal": 117,
      "text": "忙等",
      "top": 855.0,
      "left": 563.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0118",
      "page": 88,
      "ordinal": 118,
      "text": "”",
      "top": 855.0,
      "left": 593.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0119",
      "page": 88,
      "ordinal": 119,
      "text": "现",
      "top": 855.0,
      "left": 598.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0121",
      "page": 88,
      "ordinal": 121,
      "text": "象。",
      "top": 855.0,
      "left": 616.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h03",
        "heading_id": "p088-h03",
        "block_id": "q-p088-h03-b004"
      }
    },
    {
      "id": "p088-t0123",
      "page": 88,
      "ordinal": 123,
      "text": "什么是死锁？死锁产生的条件？",
      "top": 889.0,
      "left": 112.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04"
      }
    },
    {
      "id": "p088-t0127",
      "page": 88,
      "ordinal": 127,
      "text": "什么是死锁：",
      "top": 940.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0129",
      "page": 88,
      "ordinal": 129,
      "text": "在两个或者多个并发进程中，如果每个进程持有某种资源而又等待其它进程释",
      "top": 963.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0131",
      "page": 88,
      "ordinal": 131,
      "text": "放它或它们现在保持着的",
      "top": 963.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0132",
      "page": 88,
      "ordinal": 132,
      "text": "资源，在未改变这种状态之前都不能向前推进，称这",
      "top": 986.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0134",
      "page": 88,
      "ordinal": 134,
      "text": "一组进程产生了死锁。通俗的讲就是两个或多个进",
      "top": 986.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0135",
      "page": 88,
      "ordinal": 135,
      "text": "程无限期的阻塞、相互等待",
      "top": 1010.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0137",
      "page": 88,
      "ordinal": 137,
      "text": "的一种状态。",
      "top": 1010.0,
      "left": 291.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0139",
      "page": 88,
      "ordinal": 139,
      "text": "死锁产生的四个必要条件",
      "top": 1034.0,
      "left": 116.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b001"
      }
    },
    {
      "id": "p088-t0141",
      "page": 88,
      "ordinal": 141,
      "text": "1. ",
      "top": 1068.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b002"
      }
    },
    {
      "id": "p088-t0142",
      "page": 88,
      "ordinal": 142,
      "text": "互斥条件：一个资源一次只能被一个进程使用",
      "top": 1068.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b002"
      }
    },
    {
      "id": "p088-t0144",
      "page": 88,
      "ordinal": 144,
      "text": "2. ",
      "top": 1099.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b003"
      }
    },
    {
      "id": "p088-t0145",
      "page": 88,
      "ordinal": 145,
      "text": "请求与保持条件：一个进程因请求资源而阻塞时，对已获得资源保持不放",
      "top": 1099.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b003"
      }
    },
    {
      "id": "p088-t0147",
      "page": 88,
      "ordinal": 147,
      "text": "3. ",
      "top": 1130.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b004"
      }
    },
    {
      "id": "p088-t0148",
      "page": 88,
      "ordinal": 148,
      "text": "不剥夺条件：进程获得的资源，在未完全使用完之前，不能强行剥夺",
      "top": 1130.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b004"
      }
    },
    {
      "id": "p088-t0150",
      "page": 88,
      "ordinal": 150,
      "text": "4. ",
      "top": 1161.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b005"
      }
    },
    {
      "id": "p088-t0151",
      "page": 88,
      "ordinal": 151,
      "text": "循环等待条件：若干进程之间形成一种头尾相接的环形等待资源关系",
      "top": 1161.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b005"
      }
    },
    {
      "id": "p088-t0154",
      "page": 88,
      "ordinal": 154,
      "text": "如何处理死锁问题",
      "top": 1196.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b006"
      }
    },
    {
      "id": "p089-t0001",
      "page": 89,
      "ordinal": 1,
      "text": "1. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0002",
      "page": 89,
      "ordinal": 2,
      "text": "忽略该问题。例如鸵鸟算法，该算法可以应用在极少发生死锁的的情况",
      "top": 44.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0004",
      "page": 89,
      "ordinal": 4,
      "text": "下。为什么叫鸵鸟算法呢，",
      "top": 44.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0005",
      "page": 89,
      "ordinal": 5,
      "text": "因为传说中鸵鸟看到危险就把头埋在地底下，",
      "top": 67.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0007",
      "page": 89,
      "ordinal": 7,
      "text": "可能鸵鸟觉得看不到危险也就没危险了吧。跟掩耳盗",
      "top": 67.0,
      "left": 442.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0008",
      "page": 89,
      "ordinal": 8,
      "text": "铃有点像。",
      "top": 91.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b007"
      }
    },
    {
      "id": "p089-t0010",
      "page": 89,
      "ordinal": 10,
      "text": "2. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b008"
      }
    },
    {
      "id": "p089-t0011",
      "page": 89,
      "ordinal": 11,
      "text": "检测死锁并且恢复。",
      "top": 121.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b008"
      }
    },
    {
      "id": "p089-t0013",
      "page": 89,
      "ordinal": 13,
      "text": "3. ",
      "top": 152.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b009"
      }
    },
    {
      "id": "p089-t0014",
      "page": 89,
      "ordinal": 14,
      "text": "仔细地对资源进行动态分配，以避免死锁。",
      "top": 152.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b009"
      }
    },
    {
      "id": "p089-t0016",
      "page": 89,
      "ordinal": 16,
      "text": "4. ",
      "top": 182.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b010"
      }
    },
    {
      "id": "p089-t0017",
      "page": 89,
      "ordinal": 17,
      "text": "通过破除死锁四个必要条件之一，来防止死锁产生。",
      "top": 182.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p088-h04",
        "heading_id": "p088-h04",
        "block_id": "q-p088-h04-b010"
      }
    },
    {
      "id": "p089-t0019",
      "page": 89,
      "ordinal": 19,
      "text": "进程调度策略有哪几种",
      "top": 216.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01"
      }
    },
    {
      "id": "p089-t0022",
      "page": 89,
      "ordinal": 22,
      "text": "1. ",
      "top": 267.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0023",
      "page": 89,
      "ordinal": 23,
      "text": "先来先服务：非抢占式的调度算法，按照请求的顺序进行调度。有利于长",
      "top": 267.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0025",
      "page": 89,
      "ordinal": 25,
      "text": "作业，但不利于短作业，",
      "top": 267.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0026",
      "page": 89,
      "ordinal": 26,
      "text": "因为短作业必须一直等待前面的长作业执行完毕",
      "top": 291.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0028",
      "page": 89,
      "ordinal": 28,
      "text": "才能执行，而长作业又需要执行很长时间，造成了",
      "top": 291.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0029",
      "page": 89,
      "ordinal": 29,
      "text": "短作业等待时间过长。",
      "top": 315.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0031",
      "page": 89,
      "ordinal": 31,
      "text": "另外，对",
      "top": 315.0,
      "left": 296.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0032",
      "page": 89,
      "ordinal": 32,
      "text": " I/O ",
      "top": 315.0,
      "left": 354.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0033",
      "page": 89,
      "ordinal": 33,
      "text": "密集型进程也不利，因为这种进程每次进行",
      "top": 315.0,
      "left": 382.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0034",
      "page": 89,
      "ordinal": 34,
      "text": " I/O ",
      "top": 315.0,
      "left": 660.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0035",
      "page": 89,
      "ordinal": 35,
      "text": "操作之后又",
      "top": 315.0,
      "left": 689.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0037",
      "page": 89,
      "ordinal": 37,
      "text": "得",
      "top": 315.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0038",
      "page": 89,
      "ordinal": 38,
      "text": "重新排队",
      "top": 338.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b001"
      }
    },
    {
      "id": "p089-t0040",
      "page": 89,
      "ordinal": 40,
      "text": "2. ",
      "top": 369.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b002"
      }
    },
    {
      "id": "p089-t0041",
      "page": 89,
      "ordinal": 41,
      "text": "短作业优先：非抢占式的调度算法，按估计运行时间最短的顺序进行调",
      "top": 369.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b002"
      }
    },
    {
      "id": "p089-t0043",
      "page": 89,
      "ordinal": 43,
      "text": "度。长作业有可能会饿死，",
      "top": 369.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b002"
      }
    },
    {
      "id": "p089-t0044",
      "page": 89,
      "ordinal": 44,
      "text": "处于一直等待短作业执行完毕的状态。因为如",
      "top": 392.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b002"
      }
    },
    {
      "id": "p089-t0046",
      "page": 89,
      "ordinal": 46,
      "text": "果一直有短作业到来，那么长作业永远得不到调度。",
      "top": 392.0,
      "left": 442.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b002"
      }
    },
    {
      "id": "p089-t0048",
      "page": 89,
      "ordinal": 48,
      "text": "3. ",
      "top": 423.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0049",
      "page": 89,
      "ordinal": 49,
      "text": "最短剩余时间优先：最短作业优先的抢占式版本，按剩余运行时间的顺序",
      "top": 423.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0051",
      "page": 89,
      "ordinal": 51,
      "text": "进行调度。",
      "top": 423.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0053",
      "page": 89,
      "ordinal": 53,
      "text": "当一个新的作",
      "top": 423.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0054",
      "page": 89,
      "ordinal": 54,
      "text": "业到达时，其整个运行时间与当前进程的剩余时",
      "top": 446.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0056",
      "page": 89,
      "ordinal": 56,
      "text": "间作比较。如果新的进程需要的时间更少，则挂起",
      "top": 446.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0057",
      "page": 89,
      "ordinal": 57,
      "text": "当前进程，运行新的进",
      "top": 470.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0059",
      "page": 89,
      "ordinal": 59,
      "text": "程。否则新的进程等待",
      "top": 470.0,
      "left": 296.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b003"
      }
    },
    {
      "id": "p089-t0061",
      "page": 89,
      "ordinal": 61,
      "text": "4. ",
      "top": 500.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0062",
      "page": 89,
      "ordinal": 62,
      "text": "时间片轮转：将所有就绪进程按",
      "top": 500.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0063",
      "page": 89,
      "ordinal": 63,
      "text": " FCFS ",
      "top": 500.0,
      "left": 350.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0064",
      "page": 89,
      "ordinal": 64,
      "text": "的原则排成一个队列，每次调度时，把",
      "top": 500.0,
      "left": 390.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0065",
      "page": 89,
      "ordinal": 65,
      "text": " CPU ",
      "top": 500.0,
      "left": 639.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0066",
      "page": 89,
      "ordinal": 66,
      "text": "时间分配给队首",
      "top": 500.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0067",
      "page": 89,
      "ordinal": 67,
      "text": "进程，该进程可以执行一个时间片。当时间片用完时，由",
      "top": 524.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0069",
      "page": 89,
      "ordinal": 69,
      "text": "计时器发出时钟中断，调度程序便停止该",
      "top": 524.0,
      "left": 515.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0070",
      "page": 89,
      "ordinal": 70,
      "text": "进程的执行，并将它送往就绪队列的",
      "top": 546.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0072",
      "page": 89,
      "ordinal": 72,
      "text": "末尾，同时继续把",
      "top": 546.0,
      "left": 383.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0073",
      "page": 89,
      "ordinal": 73,
      "text": " CPU ",
      "top": 546.0,
      "left": 500.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0074",
      "page": 89,
      "ordinal": 74,
      "text": "时间分配给队首的进程。",
      "top": 546.0,
      "left": 537.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b004"
      }
    },
    {
      "id": "p089-t0076",
      "page": 89,
      "ordinal": 76,
      "text": "1. ",
      "top": 578.0,
      "left": 163.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0077",
      "page": 89,
      "ordinal": 77,
      "text": "时间片轮转算法的效率和时间片的大小有很大关系：因为进程切换都要保",
      "top": 578.0,
      "left": 179.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0079",
      "page": 89,
      "ordinal": 79,
      "text": "存进程的信息并且",
      "top": 578.0,
      "left": 651.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0080",
      "page": 89,
      "ordinal": 80,
      "text": "载入新进程的信息，如果时间片太小，会导致进程切换",
      "top": 602.0,
      "left": 179.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0082",
      "page": 89,
      "ordinal": 82,
      "text": "得太频繁，在进程切换上就会花过多",
      "top": 602.0,
      "left": 534.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0083",
      "page": 89,
      "ordinal": 83,
      "text": "时间。",
      "top": 624.0,
      "left": 179.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0085",
      "page": 89,
      "ordinal": 85,
      "text": "而如果时间片过长，那么实时",
      "top": 624.0,
      "left": 227.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0087",
      "page": 89,
      "ordinal": 87,
      "text": "性就不能得到保证",
      "top": 624.0,
      "left": 421.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b005"
      }
    },
    {
      "id": "p089-t0089",
      "page": 89,
      "ordinal": 89,
      "text": "5. ",
      "top": 656.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b006"
      }
    },
    {
      "id": "p089-t0090",
      "page": 89,
      "ordinal": 90,
      "text": "优先级调度：为每个进程分配一个优先级，按优先级进行调度。为了防止",
      "top": 656.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b006"
      }
    },
    {
      "id": "p089-t0092",
      "page": 89,
      "ordinal": 92,
      "text": "低优先级的进程永远等不",
      "top": 656.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b006"
      }
    },
    {
      "id": "p089-t0093",
      "page": 89,
      "ordinal": 93,
      "text": "到调度，可以随着时间的推移增加等待进程的优",
      "top": 678.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b006"
      }
    },
    {
      "id": "p089-t0095",
      "page": 89,
      "ordinal": 95,
      "text": "先级",
      "top": 678.0,
      "left": 456.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h01",
        "heading_id": "p089-h01",
        "block_id": "q-p089-h01-b006"
      }
    },
    {
      "id": "p089-t0097",
      "page": 89,
      "ordinal": 97,
      "text": "进程有哪些状态",
      "top": 713.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02"
      }
    },
    {
      "id": "p089-t0101",
      "page": 89,
      "ordinal": 101,
      "text": "进程一共有",
      "top": 764.0,
      "left": 116.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b001"
      }
    },
    {
      "id": "p089-t0102",
      "page": 89,
      "ordinal": 102,
      "text": " 5 ",
      "top": 764.0,
      "left": 189.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b001"
      }
    },
    {
      "id": "p089-t0103",
      "page": 89,
      "ordinal": 103,
      "text": "种状态，分别是创建、就绪、运行（执行）、终止、阻塞。",
      "top": 764.0,
      "left": 205.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b001"
      }
    },
    {
      "id": "p089-t0104",
      "page": 89,
      "ordinal": 104,
      "text": "1. ",
      "top": 1090.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0105",
      "page": 89,
      "ordinal": 105,
      "text": "运行状态就是进程正在",
      "top": 1090.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0106",
      "page": 89,
      "ordinal": 106,
      "text": " CPU ",
      "top": 1090.0,
      "left": 292.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0107",
      "page": 89,
      "ordinal": 107,
      "text": "上运行。在单处理机环境下，每一时刻最多只",
      "top": 1090.0,
      "left": 328.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0109",
      "page": 89,
      "ordinal": 109,
      "text": "有一个进程处于运行状",
      "top": 1090.0,
      "left": 624.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0110",
      "page": 89,
      "ordinal": 110,
      "text": "态。",
      "top": 1113.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b003"
      }
    },
    {
      "id": "p089-t0112",
      "page": 89,
      "ordinal": 112,
      "text": "2. ",
      "top": 1144.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0113",
      "page": 89,
      "ordinal": 113,
      "text": "就绪状态就是说进程已处于准备运行的状态，即进程获得了除",
      "top": 1144.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0114",
      "page": 89,
      "ordinal": 114,
      "text": " CPU ",
      "top": 1144.0,
      "left": 540.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0115",
      "page": 89,
      "ordinal": 115,
      "text": "之外的",
      "top": 1144.0,
      "left": 577.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0117",
      "page": 89,
      "ordinal": 117,
      "text": "一切所需资源，一旦得",
      "top": 1144.0,
      "left": 624.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0118",
      "page": 89,
      "ordinal": 118,
      "text": "到",
      "top": 1167.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0119",
      "page": 89,
      "ordinal": 119,
      "text": " CPU ",
      "top": 1167.0,
      "left": 160.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p089-t0120",
      "page": 89,
      "ordinal": 120,
      "text": "即可运行。",
      "top": 1167.0,
      "left": 196.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b004"
      }
    },
    {
      "id": "p090-t0001",
      "page": 90,
      "ordinal": 1,
      "text": "3. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0002",
      "page": 90,
      "ordinal": 2,
      "text": "阻塞状态就是进程正在等待某一事件而暂停运行，比如等待某资源为可用",
      "top": 44.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0004",
      "page": 90,
      "ordinal": 4,
      "text": "或等待",
      "top": 44.0,
      "left": 617.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0005",
      "page": 90,
      "ordinal": 5,
      "text": " I/O ",
      "top": 44.0,
      "left": 661.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0006",
      "page": 90,
      "ordinal": 6,
      "text": "完成。即使",
      "top": 44.0,
      "left": 690.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0008",
      "page": 90,
      "ordinal": 8,
      "text": "CPU ",
      "top": 67.0,
      "left": 146.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0009",
      "page": 90,
      "ordinal": 9,
      "text": "空闲，该进程也不能运行。",
      "top": 67.0,
      "left": 178.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b005"
      }
    },
    {
      "id": "p090-t0011",
      "page": 90,
      "ordinal": 11,
      "text": "4. ",
      "top": 98.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b006"
      }
    },
    {
      "id": "p090-t0012",
      "page": 90,
      "ordinal": 12,
      "text": "运行态",
      "top": 98.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b006"
      }
    },
    {
      "id": "p090-t0013",
      "page": 90,
      "ordinal": 13,
      "text": "→",
      "top": 100.0,
      "left": 189.0,
      "width": 15.0,
      "height": 16.0,
      "font": "13",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b006"
      }
    },
    {
      "id": "p090-t0014",
      "page": 90,
      "ordinal": 14,
      "text": "阻塞态：往往是由于等待外设，等待主存等资源分配或等待人工干预",
      "top": 98.0,
      "left": 204.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b006"
      }
    },
    {
      "id": "p090-t0016",
      "page": 90,
      "ordinal": 16,
      "text": "而引起的。",
      "top": 98.0,
      "left": 647.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b006"
      }
    },
    {
      "id": "p090-t0018",
      "page": 90,
      "ordinal": 18,
      "text": "5. ",
      "top": 128.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b007"
      }
    },
    {
      "id": "p090-t0019",
      "page": 90,
      "ordinal": 19,
      "text": "阻塞态",
      "top": 128.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b007"
      }
    },
    {
      "id": "p090-t0020",
      "page": 90,
      "ordinal": 20,
      "text": "→",
      "top": 130.0,
      "left": 189.0,
      "width": 15.0,
      "height": 16.0,
      "font": "13",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b007"
      }
    },
    {
      "id": "p090-t0021",
      "page": 90,
      "ordinal": 21,
      "text": "就绪态：则是等待的条件已满足，只需分配到处理器后就能运行。",
      "top": 128.0,
      "left": 204.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b007"
      }
    },
    {
      "id": "p090-t0023",
      "page": 90,
      "ordinal": 23,
      "text": "6. ",
      "top": 159.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0024",
      "page": 90,
      "ordinal": 24,
      "text": "运行态",
      "top": 159.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0025",
      "page": 90,
      "ordinal": 25,
      "text": "→",
      "top": 162.0,
      "left": 189.0,
      "width": 15.0,
      "height": 16.0,
      "font": "13",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0026",
      "page": 90,
      "ordinal": 26,
      "text": "就绪态：不是由于自身原因，而是由外界原因使运行状态的进程让出",
      "top": 159.0,
      "left": 204.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0028",
      "page": 90,
      "ordinal": 28,
      "text": "处理器，这时候就变",
      "top": 159.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0029",
      "page": 90,
      "ordinal": 29,
      "text": "成就绪态。例如时间片用完，或有更高优先级的进程来抢",
      "top": 182.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0031",
      "page": 90,
      "ordinal": 31,
      "text": "占处理器等。",
      "top": 182.0,
      "left": 515.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b008"
      }
    },
    {
      "id": "p090-t0033",
      "page": 90,
      "ordinal": 33,
      "text": "7. ",
      "top": 213.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b009"
      }
    },
    {
      "id": "p090-t0034",
      "page": 90,
      "ordinal": 34,
      "text": "就绪态",
      "top": 213.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b009"
      }
    },
    {
      "id": "p090-t0035",
      "page": 90,
      "ordinal": 35,
      "text": "→",
      "top": 216.0,
      "left": 189.0,
      "width": 15.0,
      "height": 16.0,
      "font": "13",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b009"
      }
    },
    {
      "id": "p090-t0036",
      "page": 90,
      "ordinal": 36,
      "text": "运行态：系统按某种策略选中就绪队列中的一个进程占用处理器，此",
      "top": 213.0,
      "left": 204.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b009"
      }
    },
    {
      "id": "p090-t0038",
      "page": 90,
      "ordinal": 38,
      "text": "时就变成了运行态",
      "top": 213.0,
      "left": 647.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p089-h02",
        "heading_id": "p089-h02",
        "block_id": "q-p089-h02-b009"
      }
    },
    {
      "id": "p090-t0040",
      "page": 90,
      "ordinal": 40,
      "text": "什么是分页？",
      "top": 248.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01"
      }
    },
    {
      "id": "p090-t0044",
      "page": 90,
      "ordinal": 44,
      "text": "把内存空间划分为大小相等且固定的块，作为主存的基本单位。因为程序数据",
      "top": 298.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0046",
      "page": 90,
      "ordinal": 46,
      "text": "存储在不同的页面中，而",
      "top": 298.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0047",
      "page": 90,
      "ordinal": 47,
      "text": "页面又离散的分布在内存中，因此需要一个页表来记",
      "top": 321.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0049",
      "page": 90,
      "ordinal": 49,
      "text": "录映射关系，以实现从页号到物理块号的映射。",
      "top": 321.0,
      "left": 452.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0051",
      "page": 90,
      "ordinal": 51,
      "text": "访",
      "top": 321.0,
      "left": 763.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0052",
      "page": 90,
      "ordinal": 52,
      "text": "问分页系统中内存数据需要两次的内存访问",
      "top": 345.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0053",
      "page": 90,
      "ordinal": 53,
      "text": " (",
      "top": 345.0,
      "left": 390.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0054",
      "page": 90,
      "ordinal": 54,
      "text": "一次是从内存中访问页表，从",
      "top": 345.0,
      "left": 398.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0056",
      "page": 90,
      "ordinal": 56,
      "text": "中找到指定的物理块号，加上",
      "top": 345.0,
      "left": 592.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0057",
      "page": 90,
      "ordinal": 57,
      "text": "页内偏移得到实际物理地址；第二次就是根据第",
      "top": 369.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0059",
      "page": 90,
      "ordinal": 59,
      "text": "一次得到的物理地址访问内存取出数据",
      "top": 369.0,
      "left": 423.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0060",
      "page": 90,
      "ordinal": 60,
      "text": ")",
      "top": 369.0,
      "left": 671.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0061",
      "page": 90,
      "ordinal": 61,
      "text": "。",
      "top": 369.0,
      "left": 676.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h01",
        "heading_id": "p090-h01",
        "block_id": "q-p090-h01-b001"
      }
    },
    {
      "id": "p090-t0062",
      "page": 90,
      "ordinal": 62,
      "text": "什么是分段",
      "top": 786.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02"
      }
    },
    {
      "id": "p090-t0066",
      "page": 90,
      "ordinal": 66,
      "text": "分页是为了提高内存利用率，而分段是为了满足程序员在编写代码的时候的一",
      "top": 836.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0068",
      "page": 90,
      "ordinal": 68,
      "text": "些逻辑需求",
      "top": 836.0,
      "left": 617.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0069",
      "page": 90,
      "ordinal": 69,
      "text": "(",
      "top": 836.0,
      "left": 690.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0070",
      "page": 90,
      "ordinal": 70,
      "text": "比如数据共",
      "top": 836.0,
      "left": 694.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0071",
      "page": 90,
      "ordinal": 71,
      "text": "享，数据保护，动态链接等",
      "top": 859.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0072",
      "page": 90,
      "ordinal": 72,
      "text": ")",
      "top": 859.0,
      "left": 287.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0073",
      "page": 90,
      "ordinal": 73,
      "text": "。",
      "top": 859.0,
      "left": 292.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0075",
      "page": 90,
      "ordinal": 75,
      "text": "分段内存管理当中，地址是二维的，一维是段号，二维是段内地址；其中",
      "top": 859.0,
      "left": 310.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0076",
      "page": 90,
      "ordinal": 76,
      "text": "每个",
      "top": 883.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0078",
      "page": 90,
      "ordinal": 78,
      "text": "段的长度是不一样的，而且每个段内部都是从",
      "top": 883.0,
      "left": 145.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0079",
      "page": 90,
      "ordinal": 79,
      "text": " 0 ",
      "top": 883.0,
      "left": 437.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0080",
      "page": 90,
      "ordinal": 80,
      "text": "开始编址的。由于分段管理",
      "top": 883.0,
      "left": 453.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0082",
      "page": 90,
      "ordinal": 82,
      "text": "中，每个段内部是连续",
      "top": 883.0,
      "left": 633.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0083",
      "page": 90,
      "ordinal": 83,
      "text": "内存分配，但是段和段之间是离散分配的，因此也存在",
      "top": 906.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p090-t0085",
      "page": 90,
      "ordinal": 85,
      "text": "一个逻辑地址到物理地址的映射关系，相应的就",
      "top": 906.0,
      "left": 467.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p091-t0001",
      "page": 91,
      "ordinal": 1,
      "text": "是段表机制。",
      "top": 44.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p090-h02",
        "heading_id": "p090-h02",
        "block_id": "q-p090-h02-b001"
      }
    },
    {
      "id": "p091-t0002",
      "page": 91,
      "ordinal": 2,
      "text": "分页和分段有什区别",
      "top": 378.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01"
      }
    },
    {
      "id": "p091-t0005",
      "page": 91,
      "ordinal": 5,
      "text": "1. ",
      "top": 429.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b001"
      }
    },
    {
      "id": "p091-t0006",
      "page": 91,
      "ordinal": 6,
      "text": "分页对程序员是透明的，但是分段需要程序员显式划分每个段。",
      "top": 429.0,
      "left": 146.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b001"
      }
    },
    {
      "id": "p091-t0008",
      "page": 91,
      "ordinal": 8,
      "text": "2. ",
      "top": 460.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b002"
      }
    },
    {
      "id": "p091-t0009",
      "page": 91,
      "ordinal": 9,
      "text": "分页的地址空间是一维地址空间，分段是二维的。",
      "top": 460.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b002"
      }
    },
    {
      "id": "p091-t0011",
      "page": 91,
      "ordinal": 11,
      "text": "3. ",
      "top": 491.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b003"
      }
    },
    {
      "id": "p091-t0012",
      "page": 91,
      "ordinal": 12,
      "text": "页的大小不可变，段的大小可以动态改变。",
      "top": 491.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b003"
      }
    },
    {
      "id": "p091-t0014",
      "page": 91,
      "ordinal": 14,
      "text": "4. ",
      "top": 522.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b004"
      }
    },
    {
      "id": "p091-t0015",
      "page": 91,
      "ordinal": 15,
      "text": "分页主要用于实现虚拟内存，从而获得更大的地址空间；分段主要是为了使程序和数据可以被划分",
      "top": 522.0,
      "left": 146.0,
      "width": 629.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b004"
      }
    },
    {
      "id": "p091-t0016",
      "page": 91,
      "ordinal": 16,
      "text": "为逻辑上独立的地址空间并且有助于共享和保",
      "top": 545.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b004"
      }
    },
    {
      "id": "p091-t0018",
      "page": 91,
      "ordinal": 18,
      "text": "护。",
      "top": 545.0,
      "left": 442.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h01",
        "heading_id": "p091-h01",
        "block_id": "q-p091-h01-b004"
      }
    },
    {
      "id": "p091-t0020",
      "page": 91,
      "ordinal": 20,
      "text": "什么是交换空间",
      "top": 579.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02"
      }
    },
    {
      "id": "p091-t0024",
      "page": 91,
      "ordinal": 24,
      "text": "操作系统把物理内存",
      "top": 630.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0025",
      "page": 91,
      "ordinal": 25,
      "text": "(physical RAM)",
      "top": 630.0,
      "left": 247.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0026",
      "page": 91,
      "ordinal": 26,
      "text": "分成一块一块的小内存，每一块内存被称",
      "top": 630.0,
      "left": 346.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0028",
      "page": 91,
      "ordinal": 28,
      "text": "为页",
      "top": 630.0,
      "left": 613.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0029",
      "page": 91,
      "ordinal": 29,
      "text": "(page)",
      "top": 630.0,
      "left": 642.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0030",
      "page": 91,
      "ordinal": 30,
      "text": "。当内存资源",
      "top": 630.0,
      "left": 684.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0031",
      "page": 91,
      "ordinal": 31,
      "text": "不足时，",
      "top": 653.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0032",
      "page": 91,
      "ordinal": 32,
      "text": "Linux ",
      "top": 653.0,
      "left": 170.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0033",
      "page": 91,
      "ordinal": 33,
      "text": "把某些页的内容转移至硬盘上的一块",
      "top": 653.0,
      "left": 211.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0035",
      "page": 91,
      "ordinal": 35,
      "text": "空间上，以释放内存空间。硬盘上的那块空间叫做",
      "top": 653.0,
      "left": 449.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0036",
      "page": 91,
      "ordinal": 36,
      "text": "交换空间",
      "top": 677.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0037",
      "page": 91,
      "ordinal": 37,
      "text": "(swap space),",
      "top": 677.0,
      "left": 170.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0038",
      "page": 91,
      "ordinal": 38,
      "text": "而这",
      "top": 677.0,
      "left": 261.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0040",
      "page": 91,
      "ordinal": 40,
      "text": "一过程被称为交换",
      "top": 677.0,
      "left": 294.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0041",
      "page": 91,
      "ordinal": 41,
      "text": "(swapping)",
      "top": 677.0,
      "left": 411.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0042",
      "page": 91,
      "ordinal": 42,
      "text": "。物理内存和交换空间的总容量就是虚拟内存",
      "top": 677.0,
      "left": 485.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0043",
      "page": 91,
      "ordinal": 43,
      "text": "的",
      "top": 701.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0045",
      "page": 91,
      "ordinal": 45,
      "text": "可用容量。",
      "top": 701.0,
      "left": 130.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0047",
      "page": 91,
      "ordinal": 47,
      "text": "用途：",
      "top": 724.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b001"
      }
    },
    {
      "id": "p091-t0049",
      "page": 91,
      "ordinal": 49,
      "text": "1. ",
      "top": 759.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b002"
      }
    },
    {
      "id": "p091-t0050",
      "page": 91,
      "ordinal": 50,
      "text": "物理内存不足时一些不常用的页可以被交换出去，腾给系统。",
      "top": 759.0,
      "left": 146.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b002"
      }
    },
    {
      "id": "p091-t0052",
      "page": 91,
      "ordinal": 52,
      "text": "2. ",
      "top": 789.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b003"
      }
    },
    {
      "id": "p091-t0053",
      "page": 91,
      "ordinal": 53,
      "text": "程序启动时很多内存页被用来初始化，之后便不再需要，可以交换出去",
      "top": 789.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h02",
        "heading_id": "p091-h02",
        "block_id": "q-p091-h02-b003"
      }
    },
    {
      "id": "p091-t0055",
      "page": 91,
      "ordinal": 55,
      "text": "页面替换算法有哪些",
      "top": 824.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03"
      }
    },
    {
      "id": "p091-t0059",
      "page": 91,
      "ordinal": 59,
      "text": "在程序运行过程中，如果要访问的页面不在内存中，就发生缺页中断从而将该",
      "top": 875.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b001"
      }
    },
    {
      "id": "p091-t0061",
      "page": 91,
      "ordinal": 61,
      "text": "页调入内存中。此时如果",
      "top": 875.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b001"
      }
    },
    {
      "id": "p091-t0062",
      "page": 91,
      "ordinal": 62,
      "text": "内存已无空闲空间，系统必须从内存中调出一个页面",
      "top": 897.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b001"
      }
    },
    {
      "id": "p091-t0064",
      "page": 91,
      "ordinal": 64,
      "text": "到磁盘对换区中来腾出空间。",
      "top": 897.0,
      "left": 452.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b001"
      }
    },
    {
      "id": "p091-t0066",
      "page": 91,
      "ordinal": 66,
      "text": "包括以下算法：",
      "top": 921.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b001"
      }
    },
    {
      "id": "p091-t0068",
      "page": 91,
      "ordinal": 68,
      "text": "1. ",
      "top": 956.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b002"
      }
    },
    {
      "id": "p091-t0069",
      "page": 91,
      "ordinal": 69,
      "text": "最佳算法：所选择的被换出的页面将是最长时间内不再被访问，通常可以",
      "top": 956.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b002"
      }
    },
    {
      "id": "p091-t0071",
      "page": 91,
      "ordinal": 71,
      "text": "保证获得最低的缺页率。",
      "top": 956.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b002"
      }
    },
    {
      "id": "p091-t0072",
      "page": 91,
      "ordinal": 72,
      "text": "这是一种理论上的算法，因为无法知道一个页面",
      "top": 980.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b002"
      }
    },
    {
      "id": "p091-t0074",
      "page": 91,
      "ordinal": 74,
      "text": "多长时间不再被访问。",
      "top": 980.0,
      "left": 456.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b002"
      }
    },
    {
      "id": "p091-t0076",
      "page": 91,
      "ordinal": 76,
      "text": "2. ",
      "top": 1011.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b003"
      }
    },
    {
      "id": "p091-t0077",
      "page": 91,
      "ordinal": 77,
      "text": "先进先出：选择换出的页面是最先进入的页面。该算法将那些经常被访问",
      "top": 1011.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b003"
      }
    },
    {
      "id": "p091-t0079",
      "page": 91,
      "ordinal": 79,
      "text": "的页面也被换出，从而使",
      "top": 1011.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b003"
      }
    },
    {
      "id": "p091-t0080",
      "page": 91,
      "ordinal": 80,
      "text": "缺页率升高。",
      "top": 1034.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b003"
      }
    },
    {
      "id": "p091-t0082",
      "page": 91,
      "ordinal": 82,
      "text": "3. LRU",
      "top": 1065.0,
      "left": 129.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0083",
      "page": 91,
      "ordinal": 83,
      "text": "：虽然无法知道将来要使用的页面情况，但是可以知道过去使用页面",
      "top": 1065.0,
      "left": 173.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0085",
      "page": 91,
      "ordinal": 85,
      "text": "的情况。",
      "top": 1065.0,
      "left": 615.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0086",
      "page": 91,
      "ordinal": 86,
      "text": "LRU ",
      "top": 1065.0,
      "left": 674.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0087",
      "page": 91,
      "ordinal": 87,
      "text": "将最近最久",
      "top": 1065.0,
      "left": 705.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0088",
      "page": 91,
      "ordinal": 88,
      "text": "未使用的页面换出。为了实现",
      "top": 1088.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0089",
      "page": 91,
      "ordinal": 89,
      "text": " LRU",
      "top": 1088.0,
      "left": 336.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0090",
      "page": 91,
      "ordinal": 90,
      "text": "，需要在内存中",
      "top": 1088.0,
      "left": 367.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0092",
      "page": 91,
      "ordinal": 92,
      "text": "维护一个所有页面的链表。当一个页面被访问",
      "top": 1088.0,
      "left": 473.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0093",
      "page": 91,
      "ordinal": 93,
      "text": "时，将这个页面移到链表表",
      "top": 1111.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0095",
      "page": 91,
      "ordinal": 95,
      "text": "头。这样就能保证链表表尾的页面是最近最久未访问的。因为每次访问",
      "top": 1111.0,
      "left": 325.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0096",
      "page": 91,
      "ordinal": 96,
      "text": "都",
      "top": 1135.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0098",
      "page": 91,
      "ordinal": 98,
      "text": "需要更新链表，因此这种方式实现的",
      "top": 1135.0,
      "left": 164.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0099",
      "page": 91,
      "ordinal": 99,
      "text": " LRU ",
      "top": 1135.0,
      "left": 398.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p091-t0100",
      "page": 91,
      "ordinal": 100,
      "text": "代价很高。",
      "top": 1135.0,
      "left": 433.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b004"
      }
    },
    {
      "id": "p092-t0001",
      "page": 92,
      "ordinal": 1,
      "text": "4. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0002",
      "page": 92,
      "ordinal": 2,
      "text": "时钟算法：时钟算法使用环形链表将页面连接起来，再使用一个指针指向",
      "top": 44.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0004",
      "page": 92,
      "ordinal": 4,
      "text": "最老的页面。它将整个环",
      "top": 44.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0005",
      "page": 92,
      "ordinal": 5,
      "text": "形链表的每一个页面做一个标记，如果标记是",
      "top": 67.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0006",
      "page": 92,
      "ordinal": 6,
      "text": " 0",
      "top": 67.0,
      "left": 438.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0007",
      "page": 92,
      "ordinal": 7,
      "text": "，",
      "top": 67.0,
      "left": 450.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0009",
      "page": 92,
      "ordinal": 9,
      "text": "那么暂时就不会被替换，然后时钟算法遍历整个",
      "top": 67.0,
      "left": 469.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0010",
      "page": 92,
      "ordinal": 10,
      "text": "环，遇到标记为",
      "top": 91.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0011",
      "page": 92,
      "ordinal": 11,
      "text": " 1 ",
      "top": 91.0,
      "left": 248.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0012",
      "page": 92,
      "ordinal": 12,
      "text": "的就替",
      "top": 91.0,
      "left": 264.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0014",
      "page": 92,
      "ordinal": 14,
      "text": "换，否则将标记为",
      "top": 91.0,
      "left": 312.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0015",
      "page": 92,
      "ordinal": 15,
      "text": " 0 ",
      "top": 91.0,
      "left": 429.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0016",
      "page": 92,
      "ordinal": 16,
      "text": "的标记为",
      "top": 91.0,
      "left": 444.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0017",
      "page": 92,
      "ordinal": 17,
      "text": " 1 ",
      "top": 91.0,
      "left": 503.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p091-h03",
        "heading_id": "p091-h03",
        "block_id": "q-p091-h03-b005"
      }
    },
    {
      "id": "p092-t0018",
      "page": 92,
      "ordinal": 18,
      "text": "什么是缓冲区溢出？有什么危害？",
      "top": 124.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01"
      }
    },
    {
      "id": "p092-t0022",
      "page": 92,
      "ordinal": 22,
      "text": "缓冲区溢出是指当计算机向缓冲区填充数据时超出了缓冲区本身的容量，溢出",
      "top": 175.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b001"
      }
    },
    {
      "id": "p092-t0024",
      "page": 92,
      "ordinal": 24,
      "text": "的数据覆盖在合法数据",
      "top": 175.0,
      "left": 617.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b001"
      }
    },
    {
      "id": "p092-t0025",
      "page": 92,
      "ordinal": 25,
      "text": "上。",
      "top": 199.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b001"
      }
    },
    {
      "id": "p092-t0027",
      "page": 92,
      "ordinal": 27,
      "text": "危害有以下两点：",
      "top": 199.0,
      "left": 145.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b001"
      }
    },
    {
      "id": "p092-t0029",
      "page": 92,
      "ordinal": 29,
      "text": "1. ",
      "top": 234.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b002"
      }
    },
    {
      "id": "p092-t0030",
      "page": 92,
      "ordinal": 30,
      "text": "程序崩溃，导致拒绝额服务",
      "top": 234.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b002"
      }
    },
    {
      "id": "p092-t0032",
      "page": 92,
      "ordinal": 32,
      "text": "2. ",
      "top": 265.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b003"
      }
    },
    {
      "id": "p092-t0033",
      "page": 92,
      "ordinal": 33,
      "text": "跳转并且执行一段恶意代码",
      "top": 265.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b003"
      }
    },
    {
      "id": "p092-t0035",
      "page": 92,
      "ordinal": 35,
      "text": "造成缓冲区溢出的主要原因是程序中没有仔细检查用户输入",
      "top": 300.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h01",
        "heading_id": "p092-h01",
        "block_id": "q-p092-h01-b004"
      }
    },
    {
      "id": "p092-t0037",
      "page": 92,
      "ordinal": 37,
      "text": "什么是虚拟内存",
      "top": 335.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02"
      }
    },
    {
      "id": "p092-t0040",
      "page": 92,
      "ordinal": 40,
      "text": "虚拟内存就是说，让物理内存扩充成更大的逻辑内存，从而让程序获得更多的",
      "top": 384.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0042",
      "page": 92,
      "ordinal": 42,
      "text": "可用内存。虚拟内存使用",
      "top": 384.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0043",
      "page": 92,
      "ordinal": 43,
      "text": "部分加载的技术，让一个进程或者资源的某些页面加",
      "top": 408.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0045",
      "page": 92,
      "ordinal": 45,
      "text": "载进内存，从而能够加载更多的进程，甚至能加载",
      "top": 408.0,
      "left": 452.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0046",
      "page": 92,
      "ordinal": 46,
      "text": "比内存大的进程，这样看起",
      "top": 432.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0048",
      "page": 92,
      "ordinal": 48,
      "text": "来好像内存变大了，这部分内存其实包含了磁盘或者硬盘，并且就叫做虚拟",
      "top": 432.0,
      "left": 291.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0049",
      "page": 92,
      "ordinal": 49,
      "text": "内存",
      "top": 455.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h02",
        "heading_id": "p092-h02",
        "block_id": "q-p092-h02-b001"
      }
    },
    {
      "id": "p092-t0051",
      "page": 92,
      "ordinal": 51,
      "text": "讲一讲",
      "top": 490.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03"
      }
    },
    {
      "id": "p092-t0052",
      "page": 92,
      "ordinal": 52,
      "text": " IO ",
      "top": 490.0,
      "left": 189.0,
      "width": 42.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03"
      }
    },
    {
      "id": "p092-t0053",
      "page": 92,
      "ordinal": 53,
      "text": "多路复用？",
      "top": 490.0,
      "left": 231.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03"
      }
    },
    {
      "id": "p092-t0056",
      "page": 92,
      "ordinal": 56,
      "text": " IO ",
      "top": 540.0,
      "left": 112.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0057",
      "page": 92,
      "ordinal": 57,
      "text": "多路复用是指内核一旦发现进程指定的一个或者多个",
      "top": 540.0,
      "left": 135.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0058",
      "page": 92,
      "ordinal": 58,
      "text": " IO ",
      "top": 540.0,
      "left": 471.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0059",
      "page": 92,
      "ordinal": 59,
      "text": "条件准备读取，它",
      "top": 540.0,
      "left": 494.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0061",
      "page": 92,
      "ordinal": 61,
      "text": "就通知该进程。",
      "top": 540.0,
      "left": 615.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0062",
      "page": 92,
      "ordinal": 62,
      "text": "IO ",
      "top": 540.0,
      "left": 717.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0063",
      "page": 92,
      "ordinal": 63,
      "text": "多路复",
      "top": 540.0,
      "left": 737.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0064",
      "page": 92,
      "ordinal": 64,
      "text": "用适用如下场合：",
      "top": 563.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b001"
      }
    },
    {
      "id": "p092-t0066",
      "page": 92,
      "ordinal": 66,
      "text": "1. ",
      "top": 598.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b002"
      }
    },
    {
      "id": "p092-t0067",
      "page": 92,
      "ordinal": 67,
      "text": "当客户处理多个描述字时（一般是交互式输入和网络套接口），必须使用",
      "top": 598.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b002"
      }
    },
    {
      "id": "p092-t0068",
      "page": 92,
      "ordinal": 68,
      "text": " I/O ",
      "top": 598.0,
      "left": 614.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b002"
      }
    },
    {
      "id": "p092-t0069",
      "page": 92,
      "ordinal": 69,
      "text": "复用。",
      "top": 598.0,
      "left": 642.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b002"
      }
    },
    {
      "id": "p092-t0071",
      "page": 92,
      "ordinal": 71,
      "text": "2. ",
      "top": 630.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b003"
      }
    },
    {
      "id": "p092-t0072",
      "page": 92,
      "ordinal": 72,
      "text": "当一个客户同时处理多个套接口时，而这种情况是可能的，但很少出现。",
      "top": 630.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b003"
      }
    },
    {
      "id": "p092-t0074",
      "page": 92,
      "ordinal": 74,
      "text": "3. ",
      "top": 660.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0075",
      "page": 92,
      "ordinal": 75,
      "text": "如果一个",
      "top": 660.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0076",
      "page": 92,
      "ordinal": 76,
      "text": " TCP ",
      "top": 660.0,
      "left": 204.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0077",
      "page": 92,
      "ordinal": 77,
      "text": "服务器既要处理监听套接口，又要处理已连接套接口，一般",
      "top": 660.0,
      "left": 238.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0079",
      "page": 92,
      "ordinal": 79,
      "text": "也要用到",
      "top": 660.0,
      "left": 622.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0080",
      "page": 92,
      "ordinal": 80,
      "text": " I/O ",
      "top": 660.0,
      "left": 680.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0081",
      "page": 92,
      "ordinal": 81,
      "text": "复用。",
      "top": 660.0,
      "left": 709.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b004"
      }
    },
    {
      "id": "p092-t0083",
      "page": 92,
      "ordinal": 83,
      "text": "4. ",
      "top": 690.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0084",
      "page": 92,
      "ordinal": 84,
      "text": "如果一个服务器即要处理",
      "top": 690.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0085",
      "page": 92,
      "ordinal": 85,
      "text": " TCP",
      "top": 690.0,
      "left": 306.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0086",
      "page": 92,
      "ordinal": 86,
      "text": "，又要处理",
      "top": 690.0,
      "left": 336.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0087",
      "page": 92,
      "ordinal": 87,
      "text": " UDP",
      "top": 690.0,
      "left": 409.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0088",
      "page": 92,
      "ordinal": 88,
      "text": "，一般要使用",
      "top": 690.0,
      "left": 443.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0089",
      "page": 92,
      "ordinal": 89,
      "text": " I/O ",
      "top": 690.0,
      "left": 531.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0090",
      "page": 92,
      "ordinal": 90,
      "text": "复用。",
      "top": 690.0,
      "left": 560.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b005"
      }
    },
    {
      "id": "p092-t0092",
      "page": 92,
      "ordinal": 92,
      "text": "5. ",
      "top": 722.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b006"
      }
    },
    {
      "id": "p092-t0093",
      "page": 92,
      "ordinal": 93,
      "text": "如果一个服务器要处理多个服务或多个协议，一般要使用",
      "top": 722.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b006"
      }
    },
    {
      "id": "p092-t0094",
      "page": 92,
      "ordinal": 94,
      "text": " I/O ",
      "top": 722.0,
      "left": 511.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b006"
      }
    },
    {
      "id": "p092-t0095",
      "page": 92,
      "ordinal": 95,
      "text": "复用。",
      "top": 722.0,
      "left": 540.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b006"
      }
    },
    {
      "id": "p092-t0097",
      "page": 92,
      "ordinal": 97,
      "text": "6. ",
      "top": 752.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0098",
      "page": 92,
      "ordinal": 98,
      "text": "与多进程和多线程技术相比，",
      "top": 752.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0099",
      "page": 92,
      "ordinal": 99,
      "text": "I/O ",
      "top": 752.0,
      "left": 336.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0100",
      "page": 92,
      "ordinal": 100,
      "text": "多路复用技术的最大优势是系统开销小，",
      "top": 752.0,
      "left": 360.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0102",
      "page": 92,
      "ordinal": 102,
      "text": "系统不必创建进程",
      "top": 752.0,
      "left": 627.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0103",
      "page": 92,
      "ordinal": 103,
      "text": "/",
      "top": 752.0,
      "left": 744.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0104",
      "page": 92,
      "ordinal": 104,
      "text": "线",
      "top": 752.0,
      "left": 750.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0105",
      "page": 92,
      "ordinal": 105,
      "text": "程，也不必维护这些进程",
      "top": 776.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0106",
      "page": 92,
      "ordinal": 106,
      "text": "/",
      "top": 776.0,
      "left": 306.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0107",
      "page": 92,
      "ordinal": 107,
      "text": "线程，从而大大减小了系",
      "top": 776.0,
      "left": 312.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0109",
      "page": 92,
      "ordinal": 109,
      "text": "统的开销",
      "top": 776.0,
      "left": 476.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h03",
        "heading_id": "p092-h03",
        "block_id": "q-p092-h03-b007"
      }
    },
    {
      "id": "p092-t0111",
      "page": 92,
      "ordinal": 111,
      "text": "硬链接和软链接有什么区别",
      "top": 809.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04"
      }
    },
    {
      "id": "p092-t0114",
      "page": 92,
      "ordinal": 114,
      "text": "1. ",
      "top": 860.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0115",
      "page": 92,
      "ordinal": 115,
      "text": "硬链接就是在目录下创建一个条目，记录着文件名与",
      "top": 860.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0116",
      "page": 92,
      "ordinal": 116,
      "text": " inode ",
      "top": 860.0,
      "left": 482.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0117",
      "page": 92,
      "ordinal": 117,
      "text": "编号，这个",
      "top": 860.0,
      "left": 528.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0118",
      "page": 92,
      "ordinal": 118,
      "text": " inode ",
      "top": 860.0,
      "left": 601.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0119",
      "page": 92,
      "ordinal": 119,
      "text": "就是源文件的",
      "top": 860.0,
      "left": 648.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0121",
      "page": 92,
      "ordinal": 121,
      "text": "inode",
      "top": 884.0,
      "left": 146.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0122",
      "page": 92,
      "ordinal": 122,
      "text": "。删除任意一个条目，文件还是存在，只要引用",
      "top": 884.0,
      "left": 184.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0124",
      "page": 92,
      "ordinal": 124,
      "text": "数量不为",
      "top": 884.0,
      "left": 495.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0125",
      "page": 92,
      "ordinal": 125,
      "text": " 0",
      "top": 884.0,
      "left": 554.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0126",
      "page": 92,
      "ordinal": 126,
      "text": "。但是硬链接有限制，它不能跨",
      "top": 884.0,
      "left": 566.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0127",
      "page": 92,
      "ordinal": 127,
      "text": "越文件系统，也不能对目录进行",
      "top": 908.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0129",
      "page": 92,
      "ordinal": 129,
      "text": "链接",
      "top": 908.0,
      "left": 354.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b001"
      }
    },
    {
      "id": "p092-t0131",
      "page": 92,
      "ordinal": 131,
      "text": "2. ",
      "top": 938.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0132",
      "page": 92,
      "ordinal": 132,
      "text": "符号链接文件保存着源文件所在的绝对路径，在读取时会定位到源文件",
      "top": 938.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0134",
      "page": 92,
      "ordinal": 134,
      "text": "上，可以理解为",
      "top": 938.0,
      "left": 603.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0135",
      "page": 92,
      "ordinal": 135,
      "text": " Windows ",
      "top": 938.0,
      "left": 705.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0136",
      "page": 92,
      "ordinal": 136,
      "text": "的快捷方式。当源文件被删除了，链接文件就打",
      "top": 962.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0138",
      "page": 92,
      "ordinal": 138,
      "text": "不开了。因为记录的是路径，所以可以为目录建立",
      "top": 962.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0139",
      "page": 92,
      "ordinal": 139,
      "text": "符号链接",
      "top": 985.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h04",
        "heading_id": "p092-h04",
        "block_id": "q-p092-h04-b002"
      }
    },
    {
      "id": "p092-t0141",
      "page": 92,
      "ordinal": 141,
      "text": "中断的处理过程",
      "top": 1020.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05"
      }
    },
    {
      "id": "p092-t0144",
      "page": 92,
      "ordinal": 144,
      "text": "1. ",
      "top": 1070.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b001"
      }
    },
    {
      "id": "p092-t0145",
      "page": 92,
      "ordinal": 145,
      "text": "保护现场：将当前执行程序的相关数据保存在寄存器中，然后入栈。",
      "top": 1070.0,
      "left": 146.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b001"
      }
    },
    {
      "id": "p092-t0147",
      "page": 92,
      "ordinal": 147,
      "text": "2. ",
      "top": 1101.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b002"
      }
    },
    {
      "id": "p092-t0148",
      "page": 92,
      "ordinal": 148,
      "text": "开中断：以便执行中断时能响应较高级别的中断请求。",
      "top": 1101.0,
      "left": 146.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b002"
      }
    },
    {
      "id": "p092-t0150",
      "page": 92,
      "ordinal": 150,
      "text": "3. ",
      "top": 1131.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b003"
      }
    },
    {
      "id": "p092-t0151",
      "page": 92,
      "ordinal": 151,
      "text": "中断处理",
      "top": 1131.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b003"
      }
    },
    {
      "id": "p092-t0153",
      "page": 92,
      "ordinal": 153,
      "text": "4. ",
      "top": 1162.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b004"
      }
    },
    {
      "id": "p092-t0154",
      "page": 92,
      "ordinal": 154,
      "text": "关中断：保证恢复现场时不被新中断打扰",
      "top": 1162.0,
      "left": 146.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b004"
      }
    },
    {
      "id": "p092-t0156",
      "page": 92,
      "ordinal": 156,
      "text": "5. ",
      "top": 1193.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b005"
      }
    },
    {
      "id": "p092-t0157",
      "page": 92,
      "ordinal": 157,
      "text": "恢复现场：从堆栈中按序取出程序数据，恢复中断前的执行状态",
      "top": 1193.0,
      "left": 146.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p092-h05",
        "heading_id": "p092-h05",
        "block_id": "q-p092-h05-b005"
      }
    },
    {
      "id": "p093-t0001",
      "page": 93,
      "ordinal": 1,
      "text": "中断和轮询有什么区别？",
      "top": 40.0,
      "left": 112.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01"
      }
    },
    {
      "id": "p093-t0004",
      "page": 93,
      "ordinal": 4,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0005",
      "page": 93,
      "ordinal": 5,
      "text": "轮询：",
      "top": 91.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0006",
      "page": 93,
      "ordinal": 6,
      "text": "CPU ",
      "top": 91.0,
      "left": 189.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0007",
      "page": 93,
      "ordinal": 7,
      "text": "对特定设备轮流询问。中断：通过特定事件提醒",
      "top": 91.0,
      "left": 222.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0008",
      "page": 93,
      "ordinal": 8,
      "text": " CPU",
      "top": 91.0,
      "left": 529.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0009",
      "page": 93,
      "ordinal": 9,
      "text": "。",
      "top": 91.0,
      "left": 561.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b001"
      }
    },
    {
      "id": "p093-t0011",
      "page": 93,
      "ordinal": 11,
      "text": "2. ",
      "top": 121.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0012",
      "page": 93,
      "ordinal": 12,
      "text": "轮询：效率低等待时间长，",
      "top": 121.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0013",
      "page": 93,
      "ordinal": 13,
      "text": "CPU ",
      "top": 121.0,
      "left": 321.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0014",
      "page": 93,
      "ordinal": 14,
      "text": "利用率不高。中断：容易遗漏问题，",
      "top": 121.0,
      "left": 353.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0015",
      "page": 93,
      "ordinal": 15,
      "text": "CPU ",
      "top": 121.0,
      "left": 587.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0016",
      "page": 93,
      "ordinal": 16,
      "text": "利",
      "top": 121.0,
      "left": 620.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0018",
      "page": 93,
      "ordinal": 18,
      "text": "用率不高",
      "top": 121.0,
      "left": 638.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h01",
        "heading_id": "p093-h01",
        "block_id": "q-p093-h01-b002"
      }
    },
    {
      "id": "p093-t0020",
      "page": 93,
      "ordinal": 20,
      "text": "请详细介绍一下",
      "top": 156.0,
      "left": 112.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02"
      }
    },
    {
      "id": "p093-t0021",
      "page": 93,
      "ordinal": 21,
      "text": " TCP ",
      "top": 156.0,
      "left": 291.0,
      "width": 60.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02"
      }
    },
    {
      "id": "p093-t0022",
      "page": 93,
      "ordinal": 22,
      "text": "的三次握手机制，为什么要三次握",
      "top": 156.0,
      "left": 351.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02"
      }
    },
    {
      "id": "p093-t0023",
      "page": 93,
      "ordinal": 23,
      "text": "手？",
      "top": 187.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02"
      }
    },
    {
      "id": "p093-t0026",
      "page": 93,
      "ordinal": 26,
      "text": "在讲三次握手之前首先要介绍",
      "top": 238.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0027",
      "page": 93,
      "ordinal": 27,
      "text": " TCP ",
      "top": 238.0,
      "left": 302.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0028",
      "page": 93,
      "ordinal": 28,
      "text": "报文中两个重要的字段：一个是序号字段，",
      "top": 238.0,
      "left": 336.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0030",
      "page": 93,
      "ordinal": 30,
      "text": "另一个是确认号字段，这",
      "top": 238.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0031",
      "page": 93,
      "ordinal": 31,
      "text": "两个字段将在握手阶段以及整个信息传输过程起到重",
      "top": 261.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0033",
      "page": 93,
      "ordinal": 33,
      "text": "要作用。",
      "top": 261.0,
      "left": 452.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0035",
      "page": 93,
      "ordinal": 35,
      "text": "第一步：客户端",
      "top": 284.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0036",
      "page": 93,
      "ordinal": 36,
      "text": " TCP ",
      "top": 284.0,
      "left": 214.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0037",
      "page": 93,
      "ordinal": 37,
      "text": "向服务端的",
      "top": 284.0,
      "left": 248.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0038",
      "page": 93,
      "ordinal": 38,
      "text": " TCP ",
      "top": 284.0,
      "left": 321.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0039",
      "page": 93,
      "ordinal": 39,
      "text": "发送一个不带额外数据的特殊",
      "top": 284.0,
      "left": 355.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0040",
      "page": 93,
      "ordinal": 40,
      "text": " TCP ",
      "top": 284.0,
      "left": 545.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0041",
      "page": 93,
      "ordinal": 41,
      "text": "报文",
      "top": 284.0,
      "left": 579.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0043",
      "page": 93,
      "ordinal": 43,
      "text": "段，该报文段的",
      "top": 284.0,
      "left": 612.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0044",
      "page": 93,
      "ordinal": 44,
      "text": " SYN ",
      "top": 284.0,
      "left": 714.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0045",
      "page": 93,
      "ordinal": 45,
      "text": "标志",
      "top": 284.0,
      "left": 749.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0046",
      "page": 93,
      "ordinal": 46,
      "text": "位会被置",
      "top": 308.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0047",
      "page": 93,
      "ordinal": 47,
      "text": " 1",
      "top": 308.0,
      "left": 170.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0048",
      "page": 93,
      "ordinal": 48,
      "text": "，所以把它称为",
      "top": 308.0,
      "left": 182.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0049",
      "page": 93,
      "ordinal": 49,
      "text": " SYN ",
      "top": 308.0,
      "left": 285.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0050",
      "page": 93,
      "ordinal": 50,
      "text": "报文段。这时客户端",
      "top": 308.0,
      "left": 320.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0052",
      "page": 93,
      "ordinal": 52,
      "text": "会选取一个初始序列号（假设为",
      "top": 308.0,
      "left": 455.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0053",
      "page": 93,
      "ordinal": 53,
      "text": " client_num",
      "top": 308.0,
      "left": 660.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0054",
      "page": 93,
      "ordinal": 54,
      "text": "），",
      "top": 308.0,
      "left": 738.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0055",
      "page": 93,
      "ordinal": 55,
      "text": "并将此编号放置在序号字段中。",
      "top": 332.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0057",
      "page": 93,
      "ordinal": 57,
      "text": "该报文段会被封装在一个",
      "top": 332.0,
      "left": 320.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0058",
      "page": 93,
      "ordinal": 58,
      "text": " IP ",
      "top": 332.0,
      "left": 481.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0059",
      "page": 93,
      "ordinal": 59,
      "text": "数据报中发送给服务器。",
      "top": 332.0,
      "left": 502.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0060",
      "page": 93,
      "ordinal": 60,
      "text": "第二步：服务器接收到",
      "top": 355.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0061",
      "page": 93,
      "ordinal": 61,
      "text": " SYN ",
      "top": 355.0,
      "left": 258.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0062",
      "page": 93,
      "ordinal": 62,
      "text": "报文段后，会为该",
      "top": 355.0,
      "left": 293.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0063",
      "page": 93,
      "ordinal": 63,
      "text": " TCP ",
      "top": 355.0,
      "left": 410.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0064",
      "page": 93,
      "ordinal": 64,
      "text": "分配缓存和变量，并发送",
      "top": 355.0,
      "left": 444.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0066",
      "page": 93,
      "ordinal": 66,
      "text": "允许连接的确认报文。在",
      "top": 355.0,
      "left": 608.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0067",
      "page": 93,
      "ordinal": 67,
      "text": "允许连接的报文中，",
      "top": 378.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0068",
      "page": 93,
      "ordinal": 68,
      "text": "SYN ",
      "top": 378.0,
      "left": 243.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0069",
      "page": 93,
      "ordinal": 69,
      "text": "标志位仍被置为",
      "top": 378.0,
      "left": 274.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0070",
      "page": 93,
      "ordinal": 70,
      "text": " 1",
      "top": 378.0,
      "left": 377.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0071",
      "page": 93,
      "ordinal": 71,
      "text": "，确认号字",
      "top": 378.0,
      "left": 389.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0073",
      "page": 93,
      "ordinal": 73,
      "text": "段填的是",
      "top": 378.0,
      "left": 466.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0074",
      "page": 93,
      "ordinal": 74,
      "text": " client_num + 1 ",
      "top": 378.0,
      "left": 524.0,
      "width": 107.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0075",
      "page": 93,
      "ordinal": 75,
      "text": "的值。最后服务端也会",
      "top": 378.0,
      "left": 631.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0076",
      "page": 93,
      "ordinal": 76,
      "text": "选取一个",
      "top": 401.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0077",
      "page": 93,
      "ordinal": 77,
      "text": " server_num ",
      "top": 401.0,
      "left": 170.0,
      "width": 88.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0078",
      "page": 93,
      "ordinal": 78,
      "text": "存放到",
      "top": 401.0,
      "left": 259.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0080",
      "page": 93,
      "ordinal": 80,
      "text": "序号字段中，这个报文段称为",
      "top": 401.0,
      "left": 306.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0081",
      "page": 93,
      "ordinal": 81,
      "text": " SYNACK ",
      "top": 401.0,
      "left": 496.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0082",
      "page": 93,
      "ordinal": 82,
      "text": "报文段。",
      "top": 401.0,
      "left": 559.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0084",
      "page": 93,
      "ordinal": 84,
      "text": "第三步：在接收到",
      "top": 425.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0085",
      "page": 93,
      "ordinal": 85,
      "text": " SYNACK ",
      "top": 425.0,
      "left": 229.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0086",
      "page": 93,
      "ordinal": 86,
      "text": "报文段后，客户端最后也要向服务端发送一个确认",
      "top": 425.0,
      "left": 291.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0088",
      "page": 93,
      "ordinal": 88,
      "text": "报文，这个报文和前两个",
      "top": 425.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0089",
      "page": 93,
      "ordinal": 89,
      "text": "不一样，",
      "top": 449.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0090",
      "page": 93,
      "ordinal": 90,
      "text": "SYN ",
      "top": 449.0,
      "left": 170.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0091",
      "page": 93,
      "ordinal": 91,
      "text": "标志位置",
      "top": 449.0,
      "left": 201.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0092",
      "page": 93,
      "ordinal": 92,
      "text": " 0",
      "top": 449.0,
      "left": 260.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0093",
      "page": 93,
      "ordinal": 93,
      "text": "，在确认号字段中填上",
      "top": 449.0,
      "left": 272.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0094",
      "page": 93,
      "ordinal": 94,
      "text": " server_num + 1 ",
      "top": 449.0,
      "left": 418.0,
      "width": 113.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0095",
      "page": 93,
      "ordinal": 95,
      "text": "的值，并且这个报文段可以携带数据。",
      "top": 449.0,
      "left": 531.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0096",
      "page": 93,
      "ordinal": 96,
      "text": "一旦完成这",
      "top": 472.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0097",
      "page": 93,
      "ordinal": 97,
      "text": " 3 ",
      "top": 472.0,
      "left": 185.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0098",
      "page": 93,
      "ordinal": 98,
      "text": "个步骤，",
      "top": 472.0,
      "left": 201.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0100",
      "page": 93,
      "ordinal": 100,
      "text": "客户端和服务器之间就可以相互发送包含数据的报文了。",
      "top": 472.0,
      "left": 263.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0102",
      "page": 93,
      "ordinal": 102,
      "text": "如果不是三次握手，二",
      "top": 472.0,
      "left": 633.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0103",
      "page": 93,
      "ordinal": 103,
      "text": "次两次的话，服务器就不知道客户端是否接收到了自己",
      "top": 495.0,
      "left": 112.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0105",
      "page": 93,
      "ordinal": 105,
      "text": "的",
      "top": 495.0,
      "left": 467.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0106",
      "page": 93,
      "ordinal": 106,
      "text": " SYNACK ",
      "top": 495.0,
      "left": 481.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0107",
      "page": 93,
      "ordinal": 107,
      "text": "报文段，从而无法建立连接；四次握",
      "top": 495.0,
      "left": 543.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0108",
      "page": 93,
      "ordinal": 108,
      "text": "手就显得多余了。",
      "top": 518.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h02",
        "heading_id": "p093-h02",
        "block_id": "q-p093-h02-b001"
      }
    },
    {
      "id": "p093-t0110",
      "page": 93,
      "ordinal": 110,
      "text": "讲一讲",
      "top": 553.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03"
      }
    },
    {
      "id": "p093-t0111",
      "page": 93,
      "ordinal": 111,
      "text": " SYN ",
      "top": 553.0,
      "left": 189.0,
      "width": 64.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03"
      }
    },
    {
      "id": "p093-t0112",
      "page": 93,
      "ordinal": 112,
      "text": "超时，洪泛攻击，以及解决策略",
      "top": 553.0,
      "left": 253.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03"
      }
    },
    {
      "id": "p093-t0115",
      "page": 93,
      "ordinal": 115,
      "text": "什么",
      "top": 604.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0116",
      "page": 93,
      "ordinal": 116,
      "text": " SYN ",
      "top": 604.0,
      "left": 141.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0117",
      "page": 93,
      "ordinal": 117,
      "text": "是洪泛攻击？",
      "top": 604.0,
      "left": 176.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0119",
      "page": 93,
      "ordinal": 119,
      "text": "在",
      "top": 604.0,
      "left": 267.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0120",
      "page": 93,
      "ordinal": 120,
      "text": " TCP ",
      "top": 604.0,
      "left": 282.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0121",
      "page": 93,
      "ordinal": 121,
      "text": "的三次握手机制的第一步中，客户端会向服务",
      "top": 604.0,
      "left": 316.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0123",
      "page": 93,
      "ordinal": 123,
      "text": "器发送",
      "top": 604.0,
      "left": 612.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0124",
      "page": 93,
      "ordinal": 124,
      "text": " SYN ",
      "top": 604.0,
      "left": 656.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0125",
      "page": 93,
      "ordinal": 125,
      "text": "报文段。服务",
      "top": 604.0,
      "left": 691.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0126",
      "page": 93,
      "ordinal": 126,
      "text": "器接收到",
      "top": 627.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0127",
      "page": 93,
      "ordinal": 127,
      "text": " SYN ",
      "top": 627.0,
      "left": 170.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0128",
      "page": 93,
      "ordinal": 128,
      "text": "报文段后会为该",
      "top": 627.0,
      "left": 205.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0129",
      "page": 93,
      "ordinal": 129,
      "text": " TCP ",
      "top": 627.0,
      "left": 307.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0130",
      "page": 93,
      "ordinal": 130,
      "text": "分配缓存和变量，",
      "top": 627.0,
      "left": 341.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0132",
      "page": 93,
      "ordinal": 132,
      "text": "如果攻击分子大量地往服务器发送",
      "top": 627.0,
      "left": 462.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0133",
      "page": 93,
      "ordinal": 133,
      "text": " SYN ",
      "top": 627.0,
      "left": 681.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0134",
      "page": 93,
      "ordinal": 134,
      "text": "报文段，",
      "top": 627.0,
      "left": 716.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0135",
      "page": 93,
      "ordinal": 135,
      "text": "服务器的连接资源终将被耗尽，",
      "top": 650.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0137",
      "page": 93,
      "ordinal": 137,
      "text": "导致内存溢出无法继续服务。",
      "top": 650.0,
      "left": 320.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0139",
      "page": 93,
      "ordinal": 139,
      "text": "解决策略：",
      "top": 650.0,
      "left": 514.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0141",
      "page": 93,
      "ordinal": 141,
      "text": "当服务器接受到",
      "top": 650.0,
      "left": 591.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0142",
      "page": 93,
      "ordinal": 142,
      "text": " SYN ",
      "top": 650.0,
      "left": 694.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0143",
      "page": 93,
      "ordinal": 143,
      "text": "报文段",
      "top": 650.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0144",
      "page": 93,
      "ordinal": 144,
      "text": "时，不直接为该",
      "top": 674.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0145",
      "page": 93,
      "ordinal": 145,
      "text": " TCP ",
      "top": 674.0,
      "left": 214.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0146",
      "page": 93,
      "ordinal": 146,
      "text": "分配资源，而只",
      "top": 674.0,
      "left": 248.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0148",
      "page": 93,
      "ordinal": 148,
      "text": "是打开一个半开的套接字。接着会使用",
      "top": 674.0,
      "left": 354.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0149",
      "page": 93,
      "ordinal": 149,
      "text": " SYN ",
      "top": 674.0,
      "left": 603.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0150",
      "page": 93,
      "ordinal": 150,
      "text": "报文段的源",
      "top": 674.0,
      "left": 637.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0151",
      "page": 93,
      "ordinal": 151,
      "text": " Id",
      "top": 674.0,
      "left": 711.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0152",
      "page": 93,
      "ordinal": 152,
      "text": "，目的",
      "top": 674.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0154",
      "page": 93,
      "ordinal": 154,
      "text": "Id",
      "top": 697.0,
      "left": 112.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0155",
      "page": 93,
      "ordinal": 155,
      "text": "，端口号",
      "top": 697.0,
      "left": 125.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0157",
      "page": 93,
      "ordinal": 157,
      "text": "以及只有服务器自己知道的一个秘密函数生成一个",
      "top": 697.0,
      "left": 187.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0158",
      "page": 93,
      "ordinal": 158,
      "text": " cookie",
      "top": 697.0,
      "left": 509.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0159",
      "page": 93,
      "ordinal": 159,
      "text": "，并把",
      "top": 697.0,
      "left": 557.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0160",
      "page": 93,
      "ordinal": 160,
      "text": " cookie ",
      "top": 697.0,
      "left": 601.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0161",
      "page": 93,
      "ordinal": 161,
      "text": "作为",
      "top": 697.0,
      "left": 653.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0163",
      "page": 93,
      "ordinal": 163,
      "text": "序列号响应给",
      "top": 697.0,
      "left": 686.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0164",
      "page": 93,
      "ordinal": 164,
      "text": "客户端。",
      "top": 721.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0166",
      "page": 93,
      "ordinal": 166,
      "text": "如果客户端是正常建立连接，将会返回一个确认字段为",
      "top": 721.0,
      "left": 174.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0167",
      "page": 93,
      "ordinal": 167,
      "text": " cookie + 1 ",
      "top": 721.0,
      "left": 525.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0168",
      "page": 93,
      "ordinal": 168,
      "text": "的报文段。",
      "top": 721.0,
      "left": 601.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0170",
      "page": 93,
      "ordinal": 170,
      "text": "接下来服务器会",
      "top": 721.0,
      "left": 678.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0171",
      "page": 93,
      "ordinal": 171,
      "text": "根据确认报文的源",
      "top": 744.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0172",
      "page": 93,
      "ordinal": 172,
      "text": " Id",
      "top": 744.0,
      "left": 229.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0173",
      "page": 93,
      "ordinal": 173,
      "text": "，目的",
      "top": 744.0,
      "left": 246.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0174",
      "page": 93,
      "ordinal": 174,
      "text": " Id",
      "top": 744.0,
      "left": 289.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0175",
      "page": 93,
      "ordinal": 175,
      "text": "，端口号以及秘密函数计算出一",
      "top": 744.0,
      "left": 306.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0177",
      "page": 93,
      "ordinal": 177,
      "text": "个结果，如果结果的值",
      "top": 744.0,
      "left": 515.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0178",
      "page": 93,
      "ordinal": 178,
      "text": " + 1 ",
      "top": 744.0,
      "left": 661.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0179",
      "page": 93,
      "ordinal": 179,
      "text": "等于确认字段",
      "top": 744.0,
      "left": 689.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0180",
      "page": 93,
      "ordinal": 180,
      "text": "的值，则证明是刚刚请求连接的客户",
      "top": 767.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0182",
      "page": 93,
      "ordinal": 182,
      "text": "端，这时候才为该",
      "top": 767.0,
      "left": 350.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0183",
      "page": 93,
      "ordinal": 183,
      "text": " TCP ",
      "top": 767.0,
      "left": 467.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0184",
      "page": 93,
      "ordinal": 184,
      "text": "分配资源",
      "top": 767.0,
      "left": 500.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0186",
      "page": 93,
      "ordinal": 186,
      "text": "这样一来就不会为恶意攻击的",
      "top": 767.0,
      "left": 563.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0188",
      "page": 93,
      "ordinal": 188,
      "text": "SYN ",
      "top": 791.0,
      "left": 112.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0189",
      "page": 93,
      "ordinal": 189,
      "text": "报文段分配资源空间，避免了攻击",
      "top": 791.0,
      "left": 143.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h03",
        "heading_id": "p093-h03",
        "block_id": "q-p093-h03-b001"
      }
    },
    {
      "id": "p093-t0191",
      "page": 93,
      "ordinal": 191,
      "text": "详细介绍一下",
      "top": 825.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0192",
      "page": 93,
      "ordinal": 192,
      "text": " TCP ",
      "top": 825.0,
      "left": 265.0,
      "width": 60.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0193",
      "page": 93,
      "ordinal": 193,
      "text": "的四次挥手机制，为什么要有",
      "top": 825.0,
      "left": 326.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0195",
      "page": 93,
      "ordinal": 195,
      "text": "TIME_WAIT ",
      "top": 857.0,
      "left": 112.0,
      "width": 145.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0196",
      "page": 93,
      "ordinal": 196,
      "text": "状态，为什么需要四次握手？服务器出现了大",
      "top": 857.0,
      "left": 256.0,
      "width": 512.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0197",
      "page": 93,
      "ordinal": 197,
      "text": "量",
      "top": 888.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0198",
      "page": 93,
      "ordinal": 198,
      "text": " CLOSE_WAIT ",
      "top": 888.0,
      "left": 137.0,
      "width": 169.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0199",
      "page": 93,
      "ordinal": 199,
      "text": "状态如何解决？",
      "top": 888.0,
      "left": 306.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04"
      }
    },
    {
      "id": "p093-t0203",
      "page": 93,
      "ordinal": 203,
      "text": "当客户端要服务器断开连接时，客户端",
      "top": 939.0,
      "left": 116.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0204",
      "page": 93,
      "ordinal": 204,
      "text": " TCP ",
      "top": 939.0,
      "left": 364.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0205",
      "page": 93,
      "ordinal": 205,
      "text": "会向服务器发送一个特殊的报文段，",
      "top": 939.0,
      "left": 398.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0207",
      "page": 93,
      "ordinal": 207,
      "text": "该报文段的",
      "top": 939.0,
      "left": 636.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0208",
      "page": 93,
      "ordinal": 208,
      "text": " FIN ",
      "top": 939.0,
      "left": 709.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0209",
      "page": 93,
      "ordinal": 209,
      "text": "标志",
      "top": 939.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0210",
      "page": 93,
      "ordinal": 210,
      "text": "位会被置",
      "top": 962.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0211",
      "page": 93,
      "ordinal": 211,
      "text": " 1",
      "top": 962.0,
      "left": 170.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0212",
      "page": 93,
      "ordinal": 212,
      "text": "，接着服务器会向客户端发送一个确认报文段。",
      "top": 962.0,
      "left": 182.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0214",
      "page": 93,
      "ordinal": 214,
      "text": "然后服务器也会客户端发送一个",
      "top": 962.0,
      "left": 493.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0215",
      "page": 93,
      "ordinal": 215,
      "text": " FIN ",
      "top": 962.0,
      "left": 698.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0216",
      "page": 93,
      "ordinal": 216,
      "text": "标志位",
      "top": 962.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0217",
      "page": 93,
      "ordinal": 217,
      "text": "为",
      "top": 985.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0218",
      "page": 93,
      "ordinal": 218,
      "text": " 1 ",
      "top": 985.0,
      "left": 126.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0219",
      "page": 93,
      "ordinal": 219,
      "text": "的终止报文段，随后客户端回",
      "top": 985.0,
      "left": 142.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0221",
      "page": 93,
      "ordinal": 221,
      "text": "送一个确认报文段，服务器立即断开连接。客户端等待一段时间后也",
      "top": 985.0,
      "left": 336.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0222",
      "page": 93,
      "ordinal": 222,
      "text": "断开连接。",
      "top": 1009.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0224",
      "page": 93,
      "ordinal": 224,
      "text": "其实四次挥手的过程是很容易理解的，由于",
      "top": 1009.0,
      "left": 189.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0225",
      "page": 93,
      "ordinal": 225,
      "text": " TCP ",
      "top": 1009.0,
      "left": 467.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0226",
      "page": 93,
      "ordinal": 226,
      "text": "协议是全双工的，也就是说客",
      "top": 1009.0,
      "left": 500.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0228",
      "page": 93,
      "ordinal": 228,
      "text": "户端和服务端",
      "top": 1009.0,
      "left": 694.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0229",
      "page": 93,
      "ordinal": 229,
      "text": "都可以发起断开连接。两边各发起一次断开连接的申请，加上各",
      "top": 1032.0,
      "left": 112.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0231",
      "page": 93,
      "ordinal": 231,
      "text": "自的两次确认，看起来就像执行了四次",
      "top": 1032.0,
      "left": 525.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0232",
      "page": 93,
      "ordinal": 232,
      "text": "挥手。",
      "top": 1056.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0234",
      "page": 93,
      "ordinal": 234,
      "text": "为什么要有",
      "top": 1056.0,
      "left": 159.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0235",
      "page": 93,
      "ordinal": 235,
      "text": " TIME_WAIT ",
      "top": 1056.0,
      "left": 233.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0236",
      "page": 93,
      "ordinal": 236,
      "text": "状态？因为客户端最后向服务器发送的确认",
      "top": 1056.0,
      "left": 315.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0237",
      "page": 93,
      "ordinal": 237,
      "text": " ACK ",
      "top": 1056.0,
      "left": 593.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0238",
      "page": 93,
      "ordinal": 238,
      "text": "是有",
      "top": 1056.0,
      "left": 628.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0240",
      "page": 93,
      "ordinal": 240,
      "text": "可能丢失的，当出",
      "top": 1056.0,
      "left": 661.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0241",
      "page": 93,
      "ordinal": 241,
      "text": "现超时，服务端会再次发送",
      "top": 1079.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0242",
      "page": 93,
      "ordinal": 242,
      "text": " FIN ",
      "top": 1079.0,
      "left": 287.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0243",
      "page": 93,
      "ordinal": 243,
      "text": "报文段，如果客户端已经关",
      "top": 1079.0,
      "left": 317.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0245",
      "page": 93,
      "ordinal": 245,
      "text": "闭了就收不到了。还有一点是避免新旧连接",
      "top": 1079.0,
      "left": 497.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0246",
      "page": 93,
      "ordinal": 246,
      "text": "混杂。",
      "top": 1102.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0248",
      "page": 93,
      "ordinal": 248,
      "text": "大量",
      "top": 1102.0,
      "left": 159.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0249",
      "page": 93,
      "ordinal": 249,
      "text": " CLOSE_WAIT ",
      "top": 1102.0,
      "left": 189.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0250",
      "page": 93,
      "ordinal": 250,
      "text": "表示程序出现了问题，对方的",
      "top": 1102.0,
      "left": 282.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0251",
      "page": 93,
      "ordinal": 251,
      "text": " socket ",
      "top": 1102.0,
      "left": 472.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0252",
      "page": 93,
      "ordinal": 252,
      "text": "已经关闭连接，而我",
      "top": 1102.0,
      "left": 524.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0254",
      "page": 93,
      "ordinal": 254,
      "text": "方忙于读或写没有",
      "top": 1102.0,
      "left": 659.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0255",
      "page": 93,
      "ordinal": 255,
      "text": "及时关闭连接，需要检查代码，特别是释放资源的代码，或",
      "top": 1126.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p093-t0257",
      "page": 93,
      "ordinal": 257,
      "text": "者是处理请求的线程配置",
      "top": 1126.0,
      "left": 496.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/11-linux-network-os#q-p093-h04",
        "heading_id": "p093-h04",
        "block_id": "q-p093-h04-b001"
      }
    },
    {
      "id": "p094-t0001",
      "page": 94,
      "ordinal": 1,
      "text": "消息队列",
      "top": 39.0,
      "left": 112.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h01"
      }
    },
    {
      "id": "p094-t0003",
      "page": 94,
      "ordinal": 3,
      "text": "Kafka ",
      "top": 95.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02"
      }
    },
    {
      "id": "p094-t0004",
      "page": 94,
      "ordinal": 4,
      "text": "是什么？主要应用场景有哪些？",
      "top": 95.0,
      "left": 192.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02"
      }
    },
    {
      "id": "p094-t0007",
      "page": 94,
      "ordinal": 7,
      "text": "Kafka ",
      "top": 146.0,
      "left": 112.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b001"
      }
    },
    {
      "id": "p094-t0008",
      "page": 94,
      "ordinal": 8,
      "text": "是一个分布式流式处理平台。",
      "top": 146.0,
      "left": 153.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b001"
      }
    },
    {
      "id": "p094-t0010",
      "page": 94,
      "ordinal": 10,
      "text": "流平台具有三个关键功能：",
      "top": 146.0,
      "left": 347.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b001"
      }
    },
    {
      "id": "p094-t0012",
      "page": 94,
      "ordinal": 12,
      "text": "1. ",
      "top": 181.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b002"
      }
    },
    {
      "id": "p094-t0013",
      "page": 94,
      "ordinal": 13,
      "text": "消息队列：发布和订阅消息流，这个功能类似于消息队列，这也是",
      "top": 181.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b002"
      }
    },
    {
      "id": "p094-t0014",
      "page": 94,
      "ordinal": 14,
      "text": " Kafka ",
      "top": 181.0,
      "left": 570.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b002"
      }
    },
    {
      "id": "p094-t0015",
      "page": 94,
      "ordinal": 15,
      "text": "也被归类为消息队列的原",
      "top": 181.0,
      "left": 615.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b002"
      }
    },
    {
      "id": "p094-t0016",
      "page": 94,
      "ordinal": 16,
      "text": "因。",
      "top": 204.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b002"
      }
    },
    {
      "id": "p094-t0018",
      "page": 94,
      "ordinal": 18,
      "text": "2. ",
      "top": 235.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b003"
      }
    },
    {
      "id": "p094-t0019",
      "page": 94,
      "ordinal": 19,
      "text": "容错的持久方式存储记录消息流：",
      "top": 235.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b003"
      }
    },
    {
      "id": "p094-t0020",
      "page": 94,
      "ordinal": 20,
      "text": "Kafka ",
      "top": 235.0,
      "left": 365.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b003"
      }
    },
    {
      "id": "p094-t0021",
      "page": 94,
      "ordinal": 21,
      "text": "会把消息持久化到磁盘，有效避",
      "top": 235.0,
      "left": 407.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b003"
      }
    },
    {
      "id": "p094-t0023",
      "page": 94,
      "ordinal": 23,
      "text": "免了消息丢失的风险。",
      "top": 235.0,
      "left": 615.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b003"
      }
    },
    {
      "id": "p094-t0025",
      "page": 94,
      "ordinal": 25,
      "text": "3. ",
      "top": 266.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b004"
      }
    },
    {
      "id": "p094-t0026",
      "page": 94,
      "ordinal": 26,
      "text": "流式处理平台：在消息发布的时候进行处理，",
      "top": 266.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b004"
      }
    },
    {
      "id": "p094-t0027",
      "page": 94,
      "ordinal": 27,
      "text": "Kafka ",
      "top": 266.0,
      "left": 438.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b004"
      }
    },
    {
      "id": "p094-t0028",
      "page": 94,
      "ordinal": 28,
      "text": "提供了一个完整的流",
      "top": 266.0,
      "left": 480.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b004"
      }
    },
    {
      "id": "p094-t0030",
      "page": 94,
      "ordinal": 30,
      "text": "式处理类库。",
      "top": 266.0,
      "left": 615.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b004"
      }
    },
    {
      "id": "p094-t0032",
      "page": 94,
      "ordinal": 32,
      "text": "Kafka ",
      "top": 301.0,
      "left": 112.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b005"
      }
    },
    {
      "id": "p094-t0033",
      "page": 94,
      "ordinal": 33,
      "text": "主要有两大应用场景：",
      "top": 301.0,
      "left": 153.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b005"
      }
    },
    {
      "id": "p094-t0035",
      "page": 94,
      "ordinal": 35,
      "text": "1. ",
      "top": 336.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b006"
      }
    },
    {
      "id": "p094-t0036",
      "page": 94,
      "ordinal": 36,
      "text": "消息队列：建立实时流数据管道，以可靠地在系统或应用程序之间获取数",
      "top": 336.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b006"
      }
    },
    {
      "id": "p094-t0038",
      "page": 94,
      "ordinal": 38,
      "text": "据。",
      "top": 336.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b006"
      }
    },
    {
      "id": "p094-t0040",
      "page": 94,
      "ordinal": 40,
      "text": "2. ",
      "top": 366.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b007"
      }
    },
    {
      "id": "p094-t0041",
      "page": 94,
      "ordinal": 41,
      "text": "数据处理：构建实时的流数据处理程序来转换或处理数据流",
      "top": 366.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h02",
        "heading_id": "p094-h02",
        "block_id": "q-p094-h02-b007"
      }
    },
    {
      "id": "p094-t0043",
      "page": 94,
      "ordinal": 43,
      "text": "和其他消息队列相比，",
      "top": 401.0,
      "left": 112.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03"
      }
    },
    {
      "id": "p094-t0044",
      "page": 94,
      "ordinal": 44,
      "text": "Kafka ",
      "top": 401.0,
      "left": 368.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03"
      }
    },
    {
      "id": "p094-t0045",
      "page": 94,
      "ordinal": 45,
      "text": "的优势在哪里？",
      "top": 401.0,
      "left": 448.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03"
      }
    },
    {
      "id": "p094-t0049",
      "page": 94,
      "ordinal": 49,
      "text": "我们现在经常提到",
      "top": 452.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0050",
      "page": 94,
      "ordinal": 50,
      "text": " Kafka ",
      "top": 452.0,
      "left": 233.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0051",
      "page": 94,
      "ordinal": 51,
      "text": "的时候就已经默认它是一个非常优秀的消息队列了，",
      "top": 452.0,
      "left": 278.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0053",
      "page": 94,
      "ordinal": 53,
      "text": "我们也会经常拿它跟",
      "top": 452.0,
      "left": 618.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0055",
      "page": 94,
      "ordinal": 55,
      "text": "RocketMQ",
      "top": 476.0,
      "left": 112.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0056",
      "page": 94,
      "ordinal": 56,
      "text": "、",
      "top": 476.0,
      "left": 182.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0057",
      "page": 94,
      "ordinal": 57,
      "text": "RabbitMQ ",
      "top": 476.0,
      "left": 197.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0058",
      "page": 94,
      "ordinal": 58,
      "text": "对比。我觉得",
      "top": 476.0,
      "left": 269.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0059",
      "page": 94,
      "ordinal": 59,
      "text": " Kafka ",
      "top": 476.0,
      "left": 357.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0060",
      "page": 94,
      "ordinal": 60,
      "text": "相比其他消息",
      "top": 476.0,
      "left": 402.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0062",
      "page": 94,
      "ordinal": 62,
      "text": "队列主要的优势如下",
      "top": 476.0,
      "left": 494.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0063",
      "page": 94,
      "ordinal": 63,
      "text": " :",
      "top": 476.0,
      "left": 626.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b001"
      }
    },
    {
      "id": "p094-t0064",
      "page": 94,
      "ordinal": 64,
      "text": "1. ",
      "top": 510.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0065",
      "page": 94,
      "ordinal": 65,
      "text": "极致的性能",
      "top": 510.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0067",
      "page": 94,
      "ordinal": 67,
      "text": "：基于",
      "top": 510.0,
      "left": 222.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0068",
      "page": 94,
      "ordinal": 68,
      "text": " Scala ",
      "top": 510.0,
      "left": 266.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0069",
      "page": 94,
      "ordinal": 69,
      "text": "和",
      "top": 510.0,
      "left": 309.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0070",
      "page": 94,
      "ordinal": 70,
      "text": " Java ",
      "top": 510.0,
      "left": 323.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0071",
      "page": 94,
      "ordinal": 71,
      "text": "语言开发，设计中大量使用了批量处",
      "top": 510.0,
      "left": 359.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0073",
      "page": 94,
      "ordinal": 73,
      "text": "理和异步的思想，最高可以",
      "top": 510.0,
      "left": 596.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0074",
      "page": 94,
      "ordinal": 74,
      "text": "每秒处理千万级别的消息",
      "top": 534.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b002"
      }
    },
    {
      "id": "p094-t0076",
      "page": 94,
      "ordinal": 76,
      "text": "2. ",
      "top": 564.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0077",
      "page": 94,
      "ordinal": 77,
      "text": "生态系统兼容性无可匹敌",
      "top": 564.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0079",
      "page": 94,
      "ordinal": 79,
      "text": "：",
      "top": 564.0,
      "left": 310.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0080",
      "page": 94,
      "ordinal": 80,
      "text": "Kafka ",
      "top": 564.0,
      "left": 325.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0081",
      "page": 94,
      "ordinal": 81,
      "text": "与周边生态系统的兼容性是最好的没",
      "top": 564.0,
      "left": 366.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0083",
      "page": 94,
      "ordinal": 83,
      "text": "有之一，尤其在大数据和流",
      "top": 564.0,
      "left": 604.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0084",
      "page": 94,
      "ordinal": 84,
      "text": "计算领域",
      "top": 588.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b003"
      }
    },
    {
      "id": "p094-t0087",
      "page": 94,
      "ordinal": 87,
      "text": "实际上在早期的时候",
      "top": 623.0,
      "left": 116.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0088",
      "page": 94,
      "ordinal": 88,
      "text": " Kafka ",
      "top": 623.0,
      "left": 247.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0089",
      "page": 94,
      "ordinal": 89,
      "text": "并不是一个合格的消息队列，早期的",
      "top": 623.0,
      "left": 293.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0090",
      "page": 94,
      "ordinal": 90,
      "text": " Kafka ",
      "top": 623.0,
      "left": 527.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0091",
      "page": 94,
      "ordinal": 91,
      "text": "在消",
      "top": 623.0,
      "left": 572.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0093",
      "page": 94,
      "ordinal": 93,
      "text": "息队列领域就像是一个衣衫",
      "top": 623.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0094",
      "page": 94,
      "ordinal": 94,
      "text": "褴褛的孩子一样，功能不完备并且有一些小问题比",
      "top": 647.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0096",
      "page": 94,
      "ordinal": 96,
      "text": "如丢失消息、不保证消息可靠性等等。当然，这也和",
      "top": 647.0,
      "left": 437.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0098",
      "page": 94,
      "ordinal": 98,
      "text": "LinkedIn ",
      "top": 670.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0099",
      "page": 94,
      "ordinal": 99,
      "text": "最早开发",
      "top": 670.0,
      "left": 174.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0100",
      "page": 94,
      "ordinal": 100,
      "text": " Kafka ",
      "top": 670.0,
      "left": 232.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0101",
      "page": 94,
      "ordinal": 101,
      "text": "用于处理海量的日志有很大关系，哈哈哈，人家本来最开始就不是为了",
      "top": 670.0,
      "left": 278.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0103",
      "page": 94,
      "ordinal": 103,
      "text": "作为消",
      "top": 670.0,
      "left": 735.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0104",
      "page": 94,
      "ordinal": 104,
      "text": "息队列滴，谁知道后面误打误撞在消息队列领域占据了一席之地",
      "top": 693.0,
      "left": 112.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h03",
        "heading_id": "p094-h03",
        "block_id": "q-p094-h03-b004"
      }
    },
    {
      "id": "p094-t0106",
      "page": 94,
      "ordinal": 106,
      "text": "什么是",
      "top": 727.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0107",
      "page": 94,
      "ordinal": 107,
      "text": " Producer",
      "top": 727.0,
      "left": 189.0,
      "width": 123.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0108",
      "page": 94,
      "ordinal": 108,
      "text": "、",
      "top": 727.0,
      "left": 312.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0109",
      "page": 94,
      "ordinal": 109,
      "text": "Consumer",
      "top": 727.0,
      "left": 337.0,
      "width": 130.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0110",
      "page": 94,
      "ordinal": 110,
      "text": "、",
      "top": 727.0,
      "left": 468.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0111",
      "page": 94,
      "ordinal": 111,
      "text": "Broker",
      "top": 727.0,
      "left": 493.0,
      "width": 87.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0112",
      "page": 94,
      "ordinal": 112,
      "text": "、",
      "top": 727.0,
      "left": 580.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0113",
      "page": 94,
      "ordinal": 113,
      "text": "Topic",
      "top": 727.0,
      "left": 606.0,
      "width": 68.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0114",
      "page": 94,
      "ordinal": 114,
      "text": "、",
      "top": 727.0,
      "left": 674.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0116",
      "page": 94,
      "ordinal": 116,
      "text": "Partition",
      "top": 759.0,
      "left": 112.0,
      "width": 114.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0117",
      "page": 94,
      "ordinal": 117,
      "text": "？",
      "top": 759.0,
      "left": 225.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04"
      }
    },
    {
      "id": "p094-t0120",
      "page": 94,
      "ordinal": 120,
      "text": " Kafka ",
      "top": 810.0,
      "left": 112.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0121",
      "page": 94,
      "ordinal": 121,
      "text": "将生产者发布的消息发送到",
      "top": 810.0,
      "left": 157.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0122",
      "page": 94,
      "ordinal": 122,
      "text": " Topic",
      "top": 810.0,
      "left": 333.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0123",
      "page": 94,
      "ordinal": 123,
      "text": "（主题）",
      "top": 810.0,
      "left": 373.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0125",
      "page": 94,
      "ordinal": 125,
      "text": "中，需要这些消息的消费",
      "top": 810.0,
      "left": 435.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0127",
      "page": 94,
      "ordinal": 127,
      "text": "者可以订阅这些",
      "top": 810.0,
      "left": 600.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0128",
      "page": 94,
      "ordinal": 128,
      "text": " Topic",
      "top": 810.0,
      "left": 702.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0129",
      "page": 94,
      "ordinal": 129,
      "text": "（主",
      "top": 810.0,
      "left": 743.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0130",
      "page": 94,
      "ordinal": 130,
      "text": "题）。",
      "top": 833.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0131",
      "page": 94,
      "ordinal": 131,
      "text": "Kafka ",
      "top": 833.0,
      "left": 156.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0132",
      "page": 94,
      "ordinal": 132,
      "text": "比较重要的几个概念：",
      "top": 833.0,
      "left": 197.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b001"
      }
    },
    {
      "id": "p094-t0134",
      "page": 94,
      "ordinal": 134,
      "text": "1. Producer",
      "top": 868.0,
      "left": 129.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b002"
      }
    },
    {
      "id": "p094-t0135",
      "page": 94,
      "ordinal": 135,
      "text": "（生产者）",
      "top": 868.0,
      "left": 208.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b002"
      }
    },
    {
      "id": "p094-t0136",
      "page": 94,
      "ordinal": 136,
      "text": " : ",
      "top": 868.0,
      "left": 281.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b002"
      }
    },
    {
      "id": "p094-t0137",
      "page": 94,
      "ordinal": 137,
      "text": "产生消息的一方。",
      "top": 868.0,
      "left": 293.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b002"
      }
    },
    {
      "id": "p094-t0139",
      "page": 94,
      "ordinal": 139,
      "text": "2. Consumer",
      "top": 899.0,
      "left": 129.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b003"
      }
    },
    {
      "id": "p094-t0140",
      "page": 94,
      "ordinal": 140,
      "text": "（消费者）",
      "top": 899.0,
      "left": 216.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b003"
      }
    },
    {
      "id": "p094-t0141",
      "page": 94,
      "ordinal": 141,
      "text": " : ",
      "top": 899.0,
      "left": 289.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b003"
      }
    },
    {
      "id": "p094-t0142",
      "page": 94,
      "ordinal": 142,
      "text": "消费消息的一方。",
      "top": 899.0,
      "left": 301.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b003"
      }
    },
    {
      "id": "p094-t0144",
      "page": 94,
      "ordinal": 144,
      "text": "3. Broker",
      "top": 929.0,
      "left": 129.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0145",
      "page": 94,
      "ordinal": 145,
      "text": "（代理）",
      "top": 929.0,
      "left": 192.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0146",
      "page": 94,
      "ordinal": 146,
      "text": " : ",
      "top": 929.0,
      "left": 250.0,
      "width": 11.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0147",
      "page": 94,
      "ordinal": 147,
      "text": "可以看作是一个独立的",
      "top": 929.0,
      "left": 262.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0148",
      "page": 94,
      "ordinal": 148,
      "text": " Kafka ",
      "top": 929.0,
      "left": 408.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0149",
      "page": 94,
      "ordinal": 149,
      "text": "实例。多个",
      "top": 929.0,
      "left": 453.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0150",
      "page": 94,
      "ordinal": 150,
      "text": " Kafka Broker ",
      "top": 929.0,
      "left": 526.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0151",
      "page": 94,
      "ordinal": 151,
      "text": "组成一个",
      "top": 929.0,
      "left": 622.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0152",
      "page": 94,
      "ordinal": 152,
      "text": " Kafka ",
      "top": 929.0,
      "left": 680.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0153",
      "page": 94,
      "ordinal": 153,
      "text": "Cluster",
      "top": 953.0,
      "left": 146.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0154",
      "page": 94,
      "ordinal": 154,
      "text": "。",
      "top": 953.0,
      "left": 194.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b004"
      }
    },
    {
      "id": "p094-t0156",
      "page": 94,
      "ordinal": 156,
      "text": "4. Topic",
      "top": 984.0,
      "left": 129.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0157",
      "page": 94,
      "ordinal": 157,
      "text": "（主题）",
      "top": 984.0,
      "left": 182.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0158",
      "page": 94,
      "ordinal": 158,
      "text": " : Producer ",
      "top": 984.0,
      "left": 241.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0159",
      "page": 94,
      "ordinal": 159,
      "text": "将消息发送到特定的主题，",
      "top": 984.0,
      "left": 319.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0160",
      "page": 94,
      "ordinal": 160,
      "text": "Consumer ",
      "top": 984.0,
      "left": 494.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0161",
      "page": 94,
      "ordinal": 161,
      "text": "通过订",
      "top": 984.0,
      "left": 569.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0163",
      "page": 94,
      "ordinal": 163,
      "text": "阅特定的",
      "top": 984.0,
      "left": 616.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0164",
      "page": 94,
      "ordinal": 164,
      "text": " Topic(",
      "top": 984.0,
      "left": 675.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0165",
      "page": 94,
      "ordinal": 165,
      "text": "主题",
      "top": 984.0,
      "left": 719.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0166",
      "page": 94,
      "ordinal": 166,
      "text": ") ",
      "top": 984.0,
      "left": 749.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0167",
      "page": 94,
      "ordinal": 167,
      "text": "来",
      "top": 984.0,
      "left": 757.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0168",
      "page": 94,
      "ordinal": 168,
      "text": "消费消息。",
      "top": 1007.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b005"
      }
    },
    {
      "id": "p094-t0170",
      "page": 94,
      "ordinal": 170,
      "text": "5. Partition",
      "top": 1038.0,
      "left": 129.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0171",
      "page": 94,
      "ordinal": 171,
      "text": "（分区）",
      "top": 1038.0,
      "left": 204.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0172",
      "page": 94,
      "ordinal": 172,
      "text": " : Partition ",
      "top": 1038.0,
      "left": 262.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0173",
      "page": 94,
      "ordinal": 173,
      "text": "属于",
      "top": 1038.0,
      "left": 336.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0174",
      "page": 94,
      "ordinal": 174,
      "text": " Topic ",
      "top": 1038.0,
      "left": 365.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0175",
      "page": 94,
      "ordinal": 175,
      "text": "的一部分。一个",
      "top": 1038.0,
      "left": 410.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0176",
      "page": 94,
      "ordinal": 176,
      "text": " Topic ",
      "top": 1038.0,
      "left": 512.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0177",
      "page": 94,
      "ordinal": 177,
      "text": "可",
      "top": 1038.0,
      "left": 556.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0179",
      "page": 94,
      "ordinal": 179,
      "text": "以有多个",
      "top": 1038.0,
      "left": 575.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0180",
      "page": 94,
      "ordinal": 180,
      "text": " Partition ",
      "top": 1038.0,
      "left": 633.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0181",
      "page": 94,
      "ordinal": 181,
      "text": "，并且同一",
      "top": 1038.0,
      "left": 699.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0183",
      "page": 94,
      "ordinal": 183,
      "text": "Topic ",
      "top": 1061.0,
      "left": 146.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0184",
      "page": 94,
      "ordinal": 184,
      "text": "下的",
      "top": 1061.0,
      "left": 186.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0185",
      "page": 94,
      "ordinal": 185,
      "text": " Partition ",
      "top": 1061.0,
      "left": 215.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0186",
      "page": 94,
      "ordinal": 186,
      "text": "可以分布在不同",
      "top": 1061.0,
      "left": 281.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0188",
      "page": 94,
      "ordinal": 188,
      "text": "的",
      "top": 1061.0,
      "left": 387.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0189",
      "page": 94,
      "ordinal": 189,
      "text": " Broker ",
      "top": 1061.0,
      "left": 402.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0190",
      "page": 94,
      "ordinal": 190,
      "text": "上，这也就表明一个",
      "top": 1061.0,
      "left": 456.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0191",
      "page": 94,
      "ordinal": 191,
      "text": " Topic ",
      "top": 1061.0,
      "left": 587.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0192",
      "page": 94,
      "ordinal": 192,
      "text": "可以横跨多个",
      "top": 1061.0,
      "left": 631.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0193",
      "page": 94,
      "ordinal": 193,
      "text": " Broker ",
      "top": 1061.0,
      "left": 719.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p094-t0194",
      "page": 94,
      "ordinal": 194,
      "text": "。",
      "top": 1084.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p094-h04",
        "heading_id": "p094-h04",
        "block_id": "q-p094-h04-b006"
      }
    },
    {
      "id": "p095-t0001",
      "page": 95,
      "ordinal": 1,
      "text": "Kafka ",
      "top": 40.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01"
      }
    },
    {
      "id": "p095-t0002",
      "page": 95,
      "ordinal": 2,
      "text": "的多副本机制了解吗？",
      "top": 40.0,
      "left": 192.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01"
      }
    },
    {
      "id": "p095-t0005",
      "page": 95,
      "ordinal": 5,
      "text": "Kafka ",
      "top": 91.0,
      "left": 112.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0006",
      "page": 95,
      "ordinal": 6,
      "text": "为分区（",
      "top": 91.0,
      "left": 153.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0007",
      "page": 95,
      "ordinal": 7,
      "text": "Partition",
      "top": 91.0,
      "left": 212.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0008",
      "page": 95,
      "ordinal": 8,
      "text": "）引入了多副本（",
      "top": 91.0,
      "left": 270.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0009",
      "page": 95,
      "ordinal": 9,
      "text": "Replica",
      "top": 91.0,
      "left": 387.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0010",
      "page": 95,
      "ordinal": 10,
      "text": "）机制。分区",
      "top": 91.0,
      "left": 436.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0012",
      "page": 95,
      "ordinal": 12,
      "text": "（",
      "top": 91.0,
      "left": 528.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0013",
      "page": 95,
      "ordinal": 13,
      "text": "Partition",
      "top": 91.0,
      "left": 542.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0014",
      "page": 95,
      "ordinal": 14,
      "text": "）中的多个副本之间会有一",
      "top": 91.0,
      "left": 601.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0015",
      "page": 95,
      "ordinal": 15,
      "text": "个叫做",
      "top": 114.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0016",
      "page": 95,
      "ordinal": 16,
      "text": " leader ",
      "top": 114.0,
      "left": 156.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0017",
      "page": 95,
      "ordinal": 17,
      "text": "的家伙，其他副本称为",
      "top": 114.0,
      "left": 206.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0018",
      "page": 95,
      "ordinal": 18,
      "text": " follower",
      "top": 114.0,
      "left": 353.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0019",
      "page": 95,
      "ordinal": 19,
      "text": "。我们发送的消息会被发送到",
      "top": 114.0,
      "left": 412.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0020",
      "page": 95,
      "ordinal": 20,
      "text": " leader ",
      "top": 114.0,
      "left": 602.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0021",
      "page": 95,
      "ordinal": 21,
      "text": "副本，然后",
      "top": 114.0,
      "left": 653.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0023",
      "page": 95,
      "ordinal": 23,
      "text": "follower ",
      "top": 137.0,
      "left": 112.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0024",
      "page": 95,
      "ordinal": 24,
      "text": "副本才",
      "top": 137.0,
      "left": 171.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0026",
      "page": 95,
      "ordinal": 26,
      "text": "能从",
      "top": 137.0,
      "left": 219.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0027",
      "page": 95,
      "ordinal": 27,
      "text": " leader ",
      "top": 137.0,
      "left": 248.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0028",
      "page": 95,
      "ordinal": 28,
      "text": "副本中拉取消息进行同步。",
      "top": 137.0,
      "left": 299.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0030",
      "page": 95,
      "ordinal": 30,
      "text": "生产者和消费者只与",
      "top": 137.0,
      "left": 478.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0031",
      "page": 95,
      "ordinal": 31,
      "text": " leader ",
      "top": 137.0,
      "left": 610.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0032",
      "page": 95,
      "ordinal": 32,
      "text": "副本交互。你可以",
      "top": 137.0,
      "left": 661.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0033",
      "page": 95,
      "ordinal": 33,
      "text": "理解为其他副本只是",
      "top": 161.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0034",
      "page": 95,
      "ordinal": 34,
      "text": " leader ",
      "top": 161.0,
      "left": 243.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0035",
      "page": 95,
      "ordinal": 35,
      "text": "副本的拷贝，它们的存在只是为了保证消息存储的安全性。当",
      "top": 161.0,
      "left": 294.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0036",
      "page": 95,
      "ordinal": 36,
      "text": " leader ",
      "top": 161.0,
      "left": 689.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0037",
      "page": 95,
      "ordinal": 37,
      "text": "副本",
      "top": 161.0,
      "left": 740.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0038",
      "page": 95,
      "ordinal": 38,
      "text": "发",
      "top": 184.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0040",
      "page": 95,
      "ordinal": 40,
      "text": "生故障时会从",
      "top": 184.0,
      "left": 130.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0041",
      "page": 95,
      "ordinal": 41,
      "text": " follower ",
      "top": 184.0,
      "left": 218.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0042",
      "page": 95,
      "ordinal": 42,
      "text": "中选举出一个",
      "top": 184.0,
      "left": 281.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0043",
      "page": 95,
      "ordinal": 43,
      "text": " leader,",
      "top": 184.0,
      "left": 369.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0044",
      "page": 95,
      "ordinal": 44,
      "text": "但是",
      "top": 184.0,
      "left": 419.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0045",
      "page": 95,
      "ordinal": 45,
      "text": " follower ",
      "top": 184.0,
      "left": 449.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0046",
      "page": 95,
      "ordinal": 46,
      "text": "中如果有和",
      "top": 184.0,
      "left": 512.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0047",
      "page": 95,
      "ordinal": 47,
      "text": " leader ",
      "top": 184.0,
      "left": 585.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0048",
      "page": 95,
      "ordinal": 48,
      "text": "同步程度达不到要求的",
      "top": 184.0,
      "left": 636.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0049",
      "page": 95,
      "ordinal": 49,
      "text": "参加不了",
      "top": 208.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0050",
      "page": 95,
      "ordinal": 50,
      "text": " leader ",
      "top": 208.0,
      "left": 170.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0051",
      "page": 95,
      "ordinal": 51,
      "text": "的竞选",
      "top": 208.0,
      "left": 221.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h01",
        "heading_id": "p095-h01",
        "block_id": "q-p095-h01-b001"
      }
    },
    {
      "id": "p095-t0053",
      "page": 95,
      "ordinal": 53,
      "text": "Kafka ",
      "top": 242.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0054",
      "page": 95,
      "ordinal": 54,
      "text": "的多分区（",
      "top": 242.0,
      "left": 192.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0055",
      "page": 95,
      "ordinal": 55,
      "text": "Partition",
      "top": 242.0,
      "left": 320.0,
      "width": 114.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0056",
      "page": 95,
      "ordinal": 56,
      "text": "）以及多副本（",
      "top": 242.0,
      "left": 434.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0057",
      "page": 95,
      "ordinal": 57,
      "text": "Replica",
      "top": 242.0,
      "left": 613.0,
      "width": 92.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0058",
      "page": 95,
      "ordinal": 58,
      "text": "）机制",
      "top": 242.0,
      "left": 705.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [
        "af://n1994"
      ],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0059",
      "page": 95,
      "ordinal": 59,
      "text": "有",
      "top": 274.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0061",
      "page": 95,
      "ordinal": 61,
      "text": "什么好处呢",
      "top": 274.0,
      "left": 144.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02"
      }
    },
    {
      "id": "p095-t0064",
      "page": 95,
      "ordinal": 64,
      "text": "1. Kafka ",
      "top": 324.0,
      "left": 129.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0065",
      "page": 95,
      "ordinal": 65,
      "text": "通过给特定",
      "top": 324.0,
      "left": 187.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0066",
      "page": 95,
      "ordinal": 66,
      "text": " Topic ",
      "top": 324.0,
      "left": 260.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0067",
      "page": 95,
      "ordinal": 67,
      "text": "指定多个",
      "top": 324.0,
      "left": 304.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0068",
      "page": 95,
      "ordinal": 68,
      "text": " Partition, ",
      "top": 324.0,
      "left": 363.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0069",
      "page": 95,
      "ordinal": 69,
      "text": "而各个",
      "top": 324.0,
      "left": 433.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0070",
      "page": 95,
      "ordinal": 70,
      "text": " Partition ",
      "top": 324.0,
      "left": 476.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0071",
      "page": 95,
      "ordinal": 71,
      "text": "可以",
      "top": 324.0,
      "left": 542.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0073",
      "page": 95,
      "ordinal": 73,
      "text": "分布在不同的",
      "top": 324.0,
      "left": 576.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0074",
      "page": 95,
      "ordinal": 74,
      "text": " Broker ",
      "top": 324.0,
      "left": 663.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0075",
      "page": 95,
      "ordinal": 75,
      "text": "上",
      "top": 324.0,
      "left": 717.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0076",
      "page": 95,
      "ordinal": 76,
      "text": ", ",
      "top": 324.0,
      "left": 732.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0077",
      "page": 95,
      "ordinal": 77,
      "text": "这样",
      "top": 324.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0078",
      "page": 95,
      "ordinal": 78,
      "text": "便能提供比较好的并发能力（负载均",
      "top": 347.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0080",
      "page": 95,
      "ordinal": 80,
      "text": "衡）。",
      "top": 347.0,
      "left": 383.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b001"
      }
    },
    {
      "id": "p095-t0081",
      "page": 95,
      "ordinal": 81,
      "text": "2. Partition ",
      "top": 378.0,
      "left": 129.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0082",
      "page": 95,
      "ordinal": 82,
      "text": "可以指定对应的",
      "top": 378.0,
      "left": 208.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0083",
      "page": 95,
      "ordinal": 83,
      "text": " Replica ",
      "top": 378.0,
      "left": 310.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0084",
      "page": 95,
      "ordinal": 84,
      "text": "数",
      "top": 378.0,
      "left": 366.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0085",
      "page": 95,
      "ordinal": 85,
      "text": ", ",
      "top": 378.0,
      "left": 381.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0086",
      "page": 95,
      "ordinal": 86,
      "text": "这也极大地提高了消息存储的安",
      "top": 378.0,
      "left": 388.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0088",
      "page": 95,
      "ordinal": 88,
      "text": "全性",
      "top": 378.0,
      "left": 597.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0089",
      "page": 95,
      "ordinal": 89,
      "text": ", ",
      "top": 378.0,
      "left": 626.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0090",
      "page": 95,
      "ordinal": 90,
      "text": "提高了容灾能力，不过",
      "top": 378.0,
      "left": 634.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0091",
      "page": 95,
      "ordinal": 91,
      "text": "也相应的增加了所需要的存储空间。",
      "top": 401.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h02",
        "heading_id": "p095-h02",
        "block_id": "q-p095-h02-b002"
      }
    },
    {
      "id": "p095-t0093",
      "page": 95,
      "ordinal": 93,
      "text": "Zookeeper ",
      "top": 436.0,
      "left": 112.0,
      "width": 142.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03"
      }
    },
    {
      "id": "p095-t0094",
      "page": 95,
      "ordinal": 94,
      "text": "在",
      "top": 436.0,
      "left": 254.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03"
      }
    },
    {
      "id": "p095-t0095",
      "page": 95,
      "ordinal": 95,
      "text": " Kafka ",
      "top": 436.0,
      "left": 280.0,
      "width": 87.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03"
      }
    },
    {
      "id": "p095-t0096",
      "page": 95,
      "ordinal": 96,
      "text": "中的作用知道吗？",
      "top": 436.0,
      "left": 367.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03"
      }
    },
    {
      "id": "p095-t0099",
      "page": 95,
      "ordinal": 99,
      "text": "1. Broker ",
      "top": 487.0,
      "left": 129.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0100",
      "page": 95,
      "ordinal": 100,
      "text": "注册",
      "top": 487.0,
      "left": 195.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0102",
      "page": 95,
      "ordinal": 102,
      "text": "：在",
      "top": 487.0,
      "left": 228.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0103",
      "page": 95,
      "ordinal": 103,
      "text": " Zookeeper ",
      "top": 487.0,
      "left": 258.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0104",
      "page": 95,
      "ordinal": 104,
      "text": "上会有一个专门用来进行",
      "top": 487.0,
      "left": 339.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0105",
      "page": 95,
      "ordinal": 105,
      "text": " Broker ",
      "top": 487.0,
      "left": 499.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0106",
      "page": 95,
      "ordinal": 106,
      "text": "服务器",
      "top": 487.0,
      "left": 553.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0108",
      "page": 95,
      "ordinal": 108,
      "text": "列表记录的节点。每个",
      "top": 487.0,
      "left": 601.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0110",
      "page": 95,
      "ordinal": 110,
      "text": "Broker ",
      "top": 510.0,
      "left": 146.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0111",
      "page": 95,
      "ordinal": 111,
      "text": "在启动时，都会到",
      "top": 510.0,
      "left": 195.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0112",
      "page": 95,
      "ordinal": 112,
      "text": " Zookeeper ",
      "top": 510.0,
      "left": 312.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0113",
      "page": 95,
      "ordinal": 113,
      "text": "上进行注",
      "top": 510.0,
      "left": 393.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0115",
      "page": 95,
      "ordinal": 115,
      "text": "册，即到",
      "top": 510.0,
      "left": 456.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0116",
      "page": 95,
      "ordinal": 116,
      "text": " /brokers/ids ",
      "top": 510.0,
      "left": 514.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0117",
      "page": 95,
      "ordinal": 117,
      "text": "下创建属于自己的节点。每",
      "top": 510.0,
      "left": 605.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0118",
      "page": 95,
      "ordinal": 118,
      "text": "个",
      "top": 534.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0119",
      "page": 95,
      "ordinal": 119,
      "text": " Broker ",
      "top": 534.0,
      "left": 160.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0120",
      "page": 95,
      "ordinal": 120,
      "text": "就会将",
      "top": 534.0,
      "left": 214.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0122",
      "page": 95,
      "ordinal": 122,
      "text": "自己的",
      "top": 534.0,
      "left": 262.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0123",
      "page": 95,
      "ordinal": 123,
      "text": " IP ",
      "top": 534.0,
      "left": 305.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0124",
      "page": 95,
      "ordinal": 124,
      "text": "地址和端口等信息记录到该节点中去",
      "top": 534.0,
      "left": 326.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b001"
      }
    },
    {
      "id": "p095-t0126",
      "page": 95,
      "ordinal": 126,
      "text": "2. Topic ",
      "top": 564.0,
      "left": 129.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0127",
      "page": 95,
      "ordinal": 127,
      "text": "注册",
      "top": 564.0,
      "left": 186.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0129",
      "page": 95,
      "ordinal": 129,
      "text": "：",
      "top": 564.0,
      "left": 219.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0131",
      "page": 95,
      "ordinal": 131,
      "text": "在",
      "top": 564.0,
      "left": 237.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0132",
      "page": 95,
      "ordinal": 132,
      "text": " Kafka ",
      "top": 564.0,
      "left": 252.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0133",
      "page": 95,
      "ordinal": 133,
      "text": "中，同一个",
      "top": 564.0,
      "left": 297.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0134",
      "page": 95,
      "ordinal": 134,
      "text": " Topic ",
      "top": 564.0,
      "left": 371.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0135",
      "page": 95,
      "ordinal": 135,
      "text": "的消息会被分成多个分区并",
      "top": 564.0,
      "left": 415.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0137",
      "page": 95,
      "ordinal": 137,
      "text": "将其分布在多个",
      "top": 564.0,
      "left": 594.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0138",
      "page": 95,
      "ordinal": 138,
      "text": " Broker ",
      "top": 564.0,
      "left": 696.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0139",
      "page": 95,
      "ordinal": 139,
      "text": "上，",
      "top": 564.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0140",
      "page": 95,
      "ordinal": 140,
      "text": "这些分区信息及与",
      "top": 588.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0141",
      "page": 95,
      "ordinal": 141,
      "text": " Broker ",
      "top": 588.0,
      "left": 263.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0142",
      "page": 95,
      "ordinal": 142,
      "text": "的对应关系也都",
      "top": 588.0,
      "left": 316.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0144",
      "page": 95,
      "ordinal": 144,
      "text": "是由",
      "top": 588.0,
      "left": 422.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0145",
      "page": 95,
      "ordinal": 145,
      "text": " Zookeeper ",
      "top": 588.0,
      "left": 452.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0146",
      "page": 95,
      "ordinal": 146,
      "text": "在维护。比如我创建了一个名字为",
      "top": 588.0,
      "left": 532.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0147",
      "page": 95,
      "ordinal": 147,
      "text": " my-",
      "top": 588.0,
      "left": 752.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0148",
      "page": 95,
      "ordinal": 148,
      "text": "topic ",
      "top": 611.0,
      "left": 146.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0149",
      "page": 95,
      "ordinal": 149,
      "text": "的主题并且",
      "top": 611.0,
      "left": 183.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0151",
      "page": 95,
      "ordinal": 151,
      "text": "它有两个分区，对应到",
      "top": 611.0,
      "left": 260.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0152",
      "page": 95,
      "ordinal": 152,
      "text": " zookeeper ",
      "top": 611.0,
      "left": 406.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0153",
      "page": 95,
      "ordinal": 153,
      "text": "中会创建这些文件夹：",
      "top": 611.0,
      "left": 485.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0154",
      "page": 95,
      "ordinal": 154,
      "text": " /brokers/topics/my-",
      "top": 611.0,
      "left": 632.0,
      "width": 139.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0155",
      "page": 95,
      "ordinal": 155,
      "text": "topic/Partitions/0",
      "top": 634.0,
      "left": 146.0,
      "width": 118.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0156",
      "page": 95,
      "ordinal": 156,
      "text": "、",
      "top": 634.0,
      "left": 264.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0157",
      "page": 95,
      "ordinal": 157,
      "text": "/brokers/topics/my topic/Partitions/1 ",
      "top": 634.0,
      "left": 278.0,
      "width": 261.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b002"
      }
    },
    {
      "id": "p095-t0158",
      "page": 95,
      "ordinal": 158,
      "text": "3. ",
      "top": 665.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0159",
      "page": 95,
      "ordinal": 159,
      "text": "负载均衡",
      "top": 665.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0161",
      "page": 95,
      "ordinal": 161,
      "text": "：上面也说过了",
      "top": 665.0,
      "left": 208.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0162",
      "page": 95,
      "ordinal": 162,
      "text": " Kafka ",
      "top": 665.0,
      "left": 310.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0163",
      "page": 95,
      "ordinal": 163,
      "text": "通过给特定",
      "top": 665.0,
      "left": 356.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0164",
      "page": 95,
      "ordinal": 164,
      "text": " Topic ",
      "top": 665.0,
      "left": 429.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0165",
      "page": 95,
      "ordinal": 165,
      "text": "指定多个",
      "top": 665.0,
      "left": 473.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0166",
      "page": 95,
      "ordinal": 166,
      "text": " Partition, ",
      "top": 665.0,
      "left": 531.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0167",
      "page": 95,
      "ordinal": 167,
      "text": "而各个",
      "top": 665.0,
      "left": 601.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0168",
      "page": 95,
      "ordinal": 168,
      "text": " Partition ",
      "top": 665.0,
      "left": 645.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0169",
      "page": 95,
      "ordinal": 169,
      "text": "可以分布",
      "top": 665.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0170",
      "page": 95,
      "ordinal": 170,
      "text": "在不同的",
      "top": 688.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0171",
      "page": 95,
      "ordinal": 171,
      "text": " Broker ",
      "top": 688.0,
      "left": 204.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0172",
      "page": 95,
      "ordinal": 172,
      "text": "上",
      "top": 688.0,
      "left": 258.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0173",
      "page": 95,
      "ordinal": 173,
      "text": ", ",
      "top": 688.0,
      "left": 272.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0174",
      "page": 95,
      "ordinal": 174,
      "text": "这样便能",
      "top": 688.0,
      "left": 280.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0176",
      "page": 95,
      "ordinal": 176,
      "text": "提供比较好的并发能力。",
      "top": 688.0,
      "left": 342.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0178",
      "page": 95,
      "ordinal": 178,
      "text": "对于同一个",
      "top": 688.0,
      "left": 507.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0179",
      "page": 95,
      "ordinal": 179,
      "text": " Topic ",
      "top": 688.0,
      "left": 580.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0180",
      "page": 95,
      "ordinal": 180,
      "text": "的不同",
      "top": 688.0,
      "left": 624.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0181",
      "page": 95,
      "ordinal": 181,
      "text": " Partition",
      "top": 688.0,
      "left": 668.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0182",
      "page": 95,
      "ordinal": 182,
      "text": "，",
      "top": 688.0,
      "left": 730.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0183",
      "page": 95,
      "ordinal": 183,
      "text": "Kafka ",
      "top": 712.0,
      "left": 146.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0184",
      "page": 95,
      "ordinal": 184,
      "text": "会尽力将这些",
      "top": 712.0,
      "left": 187.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0185",
      "page": 95,
      "ordinal": 185,
      "text": " Partition ",
      "top": 712.0,
      "left": 275.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0186",
      "page": 95,
      "ordinal": 186,
      "text": "分布到不同的",
      "top": 712.0,
      "left": 341.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0187",
      "page": 95,
      "ordinal": 187,
      "text": " Broker ",
      "top": 712.0,
      "left": 429.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0188",
      "page": 95,
      "ordinal": 188,
      "text": "服务器上。当生产者产生",
      "top": 712.0,
      "left": 482.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0190",
      "page": 95,
      "ordinal": 190,
      "text": "消息后也会尽量投递",
      "top": 712.0,
      "left": 647.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0191",
      "page": 95,
      "ordinal": 191,
      "text": "到不同",
      "top": 735.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0192",
      "page": 95,
      "ordinal": 192,
      "text": " Broker ",
      "top": 735.0,
      "left": 189.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0193",
      "page": 95,
      "ordinal": 193,
      "text": "的",
      "top": 735.0,
      "left": 243.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0194",
      "page": 95,
      "ordinal": 194,
      "text": " Partition ",
      "top": 735.0,
      "left": 258.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0195",
      "page": 95,
      "ordinal": 195,
      "text": "里面。当",
      "top": 735.0,
      "left": 324.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0196",
      "page": 95,
      "ordinal": 196,
      "text": " Consumer ",
      "top": 735.0,
      "left": 382.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0197",
      "page": 95,
      "ordinal": 197,
      "text": "消",
      "top": 735.0,
      "left": 461.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0199",
      "page": 95,
      "ordinal": 199,
      "text": "费的时候，",
      "top": 735.0,
      "left": 479.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0200",
      "page": 95,
      "ordinal": 200,
      "text": "Zookeeper ",
      "top": 735.0,
      "left": 552.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0201",
      "page": 95,
      "ordinal": 201,
      "text": "可以根据当前的",
      "top": 735.0,
      "left": 629.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0203",
      "page": 95,
      "ordinal": 203,
      "text": "Partition ",
      "top": 759.0,
      "left": 146.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0204",
      "page": 95,
      "ordinal": 204,
      "text": "数量以及",
      "top": 759.0,
      "left": 208.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0205",
      "page": 95,
      "ordinal": 205,
      "text": " Consumer ",
      "top": 759.0,
      "left": 266.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0206",
      "page": 95,
      "ordinal": 206,
      "text": "数",
      "top": 759.0,
      "left": 345.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0208",
      "page": 95,
      "ordinal": 208,
      "text": "量来实现动态负载均衡。",
      "top": 759.0,
      "left": 363.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h03",
        "heading_id": "p095-h03",
        "block_id": "q-p095-h03-b003"
      }
    },
    {
      "id": "p095-t0210",
      "page": 95,
      "ordinal": 210,
      "text": "Kafka ",
      "top": 792.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04"
      }
    },
    {
      "id": "p095-t0211",
      "page": 95,
      "ordinal": 211,
      "text": "如何保证消息的消费顺序？",
      "top": 792.0,
      "left": 192.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04"
      }
    },
    {
      "id": "p095-t0215",
      "page": 95,
      "ordinal": 215,
      "text": "我们在使用消息队列的过程中经常有业务场景需要严格保证消息的消费顺序，",
      "top": 843.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0217",
      "page": 95,
      "ordinal": 217,
      "text": "比如我们同时发了",
      "top": 843.0,
      "left": 617.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0218",
      "page": 95,
      "ordinal": 218,
      "text": " 2 ",
      "top": 843.0,
      "left": 734.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0219",
      "page": 95,
      "ordinal": 219,
      "text": "个消",
      "top": 843.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0220",
      "page": 95,
      "ordinal": 220,
      "text": "息，这",
      "top": 867.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0221",
      "page": 95,
      "ordinal": 221,
      "text": " 2 ",
      "top": 867.0,
      "left": 156.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0222",
      "page": 95,
      "ordinal": 222,
      "text": "个消息对应的操作分别对应的数据库操作",
      "top": 867.0,
      "left": 172.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0224",
      "page": 95,
      "ordinal": 224,
      "text": "是：",
      "top": 867.0,
      "left": 439.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b001"
      }
    },
    {
      "id": "p095-t0226",
      "page": 95,
      "ordinal": 226,
      "text": "1. ",
      "top": 902.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b002"
      }
    },
    {
      "id": "p095-t0227",
      "page": 95,
      "ordinal": 227,
      "text": "更改用户会员等级。",
      "top": 902.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b002"
      }
    },
    {
      "id": "p095-t0229",
      "page": 95,
      "ordinal": 229,
      "text": "2. ",
      "top": 933.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b003"
      }
    },
    {
      "id": "p095-t0230",
      "page": 95,
      "ordinal": 230,
      "text": "根据会员等级计算订单价格。",
      "top": 933.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b003"
      }
    },
    {
      "id": "p095-t0233",
      "page": 95,
      "ordinal": 233,
      "text": "假如这两条消息的消费顺序不一样造成的最终结果就会截然不同。",
      "top": 968.0,
      "left": 116.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0234",
      "page": 95,
      "ordinal": 234,
      "text": " Kafka ",
      "top": 968.0,
      "left": 540.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0235",
      "page": 95,
      "ordinal": 235,
      "text": "中",
      "top": 968.0,
      "left": 585.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0236",
      "page": 95,
      "ordinal": 236,
      "text": " Partition(",
      "top": 968.0,
      "left": 600.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0237",
      "page": 95,
      "ordinal": 237,
      "text": "分区",
      "top": 968.0,
      "left": 666.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0238",
      "page": 95,
      "ordinal": 238,
      "text": ")",
      "top": 968.0,
      "left": 696.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0239",
      "page": 95,
      "ordinal": 239,
      "text": "是真正保存",
      "top": 968.0,
      "left": 700.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0240",
      "page": 95,
      "ordinal": 240,
      "text": "消息的地方，我们发送的消息都被放在",
      "top": 992.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0242",
      "page": 95,
      "ordinal": 242,
      "text": "了这里。而我们的",
      "top": 992.0,
      "left": 364.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0243",
      "page": 95,
      "ordinal": 243,
      "text": " Partition(",
      "top": 992.0,
      "left": 481.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0244",
      "page": 95,
      "ordinal": 244,
      "text": "分区",
      "top": 992.0,
      "left": 548.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0245",
      "page": 95,
      "ordinal": 245,
      "text": ") ",
      "top": 992.0,
      "left": 577.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0246",
      "page": 95,
      "ordinal": 246,
      "text": "又存在于",
      "top": 992.0,
      "left": 585.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0247",
      "page": 95,
      "ordinal": 247,
      "text": " Topic(",
      "top": 992.0,
      "left": 644.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0248",
      "page": 95,
      "ordinal": 248,
      "text": "主题",
      "top": 992.0,
      "left": 688.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0249",
      "page": 95,
      "ordinal": 249,
      "text": ") ",
      "top": 992.0,
      "left": 718.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0250",
      "page": 95,
      "ordinal": 250,
      "text": "这个概",
      "top": 992.0,
      "left": 726.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0251",
      "page": 95,
      "ordinal": 251,
      "text": "念中，并",
      "top": 1014.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0253",
      "page": 95,
      "ordinal": 253,
      "text": "且我们可以给特定",
      "top": 1014.0,
      "left": 174.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0254",
      "page": 95,
      "ordinal": 254,
      "text": " Topic ",
      "top": 1014.0,
      "left": 291.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0255",
      "page": 95,
      "ordinal": 255,
      "text": "指定多个",
      "top": 1014.0,
      "left": 335.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0256",
      "page": 95,
      "ordinal": 256,
      "text": " Partition",
      "top": 1014.0,
      "left": 394.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0257",
      "page": 95,
      "ordinal": 257,
      "text": "。",
      "top": 1014.0,
      "left": 456.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0259",
      "page": 95,
      "ordinal": 259,
      "text": "每次添加消息到",
      "top": 1014.0,
      "left": 474.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0260",
      "page": 95,
      "ordinal": 260,
      "text": " Partition(",
      "top": 1014.0,
      "left": 577.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0261",
      "page": 95,
      "ordinal": 261,
      "text": "分区",
      "top": 1014.0,
      "left": 643.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0262",
      "page": 95,
      "ordinal": 262,
      "text": ") ",
      "top": 1014.0,
      "left": 673.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0263",
      "page": 95,
      "ordinal": 263,
      "text": "的时候都会采",
      "top": 1014.0,
      "left": 681.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0264",
      "page": 95,
      "ordinal": 264,
      "text": "用尾加法，如上图所示。",
      "top": 1038.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0265",
      "page": 95,
      "ordinal": 265,
      "text": " Kafka ",
      "top": 1038.0,
      "left": 273.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0266",
      "page": 95,
      "ordinal": 266,
      "text": "只能为我们保证",
      "top": 1038.0,
      "left": 318.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0267",
      "page": 95,
      "ordinal": 267,
      "text": " Partition(",
      "top": 1038.0,
      "left": 420.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0268",
      "page": 95,
      "ordinal": 268,
      "text": "分区",
      "top": 1038.0,
      "left": 487.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0269",
      "page": 95,
      "ordinal": 269,
      "text": ") ",
      "top": 1038.0,
      "left": 516.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0270",
      "page": 95,
      "ordinal": 270,
      "text": "中的消息有序。",
      "top": 1038.0,
      "left": 524.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0272",
      "page": 95,
      "ordinal": 272,
      "text": "消息在被追加到",
      "top": 1062.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0273",
      "page": 95,
      "ordinal": 273,
      "text": " Partition(",
      "top": 1062.0,
      "left": 218.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0274",
      "page": 95,
      "ordinal": 274,
      "text": "分区",
      "top": 1062.0,
      "left": 285.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0275",
      "page": 95,
      "ordinal": 275,
      "text": ")",
      "top": 1062.0,
      "left": 314.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0276",
      "page": 95,
      "ordinal": 276,
      "text": "的时候都会分配一个特定的偏移量",
      "top": 1062.0,
      "left": 318.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0278",
      "page": 95,
      "ordinal": 278,
      "text": "（",
      "top": 1062.0,
      "left": 541.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0279",
      "page": 95,
      "ordinal": 279,
      "text": "offset",
      "top": 1062.0,
      "left": 556.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0280",
      "page": 95,
      "ordinal": 280,
      "text": "）。",
      "top": 1062.0,
      "left": 595.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0281",
      "page": 95,
      "ordinal": 281,
      "text": "Kafka ",
      "top": 1062.0,
      "left": 624.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0282",
      "page": 95,
      "ordinal": 282,
      "text": "通过偏移量",
      "top": 1062.0,
      "left": 666.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0283",
      "page": 95,
      "ordinal": 283,
      "text": "（",
      "top": 1085.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0284",
      "page": 95,
      "ordinal": 284,
      "text": "offset",
      "top": 1085.0,
      "left": 126.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0285",
      "page": 95,
      "ordinal": 285,
      "text": "）来保证消息在分区内的顺序性。",
      "top": 1085.0,
      "left": 165.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0287",
      "page": 95,
      "ordinal": 287,
      "text": "所以，我们就有一种很简单的保证消息消费顺序的方法：",
      "top": 1085.0,
      "left": 389.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0288",
      "page": 95,
      "ordinal": 288,
      "text": "1 ",
      "top": 1085.0,
      "left": 754.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0289",
      "page": 95,
      "ordinal": 289,
      "text": "个",
      "top": 1085.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0291",
      "page": 95,
      "ordinal": 291,
      "text": "Topic ",
      "top": 1109.0,
      "left": 112.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0292",
      "page": 95,
      "ordinal": 292,
      "text": "只对应一",
      "top": 1109.0,
      "left": 152.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0294",
      "page": 95,
      "ordinal": 294,
      "text": "个",
      "top": 1109.0,
      "left": 214.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0295",
      "page": 95,
      "ordinal": 295,
      "text": " Partition",
      "top": 1109.0,
      "left": 229.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0296",
      "page": 95,
      "ordinal": 296,
      "text": "。这样当然可以解决问题，但是破坏了",
      "top": 1109.0,
      "left": 291.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0297",
      "page": 95,
      "ordinal": 297,
      "text": " Kafka ",
      "top": 1109.0,
      "left": 540.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0298",
      "page": 95,
      "ordinal": 298,
      "text": "的设计初衷。",
      "top": 1109.0,
      "left": 585.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0299",
      "page": 95,
      "ordinal": 299,
      "text": " Kafka ",
      "top": 1109.0,
      "left": 673.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0300",
      "page": 95,
      "ordinal": 300,
      "text": "中发送",
      "top": 1109.0,
      "left": 719.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0301",
      "page": 95,
      "ordinal": 301,
      "text": " 1 ",
      "top": 1109.0,
      "left": 762.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0302",
      "page": 95,
      "ordinal": 302,
      "text": "条消息的时候，可以指定",
      "top": 1131.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0303",
      "page": 95,
      "ordinal": 303,
      "text": " topic, partition, key,data",
      "top": 1131.0,
      "left": 273.0,
      "width": 168.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0304",
      "page": 95,
      "ordinal": 304,
      "text": "（数",
      "top": 1131.0,
      "left": 441.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0306",
      "page": 95,
      "ordinal": 306,
      "text": "据）",
      "top": 1131.0,
      "left": 474.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0307",
      "page": 95,
      "ordinal": 307,
      "text": " 4 ",
      "top": 1131.0,
      "left": 503.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0308",
      "page": 95,
      "ordinal": 308,
      "text": "个参数。如果你发送消息的时候指定了",
      "top": 1131.0,
      "left": 519.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0310",
      "page": 95,
      "ordinal": 310,
      "text": "Partition ",
      "top": 1155.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0311",
      "page": 95,
      "ordinal": 311,
      "text": "的话，所有消息都",
      "top": 1155.0,
      "left": 174.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0313",
      "page": 95,
      "ordinal": 313,
      "text": "会被发送到指定的",
      "top": 1155.0,
      "left": 295.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0314",
      "page": 95,
      "ordinal": 314,
      "text": " Partition",
      "top": 1155.0,
      "left": 412.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0315",
      "page": 95,
      "ordinal": 315,
      "text": "。并且，同一个",
      "top": 1155.0,
      "left": 474.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0316",
      "page": 95,
      "ordinal": 316,
      "text": " key ",
      "top": 1155.0,
      "left": 576.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p095-t0317",
      "page": 95,
      "ordinal": 317,
      "text": "的消息可以保证只发送到",
      "top": 1155.0,
      "left": 607.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0001",
      "page": 96,
      "ordinal": 1,
      "text": "同",
      "top": 44.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0003",
      "page": 96,
      "ordinal": 3,
      "text": "一个",
      "top": 44.0,
      "left": 130.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0004",
      "page": 96,
      "ordinal": 4,
      "text": " partition",
      "top": 44.0,
      "left": 159.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0005",
      "page": 96,
      "ordinal": 5,
      "text": "，这个我们可以采用表",
      "top": 44.0,
      "left": 222.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0006",
      "page": 96,
      "ordinal": 6,
      "text": "/",
      "top": 44.0,
      "left": 368.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0007",
      "page": 96,
      "ordinal": 7,
      "text": "对象的",
      "top": 44.0,
      "left": 373.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0008",
      "page": 96,
      "ordinal": 8,
      "text": " id ",
      "top": 44.0,
      "left": 417.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0009",
      "page": 96,
      "ordinal": 9,
      "text": "来作为",
      "top": 44.0,
      "left": 438.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0010",
      "page": 96,
      "ordinal": 10,
      "text": " key",
      "top": 44.0,
      "left": 481.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0011",
      "page": 96,
      "ordinal": 11,
      "text": "。",
      "top": 44.0,
      "left": 509.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0013",
      "page": 96,
      "ordinal": 13,
      "text": "总结一下，对于如何保证",
      "top": 67.0,
      "left": 116.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0014",
      "page": 96,
      "ordinal": 14,
      "text": " Kafka ",
      "top": 67.0,
      "left": 276.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0015",
      "page": 96,
      "ordinal": 15,
      "text": "中消息消费的顺序，有了下面两种方法：",
      "top": 67.0,
      "left": 322.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b004"
      }
    },
    {
      "id": "p096-t0017",
      "page": 96,
      "ordinal": 17,
      "text": "1. 1 ",
      "top": 102.0,
      "left": 129.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0018",
      "page": 96,
      "ordinal": 18,
      "text": "个",
      "top": 102.0,
      "left": 158.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0019",
      "page": 96,
      "ordinal": 19,
      "text": " Topic ",
      "top": 102.0,
      "left": 172.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0020",
      "page": 96,
      "ordinal": 20,
      "text": "只对应一个",
      "top": 102.0,
      "left": 216.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0021",
      "page": 96,
      "ordinal": 21,
      "text": " Partition",
      "top": 102.0,
      "left": 290.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0022",
      "page": 96,
      "ordinal": 22,
      "text": "。",
      "top": 102.0,
      "left": 352.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b005"
      }
    },
    {
      "id": "p096-t0024",
      "page": 96,
      "ordinal": 24,
      "text": "2. ",
      "top": 132.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b006"
      }
    },
    {
      "id": "p096-t0025",
      "page": 96,
      "ordinal": 25,
      "text": "发送消息的时候指定",
      "top": 132.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b006"
      }
    },
    {
      "id": "p096-t0026",
      "page": 96,
      "ordinal": 26,
      "text": " key/Partition  ",
      "top": 132.0,
      "left": 277.0,
      "width": 98.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p095-h04",
        "heading_id": "p095-h04",
        "block_id": "q-p095-h04-b006"
      }
    },
    {
      "id": "p096-t0027",
      "page": 96,
      "ordinal": 27,
      "text": "Kafka ",
      "top": 167.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01"
      }
    },
    {
      "id": "p096-t0028",
      "page": 96,
      "ordinal": 28,
      "text": "如何保证消息不丢失？",
      "top": 167.0,
      "left": 192.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01"
      }
    },
    {
      "id": "p096-t0032",
      "page": 96,
      "ordinal": 32,
      "text": "生产者丢失消息的情况",
      "top": 218.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0034",
      "page": 96,
      "ordinal": 34,
      "text": "生产者",
      "top": 242.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0035",
      "page": 96,
      "ordinal": 35,
      "text": "(Producer) ",
      "top": 242.0,
      "left": 156.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0036",
      "page": 96,
      "ordinal": 36,
      "text": "调用",
      "top": 242.0,
      "left": 231.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0037",
      "page": 96,
      "ordinal": 37,
      "text": " send ",
      "top": 242.0,
      "left": 260.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0038",
      "page": 96,
      "ordinal": 38,
      "text": "方法发送消息之后，消息可能因为网络问题并没",
      "top": 242.0,
      "left": 301.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0040",
      "page": 96,
      "ordinal": 40,
      "text": "有发送过去。",
      "top": 242.0,
      "left": 612.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0042",
      "page": 96,
      "ordinal": 42,
      "text": "所以，我们",
      "top": 242.0,
      "left": 703.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0043",
      "page": 96,
      "ordinal": 43,
      "text": "不能默认在调用",
      "top": 265.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0044",
      "page": 96,
      "ordinal": 44,
      "text": " send ",
      "top": 265.0,
      "left": 214.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0045",
      "page": 96,
      "ordinal": 45,
      "text": "方法发送消息之后消息发送成功了。为了确定",
      "top": 265.0,
      "left": 255.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0047",
      "page": 96,
      "ordinal": 47,
      "text": "消息是发送成功，我们要判断消息",
      "top": 265.0,
      "left": 551.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0048",
      "page": 96,
      "ordinal": 48,
      "text": "发送的结果。但是要注意的是",
      "top": 288.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0049",
      "page": 96,
      "ordinal": 49,
      "text": " Kafka ",
      "top": 288.0,
      "left": 302.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0050",
      "page": 96,
      "ordinal": 50,
      "text": "生产者",
      "top": 288.0,
      "left": 347.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0051",
      "page": 96,
      "ordinal": 51,
      "text": " (Producer) ",
      "top": 288.0,
      "left": 391.0,
      "width": 79.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0052",
      "page": 96,
      "ordinal": 52,
      "text": "使用",
      "top": 288.0,
      "left": 470.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0053",
      "page": 96,
      "ordinal": 53,
      "text": " send ",
      "top": 288.0,
      "left": 499.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0054",
      "page": 96,
      "ordinal": 54,
      "text": "方法发送消息实际上是异步的操作，",
      "top": 288.0,
      "left": 540.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0055",
      "page": 96,
      "ordinal": 55,
      "text": "我们可以通",
      "top": 311.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0057",
      "page": 96,
      "ordinal": 57,
      "text": "过",
      "top": 311.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0058",
      "page": 96,
      "ordinal": 58,
      "text": " get()",
      "top": 311.0,
      "left": 203.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0059",
      "page": 96,
      "ordinal": 59,
      "text": "方法获取调用结果，但是这样也让它变为了同步操作",
      "top": 311.0,
      "left": 237.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0061",
      "page": 96,
      "ordinal": 61,
      "text": "消费者丢失消息的情况",
      "top": 335.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0063",
      "page": 96,
      "ordinal": 63,
      "text": "我们知道消息在被追加到",
      "top": 359.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0064",
      "page": 96,
      "ordinal": 64,
      "text": " Partition(",
      "top": 359.0,
      "left": 273.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0065",
      "page": 96,
      "ordinal": 65,
      "text": "分区",
      "top": 359.0,
      "left": 339.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0066",
      "page": 96,
      "ordinal": 66,
      "text": ")",
      "top": 359.0,
      "left": 368.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0067",
      "page": 96,
      "ordinal": 67,
      "text": "的时候都会分配一个特定的偏移量",
      "top": 359.0,
      "left": 373.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0069",
      "page": 96,
      "ordinal": 69,
      "text": "（",
      "top": 359.0,
      "left": 596.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0070",
      "page": 96,
      "ordinal": 70,
      "text": "offset",
      "top": 359.0,
      "left": 611.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0071",
      "page": 96,
      "ordinal": 71,
      "text": "）。偏移量（",
      "top": 359.0,
      "left": 650.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0072",
      "page": 96,
      "ordinal": 72,
      "text": "offset)",
      "top": 359.0,
      "left": 737.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0073",
      "page": 96,
      "ordinal": 73,
      "text": "表示",
      "top": 382.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0074",
      "page": 96,
      "ordinal": 74,
      "text": " Consumer ",
      "top": 382.0,
      "left": 141.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0075",
      "page": 96,
      "ordinal": 75,
      "text": "当前消费到的",
      "top": 382.0,
      "left": 219.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0076",
      "page": 96,
      "ordinal": 76,
      "text": " Partition(",
      "top": 382.0,
      "left": 307.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0077",
      "page": 96,
      "ordinal": 77,
      "text": "分区",
      "top": 382.0,
      "left": 374.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0078",
      "page": 96,
      "ordinal": 78,
      "text": ") ",
      "top": 382.0,
      "left": 403.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0079",
      "page": 96,
      "ordinal": 79,
      "text": "的所在的位置。",
      "top": 382.0,
      "left": 411.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0080",
      "page": 96,
      "ordinal": 80,
      "text": "Kafka ",
      "top": 382.0,
      "left": 513.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0081",
      "page": 96,
      "ordinal": 81,
      "text": "通过偏移量（",
      "top": 382.0,
      "left": 555.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0082",
      "page": 96,
      "ordinal": 82,
      "text": "offset",
      "top": 382.0,
      "left": 643.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0083",
      "page": 96,
      "ordinal": 83,
      "text": "）可以保证消",
      "top": 382.0,
      "left": 682.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0084",
      "page": 96,
      "ordinal": 84,
      "text": "息在分区内的顺序",
      "top": 405.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0086",
      "page": 96,
      "ordinal": 86,
      "text": "性。",
      "top": 405.0,
      "left": 233.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0088",
      "page": 96,
      "ordinal": 88,
      "text": "当消费者拉取到了分区的某个消息之后，消费者会自动提交了",
      "top": 405.0,
      "left": 266.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0089",
      "page": 96,
      "ordinal": 89,
      "text": " offset",
      "top": 405.0,
      "left": 660.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0090",
      "page": 96,
      "ordinal": 90,
      "text": "。自动提",
      "top": 405.0,
      "left": 703.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0092",
      "page": 96,
      "ordinal": 92,
      "text": "交",
      "top": 405.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0093",
      "page": 96,
      "ordinal": 93,
      "text": "的话会有一个问题，试想一下，当消费者刚拿到这个消息准备进行真正消费",
      "top": 428.0,
      "left": 112.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0095",
      "page": 96,
      "ordinal": 95,
      "text": "的时候，突然挂掉了，消息",
      "top": 428.0,
      "left": 598.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0096",
      "page": 96,
      "ordinal": 96,
      "text": "实际上并没有被消费，但是",
      "top": 452.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0097",
      "page": 96,
      "ordinal": 97,
      "text": " offset ",
      "top": 452.0,
      "left": 287.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0098",
      "page": 96,
      "ordinal": 98,
      "text": "却被自动提交",
      "top": 452.0,
      "left": 334.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0100",
      "page": 96,
      "ordinal": 100,
      "text": "了。",
      "top": 452.0,
      "left": 425.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0102",
      "page": 96,
      "ordinal": 102,
      "text": "解决办法也比较粗暴，我们手动关闭自动提交",
      "top": 452.0,
      "left": 459.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0104",
      "page": 96,
      "ordinal": 104,
      "text": "offset",
      "top": 476.0,
      "left": 112.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0105",
      "page": 96,
      "ordinal": 105,
      "text": "，每次在真正消费完消息",
      "top": 476.0,
      "left": 151.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0107",
      "page": 96,
      "ordinal": 107,
      "text": "之后再自己手动提交",
      "top": 476.0,
      "left": 316.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0108",
      "page": 96,
      "ordinal": 108,
      "text": " offset ",
      "top": 476.0,
      "left": 447.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0109",
      "page": 96,
      "ordinal": 109,
      "text": "。",
      "top": 476.0,
      "left": 494.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0111",
      "page": 96,
      "ordinal": 111,
      "text": "但是，细心的朋友一定会发现，这样会带",
      "top": 476.0,
      "left": 512.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0112",
      "page": 96,
      "ordinal": 112,
      "text": "来",
      "top": 499.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0114",
      "page": 96,
      "ordinal": 114,
      "text": "消息被重新消费的问题。比如你刚刚消费完消息之后，还没提交",
      "top": 499.0,
      "left": 130.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0115",
      "page": 96,
      "ordinal": 115,
      "text": " offset",
      "top": 499.0,
      "left": 540.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0116",
      "page": 96,
      "ordinal": 116,
      "text": "，结果",
      "top": 499.0,
      "left": 583.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0118",
      "page": 96,
      "ordinal": 118,
      "text": "自己挂掉了，那么这个",
      "top": 499.0,
      "left": 630.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0119",
      "page": 96,
      "ordinal": 119,
      "text": "消息理论上就会被消费两次",
      "top": 522.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h01",
        "heading_id": "p096-h01",
        "block_id": "q-p096-h01-b001"
      }
    },
    {
      "id": "p096-t0121",
      "page": 96,
      "ordinal": 121,
      "text": "Kafka ",
      "top": 556.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02"
      }
    },
    {
      "id": "p096-t0122",
      "page": 96,
      "ordinal": 122,
      "text": "判断一个节点是否还活着有那两个条件？",
      "top": 556.0,
      "left": 192.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02"
      }
    },
    {
      "id": "p096-t0125",
      "page": 96,
      "ordinal": 125,
      "text": "1. ",
      "top": 607.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0126",
      "page": 96,
      "ordinal": 126,
      "text": "节点必须可以维护和",
      "top": 607.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0127",
      "page": 96,
      "ordinal": 127,
      "text": " ZooKeeper ",
      "top": 607.0,
      "left": 277.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0128",
      "page": 96,
      "ordinal": 128,
      "text": "的连接，",
      "top": 607.0,
      "left": 359.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0129",
      "page": 96,
      "ordinal": 129,
      "text": "Zookeeper ",
      "top": 607.0,
      "left": 418.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0130",
      "page": 96,
      "ordinal": 130,
      "text": "通过心跳机制检查每",
      "top": 607.0,
      "left": 495.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0132",
      "page": 96,
      "ordinal": 132,
      "text": "个节点的连接；",
      "top": 607.0,
      "left": 630.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b001"
      }
    },
    {
      "id": "p096-t0133",
      "page": 96,
      "ordinal": 133,
      "text": "2. ",
      "top": 638.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0134",
      "page": 96,
      "ordinal": 134,
      "text": "如果节点是个",
      "top": 638.0,
      "left": 146.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0135",
      "page": 96,
      "ordinal": 135,
      "text": " follower,",
      "top": 638.0,
      "left": 233.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0136",
      "page": 96,
      "ordinal": 136,
      "text": "他必须能及时的同步",
      "top": 638.0,
      "left": 296.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0137",
      "page": 96,
      "ordinal": 137,
      "text": " leader ",
      "top": 638.0,
      "left": 428.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0138",
      "page": 96,
      "ordinal": 138,
      "text": "的写操作，延时不能太久",
      "top": 638.0,
      "left": 479.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h02",
        "heading_id": "p096-h02",
        "block_id": "q-p096-h02-b002"
      }
    },
    {
      "id": "p096-t0140",
      "page": 96,
      "ordinal": 140,
      "text": "producer ",
      "top": 672.0,
      "left": 112.0,
      "width": 123.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0141",
      "page": 96,
      "ordinal": 141,
      "text": "是否直接将数据发送到",
      "top": 672.0,
      "left": 235.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0142",
      "page": 96,
      "ordinal": 142,
      "text": " broker ",
      "top": 672.0,
      "left": 491.0,
      "width": 100.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0143",
      "page": 96,
      "ordinal": 143,
      "text": "的",
      "top": 672.0,
      "left": 590.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0144",
      "page": 96,
      "ordinal": 144,
      "text": " leader",
      "top": 672.0,
      "left": 616.0,
      "width": 88.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0145",
      "page": 96,
      "ordinal": 145,
      "text": "（主节",
      "top": 672.0,
      "left": 704.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0147",
      "page": 96,
      "ordinal": 147,
      "text": "点）",
      "top": 704.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03"
      }
    },
    {
      "id": "p096-t0150",
      "page": 96,
      "ordinal": 150,
      "text": " producer ",
      "top": 755.0,
      "left": 112.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0151",
      "page": 96,
      "ordinal": 151,
      "text": "直接将数据发送到",
      "top": 755.0,
      "left": 182.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0152",
      "page": 96,
      "ordinal": 152,
      "text": " broker ",
      "top": 755.0,
      "left": 299.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0153",
      "page": 96,
      "ordinal": 153,
      "text": "的",
      "top": 755.0,
      "left": 352.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0154",
      "page": 96,
      "ordinal": 154,
      "text": " leader(",
      "top": 755.0,
      "left": 367.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0155",
      "page": 96,
      "ordinal": 155,
      "text": "主节点",
      "top": 755.0,
      "left": 418.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0156",
      "page": 96,
      "ordinal": 156,
      "text": ")",
      "top": 755.0,
      "left": 462.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0157",
      "page": 96,
      "ordinal": 157,
      "text": "，不需要在多个节点",
      "top": 755.0,
      "left": 467.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0159",
      "page": 96,
      "ordinal": 159,
      "text": "进行分发，为了",
      "top": 755.0,
      "left": 602.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0161",
      "page": 96,
      "ordinal": 161,
      "text": "帮助",
      "top": 755.0,
      "left": 708.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0163",
      "page": 96,
      "ordinal": 163,
      "text": "producer ",
      "top": 778.0,
      "left": 112.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0164",
      "page": 96,
      "ordinal": 164,
      "text": "做到这点，所有的",
      "top": 778.0,
      "left": 178.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0165",
      "page": 96,
      "ordinal": 165,
      "text": " Kafka ",
      "top": 778.0,
      "left": 295.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0166",
      "page": 96,
      "ordinal": 166,
      "text": "节点都可以及时的告知",
      "top": 778.0,
      "left": 341.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0167",
      "page": 96,
      "ordinal": 167,
      "text": ":",
      "top": 778.0,
      "left": 487.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0168",
      "page": 96,
      "ordinal": 168,
      "text": "哪些节点是",
      "top": 778.0,
      "left": 491.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0170",
      "page": 96,
      "ordinal": 170,
      "text": "活动的，目标",
      "top": 778.0,
      "left": 568.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0171",
      "page": 96,
      "ordinal": 171,
      "text": " topic ",
      "top": 778.0,
      "left": 656.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0172",
      "page": 96,
      "ordinal": 172,
      "text": "目标分区的",
      "top": 778.0,
      "left": 697.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0174",
      "page": 96,
      "ordinal": 174,
      "text": "leader ",
      "top": 801.0,
      "left": 112.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0175",
      "page": 96,
      "ordinal": 175,
      "text": "在哪。这样",
      "top": 801.0,
      "left": 159.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0176",
      "page": 96,
      "ordinal": 176,
      "text": " producer ",
      "top": 801.0,
      "left": 232.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0177",
      "page": 96,
      "ordinal": 177,
      "text": "就可以直接将消息发送到目",
      "top": 801.0,
      "left": 302.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0179",
      "page": 96,
      "ordinal": 179,
      "text": "的地了",
      "top": 801.0,
      "left": 482.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h03",
        "heading_id": "p096-h03",
        "block_id": "q-p096-h03-b001"
      }
    },
    {
      "id": "p096-t0181",
      "page": 96,
      "ordinal": 181,
      "text": "Kafka consumer ",
      "top": 835.0,
      "left": 112.0,
      "width": 214.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04"
      }
    },
    {
      "id": "p096-t0182",
      "page": 96,
      "ordinal": 182,
      "text": "是否可以消费指定分区消息吗？",
      "top": 835.0,
      "left": 326.0,
      "width": 358.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04"
      }
    },
    {
      "id": "p096-t0185",
      "page": 96,
      "ordinal": 185,
      "text": " Kafa consumer ",
      "top": 886.0,
      "left": 112.0,
      "width": 110.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0186",
      "page": 96,
      "ordinal": 186,
      "text": "消费消息时，向",
      "top": 886.0,
      "left": 222.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0187",
      "page": 96,
      "ordinal": 187,
      "text": " broker ",
      "top": 886.0,
      "left": 324.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0188",
      "page": 96,
      "ordinal": 188,
      "text": "发出",
      "top": 886.0,
      "left": 377.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0189",
      "page": 96,
      "ordinal": 189,
      "text": "\"fetch\"",
      "top": 886.0,
      "left": 407.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0190",
      "page": 96,
      "ordinal": 190,
      "text": "请求去消费特定分区的消",
      "top": 886.0,
      "left": 453.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0192",
      "page": 96,
      "ordinal": 192,
      "text": "息，",
      "top": 886.0,
      "left": 617.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0193",
      "page": 96,
      "ordinal": 193,
      "text": "consumer ",
      "top": 886.0,
      "left": 647.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0194",
      "page": 96,
      "ordinal": 194,
      "text": "指定消息",
      "top": 886.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0195",
      "page": 96,
      "ordinal": 195,
      "text": "在日志中的偏移量（",
      "top": 910.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0196",
      "page": 96,
      "ordinal": 196,
      "text": "offset",
      "top": 910.0,
      "left": 243.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0197",
      "page": 96,
      "ordinal": 197,
      "text": "），就可以消费从这个位置",
      "top": 910.0,
      "left": 282.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0199",
      "page": 96,
      "ordinal": 199,
      "text": "开始的消息，",
      "top": 910.0,
      "left": 462.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0200",
      "page": 96,
      "ordinal": 200,
      "text": "customer ",
      "top": 910.0,
      "left": 550.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0201",
      "page": 96,
      "ordinal": 201,
      "text": "拥有了",
      "top": 910.0,
      "left": 618.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0202",
      "page": 96,
      "ordinal": 202,
      "text": " offset ",
      "top": 910.0,
      "left": 662.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0203",
      "page": 96,
      "ordinal": 203,
      "text": "的控制权，",
      "top": 910.0,
      "left": 709.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0204",
      "page": 96,
      "ordinal": 204,
      "text": "可以向后回滚去重新消费之",
      "top": 933.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0206",
      "page": 96,
      "ordinal": 206,
      "text": "前的消息，这是很有意义的",
      "top": 933.0,
      "left": 291.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h04",
        "heading_id": "p096-h04",
        "block_id": "q-p096-h04-b001"
      }
    },
    {
      "id": "p096-t0208",
      "page": 96,
      "ordinal": 208,
      "text": "Kafka ",
      "top": 967.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05"
      }
    },
    {
      "id": "p096-t0209",
      "page": 96,
      "ordinal": 209,
      "text": "高效文件存储设计特点是什么",
      "top": 967.0,
      "left": 192.0,
      "width": 333.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05"
      }
    },
    {
      "id": "p096-t0212",
      "page": 96,
      "ordinal": 212,
      "text": "1. Kafka ",
      "top": 1018.0,
      "left": 129.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0213",
      "page": 96,
      "ordinal": 213,
      "text": "把",
      "top": 1018.0,
      "left": 187.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0214",
      "page": 96,
      "ordinal": 214,
      "text": " topic ",
      "top": 1018.0,
      "left": 202.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0215",
      "page": 96,
      "ordinal": 215,
      "text": "中一个",
      "top": 1018.0,
      "left": 243.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0216",
      "page": 96,
      "ordinal": 216,
      "text": " parition ",
      "top": 1018.0,
      "left": 287.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0217",
      "page": 96,
      "ordinal": 217,
      "text": "大文件分成多个小文件段，通过多个小",
      "top": 1018.0,
      "left": 348.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0219",
      "page": 96,
      "ordinal": 219,
      "text": "文件段，就容易定期清除或",
      "top": 1018.0,
      "left": 600.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0220",
      "page": 96,
      "ordinal": 220,
      "text": "删除已经消费完文件，减少磁盘占用。",
      "top": 1041.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b001"
      }
    },
    {
      "id": "p096-t0222",
      "page": 96,
      "ordinal": 222,
      "text": "2. ",
      "top": 1072.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0223",
      "page": 96,
      "ordinal": 223,
      "text": "通过索引信息可以快速定位",
      "top": 1072.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0224",
      "page": 96,
      "ordinal": 224,
      "text": " message ",
      "top": 1072.0,
      "left": 321.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0225",
      "page": 96,
      "ordinal": 225,
      "text": "和确定",
      "top": 1072.0,
      "left": 389.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0226",
      "page": 96,
      "ordinal": 226,
      "text": " response ",
      "top": 1072.0,
      "left": 433.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0227",
      "page": 96,
      "ordinal": 227,
      "text": "的最大大小。",
      "top": 1072.0,
      "left": 503.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b002"
      }
    },
    {
      "id": "p096-t0229",
      "page": 96,
      "ordinal": 229,
      "text": "3. ",
      "top": 1103.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0230",
      "page": 96,
      "ordinal": 230,
      "text": "通过",
      "top": 1103.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0231",
      "page": 96,
      "ordinal": 231,
      "text": " index ",
      "top": 1103.0,
      "left": 175.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0232",
      "page": 96,
      "ordinal": 232,
      "text": "元数据全部映射到",
      "top": 1103.0,
      "left": 220.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0233",
      "page": 96,
      "ordinal": 233,
      "text": " memory",
      "top": 1103.0,
      "left": 337.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0234",
      "page": 96,
      "ordinal": 234,
      "text": "，可以避免",
      "top": 1103.0,
      "left": 398.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0235",
      "page": 96,
      "ordinal": 235,
      "text": " segment file ",
      "top": 1103.0,
      "left": 471.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0236",
      "page": 96,
      "ordinal": 236,
      "text": "的",
      "top": 1103.0,
      "left": 562.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0237",
      "page": 96,
      "ordinal": 237,
      "text": " IO ",
      "top": 1103.0,
      "left": 577.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0238",
      "page": 96,
      "ordinal": 238,
      "text": "磁盘操作。",
      "top": 1103.0,
      "left": 600.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b003"
      }
    },
    {
      "id": "p096-t0240",
      "page": 96,
      "ordinal": 240,
      "text": "4. ",
      "top": 1134.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b004"
      }
    },
    {
      "id": "p096-t0241",
      "page": 96,
      "ordinal": 241,
      "text": "通过索引文件稀疏存储，可以大幅降低",
      "top": 1134.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b004"
      }
    },
    {
      "id": "p096-t0242",
      "page": 96,
      "ordinal": 242,
      "text": " index ",
      "top": 1134.0,
      "left": 394.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b004"
      }
    },
    {
      "id": "p096-t0243",
      "page": 96,
      "ordinal": 243,
      "text": "文件元数据占用空间大小。",
      "top": 1134.0,
      "left": 439.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p096-h05",
        "heading_id": "p096-h05",
        "block_id": "q-p096-h05-b004"
      }
    },
    {
      "id": "p097-t0001",
      "page": 97,
      "ordinal": 1,
      "text": "partition ",
      "top": 40.0,
      "left": 112.0,
      "width": 120.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01"
      }
    },
    {
      "id": "p097-t0002",
      "page": 97,
      "ordinal": 2,
      "text": "的数据如何保存到硬盘",
      "top": 40.0,
      "left": 232.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01"
      }
    },
    {
      "id": "p097-t0005",
      "page": 97,
      "ordinal": 5,
      "text": " topic ",
      "top": 91.0,
      "left": 112.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0006",
      "page": 97,
      "ordinal": 6,
      "text": "中的多个",
      "top": 91.0,
      "left": 153.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0007",
      "page": 97,
      "ordinal": 7,
      "text": " partition ",
      "top": 91.0,
      "left": 211.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0008",
      "page": 97,
      "ordinal": 8,
      "text": "以文件夹的形式保存到",
      "top": 91.0,
      "left": 278.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0009",
      "page": 97,
      "ordinal": 9,
      "text": " broker",
      "top": 91.0,
      "left": 424.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0010",
      "page": 97,
      "ordinal": 10,
      "text": "，每个分区序号从",
      "top": 91.0,
      "left": 473.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0011",
      "page": 97,
      "ordinal": 11,
      "text": " 0 ",
      "top": 91.0,
      "left": 590.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0012",
      "page": 97,
      "ordinal": 12,
      "text": "递增，且消息有序。",
      "top": 91.0,
      "left": 606.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0014",
      "page": 97,
      "ordinal": 14,
      "text": "Partition ",
      "top": 114.0,
      "left": 112.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0015",
      "page": 97,
      "ordinal": 15,
      "text": "文件下有多个",
      "top": 114.0,
      "left": 174.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0016",
      "page": 97,
      "ordinal": 16,
      "text": " segment",
      "top": 114.0,
      "left": 262.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0017",
      "page": 97,
      "ordinal": 17,
      "text": "（",
      "top": 114.0,
      "left": 325.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0018",
      "page": 97,
      "ordinal": 18,
      "text": "xxx.index",
      "top": 114.0,
      "left": 339.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0019",
      "page": 97,
      "ordinal": 19,
      "text": "，",
      "top": 114.0,
      "left": 404.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0020",
      "page": 97,
      "ordinal": 20,
      "text": "xxx.log",
      "top": 114.0,
      "left": 418.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0021",
      "page": 97,
      "ordinal": 21,
      "text": "）",
      "top": 114.0,
      "left": 466.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0022",
      "page": 97,
      "ordinal": 22,
      "text": " segment ",
      "top": 114.0,
      "left": 480.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0023",
      "page": 97,
      "ordinal": 23,
      "text": "文件里的",
      "top": 114.0,
      "left": 547.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0025",
      "page": 97,
      "ordinal": 25,
      "text": "大小和配置文件大小一致",
      "top": 114.0,
      "left": 609.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0026",
      "page": 97,
      "ordinal": 26,
      "text": "可以根据要求修改，默认为",
      "top": 137.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0027",
      "page": 97,
      "ordinal": 27,
      "text": " 1g",
      "top": 137.0,
      "left": 287.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0028",
      "page": 97,
      "ordinal": 28,
      "text": "。",
      "top": 137.0,
      "left": 307.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0030",
      "page": 97,
      "ordinal": 30,
      "text": "如果大小大于",
      "top": 137.0,
      "left": 326.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0031",
      "page": 97,
      "ordinal": 31,
      "text": " 1g ",
      "top": 137.0,
      "left": 414.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0032",
      "page": 97,
      "ordinal": 32,
      "text": "时，会滚动一个新的",
      "top": 137.0,
      "left": 438.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0033",
      "page": 97,
      "ordinal": 33,
      "text": " segment ",
      "top": 137.0,
      "left": 569.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0034",
      "page": 97,
      "ordinal": 34,
      "text": "并且以上一个",
      "top": 137.0,
      "left": 636.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0036",
      "page": 97,
      "ordinal": 36,
      "text": "segment ",
      "top": 161.0,
      "left": 112.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0037",
      "page": 97,
      "ordinal": 37,
      "text": "最后",
      "top": 161.0,
      "left": 175.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0039",
      "page": 97,
      "ordinal": 39,
      "text": "一条消息的偏移量命名",
      "top": 161.0,
      "left": 208.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h01",
        "heading_id": "p097-h01",
        "block_id": "q-p097-h01-b001"
      }
    },
    {
      "id": "p097-t0041",
      "page": 97,
      "ordinal": 41,
      "text": "kafka ",
      "top": 195.0,
      "left": 112.0,
      "width": 79.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02"
      }
    },
    {
      "id": "p097-t0042",
      "page": 97,
      "ordinal": 42,
      "text": "生产数据时数据的分组策略是怎样的",
      "top": 195.0,
      "left": 191.0,
      "width": 410.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02"
      }
    },
    {
      "id": "p097-t0046",
      "page": 97,
      "ordinal": 46,
      "text": "生产者决定数据产生到集群的哪个",
      "top": 246.0,
      "left": 116.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0047",
      "page": 97,
      "ordinal": 47,
      "text": " partition ",
      "top": 246.0,
      "left": 335.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0048",
      "page": 97,
      "ordinal": 48,
      "text": "中，每一条消息都是以（",
      "top": 246.0,
      "left": 401.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0049",
      "page": 97,
      "ordinal": 49,
      "text": "key",
      "top": 246.0,
      "left": 562.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0050",
      "page": 97,
      "ordinal": 50,
      "text": "，",
      "top": 246.0,
      "left": 585.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0051",
      "page": 97,
      "ordinal": 51,
      "text": " value",
      "top": 246.0,
      "left": 600.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0052",
      "page": 97,
      "ordinal": 52,
      "text": "）格式，",
      "top": 246.0,
      "left": 640.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0053",
      "page": 97,
      "ordinal": 53,
      "text": "Key ",
      "top": 246.0,
      "left": 699.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0054",
      "page": 97,
      "ordinal": 54,
      "text": "是由生",
      "top": 246.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0055",
      "page": 97,
      "ordinal": 55,
      "text": "产者发送数据传入，所以生产者（",
      "top": 270.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0056",
      "page": 97,
      "ordinal": 56,
      "text": "key",
      "top": 270.0,
      "left": 331.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0057",
      "page": 97,
      "ordinal": 57,
      "text": "）决定了数据",
      "top": 270.0,
      "left": 354.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0059",
      "page": 97,
      "ordinal": 59,
      "text": "产生到集群的哪个",
      "top": 270.0,
      "left": 446.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0060",
      "page": 97,
      "ordinal": 60,
      "text": " partition  ",
      "top": 270.0,
      "left": 563.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h02",
        "heading_id": "p097-h02",
        "block_id": "q-p097-h02-b001"
      }
    },
    {
      "id": "p097-t0061",
      "page": 97,
      "ordinal": 61,
      "text": "consumer ",
      "top": 304.0,
      "left": 112.0,
      "width": 134.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03"
      }
    },
    {
      "id": "p097-t0062",
      "page": 97,
      "ordinal": 62,
      "text": "是推还是拉？",
      "top": 304.0,
      "left": 246.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03"
      }
    },
    {
      "id": "p097-t0065",
      "page": 97,
      "ordinal": 65,
      "text": " customer ",
      "top": 354.0,
      "left": 112.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0066",
      "page": 97,
      "ordinal": 66,
      "text": "应该从",
      "top": 354.0,
      "left": 184.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0067",
      "page": 97,
      "ordinal": 67,
      "text": " brokes ",
      "top": 354.0,
      "left": 228.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0068",
      "page": 97,
      "ordinal": 68,
      "text": "拉取消息还是",
      "top": 354.0,
      "left": 282.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0069",
      "page": 97,
      "ordinal": 69,
      "text": " brokers ",
      "top": 354.0,
      "left": 370.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0070",
      "page": 97,
      "ordinal": 70,
      "text": "将消息推送到",
      "top": 354.0,
      "left": 430.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0071",
      "page": 97,
      "ordinal": 71,
      "text": " consumer",
      "top": 354.0,
      "left": 518.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0072",
      "page": 97,
      "ordinal": 72,
      "text": "，也",
      "top": 354.0,
      "left": 590.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0074",
      "page": 97,
      "ordinal": 74,
      "text": "就是",
      "top": 354.0,
      "left": 623.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0075",
      "page": 97,
      "ordinal": 75,
      "text": " pull ",
      "top": 354.0,
      "left": 652.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0076",
      "page": 97,
      "ordinal": 76,
      "text": "还",
      "top": 354.0,
      "left": 685.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0077",
      "page": 97,
      "ordinal": 77,
      "text": " push",
      "top": 354.0,
      "left": 700.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0078",
      "page": 97,
      "ordinal": 78,
      "text": "。在这",
      "top": 354.0,
      "left": 738.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0079",
      "page": 97,
      "ordinal": 79,
      "text": "方面，",
      "top": 378.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0080",
      "page": 97,
      "ordinal": 80,
      "text": "Kafka ",
      "top": 378.0,
      "left": 156.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0081",
      "page": 97,
      "ordinal": 81,
      "text": "遵循了一种大部分消息系统共同的传统",
      "top": 378.0,
      "left": 197.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0083",
      "page": 97,
      "ordinal": 83,
      "text": "的设计：",
      "top": 378.0,
      "left": 450.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0084",
      "page": 97,
      "ordinal": 84,
      "text": "producer ",
      "top": 378.0,
      "left": 508.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0085",
      "page": 97,
      "ordinal": 85,
      "text": "将消息推送到",
      "top": 378.0,
      "left": 575.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0086",
      "page": 97,
      "ordinal": 86,
      "text": " broker",
      "top": 378.0,
      "left": 663.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0087",
      "page": 97,
      "ordinal": 87,
      "text": "，",
      "top": 378.0,
      "left": 712.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0088",
      "page": 97,
      "ordinal": 88,
      "text": "consumer ",
      "top": 401.0,
      "left": 112.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0089",
      "page": 97,
      "ordinal": 89,
      "text": "从",
      "top": 401.0,
      "left": 184.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0090",
      "page": 97,
      "ordinal": 90,
      "text": " broker ",
      "top": 401.0,
      "left": 199.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0091",
      "page": 97,
      "ordinal": 91,
      "text": "拉取消息。",
      "top": 401.0,
      "left": 252.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0093",
      "page": 97,
      "ordinal": 93,
      "text": "push ",
      "top": 425.0,
      "left": 112.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0094",
      "page": 97,
      "ordinal": 94,
      "text": "模式，将消息推送到下游的",
      "top": 425.0,
      "left": 149.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0095",
      "page": 97,
      "ordinal": 95,
      "text": " consumer",
      "top": 425.0,
      "left": 325.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0096",
      "page": 97,
      "ordinal": 96,
      "text": "。这样做有好处也有坏处：由",
      "top": 425.0,
      "left": 397.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0097",
      "page": 97,
      "ordinal": 97,
      "text": " broker ",
      "top": 425.0,
      "left": 587.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0098",
      "page": 97,
      "ordinal": 98,
      "text": "决定消息推送的速",
      "top": 425.0,
      "left": 641.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0099",
      "page": 97,
      "ordinal": 99,
      "text": "率，对于不同消费速率的",
      "top": 449.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0100",
      "page": 97,
      "ordinal": 100,
      "text": " consumer ",
      "top": 449.0,
      "left": 273.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0101",
      "page": 97,
      "ordinal": 101,
      "text": "就不太好处理",
      "top": 449.0,
      "left": 349.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0103",
      "page": 97,
      "ordinal": 103,
      "text": "了。消息系统都致力于让",
      "top": 449.0,
      "left": 440.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0104",
      "page": 97,
      "ordinal": 104,
      "text": " consumer ",
      "top": 449.0,
      "left": 601.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0105",
      "page": 97,
      "ordinal": 105,
      "text": "以最大的速率最",
      "top": 449.0,
      "left": 677.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0106",
      "page": 97,
      "ordinal": 106,
      "text": "快速的消费消息，但不幸",
      "top": 471.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0108",
      "page": 97,
      "ordinal": 108,
      "text": "的是，",
      "top": 471.0,
      "left": 276.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0109",
      "page": 97,
      "ordinal": 109,
      "text": "push ",
      "top": 471.0,
      "left": 320.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0110",
      "page": 97,
      "ordinal": 110,
      "text": "模式下，当",
      "top": 471.0,
      "left": 358.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0111",
      "page": 97,
      "ordinal": 111,
      "text": " broker ",
      "top": 471.0,
      "left": 431.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0112",
      "page": 97,
      "ordinal": 112,
      "text": "推送的速率远大于",
      "top": 471.0,
      "left": 484.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0113",
      "page": 97,
      "ordinal": 113,
      "text": " consumer ",
      "top": 471.0,
      "left": 601.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0114",
      "page": 97,
      "ordinal": 114,
      "text": "消费的速率时，",
      "top": 471.0,
      "left": 677.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0116",
      "page": 97,
      "ordinal": 116,
      "text": "consumer ",
      "top": 495.0,
      "left": 112.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0117",
      "page": 97,
      "ordinal": 117,
      "text": "恐怕就要崩溃了。最终",
      "top": 495.0,
      "left": 184.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0118",
      "page": 97,
      "ordinal": 118,
      "text": " Kafka ",
      "top": 495.0,
      "left": 330.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0119",
      "page": 97,
      "ordinal": 119,
      "text": "还是选取了传统的",
      "top": 495.0,
      "left": 376.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0120",
      "page": 97,
      "ordinal": 120,
      "text": " pull ",
      "top": 495.0,
      "left": 493.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0121",
      "page": 97,
      "ordinal": 121,
      "text": "模式",
      "top": 495.0,
      "left": 526.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h03",
        "heading_id": "p097-h03",
        "block_id": "q-p097-h03-b001"
      }
    },
    {
      "id": "p097-t0123",
      "page": 97,
      "ordinal": 123,
      "text": "Kafka ",
      "top": 529.0,
      "left": 112.0,
      "width": 80.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04"
      }
    },
    {
      "id": "p097-t0124",
      "page": 97,
      "ordinal": 124,
      "text": "维护消费状态跟踪的方法有什么？",
      "top": 529.0,
      "left": 192.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04"
      }
    },
    {
      "id": "p097-t0128",
      "page": 97,
      "ordinal": 128,
      "text": "大部分消息系统在",
      "top": 580.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0129",
      "page": 97,
      "ordinal": 129,
      "text": " broker ",
      "top": 580.0,
      "left": 233.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0130",
      "page": 97,
      "ordinal": 130,
      "text": "端的维护消息被消费的记录：一个消息被分发到",
      "top": 580.0,
      "left": 286.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0131",
      "page": 97,
      "ordinal": 131,
      "text": " consumer ",
      "top": 580.0,
      "left": 593.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0132",
      "page": 97,
      "ordinal": 132,
      "text": "后",
      "top": 580.0,
      "left": 669.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0133",
      "page": 97,
      "ordinal": 133,
      "text": " broker ",
      "top": 580.0,
      "left": 684.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0134",
      "page": 97,
      "ordinal": 134,
      "text": "就马上",
      "top": 580.0,
      "left": 737.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0135",
      "page": 97,
      "ordinal": 135,
      "text": "进行标记或者等待",
      "top": 604.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0136",
      "page": 97,
      "ordinal": 136,
      "text": " customer ",
      "top": 604.0,
      "left": 229.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0137",
      "page": 97,
      "ordinal": 137,
      "text": "的通知后进行标记。",
      "top": 604.0,
      "left": 301.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0139",
      "page": 97,
      "ordinal": 139,
      "text": "这样也可以在消息在消费后立马就删除以减少空间占",
      "top": 604.0,
      "left": 436.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0140",
      "page": 97,
      "ordinal": 140,
      "text": "用",
      "top": 626.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/12-kafka#q-p097-h04",
        "heading_id": "p097-h04",
        "block_id": "q-p097-h04-b001"
      }
    },
    {
      "id": "p097-t0142",
      "page": 97,
      "ordinal": 142,
      "text": "分布式",
      "top": 660.0,
      "left": 112.0,
      "width": 99.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h05"
      }
    },
    {
      "id": "p097-t0144",
      "page": 97,
      "ordinal": 144,
      "text": "分布式服务接口的幂等性如何设计",
      "top": 716.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06"
      }
    },
    {
      "id": "p097-t0148",
      "page": 97,
      "ordinal": 148,
      "text": "所谓幂等性，就是说一个接口，多次发起同一个请求，你这个接口得保证结果",
      "top": 767.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0150",
      "page": 97,
      "ordinal": 150,
      "text": "是准确得。比如不能多扣",
      "top": 767.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0151",
      "page": 97,
      "ordinal": 151,
      "text": "款。不能多插入一条数据，不能将统计值多加了",
      "top": 791.0,
      "left": 112.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0152",
      "page": 97,
      "ordinal": 152,
      "text": " 1",
      "top": 791.0,
      "left": 419.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0153",
      "page": 97,
      "ordinal": 153,
      "text": "，",
      "top": 791.0,
      "left": 431.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0155",
      "page": 97,
      "ordinal": 155,
      "text": "这就是幂等性。",
      "top": 791.0,
      "left": 449.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0157",
      "page": 97,
      "ordinal": 157,
      "text": "其实保证幂等性主要是三点：",
      "top": 791.0,
      "left": 556.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b001"
      }
    },
    {
      "id": "p097-t0158",
      "page": 97,
      "ordinal": 158,
      "text": "1. ",
      "top": 825.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0159",
      "page": 97,
      "ordinal": 159,
      "text": "对于每个请求必须有一个唯一的标识，举个例子：订单支付请求，肯定得",
      "top": 825.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0161",
      "page": 97,
      "ordinal": 161,
      "text": "包含订单",
      "top": 825.0,
      "left": 617.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0162",
      "page": 97,
      "ordinal": 162,
      "text": " ID",
      "top": 825.0,
      "left": 676.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0163",
      "page": 97,
      "ordinal": 163,
      "text": "，一个订单",
      "top": 825.0,
      "left": 694.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0165",
      "page": 97,
      "ordinal": 165,
      "text": "ID ",
      "top": 849.0,
      "left": 146.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0166",
      "page": 97,
      "ordinal": 166,
      "text": "最多支付一次",
      "top": 849.0,
      "left": 164.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b002"
      }
    },
    {
      "id": "p097-t0168",
      "page": 97,
      "ordinal": 168,
      "text": "2. ",
      "top": 879.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0169",
      "page": 97,
      "ordinal": 169,
      "text": "每次处理完请求之后，必须有一个记录标识这个请求处理过了，比如说常",
      "top": 879.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0171",
      "page": 97,
      "ordinal": 171,
      "text": "见得方案是再",
      "top": 879.0,
      "left": 617.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0172",
      "page": 97,
      "ordinal": 172,
      "text": " MySQL ",
      "top": 879.0,
      "left": 705.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0173",
      "page": 97,
      "ordinal": 173,
      "text": "中",
      "top": 879.0,
      "left": 760.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0174",
      "page": 97,
      "ordinal": 174,
      "text": "记录个状态啥得，比如支付之前记录一条这个订单",
      "top": 903.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0176",
      "page": 97,
      "ordinal": 176,
      "text": "得支付流水，而且支付流水采用",
      "top": 903.0,
      "left": 471.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0177",
      "page": 97,
      "ordinal": 177,
      "text": " order id ",
      "top": 903.0,
      "left": 676.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0178",
      "page": 97,
      "ordinal": 178,
      "text": "作为唯",
      "top": 903.0,
      "left": 738.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0179",
      "page": 97,
      "ordinal": 179,
      "text": "一键（",
      "top": 927.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0180",
      "page": 97,
      "ordinal": 180,
      "text": "unique key",
      "top": 927.0,
      "left": 189.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0181",
      "page": 97,
      "ordinal": 181,
      "text": "）。只",
      "top": 927.0,
      "left": 264.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0183",
      "page": 97,
      "ordinal": 183,
      "text": "有成功插入这个支付流水，才可以执行实际得支付扣款",
      "top": 927.0,
      "left": 312.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b003"
      }
    },
    {
      "id": "p097-t0185",
      "page": 97,
      "ordinal": 185,
      "text": "3. ",
      "top": 957.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0186",
      "page": 97,
      "ordinal": 186,
      "text": "每次接收请求需要进行判断之前是否处理过得逻辑处理，比如说，如果有",
      "top": 957.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0188",
      "page": 97,
      "ordinal": 188,
      "text": "一个订单已经支付了，就",
      "top": 957.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0189",
      "page": 97,
      "ordinal": 189,
      "text": "已经有了一条支付流水，那么如果重复发送这个",
      "top": 981.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0191",
      "page": 97,
      "ordinal": 191,
      "text": "请求，则此时先插入支付流水，",
      "top": 981.0,
      "left": 456.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0192",
      "page": 97,
      "ordinal": 192,
      "text": "order id ",
      "top": 981.0,
      "left": 661.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0193",
      "page": 97,
      "ordinal": 193,
      "text": "已经存在",
      "top": 981.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0194",
      "page": 97,
      "ordinal": 194,
      "text": "了，唯一键约束生效，",
      "top": 1004.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0196",
      "page": 97,
      "ordinal": 196,
      "text": "报错插入不进去得。然后你就不用再扣款了",
      "top": 1004.0,
      "left": 296.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h06",
        "heading_id": "p097-h06",
        "block_id": "q-p097-h06-b004"
      }
    },
    {
      "id": "p097-t0198",
      "page": 97,
      "ordinal": 198,
      "text": "分布式系统中的接口调用如何保证顺序性",
      "top": 1039.0,
      "left": 112.0,
      "width": 461.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07"
      }
    },
    {
      "id": "p097-t0202",
      "page": 97,
      "ordinal": 202,
      "text": "可以接入",
      "top": 1089.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0203",
      "page": 97,
      "ordinal": 203,
      "text": " MQ",
      "top": 1089.0,
      "left": 174.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0204",
      "page": 97,
      "ordinal": 204,
      "text": "，如果是系统",
      "top": 1089.0,
      "left": 202.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0205",
      "page": 97,
      "ordinal": 205,
      "text": " A ",
      "top": 1089.0,
      "left": 290.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0206",
      "page": 97,
      "ordinal": 206,
      "text": "使用多线程处理的话，可以使用内存队列，来保证",
      "top": 1089.0,
      "left": 307.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0208",
      "page": 97,
      "ordinal": 208,
      "text": "顺序性，如果你要",
      "top": 1089.0,
      "left": 633.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0210",
      "page": 97,
      "ordinal": 210,
      "text": "100%",
      "top": 1112.0,
      "left": 112.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0211",
      "page": 97,
      "ordinal": 211,
      "text": "的顺序性，当然可以使用分布式锁来搞，会影响系统的",
      "top": 1112.0,
      "left": 149.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p097-t0213",
      "page": 97,
      "ordinal": 213,
      "text": "并发性",
      "top": 1112.0,
      "left": 504.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p097-h07",
        "heading_id": "p097-h07",
        "block_id": "q-p097-h07-b001"
      }
    },
    {
      "id": "p098-t0001",
      "page": 98,
      "ordinal": 1,
      "text": "说说",
      "top": 40.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01"
      }
    },
    {
      "id": "p098-t0002",
      "page": 98,
      "ordinal": 2,
      "text": " ZooKeeper ",
      "top": 40.0,
      "left": 163.0,
      "width": 150.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01"
      }
    },
    {
      "id": "p098-t0003",
      "page": 98,
      "ordinal": 3,
      "text": "一般都有哪些使用场景",
      "top": 40.0,
      "left": 313.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01"
      }
    },
    {
      "id": "p098-t0006",
      "page": 98,
      "ordinal": 6,
      "text": "1. ",
      "top": 91.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0007",
      "page": 98,
      "ordinal": 7,
      "text": "分布式协调：这个其实就是",
      "top": 91.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0008",
      "page": 98,
      "ordinal": 8,
      "text": " ZooKeeper ",
      "top": 91.0,
      "left": 321.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0009",
      "page": 98,
      "ordinal": 9,
      "text": "很经典的一个用法，简单来说，就",
      "top": 91.0,
      "left": 403.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0011",
      "page": 98,
      "ordinal": 11,
      "text": "好比，你系统",
      "top": 91.0,
      "left": 626.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0012",
      "page": 98,
      "ordinal": 12,
      "text": " A ",
      "top": 91.0,
      "left": 714.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0013",
      "page": 98,
      "ordinal": 13,
      "text": "发送个",
      "top": 91.0,
      "left": 731.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0014",
      "page": 98,
      "ordinal": 14,
      "text": "请求到",
      "top": 114.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0015",
      "page": 98,
      "ordinal": 15,
      "text": " MQ",
      "top": 114.0,
      "left": 189.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0016",
      "page": 98,
      "ordinal": 16,
      "text": "，然后",
      "top": 114.0,
      "left": 218.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0017",
      "page": 98,
      "ordinal": 17,
      "text": " B ",
      "top": 114.0,
      "left": 262.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0018",
      "page": 98,
      "ordinal": 18,
      "text": "消费了之后处理。那",
      "top": 114.0,
      "left": 279.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0019",
      "page": 98,
      "ordinal": 19,
      "text": " A ",
      "top": 114.0,
      "left": 410.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0020",
      "page": 98,
      "ordinal": 20,
      "text": "系统如何",
      "top": 114.0,
      "left": 427.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0022",
      "page": 98,
      "ordinal": 22,
      "text": "指导",
      "top": 114.0,
      "left": 489.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0023",
      "page": 98,
      "ordinal": 23,
      "text": " B ",
      "top": 114.0,
      "left": 519.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0024",
      "page": 98,
      "ordinal": 24,
      "text": "系统的处理结果？用",
      "top": 114.0,
      "left": 536.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0025",
      "page": 98,
      "ordinal": 25,
      "text": " ZooKeeper ",
      "top": 114.0,
      "left": 667.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0026",
      "page": 98,
      "ordinal": 26,
      "text": "就可",
      "top": 114.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0027",
      "page": 98,
      "ordinal": 27,
      "text": "以实现分布式系统之间的协调",
      "top": 137.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0029",
      "page": 98,
      "ordinal": 29,
      "text": "工作。",
      "top": 137.0,
      "left": 339.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0030",
      "page": 98,
      "ordinal": 30,
      "text": "A ",
      "top": 137.0,
      "left": 383.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0031",
      "page": 98,
      "ordinal": 31,
      "text": "系统发送请求之后可以在",
      "top": 137.0,
      "left": 396.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0032",
      "page": 98,
      "ordinal": 32,
      "text": " ZooKeeper ",
      "top": 137.0,
      "left": 557.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0033",
      "page": 98,
      "ordinal": 33,
      "text": "上对某个节点的值注",
      "top": 137.0,
      "left": 639.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0034",
      "page": 98,
      "ordinal": 34,
      "text": "册个监听",
      "top": 161.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0036",
      "page": 98,
      "ordinal": 36,
      "text": "器，一旦",
      "top": 161.0,
      "left": 208.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0037",
      "page": 98,
      "ordinal": 37,
      "text": " B ",
      "top": 161.0,
      "left": 266.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0038",
      "page": 98,
      "ordinal": 38,
      "text": "系统处理完了就修改",
      "top": 161.0,
      "left": 283.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0039",
      "page": 98,
      "ordinal": 39,
      "text": " ZooKeeper ",
      "top": 161.0,
      "left": 415.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0040",
      "page": 98,
      "ordinal": 40,
      "text": "那个节点的值，",
      "top": 161.0,
      "left": 497.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0041",
      "page": 98,
      "ordinal": 41,
      "text": "A ",
      "top": 161.0,
      "left": 600.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0042",
      "page": 98,
      "ordinal": 42,
      "text": "立马就可以收",
      "top": 161.0,
      "left": 613.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0044",
      "page": 98,
      "ordinal": 44,
      "text": "到通知，完",
      "top": 161.0,
      "left": 704.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0045",
      "page": 98,
      "ordinal": 45,
      "text": "美解决",
      "top": 184.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b001"
      }
    },
    {
      "id": "p098-t0047",
      "page": 98,
      "ordinal": 47,
      "text": "2. ",
      "top": 215.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0048",
      "page": 98,
      "ordinal": 48,
      "text": "分布所锁：对某一个数据联系发出两个修改操作，两台机器同时收到请",
      "top": 215.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0050",
      "page": 98,
      "ordinal": 50,
      "text": "求，但是只能一台机器先执",
      "top": 215.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0051",
      "page": 98,
      "ordinal": 51,
      "text": "行另外一个机器再执行，那么此时就可以使用",
      "top": 238.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0052",
      "page": 98,
      "ordinal": 52,
      "text": " ZooKeeper ",
      "top": 238.0,
      "left": 438.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0053",
      "page": 98,
      "ordinal": 53,
      "text": "分布式锁，一个机器接收到了请求之后",
      "top": 238.0,
      "left": 520.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0054",
      "page": 98,
      "ordinal": 54,
      "text": "先获取",
      "top": 262.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0055",
      "page": 98,
      "ordinal": 55,
      "text": " ZooKeeper ",
      "top": 262.0,
      "left": 189.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0056",
      "page": 98,
      "ordinal": 56,
      "text": "上的一",
      "top": 262.0,
      "left": 272.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0058",
      "page": 98,
      "ordinal": 58,
      "text": "把分布式锁，就是可以去创建一个",
      "top": 262.0,
      "left": 319.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0059",
      "page": 98,
      "ordinal": 59,
      "text": " znode",
      "top": 262.0,
      "left": 539.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0060",
      "page": 98,
      "ordinal": 60,
      "text": "，接着执行操作，然后另外一",
      "top": 262.0,
      "left": 584.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0061",
      "page": 98,
      "ordinal": 61,
      "text": "个机",
      "top": 285.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0063",
      "page": 98,
      "ordinal": 63,
      "text": "器也尝试去创建那个",
      "top": 285.0,
      "left": 179.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0064",
      "page": 98,
      "ordinal": 64,
      "text": " znode",
      "top": 285.0,
      "left": 310.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0065",
      "page": 98,
      "ordinal": 65,
      "text": "，结果发现自己创建不了，因为被别人创建了，",
      "top": 285.0,
      "left": 356.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0067",
      "page": 98,
      "ordinal": 67,
      "text": "那只能等着，等",
      "top": 285.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0068",
      "page": 98,
      "ordinal": 68,
      "text": "等一个机器执行完了自己再执行",
      "top": 309.0,
      "left": 146.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b002"
      }
    },
    {
      "id": "p098-t0070",
      "page": 98,
      "ordinal": 70,
      "text": "3. ",
      "top": 339.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0071",
      "page": 98,
      "ordinal": 71,
      "text": "配置信息管理：",
      "top": 339.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0072",
      "page": 98,
      "ordinal": 72,
      "text": "ZooKeeper ",
      "top": 339.0,
      "left": 248.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0073",
      "page": 98,
      "ordinal": 73,
      "text": "可以用作很多系统的配置信息的管理，比如",
      "top": 339.0,
      "left": 326.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0074",
      "page": 98,
      "ordinal": 74,
      "text": " Kafka",
      "top": 339.0,
      "left": 604.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0075",
      "page": 98,
      "ordinal": 75,
      "text": "，",
      "top": 339.0,
      "left": 646.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0076",
      "page": 98,
      "ordinal": 76,
      "text": "storm ",
      "top": 339.0,
      "left": 660.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0077",
      "page": 98,
      "ordinal": 77,
      "text": "等等很多分",
      "top": 339.0,
      "left": 705.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0078",
      "page": 98,
      "ordinal": 78,
      "text": "布式系统都会选用",
      "top": 363.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0079",
      "page": 98,
      "ordinal": 79,
      "text": " zk ",
      "top": 363.0,
      "left": 263.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0080",
      "page": 98,
      "ordinal": 80,
      "text": "来做一些元数据，配置信息",
      "top": 363.0,
      "left": 285.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0082",
      "page": 98,
      "ordinal": 82,
      "text": "的管理，包括",
      "top": 363.0,
      "left": 464.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0083",
      "page": 98,
      "ordinal": 83,
      "text": " Dubbo ",
      "top": 363.0,
      "left": 552.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0084",
      "page": 98,
      "ordinal": 84,
      "text": "注册中心不也支持",
      "top": 363.0,
      "left": 606.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0086",
      "page": 98,
      "ordinal": 86,
      "text": "ZooKeeper ",
      "top": 386.0,
      "left": 146.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0087",
      "page": 98,
      "ordinal": 87,
      "text": "么",
      "top": 386.0,
      "left": 224.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b003"
      }
    },
    {
      "id": "p098-t0089",
      "page": 98,
      "ordinal": 89,
      "text": "4. HA ",
      "top": 417.0,
      "left": 129.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0090",
      "page": 98,
      "ordinal": 90,
      "text": "高可用性：这个应该是很常见的，比如",
      "top": 417.0,
      "left": 169.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0091",
      "page": 98,
      "ordinal": 91,
      "text": " hdfs",
      "top": 417.0,
      "left": 418.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0092",
      "page": 98,
      "ordinal": 92,
      "text": "，",
      "top": 417.0,
      "left": 452.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0093",
      "page": 98,
      "ordinal": 93,
      "text": "yarn ",
      "top": 417.0,
      "left": 466.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0094",
      "page": 98,
      "ordinal": 94,
      "text": "等很多大数据系统，",
      "top": 417.0,
      "left": 501.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0096",
      "page": 98,
      "ordinal": 96,
      "text": "都选择基于",
      "top": 417.0,
      "left": 636.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0098",
      "page": 98,
      "ordinal": 98,
      "text": "ZooKeeper ",
      "top": 441.0,
      "left": 146.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0099",
      "page": 98,
      "ordinal": 99,
      "text": "来开发",
      "top": 441.0,
      "left": 224.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0100",
      "page": 98,
      "ordinal": 100,
      "text": " HA ",
      "top": 441.0,
      "left": 268.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0101",
      "page": 98,
      "ordinal": 101,
      "text": "高可用机制，就是一个重要进程一般会主",
      "top": 441.0,
      "left": 295.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0103",
      "page": 98,
      "ordinal": 103,
      "text": "备两个，主进程挂了立马通过",
      "top": 441.0,
      "left": 562.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0105",
      "page": 98,
      "ordinal": 105,
      "text": "ZooKeeper ",
      "top": 463.0,
      "left": 146.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0106",
      "page": 98,
      "ordinal": 106,
      "text": "感知到切换到备份进程。",
      "top": 463.0,
      "left": 224.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h01",
        "heading_id": "p098-h01",
        "block_id": "q-p098-h01-b004"
      }
    },
    {
      "id": "p098-t0108",
      "page": 98,
      "ordinal": 108,
      "text": "分布式事务了解吗？",
      "top": 498.0,
      "left": 112.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02"
      }
    },
    {
      "id": "p098-t0111",
      "page": 98,
      "ordinal": 111,
      "text": "1. XA ",
      "top": 549.0,
      "left": 129.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0112",
      "page": 98,
      "ordinal": 112,
      "text": "方案",
      "top": 549.0,
      "left": 167.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0113",
      "page": 98,
      "ordinal": 113,
      "text": "/",
      "top": 549.0,
      "left": 196.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0114",
      "page": 98,
      "ordinal": 114,
      "text": "两阶段提交方案",
      "top": 549.0,
      "left": 202.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0116",
      "page": 98,
      "ordinal": 116,
      "text": "第一个阶段（先询问）",
      "top": 549.0,
      "left": 308.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0118",
      "page": 98,
      "ordinal": 118,
      "text": "第二个阶段（再执行）",
      "top": 549.0,
      "left": 458.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b001"
      }
    },
    {
      "id": "p098-t0120",
      "page": 98,
      "ordinal": 120,
      "text": "2. TCC ",
      "top": 579.0,
      "left": 129.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0121",
      "page": 98,
      "ordinal": 121,
      "text": "方案",
      "top": 579.0,
      "left": 176.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0122",
      "page": 98,
      "ordinal": 122,
      "text": " TCC ",
      "top": 579.0,
      "left": 205.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0123",
      "page": 98,
      "ordinal": 123,
      "text": "的全程是：",
      "top": 579.0,
      "left": 239.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0124",
      "page": 98,
      "ordinal": 124,
      "text": "Try",
      "top": 579.0,
      "left": 312.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0125",
      "page": 98,
      "ordinal": 125,
      "text": "、",
      "top": 579.0,
      "left": 334.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0126",
      "page": 98,
      "ordinal": 126,
      "text": "Confirm",
      "top": 579.0,
      "left": 348.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0127",
      "page": 98,
      "ordinal": 127,
      "text": "、",
      "top": 579.0,
      "left": 404.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0128",
      "page": 98,
      "ordinal": 128,
      "text": "Cancel ",
      "top": 579.0,
      "left": 418.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0129",
      "page": 98,
      "ordinal": 129,
      "text": "这个其实是用到了补偿的概念，分为了三个阶段",
      "top": 579.0,
      "left": 467.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0131",
      "page": 98,
      "ordinal": 131,
      "text": "Try ",
      "top": 603.0,
      "left": 146.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0132",
      "page": 98,
      "ordinal": 132,
      "text": "阶段：这个阶段说的是对各个服务的资源做检测以及对资源进行锁定",
      "top": 603.0,
      "left": 171.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0134",
      "page": 98,
      "ordinal": 134,
      "text": "或者预留",
      "top": 603.0,
      "left": 613.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0135",
      "page": 98,
      "ordinal": 135,
      "text": " Confirm ",
      "top": 603.0,
      "left": 672.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0136",
      "page": 98,
      "ordinal": 136,
      "text": "阶段：",
      "top": 603.0,
      "left": 735.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0137",
      "page": 98,
      "ordinal": 137,
      "text": "这个阶段说的是在各个服务中执行实际的操作",
      "top": 626.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0138",
      "page": 98,
      "ordinal": 138,
      "text": " Cancel ",
      "top": 626.0,
      "left": 438.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0139",
      "page": 98,
      "ordinal": 139,
      "text": "阶段：如果任何一个服务的业务方法执行出",
      "top": 626.0,
      "left": 491.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0140",
      "page": 98,
      "ordinal": 140,
      "text": "错，那么这里就需要进",
      "top": 650.0,
      "left": 146.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0142",
      "page": 98,
      "ordinal": 142,
      "text": "行补偿，就是执行已经成功的业务逻辑的回滚操作",
      "top": 650.0,
      "left": 296.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b002"
      }
    },
    {
      "id": "p098-t0144",
      "page": 98,
      "ordinal": 144,
      "text": "3. ",
      "top": 680.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b003"
      }
    },
    {
      "id": "p098-t0145",
      "page": 98,
      "ordinal": 145,
      "text": "本地消息表",
      "top": 680.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b003"
      }
    },
    {
      "id": "p098-t0147",
      "page": 98,
      "ordinal": 147,
      "text": "4. ",
      "top": 711.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b004"
      }
    },
    {
      "id": "p098-t0148",
      "page": 98,
      "ordinal": 148,
      "text": "可靠消息最终一致性方案",
      "top": 711.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b004"
      }
    },
    {
      "id": "p098-t0150",
      "page": 98,
      "ordinal": 150,
      "text": "5. ",
      "top": 742.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b005"
      }
    },
    {
      "id": "p098-t0151",
      "page": 98,
      "ordinal": 151,
      "text": "最大努力通知方案",
      "top": 742.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h02",
        "heading_id": "p098-h02",
        "block_id": "q-p098-h02-b005"
      }
    },
    {
      "id": "p098-t0153",
      "page": 98,
      "ordinal": 153,
      "text": "那常见的分布式锁有哪些解决方案",
      "top": 776.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03"
      }
    },
    {
      "id": "p098-t0156",
      "page": 98,
      "ordinal": 156,
      "text": "1. Reids ",
      "top": 827.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b001"
      }
    },
    {
      "id": "p098-t0157",
      "page": 98,
      "ordinal": 157,
      "text": "的分布式锁，很多大公司会基于",
      "top": 827.0,
      "left": 186.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b001"
      }
    },
    {
      "id": "p098-t0158",
      "page": 98,
      "ordinal": 158,
      "text": " Reidis ",
      "top": 827.0,
      "left": 391.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b001"
      }
    },
    {
      "id": "p098-t0159",
      "page": 98,
      "ordinal": 159,
      "text": "做扩展开发",
      "top": 827.0,
      "left": 439.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b001"
      }
    },
    {
      "id": "p098-t0161",
      "page": 98,
      "ordinal": 161,
      "text": "2. ",
      "top": 858.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b002"
      }
    },
    {
      "id": "p098-t0162",
      "page": 98,
      "ordinal": 162,
      "text": "基于",
      "top": 858.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b002"
      }
    },
    {
      "id": "p098-t0163",
      "page": 98,
      "ordinal": 163,
      "text": " etcd ",
      "top": 858.0,
      "left": 175.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b002"
      }
    },
    {
      "id": "p098-t0164",
      "page": 98,
      "ordinal": 164,
      "text": "3. ",
      "top": 888.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b003"
      }
    },
    {
      "id": "p098-t0165",
      "page": 98,
      "ordinal": 165,
      "text": "基于数据库，比如",
      "top": 888.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b003"
      }
    },
    {
      "id": "p098-t0166",
      "page": 98,
      "ordinal": 166,
      "text": " MySQL  ",
      "top": 888.0,
      "left": 263.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h03",
        "heading_id": "p098-h03",
        "block_id": "q-p098-h03-b003"
      }
    },
    {
      "id": "p098-t0167",
      "page": 98,
      "ordinal": 167,
      "text": "MySQL ",
      "top": 923.0,
      "left": 112.0,
      "width": 94.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04"
      }
    },
    {
      "id": "p098-t0168",
      "page": 98,
      "ordinal": 168,
      "text": "如何做分布式锁",
      "top": 923.0,
      "left": 206.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04"
      }
    },
    {
      "id": "p098-t0172",
      "page": 98,
      "ordinal": 172,
      "text": "方法一：",
      "top": 973.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0174",
      "page": 98,
      "ordinal": 174,
      "text": "利用",
      "top": 973.0,
      "left": 178.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0175",
      "page": 98,
      "ordinal": 175,
      "text": " MySQL ",
      "top": 973.0,
      "left": 207.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0176",
      "page": 98,
      "ordinal": 176,
      "text": "的锁表，创建一张表，设置一个",
      "top": 973.0,
      "left": 262.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0177",
      "page": 98,
      "ordinal": 177,
      "text": " UNIQUE KEY ",
      "top": 973.0,
      "left": 467.0,
      "width": 93.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0178",
      "page": 98,
      "ordinal": 178,
      "text": "这个",
      "top": 973.0,
      "left": 560.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0179",
      "page": 98,
      "ordinal": 179,
      "text": " KEY ",
      "top": 973.0,
      "left": 589.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0180",
      "page": 98,
      "ordinal": 180,
      "text": "就是要锁",
      "top": 973.0,
      "left": 622.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0182",
      "page": 98,
      "ordinal": 182,
      "text": "的",
      "top": 973.0,
      "left": 684.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0183",
      "page": 98,
      "ordinal": 183,
      "text": " KEY",
      "top": 973.0,
      "left": 699.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0184",
      "page": 98,
      "ordinal": 184,
      "text": "，所以",
      "top": 973.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0185",
      "page": 98,
      "ordinal": 185,
      "text": "同一个",
      "top": 996.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0186",
      "page": 98,
      "ordinal": 186,
      "text": " KEY ",
      "top": 996.0,
      "left": 156.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0187",
      "page": 98,
      "ordinal": 187,
      "text": "在",
      "top": 996.0,
      "left": 189.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0188",
      "page": 98,
      "ordinal": 188,
      "text": " MySQL ",
      "top": 996.0,
      "left": 203.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0189",
      "page": 98,
      "ordinal": 189,
      "text": "表里只能插入一次了，这样对锁的竞争就交",
      "top": 996.0,
      "left": 258.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0191",
      "page": 98,
      "ordinal": 191,
      "text": "给了数据库，处理同一个",
      "top": 996.0,
      "left": 540.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0192",
      "page": 98,
      "ordinal": 192,
      "text": " KEY ",
      "top": 996.0,
      "left": 701.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0193",
      "page": 98,
      "ordinal": 193,
      "text": "数据库",
      "top": 996.0,
      "left": 734.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0194",
      "page": 98,
      "ordinal": 194,
      "text": "保证了只有一个节点能插入成功，其他节",
      "top": 1020.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0196",
      "page": 98,
      "ordinal": 196,
      "text": "点都会插入失败。",
      "top": 1020.0,
      "left": 379.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0197",
      "page": 98,
      "ordinal": 197,
      "text": " DB ",
      "top": 1020.0,
      "left": 496.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0198",
      "page": 98,
      "ordinal": 198,
      "text": "分布式锁的实现：通过主键",
      "top": 1020.0,
      "left": 524.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0199",
      "page": 98,
      "ordinal": 199,
      "text": " id ",
      "top": 1020.0,
      "left": 699.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0200",
      "page": 98,
      "ordinal": 200,
      "text": "的唯一性",
      "top": 1020.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0201",
      "page": 98,
      "ordinal": 201,
      "text": "进行加锁，说白了就是加锁的形式",
      "top": 1044.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0203",
      "page": 98,
      "ordinal": 203,
      "text": "是向一张表中插入一条数据，该条数据的",
      "top": 1044.0,
      "left": 335.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0204",
      "page": 98,
      "ordinal": 204,
      "text": " ID ",
      "top": 1044.0,
      "left": 598.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0205",
      "page": 98,
      "ordinal": 205,
      "text": "就是一把分布式锁，例如",
      "top": 1044.0,
      "left": 621.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0206",
      "page": 98,
      "ordinal": 206,
      "text": "当一次请",
      "top": 1067.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0208",
      "page": 98,
      "ordinal": 208,
      "text": "求插入了一条",
      "top": 1067.0,
      "left": 174.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0209",
      "page": 98,
      "ordinal": 209,
      "text": " ID ",
      "top": 1067.0,
      "left": 262.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0210",
      "page": 98,
      "ordinal": 210,
      "text": "为",
      "top": 1067.0,
      "left": 284.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0211",
      "page": 98,
      "ordinal": 211,
      "text": " 1 ",
      "top": 1067.0,
      "left": 299.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0212",
      "page": 98,
      "ordinal": 212,
      "text": "的数据，其他想要进行插入数据的并发请求必须等第一次",
      "top": 1067.0,
      "left": 315.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0214",
      "page": 98,
      "ordinal": 214,
      "text": "请求执行完成",
      "top": 1067.0,
      "left": 684.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0215",
      "page": 98,
      "ordinal": 215,
      "text": "后删除这条",
      "top": 1090.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0216",
      "page": 98,
      "ordinal": 216,
      "text": " ID ",
      "top": 1090.0,
      "left": 185.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0217",
      "page": 98,
      "ordinal": 217,
      "text": "为",
      "top": 1090.0,
      "left": 207.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0218",
      "page": 98,
      "ordinal": 218,
      "text": " 1 ",
      "top": 1090.0,
      "left": 222.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0219",
      "page": 98,
      "ordinal": 219,
      "text": "的数据才能继续插入，实现了分布式锁的功",
      "top": 1090.0,
      "left": 238.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0221",
      "page": 98,
      "ordinal": 221,
      "text": "能",
      "top": 1090.0,
      "left": 519.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0223",
      "page": 98,
      "ordinal": 223,
      "text": "方法二：",
      "top": 1113.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0225",
      "page": 98,
      "ordinal": 225,
      "text": "使用流水号",
      "top": 1113.0,
      "left": 178.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0226",
      "page": 98,
      "ordinal": 226,
      "text": "+",
      "top": 1113.0,
      "left": 251.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0227",
      "page": 98,
      "ordinal": 227,
      "text": "时间戳做幂等操作，可以看作是一个不会释放的锁",
      "top": 1113.0,
      "left": 259.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h04",
        "heading_id": "p098-h04",
        "block_id": "q-p098-h04-b001"
      }
    },
    {
      "id": "p098-t0229",
      "page": 98,
      "ordinal": 229,
      "text": "你了解业界哪些大公司的分布式锁框架",
      "top": 1148.0,
      "left": 112.0,
      "width": 435.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05"
      }
    },
    {
      "id": "p098-t0232",
      "page": 98,
      "ordinal": 232,
      "text": "1. Google:Chubby  ",
      "top": 1199.0,
      "left": 129.0,
      "width": 128.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0001",
      "page": 99,
      "ordinal": 1,
      "text": " Chubby ",
      "top": 44.0,
      "left": 112.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0002",
      "page": 99,
      "ordinal": 2,
      "text": "是一套分布式协调系统，内部使用",
      "top": 44.0,
      "left": 172.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0003",
      "page": 99,
      "ordinal": 3,
      "text": " Paxos ",
      "top": 44.0,
      "left": 391.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0004",
      "page": 99,
      "ordinal": 4,
      "text": "协调",
      "top": 44.0,
      "left": 439.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0005",
      "page": 99,
      "ordinal": 5,
      "text": " Master ",
      "top": 44.0,
      "left": 468.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0006",
      "page": 99,
      "ordinal": 6,
      "text": "与",
      "top": 44.0,
      "left": 524.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0007",
      "page": 99,
      "ordinal": 7,
      "text": " Replicas",
      "top": 44.0,
      "left": 538.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0008",
      "page": 99,
      "ordinal": 8,
      "text": "。",
      "top": 44.0,
      "left": 598.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0009",
      "page": 99,
      "ordinal": 9,
      "text": " Chubby lock service ",
      "top": 44.0,
      "left": 612.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0010",
      "page": 99,
      "ordinal": 10,
      "text": "被",
      "top": 44.0,
      "left": 755.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0011",
      "page": 99,
      "ordinal": 11,
      "text": "应用在",
      "top": 67.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0012",
      "page": 99,
      "ordinal": 12,
      "text": " GFS, BigTable ",
      "top": 67.0,
      "left": 156.0,
      "width": 99.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0013",
      "page": 99,
      "ordinal": 13,
      "text": "等项目中，其首要设计目标是",
      "top": 67.0,
      "left": 255.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0015",
      "page": 99,
      "ordinal": 15,
      "text": "高可靠性，而不是高性能。",
      "top": 67.0,
      "left": 449.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0016",
      "page": 99,
      "ordinal": 16,
      "text": " Chubby ",
      "top": 67.0,
      "left": 625.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0017",
      "page": 99,
      "ordinal": 17,
      "text": "被作为粗粒度",
      "top": 67.0,
      "left": 685.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0018",
      "page": 99,
      "ordinal": 18,
      "text": "锁使用，例如被用于选主。持有锁的时间跨度一般为小时",
      "top": 91.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0020",
      "page": 99,
      "ordinal": 20,
      "text": "或天，而不是秒级。",
      "top": 91.0,
      "left": 481.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0021",
      "page": 99,
      "ordinal": 21,
      "text": " Chubby ",
      "top": 91.0,
      "left": 613.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0022",
      "page": 99,
      "ordinal": 22,
      "text": "对外提供类似于",
      "top": 91.0,
      "left": 673.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0023",
      "page": 99,
      "ordinal": 23,
      "text": "文件系统的",
      "top": 113.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0024",
      "page": 99,
      "ordinal": 24,
      "text": " API",
      "top": 113.0,
      "left": 185.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0025",
      "page": 99,
      "ordinal": 25,
      "text": "，在",
      "top": 113.0,
      "left": 211.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0026",
      "page": 99,
      "ordinal": 26,
      "text": " Chubby ",
      "top": 113.0,
      "left": 240.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0027",
      "page": 99,
      "ordinal": 27,
      "text": "创建文件路径即加锁操作。",
      "top": 113.0,
      "left": 300.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0028",
      "page": 99,
      "ordinal": 28,
      "text": " Chubby ",
      "top": 113.0,
      "left": 476.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0029",
      "page": 99,
      "ordinal": 29,
      "text": "使用",
      "top": 113.0,
      "left": 536.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0030",
      "page": 99,
      "ordinal": 30,
      "text": " Delay ",
      "top": 113.0,
      "left": 565.0,
      "width": 46.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0031",
      "page": 99,
      "ordinal": 31,
      "text": "和",
      "top": 113.0,
      "left": 611.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0032",
      "page": 99,
      "ordinal": 32,
      "text": " SequenceNumber ",
      "top": 113.0,
      "left": 625.0,
      "width": 131.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0033",
      "page": 99,
      "ordinal": 33,
      "text": "来",
      "top": 113.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0034",
      "page": 99,
      "ordinal": 34,
      "text": "优化锁机制。",
      "top": 137.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0035",
      "page": 99,
      "ordinal": 35,
      "text": "Delay ",
      "top": 137.0,
      "left": 200.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0036",
      "page": 99,
      "ordinal": 36,
      "text": "保证客户端异常释放锁时，",
      "top": 137.0,
      "left": 241.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0037",
      "page": 99,
      "ordinal": 37,
      "text": "Chubby ",
      "top": 137.0,
      "left": 417.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0038",
      "page": 99,
      "ordinal": 38,
      "text": "仍认为该客户端一直持有锁。",
      "top": 137.0,
      "left": 473.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0039",
      "page": 99,
      "ordinal": 39,
      "text": "Sequence ",
      "top": 137.0,
      "left": 663.0,
      "width": 70.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0040",
      "page": 99,
      "ordinal": 40,
      "text": "number ",
      "top": 161.0,
      "left": 112.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0041",
      "page": 99,
      "ordinal": 41,
      "text": "指锁的持有者",
      "top": 161.0,
      "left": 170.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0043",
      "page": 99,
      "ordinal": 43,
      "text": "向",
      "top": 161.0,
      "left": 262.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0044",
      "page": 99,
      "ordinal": 44,
      "text": " Chubby ",
      "top": 161.0,
      "left": 276.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0045",
      "page": 99,
      "ordinal": 45,
      "text": "服务端请求一个序号（包括几个属性），然后之后在需要使用锁的时",
      "top": 161.0,
      "left": 336.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0047",
      "page": 99,
      "ordinal": 47,
      "text": "候将该序号一并发给",
      "top": 184.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0048",
      "page": 99,
      "ordinal": 48,
      "text": " Chubby ",
      "top": 184.0,
      "left": 243.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0049",
      "page": 99,
      "ordinal": 49,
      "text": "服务器，服务端检查序号的合法性，包括",
      "top": 184.0,
      "left": 303.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0050",
      "page": 99,
      "ordinal": 50,
      "text": " number ",
      "top": 184.0,
      "left": 567.0,
      "width": 62.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0051",
      "page": 99,
      "ordinal": 51,
      "text": "是否有效等。",
      "top": 184.0,
      "left": 629.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b001"
      }
    },
    {
      "id": "p099-t0053",
      "page": 99,
      "ordinal": 53,
      "text": "2. ",
      "top": 219.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b002"
      }
    },
    {
      "id": "p099-t0054",
      "page": 99,
      "ordinal": 54,
      "text": "京东",
      "top": 219.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b002"
      }
    },
    {
      "id": "p099-t0055",
      "page": 99,
      "ordinal": 55,
      "text": " SharkLock  ",
      "top": 219.0,
      "left": 175.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b002"
      }
    },
    {
      "id": "p099-t0056",
      "page": 99,
      "ordinal": 56,
      "text": " SharkLock ",
      "top": 254.0,
      "left": 112.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0057",
      "page": 99,
      "ordinal": 57,
      "text": "是基于",
      "top": 254.0,
      "left": 189.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0058",
      "page": 99,
      "ordinal": 58,
      "text": " Redis ",
      "top": 254.0,
      "left": 233.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0059",
      "page": 99,
      "ordinal": 59,
      "text": "实现的分布式锁。锁的排他性由",
      "top": 254.0,
      "left": 278.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0060",
      "page": 99,
      "ordinal": 60,
      "text": " SETNX ",
      "top": 254.0,
      "left": 482.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0061",
      "page": 99,
      "ordinal": 61,
      "text": "原语实现，使",
      "top": 254.0,
      "left": 534.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0063",
      "page": 99,
      "ordinal": 63,
      "text": "用",
      "top": 254.0,
      "left": 625.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0064",
      "page": 99,
      "ordinal": 64,
      "text": " timeout ",
      "top": 254.0,
      "left": 640.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0065",
      "page": 99,
      "ordinal": 65,
      "text": "与续租机制",
      "top": 254.0,
      "left": 701.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0066",
      "page": 99,
      "ordinal": 66,
      "text": "实现锁的强制释放",
      "top": 278.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b003"
      }
    },
    {
      "id": "p099-t0068",
      "page": 99,
      "ordinal": 68,
      "text": "3. ",
      "top": 312.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b004"
      }
    },
    {
      "id": "p099-t0069",
      "page": 99,
      "ordinal": 69,
      "text": "蚂蚁金服",
      "top": 312.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b004"
      }
    },
    {
      "id": "p099-t0070",
      "page": 99,
      "ordinal": 70,
      "text": " SOFAJRaft-RheaKV ",
      "top": 312.0,
      "left": 204.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b004"
      }
    },
    {
      "id": "p099-t0071",
      "page": 99,
      "ordinal": 71,
      "text": "分布式锁",
      "top": 312.0,
      "left": 336.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b004"
      }
    },
    {
      "id": "p099-t0073",
      "page": 99,
      "ordinal": 73,
      "text": " RheaKV ",
      "top": 347.0,
      "left": 112.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0074",
      "page": 99,
      "ordinal": 74,
      "text": "是基于",
      "top": 347.0,
      "left": 171.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0075",
      "page": 99,
      "ordinal": 75,
      "text": " SOFAJRaft ",
      "top": 347.0,
      "left": 215.0,
      "width": 75.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0076",
      "page": 99,
      "ordinal": 76,
      "text": "和",
      "top": 347.0,
      "left": 290.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0077",
      "page": 99,
      "ordinal": 77,
      "text": " RocksDB ",
      "top": 347.0,
      "left": 305.0,
      "width": 67.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0078",
      "page": 99,
      "ordinal": 78,
      "text": "实现的嵌入式、分布式、高可用、强一",
      "top": 347.0,
      "left": 372.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0080",
      "page": 99,
      "ordinal": 80,
      "text": "致的",
      "top": 347.0,
      "left": 625.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0081",
      "page": 99,
      "ordinal": 81,
      "text": " KV ",
      "top": 347.0,
      "left": 654.0,
      "width": 25.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0082",
      "page": 99,
      "ordinal": 82,
      "text": "存储类库。",
      "top": 347.0,
      "left": 679.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0084",
      "page": 99,
      "ordinal": 84,
      "text": "RheaKV ",
      "top": 371.0,
      "left": 112.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0085",
      "page": 99,
      "ordinal": 85,
      "text": "对外提供",
      "top": 371.0,
      "left": 168.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0086",
      "page": 99,
      "ordinal": 86,
      "text": " lock ",
      "top": 371.0,
      "left": 226.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0087",
      "page": 99,
      "ordinal": 87,
      "text": "接口，为了优化数据的读写，按不同的存储类型，提供",
      "top": 371.0,
      "left": 261.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0089",
      "page": 99,
      "ordinal": 89,
      "text": "不同的锁特性。",
      "top": 371.0,
      "left": 616.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0090",
      "page": 99,
      "ordinal": 90,
      "text": "RheaKV ",
      "top": 371.0,
      "left": 718.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0091",
      "page": 99,
      "ordinal": 91,
      "text": "提供",
      "top": 395.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0092",
      "page": 99,
      "ordinal": 92,
      "text": " wathcdog ",
      "top": 395.0,
      "left": 141.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0093",
      "page": 99,
      "ordinal": 93,
      "text": "调度器来控制锁的自动续租机制，避免",
      "top": 395.0,
      "left": 215.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0095",
      "page": 99,
      "ordinal": 95,
      "text": "锁在任务完成前提前释放，和锁永不释放造成死",
      "top": 395.0,
      "left": 467.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0096",
      "page": 99,
      "ordinal": 96,
      "text": "锁",
      "top": 418.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b005"
      }
    },
    {
      "id": "p099-t0098",
      "page": 99,
      "ordinal": 98,
      "text": "4. Netflix: Curator  ",
      "top": 453.0,
      "left": 129.0,
      "width": 128.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b006"
      }
    },
    {
      "id": "p099-t0099",
      "page": 99,
      "ordinal": 99,
      "text": " Curator ",
      "top": 488.0,
      "left": 112.0,
      "width": 60.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0100",
      "page": 99,
      "ordinal": 100,
      "text": "是",
      "top": 488.0,
      "left": 172.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0101",
      "page": 99,
      "ordinal": 101,
      "text": " ZooKeeper ",
      "top": 488.0,
      "left": 186.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0102",
      "page": 99,
      "ordinal": 102,
      "text": "的客户端封装，其分布式锁的实现完全由",
      "top": 488.0,
      "left": 268.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0103",
      "page": 99,
      "ordinal": 103,
      "text": " ZooKeeper ",
      "top": 488.0,
      "left": 532.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0104",
      "page": 99,
      "ordinal": 104,
      "text": "完",
      "top": 488.0,
      "left": 614.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0106",
      "page": 99,
      "ordinal": 106,
      "text": "成。",
      "top": 488.0,
      "left": 632.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0108",
      "page": 99,
      "ordinal": 108,
      "text": "在",
      "top": 488.0,
      "left": 665.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0109",
      "page": 99,
      "ordinal": 109,
      "text": " ZooKeeper ",
      "top": 488.0,
      "left": 680.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0110",
      "page": 99,
      "ordinal": 110,
      "text": "创",
      "top": 488.0,
      "left": 762.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0111",
      "page": 99,
      "ordinal": 111,
      "text": "建",
      "top": 512.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0112",
      "page": 99,
      "ordinal": 112,
      "text": " EPHEMERAL_SEQUENTIAL ",
      "top": 512.0,
      "left": 126.0,
      "width": 184.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0113",
      "page": 99,
      "ordinal": 113,
      "text": "节点视为加锁，节点的",
      "top": 512.0,
      "left": 310.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0114",
      "page": 99,
      "ordinal": 114,
      "text": " EPHEMERAL ",
      "top": 512.0,
      "left": 456.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0115",
      "page": 99,
      "ordinal": 115,
      "text": "特性保证了锁持有者与",
      "top": 512.0,
      "left": 547.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0116",
      "page": 99,
      "ordinal": 116,
      "text": " ZooKeeper ",
      "top": 512.0,
      "left": 693.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0117",
      "page": 99,
      "ordinal": 117,
      "text": "断开时强制释放锁；节点的",
      "top": 535.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0118",
      "page": 99,
      "ordinal": 118,
      "text": " SEQUENTIAL ",
      "top": 535.0,
      "left": 287.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0119",
      "page": 99,
      "ordinal": 119,
      "text": "特性避免了加锁较多时的惊群效应",
      "top": 535.0,
      "left": 381.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p098-h05",
        "heading_id": "p098-h05",
        "block_id": "q-p098-h05-b007"
      }
    },
    {
      "id": "p099-t0121",
      "page": 99,
      "ordinal": 121,
      "text": "请讲一下你对",
      "top": 569.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01"
      }
    },
    {
      "id": "p099-t0122",
      "page": 99,
      "ordinal": 122,
      "text": " CAP ",
      "top": 569.0,
      "left": 265.0,
      "width": 63.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01"
      }
    },
    {
      "id": "p099-t0123",
      "page": 99,
      "ordinal": 123,
      "text": "理论的理解",
      "top": 569.0,
      "left": 329.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01"
      }
    },
    {
      "id": "p099-t0127",
      "page": 99,
      "ordinal": 127,
      "text": "在理论计算机科学中，",
      "top": 620.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0128",
      "page": 99,
      "ordinal": 128,
      "text": "CAP ",
      "top": 620.0,
      "left": 262.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0129",
      "page": 99,
      "ordinal": 129,
      "text": "定理（",
      "top": 620.0,
      "left": 293.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0130",
      "page": 99,
      "ordinal": 130,
      "text": "CAP theorem",
      "top": 620.0,
      "left": 337.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0131",
      "page": 99,
      "ordinal": 131,
      "text": "），又被称作布鲁尔定理",
      "top": 620.0,
      "left": 427.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0133",
      "page": 99,
      "ordinal": 133,
      "text": "（",
      "top": 620.0,
      "left": 591.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0134",
      "page": 99,
      "ordinal": 134,
      "text": "Brewer’s theorem",
      "top": 620.0,
      "left": 606.0,
      "width": 121.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0135",
      "page": 99,
      "ordinal": 135,
      "text": "），它",
      "top": 620.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0136",
      "page": 99,
      "ordinal": 136,
      "text": "指出对于一个分布式计算系统来说，不可能同时满",
      "top": 643.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0138",
      "page": 99,
      "ordinal": 138,
      "text": "足以下三点：",
      "top": 643.0,
      "left": 437.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b001"
      }
    },
    {
      "id": "p099-t0140",
      "page": 99,
      "ordinal": 140,
      "text": "1. Consistency",
      "top": 678.0,
      "left": 129.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b002"
      }
    },
    {
      "id": "p099-t0141",
      "page": 99,
      "ordinal": 141,
      "text": "（一致性）",
      "top": 678.0,
      "left": 227.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b002"
      }
    },
    {
      "id": "p099-t0143",
      "page": 99,
      "ordinal": 143,
      "text": "指数据在多个副本之间能够保持一致的特性",
      "top": 678.0,
      "left": 304.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b002"
      }
    },
    {
      "id": "p099-t0145",
      "page": 99,
      "ordinal": 145,
      "text": "（严格的一致性）",
      "top": 678.0,
      "left": 585.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b002"
      }
    },
    {
      "id": "p099-t0147",
      "page": 99,
      "ordinal": 147,
      "text": "2. Availability",
      "top": 710.0,
      "left": 129.0,
      "width": 89.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b003"
      }
    },
    {
      "id": "p099-t0148",
      "page": 99,
      "ordinal": 148,
      "text": "（可用性）",
      "top": 710.0,
      "left": 218.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b003"
      }
    },
    {
      "id": "p099-t0150",
      "page": 99,
      "ordinal": 150,
      "text": "指系统提供的服务必须一直处于可用的状态，",
      "top": 710.0,
      "left": 295.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b003"
      }
    },
    {
      "id": "p099-t0152",
      "page": 99,
      "ordinal": 152,
      "text": "每次请求都能获取到非错的响",
      "top": 710.0,
      "left": 592.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b003"
      }
    },
    {
      "id": "p099-t0153",
      "page": 99,
      "ordinal": 153,
      "text": "应（不保证获取的数据为最新数据）",
      "top": 732.0,
      "left": 146.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b003"
      }
    },
    {
      "id": "p099-t0155",
      "page": 99,
      "ordinal": 155,
      "text": "3. Partition tolerance",
      "top": 764.0,
      "left": 129.0,
      "width": 142.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0156",
      "page": 99,
      "ordinal": 156,
      "text": "（分区容错性）",
      "top": 764.0,
      "left": 272.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0158",
      "page": 99,
      "ordinal": 158,
      "text": "分布式系统在遇到任何网络分区故",
      "top": 764.0,
      "left": 378.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0160",
      "page": 99,
      "ordinal": 160,
      "text": "障的时候，仍然能够对外提",
      "top": 764.0,
      "left": 601.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0161",
      "page": 99,
      "ordinal": 161,
      "text": "供满足一致性和可用性的服务，除非整个网络",
      "top": 787.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0163",
      "page": 99,
      "ordinal": 163,
      "text": "环境都发生了故障",
      "top": 787.0,
      "left": 442.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b004"
      }
    },
    {
      "id": "p099-t0165",
      "page": 99,
      "ordinal": 165,
      "text": " Spring Cloud ",
      "top": 822.0,
      "left": 112.0,
      "width": 95.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0166",
      "page": 99,
      "ordinal": 166,
      "text": "在",
      "top": 822.0,
      "left": 207.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0167",
      "page": 99,
      "ordinal": 167,
      "text": " CAP ",
      "top": 822.0,
      "left": 221.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0168",
      "page": 99,
      "ordinal": 168,
      "text": "法则上主要满足的是",
      "top": 822.0,
      "left": 256.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0169",
      "page": 99,
      "ordinal": 169,
      "text": " A ",
      "top": 822.0,
      "left": 388.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0170",
      "page": 99,
      "ordinal": 170,
      "text": "和",
      "top": 822.0,
      "left": 404.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0171",
      "page": 99,
      "ordinal": 171,
      "text": " P ",
      "top": 822.0,
      "left": 419.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0172",
      "page": 99,
      "ordinal": 172,
      "text": "法则，",
      "top": 822.0,
      "left": 436.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0173",
      "page": 99,
      "ordinal": 173,
      "text": "Dubbo ",
      "top": 822.0,
      "left": 479.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0174",
      "page": 99,
      "ordinal": 174,
      "text": "和",
      "top": 822.0,
      "left": 530.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0175",
      "page": 99,
      "ordinal": 175,
      "text": " Zookeeper ",
      "top": 822.0,
      "left": 544.0,
      "width": 81.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0176",
      "page": 99,
      "ordinal": 176,
      "text": "在",
      "top": 822.0,
      "left": 625.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0177",
      "page": 99,
      "ordinal": 177,
      "text": " CAP ",
      "top": 822.0,
      "left": 640.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0178",
      "page": 99,
      "ordinal": 178,
      "text": "法则主要满足的",
      "top": 822.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0179",
      "page": 99,
      "ordinal": 179,
      "text": "是",
      "top": 846.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0180",
      "page": 99,
      "ordinal": 180,
      "text": " C ",
      "top": 846.0,
      "left": 126.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0181",
      "page": 99,
      "ordinal": 181,
      "text": "和",
      "top": 846.0,
      "left": 143.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0182",
      "page": 99,
      "ordinal": 182,
      "text": " P ",
      "top": 846.0,
      "left": 158.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0183",
      "page": 99,
      "ordinal": 183,
      "text": "法则。",
      "top": 846.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0184",
      "page": 99,
      "ordinal": 184,
      "text": " CAP ",
      "top": 846.0,
      "left": 218.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0185",
      "page": 99,
      "ordinal": 185,
      "text": "仅适用于原子读写的",
      "top": 846.0,
      "left": 253.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0186",
      "page": 99,
      "ordinal": 186,
      "text": " NOSQL ",
      "top": 846.0,
      "left": 385.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0187",
      "page": 99,
      "ordinal": 187,
      "text": "场景中，并不适合数据库系统。现在的分布式",
      "top": 846.0,
      "left": 442.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0189",
      "page": 99,
      "ordinal": 189,
      "text": "系统具",
      "top": 846.0,
      "left": 738.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0190",
      "page": 99,
      "ordinal": 190,
      "text": "有更多特性比如扩展性、可用性等等，在进行系统设计和开发时，我们",
      "top": 868.0,
      "left": 112.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0192",
      "page": 99,
      "ordinal": 192,
      "text": "不应该仅仅局限在",
      "top": 868.0,
      "left": 569.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0193",
      "page": 99,
      "ordinal": 193,
      "text": " CAP ",
      "top": 868.0,
      "left": 686.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0194",
      "page": 99,
      "ordinal": 194,
      "text": "问题上。",
      "top": 868.0,
      "left": 721.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0196",
      "page": 99,
      "ordinal": 196,
      "text": "现实生活中，大部分人解释这一定律时，常常简单的表述为：",
      "top": 892.0,
      "left": 112.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0197",
      "page": 99,
      "ordinal": 197,
      "text": "“",
      "top": 892.0,
      "left": 507.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0198",
      "page": 99,
      "ordinal": 198,
      "text": "一致性、可用",
      "top": 892.0,
      "left": 512.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0200",
      "page": 99,
      "ordinal": 200,
      "text": "性、分区容忍性三者你只能",
      "top": 892.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0201",
      "page": 99,
      "ordinal": 201,
      "text": "同时达到其中两个，不可能同时达到",
      "top": 915.0,
      "left": 112.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0202",
      "page": 99,
      "ordinal": 202,
      "text": "”",
      "top": 915.0,
      "left": 346.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0203",
      "page": 99,
      "ordinal": 203,
      "text": "。实际上这",
      "top": 915.0,
      "left": 351.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0205",
      "page": 99,
      "ordinal": 205,
      "text": "是一个非常具有误导性质的说法，而且在",
      "top": 915.0,
      "left": 428.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0206",
      "page": 99,
      "ordinal": 206,
      "text": " CAP ",
      "top": 915.0,
      "left": 691.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0207",
      "page": 99,
      "ordinal": 207,
      "text": "理论诞",
      "top": 915.0,
      "left": 726.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0208",
      "page": 99,
      "ordinal": 208,
      "text": "生",
      "top": 939.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0209",
      "page": 99,
      "ordinal": 209,
      "text": " 12 ",
      "top": 939.0,
      "left": 126.0,
      "width": 24.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0210",
      "page": 99,
      "ordinal": 210,
      "text": "年之后，",
      "top": 939.0,
      "left": 151.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0211",
      "page": 99,
      "ordinal": 211,
      "text": "CAP ",
      "top": 939.0,
      "left": 209.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0212",
      "page": 99,
      "ordinal": 212,
      "text": "之父也",
      "top": 939.0,
      "left": 240.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0214",
      "page": 99,
      "ordinal": 214,
      "text": "在",
      "top": 939.0,
      "left": 288.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0215",
      "page": 99,
      "ordinal": 215,
      "text": " 2012 ",
      "top": 939.0,
      "left": 303.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0216",
      "page": 99,
      "ordinal": 216,
      "text": "年重写了之前的论文。",
      "top": 939.0,
      "left": 344.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0218",
      "page": 99,
      "ordinal": 218,
      "text": "当发生网络分区的时候，如果我们要继续服",
      "top": 939.0,
      "left": 494.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0219",
      "page": 99,
      "ordinal": 219,
      "text": "务，那么强一致性和可用性只能",
      "top": 962.0,
      "left": 112.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0220",
      "page": 99,
      "ordinal": 220,
      "text": " 2 ",
      "top": 962.0,
      "left": 317.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0221",
      "page": 99,
      "ordinal": 221,
      "text": "选",
      "top": 962.0,
      "left": 332.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0222",
      "page": 99,
      "ordinal": 222,
      "text": " 1",
      "top": 962.0,
      "left": 347.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0223",
      "page": 99,
      "ordinal": 223,
      "text": "。也就是说当网络分区之后",
      "top": 962.0,
      "left": 359.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0224",
      "page": 99,
      "ordinal": 224,
      "text": " P ",
      "top": 962.0,
      "left": 535.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0225",
      "page": 99,
      "ordinal": 225,
      "text": "是前提，决定了",
      "top": 962.0,
      "left": 551.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0226",
      "page": 99,
      "ordinal": 226,
      "text": " P ",
      "top": 962.0,
      "left": 654.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0227",
      "page": 99,
      "ordinal": 227,
      "text": "之后才有",
      "top": 962.0,
      "left": 670.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0228",
      "page": 99,
      "ordinal": 228,
      "text": " C ",
      "top": 962.0,
      "left": 728.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0229",
      "page": 99,
      "ordinal": 229,
      "text": "和",
      "top": 962.0,
      "left": 745.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0230",
      "page": 99,
      "ordinal": 230,
      "text": " A ",
      "top": 962.0,
      "left": 760.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0231",
      "page": 99,
      "ordinal": 231,
      "text": "的选择。",
      "top": 985.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0233",
      "page": 99,
      "ordinal": 233,
      "text": "也就是说分区容错性（",
      "top": 985.0,
      "left": 174.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0234",
      "page": 99,
      "ordinal": 234,
      "text": "Partition tolerance",
      "top": 985.0,
      "left": 320.0,
      "width": 126.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0235",
      "page": 99,
      "ordinal": 235,
      "text": "）我们是必须要实现的。",
      "top": 985.0,
      "left": 447.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h01",
        "heading_id": "p099-h01",
        "block_id": "q-p099-h01-b005"
      }
    },
    {
      "id": "p099-t0237",
      "page": 99,
      "ordinal": 237,
      "text": "请讲一下你对",
      "top": 1020.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02"
      }
    },
    {
      "id": "p099-t0238",
      "page": 99,
      "ordinal": 238,
      "text": " BASE ",
      "top": 1020.0,
      "left": 265.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02"
      }
    },
    {
      "id": "p099-t0239",
      "page": 99,
      "ordinal": 239,
      "text": "理论的理解",
      "top": 1020.0,
      "left": 342.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02"
      }
    },
    {
      "id": "p099-t0242",
      "page": 99,
      "ordinal": 242,
      "text": " BASE ",
      "top": 1071.0,
      "left": 112.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0243",
      "page": 99,
      "ordinal": 243,
      "text": "理论由",
      "top": 1071.0,
      "left": 154.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0244",
      "page": 99,
      "ordinal": 244,
      "text": " eBay ",
      "top": 1071.0,
      "left": 198.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0245",
      "page": 99,
      "ordinal": 245,
      "text": "架构师",
      "top": 1071.0,
      "left": 239.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0246",
      "page": 99,
      "ordinal": 246,
      "text": " Dan Pritchett ",
      "top": 1071.0,
      "left": 283.0,
      "width": 97.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0247",
      "page": 99,
      "ordinal": 247,
      "text": "提出，在",
      "top": 1071.0,
      "left": 380.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0248",
      "page": 99,
      "ordinal": 248,
      "text": " 2008 ",
      "top": 1071.0,
      "left": 439.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0249",
      "page": 99,
      "ordinal": 249,
      "text": "年上被分表为论文，并",
      "top": 1071.0,
      "left": 480.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0251",
      "page": 99,
      "ordinal": 251,
      "text": "且",
      "top": 1071.0,
      "left": 630.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0252",
      "page": 99,
      "ordinal": 252,
      "text": " eBay ",
      "top": 1071.0,
      "left": 644.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0253",
      "page": 99,
      "ordinal": 253,
      "text": "给出了他们在",
      "top": 1071.0,
      "left": 685.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0254",
      "page": 99,
      "ordinal": 254,
      "text": "实践中总结的基于",
      "top": 1094.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0255",
      "page": 99,
      "ordinal": 255,
      "text": " BASE ",
      "top": 1094.0,
      "left": 229.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0256",
      "page": 99,
      "ordinal": 256,
      "text": "理论的一套新的分布式事务解决",
      "top": 1094.0,
      "left": 271.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0258",
      "page": 99,
      "ordinal": 258,
      "text": "方案。",
      "top": 1094.0,
      "left": 480.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0259",
      "page": 99,
      "ordinal": 259,
      "text": " BASE ",
      "top": 1094.0,
      "left": 524.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0260",
      "page": 99,
      "ordinal": 260,
      "text": "是",
      "top": 1094.0,
      "left": 566.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0261",
      "page": 99,
      "ordinal": 261,
      "text": " Basically Available",
      "top": 1094.0,
      "left": 581.0,
      "width": 127.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0262",
      "page": 99,
      "ordinal": 262,
      "text": "（基本可",
      "top": 1094.0,
      "left": 708.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0263",
      "page": 99,
      "ordinal": 263,
      "text": "用）",
      "top": 1118.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0265",
      "page": 99,
      "ordinal": 265,
      "text": "、",
      "top": 1118.0,
      "left": 145.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0266",
      "page": 99,
      "ordinal": 266,
      "text": "Soft-state",
      "top": 1118.0,
      "left": 159.0,
      "width": 65.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0267",
      "page": 99,
      "ordinal": 267,
      "text": "（软状态）",
      "top": 1118.0,
      "left": 225.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0269",
      "page": 99,
      "ordinal": 269,
      "text": "和",
      "top": 1118.0,
      "left": 302.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0270",
      "page": 99,
      "ordinal": 270,
      "text": " Eventually Consistent",
      "top": 1118.0,
      "left": 316.0,
      "width": 149.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0271",
      "page": 99,
      "ordinal": 271,
      "text": "（最终一致性）",
      "top": 1118.0,
      "left": 466.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0273",
      "page": 99,
      "ordinal": 273,
      "text": "三个短语的缩写。",
      "top": 1118.0,
      "left": 572.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0274",
      "page": 99,
      "ordinal": 274,
      "text": "BASE ",
      "top": 1118.0,
      "left": 689.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0275",
      "page": 99,
      "ordinal": 275,
      "text": "理论是",
      "top": 1118.0,
      "left": 728.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0276",
      "page": 99,
      "ordinal": 276,
      "text": "对",
      "top": 1140.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0277",
      "page": 99,
      "ordinal": 277,
      "text": " CAP ",
      "top": 1140.0,
      "left": 126.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0278",
      "page": 99,
      "ordinal": 278,
      "text": "中一致性和可用性权衡的结果，其来源于对大规模互联网系统分布式实践的总",
      "top": 1140.0,
      "left": 161.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0280",
      "page": 99,
      "ordinal": 280,
      "text": "结，是基于",
      "top": 1140.0,
      "left": 662.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0281",
      "page": 99,
      "ordinal": 281,
      "text": " CAP ",
      "top": 1140.0,
      "left": 735.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0282",
      "page": 99,
      "ordinal": 282,
      "text": "定理逐步演化而来的，它大大降低了我们对系统的要求。",
      "top": 1164.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0283",
      "page": 99,
      "ordinal": 283,
      "text": " BASE ",
      "top": 1164.0,
      "left": 477.0,
      "width": 42.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0284",
      "page": 99,
      "ordinal": 284,
      "text": "理论的核心思想是即使无法做到强一致",
      "top": 1164.0,
      "left": 520.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0285",
      "page": 99,
      "ordinal": 285,
      "text": "性，但每个应用都可以根据自身业",
      "top": 1188.0,
      "left": 112.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p099-t0287",
      "page": 99,
      "ordinal": 287,
      "text": "务特点，采用适当的方式来使系统达到最终一致性。也就是牺牲数据",
      "top": 1188.0,
      "left": 335.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0001",
      "page": 100,
      "ordinal": 1,
      "text": "的一致性",
      "top": 44.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0003",
      "page": 100,
      "ordinal": 3,
      "text": "来满足系统的高可用性，系统中一部分数据不可用或者不一致时，仍需要保持",
      "top": 44.0,
      "left": 174.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0005",
      "page": 100,
      "ordinal": 5,
      "text": "系统整体",
      "top": 44.0,
      "left": 675.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0006",
      "page": 100,
      "ordinal": 6,
      "text": "“",
      "top": 44.0,
      "left": 734.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0007",
      "page": 100,
      "ordinal": 7,
      "text": "主要",
      "top": 44.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0008",
      "page": 100,
      "ordinal": 8,
      "text": "可用",
      "top": 67.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0009",
      "page": 100,
      "ordinal": 9,
      "text": "”",
      "top": 67.0,
      "left": 141.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0010",
      "page": 100,
      "ordinal": 10,
      "text": "。",
      "top": 67.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0012",
      "page": 100,
      "ordinal": 12,
      "text": "针对数据库领域，",
      "top": 67.0,
      "left": 165.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0013",
      "page": 100,
      "ordinal": 13,
      "text": "BASE ",
      "top": 67.0,
      "left": 282.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0014",
      "page": 100,
      "ordinal": 14,
      "text": "思想的主要实现是对业务数据进行拆分，让不同的数据",
      "top": 67.0,
      "left": 320.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0016",
      "page": 100,
      "ordinal": 16,
      "text": "分布在不同的机",
      "top": 67.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0017",
      "page": 100,
      "ordinal": 17,
      "text": "器上，以提升系统的可用性，当前主要有以下两种做法：",
      "top": 91.0,
      "left": 112.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b001"
      }
    },
    {
      "id": "p100-t0019",
      "page": 100,
      "ordinal": 19,
      "text": "1. ",
      "top": 126.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b002"
      }
    },
    {
      "id": "p100-t0020",
      "page": 100,
      "ordinal": 20,
      "text": "按功能划分数据库",
      "top": 126.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b002"
      }
    },
    {
      "id": "p100-t0022",
      "page": 100,
      "ordinal": 22,
      "text": "2. ",
      "top": 156.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0023",
      "page": 100,
      "ordinal": 23,
      "text": "分片（如开源的",
      "top": 156.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0024",
      "page": 100,
      "ordinal": 24,
      "text": " MyCat",
      "top": 156.0,
      "left": 248.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0025",
      "page": 100,
      "ordinal": 25,
      "text": "、",
      "top": 156.0,
      "left": 295.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0026",
      "page": 100,
      "ordinal": 26,
      "text": "Amoeba ",
      "top": 156.0,
      "left": 309.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0027",
      "page": 100,
      "ordinal": 27,
      "text": "等）",
      "top": 156.0,
      "left": 370.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p099-h02",
        "heading_id": "p099-h02",
        "block_id": "q-p099-h02-b003"
      }
    },
    {
      "id": "p100-t0029",
      "page": 100,
      "ordinal": 29,
      "text": "请讲一下",
      "top": 191.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01"
      }
    },
    {
      "id": "p100-t0030",
      "page": 100,
      "ordinal": 30,
      "text": " BASE ",
      "top": 191.0,
      "left": 214.0,
      "width": 77.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01"
      }
    },
    {
      "id": "p100-t0031",
      "page": 100,
      "ordinal": 31,
      "text": "理论的三要素",
      "top": 191.0,
      "left": 291.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01"
      }
    },
    {
      "id": "p100-t0034",
      "page": 100,
      "ordinal": 34,
      "text": "基本可用",
      "top": 242.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b001"
      }
    },
    {
      "id": "p100-t0036",
      "page": 100,
      "ordinal": 36,
      "text": "基本可用是指分布式系统在出现不可预知故障的时候，允许损失部分可用性。",
      "top": 265.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b001"
      }
    },
    {
      "id": "p100-t0038",
      "page": 100,
      "ordinal": 38,
      "text": "但是，这绝不等价于系统",
      "top": 265.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b001"
      }
    },
    {
      "id": "p100-t0039",
      "page": 100,
      "ordinal": 39,
      "text": "不可用。",
      "top": 288.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b001"
      }
    },
    {
      "id": "p100-t0041",
      "page": 100,
      "ordinal": 41,
      "text": "比如：",
      "top": 288.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b001"
      }
    },
    {
      "id": "p100-t0043",
      "page": 100,
      "ordinal": 43,
      "text": "1. ",
      "top": 324.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0044",
      "page": 100,
      "ordinal": 44,
      "text": "响应时间上的损失：正常情况下，一个在线搜索引擎需要在",
      "top": 324.0,
      "left": 146.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0045",
      "page": 100,
      "ordinal": 45,
      "text": " 0.5 ",
      "top": 324.0,
      "left": 526.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0046",
      "page": 100,
      "ordinal": 46,
      "text": "秒之内返",
      "top": 324.0,
      "left": 554.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0048",
      "page": 100,
      "ordinal": 48,
      "text": "回给用户相应的查询结",
      "top": 324.0,
      "left": 616.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0049",
      "page": 100,
      "ordinal": 49,
      "text": "果，但由于出现故障，查询结果的响应时间增加了",
      "top": 346.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0050",
      "page": 100,
      "ordinal": 50,
      "text": " 1~2 ",
      "top": 346.0,
      "left": 467.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0051",
      "page": 100,
      "ordinal": 51,
      "text": "秒",
      "top": 346.0,
      "left": 500.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b002"
      }
    },
    {
      "id": "p100-t0053",
      "page": 100,
      "ordinal": 53,
      "text": "2. ",
      "top": 378.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0054",
      "page": 100,
      "ordinal": 54,
      "text": "系统功能上的损失：正常情况下，在一个电子商务网站上进行购物的时",
      "top": 378.0,
      "left": 146.0,
      "width": 453.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0056",
      "page": 100,
      "ordinal": 56,
      "text": "候，消费者几乎能够顺利完",
      "top": 378.0,
      "left": 603.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0057",
      "page": 100,
      "ordinal": 57,
      "text": "成每一笔订单，但是在一些节日大促购物高峰",
      "top": 400.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0059",
      "page": 100,
      "ordinal": 59,
      "text": "的时候，由于消费者的购物行为激增，为了保护购物",
      "top": 400.0,
      "left": 442.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0060",
      "page": 100,
      "ordinal": 60,
      "text": "系统的稳定性，部分",
      "top": 424.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0062",
      "page": 100,
      "ordinal": 62,
      "text": "消费者可能会被引导到一个降级页面",
      "top": 424.0,
      "left": 281.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b003"
      }
    },
    {
      "id": "p100-t0064",
      "page": 100,
      "ordinal": 64,
      "text": "软状态",
      "top": 459.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0066",
      "page": 100,
      "ordinal": 66,
      "text": "软状态指允许系统中的数据存在中间状态，并认为该中间状态的存在不会影响",
      "top": 482.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0068",
      "page": 100,
      "ordinal": 68,
      "text": "系统的整体可用性，即允",
      "top": 482.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0069",
      "page": 100,
      "ordinal": 69,
      "text": "许系统在不同节点的数据副本之间进行数据同步的过",
      "top": 506.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0071",
      "page": 100,
      "ordinal": 71,
      "text": "程存在延时",
      "top": 506.0,
      "left": 452.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0072",
      "page": 100,
      "ordinal": 72,
      "text": "最终一致性",
      "top": 530.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0073",
      "page": 100,
      "ordinal": 73,
      "text": "强调的是系统中所有的数据副本，在经过一段时间的同步后，最终能够达到一",
      "top": 553.0,
      "left": 112.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0075",
      "page": 100,
      "ordinal": 75,
      "text": "个一致的状态。因此，最",
      "top": 553.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0076",
      "page": 100,
      "ordinal": 76,
      "text": "终一致性的本质是需要系统保证最终数据能够达到一",
      "top": 576.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0078",
      "page": 100,
      "ordinal": 78,
      "text": "致，而不需要实时保证系统数据的强一致性",
      "top": 576.0,
      "left": 452.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h01",
        "heading_id": "p100-h01",
        "block_id": "q-p100-h01-b004"
      }
    },
    {
      "id": "p100-t0080",
      "page": 100,
      "ordinal": 80,
      "text": "分布式与集群的区别是什么",
      "top": 610.0,
      "left": 112.0,
      "width": 307.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02"
      }
    },
    {
      "id": "p100-t0084",
      "page": 100,
      "ordinal": 84,
      "text": "分布式：一个业务分拆多个子业务，部署在不同的服务器上",
      "top": 661.0,
      "left": 116.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0086",
      "page": 100,
      "ordinal": 86,
      "text": "集群：同一个业务，部署在多个服务器上。",
      "top": 661.0,
      "left": 500.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0087",
      "page": 100,
      "ordinal": 87,
      "text": "比如之前做电商网站搭的",
      "top": 685.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0088",
      "page": 100,
      "ordinal": 88,
      "text": " redis ",
      "top": 685.0,
      "left": 273.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0089",
      "page": 100,
      "ordinal": 89,
      "text": "集",
      "top": 685.0,
      "left": 314.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0091",
      "page": 100,
      "ordinal": 91,
      "text": "群以及",
      "top": 685.0,
      "left": 332.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0092",
      "page": 100,
      "ordinal": 92,
      "text": " solr ",
      "top": 685.0,
      "left": 376.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0093",
      "page": 100,
      "ordinal": 93,
      "text": "集群都是属于将",
      "top": 685.0,
      "left": 409.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0094",
      "page": 100,
      "ordinal": 94,
      "text": " Redis ",
      "top": 685.0,
      "left": 512.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0095",
      "page": 100,
      "ordinal": 95,
      "text": "服务器提供的缓存服务以及",
      "top": 685.0,
      "left": 556.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0096",
      "page": 100,
      "ordinal": 96,
      "text": " solr ",
      "top": 685.0,
      "left": 732.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0097",
      "page": 100,
      "ordinal": 97,
      "text": "服",
      "top": 685.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0098",
      "page": 100,
      "ordinal": 98,
      "text": "务器提",
      "top": 708.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0100",
      "page": 100,
      "ordinal": 100,
      "text": "供的搜索服务部署在多个服务器上以提高系统性能、并发量解决海量存储问",
      "top": 708.0,
      "left": 159.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0102",
      "page": 100,
      "ordinal": 102,
      "text": "题。",
      "top": 708.0,
      "left": 646.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h02",
        "heading_id": "p100-h02",
        "block_id": "q-p100-h02-b001"
      }
    },
    {
      "id": "p100-t0104",
      "page": 100,
      "ordinal": 104,
      "text": "请说一下对两阶段提交协议的理解",
      "top": 742.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03"
      }
    },
    {
      "id": "p100-t0108",
      "page": 100,
      "ordinal": 108,
      "text": "分布式系统的一个难点是如何保证架构下多个节点在进行事务性操作的时候保",
      "top": 793.0,
      "left": 116.0,
      "width": 497.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b001"
      }
    },
    {
      "id": "p100-t0110",
      "page": 100,
      "ordinal": 110,
      "text": "持一致性。为实现这个目",
      "top": 793.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b001"
      }
    },
    {
      "id": "p100-t0111",
      "page": 100,
      "ordinal": 111,
      "text": "的，二阶段提交算法的成立基于以下假设：",
      "top": 816.0,
      "left": 112.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b001"
      }
    },
    {
      "id": "p100-t0112",
      "page": 100,
      "ordinal": 112,
      "text": "1. ",
      "top": 851.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0113",
      "page": 100,
      "ordinal": 113,
      "text": "该分布式系统中，存在一个节点作为协调者",
      "top": 851.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0114",
      "page": 100,
      "ordinal": 114,
      "text": "(Coordinator)",
      "top": 851.0,
      "left": 423.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0115",
      "page": 100,
      "ordinal": 115,
      "text": "，其他节点作为",
      "top": 851.0,
      "left": 515.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0117",
      "page": 100,
      "ordinal": 117,
      "text": "参与者",
      "top": 851.0,
      "left": 621.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0118",
      "page": 100,
      "ordinal": 118,
      "text": "(Cohorts)",
      "top": 851.0,
      "left": 665.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0119",
      "page": 100,
      "ordinal": 119,
      "text": "。且节",
      "top": 851.0,
      "left": 727.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0120",
      "page": 100,
      "ordinal": 120,
      "text": "点之间可以进行网络通信。",
      "top": 875.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b002"
      }
    },
    {
      "id": "p100-t0121",
      "page": 100,
      "ordinal": 121,
      "text": "2. ",
      "top": 905.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b003"
      }
    },
    {
      "id": "p100-t0122",
      "page": 100,
      "ordinal": 122,
      "text": "所有节点都采用预写式日志，且日志被写入后即被保持在可靠的存储设备",
      "top": 905.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b003"
      }
    },
    {
      "id": "p100-t0124",
      "page": 100,
      "ordinal": 124,
      "text": "上，即使节点损坏不会导",
      "top": 905.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b003"
      }
    },
    {
      "id": "p100-t0125",
      "page": 100,
      "ordinal": 125,
      "text": "致日志数据的消失。",
      "top": 929.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b003"
      }
    },
    {
      "id": "p100-t0127",
      "page": 100,
      "ordinal": 127,
      "text": "3. ",
      "top": 959.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b004"
      }
    },
    {
      "id": "p100-t0128",
      "page": 100,
      "ordinal": 128,
      "text": "所有节点不会永久性损坏，即使损坏后仍然可以恢复",
      "top": 959.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b004"
      }
    },
    {
      "id": "p100-t0131",
      "page": 100,
      "ordinal": 131,
      "text": "第一阶段（投票阶段）",
      "top": 995.0,
      "left": 116.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b005"
      }
    },
    {
      "id": "p100-t0133",
      "page": 100,
      "ordinal": 133,
      "text": "1. ",
      "top": 1030.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0134",
      "page": 100,
      "ordinal": 134,
      "text": "协调者节点向所有参与者节点询问是否可以执行提交操作",
      "top": 1030.0,
      "left": 146.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0135",
      "page": 100,
      "ordinal": 135,
      "text": "(vote)",
      "top": 1030.0,
      "left": 511.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0136",
      "page": 100,
      "ordinal": 136,
      "text": "，并开始",
      "top": 1030.0,
      "left": 549.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0138",
      "page": 100,
      "ordinal": 138,
      "text": "等待各参与者节点的响",
      "top": 1030.0,
      "left": 612.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0139",
      "page": 100,
      "ordinal": 139,
      "text": "应。",
      "top": 1054.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b006"
      }
    },
    {
      "id": "p100-t0141",
      "page": 100,
      "ordinal": 141,
      "text": "2. ",
      "top": 1084.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0142",
      "page": 100,
      "ordinal": 142,
      "text": "参与者节点执行询问发起为止的所有事务操作，并将",
      "top": 1084.0,
      "left": 146.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0143",
      "page": 100,
      "ordinal": 143,
      "text": " Undo ",
      "top": 1084.0,
      "left": 482.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0144",
      "page": 100,
      "ordinal": 144,
      "text": "信息和",
      "top": 1084.0,
      "left": 527.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0145",
      "page": 100,
      "ordinal": 145,
      "text": " Redo ",
      "top": 1084.0,
      "left": 571.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0146",
      "page": 100,
      "ordinal": 146,
      "text": "信",
      "top": 1084.0,
      "left": 613.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0148",
      "page": 100,
      "ordinal": 148,
      "text": "息写入日志。（注意：",
      "top": 1084.0,
      "left": 632.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0149",
      "page": 100,
      "ordinal": 149,
      "text": "若成功这里其实每个参与者已经执行了事务操作）",
      "top": 1108.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b007"
      }
    },
    {
      "id": "p100-t0151",
      "page": 100,
      "ordinal": 151,
      "text": "3. ",
      "top": 1138.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0152",
      "page": 100,
      "ordinal": 152,
      "text": "各参与者节点响应协调者节点发起的询问。如果参与者节点的事务操作实",
      "top": 1138.0,
      "left": 146.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0154",
      "page": 100,
      "ordinal": 154,
      "text": "际执行成功，则它返回一",
      "top": 1138.0,
      "left": 617.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0155",
      "page": 100,
      "ordinal": 155,
      "text": "个",
      "top": 1162.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0156",
      "page": 100,
      "ordinal": 156,
      "text": "”",
      "top": 1162.0,
      "left": 160.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0157",
      "page": 100,
      "ordinal": 157,
      "text": "同意",
      "top": 1162.0,
      "left": 165.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0158",
      "page": 100,
      "ordinal": 158,
      "text": "”",
      "top": 1162.0,
      "left": 194.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0159",
      "page": 100,
      "ordinal": 159,
      "text": "消息；如果参与者节点的事务操作实",
      "top": 1162.0,
      "left": 200.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0161",
      "page": 100,
      "ordinal": 161,
      "text": "际执行失败，则它返回一个",
      "top": 1162.0,
      "left": 437.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0162",
      "page": 100,
      "ordinal": 162,
      "text": "”",
      "top": 1162.0,
      "left": 613.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0163",
      "page": 100,
      "ordinal": 163,
      "text": "中止",
      "top": 1162.0,
      "left": 618.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0164",
      "page": 100,
      "ordinal": 164,
      "text": "”",
      "top": 1162.0,
      "left": 647.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p100-t0165",
      "page": 100,
      "ordinal": 165,
      "text": "消息",
      "top": 1162.0,
      "left": 652.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0002",
      "page": 101,
      "ordinal": 2,
      "text": "第二阶段（提交执行阶段）",
      "top": 44.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0004",
      "page": 101,
      "ordinal": 4,
      "text": "当协调者节点从所有参与者节点获得的相应消息都为",
      "top": 67.0,
      "left": 116.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0005",
      "page": 101,
      "ordinal": 5,
      "text": "”",
      "top": 67.0,
      "left": 452.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0006",
      "page": 101,
      "ordinal": 6,
      "text": "同意",
      "top": 67.0,
      "left": 457.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0007",
      "page": 101,
      "ordinal": 7,
      "text": "”",
      "top": 67.0,
      "left": 486.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0008",
      "page": 101,
      "ordinal": 8,
      "text": "：",
      "top": 67.0,
      "left": 491.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b008"
      }
    },
    {
      "id": "p101-t0010",
      "page": 101,
      "ordinal": 10,
      "text": "1. ",
      "top": 102.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0011",
      "page": 101,
      "ordinal": 11,
      "text": "协调者节点向所有参与者节点发出",
      "top": 102.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0012",
      "page": 101,
      "ordinal": 12,
      "text": "”",
      "top": 102.0,
      "left": 365.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0013",
      "page": 101,
      "ordinal": 13,
      "text": "正式提交",
      "top": 102.0,
      "left": 370.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0014",
      "page": 101,
      "ordinal": 14,
      "text": "(commit)”",
      "top": 102.0,
      "left": 428.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0015",
      "page": 101,
      "ordinal": 15,
      "text": "的请求。",
      "top": 102.0,
      "left": 494.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b009"
      }
    },
    {
      "id": "p101-t0017",
      "page": 101,
      "ordinal": 17,
      "text": "2. ",
      "top": 132.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b010"
      }
    },
    {
      "id": "p101-t0018",
      "page": 101,
      "ordinal": 18,
      "text": "参与者节点正式完成操作，并释放在整个事务期间内占用的资源。",
      "top": 132.0,
      "left": 146.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b010"
      }
    },
    {
      "id": "p101-t0019",
      "page": 101,
      "ordinal": 19,
      "text": "3. ",
      "top": 164.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0020",
      "page": 101,
      "ordinal": 20,
      "text": "参与者节点向协调者节点发送",
      "top": 164.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0021",
      "page": 101,
      "ordinal": 21,
      "text": "”",
      "top": 164.0,
      "left": 336.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0022",
      "page": 101,
      "ordinal": 22,
      "text": "完成",
      "top": 164.0,
      "left": 341.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0023",
      "page": 101,
      "ordinal": 23,
      "text": "”",
      "top": 164.0,
      "left": 370.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0024",
      "page": 101,
      "ordinal": 24,
      "text": "消息。",
      "top": 164.0,
      "left": 375.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b011"
      }
    },
    {
      "id": "p101-t0026",
      "page": 101,
      "ordinal": 26,
      "text": "4. ",
      "top": 194.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0027",
      "page": 101,
      "ordinal": 27,
      "text": "协调者节点受到所有参与者节点反馈的",
      "top": 194.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0028",
      "page": 101,
      "ordinal": 28,
      "text": "”",
      "top": 194.0,
      "left": 394.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0029",
      "page": 101,
      "ordinal": 29,
      "text": "完成",
      "top": 194.0,
      "left": 399.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0030",
      "page": 101,
      "ordinal": 30,
      "text": "”",
      "top": 194.0,
      "left": 428.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0031",
      "page": 101,
      "ordinal": 31,
      "text": "消息后，完成事务",
      "top": 194.0,
      "left": 434.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b012"
      }
    },
    {
      "id": "p101-t0034",
      "page": 101,
      "ordinal": 34,
      "text": "如果任一参与者节点在第一阶段返回的响应消息为",
      "top": 229.0,
      "left": 116.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b013"
      }
    },
    {
      "id": "p101-t0035",
      "page": 101,
      "ordinal": 35,
      "text": "”",
      "top": 229.0,
      "left": 437.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b013"
      }
    },
    {
      "id": "p101-t0036",
      "page": 101,
      "ordinal": 36,
      "text": "中止",
      "top": 229.0,
      "left": 442.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b013"
      }
    },
    {
      "id": "p101-t0037",
      "page": 101,
      "ordinal": 37,
      "text": "”",
      "top": 229.0,
      "left": 472.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b013"
      }
    },
    {
      "id": "p101-t0038",
      "page": 101,
      "ordinal": 38,
      "text": "：",
      "top": 229.0,
      "left": 477.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b013"
      }
    },
    {
      "id": "p101-t0040",
      "page": 101,
      "ordinal": 40,
      "text": "1. ",
      "top": 264.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0041",
      "page": 101,
      "ordinal": 41,
      "text": "协调者节点向所有参与者节点发出",
      "top": 264.0,
      "left": 146.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0042",
      "page": 101,
      "ordinal": 42,
      "text": "”",
      "top": 264.0,
      "left": 365.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0043",
      "page": 101,
      "ordinal": 43,
      "text": "回滚操作",
      "top": 264.0,
      "left": 370.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0044",
      "page": 101,
      "ordinal": 44,
      "text": "(rollback)”",
      "top": 264.0,
      "left": 428.0,
      "width": 68.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0045",
      "page": 101,
      "ordinal": 45,
      "text": "的请求。",
      "top": 264.0,
      "left": 496.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b014"
      }
    },
    {
      "id": "p101-t0047",
      "page": 101,
      "ordinal": 47,
      "text": "2. ",
      "top": 296.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b015"
      }
    },
    {
      "id": "p101-t0048",
      "page": 101,
      "ordinal": 48,
      "text": "参与者节点利用之前写入的",
      "top": 296.0,
      "left": 146.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b015"
      }
    },
    {
      "id": "p101-t0049",
      "page": 101,
      "ordinal": 49,
      "text": " Undo ",
      "top": 296.0,
      "left": 321.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b015"
      }
    },
    {
      "id": "p101-t0050",
      "page": 101,
      "ordinal": 50,
      "text": "信息执行回滚，并释放在整个事务期间内",
      "top": 296.0,
      "left": 366.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b015"
      }
    },
    {
      "id": "p101-t0052",
      "page": 101,
      "ordinal": 52,
      "text": "占用的资源。",
      "top": 296.0,
      "left": 633.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b015"
      }
    },
    {
      "id": "p101-t0054",
      "page": 101,
      "ordinal": 54,
      "text": "3. ",
      "top": 326.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0055",
      "page": 101,
      "ordinal": 55,
      "text": "参与者节点向协调者节点发送",
      "top": 326.0,
      "left": 146.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0056",
      "page": 101,
      "ordinal": 56,
      "text": "”",
      "top": 326.0,
      "left": 336.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0057",
      "page": 101,
      "ordinal": 57,
      "text": "回滚完成",
      "top": 326.0,
      "left": 341.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0058",
      "page": 101,
      "ordinal": 58,
      "text": "”",
      "top": 326.0,
      "left": 399.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0059",
      "page": 101,
      "ordinal": 59,
      "text": "消息。",
      "top": 326.0,
      "left": 404.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b016"
      }
    },
    {
      "id": "p101-t0061",
      "page": 101,
      "ordinal": 61,
      "text": "4. ",
      "top": 356.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0062",
      "page": 101,
      "ordinal": 62,
      "text": "协调者节点受到所有参与者节点反馈的",
      "top": 356.0,
      "left": 146.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0063",
      "page": 101,
      "ordinal": 63,
      "text": "”",
      "top": 356.0,
      "left": 394.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0064",
      "page": 101,
      "ordinal": 64,
      "text": "回滚完成",
      "top": 356.0,
      "left": 399.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0065",
      "page": 101,
      "ordinal": 65,
      "text": "”",
      "top": 356.0,
      "left": 458.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0066",
      "page": 101,
      "ordinal": 66,
      "text": "消息后，取消事务",
      "top": 356.0,
      "left": 463.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p100-h03",
        "heading_id": "p100-h03",
        "block_id": "q-p100-h03-b017"
      }
    },
    {
      "id": "p101-t0068",
      "page": 101,
      "ordinal": 68,
      "text": "请讲一下对",
      "top": 391.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01"
      }
    },
    {
      "id": "p101-t0069",
      "page": 101,
      "ordinal": 69,
      "text": " TCC ",
      "top": 391.0,
      "left": 240.0,
      "width": 61.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01"
      }
    },
    {
      "id": "p101-t0070",
      "page": 101,
      "ordinal": 70,
      "text": "协议的理解",
      "top": 391.0,
      "left": 300.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01"
      }
    },
    {
      "id": "p101-t0073",
      "page": 101,
      "ordinal": 73,
      "text": " Try Confirm Cancel",
      "top": 442.0,
      "left": 112.0,
      "width": 133.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0074",
      "page": 101,
      "ordinal": 74,
      "text": "Try",
      "top": 465.0,
      "left": 112.0,
      "width": 21.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0075",
      "page": 101,
      "ordinal": 75,
      "text": "：尝试待执行的业务",
      "top": 465.0,
      "left": 133.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0077",
      "page": 101,
      "ordinal": 77,
      "text": "，这个过程并未执行业务，只是完成所有业务的",
      "top": 465.0,
      "left": 269.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0079",
      "page": 101,
      "ordinal": 79,
      "text": "一致性检查，并预留好执行所",
      "top": 465.0,
      "left": 580.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0080",
      "page": 101,
      "ordinal": 80,
      "text": "需的全部资源。",
      "top": 488.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b001"
      }
    },
    {
      "id": "p101-t0082",
      "page": 101,
      "ordinal": 82,
      "text": "1. Confirm",
      "top": 524.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0083",
      "page": 101,
      "ordinal": 83,
      "text": "：执行业务，这个过程真正开始执行业务，由于",
      "top": 524.0,
      "left": 201.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0084",
      "page": 101,
      "ordinal": 84,
      "text": " Try ",
      "top": 524.0,
      "left": 508.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0085",
      "page": 101,
      "ordinal": 85,
      "text": "阶段已经完成",
      "top": 524.0,
      "left": 537.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0087",
      "page": 101,
      "ordinal": 87,
      "text": "了一致性检查，因此本",
      "top": 524.0,
      "left": 628.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0088",
      "page": 101,
      "ordinal": 88,
      "text": "过程直接执行，而不做任何检查。并且在执行的过",
      "top": 546.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0090",
      "page": 101,
      "ordinal": 90,
      "text": "程中，会使用到",
      "top": 546.0,
      "left": 471.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0091",
      "page": 101,
      "ordinal": 91,
      "text": " Try ",
      "top": 546.0,
      "left": 573.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0092",
      "page": 101,
      "ordinal": 92,
      "text": "阶段预留的业务资源。",
      "top": 546.0,
      "left": 602.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b002"
      }
    },
    {
      "id": "p101-t0094",
      "page": 101,
      "ordinal": 94,
      "text": "2. Cancel",
      "top": 578.0,
      "left": 129.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0095",
      "page": 101,
      "ordinal": 95,
      "text": "：取消执行的业务，若业务执行失败，则进入",
      "top": 578.0,
      "left": 191.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0096",
      "page": 101,
      "ordinal": 96,
      "text": " Cancel ",
      "top": 578.0,
      "left": 483.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0097",
      "page": 101,
      "ordinal": 97,
      "text": "阶段，它会释",
      "top": 578.0,
      "left": 536.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0099",
      "page": 101,
      "ordinal": 99,
      "text": "放所有占用的业务资",
      "top": 578.0,
      "left": 628.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0100",
      "page": 101,
      "ordinal": 100,
      "text": "源，并回滚",
      "top": 600.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0101",
      "page": 101,
      "ordinal": 101,
      "text": " Confirm ",
      "top": 600.0,
      "left": 219.0,
      "width": 63.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0102",
      "page": 101,
      "ordinal": 102,
      "text": "阶段执行的操作。",
      "top": 600.0,
      "left": 281.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/13-distributed#q-p101-h01",
        "heading_id": "p101-h01",
        "block_id": "q-p101-h01-b003"
      }
    },
    {
      "id": "p101-t0104",
      "page": 101,
      "ordinal": 104,
      "text": "Memcached  ",
      "top": 634.0,
      "left": 112.0,
      "width": 215.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h02"
      }
    },
    {
      "id": "p101-t0106",
      "page": 101,
      "ordinal": 106,
      "text": "Memcached ",
      "top": 690.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03"
      }
    },
    {
      "id": "p101-t0107",
      "page": 101,
      "ordinal": 107,
      "text": "的多线程是什么？如何使⽤它们？",
      "top": 690.0,
      "left": 273.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03"
      }
    },
    {
      "id": "p101-t0111",
      "page": 101,
      "ordinal": 111,
      "text": "线程就是定律（",
      "top": 741.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0112",
      "page": 101,
      "ordinal": 112,
      "text": "threads rule",
      "top": 741.0,
      "left": 218.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0113",
      "page": 101,
      "ordinal": 113,
      "text": "）！在",
      "top": 741.0,
      "left": 301.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0114",
      "page": 101,
      "ordinal": 114,
      "text": " Steven Grimm ",
      "top": 741.0,
      "left": 345.0,
      "width": 105.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0115",
      "page": 101,
      "ordinal": 115,
      "text": "和",
      "top": 741.0,
      "left": 450.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0116",
      "page": 101,
      "ordinal": 116,
      "text": " Facebook ",
      "top": 741.0,
      "left": 464.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0117",
      "page": 101,
      "ordinal": 117,
      "text": "的努⼒下，",
      "top": 741.0,
      "left": 537.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0118",
      "page": 101,
      "ordinal": 118,
      "text": " Memcached 1.2 ",
      "top": 741.0,
      "left": 610.0,
      "width": 115.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0119",
      "page": 101,
      "ordinal": 119,
      "text": "及更⾼",
      "top": 741.0,
      "left": 725.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0120",
      "page": 101,
      "ordinal": 120,
      "text": "版本拥有了",
      "top": 765.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0122",
      "page": 101,
      "ordinal": 122,
      "text": "多线程模式。多线程模式允许",
      "top": 765.0,
      "left": 189.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0123",
      "page": 101,
      "ordinal": 123,
      "text": " Memcached ",
      "top": 765.0,
      "left": 379.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0124",
      "page": 101,
      "ordinal": 124,
      "text": "能够充分利⽤多个",
      "top": 765.0,
      "left": 470.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0125",
      "page": 101,
      "ordinal": 125,
      "text": " CPU",
      "top": 765.0,
      "left": 587.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0126",
      "page": 101,
      "ordinal": 126,
      "text": "，并在",
      "top": 765.0,
      "left": 619.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0127",
      "page": 101,
      "ordinal": 127,
      "text": " CPU ",
      "top": 765.0,
      "left": 663.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0128",
      "page": 101,
      "ordinal": 128,
      "text": "之间共享所",
      "top": 765.0,
      "left": 699.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0129",
      "page": 101,
      "ordinal": 129,
      "text": "有的缓存数据。",
      "top": 788.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0130",
      "page": 101,
      "ordinal": 130,
      "text": " Memcached ",
      "top": 788.0,
      "left": 214.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0131",
      "page": 101,
      "ordinal": 131,
      "text": "使⽤⼀种简单的锁机制来保证数据更新操作的互斥。相⽐在同⼀",
      "top": 788.0,
      "left": 305.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0133",
      "page": 101,
      "ordinal": 133,
      "text": "个物理机",
      "top": 788.0,
      "left": 718.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0134",
      "page": 101,
      "ordinal": 134,
      "text": "器上运⾏多个",
      "top": 812.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0135",
      "page": 101,
      "ordinal": 135,
      "text": " Memcached ",
      "top": 812.0,
      "left": 200.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0136",
      "page": 101,
      "ordinal": 136,
      "text": "实例，这种⽅式能够更有效地处理",
      "top": 812.0,
      "left": 290.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0137",
      "page": 101,
      "ordinal": 137,
      "text": " multi gets",
      "top": 812.0,
      "left": 510.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0138",
      "page": 101,
      "ordinal": 138,
      "text": "。",
      "top": 812.0,
      "left": 581.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0140",
      "page": 101,
      "ordinal": 140,
      "text": "如果你的系统负载并不重，",
      "top": 812.0,
      "left": 599.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0141",
      "page": 101,
      "ordinal": 141,
      "text": "也许你不需要启⽤多线程⼯作模式。如果你在运⾏",
      "top": 834.0,
      "left": 112.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0143",
      "page": 101,
      "ordinal": 143,
      "text": "⼀个拥有⼤规模硬件的、庞⼤的⽹",
      "top": 834.0,
      "left": 437.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0145",
      "page": 101,
      "ordinal": 145,
      "text": "站，你将会看到多",
      "top": 834.0,
      "left": 660.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0146",
      "page": 101,
      "ordinal": 146,
      "text": "线程的好处。",
      "top": 858.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0148",
      "page": 101,
      "ordinal": 148,
      "text": "简单地总结⼀下：命令解析（",
      "top": 858.0,
      "left": 203.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0149",
      "page": 101,
      "ordinal": 149,
      "text": "Memcached ",
      "top": 858.0,
      "left": 393.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0150",
      "page": 101,
      "ordinal": 150,
      "text": "在这⾥花了⼤部分时间）可以运⾏",
      "top": 858.0,
      "left": 480.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0152",
      "page": 101,
      "ordinal": 152,
      "text": "在",
      "top": 858.0,
      "left": 704.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0154",
      "page": 101,
      "ordinal": 154,
      "text": "多线程模",
      "top": 858.0,
      "left": 722.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0155",
      "page": 101,
      "ordinal": 155,
      "text": "式下。",
      "top": 882.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0156",
      "page": 101,
      "ordinal": 156,
      "text": "Memcached ",
      "top": 882.0,
      "left": 156.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0157",
      "page": 101,
      "ordinal": 157,
      "text": "内部对数据的操作是基于很多全局锁的（因此",
      "top": 882.0,
      "left": 243.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0159",
      "page": 101,
      "ordinal": 159,
      "text": "这部分⼯作不是多线程的）。未来对",
      "top": 882.0,
      "left": 539.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0160",
      "page": 101,
      "ordinal": 160,
      "text": "多",
      "top": 905.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0162",
      "page": 101,
      "ordinal": 162,
      "text": "线程模式的改进，将移除⼤量的全局锁，",
      "top": 905.0,
      "left": 130.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0164",
      "page": 101,
      "ordinal": 164,
      "text": "提⾼",
      "top": 905.0,
      "left": 397.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0165",
      "page": 101,
      "ordinal": 165,
      "text": " Memcached ",
      "top": 905.0,
      "left": 426.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0166",
      "page": 101,
      "ordinal": 166,
      "text": "在负载极⾼的场景下的性能。",
      "top": 905.0,
      "left": 517.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h03",
        "heading_id": "p101-h03",
        "block_id": "q-p101-h03-b001"
      }
    },
    {
      "id": "p101-t0168",
      "page": 101,
      "ordinal": 168,
      "text": "Memcached ",
      "top": 940.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04"
      }
    },
    {
      "id": "p101-t0169",
      "page": 101,
      "ordinal": 169,
      "text": "是什么，有什么作⽤",
      "top": 940.0,
      "left": 273.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04"
      }
    },
    {
      "id": "p101-t0172",
      "page": 101,
      "ordinal": 172,
      "text": " Memcached ",
      "top": 990.0,
      "left": 112.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0173",
      "page": 101,
      "ordinal": 173,
      "text": "是⼀个开源的，⾼性能的内存绶存软件，从名称上看",
      "top": 990.0,
      "left": 203.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0174",
      "page": 101,
      "ordinal": 174,
      "text": " Mem ",
      "top": 990.0,
      "left": 539.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0175",
      "page": 101,
      "ordinal": 175,
      "text": "就是",
      "top": 990.0,
      "left": 582.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0177",
      "page": 101,
      "ordinal": 177,
      "text": "内存的意思，⽽",
      "top": 990.0,
      "left": 615.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0178",
      "page": 101,
      "ordinal": 178,
      "text": " Cache ",
      "top": 990.0,
      "left": 717.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0179",
      "page": 101,
      "ordinal": 179,
      "text": "就",
      "top": 990.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0180",
      "page": 101,
      "ordinal": 180,
      "text": "是缓存的",
      "top": 1013.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0182",
      "page": 101,
      "ordinal": 182,
      "text": "意思。",
      "top": 1013.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0183",
      "page": 101,
      "ordinal": 183,
      "text": "Memcached ",
      "top": 1013.0,
      "left": 218.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0184",
      "page": 101,
      "ordinal": 184,
      "text": "的作⽤：通过在事先规",
      "top": 1013.0,
      "left": 305.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0186",
      "page": 101,
      "ordinal": 186,
      "text": "划好的内存空间中临时绶存数据库中的各类数据，",
      "top": 1013.0,
      "left": 455.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0187",
      "page": 101,
      "ordinal": 187,
      "text": "以达到减少业务对数",
      "top": 1037.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0189",
      "page": 101,
      "ordinal": 189,
      "text": "据库的",
      "top": 1037.0,
      "left": 247.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0191",
      "page": 101,
      "ordinal": 191,
      "text": "直接⾼并发访问，从⽽达到提升数据库的访问性能，加速⽹站集群动态应⽤",
      "top": 1037.0,
      "left": 295.0,
      "width": 483.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0192",
      "page": 101,
      "ordinal": 192,
      "text": "服",
      "top": 1061.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0194",
      "page": 101,
      "ordinal": 194,
      "text": "务的能⼒",
      "top": 1061.0,
      "left": 130.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h04",
        "heading_id": "p101-h04",
        "block_id": "q-p101-h04-b001"
      }
    },
    {
      "id": "p101-t0196",
      "page": 101,
      "ordinal": 196,
      "text": "Memcached ",
      "top": 1095.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05"
      }
    },
    {
      "id": "p101-t0197",
      "page": 101,
      "ordinal": 197,
      "text": "与",
      "top": 1095.0,
      "left": 273.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05"
      }
    },
    {
      "id": "p101-t0198",
      "page": 101,
      "ordinal": 198,
      "text": " Redis ",
      "top": 1095.0,
      "left": 298.0,
      "width": 82.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05"
      }
    },
    {
      "id": "p101-t0199",
      "page": 101,
      "ordinal": 199,
      "text": "的区别？",
      "top": 1095.0,
      "left": 380.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05"
      }
    },
    {
      "id": "p101-t0202",
      "page": 101,
      "ordinal": 202,
      "text": "1. Redis ",
      "top": 1146.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0203",
      "page": 101,
      "ordinal": 203,
      "text": "不仅仅⽀持简单的",
      "top": 1146.0,
      "left": 186.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0204",
      "page": 101,
      "ordinal": 204,
      "text": " K/V",
      "top": 1146.0,
      "left": 303.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0205",
      "page": 101,
      "ordinal": 205,
      "text": "类型的数据，同时还提供",
      "top": 1146.0,
      "left": 330.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0206",
      "page": 101,
      "ordinal": 206,
      "text": " list",
      "top": 1146.0,
      "left": 491.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0207",
      "page": 101,
      "ordinal": 207,
      "text": "，",
      "top": 1146.0,
      "left": 514.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0208",
      "page": 101,
      "ordinal": 208,
      "text": "set",
      "top": 1146.0,
      "left": 529.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0209",
      "page": 101,
      "ordinal": 209,
      "text": "，",
      "top": 1146.0,
      "left": 549.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0210",
      "page": 101,
      "ordinal": 210,
      "text": "zset",
      "top": 1146.0,
      "left": 564.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0211",
      "page": 101,
      "ordinal": 211,
      "text": "，",
      "top": 1146.0,
      "left": 591.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0212",
      "page": 101,
      "ordinal": 212,
      "text": " hash ",
      "top": 1146.0,
      "left": 606.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0213",
      "page": 101,
      "ordinal": 213,
      "text": "等数据结构的存储。",
      "top": 1146.0,
      "left": 646.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0214",
      "page": 101,
      "ordinal": 214,
      "text": "⽽",
      "top": 1169.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0215",
      "page": 101,
      "ordinal": 215,
      "text": " memcache ",
      "top": 1169.0,
      "left": 160.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0216",
      "page": 101,
      "ordinal": 216,
      "text": "只⽀持简单数据类型，需要客户",
      "top": 1169.0,
      "left": 242.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p101-t0218",
      "page": 101,
      "ordinal": 218,
      "text": "端⾃⼰处理复杂对象。",
      "top": 1169.0,
      "left": 451.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b001"
      }
    },
    {
      "id": "p102-t0001",
      "page": 102,
      "ordinal": 1,
      "text": "2. Redis ",
      "top": 44.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0002",
      "page": 102,
      "ordinal": 2,
      "text": "⽀持数据的持久化，可以将内存中的数据保持在磁盘中，重启的时候",
      "top": 44.0,
      "left": 186.0,
      "width": 439.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0004",
      "page": 102,
      "ordinal": 4,
      "text": "可以再次加载进⾏使⽤",
      "top": 44.0,
      "left": 629.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0005",
      "page": 102,
      "ordinal": 5,
      "text": "（",
      "top": 67.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0006",
      "page": 102,
      "ordinal": 6,
      "text": "PS",
      "top": 67.0,
      "left": 160.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0007",
      "page": 102,
      "ordinal": 7,
      "text": "：持久化在",
      "top": 67.0,
      "left": 177.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0008",
      "page": 102,
      "ordinal": 8,
      "text": " rdb",
      "top": 67.0,
      "left": 250.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0009",
      "page": 102,
      "ordinal": 9,
      "text": "、",
      "top": 67.0,
      "left": 278.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0010",
      "page": 102,
      "ordinal": 10,
      "text": "aof",
      "top": 67.0,
      "left": 292.0,
      "width": 22.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0011",
      "page": 102,
      "ordinal": 11,
      "text": "）。",
      "top": 67.0,
      "left": 314.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b002"
      }
    },
    {
      "id": "p102-t0013",
      "page": 102,
      "ordinal": 13,
      "text": "3. ",
      "top": 98.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0014",
      "page": 102,
      "ordinal": 14,
      "text": "由于",
      "top": 98.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0015",
      "page": 102,
      "ordinal": 15,
      "text": " Memcache ",
      "top": 98.0,
      "left": 175.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0016",
      "page": 102,
      "ordinal": 16,
      "text": "没有持久化机制，因此宕机所有缓存数据失效。",
      "top": 98.0,
      "left": 257.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0017",
      "page": 102,
      "ordinal": 17,
      "text": "Redis ",
      "top": 98.0,
      "left": 564.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0018",
      "page": 102,
      "ordinal": 18,
      "text": "配",
      "top": 98.0,
      "left": 604.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0020",
      "page": 102,
      "ordinal": 20,
      "text": "置为持久化，宕机重启",
      "top": 98.0,
      "left": 623.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0021",
      "page": 102,
      "ordinal": 21,
      "text": "后，将⾃动加载宕机时刻的数据到缓存系统中。具",
      "top": 121.0,
      "left": 146.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0023",
      "page": 102,
      "ordinal": 23,
      "text": "有更好的灾备机制。",
      "top": 121.0,
      "left": 471.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b003"
      }
    },
    {
      "id": "p102-t0025",
      "page": 102,
      "ordinal": 25,
      "text": "4. Memcache ",
      "top": 152.0,
      "left": 129.0,
      "width": 94.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0026",
      "page": 102,
      "ordinal": 26,
      "text": "可以使⽤",
      "top": 152.0,
      "left": 224.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0027",
      "page": 102,
      "ordinal": 27,
      "text": " Magent ",
      "top": 152.0,
      "left": 282.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0028",
      "page": 102,
      "ordinal": 28,
      "text": "在客户端进⾏⼀致性",
      "top": 152.0,
      "left": 341.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0029",
      "page": 102,
      "ordinal": 29,
      "text": " hash ",
      "top": 152.0,
      "left": 473.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0030",
      "page": 102,
      "ordinal": 30,
      "text": "做分布式。",
      "top": 152.0,
      "left": 514.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0031",
      "page": 102,
      "ordinal": 31,
      "text": " Redis ",
      "top": 152.0,
      "left": 587.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0032",
      "page": 102,
      "ordinal": 32,
      "text": "⽀持在服务器端做分布",
      "top": 152.0,
      "left": 631.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0033",
      "page": 102,
      "ordinal": 33,
      "text": "式（",
      "top": 175.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0034",
      "page": 102,
      "ordinal": 34,
      "text": "PS:Twemproxy/Codis/Redis-cluster ",
      "top": 175.0,
      "left": 175.0,
      "width": 241.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0035",
      "page": 102,
      "ordinal": 35,
      "text": "多",
      "top": 175.0,
      "left": 415.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0037",
      "page": 102,
      "ordinal": 37,
      "text": "种分布式实现⽅式）。",
      "top": 175.0,
      "left": 434.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b004"
      }
    },
    {
      "id": "p102-t0039",
      "page": 102,
      "ordinal": 39,
      "text": "5. Memcached ",
      "top": 206.0,
      "left": 129.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0040",
      "page": 102,
      "ordinal": 40,
      "text": "的简单限制就是键（",
      "top": 206.0,
      "left": 233.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0041",
      "page": 102,
      "ordinal": 41,
      "text": "key",
      "top": 206.0,
      "left": 364.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0042",
      "page": 102,
      "ordinal": 42,
      "text": "）和",
      "top": 206.0,
      "left": 387.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0043",
      "page": 102,
      "ordinal": 43,
      "text": " Value ",
      "top": 206.0,
      "left": 417.0,
      "width": 45.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0044",
      "page": 102,
      "ordinal": 44,
      "text": "的限制。最⼤键⻓为",
      "top": 206.0,
      "left": 462.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0045",
      "page": 102,
      "ordinal": 45,
      "text": " 250 ",
      "top": 206.0,
      "left": 594.0,
      "width": 33.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0046",
      "page": 102,
      "ordinal": 46,
      "text": "个字符。可以接受的储",
      "top": 206.0,
      "left": 626.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0047",
      "page": 102,
      "ordinal": 47,
      "text": "存数据不能超过",
      "top": 229.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0048",
      "page": 102,
      "ordinal": 48,
      "text": " 1MB",
      "top": 229.0,
      "left": 248.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0049",
      "page": 102,
      "ordinal": 49,
      "text": "（可修改配置⽂件变⼤），因",
      "top": 229.0,
      "left": 283.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0051",
      "page": 102,
      "ordinal": 51,
      "text": "为这是典型",
      "top": 229.0,
      "left": 477.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0052",
      "page": 102,
      "ordinal": 52,
      "text": " slab ",
      "top": 229.0,
      "left": 550.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0053",
      "page": 102,
      "ordinal": 53,
      "text": "的最⼤值，不适合虚",
      "top": 229.0,
      "left": 585.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0055",
      "page": 102,
      "ordinal": 55,
      "text": "拟机使",
      "top": 229.0,
      "left": 721.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0056",
      "page": 102,
      "ordinal": 56,
      "text": "⽤。⽽",
      "top": 253.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0057",
      "page": 102,
      "ordinal": 57,
      "text": " Redis ",
      "top": 253.0,
      "left": 189.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0058",
      "page": 102,
      "ordinal": 58,
      "text": "的",
      "top": 253.0,
      "left": 234.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0059",
      "page": 102,
      "ordinal": 59,
      "text": " Key ",
      "top": 253.0,
      "left": 248.0,
      "width": 32.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0060",
      "page": 102,
      "ordinal": 60,
      "text": "⻓度⽀",
      "top": 253.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0062",
      "page": 102,
      "ordinal": 62,
      "text": "持到",
      "top": 253.0,
      "left": 328.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0063",
      "page": 102,
      "ordinal": 63,
      "text": " 512K",
      "top": 253.0,
      "left": 358.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0064",
      "page": 102,
      "ordinal": 64,
      "text": "。",
      "top": 253.0,
      "left": 395.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b005"
      }
    },
    {
      "id": "p102-t0066",
      "page": 102,
      "ordinal": 66,
      "text": "6. Redis ",
      "top": 283.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0067",
      "page": 102,
      "ordinal": 67,
      "text": "使⽤的是单线程模型，保证了数据按顺序提交。",
      "top": 283.0,
      "left": 186.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0068",
      "page": 102,
      "ordinal": 68,
      "text": "Memcache ",
      "top": 283.0,
      "left": 493.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0069",
      "page": 102,
      "ordinal": 69,
      "text": "需要使",
      "top": 283.0,
      "left": 571.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0071",
      "page": 102,
      "ordinal": 71,
      "text": "⽤",
      "top": 283.0,
      "left": 619.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0072",
      "page": 102,
      "ordinal": 72,
      "text": " cas ",
      "top": 283.0,
      "left": 634.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0073",
      "page": 102,
      "ordinal": 73,
      "text": "保证数据⼀致性。",
      "top": 283.0,
      "left": 663.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0074",
      "page": 102,
      "ordinal": 74,
      "text": "CAS",
      "top": 307.0,
      "left": 146.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0075",
      "page": 102,
      "ordinal": 75,
      "text": "（",
      "top": 307.0,
      "left": 172.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0076",
      "page": 102,
      "ordinal": 76,
      "text": "Check and Set",
      "top": 307.0,
      "left": 187.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0077",
      "page": 102,
      "ordinal": 77,
      "text": "）是⼀个确保并发⼀致性的",
      "top": 307.0,
      "left": 283.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0079",
      "page": 102,
      "ordinal": 79,
      "text": "机制，属于",
      "top": 307.0,
      "left": 462.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0080",
      "page": 102,
      "ordinal": 80,
      "text": "“",
      "top": 307.0,
      "left": 535.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0081",
      "page": 102,
      "ordinal": 81,
      "text": "乐观锁",
      "top": 307.0,
      "left": 540.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0082",
      "page": 102,
      "ordinal": 82,
      "text": "”",
      "top": 307.0,
      "left": 584.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0083",
      "page": 102,
      "ordinal": 83,
      "text": "范畴；原理很简",
      "top": 307.0,
      "left": 589.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0085",
      "page": 102,
      "ordinal": 85,
      "text": "单：拿版本",
      "top": 307.0,
      "left": 695.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0086",
      "page": 102,
      "ordinal": 86,
      "text": "号，操作，对⽐版本",
      "top": 330.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0088",
      "page": 102,
      "ordinal": 88,
      "text": "号，如果⼀致就操作，不⼀致就放弃任何操作。",
      "top": 330.0,
      "left": 281.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b006"
      }
    },
    {
      "id": "p102-t0090",
      "page": 102,
      "ordinal": 90,
      "text": "7. CPU ",
      "top": 361.0,
      "left": 129.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0091",
      "page": 102,
      "ordinal": 91,
      "text": "利⽤：由于",
      "top": 361.0,
      "left": 178.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0092",
      "page": 102,
      "ordinal": 92,
      "text": " Redis ",
      "top": 361.0,
      "left": 251.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0093",
      "page": 102,
      "ordinal": 93,
      "text": "只使⽤单核，⽽",
      "top": 361.0,
      "left": 296.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0094",
      "page": 102,
      "ordinal": 94,
      "text": " Memcached ",
      "top": 361.0,
      "left": 398.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0095",
      "page": 102,
      "ordinal": 95,
      "text": "可以使⽤多核，所以",
      "top": 361.0,
      "left": 489.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0097",
      "page": 102,
      "ordinal": 97,
      "text": "平均每⼀个核上",
      "top": 361.0,
      "left": 624.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0098",
      "page": 102,
      "ordinal": 98,
      "text": " Redis ",
      "top": 361.0,
      "left": 727.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0099",
      "page": 102,
      "ordinal": 99,
      "text": "在存储⼩数据时⽐",
      "top": 384.0,
      "left": 146.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0100",
      "page": 102,
      "ordinal": 100,
      "text": " Memcached ",
      "top": 384.0,
      "left": 263.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0101",
      "page": 102,
      "ordinal": 101,
      "text": "性能更⾼。⽽在",
      "top": 384.0,
      "left": 353.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0102",
      "page": 102,
      "ordinal": 102,
      "text": " 100k ",
      "top": 384.0,
      "left": 456.0,
      "width": 40.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0103",
      "page": 102,
      "ordinal": 103,
      "text": "以上的数据中，",
      "top": 384.0,
      "left": 496.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0104",
      "page": 102,
      "ordinal": 104,
      "text": "Memcached ",
      "top": 384.0,
      "left": 598.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0105",
      "page": 102,
      "ordinal": 105,
      "text": "性能要",
      "top": 384.0,
      "left": 685.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0107",
      "page": 102,
      "ordinal": 107,
      "text": "⾼于",
      "top": 384.0,
      "left": 733.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0109",
      "page": 102,
      "ordinal": 109,
      "text": "Redis ",
      "top": 408.0,
      "left": 146.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0110",
      "page": 102,
      "ordinal": 110,
      "text": "。",
      "top": 408.0,
      "left": 186.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b007"
      }
    },
    {
      "id": "p102-t0112",
      "page": 102,
      "ordinal": 112,
      "text": "8. Memcached ",
      "top": 438.0,
      "left": 129.0,
      "width": 103.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0113",
      "page": 102,
      "ordinal": 113,
      "text": "内存管理：使⽤",
      "top": 438.0,
      "left": 233.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0114",
      "page": 102,
      "ordinal": 114,
      "text": " Slab Allocation",
      "top": 438.0,
      "left": 335.0,
      "width": 104.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0115",
      "page": 102,
      "ordinal": 115,
      "text": "。原理相当简单，预先分配",
      "top": 438.0,
      "left": 439.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0117",
      "page": 102,
      "ordinal": 117,
      "text": "⼀系列⼤⼩固定的组，然",
      "top": 438.0,
      "left": 618.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0118",
      "page": 102,
      "ordinal": 118,
      "text": "后根据数据⼤⼩选择最合适的块存储。避免了内",
      "top": 462.0,
      "left": 146.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0120",
      "page": 102,
      "ordinal": 120,
      "text": "存碎⽚。（缺点：不能变⻓，浪费了⼀定",
      "top": 462.0,
      "left": 456.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0122",
      "page": 102,
      "ordinal": 122,
      "text": "空间）",
      "top": 462.0,
      "left": 723.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0123",
      "page": 102,
      "ordinal": 123,
      "text": "Memcached ",
      "top": 486.0,
      "left": 146.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0124",
      "page": 102,
      "ordinal": 124,
      "text": "默认情况下下",
      "top": 486.0,
      "left": 233.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0126",
      "page": 102,
      "ordinal": 126,
      "text": "⼀个",
      "top": 486.0,
      "left": 324.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0127",
      "page": 102,
      "ordinal": 127,
      "text": " slab ",
      "top": 486.0,
      "left": 353.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0128",
      "page": 102,
      "ordinal": 128,
      "text": "的最⼤值为前⼀个的",
      "top": 486.0,
      "left": 389.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0129",
      "page": 102,
      "ordinal": 129,
      "text": " 1.25 ",
      "top": 486.0,
      "left": 520.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0130",
      "page": 102,
      "ordinal": 130,
      "text": "倍。",
      "top": 486.0,
      "left": 557.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b008"
      }
    },
    {
      "id": "p102-t0132",
      "page": 102,
      "ordinal": 132,
      "text": "9. Redis ",
      "top": 516.0,
      "left": 129.0,
      "width": 57.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0133",
      "page": 102,
      "ordinal": 133,
      "text": "内存管理：",
      "top": 516.0,
      "left": 186.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0134",
      "page": 102,
      "ordinal": 134,
      "text": " Redis ",
      "top": 516.0,
      "left": 259.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0135",
      "page": 102,
      "ordinal": 135,
      "text": "通过定义⼀个数组来记录所有的内存分配情况，",
      "top": 516.0,
      "left": 304.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0136",
      "page": 102,
      "ordinal": 136,
      "text": " Redis ",
      "top": 516.0,
      "left": 611.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0137",
      "page": 102,
      "ordinal": 137,
      "text": "采⽤的是包装的",
      "top": 516.0,
      "left": 655.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0139",
      "page": 102,
      "ordinal": 139,
      "text": "malloc/free",
      "top": 540.0,
      "left": 146.0,
      "width": 78.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0140",
      "page": 102,
      "ordinal": 140,
      "text": "，相较于",
      "top": 540.0,
      "left": 223.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0141",
      "page": 102,
      "ordinal": 141,
      "text": " Memcached ",
      "top": 540.0,
      "left": 282.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0142",
      "page": 102,
      "ordinal": 142,
      "text": "的内存",
      "top": 540.0,
      "left": 372.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0144",
      "page": 102,
      "ordinal": 144,
      "text": "管理⽅",
      "top": 540.0,
      "left": 420.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0146",
      "page": 102,
      "ordinal": 146,
      "text": "法来说，要简单很多。由于",
      "top": 540.0,
      "left": 468.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0147",
      "page": 102,
      "ordinal": 147,
      "text": " malloc ",
      "top": 540.0,
      "left": 643.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0148",
      "page": 102,
      "ordinal": 148,
      "text": "⾸先",
      "top": 540.0,
      "left": 696.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0150",
      "page": 102,
      "ordinal": 150,
      "text": "以链表",
      "top": 540.0,
      "left": 729.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0151",
      "page": 102,
      "ordinal": 151,
      "text": "的⽅式搜索已管理的内存",
      "top": 562.0,
      "left": 146.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0153",
      "page": 102,
      "ordinal": 153,
      "text": "中可⽤的空间分配，导致内存碎⽚⽐较多。",
      "top": 562.0,
      "left": 310.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p101-h05",
        "heading_id": "p101-h05",
        "block_id": "q-p101-h05-b009"
      }
    },
    {
      "id": "p102-t0155",
      "page": 102,
      "ordinal": 155,
      "text": "如果缓存数据在导出导⼊之间过期了，你⼜怎么处理这些数",
      "top": 597.0,
      "left": 112.0,
      "width": 665.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01"
      }
    },
    {
      "id": "p102-t0156",
      "page": 102,
      "ordinal": 156,
      "text": "据呢",
      "top": 628.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01"
      }
    },
    {
      "id": "p102-t0159",
      "page": 102,
      "ordinal": 159,
      "text": "如何实现集群中的",
      "top": 839.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02"
      }
    },
    {
      "id": "p102-t0160",
      "page": 102,
      "ordinal": 160,
      "text": " session ",
      "top": 839.0,
      "left": 317.0,
      "width": 107.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02"
      }
    },
    {
      "id": "p102-t0161",
      "page": 102,
      "ordinal": 161,
      "text": "共享存储",
      "top": 839.0,
      "left": 424.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02"
      }
    },
    {
      "id": "p102-t0164",
      "page": 102,
      "ordinal": 164,
      "text": " Session ",
      "top": 890.0,
      "left": 112.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0165",
      "page": 102,
      "ordinal": 165,
      "text": "是运⾏在⼀台服务器上的，所有的访问都会到达我们的唯⼀服务器",
      "top": 890.0,
      "left": 171.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0167",
      "page": 102,
      "ordinal": 167,
      "text": "上，这样我们可以根据客户",
      "top": 890.0,
      "left": 599.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0168",
      "page": 102,
      "ordinal": 168,
      "text": "端传来的",
      "top": 913.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0169",
      "page": 102,
      "ordinal": 169,
      "text": " sessionID",
      "top": 913.0,
      "left": 170.0,
      "width": 69.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0170",
      "page": 102,
      "ordinal": 170,
      "text": "，来获取",
      "top": 913.0,
      "left": 239.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0171",
      "page": 102,
      "ordinal": 171,
      "text": " session",
      "top": 913.0,
      "left": 298.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0172",
      "page": 102,
      "ordinal": 172,
      "text": "，或在对应",
      "top": 913.0,
      "left": 352.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0173",
      "page": 102,
      "ordinal": 173,
      "text": " Session ",
      "top": 913.0,
      "left": 426.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0174",
      "page": 102,
      "ordinal": 174,
      "text": "不存在的情况下（",
      "top": 913.0,
      "left": 485.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0175",
      "page": 102,
      "ordinal": 175,
      "text": "session ",
      "top": 913.0,
      "left": 602.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0176",
      "page": 102,
      "ordinal": 176,
      "text": "⽣命周期到了",
      "top": 913.0,
      "left": 656.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0177",
      "page": 102,
      "ordinal": 177,
      "text": "/",
      "top": 913.0,
      "left": 744.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0178",
      "page": 102,
      "ordinal": 178,
      "text": "⽤户",
      "top": 913.0,
      "left": 749.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0179",
      "page": 102,
      "ordinal": 179,
      "text": "第⼀次登录），创",
      "top": 937.0,
      "left": 112.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0181",
      "page": 102,
      "ordinal": 181,
      "text": "建⼀",
      "top": 937.0,
      "left": 233.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0183",
      "page": 102,
      "ordinal": 183,
      "text": "个新的",
      "top": 937.0,
      "left": 266.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0184",
      "page": 102,
      "ordinal": 184,
      "text": " Session",
      "top": 937.0,
      "left": 309.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0185",
      "page": 102,
      "ordinal": 185,
      "text": "；但是，如果我们在集群环境下，假设我们有两台服务器",
      "top": 937.0,
      "left": 365.0,
      "width": 366.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0186",
      "page": 102,
      "ordinal": 186,
      "text": " A",
      "top": 937.0,
      "left": 731.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0187",
      "page": 102,
      "ordinal": 187,
      "text": "，",
      "top": 937.0,
      "left": 744.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0189",
      "page": 102,
      "ordinal": 189,
      "text": "B",
      "top": 960.0,
      "left": 112.0,
      "width": 9.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0190",
      "page": 102,
      "ordinal": 190,
      "text": "，⽤户的请求会由",
      "top": 960.0,
      "left": 121.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0191",
      "page": 102,
      "ordinal": 191,
      "text": " Nginx ",
      "top": 960.0,
      "left": 238.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0192",
      "page": 102,
      "ordinal": 192,
      "text": "服务器进",
      "top": 960.0,
      "left": 285.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0194",
      "page": 102,
      "ordinal": 194,
      "text": "⾏转发（别的⽅案也是同理），⽤户登录",
      "top": 960.0,
      "left": 347.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0196",
      "page": 102,
      "ordinal": 196,
      "text": "时，",
      "top": 960.0,
      "left": 615.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0197",
      "page": 102,
      "ordinal": 197,
      "text": "Nginx ",
      "top": 960.0,
      "left": 644.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0198",
      "page": 102,
      "ordinal": 198,
      "text": "将请求转发⾄",
      "top": 960.0,
      "left": 687.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0199",
      "page": 102,
      "ordinal": 199,
      "text": "服务器",
      "top": 983.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0200",
      "page": 102,
      "ordinal": 200,
      "text": " A ",
      "top": 983.0,
      "left": 156.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0201",
      "page": 102,
      "ordinal": 201,
      "text": "上，",
      "top": 983.0,
      "left": 172.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0202",
      "page": 102,
      "ordinal": 202,
      "text": "A ",
      "top": 983.0,
      "left": 202.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0203",
      "page": 102,
      "ordinal": 203,
      "text": "创建了新的",
      "top": 983.0,
      "left": 215.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0204",
      "page": 102,
      "ordinal": 204,
      "text": " session",
      "top": 983.0,
      "left": 288.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0205",
      "page": 102,
      "ordinal": 205,
      "text": "，并将",
      "top": 983.0,
      "left": 342.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0206",
      "page": 102,
      "ordinal": 206,
      "text": " SessionID ",
      "top": 983.0,
      "left": 386.0,
      "width": 74.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0207",
      "page": 102,
      "ordinal": 207,
      "text": "返回给客户端，⽤户在浏览其他⻚⾯时，客户端验",
      "top": 983.0,
      "left": 460.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0208",
      "page": 102,
      "ordinal": 208,
      "text": "证登录状态，",
      "top": 1007.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0209",
      "page": 102,
      "ordinal": 209,
      "text": " Nginx ",
      "top": 1007.0,
      "left": 200.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0210",
      "page": 102,
      "ordinal": 210,
      "text": "将请求转发⾄服务器",
      "top": 1007.0,
      "left": 246.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0211",
      "page": 102,
      "ordinal": 211,
      "text": " B",
      "top": 1007.0,
      "left": 378.0,
      "width": 13.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0212",
      "page": 102,
      "ordinal": 212,
      "text": "，由于",
      "top": 1007.0,
      "left": 391.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0213",
      "page": 102,
      "ordinal": 213,
      "text": " B ",
      "top": 1007.0,
      "left": 435.0,
      "width": 17.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0214",
      "page": 102,
      "ordinal": 214,
      "text": "上并没有对应客户端发来",
      "top": 1007.0,
      "left": 452.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0215",
      "page": 102,
      "ordinal": 215,
      "text": " sessionId ",
      "top": 1007.0,
      "left": 613.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0216",
      "page": 102,
      "ordinal": 216,
      "text": "的",
      "top": 1007.0,
      "left": 684.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0217",
      "page": 102,
      "ordinal": 217,
      "text": " session",
      "top": 1007.0,
      "left": 699.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0218",
      "page": 102,
      "ordinal": 218,
      "text": "，",
      "top": 1007.0,
      "left": 754.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0219",
      "page": 102,
      "ordinal": 219,
      "text": "所以会重新创建⼀个新的",
      "top": 1030.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0220",
      "page": 102,
      "ordinal": 220,
      "text": " session",
      "top": 1030.0,
      "left": 273.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0221",
      "page": 102,
      "ordinal": 221,
      "text": "，并且再将这个新的",
      "top": 1030.0,
      "left": 327.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0222",
      "page": 102,
      "ordinal": 222,
      "text": " sessionID ",
      "top": 1030.0,
      "left": 459.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0223",
      "page": 102,
      "ordinal": 223,
      "text": "返",
      "top": 1030.0,
      "left": 532.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0225",
      "page": 102,
      "ordinal": 225,
      "text": "回给客户端，这样，我们可以想象",
      "top": 1030.0,
      "left": 550.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0226",
      "page": 102,
      "ordinal": 226,
      "text": "⼀下，⽤户每⼀次操作都有",
      "top": 1054.0,
      "left": 112.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0227",
      "page": 102,
      "ordinal": 227,
      "text": " 1/2 ",
      "top": 1054.0,
      "left": 287.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0228",
      "page": 102,
      "ordinal": 228,
      "text": "的概",
      "top": 1054.0,
      "left": 317.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0230",
      "page": 102,
      "ordinal": 230,
      "text": "率进⾏",
      "top": 1054.0,
      "left": 350.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0232",
      "page": 102,
      "ordinal": 232,
      "text": "再次的登录，这样不仅对⽤户体验特别差，还会让服务器上",
      "top": 1054.0,
      "left": 398.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0233",
      "page": 102,
      "ordinal": 233,
      "text": "的",
      "top": 1077.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0234",
      "page": 102,
      "ordinal": 234,
      "text": " session ",
      "top": 1077.0,
      "left": 126.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0235",
      "page": 102,
      "ordinal": 235,
      "text": "激增，",
      "top": 1077.0,
      "left": 185.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0237",
      "page": 102,
      "ordinal": 237,
      "text": "加⼤服务器的运⾏压⼒。",
      "top": 1077.0,
      "left": 232.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0239",
      "page": 102,
      "ordinal": 239,
      "text": "为了解决集群环境下的",
      "top": 1077.0,
      "left": 397.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0240",
      "page": 102,
      "ordinal": 240,
      "text": " seesion ",
      "top": 1077.0,
      "left": 543.0,
      "width": 59.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0241",
      "page": 102,
      "ordinal": 241,
      "text": "共享问题，共有",
      "top": 1077.0,
      "left": 603.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0242",
      "page": 102,
      "ordinal": 242,
      "text": " 4 ",
      "top": 1077.0,
      "left": 705.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0243",
      "page": 102,
      "ordinal": 243,
      "text": "种解决⽅",
      "top": 1077.0,
      "left": 721.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0244",
      "page": 102,
      "ordinal": 244,
      "text": "案：",
      "top": 1100.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b001"
      }
    },
    {
      "id": "p102-t0246",
      "page": 102,
      "ordinal": 246,
      "text": "1. ",
      "top": 1135.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0247",
      "page": 102,
      "ordinal": 247,
      "text": "粘性",
      "top": 1135.0,
      "left": 146.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0248",
      "page": 102,
      "ordinal": 248,
      "text": " session   ",
      "top": 1135.0,
      "left": 175.0,
      "width": 66.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0249",
      "page": 102,
      "ordinal": 249,
      "text": "粘性",
      "top": 1135.0,
      "left": 241.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0250",
      "page": 102,
      "ordinal": 250,
      "text": " session ",
      "top": 1135.0,
      "left": 270.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0251",
      "page": 102,
      "ordinal": 251,
      "text": "是指",
      "top": 1135.0,
      "left": 328.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0252",
      "page": 102,
      "ordinal": 252,
      "text": " Ngnix ",
      "top": 1135.0,
      "left": 357.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0253",
      "page": 102,
      "ordinal": 253,
      "text": "每次都将同⼀⽤户的所有请求转发⾄同⼀台服务器",
      "top": 1135.0,
      "left": 404.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0255",
      "page": 102,
      "ordinal": 255,
      "text": "上，即",
      "top": 1135.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0256",
      "page": 102,
      "ordinal": 256,
      "text": "将⽤户与服务器绑定",
      "top": 1158.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b002"
      }
    },
    {
      "id": "p102-t0258",
      "page": 102,
      "ordinal": 258,
      "text": "因此，批量导出导",
      "top": 692.0,
      "left": 126.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0259",
      "page": 102,
      "ordinal": 259,
      "text": "⼊",
      "top": 690.0,
      "left": 232.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0260",
      "page": 102,
      "ordinal": 260,
      "text": "数据并不像你想象中的那么有",
      "top": 692.0,
      "left": 245.0,
      "width": 171.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0261",
      "page": 102,
      "ordinal": 261,
      "text": "⽤",
      "top": 690.0,
      "left": 416.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0262",
      "page": 102,
      "ordinal": 262,
      "text": "。不过在",
      "top": 692.0,
      "left": 429.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0263",
      "page": 102,
      "ordinal": 263,
      "text": "⼀",
      "top": 690.0,
      "left": 482.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0264",
      "page": 102,
      "ordinal": 264,
      "text": "个场景倒是很",
      "top": 692.0,
      "left": 495.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0266",
      "page": 102,
      "ordinal": 266,
      "text": "有",
      "top": 692.0,
      "left": 582.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0267",
      "page": 102,
      "ordinal": 267,
      "text": "⽤",
      "top": 690.0,
      "left": 595.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0268",
      "page": 102,
      "ordinal": 268,
      "text": "。如果你有",
      "top": 692.0,
      "left": 608.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0269",
      "page": 102,
      "ordinal": 269,
      "text": "⼤",
      "top": 690.0,
      "left": 674.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0270",
      "page": 102,
      "ordinal": 270,
      "text": "量的从不变化",
      "top": 692.0,
      "left": 687.0,
      "width": 79.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0271",
      "page": 102,
      "ordinal": 271,
      "text": "的数",
      "top": 714.0,
      "left": 126.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0273",
      "page": 102,
      "ordinal": 273,
      "text": "据，并且希望缓存很快热（",
      "top": 714.0,
      "left": 161.0,
      "width": 158.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0274",
      "page": 102,
      "ordinal": 274,
      "text": "warm",
      "top": 714.0,
      "left": 319.0,
      "width": 32.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0275",
      "page": 102,
      "ordinal": 275,
      "text": "）起",
      "top": 714.0,
      "left": 350.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0277",
      "page": 102,
      "ordinal": 277,
      "text": "来，批量导",
      "top": 714.0,
      "left": 385.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0278",
      "page": 102,
      "ordinal": 278,
      "text": "⼊",
      "top": 711.0,
      "left": 450.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0279",
      "page": 102,
      "ordinal": 279,
      "text": "缓存数据是很有帮助的。虽然这个场景并不典型，但",
      "top": 714.0,
      "left": 464.0,
      "width": 303.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0280",
      "page": 102,
      "ordinal": 280,
      "text": "却经常发",
      "top": 734.0,
      "left": 126.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0282",
      "page": 102,
      "ordinal": 282,
      "text": "⽣",
      "top": 731.0,
      "left": 187.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0283",
      "page": 102,
      "ordinal": 283,
      "text": "，因此我们会考虑在将来实现批量导出导",
      "top": 734.0,
      "left": 200.0,
      "width": 237.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0284",
      "page": 102,
      "ordinal": 284,
      "text": "⼊",
      "top": 731.0,
      "left": 437.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0285",
      "page": 102,
      "ordinal": 285,
      "text": "的功能。",
      "top": 734.0,
      "left": 450.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0287",
      "page": 102,
      "ordinal": 287,
      "text": "如果",
      "top": 734.0,
      "left": 511.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0288",
      "page": 102,
      "ordinal": 288,
      "text": "⼀",
      "top": 731.0,
      "left": 537.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0289",
      "page": 102,
      "ordinal": 289,
      "text": "个",
      "top": 734.0,
      "left": 550.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0290",
      "page": 102,
      "ordinal": 290,
      "text": " Memcached ",
      "top": 735.0,
      "left": 563.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0291",
      "page": 102,
      "ordinal": 291,
      "text": "节点",
      "top": 734.0,
      "left": 651.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0292",
      "page": 102,
      "ordinal": 292,
      "text": " down ",
      "top": 735.0,
      "left": 677.0,
      "width": 48.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0293",
      "page": 102,
      "ordinal": 293,
      "text": "了让你",
      "top": 734.0,
      "left": 725.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0294",
      "page": 102,
      "ordinal": 294,
      "text": "很痛苦，那么你还会陷",
      "top": 755.0,
      "left": 126.0,
      "width": 132.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0295",
      "page": 102,
      "ordinal": 295,
      "text": "⼊",
      "top": 753.0,
      "left": 258.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0296",
      "page": 102,
      "ordinal": 296,
      "text": "其他很多麻",
      "top": 755.0,
      "left": 271.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0298",
      "page": 102,
      "ordinal": 298,
      "text": "烦。你的系统太脆弱了。你需要做",
      "top": 755.0,
      "left": 345.0,
      "width": 197.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0300",
      "page": 102,
      "ordinal": 300,
      "text": "⼀",
      "top": 753.0,
      "left": 550.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0301",
      "page": 102,
      "ordinal": 301,
      "text": "些优化",
      "top": 755.0,
      "left": 563.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0302",
      "page": 102,
      "ordinal": 302,
      "text": "⼯",
      "top": 753.0,
      "left": 603.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0303",
      "page": 102,
      "ordinal": 303,
      "text": "作。",
      "top": 755.0,
      "left": 616.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0304",
      "page": 102,
      "ordinal": 304,
      "text": "⽐",
      "top": 753.0,
      "left": 642.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0305",
      "page": 102,
      "ordinal": 305,
      "text": "如处理",
      "top": 755.0,
      "left": 656.0,
      "width": 39.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0306",
      "page": 102,
      "ordinal": 306,
      "text": "”",
      "top": 756.0,
      "left": 695.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0307",
      "page": 102,
      "ordinal": 307,
      "text": "惊群",
      "top": 755.0,
      "left": 703.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0308",
      "page": 102,
      "ordinal": 308,
      "text": "”",
      "top": 756.0,
      "left": 729.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0309",
      "page": 102,
      "ordinal": 309,
      "text": "问题",
      "top": 755.0,
      "left": 737.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0310",
      "page": 102,
      "ordinal": 310,
      "text": "（",
      "top": 777.0,
      "left": 126.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0311",
      "page": 102,
      "ordinal": 311,
      "text": "⽐",
      "top": 774.0,
      "left": 140.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0313",
      "page": 102,
      "ordinal": 313,
      "text": "如",
      "top": 777.0,
      "left": 161.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0314",
      "page": 102,
      "ordinal": 314,
      "text": " Memcached ",
      "top": 777.0,
      "left": 174.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0315",
      "page": 102,
      "ordinal": 315,
      "text": "节点都失效了，反复的查询让你的数据库不堪重负",
      "top": 777.0,
      "left": 261.0,
      "width": 290.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0316",
      "page": 102,
      "ordinal": 316,
      "text": "…",
      "top": 777.0,
      "left": 551.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0317",
      "page": 102,
      "ordinal": 317,
      "text": "这个",
      "top": 777.0,
      "left": 559.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0319",
      "page": 102,
      "ordinal": 319,
      "text": "问题",
      "top": 777.0,
      "left": 593.0,
      "width": 26.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0321",
      "page": 102,
      "ordinal": 321,
      "text": "在",
      "top": 777.0,
      "left": 627.0,
      "width": 13.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0322",
      "page": 102,
      "ordinal": 322,
      "text": " FAQ ",
      "top": 777.0,
      "left": 640.0,
      "width": 40.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0323",
      "page": 102,
      "ordinal": 323,
      "text": "的其他提到",
      "top": 777.0,
      "left": 680.0,
      "width": 66.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0324",
      "page": 102,
      "ordinal": 324,
      "text": "过），或者优化不好的查询。记住，",
      "top": 798.0,
      "left": 126.0,
      "width": 211.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0325",
      "page": 102,
      "ordinal": 325,
      "text": "Memcached ",
      "top": 799.0,
      "left": 337.0,
      "width": 79.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0326",
      "page": 102,
      "ordinal": 326,
      "text": "并不是你",
      "top": 798.0,
      "left": 416.0,
      "width": 53.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0328",
      "page": 102,
      "ordinal": 328,
      "text": "逃避优化查询的借",
      "top": 798.0,
      "left": 477.0,
      "width": 105.0,
      "height": 13.0,
      "font": "10",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p102-t0329",
      "page": 102,
      "ordinal": 329,
      "text": "⼝",
      "top": 795.0,
      "left": 582.0,
      "width": 13.0,
      "height": 17.0,
      "font": "11",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h01",
        "heading_id": "p102-h01",
        "block_id": "q-p102-h01-b001"
      }
    },
    {
      "id": "p103-t0001",
      "page": 103,
      "ordinal": 1,
      "text": "2. ",
      "top": 44.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0002",
      "page": 103,
      "ordinal": 2,
      "text": "服务器",
      "top": 44.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0003",
      "page": 103,
      "ordinal": 3,
      "text": " session ",
      "top": 44.0,
      "left": 189.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0004",
      "page": 103,
      "ordinal": 4,
      "text": "复制",
      "top": 44.0,
      "left": 248.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0006",
      "page": 103,
      "ordinal": 6,
      "text": "即每次",
      "top": 44.0,
      "left": 281.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0007",
      "page": 103,
      "ordinal": 7,
      "text": " session ",
      "top": 44.0,
      "left": 325.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0008",
      "page": 103,
      "ordinal": 8,
      "text": "发⽣变化时，创建或者修改，就⼴播给所有集群中的服务器，",
      "top": 44.0,
      "left": 383.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0010",
      "page": 103,
      "ordinal": 10,
      "text": "使所有的服务器上的",
      "top": 67.0,
      "left": 146.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0011",
      "page": 103,
      "ordinal": 11,
      "text": " session ",
      "top": 67.0,
      "left": 277.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0012",
      "page": 103,
      "ordinal": 12,
      "text": "相同。",
      "top": 67.0,
      "left": 335.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b003"
      }
    },
    {
      "id": "p103-t0014",
      "page": 103,
      "ordinal": 14,
      "text": "3. session ",
      "top": 98.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0015",
      "page": 103,
      "ordinal": 15,
      "text": "共享",
      "top": 98.0,
      "left": 200.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0017",
      "page": 103,
      "ordinal": 17,
      "text": "缓存",
      "top": 98.0,
      "left": 233.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0018",
      "page": 103,
      "ordinal": 18,
      "text": " session",
      "top": 98.0,
      "left": 262.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0019",
      "page": 103,
      "ordinal": 19,
      "text": "，使⽤",
      "top": 98.0,
      "left": 317.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0020",
      "page": 103,
      "ordinal": 20,
      "text": " Redis",
      "top": 98.0,
      "left": 361.0,
      "width": 41.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0021",
      "page": 103,
      "ordinal": 21,
      "text": "，",
      "top": 98.0,
      "left": 401.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0022",
      "page": 103,
      "ordinal": 22,
      "text": " Memcached",
      "top": 98.0,
      "left": 416.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0023",
      "page": 103,
      "ordinal": 23,
      "text": "。",
      "top": 98.0,
      "left": 503.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b004"
      }
    },
    {
      "id": "p103-t0025",
      "page": 103,
      "ordinal": 25,
      "text": "4. session ",
      "top": 128.0,
      "left": 129.0,
      "width": 71.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0026",
      "page": 103,
      "ordinal": 26,
      "text": "持久化",
      "top": 128.0,
      "left": 200.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0028",
      "page": 103,
      "ordinal": 28,
      "text": "将",
      "top": 128.0,
      "left": 248.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0029",
      "page": 103,
      "ordinal": 29,
      "text": " session ",
      "top": 128.0,
      "left": 262.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0030",
      "page": 103,
      "ordinal": 30,
      "text": "存储⾄数据库中，像操作数据⼀样才做",
      "top": 128.0,
      "left": 320.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0031",
      "page": 103,
      "ordinal": 31,
      "text": " session",
      "top": 128.0,
      "left": 569.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0032",
      "page": 103,
      "ordinal": 32,
      "text": "。",
      "top": 128.0,
      "left": 624.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p102-h02",
        "heading_id": "p102-h02",
        "block_id": "q-p102-h02-b005"
      }
    },
    {
      "id": "p103-t0034",
      "page": 103,
      "ordinal": 34,
      "text": "Memcached ",
      "top": 162.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0035",
      "page": 103,
      "ordinal": 35,
      "text": "和",
      "top": 162.0,
      "left": 273.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0036",
      "page": 103,
      "ordinal": 36,
      "text": " MySQL ",
      "top": 162.0,
      "left": 298.0,
      "width": 101.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0037",
      "page": 103,
      "ordinal": 37,
      "text": "的",
      "top": 162.0,
      "left": 399.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0038",
      "page": 103,
      "ordinal": 38,
      "text": " query cache ",
      "top": 162.0,
      "left": 425.0,
      "width": 168.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0039",
      "page": 103,
      "ordinal": 39,
      "text": "相⽐，有什么优",
      "top": 162.0,
      "left": 593.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0040",
      "page": 103,
      "ordinal": 40,
      "text": "缺点",
      "top": 194.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01"
      }
    },
    {
      "id": "p103-t0044",
      "page": 103,
      "ordinal": 44,
      "text": "把",
      "top": 245.0,
      "left": 116.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0045",
      "page": 103,
      "ordinal": 45,
      "text": " Memcached ",
      "top": 245.0,
      "left": 130.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0046",
      "page": 103,
      "ordinal": 46,
      "text": "引⼊应⽤中，还是需要不少⼯作量的。",
      "top": 245.0,
      "left": 221.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0047",
      "page": 103,
      "ordinal": 47,
      "text": "MySQL ",
      "top": 245.0,
      "left": 470.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0048",
      "page": 103,
      "ordinal": 48,
      "text": "有个使⽤⽅便",
      "top": 245.0,
      "left": 521.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0050",
      "page": 103,
      "ordinal": 50,
      "text": "的",
      "top": 245.0,
      "left": 613.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0051",
      "page": 103,
      "ordinal": 51,
      "text": " query cache",
      "top": 245.0,
      "left": 627.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0052",
      "page": 103,
      "ordinal": 52,
      "text": "，可以⾃",
      "top": 245.0,
      "left": 714.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0053",
      "page": 103,
      "ordinal": 53,
      "text": "动地缓存",
      "top": 269.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0054",
      "page": 103,
      "ordinal": 54,
      "text": " SQL ",
      "top": 269.0,
      "left": 170.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0055",
      "page": 103,
      "ordinal": 55,
      "text": "查询的结果，被缓存的",
      "top": 269.0,
      "left": 205.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0056",
      "page": 103,
      "ordinal": 56,
      "text": " SQL ",
      "top": 269.0,
      "left": 351.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0057",
      "page": 103,
      "ordinal": 57,
      "text": "查询可以",
      "top": 269.0,
      "left": 386.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0059",
      "page": 103,
      "ordinal": 59,
      "text": "被反复地快速执⾏。",
      "top": 269.0,
      "left": 448.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0060",
      "page": 103,
      "ordinal": 60,
      "text": "Memcached ",
      "top": 269.0,
      "left": 580.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0061",
      "page": 103,
      "ordinal": 61,
      "text": "与之相⽐，怎么",
      "top": 269.0,
      "left": 667.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0062",
      "page": 103,
      "ordinal": 62,
      "text": "样呢？",
      "top": 292.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0063",
      "page": 103,
      "ordinal": 63,
      "text": "MySQL ",
      "top": 292.0,
      "left": 156.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0064",
      "page": 103,
      "ordinal": 64,
      "text": "的",
      "top": 292.0,
      "left": 207.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0065",
      "page": 103,
      "ordinal": 65,
      "text": " query cache ",
      "top": 292.0,
      "left": 222.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0066",
      "page": 103,
      "ordinal": 66,
      "text": "是集中式的，连接到该",
      "top": 292.0,
      "left": 312.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0067",
      "page": 103,
      "ordinal": 67,
      "text": " query cache ",
      "top": 292.0,
      "left": 458.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0068",
      "page": 103,
      "ordinal": 68,
      "text": "的",
      "top": 292.0,
      "left": 548.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0069",
      "page": 103,
      "ordinal": 69,
      "text": " MySQL ",
      "top": 292.0,
      "left": 563.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0070",
      "page": 103,
      "ordinal": 70,
      "text": "服务器都会受益",
      "top": 292.0,
      "left": 618.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b001"
      }
    },
    {
      "id": "p103-t0072",
      "page": 103,
      "ordinal": 72,
      "text": "1. ",
      "top": 327.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0073",
      "page": 103,
      "ordinal": 73,
      "text": "当你修改表时，",
      "top": 327.0,
      "left": 146.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0074",
      "page": 103,
      "ordinal": 74,
      "text": "MySQL ",
      "top": 327.0,
      "left": 248.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0075",
      "page": 103,
      "ordinal": 75,
      "text": "的",
      "top": 327.0,
      "left": 299.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0076",
      "page": 103,
      "ordinal": 76,
      "text": " query cache ",
      "top": 327.0,
      "left": 314.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0077",
      "page": 103,
      "ordinal": 77,
      "text": "会⽴刻被刷新（",
      "top": 327.0,
      "left": 404.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0078",
      "page": 103,
      "ordinal": 78,
      "text": "flush",
      "top": 327.0,
      "left": 506.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0079",
      "page": 103,
      "ordinal": 79,
      "text": "）。存储⼀",
      "top": 327.0,
      "left": 540.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0081",
      "page": 103,
      "ordinal": 81,
      "text": "个",
      "top": 327.0,
      "left": 621.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0082",
      "page": 103,
      "ordinal": 82,
      "text": " Memcached item ",
      "top": 327.0,
      "left": 635.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0083",
      "page": 103,
      "ordinal": 83,
      "text": "只",
      "top": 327.0,
      "left": 761.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0084",
      "page": 103,
      "ordinal": 84,
      "text": "需要很少的时间，但是当写操作很频繁时，",
      "top": 350.0,
      "left": 146.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0085",
      "page": 103,
      "ordinal": 85,
      "text": "MySQL ",
      "top": 350.0,
      "left": 423.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0086",
      "page": 103,
      "ordinal": 86,
      "text": "的",
      "top": 350.0,
      "left": 475.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0087",
      "page": 103,
      "ordinal": 87,
      "text": " query cache ",
      "top": 350.0,
      "left": 489.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0088",
      "page": 103,
      "ordinal": 88,
      "text": "会经常让所有缓存数据",
      "top": 350.0,
      "left": 580.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0090",
      "page": 103,
      "ordinal": 90,
      "text": "都失效",
      "top": 350.0,
      "left": 730.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b002"
      }
    },
    {
      "id": "p103-t0092",
      "page": 103,
      "ordinal": 92,
      "text": "2. ",
      "top": 381.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0093",
      "page": 103,
      "ordinal": 93,
      "text": "在多核",
      "top": 381.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0094",
      "page": 103,
      "ordinal": 94,
      "text": " CPU ",
      "top": 381.0,
      "left": 189.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0095",
      "page": 103,
      "ordinal": 95,
      "text": "上，",
      "top": 381.0,
      "left": 226.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0096",
      "page": 103,
      "ordinal": 96,
      "text": "MySQL ",
      "top": 381.0,
      "left": 255.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0097",
      "page": 103,
      "ordinal": 97,
      "text": "的",
      "top": 381.0,
      "left": 306.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0098",
      "page": 103,
      "ordinal": 98,
      "text": " query cache ",
      "top": 381.0,
      "left": 321.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0099",
      "page": 103,
      "ordinal": 99,
      "text": "会遇到扩展问题（",
      "top": 381.0,
      "left": 411.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0100",
      "page": 103,
      "ordinal": 100,
      "text": "scalability issues",
      "top": 381.0,
      "left": 528.0,
      "width": 112.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0101",
      "page": 103,
      "ordinal": 101,
      "text": "）。在多核",
      "top": 381.0,
      "left": 640.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0102",
      "page": 103,
      "ordinal": 102,
      "text": " CPU ",
      "top": 381.0,
      "left": 713.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0103",
      "page": 103,
      "ordinal": 103,
      "text": "上，",
      "top": 381.0,
      "left": 750.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0104",
      "page": 103,
      "ordinal": 104,
      "text": "query cache ",
      "top": 405.0,
      "left": 146.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0105",
      "page": 103,
      "ordinal": 105,
      "text": "会增加⼀个全局锁（",
      "top": 405.0,
      "left": 232.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0106",
      "page": 103,
      "ordinal": 106,
      "text": "global lock",
      "top": 405.0,
      "left": 363.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0107",
      "page": 103,
      "ordinal": 107,
      "text": "）",
      "top": 405.0,
      "left": 436.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0108",
      "page": 103,
      "ordinal": 108,
      "text": ", ",
      "top": 405.0,
      "left": 450.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0109",
      "page": 103,
      "ordinal": 109,
      "text": "由于需要刷新更多的缓存数据，速度会变得更慢",
      "top": 405.0,
      "left": 458.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b003"
      }
    },
    {
      "id": "p103-t0111",
      "page": 103,
      "ordinal": 111,
      "text": "3. ",
      "top": 435.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0112",
      "page": 103,
      "ordinal": 112,
      "text": "在",
      "top": 435.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0113",
      "page": 103,
      "ordinal": 113,
      "text": " MySQL ",
      "top": 435.0,
      "left": 160.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0114",
      "page": 103,
      "ordinal": 114,
      "text": "的",
      "top": 435.0,
      "left": 215.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0115",
      "page": 103,
      "ordinal": 115,
      "text": " query cache ",
      "top": 435.0,
      "left": 230.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0116",
      "page": 103,
      "ordinal": 116,
      "text": "中，我们是不能存储任意的数据的（只能是",
      "top": 435.0,
      "left": 320.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0117",
      "page": 103,
      "ordinal": 117,
      "text": " SQL ",
      "top": 435.0,
      "left": 598.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0118",
      "page": 103,
      "ordinal": 118,
      "text": "查询结果）。⽽利⽤",
      "top": 435.0,
      "left": 633.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0120",
      "page": 103,
      "ordinal": 120,
      "text": "Memcached",
      "top": 459.0,
      "left": 146.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0121",
      "page": 103,
      "ordinal": 121,
      "text": "，我们可以搭建出各种⾼效的缓存。⽐",
      "top": 459.0,
      "left": 229.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0123",
      "page": 103,
      "ordinal": 123,
      "text": "如，可以执⾏多个独⽴的查询，构建出⼀个⽤",
      "top": 459.0,
      "left": 481.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0124",
      "page": 103,
      "ordinal": 124,
      "text": "户对象",
      "top": 481.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0126",
      "page": 103,
      "ordinal": 126,
      "text": "（",
      "top": 481.0,
      "left": 193.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0127",
      "page": 103,
      "ordinal": 127,
      "text": "user object",
      "top": 481.0,
      "left": 208.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0128",
      "page": 103,
      "ordinal": 128,
      "text": "），然后将",
      "top": 481.0,
      "left": 284.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0130",
      "page": 103,
      "ordinal": 130,
      "text": "⽤户对象缓存到",
      "top": 481.0,
      "left": 360.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0131",
      "page": 103,
      "ordinal": 131,
      "text": " Memcached ",
      "top": 481.0,
      "left": 463.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0132",
      "page": 103,
      "ordinal": 132,
      "text": "中。⽽",
      "top": 481.0,
      "left": 554.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0133",
      "page": 103,
      "ordinal": 133,
      "text": " query cache ",
      "top": 481.0,
      "left": 598.0,
      "width": 90.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0134",
      "page": 103,
      "ordinal": 134,
      "text": "是",
      "top": 481.0,
      "left": 688.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0135",
      "page": 103,
      "ordinal": 135,
      "text": " SQL ",
      "top": 481.0,
      "left": 702.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0136",
      "page": 103,
      "ordinal": 136,
      "text": "语句级",
      "top": 481.0,
      "left": 737.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0137",
      "page": 103,
      "ordinal": 137,
      "text": "别的，不可",
      "top": 505.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0139",
      "page": 103,
      "ordinal": 139,
      "text": "能做",
      "top": 505.0,
      "left": 222.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0141",
      "page": 103,
      "ordinal": 141,
      "text": "到这⼀点。在⼩的⽹站中，",
      "top": 505.0,
      "left": 255.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0142",
      "page": 103,
      "ordinal": 142,
      "text": "query cache ",
      "top": 505.0,
      "left": 431.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0143",
      "page": 103,
      "ordinal": 143,
      "text": "会有所帮助，但随着⽹站规模的",
      "top": 505.0,
      "left": 517.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0145",
      "page": 103,
      "ordinal": 145,
      "text": "增加，",
      "top": 505.0,
      "left": 726.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0146",
      "page": 103,
      "ordinal": 146,
      "text": "query cache ",
      "top": 528.0,
      "left": 146.0,
      "width": 86.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0147",
      "page": 103,
      "ordinal": 147,
      "text": "的弊将⼤于",
      "top": 528.0,
      "left": 232.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0149",
      "page": 103,
      "ordinal": 149,
      "text": "利。",
      "top": 528.0,
      "left": 309.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b004"
      }
    },
    {
      "id": "p103-t0151",
      "page": 103,
      "ordinal": 151,
      "text": "4. query cache ",
      "top": 559.0,
      "left": 129.0,
      "width": 102.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0152",
      "page": 103,
      "ordinal": 152,
      "text": "能够利⽤的内存容量受到",
      "top": 559.0,
      "left": 232.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0153",
      "page": 103,
      "ordinal": 153,
      "text": " MySQL ",
      "top": 559.0,
      "left": 393.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0154",
      "page": 103,
      "ordinal": 154,
      "text": "服务器空闲内存空间的限",
      "top": 559.0,
      "left": 448.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0156",
      "page": 103,
      "ordinal": 156,
      "text": "制。给数据库服务器增加",
      "top": 559.0,
      "left": 613.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0157",
      "page": 103,
      "ordinal": 157,
      "text": "更多的内存",
      "top": 582.0,
      "left": 146.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0159",
      "page": 103,
      "ordinal": 159,
      "text": "来缓存数据，固然是很好的。但是，有了",
      "top": 582.0,
      "left": 222.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0160",
      "page": 103,
      "ordinal": 160,
      "text": " Memcached",
      "top": 582.0,
      "left": 486.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0161",
      "page": 103,
      "ordinal": 161,
      "text": "，只要你有空闲的内存，都可以",
      "top": 582.0,
      "left": 573.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0162",
      "page": 103,
      "ordinal": 162,
      "text": "⽤来增加",
      "top": 606.0,
      "left": 146.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0163",
      "page": 103,
      "ordinal": 163,
      "text": " Memcached ",
      "top": 606.0,
      "left": 204.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0164",
      "page": 103,
      "ordinal": 164,
      "text": "集群的规",
      "top": 606.0,
      "left": 295.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0166",
      "page": 103,
      "ordinal": 166,
      "text": "模，然后你就可以缓存更多的数据",
      "top": 606.0,
      "left": 357.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h01",
        "heading_id": "p103-h01",
        "block_id": "q-p103-h01-b005"
      }
    },
    {
      "id": "p103-t0168",
      "page": 103,
      "ordinal": 168,
      "text": "Memcached ",
      "top": 641.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02"
      }
    },
    {
      "id": "p103-t0169",
      "page": 103,
      "ordinal": 169,
      "text": "是原⼦的吗？",
      "top": 641.0,
      "left": 273.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02"
      }
    },
    {
      "id": "p103-t0173",
      "page": 103,
      "ordinal": 173,
      "text": "所有的被发送到",
      "top": 692.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0174",
      "page": 103,
      "ordinal": 174,
      "text": " Memcached ",
      "top": 692.0,
      "left": 218.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0175",
      "page": 103,
      "ordinal": 175,
      "text": "的单个命令是完全原⼦的。如果你针对同⼀份数",
      "top": 692.0,
      "left": 309.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0177",
      "page": 103,
      "ordinal": 177,
      "text": "据同时发送了⼀个",
      "top": 692.0,
      "left": 620.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0178",
      "page": 103,
      "ordinal": 178,
      "text": " set ",
      "top": 692.0,
      "left": 737.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0179",
      "page": 103,
      "ordinal": 179,
      "text": "命",
      "top": 692.0,
      "left": 765.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0180",
      "page": 103,
      "ordinal": 180,
      "text": "令和⼀个",
      "top": 714.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0181",
      "page": 103,
      "ordinal": 181,
      "text": " get ",
      "top": 714.0,
      "left": 170.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0182",
      "page": 103,
      "ordinal": 182,
      "text": "命令，它们不会影响对⽅。它们将被串",
      "top": 714.0,
      "left": 199.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0184",
      "page": 103,
      "ordinal": 184,
      "text": "⾏化、先后执⾏。即使在多线程模",
      "top": 714.0,
      "left": 452.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0186",
      "page": 103,
      "ordinal": 186,
      "text": "式，所有的命令",
      "top": 714.0,
      "left": 675.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0187",
      "page": 103,
      "ordinal": 187,
      "text": "都是原⼦的，除⾮程序有",
      "top": 738.0,
      "left": 112.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0188",
      "page": 103,
      "ordinal": 188,
      "text": " bug",
      "top": 738.0,
      "left": 273.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0189",
      "page": 103,
      "ordinal": 189,
      "text": "。",
      "top": 738.0,
      "left": 302.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0191",
      "page": 103,
      "ordinal": 191,
      "text": "命令序列不是原⼦的。如果你通过",
      "top": 738.0,
      "left": 321.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0192",
      "page": 103,
      "ordinal": 192,
      "text": " get ",
      "top": 738.0,
      "left": 540.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0193",
      "page": 103,
      "ordinal": 193,
      "text": "命令获取了⼀个",
      "top": 738.0,
      "left": 569.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0194",
      "page": 103,
      "ordinal": 194,
      "text": " item",
      "top": 738.0,
      "left": 672.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0195",
      "page": 103,
      "ordinal": 195,
      "text": "，修改了",
      "top": 738.0,
      "left": 706.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0196",
      "page": 103,
      "ordinal": 196,
      "text": "它，然后",
      "top": 761.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0198",
      "page": 103,
      "ordinal": 198,
      "text": "想把它",
      "top": 761.0,
      "left": 174.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0199",
      "page": 103,
      "ordinal": 199,
      "text": " set ",
      "top": 761.0,
      "left": 218.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0200",
      "page": 103,
      "ordinal": 200,
      "text": "回",
      "top": 761.0,
      "left": 246.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0201",
      "page": 103,
      "ordinal": 201,
      "text": " Memcached",
      "top": 761.0,
      "left": 260.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0202",
      "page": 103,
      "ordinal": 202,
      "text": "，我们",
      "top": 761.0,
      "left": 348.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0204",
      "page": 103,
      "ordinal": 204,
      "text": "不保证这个",
      "top": 761.0,
      "left": 395.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0205",
      "page": 103,
      "ordinal": 205,
      "text": " item ",
      "top": 761.0,
      "left": 468.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0206",
      "page": 103,
      "ordinal": 206,
      "text": "没有被其他进程",
      "top": 761.0,
      "left": 507.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0208",
      "page": 103,
      "ordinal": 208,
      "text": "（",
      "top": 761.0,
      "left": 613.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0209",
      "page": 103,
      "ordinal": 209,
      "text": "process",
      "top": 761.0,
      "left": 627.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0210",
      "page": 103,
      "ordinal": 210,
      "text": "，未必是操作",
      "top": 761.0,
      "left": 680.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0211",
      "page": 103,
      "ordinal": 211,
      "text": "系统中的进程）操作过。在并发的情况下，你也可能",
      "top": 785.0,
      "left": 112.0,
      "width": 336.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0213",
      "page": 103,
      "ordinal": 213,
      "text": "覆",
      "top": 785.0,
      "left": 452.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0215",
      "page": 103,
      "ordinal": 215,
      "text": "写了⼀个被其他进程",
      "top": 785.0,
      "left": 470.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0216",
      "page": 103,
      "ordinal": 216,
      "text": " set ",
      "top": 785.0,
      "left": 602.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0217",
      "page": 103,
      "ordinal": 217,
      "text": "的",
      "top": 785.0,
      "left": 630.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0218",
      "page": 103,
      "ordinal": 218,
      "text": " item",
      "top": 785.0,
      "left": 645.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0219",
      "page": 103,
      "ordinal": 219,
      "text": "。",
      "top": 785.0,
      "left": 679.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0220",
      "page": 103,
      "ordinal": 220,
      "text": " Memcached ",
      "top": 785.0,
      "left": 694.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b001"
      }
    },
    {
      "id": "p103-t0221",
      "page": 103,
      "ordinal": 221,
      "text": "1.2.5 ",
      "top": 809.0,
      "left": 112.0,
      "width": 37.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0222",
      "page": 103,
      "ordinal": 222,
      "text": "以及更⾼版本，提供了",
      "top": 809.0,
      "left": 148.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0223",
      "page": 103,
      "ordinal": 223,
      "text": " gets ",
      "top": 809.0,
      "left": 295.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0224",
      "page": 103,
      "ordinal": 224,
      "text": "和",
      "top": 809.0,
      "left": 331.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0225",
      "page": 103,
      "ordinal": 225,
      "text": " cas ",
      "top": 809.0,
      "left": 345.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0226",
      "page": 103,
      "ordinal": 226,
      "text": "命令，它们可以解决上",
      "top": 809.0,
      "left": 375.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0228",
      "page": 103,
      "ordinal": 228,
      "text": "⾯的问题。如果你使⽤",
      "top": 809.0,
      "left": 525.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0229",
      "page": 103,
      "ordinal": 229,
      "text": " gets ",
      "top": 809.0,
      "left": 671.0,
      "width": 36.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0230",
      "page": 103,
      "ordinal": 230,
      "text": "命令查",
      "top": 809.0,
      "left": 707.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0232",
      "page": 103,
      "ordinal": 232,
      "text": "询",
      "top": 809.0,
      "left": 755.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0233",
      "page": 103,
      "ordinal": 233,
      "text": "某个",
      "top": 831.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0234",
      "page": 103,
      "ordinal": 234,
      "text": " key ",
      "top": 831.0,
      "left": 141.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0235",
      "page": 103,
      "ordinal": 235,
      "text": "的",
      "top": 831.0,
      "left": 172.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0236",
      "page": 103,
      "ordinal": 236,
      "text": " item",
      "top": 831.0,
      "left": 186.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0237",
      "page": 103,
      "ordinal": 237,
      "text": "，",
      "top": 831.0,
      "left": 221.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0238",
      "page": 103,
      "ordinal": 238,
      "text": "Memcached ",
      "top": 831.0,
      "left": 236.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0239",
      "page": 103,
      "ordinal": 239,
      "text": "会给你",
      "top": 831.0,
      "left": 323.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0241",
      "page": 103,
      "ordinal": 241,
      "text": "返回该",
      "top": 831.0,
      "left": 370.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0242",
      "page": 103,
      "ordinal": 242,
      "text": " item ",
      "top": 831.0,
      "left": 414.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0243",
      "page": 103,
      "ordinal": 243,
      "text": "当前值的唯⼀标识。如果你覆写了这个",
      "top": 831.0,
      "left": 452.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0244",
      "page": 103,
      "ordinal": 244,
      "text": " item ",
      "top": 831.0,
      "left": 701.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0245",
      "page": 103,
      "ordinal": 245,
      "text": "并想",
      "top": 831.0,
      "left": 739.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0246",
      "page": 103,
      "ordinal": 246,
      "text": "把它写回",
      "top": 855.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0248",
      "page": 103,
      "ordinal": 248,
      "text": "到",
      "top": 855.0,
      "left": 174.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0249",
      "page": 103,
      "ordinal": 249,
      "text": " Memcached ",
      "top": 855.0,
      "left": 189.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0250",
      "page": 103,
      "ordinal": 250,
      "text": "中，你可以通过",
      "top": 855.0,
      "left": 279.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0251",
      "page": 103,
      "ordinal": 251,
      "text": " cas ",
      "top": 855.0,
      "left": 382.0,
      "width": 30.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0252",
      "page": 103,
      "ordinal": 252,
      "text": "命令把那个唯⼀标识⼀起发送给",
      "top": 855.0,
      "left": 412.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0253",
      "page": 103,
      "ordinal": 253,
      "text": " Memcached",
      "top": 855.0,
      "left": 616.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0254",
      "page": 103,
      "ordinal": 254,
      "text": "。如果该",
      "top": 855.0,
      "left": 703.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0256",
      "page": 103,
      "ordinal": 256,
      "text": "item ",
      "top": 878.0,
      "left": 112.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0257",
      "page": 103,
      "ordinal": 257,
      "text": "存放在",
      "top": 878.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0258",
      "page": 103,
      "ordinal": 258,
      "text": " Memcached ",
      "top": 878.0,
      "left": 190.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0259",
      "page": 103,
      "ordinal": 259,
      "text": "中的唯⼀标识与你提供的⼀",
      "top": 878.0,
      "left": 281.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0261",
      "page": 103,
      "ordinal": 261,
      "text": "致，你的写操作将会成功。如果另⼀个进程在这期",
      "top": 878.0,
      "left": 460.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0262",
      "page": 103,
      "ordinal": 262,
      "text": "间也修改了这个",
      "top": 902.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0263",
      "page": 103,
      "ordinal": 263,
      "text": " item",
      "top": 902.0,
      "left": 214.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0264",
      "page": 103,
      "ordinal": 264,
      "text": "，那",
      "top": 902.0,
      "left": 249.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0266",
      "page": 103,
      "ordinal": 266,
      "text": "么该",
      "top": 902.0,
      "left": 282.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0267",
      "page": 103,
      "ordinal": 267,
      "text": " item ",
      "top": 902.0,
      "left": 311.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0268",
      "page": 103,
      "ordinal": 268,
      "text": "存放在",
      "top": 902.0,
      "left": 349.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0269",
      "page": 103,
      "ordinal": 269,
      "text": " Memcached ",
      "top": 902.0,
      "left": 393.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0270",
      "page": 103,
      "ordinal": 270,
      "text": "中的唯⼀标识将会改变，你的写操作就会失",
      "top": 902.0,
      "left": 484.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0272",
      "page": 103,
      "ordinal": 272,
      "text": "败",
      "top": 902.0,
      "left": 766.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h02",
        "heading_id": "p103-h02",
        "block_id": "q-p103-h02-b002"
      }
    },
    {
      "id": "p103-t0274",
      "page": 103,
      "ordinal": 274,
      "text": "Memcached ",
      "top": 936.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03"
      }
    },
    {
      "id": "p103-t0275",
      "page": 103,
      "ordinal": 275,
      "text": "能够更有效地使⽤内存吗",
      "top": 936.0,
      "left": 273.0,
      "width": 282.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03"
      }
    },
    {
      "id": "p103-t0278",
      "page": 103,
      "ordinal": 278,
      "text": " Memcache ",
      "top": 986.0,
      "left": 112.0,
      "width": 82.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0279",
      "page": 103,
      "ordinal": 279,
      "text": "客户端仅根据哈希算法来决定将某个",
      "top": 986.0,
      "left": 194.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0280",
      "page": 103,
      "ordinal": 280,
      "text": " key ",
      "top": 986.0,
      "left": 428.0,
      "width": 31.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0281",
      "page": 103,
      "ordinal": 281,
      "text": "存储在哪个节点上，⽽不",
      "top": 986.0,
      "left": 458.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0283",
      "page": 103,
      "ordinal": 283,
      "text": "考虑节点的内存⼤⼩。",
      "top": 986.0,
      "left": 623.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0284",
      "page": 103,
      "ordinal": 284,
      "text": "因此，你可",
      "top": 1010.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0286",
      "page": 103,
      "ordinal": 286,
      "text": "以在不同的节点上使⽤⼤⼩不等的缓存。但",
      "top": 1010.0,
      "left": 189.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0288",
      "page": 103,
      "ordinal": 288,
      "text": "是⼀般都是这样做的：拥有较多内存的节点上可",
      "top": 1010.0,
      "left": 470.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0289",
      "page": 103,
      "ordinal": 289,
      "text": "以运⾏多个",
      "top": 1034.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0290",
      "page": 103,
      "ordinal": 290,
      "text": " Memcached ",
      "top": 1034.0,
      "left": 185.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0291",
      "page": 103,
      "ordinal": 291,
      "text": "实",
      "top": 1034.0,
      "left": 276.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p103-t0293",
      "page": 103,
      "ordinal": 293,
      "text": "例，每个实例使⽤的内存跟其他节点上的实例相同",
      "top": 1034.0,
      "left": 294.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p103-h03",
        "heading_id": "p103-h03",
        "block_id": "q-p103-h03-b001"
      }
    },
    {
      "id": "p104-t0001",
      "page": 104,
      "ordinal": 1,
      "text": "Memcached ",
      "top": 40.0,
      "left": 112.0,
      "width": 161.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0002",
      "page": 104,
      "ordinal": 2,
      "text": "的内存分配器是如何⼯作的？为什么不适⽤",
      "top": 40.0,
      "left": 273.0,
      "width": 486.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0004",
      "page": 104,
      "ordinal": 4,
      "text": "malloc/free",
      "top": 71.0,
      "left": 112.0,
      "width": 148.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0005",
      "page": 104,
      "ordinal": 5,
      "text": "？",
      "top": 71.0,
      "left": 259.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0007",
      "page": 104,
      "ordinal": 7,
      "text": "为何要使⽤",
      "top": 71.0,
      "left": 292.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0008",
      "page": 104,
      "ordinal": 8,
      "text": " slabs",
      "top": 71.0,
      "left": 420.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0009",
      "page": 104,
      "ordinal": 9,
      "text": "？",
      "top": 71.0,
      "left": 491.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01"
      }
    },
    {
      "id": "p104-t0013",
      "page": 104,
      "ordinal": 13,
      "text": "实际上，这是⼀个编译时选项。默认会使⽤内部的",
      "top": 122.0,
      "left": 116.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0014",
      "page": 104,
      "ordinal": 14,
      "text": " slab ",
      "top": 122.0,
      "left": 437.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0015",
      "page": 104,
      "ordinal": 15,
      "text": "分配器。你确实确实应",
      "top": 122.0,
      "left": 473.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0017",
      "page": 104,
      "ordinal": 17,
      "text": "该使⽤内建的",
      "top": 122.0,
      "left": 623.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0018",
      "page": 104,
      "ordinal": 18,
      "text": " slab ",
      "top": 122.0,
      "left": 710.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0019",
      "page": 104,
      "ordinal": 19,
      "text": "分配",
      "top": 122.0,
      "left": 746.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0020",
      "page": 104,
      "ordinal": 20,
      "text": "器。最早的",
      "top": 146.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0022",
      "page": 104,
      "ordinal": 22,
      "text": "时候，",
      "top": 146.0,
      "left": 189.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0023",
      "page": 104,
      "ordinal": 23,
      "text": "Memcached ",
      "top": 146.0,
      "left": 233.0,
      "width": 87.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0024",
      "page": 104,
      "ordinal": 24,
      "text": "只使⽤",
      "top": 146.0,
      "left": 320.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0025",
      "page": 104,
      "ordinal": 25,
      "text": " malloc/free ",
      "top": 146.0,
      "left": 363.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0026",
      "page": 104,
      "ordinal": 26,
      "text": "来管理内存。然⽽，这种⽅式不能与",
      "top": 146.0,
      "left": 449.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0027",
      "page": 104,
      "ordinal": 27,
      "text": " OS ",
      "top": 146.0,
      "left": 683.0,
      "width": 27.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0028",
      "page": 104,
      "ordinal": 28,
      "text": "的内存管",
      "top": 146.0,
      "left": 710.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0029",
      "page": 104,
      "ordinal": 29,
      "text": "理以前很好地⼯作。反",
      "top": 168.0,
      "left": 112.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0031",
      "page": 104,
      "ordinal": 31,
      "text": "复地",
      "top": 168.0,
      "left": 262.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0032",
      "page": 104,
      "ordinal": 32,
      "text": " malloc/free ",
      "top": 168.0,
      "left": 291.0,
      "width": 85.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0033",
      "page": 104,
      "ordinal": 33,
      "text": "造成了内存碎⽚，",
      "top": 168.0,
      "left": 376.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0034",
      "page": 104,
      "ordinal": 34,
      "text": "OS ",
      "top": 168.0,
      "left": 493.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0035",
      "page": 104,
      "ordinal": 35,
      "text": "最终花费⼤量的时间去查找连续的内存块",
      "top": 168.0,
      "left": 517.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0036",
      "page": 104,
      "ordinal": 36,
      "text": "来",
      "top": 192.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0038",
      "page": 104,
      "ordinal": 38,
      "text": "满⾜",
      "top": 192.0,
      "left": 130.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0039",
      "page": 104,
      "ordinal": 39,
      "text": " malloc ",
      "top": 192.0,
      "left": 159.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0040",
      "page": 104,
      "ordinal": 40,
      "text": "的请求，⽽不是运",
      "top": 192.0,
      "left": 212.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0042",
      "page": 104,
      "ordinal": 42,
      "text": "⾏",
      "top": 192.0,
      "left": 333.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0043",
      "page": 104,
      "ordinal": 43,
      "text": " Memcached ",
      "top": 192.0,
      "left": 347.0,
      "width": 91.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0044",
      "page": 104,
      "ordinal": 44,
      "text": "进程。如果你不同意，当然可",
      "top": 192.0,
      "left": 438.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0046",
      "page": 104,
      "ordinal": 46,
      "text": "以使⽤",
      "top": 192.0,
      "left": 632.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0047",
      "page": 104,
      "ordinal": 47,
      "text": " malloc",
      "top": 192.0,
      "left": 676.0,
      "width": 49.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0048",
      "page": 104,
      "ordinal": 48,
      "text": "。",
      "top": 192.0,
      "left": 725.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0049",
      "page": 104,
      "ordinal": 49,
      "text": " slab ",
      "top": 192.0,
      "left": 739.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0050",
      "page": 104,
      "ordinal": 50,
      "text": "分配器就是为了解决这个问题⽽⽣的。内存被分配并划分成",
      "top": 216.0,
      "left": 112.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0051",
      "page": 104,
      "ordinal": 51,
      "text": " chunks",
      "top": 216.0,
      "left": 492.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0052",
      "page": 104,
      "ordinal": 52,
      "text": "，⼀",
      "top": 216.0,
      "left": 544.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0054",
      "page": 104,
      "ordinal": 54,
      "text": "直被重复使⽤。因为内存被划分",
      "top": 216.0,
      "left": 577.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0055",
      "page": 104,
      "ordinal": 55,
      "text": "成⼤",
      "top": 239.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0057",
      "page": 104,
      "ordinal": 57,
      "text": "⼩不等的",
      "top": 239.0,
      "left": 145.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0058",
      "page": 104,
      "ordinal": 58,
      "text": " slabs",
      "top": 239.0,
      "left": 203.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0059",
      "page": 104,
      "ordinal": 59,
      "text": "，如果",
      "top": 239.0,
      "left": 242.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0060",
      "page": 104,
      "ordinal": 60,
      "text": " item ",
      "top": 239.0,
      "left": 286.0,
      "width": 38.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0061",
      "page": 104,
      "ordinal": 61,
      "text": "的⼤⼩与被选",
      "top": 239.0,
      "left": 324.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0063",
      "page": 104,
      "ordinal": 63,
      "text": "择存放它的",
      "top": 239.0,
      "left": 416.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0064",
      "page": 104,
      "ordinal": 64,
      "text": " slab ",
      "top": 239.0,
      "left": 489.0,
      "width": 35.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0065",
      "page": 104,
      "ordinal": 65,
      "text": "不是很合适的话，就会浪费⼀些内存。",
      "top": 239.0,
      "left": 524.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0066",
      "page": 104,
      "ordinal": 66,
      "text": "Steven Grimm ",
      "top": 263.0,
      "left": 112.0,
      "width": 101.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0067",
      "page": 104,
      "ordinal": 67,
      "text": "正在这",
      "top": 263.0,
      "left": 213.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0069",
      "page": 104,
      "ordinal": 69,
      "text": "⽅⾯已经做出了有效的改进",
      "top": 263.0,
      "left": 260.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/09-redis-cache#q-p104-h01",
        "heading_id": "p104-h01",
        "block_id": "q-p104-h01-b001"
      }
    },
    {
      "id": "p104-t0071",
      "page": 104,
      "ordinal": 71,
      "text": "MongoDB ",
      "top": 295.0,
      "left": 112.0,
      "width": 167.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h02"
      }
    },
    {
      "id": "p104-t0072",
      "page": 104,
      "ordinal": 72,
      "text": "⾯试题",
      "top": 295.0,
      "left": 279.0,
      "width": 99.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h02"
      }
    },
    {
      "id": "p104-t0075",
      "page": 104,
      "ordinal": 75,
      "text": "ObjectID ",
      "top": 351.0,
      "left": 112.0,
      "width": 118.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03"
      }
    },
    {
      "id": "p104-t0076",
      "page": 104,
      "ordinal": 76,
      "text": "有哪些部分组成",
      "top": 351.0,
      "left": 230.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03"
      }
    },
    {
      "id": "p104-t0080",
      "page": 104,
      "ordinal": 80,
      "text": "⼀共有四部分组成",
      "top": 402.0,
      "left": 116.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0081",
      "page": 104,
      "ordinal": 81,
      "text": ":",
      "top": 402.0,
      "left": 233.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0082",
      "page": 104,
      "ordinal": 82,
      "text": "时间戳、客户端",
      "top": 402.0,
      "left": 236.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0083",
      "page": 104,
      "ordinal": 83,
      "text": " ID",
      "top": 402.0,
      "left": 339.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0084",
      "page": 104,
      "ordinal": 84,
      "text": "、客户进程",
      "top": 402.0,
      "left": 357.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0085",
      "page": 104,
      "ordinal": 85,
      "text": " ID",
      "top": 402.0,
      "left": 430.0,
      "width": 19.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0086",
      "page": 104,
      "ordinal": 86,
      "text": "、三个字节的增量计数",
      "top": 402.0,
      "left": 449.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0088",
      "page": 104,
      "ordinal": 88,
      "text": "器",
      "top": 402.0,
      "left": 599.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h03",
        "heading_id": "p104-h03",
        "block_id": "q-p104-h03-b001"
      }
    },
    {
      "id": "p104-t0090",
      "page": 104,
      "ordinal": 90,
      "text": "当我试图更新⼀个正在被迁移的块",
      "top": 437.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04"
      }
    },
    {
      "id": "p104-t0091",
      "page": 104,
      "ordinal": 91,
      "text": "(chunk)",
      "top": 437.0,
      "left": 496.0,
      "width": 97.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04"
      }
    },
    {
      "id": "p104-t0092",
      "page": 104,
      "ordinal": 92,
      "text": "上的⽂档时会发",
      "top": 437.0,
      "left": 592.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04"
      }
    },
    {
      "id": "p104-t0093",
      "page": 104,
      "ordinal": 93,
      "text": "⽣什",
      "top": 468.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04"
      }
    },
    {
      "id": "p104-t0095",
      "page": 104,
      "ordinal": 95,
      "text": "么",
      "top": 468.0,
      "left": 170.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04"
      }
    },
    {
      "id": "p104-t0099",
      "page": 104,
      "ordinal": 99,
      "text": "更新操作会⽴即发⽣在旧的分⽚",
      "top": 519.0,
      "left": 116.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0100",
      "page": 104,
      "ordinal": 100,
      "text": "(shard)",
      "top": 519.0,
      "left": 320.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0101",
      "page": 104,
      "ordinal": 101,
      "text": "上",
      "top": 519.0,
      "left": 368.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0102",
      "page": 104,
      "ordinal": 102,
      "text": ",",
      "top": 519.0,
      "left": 383.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0103",
      "page": 104,
      "ordinal": 103,
      "text": "然后更改才会在所有权转移",
      "top": 519.0,
      "left": 386.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0104",
      "page": 104,
      "ordinal": 104,
      "text": " (ownership transfers)",
      "top": 519.0,
      "left": 562.0,
      "width": 150.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0105",
      "page": 104,
      "ordinal": 105,
      "text": "前复制到",
      "top": 519.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0106",
      "page": 104,
      "ordinal": 106,
      "text": "新的分⽚",
      "top": 543.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0108",
      "page": 104,
      "ordinal": 108,
      "text": "上",
      "top": 543.0,
      "left": 174.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h04",
        "heading_id": "p104-h04",
        "block_id": "q-p104-h04-b001"
      }
    },
    {
      "id": "p104-t0110",
      "page": 104,
      "ordinal": 110,
      "text": "为什么要在",
      "top": 576.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05"
      }
    },
    {
      "id": "p104-t0111",
      "page": 104,
      "ordinal": 111,
      "text": " MongoDB ",
      "top": 576.0,
      "left": 240.0,
      "width": 137.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05"
      }
    },
    {
      "id": "p104-t0112",
      "page": 104,
      "ordinal": 112,
      "text": "中使⽤分析器",
      "top": 576.0,
      "left": 376.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05"
      }
    },
    {
      "id": "p104-t0115",
      "page": 104,
      "ordinal": 115,
      "text": " MongoDB ",
      "top": 627.0,
      "left": 112.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0116",
      "page": 104,
      "ordinal": 116,
      "text": "中包括了⼀个可以显示数据库中每个操作性能特点的数据库分析",
      "top": 627.0,
      "left": 187.0,
      "width": 410.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0118",
      "page": 104,
      "ordinal": 118,
      "text": "器。通过这个分析器你可以",
      "top": 627.0,
      "left": 601.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0119",
      "page": 104,
      "ordinal": 119,
      "text": "找到⽐预期",
      "top": 651.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0121",
      "page": 104,
      "ordinal": 121,
      "text": "慢的查询",
      "top": 651.0,
      "left": 189.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0122",
      "page": 104,
      "ordinal": 122,
      "text": "(",
      "top": 651.0,
      "left": 247.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0123",
      "page": 104,
      "ordinal": 123,
      "text": "或写操作",
      "top": 651.0,
      "left": 252.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0124",
      "page": 104,
      "ordinal": 124,
      "text": ");",
      "top": 651.0,
      "left": 310.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0125",
      "page": 104,
      "ordinal": 125,
      "text": "利⽤这⼀信息",
      "top": 651.0,
      "left": 318.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0126",
      "page": 104,
      "ordinal": 126,
      "text": ",",
      "top": 651.0,
      "left": 406.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0127",
      "page": 104,
      "ordinal": 127,
      "text": "⽐如",
      "top": 651.0,
      "left": 410.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0128",
      "page": 104,
      "ordinal": 128,
      "text": ", ",
      "top": 651.0,
      "left": 439.0,
      "width": 7.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0129",
      "page": 104,
      "ordinal": 129,
      "text": "可以确定是否需要添加索引。",
      "top": 651.0,
      "left": 446.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h05",
        "heading_id": "p104-h05",
        "block_id": "q-p104-h05-b001"
      }
    },
    {
      "id": "p104-t0131",
      "page": 104,
      "ordinal": 131,
      "text": "解释⼀下",
      "top": 686.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06"
      }
    },
    {
      "id": "p104-t0132",
      "page": 104,
      "ordinal": 132,
      "text": " MongoDB ",
      "top": 686.0,
      "left": 214.0,
      "width": 137.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06"
      }
    },
    {
      "id": "p104-t0133",
      "page": 104,
      "ordinal": 133,
      "text": "中的索引是什么",
      "top": 686.0,
      "left": 351.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06"
      }
    },
    {
      "id": "p104-t0137",
      "page": 104,
      "ordinal": 137,
      "text": "索引是",
      "top": 737.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06",
        "block_id": "q-p104-h06-b001"
      }
    },
    {
      "id": "p104-t0138",
      "page": 104,
      "ordinal": 138,
      "text": " MongoDB ",
      "top": 737.0,
      "left": 159.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06",
        "block_id": "q-p104-h06-b001"
      }
    },
    {
      "id": "p104-t0139",
      "page": 104,
      "ordinal": 139,
      "text": "中的特殊结构，它以易于遍历的形式存储⼀⼩部分数据集。",
      "top": 737.0,
      "left": 235.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06",
        "block_id": "q-p104-h06-b001"
      }
    },
    {
      "id": "p104-t0141",
      "page": 104,
      "ordinal": 141,
      "text": "索引按索引中指定的字段",
      "top": 737.0,
      "left": 619.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06",
        "block_id": "q-p104-h06-b001"
      }
    },
    {
      "id": "p104-t0142",
      "page": 104,
      "ordinal": 142,
      "text": "的值排序，存储特定字段或⼀组字段的值",
      "top": 759.0,
      "left": 112.0,
      "width": 263.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h06",
        "heading_id": "p104-h06",
        "block_id": "q-p104-h06-b001"
      }
    },
    {
      "id": "p104-t0144",
      "page": 104,
      "ordinal": 144,
      "text": "什么是集合（表）",
      "top": 794.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07"
      }
    },
    {
      "id": "p104-t0148",
      "page": 104,
      "ordinal": 148,
      "text": "集合就是⼀组",
      "top": 845.0,
      "left": 116.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0149",
      "page": 104,
      "ordinal": 149,
      "text": " MongoDB ",
      "top": 845.0,
      "left": 203.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0150",
      "page": 104,
      "ordinal": 150,
      "text": "⽂档。它相当于关系型数据库（",
      "top": 845.0,
      "left": 279.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0151",
      "page": 104,
      "ordinal": 151,
      "text": "RDBMS",
      "top": 845.0,
      "left": 484.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0152",
      "page": 104,
      "ordinal": 152,
      "text": "）中的表这",
      "top": 845.0,
      "left": 534.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0154",
      "page": 104,
      "ordinal": 154,
      "text": "种概念。集合位于单独的",
      "top": 845.0,
      "left": 611.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0155",
      "page": 104,
      "ordinal": 155,
      "text": "⼀个数据",
      "top": 868.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0157",
      "page": 104,
      "ordinal": 157,
      "text": "库中。⼀个集合内的多个⽂档可以有多个不",
      "top": 868.0,
      "left": 174.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0159",
      "page": 104,
      "ordinal": 159,
      "text": "同的字段。⼀般来说，集合中的⽂档都有着相同或",
      "top": 868.0,
      "left": 456.0,
      "width": 322.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0160",
      "page": 104,
      "ordinal": 160,
      "text": "相关的⽬的。",
      "top": 892.0,
      "left": 112.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h07",
        "heading_id": "p104-h07",
        "block_id": "q-p104-h07-b001"
      }
    },
    {
      "id": "p104-t0162",
      "page": 104,
      "ordinal": 162,
      "text": "什么是",
      "top": 926.0,
      "left": 112.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0163",
      "page": 104,
      "ordinal": 163,
      "text": " NoSQL ",
      "top": 926.0,
      "left": 189.0,
      "width": 99.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0164",
      "page": 104,
      "ordinal": 164,
      "text": "数据库？",
      "top": 926.0,
      "left": 287.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0165",
      "page": 104,
      "ordinal": 165,
      "text": "NoSQL ",
      "top": 926.0,
      "left": 390.0,
      "width": 92.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0166",
      "page": 104,
      "ordinal": 166,
      "text": "和",
      "top": 926.0,
      "left": 482.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0167",
      "page": 104,
      "ordinal": 167,
      "text": " RDBMS ",
      "top": 926.0,
      "left": 508.0,
      "width": 105.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0168",
      "page": 104,
      "ordinal": 168,
      "text": "有什么区别？",
      "top": 926.0,
      "left": 612.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0169",
      "page": 104,
      "ordinal": 169,
      "text": "在哪",
      "top": 957.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0171",
      "page": 104,
      "ordinal": 171,
      "text": "些情况下",
      "top": 957.0,
      "left": 170.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0173",
      "page": 104,
      "ordinal": 173,
      "text": "使⽤和不使⽤",
      "top": 957.0,
      "left": 279.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0174",
      "page": 104,
      "ordinal": 174,
      "text": " NoSQL ",
      "top": 957.0,
      "left": 432.0,
      "width": 99.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0175",
      "page": 104,
      "ordinal": 175,
      "text": "数据库？",
      "top": 957.0,
      "left": 531.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08"
      }
    },
    {
      "id": "p104-t0178",
      "page": 104,
      "ordinal": 178,
      "text": "NoSQL ",
      "top": 1008.0,
      "left": 112.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0179",
      "page": 104,
      "ordinal": 179,
      "text": "是⾮关系型数据库，",
      "top": 1008.0,
      "left": 162.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0180",
      "page": 104,
      "ordinal": 180,
      "text": "NoSQL = Not Only SQL",
      "top": 1008.0,
      "left": 294.0,
      "width": 154.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0181",
      "page": 104,
      "ordinal": 181,
      "text": "。",
      "top": 1008.0,
      "left": 448.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0183",
      "page": 104,
      "ordinal": 183,
      "text": "关系型数据库采⽤的结构化的数据，",
      "top": 1008.0,
      "left": 466.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0184",
      "page": 104,
      "ordinal": 184,
      "text": "NoSQL ",
      "top": 1008.0,
      "left": 700.0,
      "width": 51.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0185",
      "page": 104,
      "ordinal": 185,
      "text": "采⽤",
      "top": 1008.0,
      "left": 751.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0186",
      "page": 104,
      "ordinal": 186,
      "text": "的是键值",
      "top": 1031.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0188",
      "page": 104,
      "ordinal": 188,
      "text": "对的⽅式存储数据。",
      "top": 1031.0,
      "left": 174.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0190",
      "page": 104,
      "ordinal": 190,
      "text": "在处理⾮结构化",
      "top": 1031.0,
      "left": 309.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0191",
      "page": 104,
      "ordinal": 191,
      "text": "/",
      "top": 1031.0,
      "left": 412.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0192",
      "page": 104,
      "ordinal": 192,
      "text": "半结构化的⼤数据时；在⽔平⽅向上进⾏扩展时，随时",
      "top": 1031.0,
      "left": 417.0,
      "width": 351.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0193",
      "page": 104,
      "ordinal": 193,
      "text": "应对动",
      "top": 1055.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0195",
      "page": 104,
      "ordinal": 195,
      "text": "态增加的数据",
      "top": 1055.0,
      "left": 159.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0197",
      "page": 104,
      "ordinal": 197,
      "text": "项时可以优先考虑。",
      "top": 1055.0,
      "left": 251.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0199",
      "page": 104,
      "ordinal": 199,
      "text": "使⽤",
      "top": 1055.0,
      "left": 386.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0200",
      "page": 104,
      "ordinal": 200,
      "text": " NoSQL ",
      "top": 1055.0,
      "left": 416.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0201",
      "page": 104,
      "ordinal": 201,
      "text": "数据库。",
      "top": 1055.0,
      "left": 470.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0203",
      "page": 104,
      "ordinal": 203,
      "text": "在考虑数据库的成熟度；⽀持；分析和",
      "top": 1055.0,
      "left": 532.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0204",
      "page": 104,
      "ordinal": 204,
      "text": "商业智能；管理",
      "top": 1079.0,
      "left": 112.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0206",
      "page": 104,
      "ordinal": 206,
      "text": "及专业性等问题时，应优先考虑关",
      "top": 1079.0,
      "left": 218.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0208",
      "page": 104,
      "ordinal": 208,
      "text": "系型数据库",
      "top": 1079.0,
      "left": 441.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h08",
        "heading_id": "p104-h08",
        "block_id": "q-p104-h08-b001"
      }
    },
    {
      "id": "p104-t0210",
      "page": 104,
      "ordinal": 210,
      "text": "提及插⼊⽂档的命令语法是什么？",
      "top": 1112.0,
      "left": 112.0,
      "width": 384.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
        "heading_id": "p104-h09"
      }
    },
    {
      "id": "p104-t0214",
      "page": 104,
      "ordinal": 214,
      "text": "⽤于插⼊⽂档的命令语法是",
      "top": 1163.0,
      "left": 116.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
        "heading_id": "p104-h09",
        "block_id": "q-p104-h09-b001"
      }
    },
    {
      "id": "p104-t0215",
      "page": 104,
      "ordinal": 215,
      "text": " database.collection.insert",
      "top": 1163.0,
      "left": 291.0,
      "width": 178.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
        "heading_id": "p104-h09",
        "block_id": "q-p104-h09-b001"
      }
    },
    {
      "id": "p104-t0216",
      "page": 104,
      "ordinal": 216,
      "text": "（⽂档）",
      "top": 1163.0,
      "left": 469.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p104-h09",
        "heading_id": "p104-h09",
        "block_id": "q-p104-h09-b001"
      }
    },
    {
      "id": "p105-t0001",
      "page": 105,
      "ordinal": 1,
      "text": "如果在⼀个分⽚（",
      "top": 40.0,
      "left": 112.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0002",
      "page": 105,
      "ordinal": 2,
      "text": "shard",
      "top": 40.0,
      "left": 317.0,
      "width": 73.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0003",
      "page": 105,
      "ordinal": 3,
      "text": "）停⽌或者很慢的时候",
      "top": 40.0,
      "left": 389.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0004",
      "page": 105,
      "ordinal": 4,
      "text": ",",
      "top": 40.0,
      "left": 645.0,
      "width": 7.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0005",
      "page": 105,
      "ordinal": 5,
      "text": "我发起⼀个",
      "top": 40.0,
      "left": 653.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0006",
      "page": 105,
      "ordinal": 6,
      "text": "查询",
      "top": 71.0,
      "left": 112.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0008",
      "page": 105,
      "ordinal": 8,
      "text": "会怎样",
      "top": 71.0,
      "left": 170.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01"
      }
    },
    {
      "id": "p105-t0012",
      "page": 105,
      "ordinal": 12,
      "text": "如果⼀个分⽚（",
      "top": 122.0,
      "left": 116.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0013",
      "page": 105,
      "ordinal": 13,
      "text": "shard",
      "top": 122.0,
      "left": 218.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0014",
      "page": 105,
      "ordinal": 14,
      "text": "）停⽌了，除⾮查询设置了",
      "top": 122.0,
      "left": 257.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0015",
      "page": 105,
      "ordinal": 15,
      "text": "“partial”",
      "top": 122.0,
      "left": 432.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0016",
      "page": 105,
      "ordinal": 16,
      "text": "选项",
      "top": 122.0,
      "left": 486.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0017",
      "page": 105,
      "ordinal": 17,
      "text": ",",
      "top": 122.0,
      "left": 516.0,
      "width": 4.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0018",
      "page": 105,
      "ordinal": 18,
      "text": "否则查询会",
      "top": 122.0,
      "left": 519.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0020",
      "page": 105,
      "ordinal": 20,
      "text": "返回⼀个错误。如果⼀个分",
      "top": 122.0,
      "left": 596.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0021",
      "page": 105,
      "ordinal": 21,
      "text": "⽚",
      "top": 146.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0023",
      "page": 105,
      "ordinal": 23,
      "text": "（",
      "top": 146.0,
      "left": 130.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0024",
      "page": 105,
      "ordinal": 24,
      "text": "shard",
      "top": 146.0,
      "left": 145.0,
      "width": 39.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0025",
      "page": 105,
      "ordinal": 25,
      "text": "）响应很慢，",
      "top": 146.0,
      "left": 184.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0026",
      "page": 105,
      "ordinal": 26,
      "text": "MongoDB ",
      "top": 146.0,
      "left": 272.0,
      "width": 72.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0027",
      "page": 105,
      "ordinal": 27,
      "text": "则会等待它的",
      "top": 146.0,
      "left": 343.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0029",
      "page": 105,
      "ordinal": 29,
      "text": "响应",
      "top": 146.0,
      "left": 435.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h01",
        "heading_id": "p105-h01",
        "block_id": "q-p105-h01-b001"
      }
    },
    {
      "id": "p105-t0031",
      "page": 105,
      "ordinal": 31,
      "text": "如何执⾏事务",
      "top": 179.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02"
      }
    },
    {
      "id": "p105-t0032",
      "page": 105,
      "ordinal": 32,
      "text": "/",
      "top": 179.0,
      "left": 265.0,
      "width": 11.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02"
      }
    },
    {
      "id": "p105-t0033",
      "page": 105,
      "ordinal": 33,
      "text": "加锁？",
      "top": 179.0,
      "left": 276.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02"
      }
    },
    {
      "id": "p105-t0037",
      "page": 105,
      "ordinal": 37,
      "text": "因为",
      "top": 230.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02",
        "block_id": "q-p105-h02-b001"
      }
    },
    {
      "id": "p105-t0038",
      "page": 105,
      "ordinal": 38,
      "text": " MongoDB ",
      "top": 230.0,
      "left": 145.0,
      "width": 76.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02",
        "block_id": "q-p105-h02-b001"
      }
    },
    {
      "id": "p105-t0039",
      "page": 105,
      "ordinal": 39,
      "text": "设计就是轻量⾼性能，所以没有传统的锁和复杂的事务的回滚",
      "top": 230.0,
      "left": 220.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h02",
        "heading_id": "p105-h02",
        "block_id": "q-p105-h02-b001"
      }
    },
    {
      "id": "p105-t0041",
      "page": 105,
      "ordinal": 41,
      "text": "Elasticsearch  ",
      "top": 264.0,
      "left": 112.0,
      "width": 232.0,
      "height": 44.0,
      "font": "3",
      "size": 33,
      "links": [],
      "assignment": {
        "kind": "section",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h03"
      }
    },
    {
      "id": "p105-t0043",
      "page": 105,
      "ordinal": 43,
      "text": "Elasticsearch ",
      "top": 320.0,
      "left": 112.0,
      "width": 174.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04"
      }
    },
    {
      "id": "p105-t0044",
      "page": 105,
      "ordinal": 44,
      "text": "读取数据",
      "top": 320.0,
      "left": 286.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04"
      }
    },
    {
      "id": "p105-t0048",
      "page": 105,
      "ordinal": 48,
      "text": "使⽤",
      "top": 371.0,
      "left": 116.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0049",
      "page": 105,
      "ordinal": 49,
      "text": " RestFul API ",
      "top": 371.0,
      "left": 145.0,
      "width": 83.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0050",
      "page": 105,
      "ordinal": 50,
      "text": "向对应的",
      "top": 371.0,
      "left": 228.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0051",
      "page": 105,
      "ordinal": 51,
      "text": " node ",
      "top": 371.0,
      "left": 286.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0052",
      "page": 105,
      "ordinal": 52,
      "text": "发送查询请求，根据",
      "top": 371.0,
      "left": 329.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0053",
      "page": 105,
      "ordinal": 53,
      "text": " did ",
      "top": 371.0,
      "left": 461.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0054",
      "page": 105,
      "ordinal": 54,
      "text": "来判断在哪个",
      "top": 371.0,
      "left": 490.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0055",
      "page": 105,
      "ordinal": 55,
      "text": " shard ",
      "top": 371.0,
      "left": 578.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0056",
      "page": 105,
      "ordinal": 56,
      "text": "上，返回的是",
      "top": 371.0,
      "left": 624.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0057",
      "page": 105,
      "ordinal": 57,
      "text": " primary ",
      "top": 371.0,
      "left": 712.0,
      "width": 61.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0058",
      "page": 105,
      "ordinal": 58,
      "text": "和",
      "top": 395.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0059",
      "page": 105,
      "ordinal": 59,
      "text": " replica ",
      "top": 395.0,
      "left": 126.0,
      "width": 53.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0060",
      "page": 105,
      "ordinal": 60,
      "text": "的",
      "top": 395.0,
      "left": 180.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0061",
      "page": 105,
      "ordinal": 61,
      "text": " node ",
      "top": 395.0,
      "left": 194.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0062",
      "page": 105,
      "ordinal": 62,
      "text": "节点集合。",
      "top": 395.0,
      "left": 237.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0064",
      "page": 105,
      "ordinal": 64,
      "text": "这样会负载均衡地把查询发送到对应节点，之后对应节点接收到请求，将",
      "top": 395.0,
      "left": 314.0,
      "width": 468.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0066",
      "page": 105,
      "ordinal": 66,
      "text": "document ",
      "top": 418.0,
      "left": 112.0,
      "width": 73.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0067",
      "page": 105,
      "ordinal": 67,
      "text": "数据返回协调节点，协调节点把",
      "top": 418.0,
      "left": 185.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0068",
      "page": 105,
      "ordinal": 68,
      "text": " document ",
      "top": 418.0,
      "left": 390.0,
      "width": 77.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0069",
      "page": 105,
      "ordinal": 69,
      "text": "返回给客户端。",
      "top": 418.0,
      "left": 467.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h04",
        "heading_id": "p105-h04",
        "block_id": "q-p105-h04-b001"
      }
    },
    {
      "id": "p105-t0070",
      "page": 105,
      "ordinal": 70,
      "text": "您能解释⼀下",
      "top": 785.0,
      "left": 112.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05"
      }
    },
    {
      "id": "p105-t0071",
      "page": 105,
      "ordinal": 71,
      "text": " X-Pack for Elasticsearch ",
      "top": 785.0,
      "left": 265.0,
      "width": 317.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05"
      }
    },
    {
      "id": "p105-t0072",
      "page": 105,
      "ordinal": 72,
      "text": "的功能和重要性",
      "top": 785.0,
      "left": 582.0,
      "width": 179.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05"
      }
    },
    {
      "id": "p105-t0073",
      "page": 105,
      "ordinal": 73,
      "text": "吗",
      "top": 816.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05"
      }
    },
    {
      "id": "p105-t0076",
      "page": 105,
      "ordinal": 76,
      "text": " X-Pack ",
      "top": 867.0,
      "left": 112.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0077",
      "page": 105,
      "ordinal": 77,
      "text": "是与",
      "top": 867.0,
      "left": 164.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0078",
      "page": 105,
      "ordinal": 78,
      "text": " Elasticsearch ",
      "top": 867.0,
      "left": 193.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0079",
      "page": 105,
      "ordinal": 79,
      "text": "⼀起安装的扩展程序。",
      "top": 867.0,
      "left": 289.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0080",
      "page": 105,
      "ordinal": 80,
      "text": " X-Pack ",
      "top": 867.0,
      "left": 435.0,
      "width": 52.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0081",
      "page": 105,
      "ordinal": 81,
      "text": "的各种功能包括安全性（基于⻆⾊的访问，特",
      "top": 867.0,
      "left": 488.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0082",
      "page": 105,
      "ordinal": 82,
      "text": "权",
      "top": 891.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0083",
      "page": 105,
      "ordinal": 83,
      "text": "/",
      "top": 891.0,
      "left": 126.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0084",
      "page": 105,
      "ordinal": 84,
      "text": "权限，⻆⾊和⽤户安",
      "top": 891.0,
      "left": 132.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0086",
      "page": 105,
      "ordinal": 86,
      "text": "全性），监视，报告，警报等。",
      "top": 891.0,
      "left": 267.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h05",
        "heading_id": "p105-h05",
        "block_id": "q-p105-h05-b001"
      }
    },
    {
      "id": "p105-t0088",
      "page": 105,
      "ordinal": 88,
      "text": "Elasticsearch ",
      "top": 924.0,
      "left": 112.0,
      "width": 174.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0089",
      "page": 105,
      "ordinal": 89,
      "text": "中的节点（⽐如共",
      "top": 924.0,
      "left": 286.0,
      "width": 205.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0090",
      "page": 105,
      "ordinal": 90,
      "text": " 20 ",
      "top": 924.0,
      "left": 490.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0091",
      "page": 105,
      "ordinal": 91,
      "text": "个），其中的",
      "top": 924.0,
      "left": 533.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0092",
      "page": 105,
      "ordinal": 92,
      "text": " 10 ",
      "top": 924.0,
      "left": 687.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0093",
      "page": 105,
      "ordinal": 93,
      "text": "个选",
      "top": 924.0,
      "left": 729.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0094",
      "page": 105,
      "ordinal": 94,
      "text": "了",
      "top": 956.0,
      "left": 112.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0096",
      "page": 105,
      "ordinal": 96,
      "text": "⼀个",
      "top": 956.0,
      "left": 144.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0097",
      "page": 105,
      "ordinal": 97,
      "text": " master",
      "top": 956.0,
      "left": 195.0,
      "width": 98.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0098",
      "page": 105,
      "ordinal": 98,
      "text": "，另外",
      "top": 956.0,
      "left": 293.0,
      "width": 77.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0099",
      "page": 105,
      "ordinal": 99,
      "text": " 10 ",
      "top": 956.0,
      "left": 370.0,
      "width": 43.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0100",
      "page": 105,
      "ordinal": 100,
      "text": "个选了另⼀个",
      "top": 956.0,
      "left": 412.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0101",
      "page": 105,
      "ordinal": 101,
      "text": " master",
      "top": 956.0,
      "left": 566.0,
      "width": 98.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0102",
      "page": 105,
      "ordinal": 102,
      "text": "，怎么办",
      "top": 956.0,
      "left": 664.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06"
      }
    },
    {
      "id": "p105-t0105",
      "page": 105,
      "ordinal": 105,
      "text": "1. ",
      "top": 1007.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0106",
      "page": 105,
      "ordinal": 106,
      "text": "当集群",
      "top": 1007.0,
      "left": 146.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0107",
      "page": 105,
      "ordinal": 107,
      "text": " master ",
      "top": 1007.0,
      "left": 189.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0108",
      "page": 105,
      "ordinal": 108,
      "text": "候选数量不⼩于",
      "top": 1007.0,
      "left": 245.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0109",
      "page": 105,
      "ordinal": 109,
      "text": " 3 ",
      "top": 1007.0,
      "left": 347.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0110",
      "page": 105,
      "ordinal": 110,
      "text": "个时，可以通过设置最少投票通过数量",
      "top": 1007.0,
      "left": 363.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0112",
      "page": 105,
      "ordinal": 112,
      "text": "（",
      "top": 1030.0,
      "left": 146.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0113",
      "page": 105,
      "ordinal": 113,
      "text": "discovery.zen.minimum_master_nodes",
      "top": 1030.0,
      "left": 160.0,
      "width": 265.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0114",
      "page": 105,
      "ordinal": 114,
      "text": "）超过所有候选节点⼀半以上",
      "top": 1030.0,
      "left": 426.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0116",
      "page": 105,
      "ordinal": 116,
      "text": "来解决脑裂问题；",
      "top": 1030.0,
      "left": 619.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b001"
      }
    },
    {
      "id": "p105-t0118",
      "page": 105,
      "ordinal": 118,
      "text": "2. ",
      "top": 1061.0,
      "left": 129.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0119",
      "page": 105,
      "ordinal": 119,
      "text": "当候选数量为两个时，只能修改为唯⼀的⼀个",
      "top": 1061.0,
      "left": 146.0,
      "width": 293.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0120",
      "page": 105,
      "ordinal": 120,
      "text": " master ",
      "top": 1061.0,
      "left": 438.0,
      "width": 56.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0121",
      "page": 105,
      "ordinal": 121,
      "text": "候选，其他作为",
      "top": 1061.0,
      "left": 494.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0122",
      "page": 105,
      "ordinal": 122,
      "text": "data ",
      "top": 1061.0,
      "left": 596.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0123",
      "page": 105,
      "ordinal": 123,
      "text": "节点，避免脑裂问题",
      "top": 1061.0,
      "left": 630.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h06",
        "heading_id": "p105-h06",
        "block_id": "q-p105-h06-b002"
      }
    },
    {
      "id": "p105-t0125",
      "page": 105,
      "ordinal": 125,
      "text": "解释⼀下",
      "top": 1095.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07"
      }
    },
    {
      "id": "p105-t0126",
      "page": 105,
      "ordinal": 126,
      "text": " Elasticsearch ",
      "top": 1095.0,
      "left": 214.0,
      "width": 181.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07"
      }
    },
    {
      "id": "p105-t0127",
      "page": 105,
      "ordinal": 127,
      "text": "集群中的",
      "top": 1095.0,
      "left": 395.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07"
      }
    },
    {
      "id": "p105-t0129",
      "page": 105,
      "ordinal": 129,
      "text": "索引的概念",
      "top": 1095.0,
      "left": 504.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07"
      }
    },
    {
      "id": "p105-t0131",
      "page": 105,
      "ordinal": 131,
      "text": "？",
      "top": 1095.0,
      "left": 638.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07"
      }
    },
    {
      "id": "p105-t0134",
      "page": 105,
      "ordinal": 134,
      "text": " Elasticsearch ",
      "top": 1146.0,
      "left": 112.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07",
        "block_id": "q-p105-h07-b001"
      }
    },
    {
      "id": "p105-t0135",
      "page": 105,
      "ordinal": 135,
      "text": "集群可以包含多个索引，与关系数据库相⽐，它们相当于数据库表",
      "top": 1146.0,
      "left": 207.0,
      "width": 424.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p105-h07",
        "heading_id": "p105-h07",
        "block_id": "q-p105-h07-b001"
      }
    },
    {
      "id": "p106-t0001",
      "page": 106,
      "ordinal": 1,
      "text": "你可以列出",
      "top": 40.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01"
      }
    },
    {
      "id": "p106-t0002",
      "page": 106,
      "ordinal": 2,
      "text": " Elasticsearch ",
      "top": 40.0,
      "left": 240.0,
      "width": 181.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01"
      }
    },
    {
      "id": "p106-t0003",
      "page": 106,
      "ordinal": 3,
      "text": "各种类型的分析器吗",
      "top": 40.0,
      "left": 420.0,
      "width": 230.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01"
      }
    },
    {
      "id": "p106-t0006",
      "page": 106,
      "ordinal": 6,
      "text": " Elasticsearch Analyzer ",
      "top": 91.0,
      "left": 112.0,
      "width": 158.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0007",
      "page": 106,
      "ordinal": 7,
      "text": "的类型为内置分析器和⾃定义分析器。",
      "top": 91.0,
      "left": 270.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0008",
      "page": 106,
      "ordinal": 8,
      "text": " Standard Analyzer ",
      "top": 91.0,
      "left": 518.0,
      "width": 132.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0009",
      "page": 106,
      "ordinal": 9,
      "text": "标准分析器是默认分",
      "top": 91.0,
      "left": 650.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0010",
      "page": 106,
      "ordinal": 10,
      "text": "词器，如果未指定，则使⽤该分词器。",
      "top": 114.0,
      "left": 112.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0012",
      "page": 106,
      "ordinal": 12,
      "text": "它基于",
      "top": 114.0,
      "left": 364.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0013",
      "page": 106,
      "ordinal": 13,
      "text": " Unicode ",
      "top": 114.0,
      "left": 408.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0014",
      "page": 106,
      "ordinal": 14,
      "text": "⽂本分割算法，",
      "top": 114.0,
      "left": 472.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0016",
      "page": 106,
      "ordinal": 16,
      "text": "适⽤于⼤多数语⾔。",
      "top": 114.0,
      "left": 578.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0018",
      "page": 106,
      "ordinal": 18,
      "text": "Whitespace Analyzer ",
      "top": 137.0,
      "left": 112.0,
      "width": 145.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0019",
      "page": 106,
      "ordinal": 19,
      "text": "基于空格字符切词。",
      "top": 137.0,
      "left": 257.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0020",
      "page": 106,
      "ordinal": 20,
      "text": " Stop Analyzer ",
      "top": 137.0,
      "left": 388.0,
      "width": 101.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0021",
      "page": 106,
      "ordinal": 21,
      "text": "在",
      "top": 137.0,
      "left": 489.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0022",
      "page": 106,
      "ordinal": 22,
      "text": " simple Analyzer ",
      "top": 137.0,
      "left": 504.0,
      "width": 115.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0023",
      "page": 106,
      "ordinal": 23,
      "text": "的基础上，移除停⽤词。",
      "top": 137.0,
      "left": 619.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0025",
      "page": 106,
      "ordinal": 25,
      "text": "Keyword Analyzer ",
      "top": 161.0,
      "left": 112.0,
      "width": 126.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0026",
      "page": 106,
      "ordinal": 26,
      "text": "不切词，将输⼊的整个串⼀起返回。",
      "top": 161.0,
      "left": 237.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0028",
      "page": 106,
      "ordinal": 28,
      "text": "⾃定义分词器的模板",
      "top": 161.0,
      "left": 475.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0030",
      "page": 106,
      "ordinal": 30,
      "text": "⾃定义分词器的在",
      "top": 161.0,
      "left": 611.0,
      "width": 117.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0032",
      "page": 106,
      "ordinal": 32,
      "text": "Mapping ",
      "top": 184.0,
      "left": 112.0,
      "width": 64.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0033",
      "page": 106,
      "ordinal": 33,
      "text": "的",
      "top": 184.0,
      "left": 175.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0034",
      "page": 106,
      "ordinal": 34,
      "text": " Setting ",
      "top": 184.0,
      "left": 190.0,
      "width": 55.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0035",
      "page": 106,
      "ordinal": 35,
      "text": "部分设置",
      "top": 184.0,
      "left": 245.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b001"
      }
    },
    {
      "id": "p106-t0038",
      "page": 106,
      "ordinal": 38,
      "text": "其中：",
      "top": 596.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0039",
      "page": 106,
      "ordinal": 39,
      "text": " “char_filter”:{},——",
      "top": 596.0,
      "left": 159.0,
      "width": 130.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0040",
      "page": 106,
      "ordinal": 40,
      "text": "对应字符过滤部分；",
      "top": 596.0,
      "left": 290.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0041",
      "page": 106,
      "ordinal": 41,
      "text": " “tokenizer”:{},——",
      "top": 596.0,
      "left": 421.0,
      "width": 125.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0042",
      "page": 106,
      "ordinal": 42,
      "text": "对应⽂本切分为分词部分；",
      "top": 596.0,
      "left": 547.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0043",
      "page": 106,
      "ordinal": 43,
      "text": " “filter”:",
      "top": 596.0,
      "left": 722.0,
      "width": 50.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0044",
      "page": 106,
      "ordinal": 44,
      "text": "{},——",
      "top": 620.0,
      "left": 112.0,
      "width": 44.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0045",
      "page": 106,
      "ordinal": 45,
      "text": "对应分词后再过滤部分；",
      "top": 620.0,
      "left": 156.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0046",
      "page": 106,
      "ordinal": 46,
      "text": " “analyzer”:{}——",
      "top": 620.0,
      "left": 317.0,
      "width": 116.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0047",
      "page": 106,
      "ordinal": 47,
      "text": "对应分词器组成部分，其中会包含：",
      "top": 620.0,
      "left": 432.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0048",
      "page": 106,
      "ordinal": 48,
      "text": "1. 2. 3  ",
      "top": 620.0,
      "left": 666.0,
      "width": 48.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b003"
      }
    },
    {
      "id": "p106-t0049",
      "page": 106,
      "ordinal": 49,
      "text": "解释⼀下",
      "top": 654.0,
      "left": 112.0,
      "width": 102.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02"
      }
    },
    {
      "id": "p106-t0050",
      "page": 106,
      "ordinal": 50,
      "text": " Elasticsearch Node",
      "top": 654.0,
      "left": 214.0,
      "width": 249.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02"
      }
    },
    {
      "id": "p106-t0051",
      "page": 106,
      "ordinal": 51,
      "text": "？",
      "top": 654.0,
      "left": 463.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02"
      }
    },
    {
      "id": "p106-t0055",
      "page": 106,
      "ordinal": 55,
      "text": "节点是",
      "top": 705.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0056",
      "page": 106,
      "ordinal": 56,
      "text": " Elasticsearch ",
      "top": 705.0,
      "left": 159.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0057",
      "page": 106,
      "ordinal": 57,
      "text": "的实例。实际业务中，我们会说：",
      "top": 705.0,
      "left": 255.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0058",
      "page": 106,
      "ordinal": 58,
      "text": "ES ",
      "top": 705.0,
      "left": 474.0,
      "width": 20.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0059",
      "page": 106,
      "ordinal": 59,
      "text": "集群包含",
      "top": 705.0,
      "left": 494.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0060",
      "page": 106,
      "ordinal": 60,
      "text": " 3 ",
      "top": 705.0,
      "left": 553.0,
      "width": 16.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0061",
      "page": 106,
      "ordinal": 61,
      "text": "个节",
      "top": 705.0,
      "left": 569.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0063",
      "page": 106,
      "ordinal": 63,
      "text": "点、",
      "top": 705.0,
      "left": 602.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0064",
      "page": 106,
      "ordinal": 64,
      "text": "7 ",
      "top": 705.0,
      "left": 631.0,
      "width": 12.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0065",
      "page": 106,
      "ordinal": 65,
      "text": "个节点。",
      "top": 705.0,
      "left": 643.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0067",
      "page": 106,
      "ordinal": 67,
      "text": "这⾥节点实",
      "top": 705.0,
      "left": 706.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0068",
      "page": 106,
      "ordinal": 68,
      "text": "际就是：⼀个独⽴的",
      "top": 729.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0069",
      "page": 106,
      "ordinal": 69,
      "text": " Elasticsearch ",
      "top": 729.0,
      "left": 243.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0070",
      "page": 106,
      "ordinal": 70,
      "text": "进程，⼀般将⼀个节点部署到",
      "top": 729.0,
      "left": 339.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0072",
      "page": 106,
      "ordinal": 72,
      "text": "⼀台独⽴的服务器或者虚拟机、容",
      "top": 729.0,
      "left": 533.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0074",
      "page": 106,
      "ordinal": 74,
      "text": "器",
      "top": 729.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0075",
      "page": 106,
      "ordinal": 75,
      "text": "中。",
      "top": 751.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0077",
      "page": 106,
      "ordinal": 77,
      "text": "不同节点根据⻆⾊不同，可以划分为：",
      "top": 751.0,
      "left": 145.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0079",
      "page": 106,
      "ordinal": 79,
      "text": "主节点",
      "top": 751.0,
      "left": 397.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0081",
      "page": 106,
      "ordinal": 81,
      "text": "帮助配置和管理在整个集群中添加和删除节点。",
      "top": 751.0,
      "left": 445.0,
      "width": 307.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0083",
      "page": 106,
      "ordinal": 83,
      "text": "数",
      "top": 751.0,
      "left": 756.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0084",
      "page": 106,
      "ordinal": 84,
      "text": "据节点",
      "top": 775.0,
      "left": 112.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0086",
      "page": 106,
      "ordinal": 86,
      "text": "存储数据并执⾏诸如",
      "top": 775.0,
      "left": 159.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0087",
      "page": 106,
      "ordinal": 87,
      "text": " CRUD",
      "top": 775.0,
      "left": 291.0,
      "width": 43.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0088",
      "page": 106,
      "ordinal": 88,
      "text": "（创建",
      "top": 775.0,
      "left": 334.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0089",
      "page": 106,
      "ordinal": 89,
      "text": "/",
      "top": 775.0,
      "left": 378.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0090",
      "page": 106,
      "ordinal": 90,
      "text": "读取",
      "top": 775.0,
      "left": 384.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0091",
      "page": 106,
      "ordinal": 91,
      "text": "/",
      "top": 775.0,
      "left": 413.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0092",
      "page": 106,
      "ordinal": 92,
      "text": "更新",
      "top": 775.0,
      "left": 418.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0093",
      "page": 106,
      "ordinal": 93,
      "text": "/",
      "top": 775.0,
      "left": 448.0,
      "width": 5.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0094",
      "page": 106,
      "ordinal": 94,
      "text": "删除）操作，对数据进⾏搜索和",
      "top": 775.0,
      "left": 453.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0096",
      "page": 106,
      "ordinal": 96,
      "text": "聚合的操作。",
      "top": 775.0,
      "left": 661.0,
      "width": 88.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0098",
      "page": 106,
      "ordinal": 98,
      "text": "客户",
      "top": 775.0,
      "left": 753.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0099",
      "page": 106,
      "ordinal": 99,
      "text": "端节点（或者说：协调节点）",
      "top": 798.0,
      "left": 112.0,
      "width": 190.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0101",
      "page": 106,
      "ordinal": 101,
      "text": "将集群请求转发到主节点，将与数据相",
      "top": 798.0,
      "left": 306.0,
      "width": 249.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0103",
      "page": 106,
      "ordinal": 103,
      "text": "关的请求转发到数据节点。",
      "top": 798.0,
      "left": 558.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0105",
      "page": 106,
      "ordinal": 105,
      "text": "摄取节",
      "top": 798.0,
      "left": 737.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0106",
      "page": 106,
      "ordinal": 106,
      "text": "点",
      "top": 822.0,
      "left": 112.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0108",
      "page": 106,
      "ordinal": 108,
      "text": "⽤于在索引之前对⽂档进⾏预处理",
      "top": 822.0,
      "left": 130.0,
      "width": 219.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h02",
        "heading_id": "p106-h02",
        "block_id": "q-p106-h02-b001"
      }
    },
    {
      "id": "p106-t0110",
      "page": 106,
      "ordinal": 110,
      "text": "Elasticsearch ",
      "top": 857.0,
      "left": 112.0,
      "width": 174.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03"
      }
    },
    {
      "id": "p106-t0111",
      "page": 106,
      "ordinal": 111,
      "text": "在部署时，对",
      "top": 857.0,
      "left": 286.0,
      "width": 154.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03"
      }
    },
    {
      "id": "p106-t0112",
      "page": 106,
      "ordinal": 112,
      "text": " Linux ",
      "top": 857.0,
      "left": 439.0,
      "width": 84.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03"
      }
    },
    {
      "id": "p106-t0113",
      "page": 106,
      "ordinal": 113,
      "text": "的设置有哪些优化⽅法",
      "top": 857.0,
      "left": 523.0,
      "width": 256.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03"
      }
    },
    {
      "id": "p106-t0117",
      "page": 106,
      "ordinal": 117,
      "text": "关闭缓存",
      "top": 906.0,
      "left": 116.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0118",
      "page": 106,
      "ordinal": 118,
      "text": " swap; ",
      "top": 906.0,
      "left": 174.0,
      "width": 47.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0119",
      "page": 106,
      "ordinal": 119,
      "text": "堆内存设置为：",
      "top": 906.0,
      "left": 221.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0120",
      "page": 106,
      "ordinal": 120,
      "text": "Min",
      "top": 906.0,
      "left": 323.0,
      "width": 26.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0121",
      "page": 106,
      "ordinal": 121,
      "text": "（节点内存",
      "top": 906.0,
      "left": 349.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0122",
      "page": 106,
      "ordinal": 122,
      "text": "/2, 32GB",
      "top": 906.0,
      "left": 422.0,
      "width": 58.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0123",
      "page": 106,
      "ordinal": 123,
      "text": "）",
      "top": 906.0,
      "left": 480.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0124",
      "page": 106,
      "ordinal": 124,
      "text": "; ",
      "top": 906.0,
      "left": 495.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0125",
      "page": 106,
      "ordinal": 125,
      "text": "设置最⼤⽂件句柄数；",
      "top": 906.0,
      "left": 503.0,
      "width": 146.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0127",
      "page": 106,
      "ordinal": 127,
      "text": "线程池",
      "top": 906.0,
      "left": 653.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0128",
      "page": 106,
      "ordinal": 128,
      "text": "+",
      "top": 906.0,
      "left": 697.0,
      "width": 8.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0129",
      "page": 106,
      "ordinal": 129,
      "text": "队列⼤⼩根",
      "top": 906.0,
      "left": 705.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0130",
      "page": 106,
      "ordinal": 130,
      "text": "据业务需要做调整；",
      "top": 930.0,
      "left": 112.0,
      "width": 132.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0132",
      "page": 106,
      "ordinal": 132,
      "text": "磁盘存储",
      "top": 930.0,
      "left": 247.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0133",
      "page": 106,
      "ordinal": 133,
      "text": " raid ",
      "top": 930.0,
      "left": 306.0,
      "width": 34.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0134",
      "page": 106,
      "ordinal": 134,
      "text": "⽅式",
      "top": 930.0,
      "left": 340.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0135",
      "page": 106,
      "ordinal": 135,
      "text": "——",
      "top": 930.0,
      "left": 369.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0136",
      "page": 106,
      "ordinal": 136,
      "text": "存储有条件使⽤",
      "top": 930.0,
      "left": 399.0,
      "width": 102.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0137",
      "page": 106,
      "ordinal": 137,
      "text": " RAID10",
      "top": 930.0,
      "left": 501.0,
      "width": 54.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0138",
      "page": 106,
      "ordinal": 138,
      "text": "，增加单节点性能以及避",
      "top": 930.0,
      "left": 554.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0140",
      "page": 106,
      "ordinal": 140,
      "text": "免单节点",
      "top": 930.0,
      "left": 719.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0141",
      "page": 106,
      "ordinal": 141,
      "text": "存储故障",
      "top": 954.0,
      "left": 112.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h03",
        "heading_id": "p106-h03",
        "block_id": "q-p106-h03-b001"
      }
    },
    {
      "id": "p106-t0143",
      "page": 106,
      "ordinal": 143,
      "text": "请解释有关",
      "top": 988.0,
      "left": 112.0,
      "width": 128.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04"
      }
    },
    {
      "id": "p106-t0144",
      "page": 106,
      "ordinal": 144,
      "text": " Elasticsearch ",
      "top": 988.0,
      "left": 240.0,
      "width": 181.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04"
      }
    },
    {
      "id": "p106-t0145",
      "page": 106,
      "ordinal": 145,
      "text": "的",
      "top": 988.0,
      "left": 420.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04"
      }
    },
    {
      "id": "p106-t0146",
      "page": 106,
      "ordinal": 146,
      "text": " NRT  ",
      "top": 988.0,
      "left": 446.0,
      "width": 72.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04"
      }
    },
    {
      "id": "p106-t0149",
      "page": 106,
      "ordinal": 149,
      "text": "从⽂档索引（写⼊）到可搜索到之间的延迟默认⼀秒钟，因此",
      "top": 1039.0,
      "left": 116.0,
      "width": 395.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0150",
      "page": 106,
      "ordinal": 150,
      "text": " Elasticsearch ",
      "top": 1039.0,
      "left": 510.0,
      "width": 96.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0151",
      "page": 106,
      "ordinal": 151,
      "text": "是",
      "top": 1039.0,
      "left": 606.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0153",
      "page": 106,
      "ordinal": 153,
      "text": "近实时（",
      "top": 1039.0,
      "left": 624.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0154",
      "page": 106,
      "ordinal": 154,
      "text": "NRT",
      "top": 1039.0,
      "left": 683.0,
      "width": 28.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0155",
      "page": 106,
      "ordinal": 155,
      "text": "）搜索平",
      "top": 1039.0,
      "left": 711.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0156",
      "page": 106,
      "ordinal": 156,
      "text": "台。",
      "top": 1062.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0158",
      "page": 106,
      "ordinal": 158,
      "text": "也就是说：⽂档写⼊，最快⼀秒钟被索引到，不能再快了。",
      "top": 1062.0,
      "left": 145.0,
      "width": 380.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0160",
      "page": 106,
      "ordinal": 160,
      "text": "写⼊调优的时候，我们通常会动态调",
      "top": 1062.0,
      "left": 529.0,
      "width": 234.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0161",
      "page": 106,
      "ordinal": 161,
      "text": "整：",
      "top": 1085.0,
      "left": 112.0,
      "width": 29.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0162",
      "page": 106,
      "ordinal": 162,
      "text": " refresh_interval = 30s ",
      "top": 1085.0,
      "left": 141.0,
      "width": 154.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0163",
      "page": 106,
      "ordinal": 163,
      "text": "或者更达",
      "top": 1085.0,
      "left": 295.0,
      "width": 59.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0165",
      "page": 106,
      "ordinal": 165,
      "text": "值，以使得写⼊数据更晚⼀点时间被搜索到",
      "top": 1085.0,
      "left": 358.0,
      "width": 278.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h04",
        "heading_id": "p106-h04",
        "block_id": "q-p106-h04-b001"
      }
    },
    {
      "id": "p106-t0167",
      "page": 106,
      "ordinal": 167,
      "text": "elasticsearch ",
      "top": 1120.0,
      "left": 112.0,
      "width": 175.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05"
      }
    },
    {
      "id": "p106-t0168",
      "page": 106,
      "ordinal": 168,
      "text": "的",
      "top": 1120.0,
      "left": 286.0,
      "width": 26.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05"
      }
    },
    {
      "id": "p106-t0169",
      "page": 106,
      "ordinal": 169,
      "text": " document ",
      "top": 1120.0,
      "left": 312.0,
      "width": 144.0,
      "height": 34.0,
      "font": "5",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05"
      }
    },
    {
      "id": "p106-t0170",
      "page": 106,
      "ordinal": 170,
      "text": "设计",
      "top": 1120.0,
      "left": 456.0,
      "width": 51.0,
      "height": 34.0,
      "font": "4",
      "size": 26,
      "links": [],
      "assignment": {
        "kind": "question",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05"
      }
    },
    {
      "id": "p106-t0174",
      "page": 106,
      "ordinal": 174,
      "text": "在使⽤",
      "top": 1171.0,
      "left": 116.0,
      "width": 44.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0175",
      "page": 106,
      "ordinal": 175,
      "text": " es ",
      "top": 1171.0,
      "left": 159.0,
      "width": 23.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0176",
      "page": 106,
      "ordinal": 176,
      "text": "时",
      "top": 1171.0,
      "left": 182.0,
      "width": 15.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0178",
      "page": 106,
      "ordinal": 178,
      "text": "避免使⽤复杂的查询语句（",
      "top": 1171.0,
      "left": 201.0,
      "width": 176.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0179",
      "page": 106,
      "ordinal": 179,
      "text": "Join ",
      "top": 1171.0,
      "left": 376.0,
      "width": 29.0,
      "height": 20.0,
      "font": "7",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0180",
      "page": 106,
      "ordinal": 180,
      "text": "、聚合），就是在建⽴索引时，",
      "top": 1171.0,
      "left": 405.0,
      "width": 205.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0182",
      "page": 106,
      "ordinal": 182,
      "text": "就根据查询语句建⽴好对",
      "top": 1171.0,
      "left": 614.0,
      "width": 161.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0183",
      "page": 106,
      "ordinal": 183,
      "text": "应的元数据",
      "top": 1194.0,
      "left": 112.0,
      "width": 73.0,
      "height": 19.0,
      "font": "8",
      "size": 15,
      "links": [],
      "assignment": {
        "kind": "prose",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h05",
        "heading_id": "p106-h05",
        "block_id": "q-p106-h05-b001"
      }
    },
    {
      "id": "p106-t0185",
      "page": 106,
      "ordinal": 185,
      "text": "PUT my\\_custom\\_index",
      "top": 236.0,
      "left": 126.0,
      "width": 167.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0186",
      "page": 106,
      "ordinal": 186,
      "text": "{",
      "top": 258.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0187",
      "page": 106,
      "ordinal": 187,
      "text": " \"settings\":{",
      "top": 278.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0188",
      "page": 106,
      "ordinal": 188,
      "text": " \"analysis\":{",
      "top": 299.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0189",
      "page": 106,
      "ordinal": 189,
      "text": " \"char\\_filter\":{",
      "top": 321.0,
      "left": 126.0,
      "width": 135.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0190",
      "page": 106,
      "ordinal": 190,
      "text": " },",
      "top": 341.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0191",
      "page": 106,
      "ordinal": 191,
      "text": " \"tokenizer\":{",
      "top": 362.0,
      "left": 126.0,
      "width": 111.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0192",
      "page": 106,
      "ordinal": 192,
      "text": " },",
      "top": 384.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0193",
      "page": 106,
      "ordinal": 193,
      "text": " \"filter\":{",
      "top": 405.0,
      "left": 126.0,
      "width": 87.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0194",
      "page": 106,
      "ordinal": 194,
      "text": " },",
      "top": 425.0,
      "left": 126.0,
      "width": 24.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0195",
      "page": 106,
      "ordinal": 195,
      "text": " \"analyzer\":{",
      "top": 447.0,
      "left": 126.0,
      "width": 103.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0196",
      "page": 106,
      "ordinal": 196,
      "text": " }",
      "top": 468.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0197",
      "page": 106,
      "ordinal": 197,
      "text": " }",
      "top": 488.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0198",
      "page": 106,
      "ordinal": 198,
      "text": " }",
      "top": 510.0,
      "left": 126.0,
      "width": 16.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p106-t0199",
      "page": 106,
      "ordinal": 199,
      "text": "}",
      "top": 531.0,
      "left": 126.0,
      "width": 8.0,
      "height": 13.0,
      "font": "9",
      "size": 13,
      "links": [],
      "assignment": {
        "kind": "code",
        "target": "/go-bank/14-mongodb-elasticsearch#q-p106-h01",
        "heading_id": "p106-h01",
        "block_id": "q-p106-h01-b002"
      }
    },
    {
      "id": "p107-t0001",
      "page": 107,
      "ordinal": 1,
      "text": "关注我们",
      "top": 39.0,
      "left": 112.0,
      "width": 132.0,
      "height": 43.0,
      "font": "0",
      "size": 33,
      "links": [],
      "excluded": "advertisement-page-107"
    },
    {
      "id": "p107-t0003",
      "page": 107,
      "ordinal": 3,
      "text": "https://it.0voice.com/",
      "top": 99.0,
      "left": 112.0,
      "width": 145.0,
      "height": 20.0,
      "font": "2",
      "size": 15,
      "links": [
        "https://it.0voice.com/"
      ],
      "excluded": "advertisement-page-107"
    }
  ],
  "exclusions": {
    "policy": "Only follow-us advertising and physical page 107; never numeric lists or technical text.",
    "span_ids": [
      "p001-t0001",
      "p001-t0003",
      "p107-t0001",
      "p107-t0003"
    ]
  },
  "limitations": [
    "Images retain their original PDF resolution; no OCR transcript of diagrams.",
    "Original historical claims and intentionally faulty code are retained, not silently corrected.",
    "Page 2 non-empty interface explanation references a code sample absent from the supplied source."
  ],
  "manifest_copies": [
    "handbook/go-bank/source-map.json",
    "handbook/public/go-bank/source-map.json"
  ],
  "generated_files": {
    "handbook/go-bank/01-go-basics.md": {
      "sha256": "92507711dffb8964aa957c679c5577986935423b774908fb7b25cde6e4ba5cdf",
      "bytes": 13801
    },
    "handbook/go-bank/02-go-concurrency.md": {
      "sha256": "883a65f63d61d0ae6a4bbc79571ede81ac7d7d0a6b5d78596dbfe3ff23cef724",
      "bytes": 31190
    },
    "handbook/go-bank/03-go-runtime.md": {
      "sha256": "4c4bd43c120f87193185f6d373ff56f20d0beeeb5bfed320a6bffa7ec5cf1171",
      "bytes": 27053
    },
    "handbook/go-bank/04-go-coding.md": {
      "sha256": "fbdcd9d4dea2bb71aface5a5c5870cc5042f2e8089c4a08d84abdd4142b95cab",
      "bytes": 17574
    },
    "handbook/go-bank/05-go-frameworks.md": {
      "sha256": "dcfdfc2cb99e0fb5935271d50c7a2352e70ffee0a45d5e7572f3240d1d1383c8",
      "bytes": 770
    },
    "handbook/go-bank/06-microservices.md": {
      "sha256": "4bf17318431045b83afeadee3cc8270eeb85e2d8a67a0df611570cd04912f0f3",
      "bytes": 8957
    },
    "handbook/go-bank/07-docker.md": {
      "sha256": "36609b2f25e13860ec43b91ec3b82c5331f5be06800c9d71af738beae9d6c327",
      "bytes": 22061
    },
    "handbook/go-bank/08-kubernetes.md": {
      "sha256": "66da0bfb08224addac7cbed59fa68cc5bb07ca6fa477404a31792f1c41a7a5aa",
      "bytes": 53477
    },
    "handbook/go-bank/09-redis-cache.md": {
      "sha256": "0b4fe543ca10d77bd1ae4cf82089bd950cac812bd4d4864bad6f470d9c933f2a",
      "bytes": 42055
    },
    "handbook/go-bank/10-mysql.md": {
      "sha256": "0014c36e10b17ac9d93e50f0014169a5dfd0b39f6a1a064f4a801773b13c2540",
      "bytes": 24445
    },
    "handbook/go-bank/11-linux-network-os.md": {
      "sha256": "70f3e1c360f9d79242605c302f61d1a0a57a93f7ec51ea23664f08d6bc87ef07",
      "bytes": 39707
    },
    "handbook/go-bank/12-kafka.md": {
      "sha256": "c69c55090b202874bf2c0a81b872d62b4d064f1a5a174ab32f14c4fdb930e281",
      "bytes": 13768
    },
    "handbook/go-bank/13-distributed.md": {
      "sha256": "ccb64e3b0ea45259874b9cb7ef66303dd7eda9ab904faaf01037b45cf87bf928",
      "bytes": 15786
    },
    "handbook/go-bank/14-mongodb-elasticsearch.md": {
      "sha256": "0a60f6a2af67a590f56fcdfe7f41593a302567200d33b22bf302fb5ec77dd51b",
      "bytes": 8696
    },
    "handbook/public/go-bank/pdf-p006-01.png": {
      "sha256": "6ea12e1be2c78114accc0e22a3b9d0b12cd3434ec4ea5132e26b0a50f33e1d66",
      "bytes": 44805
    },
    "handbook/public/go-bank/pdf-p024-01.png": {
      "sha256": "3a50421cada99b7caf7a36e674cccf67673e599bba1f0bcd2210073d2f4351d4",
      "bytes": 40269
    },
    "handbook/public/go-bank/pdf-p025-01.png": {
      "sha256": "68cb4b925f7e1ea14d1c43b2d006713b8145a03494b9486179c156146f7f2ff1",
      "bytes": 97323
    },
    "handbook/public/go-bank/pdf-p025-02.png": {
      "sha256": "9aa4226ea64b4e0e061b05274e8859b0929af7625aa15dd5ef083b0a35b9eb96",
      "bytes": 40948
    },
    "handbook/public/go-bank/pdf-p026-01.png": {
      "sha256": "3f338a755557c1736f52b23edad3a9351104cd694c830dd3aa2f7c2128b810a4",
      "bytes": 72043
    },
    "handbook/public/go-bank/pdf-p027-01.png": {
      "sha256": "52bc5a6214b8eb6ac1bbf5d61893c3f98a8aa10d2529466def6247ac06ce85eb",
      "bytes": 97465
    },
    "handbook/public/go-bank/pdf-p027-02.png": {
      "sha256": "31fb988cb0783ce8238ee5af59e8118dc5adde7c2033dcdd585160058a67ea3d",
      "bytes": 74944
    },
    "handbook/public/go-bank/pdf-p034-01.png": {
      "sha256": "72a80e3e366318f995f7c4d1ca97f1a4a624e92f086ce80d3a4789fa480f8255",
      "bytes": 355132
    },
    "handbook/public/go-bank/pdf-p036-01.png": {
      "sha256": "dee2f443e964c5bfb3294199643d5285e024f2ac64518605e0ff4d834dcbcc6f",
      "bytes": 75252
    },
    "handbook/public/go-bank/pdf-p037-01.png": {
      "sha256": "dc10347e26c69bc9b6a3324b4e0a0016c2cdfba088881fdf412e0c76187bfc92",
      "bytes": 56049
    },
    "handbook/public/go-bank/pdf-p037-02.png": {
      "sha256": "8ce2d08bf1a203a895f2ef900379f0e460ff7cca26792e2ae763129140eb9643",
      "bytes": 49436
    },
    "handbook/public/go-bank/pdf-p040-01.png": {
      "sha256": "6ac4fa1b4dd8f2a8da6e55d3fcb640126d7030e8df304978d930d6f3115bf02b",
      "bytes": 122738
    },
    "handbook/public/go-bank/pdf-p041-01.png": {
      "sha256": "c856e50075bc3bb15f412623f70148f12dab69d83b08a6c0759ef15695f619d1",
      "bytes": 232644
    },
    "handbook/public/go-bank/pdf-p042-01.png": {
      "sha256": "cbd852a44791a9e510113bb9f7a826a311d87b5465ad1e93bf43258878283aa2",
      "bytes": 289547
    },
    "handbook/public/go-bank/pdf-p043-01.png": {
      "sha256": "0a48c0fea496194a7d915f004b36ec06b87881887062dd006793e3fe29526d83",
      "bytes": 414442
    },
    "handbook/public/go-bank/pdf-p044-01.png": {
      "sha256": "6da16b2bb2e52627726eeaf39bc2f632c3edef245d9b98d89ff713bba463fefd",
      "bytes": 179752
    },
    "handbook/public/go-bank/pdf-p044-02.png": {
      "sha256": "88bcbc2b8b7721671c88d24c28a3c4e7dba9902042b613a12f8758d19a918366",
      "bytes": 138984
    },
    "handbook/public/go-bank/pdf-p045-01.png": {
      "sha256": "1b9dac597f0feb2d72f77707a0d445721ea7a846018bcc6e74ac2c6f7fd139ef",
      "bytes": 93496
    },
    "handbook/public/go-bank/pdf-p045-02.png": {
      "sha256": "96bf39d1b6339ce5efb25f847af1f5767179e283ecbaa6a2c0f3257ad4d04f1b",
      "bytes": 202871
    },
    "handbook/public/go-bank/pdf-p050-01.png": {
      "sha256": "eb8c47ec1740ca6db65fa03fd585eba010068b8585fc341f04f11a7ef2affcb7",
      "bytes": 143069
    },
    "handbook/public/go-bank/pdf-p050-02.png": {
      "sha256": "de991eef25d79a61753501b7faf9862aab877f89371c4807b033f712958201cf",
      "bytes": 189523
    },
    "handbook/public/go-bank/pdf-p051-01.png": {
      "sha256": "bd30e36c84285efbb300f76f5d8899f8f34b9054556a5126a335bdc9444e9ac3",
      "bytes": 52210
    },
    "handbook/public/go-bank/pdf-p052-01.png": {
      "sha256": "a118db644ce3ad6690cd55a87cf12820b1885e78f1d9e10c745aaf9de332be76",
      "bytes": 116708
    },
    "handbook/public/go-bank/pdf-p083-01.png": {
      "sha256": "93d210ec61a1980909f8681843031c17f39bb71695c5a22e12203f07dad6444a",
      "bytes": 136867
    },
    "handbook/public/go-bank/pdf-p083-02.png": {
      "sha256": "150acfbfff0fa3e00125077e09f97592f809c7e764d579210b858728e3e16ba0",
      "bytes": 127776
    },
    "handbook/public/go-bank/pdf-p089-01.png": {
      "sha256": "e98e21270e8dec004e34d693ef50e2389c2a90789c7977311d95f23aa0f8d107",
      "bytes": 123207
    },
    "handbook/public/go-bank/pdf-p090-01.png": {
      "sha256": "dcf0089dbd9ea28dfdc0bfacf703f9ae19cd7aa2290eb57b50d6d0c140ea54ec",
      "bytes": 148380
    },
    "handbook/public/go-bank/pdf-p091-01.png": {
      "sha256": "5568b816208e4bac3d0bb12c951bf4c445dfd2ddd1b9f0810c4ce957aa8eeb07",
      "bytes": 149775
    },
    "handbook/public/go-bank/pdf-p105-01.png": {
      "sha256": "5ee411c14bec1990e2f45d253cdb57ac934e5fb62f984c7210c5818ad39d6579",
      "bytes": 32620
    },
    "handbook/go-bank/index.md": {
      "sha256": "f56075c44b6a2033e4f7be9eeaf726b3bad8bfad5f54de021e6620f2674f1a02",
      "bytes": 40254
    }
  }
}
