Aktueller Standort: Startseite> Neueste Artikel> Effiziente Strombegrenzungs- und Durchflussregelmethode für PHP zur Implementierung der Wenxin Yiyan API

Effiziente Strombegrenzungs- und Durchflussregelmethode für PHP zur Implementierung der Wenxin Yiyan API

gitbox 2025-06-15

Was ist die Wenxin Yiyan API?

Wenxin Yiyan ist eine kostenlose chinesische Haft -API, die von Baidu bereitgestellt wird, mit einem täglichen Antragsbegrenzung von 1.000 Mal. Trotzdem gibt es immer noch viele Anwendungen, die diese Grenze während hoher Frequenzaufrufe durchbrechen, wodurch ein Überlimit auslöst oder vorübergehend blockiert wird.

Warum müssen wir den aktuellen Fluss von API -Anfragen einschränken und steuern?

Eine große Anzahl von Anfragen kann dazu führen, dass der Dienst nicht verfügbar ist und sogar andere Benutzer auf derselben Plattform betrifft. Daher kann die angemessene Begrenzung der Anzahl der Anfragen und des Verkehrs während der Entwicklung die Verfügbarkeit und Stabilität der API effektiv sicherstellen.

So implementieren Sie die Schnittstellenstromgrenze und Durchflussregelung durch PHP

Verwenden Sie Redis, um das aktuelle Limit für Anforderungen zu implementieren

In PHP können wir die Antragsfrequenz eines einzelnen Benutzer durch Redis aufzeichnen und beurteilen, um die Anzahl der Anfragen pro Tag zu begrenzen. Hier ist ein typisches Codebeispiel:

 
// verbindenRedisServer
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

// Benutzern holenIPund aktuelles Datum
$ip = $_SERVER['REMOTE_ADDR'];
$date = date("Y-m-d");

// BauenRedisSchlüsselname
$key = $ip . '-' . $date;
$count = $redis->get($key);

if (!$count) {
    // Erste Anfrage,Initialisieren Sie die Anzahl und setzen Sie die Ablaufzeit fest
    $redis->set($key, 1);
    $redis->expire($key, 86400);
} else {
    if ($count >= 1000) {
        echo 'Die Anzahl der Anfragen überschritt';
        exit;
    }
    // Erhöhen der Anzahl
    $redis->incr($key);
    $redis->expire($key, 86400);
}

// Fragen Sie Wen Xin nach einem WortAPI
$url = 'https://v1.alapi.cn/api/shici?format=text';
$response = file_get_contents($url);
echo $response;

Verwenden Sie Nginx für die Verkehrskontrolle

Zusätzlich zur aktuellen Grenze in der Anwendungsschicht kann Nginx auch die Anforderungsrate auf der Servicegebühr begrenzen, um den Druck durch kurzfristige hohe Parallelität zu vermeiden. Beispiele sind wie folgt:

 
http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
}

server {
    ...
    location / {
        limit_req zone=one burst=5 nodelay;
        proxy_pass ...;
    }
}

Die obige Konfiguration ist wie folgt:

  • Rate = 1R/s : Nur einmal Anforderung pro IP pro Sekunde
  • Burst = 5 : bis zu 5 Anfragen auf dem Rückstand zulassen
  • Nodelay : Kein Warten darauf zu warten, direkt verarbeitet zu werden

Zusammenfassen

PHP in Kombination mit Redis für angeforderte Strombegrenzung und Nginx für die Verkehrskontrolle ist ein effektiver Weg, um den stabilen Betrieb der API sicherzustellen. In diesem Artikel wird Baidu Wenxin Yiyan API als Beispiel angelegt und enthält praktische Implementierungscode- und Konfigurationsvorschläge. Ähnliche Praktiken können auch auf andere offene Schnittstellen für Hochfrequenzanrufe angewendet werden, und Entwickler sollten die aktuellen Begrenzungsstrategien entsprechend den Geschäftsanforderungen angemessen einrichten.