>백엔드 개발 >PHP 튜토리얼 >PHP와 Kafka를 활용한 실시간 항공편 지연 데이터 분석

PHP와 Kafka를 활용한 실시간 항공편 지연 데이터 분석

WBOY
WBOY원래의
2023-06-28 08:34:52764검색

항공 산업에서 항공편 지연은 일반적인 문제로, 이로 인해 승객은 여행 중에 많은 어려움을 겪게 됩니다. 그러나 항공사와 공항 관리자가 항공편 지연을 적시에 파악하고 그에 따른 조치를 취하는 것은 매우 중요합니다. 이는 항공편 시간 엄수 및 서비스 수준 평가에 직접적인 영향을 미치기 때문입니다.

PHP와 Kafka를 사용하여 실시간 비행 지연 데이터 분석을 달성하는 것은 효과적인 솔루션입니다. 이 기사에서는 PHP에서 Kafka를 사용하여 실시간 항공편 지연 데이터를 수집하고 분석하는 방법을 자세히 설명합니다.

먼저 Kafka 환경을 설치하고 구성해야 합니다. Ubuntu 시스템에서는 다음 명령을 실행하여 Kafka를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install default-jre
wget https://downloads.apache.org/kafka/2.5.0/kafka_2.12-2.5.0.tgz
tar -xzf kafka_2.12-2.5.0.tgz
cd kafka_2.12-2.5.0

다음으로 Kafka 디렉터리를 입력하고 Kafka 서비스를 시작합니다.

bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties

이제 Kafka 서비스가 성공적으로 시작되었습니다.

다음으로 PHP를 사용하여 Kafka 생산자 코드를 작성하겠습니다. 생산자는 비행 지연 데이터를 Kafka의 주제로 보냅니다.

<?php
$topic = "flight-delay";
$brokerList = "localhost:9092";
$producer = new RdKafkaProducer();
$producer->setLogLevel(LOG_DEBUG);
$producer->addBrokers($brokerList);
$topicObj = $producer->newTopic($topic);
while (true) {
  $message = generateDelayMessage();
  $topicObj->produce(RD_KAFKA_PARTITION_UA, 0, $message);
  sleep(rand(1,5));
}
function generateDelayMessage() {
  $airline = array("AA", "UA", "DL", "WN", "B6");
  $delay = array("15", "30", "45", "60", "75", "90", "120");
  return "airline:".$airline[array_rand($airline)].",delay:".$delay[array_rand($delay)];
}
?>

이 코드 조각은 시뮬레이션된 비행 지연 데이터를 무작위로 생성하여 Kafka 주제로 보냅니다. 다음 명령을 사용하여 코드를 실행할 수 있습니다.

php producer.php

이제 다른 PHP 코드를 사용하여 Kafka 주제의 데이터를 사용하고 분석할 수 있습니다.

<?php
$topic = "flight-delay";
$brokerList = "localhost:9092";
$groupId = "group1";
$timeoutMs = 1000;
$topicConf = new RdKafkaTopicConf();
$topicConf->set('auto.offset.reset', 'smallest');
$consumerConf = new RdKafkaConf();
$consumerConf->set('group.id', $groupId);
$consumer = new RdKafkaKafkaConsumer($consumerConf);
$consumer->addBrokers($brokerList);
$consumer->subscribe([$topic]);
while (true) {
  $message = $consumer->consume($timeoutMs);
  switch ($message->err) {
    case RD_KAFKA_RESP_ERR_NO_ERROR:
      echo $message->payload;
      analyzeDelayMessage($message->payload);
      break;
    case RD_KAFKA_RESP_ERR__TIMED_OUT:
      break;
    default:
      throw new Exception($message->errstr(), $message->err);
      break;
  }
}
function analyzeDelayMessage($message) {
  $parts = explode(",", $message);
  $airline = substr($parts[0], strpos($parts[0], ":") + 1);
  $delay = substr($parts[1], strpos($parts[1], ":") + 1);
  // Do something with the delay data.
}
?>

이 코드 조각은 Kafka 주제의 데이터를 사용하고 analyzeDelayMessage() 함수를 사용하여 데이터를 분석합니다. 이 기능에서는 항공편 지연 정도에 따라 적절한 조치를 취할 수 있습니다.

마지막으로 웹 인터페이스에서 데이터를 시각화하고 표시할 수 있습니다. 이는 Laravel과 같은 PHP 프레임워크와 Highcharts와 같은 JavaScript 라이브러리를 사용하여 달성할 수 있습니다. 이 웹 인터페이스에서는 항공편 지연 추세를 표시하고 사용자에게 실시간 항공편 지연 데이터를 제공할 수 있습니다.

요약하자면, PHP와 Kafka를 사용하여 실시간 비행 지연 데이터를 분석하는 것은 효과적인 솔루션입니다. 분산형 스트림 처리 플랫폼인 Kafka는 실시간 데이터를 효과적으로 수집하고 처리하는 데 도움을 줄 수 있습니다. 강력한 웹 개발 언어인 PHP는 데이터를 시각화하고 사용자에게 제공하는 데 도움을 줄 수 있습니다.

위 내용은 PHP와 Kafka를 활용한 실시간 항공편 지연 데이터 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.