鼎鼐 發表於 2019-8-16 02:24:00

php操作kafka

<ul>
<li>php操作kafka----可以参照网上的安装步骤,先安装ldkafka rdkafka,然乎启动zookeeper和kafka服务器</li>
</ul>
<div class="cnblogs_code">
<pre><span style="font-size: 18px; font-family: comic sans ms, sans-serif">&lt;?<span style="color: rgba(0, 0, 0, 1)">php
</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)">$conf = new Rdkafka\Producer();
//$producer = new RdKafka\Producer();</span>
<span style="color: rgba(0, 0, 255, 1)">class</span><span style="color: rgba(0, 0, 0, 1)"> kafka
{
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(128, 0, 128, 1)">$broker_list</span>="localhost:9092"<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(128, 0, 128, 1)">$topic</span> = "wuwa"<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(128, 0, 128, 1)">$partion</span> = 0<span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">protected</span> <span style="color: rgba(128, 0, 128, 1)">$producer</span> = <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">protected</span> <span style="color: rgba(128, 0, 128, 1)">$consumer</span> = <span style="color: rgba(0, 0, 255, 1)">null</span><span style="color: rgba(0, 0, 0, 1)">;
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">function</span><span style="color: rgba(0, 0, 0, 1)"> __construct()
    {
      </span><span style="color: rgba(128, 0, 128, 1)">$rk</span> = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> RdKafka\Producer();
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(<span style="color: rgba(0, 0, 255, 1)">empty</span>(<span style="color: rgba(128, 0, 128, 1)">$rk</span><span style="color: rgba(0, 0, 0, 1)">))
      {
            </span><span style="color: rgba(0, 0, 255, 1)">throw</span> <span style="color: rgba(0, 0, 255, 1)">new</span> \<span style="color: rgba(0, 0, 255, 1)">Exception</span>("producer error"<span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(128, 0, 128, 1)">$rk</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">setLogLevel(LOG_DEBUG);
      </span><span style="color: rgba(0, 0, 255, 1)">if</span>(!<span style="color: rgba(128, 0, 128, 1)">$rk</span>-&gt;addBrokers(<span style="color: rgba(128, 0, 128, 1)">$this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">broker_list))
      {
            </span><span style="color: rgba(0, 0, 255, 1)">throw</span> <span style="color: rgba(0, 0, 255, 1)">new</span> \<span style="color: rgba(0, 0, 255, 1)">Exception</span>('添加broker失败'<span style="color: rgba(0, 0, 0, 1)">);
      }
      </span><span style="color: rgba(128, 0, 128, 1)">$this</span>-&gt;producer=<span style="color: rgba(128, 0, 128, 1)">$rk</span><span style="color: rgba(0, 0, 0, 1)">;
    }
    </span><span style="color: rgba(0, 0, 255, 1)">public</span> <span style="color: rgba(0, 0, 255, 1)">function</span> sendmsg(<span style="color: rgba(128, 0, 128, 1)">$array_message</span>=""<span style="color: rgba(0, 0, 0, 1)">)
    {
      </span><span style="color: rgba(0, 128, 0, 1)">/*</span><span style="color: rgba(0, 128, 0, 1)">$topic = $this-&gt;producer-&gt;newTopic($this-&gt;topic);
      return $topic-&gt;produce(RD_KAFKA_PARTITION_UA,$this-&gt;partion,json_encode($array_message));</span><span style="color: rgba(0, 128, 0, 1)">*/</span>
      <span style="color: rgba(128, 0, 128, 1)">$topic</span> = <span style="color: rgba(128, 0, 128, 1)">$this</span>-&gt;producer-&gt;newTopic(<span style="color: rgba(128, 0, 128, 1)">$this</span>-&gt;<span style="color: rgba(0, 0, 0, 1)">topic);
      </span><span style="color: rgba(0, 0, 255, 1)">return</span> <span style="color: rgba(128, 0, 128, 1)">$topic</span>-&gt;produce(RD_KAFKA_PARTITION_UA,<span style="color: rgba(128, 0, 128, 1)">$this</span>-&gt;partion,<span style="color: rgba(128, 0, 128, 1)">$array_message</span><span style="color: rgba(0, 0, 0, 1)">);
    }
}

</span><span style="color: rgba(128, 0, 128, 1)">$kafuka</span> = <span style="color: rgba(0, 0, 255, 1)">new</span><span style="color: rgba(0, 0, 0, 1)"> Kafka();
</span><span style="color: rgba(128, 0, 128, 1)">$kafuka</span>-&gt;sendmsg('general! welcome to distributed world!'<span style="color: rgba(0, 0, 0, 1)">);
</span><span style="color: rgba(128, 0, 128, 1)">$kafuka</span>-&gt;sendmsg('好好学编程,泡昌仔和劲儿弟弟!');</span></pre>
</div>
<p>输出结果</p>
<p>general! welcome to distributed world!<br>好好学编程,泡昌仔和劲儿弟弟!<br><br></p><br><br>
来源:https://www.cnblogs.com/saintdingspage/p/11361524.html
頁: [1]
查看完整版本: php操作kafka