linux下Kafka 单机安装部署+php简单使用

本文详细指导如何在Linux CentOS 6.5环境下安装Kafka 0.11.0.0,包括配置Zookeeper、设置环境变量、启动服务、创建主题和消费者,并提供PHP Laravel集成示例,展示了如何使用Kafka生产者和消费者进行数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

linux下Kafka安装部署

系统环境

组件

版本

CentOS

6.5 64x

zookeeper

3.4.5

kafka

172.16.177.219

单节点安装

在安装好jdk

官方下载地址:http://kafka.apache.org/downloads.html

下载kafka并且解压

tar zxvf kafka_2.11-0.11.0.0.tgz mv kafka_2.11-0.11.0.0/ /opt/module/kafka

cd /opt/module/kafka

3)在/opt/module/kafka 目录下创建 logs 文件夹

[root@localhost kafka]$ mkdir logs

4)修改配置文件

[root@localhost kafka]$ cd /opt/module/kafka/config/ 
[root@localhost config]$ vi server.properties
#broker 的全局唯一编号,不能重复 broker.id=0 

#删除 topic 功能使能 

delete.topic.enable=true 

#kafka 运行日志存放的路径 

log.dirs=/opt/module/kafka/logs 

#配置连接 Zookeeper 集群地址 zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181

zookeeper.connect=172.16.177.219:2181

修改listeners=PLAINTEXT://192.168.10.175:9092 配置了地址才可以外网访问

5)配置环境变量

[root@localhost module]$ sudo vi /etc/profile 
#KAFKA_HOME 
export KAFKA_HOME=/opt/module/kafka 
export PATH=$PATH:$KAFKA_HOME/bin 

[root@localhost module]$ source /etc/profile

启动kafka默认配置

[root@localhost kafka]$ bin/zookeeper-server-start.sh -daemon config/zookeeper.properties 
[root@localhost kafka]$ bin/kafka-server-start.sh -daemon config/server.properties

创建 topic 名为 “first”

[root@localhost kafka]$ bin/kafka-topics.sh --zookeeper 172.16.177.219:2181 --create --replication-factor 1 --partitions 1 --topic first

创建客户端

[root@localhost kafka]$ bin/kafka-console-producer.sh --broker-list 172.16.177.219:9092 --topic first

 

创建消费端

[root@localhost kafka]$ bin/kafka-console-consumer.sh \--zookeeper 172.16.177.219:2181 --topic first --from-beginning

对接php代码使用,已laravel5.8框架座位基础,案例思路在

1.创建产生者代码  \app\Http\Controllers\KafkaCrontroller.php创建文件,同时在路由中添加相关访问。

<?php
namespace App\Http\Controllers;


class KafkaCrontroller extends Controller
{
    public function Producer(){
        $value='ceshi';
        $topic ='first';
        $config = \Kafka\ProducerConfig::getInstance();
        $config->setMetadataRefreshIntervalMs(10000);
        $config->setMetadataBrokerList('172.16.177.219:9092');
        $config->setBrokerVersion('1.0.0');
        $config->setRequiredAck(1);
        $config->setIsAsyn(false);
        $config->setProduceInterval(500);
        $producer = new \Kafka\Producer(function() {
            return array(
                array(
                    'topic' => 'first',
                    'value' => 'test....message.',
                    'key' => ''
                ),
            );
        });
//$producer->setLogger($logger);
        $producer->success(function($result) {
            var_dump($result);
        });
        $producer->error(function($errorCode) {
            var_dump($errorCode);
        });
        $producer->send(true);
    }
}

运行客户端插入数据到kafka

2.创建消费者队列 

可以在phpstorm中执行终端命令
php artisan make:command ConsumerKafka
生成文件app\Console\Commands\ConsumerKafka.php

在生成的任务文件中添加消费者方法
<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
use Monolog\Logger;
class ConsumerKafka extends Command
{
    /**
     * The name and signature of the console command.
     *
     * @var string
     */
    protected $signature = 'consumer:kafka';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = '处理异步kafka消息';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {

        $config = \Kafka\ConsumerConfig::getInstance();
        $config->setMetadataRefreshIntervalMs(10);
        $config->setMetadataBrokerList('172.16.177.219:9092');
        $config->setGroupId('lest1');
        $config->setBrokerVersion('1.0.0');
        $config->setTopics(['first']);

        $consumer = new \Kafka\Consumer();
        $consumer->start(function($topic, $part, $message) {
            var_dump($message);
        });
    }
}

终端启动消费者队列,会接收一下数据,

D:\www\laravel58>php artisan consumer:kafka
array(3) {
  ["offset"]=>
  int(31)
  ["size"]=>
  int(38)
  ["message"]=>
  array(6) {
    ["crc"]=>
    int(3905038476)
    ["magic"]=>
    int(1)
    ["attr"]=>
    int(0)
    ["timestamp"]=>
    int(-1)
    ["key"]=>
    string(0) ""
    ["value"]=>
    string(16) "test....message."
  }
}

<think>好的,我现在需要帮助用户解决Android Studio中出现的“Error running 'app'”错误。根据用户提供的引用内容,这个问题可能有多种原因,比如ADB问题、模拟器进程终止、防病毒软件干扰、默认Activity未配置等。我需要系统地分析每个可能的原因,并给出对应的解决方法。 首先,用户提到的错误信息可能有多种情况,比如无法定位ADB、模拟器进程终止、默认Activity未找到等。我需要分别针对这些不同的情况给出具体的解决步骤。例如,引用2中提到ADB的问题,可以通过重新安装Platform-Tools来解决。引用5则指出要检查AndroidManifest.xml中的默认Activity配置。 接下来,我需要确保回答结构清晰,分步骤说明解决方法,并引用相关的引用来源。同时,用户要求生成相关问题,所以我需要列出几个常见的问题,帮助用户进一步排查。 在整理解决方案时,需要注意逻辑顺序,从简单到复杂,比如先检查配置,再处理ADB,然后考虑模拟器和防病毒软件的影响。同时,要提醒用户检查Gradle同步和项目配置,因为这些也是常见的问题点。 最后,生成的相关问题需要覆盖用户可能遇到的其他方面,比如性能优化、其他错误类型等,以便用户扩展阅读和解决问题。</think>针对Android Studio中常见的$Error\ running\ 'app'$错误,以下是分步解决方法: ### 一、ADB服务异常处理 1. **强制重启ADB**:在Terminal执行: ```bash adb kill-server && adb start-server ``` 2. **重装Platform-Tools**: - 打开$File \rightarrow Settings \rightarrow Android SDK$ - 取消勾选$Android SDK Platform-Tools$后点击Apply - 重新勾选并安装(需稳定网络环境)[^2] ### 二、默认Activity未配置 检查$AndroidManifest.xml$是否包含: ```xml <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> ``` 缺少该配置会导致$Default Activity not found$错误[^5] ### 三、模拟器问题排查 1. **关闭杀毒软件**:部分杀软会阻止模拟器进程(如AVD的qemu-system进程)[^3] 2. **重置模拟器**: - 删除现有AVD:打开$AVD Manager \rightarrow Delete$ - 新建模拟器时选择$Cold Boot$启动方式 ### 四、Gradle配置修复 执行以下步骤: ```mermaid graph TD A[File → Sync Project with Gradle Files] --> B[Build → Clean Project] B --> C[Build → Rebuild Project] ``` ### 五、进阶排查方法 1. **查看完整报错日志**: - 打开$Build \rightarrow View → Tool Windows → Build$ - 定位红色错误堆栈 2. **清除缓存**: $File → Invalidate Caches / Restart... → Invalidate and Restart$
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值