{"id":406,"date":"2021-05-12T14:39:42","date_gmt":"2021-05-12T06:39:42","guid":{"rendered":"https:\/\/22pig.com\/?p=406"},"modified":"2021-05-12T14:39:42","modified_gmt":"2021-05-12T06:39:42","slug":"kafka-%e5%ae%89%e8%a3%85%e5%85%a5%e9%97%a8","status":"publish","type":"post","link":"http:\/\/22pig.com\/?p=406","title":{"rendered":"kafka \u5b89\u88c5\u5165\u95e8"},"content":{"rendered":"<p>kafka\u6b63\u5e38\u8fd0\u884c\uff0c\u5fc5\u987b\u914d\u7f6ezookeeper\uff0c\u5426\u5219\u65e0\u8bba\u662fkafka\u96c6\u7fa4\u8fd8\u662f\u5ba2\u6237\u7aef\u7684\u751f\u5b58\u8005\u548c\u6d88\u8d39\u8005\u90fd\u65e0\u6cd5\u6b63\u5e38\u7684\u5de5\u4f5c\u7684\uff1b\u6240\u4ee5\u9700\u8981\u914d\u7f6e\u542f\u52a8zookeeper\u670d\u52a1\u3002<\/p>\n<p>\uff081\uff09zookeeper\u9700\u8981java\u73af\u5883<\/p>\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div><\/div>\n<\/div>\n<p><code class=\"bash comments\"># yum -y install java-1.8.0<\/code><\/p>\n<p>\u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55<\/p>\n<pre class=\"prism-token token language-js\">tar <span class=\"token operator\">-<\/span>xzf kafka_2.13-2.8.0<span class=\"token punctuation\">.<\/span>tgz <span class=\"token operator\">-<\/span>C <span class=\"token regex\">\/opt\/<\/span><\/pre>\n<p>\uff082\uff09\u8fd9\u91cckafka\u4e0b\u8f7d\u5305\u5df2\u7ecf\u5305\u62eczookeeper\u670d\u52a1\uff0c\u6240\u4ee5\u53ea\u9700\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff0c\u542f\u52a8\u5373\u53ef\u3002<\/p>\n<p>\u5982\u679c\u9700\u8981\u4e0b\u8f7d\u6307\u5b9azookeeper\u7248\u672c\uff1b\u53ef\u4ee5\u5355\u72ec\u53bbzookeeper\u5b98\u7f51<a href=\"http:\/\/mirrors.shu.edu.cn\/apache\/zookeeper\/\">http:\/\/mirrors.shu.edu.cn\/apache\/zookeeper\/<\/a>\u4e0b\u8f7d\u6307\u5b9a\u7248\u672c\u3002<\/p>\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div><\/div>\n<\/div>\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">[root@~]<\/code><code class=\"bash comments\"># cd \/data\/kafka_2.13-2.8.0\/<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">[root@ kafka_2.11-2.1.0]<\/code><code class=\"bash comments\"># grep \"^[^#]\" config\/zookeeper.properties<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">dataDir=<\/code><code class=\"bash plain\">\/tmp\/zookeeper<\/code>\u00a0\u00a0\u00a0<code class=\"bash comments\">#\u6570\u636e\u5b58\u50a8\u76ee\u5f55<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">clientPort=2181\u00a0\u00a0\u00a0<\/code><code class=\"bash comments\">#zookeeper\u7aef\u53e3<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">maxClientCnxns=0<\/code><\/div>\n<p>\u6ce8\uff1a\u53ef\u81ea\u884c\u6dfb\u52a0\u4fee\u6539zookeeper\u914d\u7f6e<\/p>\n<h3><strong>3.3\u00a0\u914d\u7f6ekafka<\/strong><\/h3>\n<p>\uff081\uff09\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/p>\n<div class=\"cnblogs_Highlighter sh-gutter\">\n<div>\n<div id=\"highlighter_58958\" class=\"syntaxhighlighter bash\">\n<div class=\"line number1 index0 alt2\"><code class=\"bash plain\">[root@ kafka_2.13-2.8.0]<\/code><code class=\"bash comments\"># grep \"^[^#]\" config\/server.properties<\/code><\/div>\n<div class=\"line number2 index1 alt1\"><code class=\"bash plain\">broker.<\/code><code class=\"bash functions\">id<\/code><code class=\"bash plain\">=0<\/code><\/div>\n<div class=\"line number3 index2 alt2\"><code class=\"bash plain\">listeners=PLAINTEXT:<\/code><code class=\"bash plain\">\/\/localhost<\/code><code class=\"bash plain\">:9092<\/code><\/div>\n<div class=\"line number4 index3 alt1\"><code class=\"bash plain\">num.network.threads=3<\/code><\/div>\n<div class=\"line number5 index4 alt2\"><code class=\"bash plain\">num.io.threads=8<\/code><\/div>\n<div class=\"line number6 index5 alt1\"><code class=\"bash plain\">socket.send.buffer.bytes=102400<\/code><\/div>\n<div class=\"line number7 index6 alt2\"><code class=\"bash plain\">socket.receive.buffer.bytes=102400<\/code><\/div>\n<div class=\"line number8 index7 alt1\"><code class=\"bash plain\">socket.request.max.bytes=104857600<\/code><\/div>\n<div class=\"line number9 index8 alt2\"><code class=\"bash plain\">log.<\/code><code class=\"bash functions\">dirs<\/code><code class=\"bash plain\">=<\/code><code class=\"bash plain\">\/tmp\/kafka-logs<\/code><\/div>\n<div class=\"line number10 index9 alt1\"><code class=\"bash plain\">num.partitions=1<\/code><\/div>\n<div class=\"line number11 index10 alt2\"><code class=\"bash plain\">num.recovery.threads.per.data.<\/code><code class=\"bash functions\">dir<\/code><code class=\"bash plain\">=1<\/code><\/div>\n<div class=\"line number12 index11 alt1\"><code class=\"bash plain\">offsets.topic.replication.factor=1<\/code><\/div>\n<div class=\"line number13 index12 alt2\"><code class=\"bash plain\">transaction.state.log.replication.factor=1<\/code><\/div>\n<div class=\"line number14 index13 alt1\"><code class=\"bash plain\">transaction.state.log.min.isr=1<\/code><\/div>\n<div class=\"line number15 index14 alt2\"><code class=\"bash plain\">log.retention.hours=168<\/code><\/div>\n<div class=\"line number16 index15 alt1\"><code class=\"bash plain\">log.segment.bytes=1073741824<\/code><\/div>\n<div class=\"line number17 index16 alt2\"><code class=\"bash plain\">log.retention.check.interval.ms=300000<\/code><\/div>\n<div class=\"line number18 index17 alt1\"><code class=\"bash plain\">zookeeper.connect=localhost:2181<\/code><\/div>\n<div class=\"line number19 index18 alt2\"><code class=\"bash plain\">zookeeper.connection.timeout.ms=6000<\/code><\/div>\n<div class=\"line number20 index19 alt1\"><code class=\"bash plain\">group.initial.rebalance.delay.ms=0<\/code><\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>\u6ce8\uff1a\u53ef\u6839\u636e\u81ea\u5df1\u9700\u6c42\u4fee\u6539\u914d\u7f6e\u6587\u4ef6<\/p>\n<ul>\n<li>\u00a0broker.id\uff1a\u552f\u4e00\u6807\u8bc6ID<\/li>\n<li>\u00a0listeners=PLAINTEXT:\/\/localhost:9092\uff1akafka\u670d\u52a1\u76d1\u542c\u5730\u5740\u548c\u7aef\u53e3<\/li>\n<li>\u00a0log.dirs\uff1a\u65e5\u5fd7\u5b58\u50a8\u76ee\u5f55<\/li>\n<li>\u00a0zookeeper.connect\uff1a\u6307\u5b9azookeeper\u670d\u52a1<\/li>\n<\/ul>\n<p>\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<\/p>\n<p>2\u3001\u542f\u52a8zk\uff08cd \/data\/kafka_2.13-2.8.0\/bin\uff09<\/p>\n<p>.\/zookeeper-server-start.sh -daemon \/data\/kafka_2.13-2.8.0\/config\/zookeeper.properties<\/p>\n<p>3\u3001\u4fee\u6539Kafka\u914d\u7f6e\uff0c\u5e76\u542f\u52a8<\/p>\n<p>.\/kafka-server-start.sh -daemon \/data\/kafka_2.13-2.8.0\/config\/server.properties<\/p>\n<p>4\u3001\u521b\u5efatopic<\/p>\n<p>bin\/kafka-topics.sh &#8211;create &#8211;zookeeper localhost:2181 &#8211;replication-factor 1 &#8211;partitions 1 &#8211;topic test<\/p>\n<p>5\u3001\u4f7f\u7528\u751f\u4ea7\u8005\u53d1\u9001\u6d88\u606f\uff0c\u6bcf\u884c\u662f\u4e00\u6761\u72ec\u7acb\u7684\u6d88\u606f<\/p>\n<p>and\u00a0 go &#8230;.<\/p>\n<p>&nbsp;<\/p>\n<p># \u521b\u5efatopic<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;create &#8211;topic test &#8211;replication-factor 1 &#8211;partitions 3<br \/>\n# \u5220\u9664topic \uff08\u5982\u679ckafka\u914d\u7f6edelete.topic.enable=true\uff0c\u90a3\u4e48\u53ef\u4ee5\u76f4\u63a5\u5220\u9664topic\uff0c\u6267\u884c\u5220\u9664topic\u547d\u4ee4\uff09<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;delete &#8211;topic test<br \/>\n# \u4fee\u6539topic\u7684\u5206\u533a\uff0c\u6ce8\u610f\uff1a\u5206\u533a\u6570\u91cf\u53ea\u80fd\u589e\u52a0\uff0c\u4e0d\u80fd\u51cf\u5c11<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;alter &#8211;topic test &#8211;partitions 5<br \/>\n# \u67e5\u770b\u6240\u6709topic<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;list<br \/>\n# \u67e5\u770b\u6240\u6709topic\u7684\u8be6\u7ec6\u4fe1\u606f<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;describe<br \/>\n# \u67e5\u770b\u6307\u5b9atopic\u7684\u8be6\u7ec6\u4fe1\u606f<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;describe &#8211;topic test<br \/>\n# describe\u547d\u4ee4\u8fd8\u63d0\u4f9b\u4e00\u4e9b\u53c2\u6570\uff0c\u7528\u4e8e\u8fc7\u6ee4\u8f93\u51fa\u7ed3\u679c\uff0c\u5982\uff1a<br \/>\n# &#8211;topic-with-overrides\uff1a\u53ef\u4ee5\u627e\u51fa\u6240\u6709\u5305\u542b\u8986\u76d6\u914d\u7f6e\u7684\u4e3b\u9898\uff0c\u5b83\u53ea\u4f1a\u5217\u51fa\u5305\u542b\u4e0e\u96c6\u7fa4\u4e0d\u4e00\u6837\u914d\u7f6e\u7684\u4e3b\u9898<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;describe &#8211;topics-with-overrides<br \/>\n# describe\u6709\u4e24\u4e2a\u53c2\u6570\u7528\u4e8e\u627e\u51fa\u6709\u95ee\u9898\u7684\u5206\u533a<br \/>\n# &#8211;unavailable-partitions\uff1a\u5217\u51fa\u6240\u6709\u6ca1\u6709\u9996\u9886\u7684\u5206\u533a\uff0c\u8fd9\u4e9b\u5206\u533a\u5df2\u7ecf\u5904\u4e8e\u79bb\u7ebf\u72b6\u6001\uff0c\u5bf9\u4e8e\u751f\u4ea7\u8005\u548c\u6d88\u8d39\u8005\u6765\u8bf4\u662f\u4e0d\u53ef\u7528\u7684<br \/>\n# &#8211;under-replicated-partitions\uff1a\u5217\u51fa\u6240\u6709\u5305\u542b\u4e0d\u540c\u6b65\u526f\u672c\u7684\u5206\u533a\u3002<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;describe &#8211;unavailable-partitions<br \/>\nkafka-topics.sh &#8211;zookeeper server01:2181 &#8211;describe &#8211;under-replicated-partitions<\/p>\n<p>\u751f\u4ea7\u8005shell\u547d\u4ee4<br \/>\nkafka-console-producer.sh &#8211;broker-list server01:9092 &#8211;topic test<br \/>\n\u6d88\u8d39\u8005shell\u547d\u4ee4(kafka-console-consumer.sh &#8211;bootstrap-server localhost:9092 &#8211;topic test &#8211;from-beginning\u65b0\u7248)<br \/>\nkafka-console-consumer.sh &#8211;zookeeper server01:2181 &#8211;from-beginning &#8211;topic test<br \/>\n# \u6307\u5b9agroup\u6d88\u8d39\u7ec4<br \/>\nkafka-console-consumer.sh &#8211;zookeeper server01:2181 &#8211;from-beginning &#8211;group test_group &#8211;topic test<\/p>\n<p># \u5217\u51fatest_group\u6d88\u8d39\u7ec4\u7684\u8be6\u7ec6\u4fe1\u606f<br \/>\nkafka-consumer-groups.sh &#8211;zookeeper\u00a0 server01:2181\u00a0\u00a0\u00a0 &#8211;describe\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;group \u00a0\u00a0 \u00a0test_group<br \/>\ntest\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a00\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a08\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ntest\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a01\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a08\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\ntest\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a02\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a08\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u00a0\u00a0\u00a0 \u00a0 \u00a0\u00a0 \u00a0 8\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &#8211;<br \/>\n# CURRENT-OFFSET: \u5f53\u524d\u6d88\u8d39\u8005\u7fa4\u7ec4\u6700\u8fd1\u63d0\u4ea4\u7684offset\uff0c\u4e5f\u5c31\u662f\u6d88\u8d39\u8005\u5206\u533a\u91cc\u8bfb\u53d6\u7684\u5f53\u524d\u4f4d\u7f6e<br \/>\n# LOG-END-OFFSET: \u5f53\u524d\u6700\u9ad8\u6c34\u4f4d\u504f\u79fb\u91cf\uff0c\u4e5f\u5c31\u662f\u6700\u8fd1\u4e00\u4e2a\u8bfb\u53d6\u6d88\u606f\u7684\u504f\u79fb\u91cf\uff0c\u540c\u65f6\u4e5f\u662f\u6700\u8fd1\u4e00\u4e2a\u63d0\u4ea4\u5230\u96c6\u7fa4\u7684\u504f\u79fb\u91cf<br \/>\n# LAG\uff1a\u6d88\u8d39\u8005\u7684CURRENT-OFFSET\u4e0ebroker\u7684LOG-END-OFFSET\u4e4b\u95f4\u7684\u5dee\u8ddd<\/p>\n<p># \u5220\u9664\u6d88\u8d39\u8005\u7fa4\u7ec4<br \/>\nkafka-consumer-groups.sh &#8211;zookeeper server01:2181 &#8211;delete &#8211;group test_group<br \/>\n# \u5220\u9664\u6d88\u8d39\u8005\u7fa4\u7ec4\u4e2d\u7684topic<br \/>\nkafka-consumer-groups.sh &#8211;zookeeper server01:2181 &#8211;delete &#8211;group test_group &#8211;topic test<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>kafka\u6b63\u5e38\u8fd0\u884c\uff0c\u5fc5\u987b\u914d\u7f6ezookeeper\uff0c\u5426\u5219\u65e0\u8bba\u662fkafka\u96c6\u7fa4\u8fd8\u662f\u5ba2\u6237\u7aef\u7684\u751f\u5b58\u8005\u548c\u6d88\u8d39\u8005\u90fd\u65e0\u6cd5\u6b63\u5e38\u7684\u5de5\u4f5c\u7684\uff1b\u6240\u4ee5\u9700\u8981\u914d\u7f6e\u542f\u52a8zookeeper\u670d\u52a1\u3002 \uff081\uff09zookeeper\u9700\u8981java\u73af\u5883 # yum -y install java-1.8.0 \u89e3\u538b\u5230\u6307\u5b9a\u76ee\u5f55 tar -xzf kafka_2.13-2.8.0.tgz -C \/opt\/ \uff082\uff09\u8fd9\u91cckafka\u4e0b\u8f7d\u5305\u5df2\u7ecf\u5305\u62eczookeeper\u670d\u52a1\uff0c\u6240\u4ee5\u53ea\u9700\u4fee\u6539\u914d\u7f6e\u6587\u4ef6\uff0c\u542f\u52a8\u5373\u53ef\u3002 \u5982\u679c\u9700\u8981\u4e0b\u8f7d\u6307\u5b9azookeeper\u7248\u672c\uff1b\u53ef\u4ee5\u5355\u72ec\u53bbzookeeper\u5b98\u7f51http:\/\/mirrors.shu.edu.cn\/apache\/zookeeper\/\u4e0b\u8f7d\u6307\u5b9a\u7248\u672c\u3002 [root@~]# cd \/data\/kafka_2.13-2.8.0\/ [root@ kafka_2.11-2.1.0]# grep &#8220;^[^#]&#8221; config\/zookeeper.properties dataDir=\/tmp\/zookeeper\u00a0\u00a0\u00a0#\u6570\u636e\u5b58\u50a8\u76ee\u5f55 clientPort=2181\u00a0\u00a0\u00a0#zookeeper\u7aef\u53e3 maxClientCnxns=0 \u6ce8\uff1a\u53ef\u81ea\u884c\u6dfb\u52a0\u4fee\u6539zookeeper\u914d\u7f6e 3.3\u00a0\u914d\u7f6ekafka \uff081\uff09\u4fee\u6539\u914d\u7f6e\u6587\u4ef6 [root@ kafka_2.13-2.8.0]# grep &#8220;^[^#]&#8221; config\/server.properties broker.id=0 listeners=PLAINTEXT:\/\/localhost:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=\/tmp\/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=localhost:2181 zookeeper.connection.timeout.ms=6000 group.initial.rebalance.delay.ms=0 \u6ce8\uff1a\u53ef\u6839\u636e\u81ea\u5df1\u9700\u6c42\u4fee\u6539\u914d\u7f6e\u6587\u4ef6 \u00a0broker.id\uff1a\u552f\u4e00\u6807\u8bc6ID &#8230; <a title=\"kafka \u5b89\u88c5\u5165\u95e8\" class=\"read-more\" href=\"http:\/\/22pig.com\/?p=406\" aria-label=\"More on kafka \u5b89\u88c5\u5165\u95e8\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-406","post","type-post","status-publish","format-standard","hentry","category-kafka"],"_links":{"self":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts\/406","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=406"}],"version-history":[{"count":0,"href":"http:\/\/22pig.com\/index.php?rest_route=\/wp\/v2\/posts\/406\/revisions"}],"wp:attachment":[{"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=406"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=406"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/22pig.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=406"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}