Inhaltsverzeichnis
Homestead (Ubuntu) + Laravel mit RabbitMQ
用法2:使用laravel-queue-rabbitmq+rabbitmq-server" >用法2:使用laravel-queue-rabbitmq+rabbitmq-server
总结起来就是:方法1使用的是laravel队列的使用方法,比较简单,并没有涉及到太多队列当中概念性的东西(例如生产者和消费者等等),而使用rabbitmq-server,为大家提供了一个服务端,不管是什么语言,使用账号、密码连接到相应的hostport就能使用RabbitMQ。类似的还有EMQX(mqtt服务端)等等。并且rabbitmq-server提供了一个管理后台,可以查看队列的相关情况,便于管理。" >总结起来就是:方法1使用的是laravel队列的使用方法,比较简单,并没有涉及到太多队列当中概念性的东西(例如生产者和消费者等等),而使用rabbitmq-server,为大家提供了一个服务端,不管是什么语言,使用账号、密码连接到相应的hostport就能使用RabbitMQ。类似的还有EMQX(mqtt服务端)等等。并且rabbitmq-server提供了一个管理后台,可以查看队列的相关情况,便于管理。
注意:" >注意:
Führen Sie den Befehl aus, um die Aufgabenklasse zu generieren: rrreee" >rrreeeFühren Sie den Befehl aus, um die Aufgabenklasse zu generieren: rrreee
Heim PHP-Framework Laravel So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

Dec 27, 2021 am 10:51 AM
laravel rabbitmq

Wie verwende ich RabbitMQ mit Laravel in der Homestead-Umgebung? Der folgende Artikel stellt Ihnen vor, wie Sie RabbitMQ mit Homestead (Ubuntu) + Laravel verwenden. Ich hoffe, er wird Ihnen hilfreich sein!

So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

Homestead (Ubuntu) + Laravel mit RabbitMQ

Verwendung 1: Verwenden Sie Laravel-Queue-Rabbitmq allein. Rabbitmq:


PaketversionLaravel-VersionFehlerbehebungen bis965. Oktober 2021Dokumentation106, 7 5. Oktober 2021

Führen Sie den Installationsbefehl aus:

composer require vladimir-yuldashev/laravel-queue-rabbitmq
Nach dem Login kopieren

Warten Sie, bis die Installation abgeschlossen ist, und fügen Sie Folgendes hinzu: config/queue.php中添加:

'connections' => [
  // ...

  'rabbitmq' => [

     'driver' => 'rabbitmq',
     'queue' => env('RABBITMQ_QUEUE', 'default'),
     'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,

     'hosts' => [
         [
             'host' => env('RABBITMQ_HOST', '127.0.0.1'),
             'port' => env('RABBITMQ_PORT', 5672),
             'user' => env('RABBITMQ_USER', 'guest'),
             'password' => env('RABBITMQ_PASSWORD', 'guest'),
             'vhost' => env('RABBITMQ_VHOST', '/'),
         ],
     ],

     'options' => [
         'ssl_options' => [
             'cafile' => env('RABBITMQ_SSL_CAFILE', null),
             'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
             'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
             'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
             'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
         ],
         'queue' => [
             'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,
         ],
     ],

     /*
      * Set to "horizon" if you wish to use Laravel Horizon.
      */
     'worker' => env('RABBITMQ_WORKER', 'default'),

  ],

  // ...    ],
Nach dem Login kopieren

并且在config/queue.php中修改:

//把sync修改为rabbitmq,同理使用redis驱动则修改为redis
'default' => env('QUEUE_CONNECTION', 'sync'),
'default' => env('QUEUE_CONNECTION', 'rabbitmq'),
//或者修改.env下QUEUE_CONNECTION=rabbitmq
QUEUE_CONNECTION=rabbitmq
Nach dem Login kopieren

执行命令生成任务类:

php artisan make:job TestQueue
Nach dem Login kopieren

修改TestQueue.php代码:

<?php

namespace App\Jobs;

use App\Models\UserInfo;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldBeUnique;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;

class TestQueue implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    private $data;

    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($data)
    {
        //
        $this->data = $data;
    }

    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        //
        $data = $this->data;
        UserInfo::query()->firstOrCreate(
            ["phone" => $data["phone"]],
            ["name" => $data["name"]]
        );
    }
}
Nach dem Login kopieren

调用队列函数:

public function test(Request $request){
    $data = ["name" => "李大", "phone" => "12345678901"];
    $this->dispatch(new TestQueue($data));
}
Nach dem Login kopieren

开启队列:

php artisan queue:work
Nach dem Login kopieren
Nach dem Login kopieren

调用函数后执行结果:

So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

队列消费成功,查看数据库,数据也写入正常。

到这里,会有一个问题,既然方法1能够正常使用,为什么还要加入rabbitmq-serverrabbitmq-server又是干啥的?
根据官方描述——RabbitMQ is a feature rich, multi-protocol messaging broker. It supports:

  • AMQP 0-9-1

  • AMQP 1.0

  • MQTT 3.1.1

  • STOMP 1.0 through 1.2

翻译过来就是:RabbitMQ 是一个功能丰富的多协议消息代理。 它支持以下几种协议。

根据RabbitMQ官网的描述:

RabbitMQ runs on many operating systems and cloud environments, and provides a wide range of developer tools for most popular languages.

翻译过来就是:

RabbitMQ 运行在许多操作系统和云环境中,并为大多数流行语言提供了广泛的开发工具。

启动rabbitmq-server:

sudo service rabbitmq-server start
Nach dem Login kopieren

开启队列:

php artisan queue:work
Nach dem Login kopieren
Nach dem Login kopieren

测试队列(代码和方法1代码一样)结果:

So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

config/queue.phpusernamepassword里不要使用默认的guest账号密码来连接,否则会报错:

The connection timed out after 3 sec while awaiting incoming data
Nach dem Login kopieren

前文已经添加过admin的账号密码,使用这个账号密码还需要给admin账号添加权限:

sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Nach dem Login kopieren

rabbitmq-server管理后台查看用户权限:

laravel 队列之So verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung)

有权限是Can access virtual hosts显示/,无权限就是显示No Accessrrreee

zu config/queue.php und ändern Sie es in config/queue.php: Ändern Sie den TestQueue.php-Code:

rrreee

Rufen Sie die Warteschlangenfunktion auf:

rrreee

Öffnen Sie die Warteschlange:

rrreee

Ausführungsergebnis nach Aufruf der Funktion:

Verwendung von RabbitMQ mit Laravel unter Homestead (Ubuntu) - Praktisches Kapitel

Queue Der Verbrauch ist erfolgreich, überprüfen Sie die Datenbank und die Daten werden normal geschrieben.

Verwendung 2: Verwendung von laravel-queue-rabbitmq+rabbitmq-server

Da Methode 1 normal verwendet werden kann, stellt sich die Frage, warum wir rabbitmq-serverhinzufügen sollten >, rabbitmq-server? Laut offizieller Beschreibung ist RabbitMQ ein funktionsreicher Multiprotokoll-Messaging-Broker. Er unterstützt:

  • AMQP 0-9-1
  • 🎜AMQP 1.0🎜
  • 🎜MQTT 3.1.1🎜
  • 🎜STOMP 1.0 bis 1.2🎜
  • 🎜Die Übersetzung lautet: RabbitMQ ist ein funktionsreicher Multiprotokoll-Nachrichtenbroker. Es unterstützt die folgenden Protokolle. 🎜🎜🎜Laut der Beschreibung auf der offiziellen Website von RabbitMQ:🎜🎜RabbitMQ läuft auf vielen Betriebssystemen und Cloud-Umgebungen und bietet eine breite Palette von Entwicklertools für die gängigsten Sprachen.🎜🎜Übersetzung lautet:🎜🎜RabbitMQ läuft auf vielen Betriebssystemen Systeme und Cloud-Umgebungen und bietet eine breite Palette von Entwicklungstools für die gängigsten Sprachen. 🎜🎜🎜🎜🎜Zusammenfassend: Methode 1 verwendet die Laravel-Warteschlangenverwendungsmethode, die relativ einfach ist und nicht zu viele konzeptionelle Dinge in der Warteschlange umfasst (wie Produzenten und Verbraucher usw.) und rabbitmq verwendet -server stellt einen Server für alle bereit, egal um welche Sprache es sich handelt. Verwenden Sie einfach das Konto und das Passwort, um eine Verbindung zum entsprechenden host und port herzustellen, um ihn zu verwenden . RabbitMQ. Ähnliche sind EMQX (MQTT-Server) und so weiter. Und rabbitmq-server bietet einen Verwaltungshintergrund, in dem Sie den relevanten Status der Warteschlange zur einfachen Verwaltung anzeigen können. 🎜🎜Rabbitmq-Server starten: 🎜rrreee🎜Warteschlange öffnen: 🎜rrreee🎜Testen Sie die Warteschlange (der Code ist der gleiche wie bei Methode 1) Ergebnis: 🎜🎜Verwendung von RabbitMQ mit Laravel unter Homestead (Ubuntu) – Praktischer Kampf🎜🎜Verwendung von RabbitMQ mit Laravel unter Homestead (Ubuntu) – Praktisches Kapitel🎜🎜🎜🎜Hinweis: 🎜🎜 in config/queue. phpVerwenden Sie nicht das Standard-Gastkonto und -Passwort in Benutzername und Passwort, um eine Verbindung herzustellen, andernfalls wird ein Fehler gemeldet: 🎜rrreee🎜Das Administratorkonto und das Passwort bereits hinzugefügt wurden, verwenden Sie dieses Konto und Passwort. Sie müssen auch Berechtigungen zum Administratorkonto hinzufügen: 🎜rrreee🎜 Überprüfen Sie die Benutzerberechtigungen im rabbitmq-server-Verwaltungshintergrund: 🎜🎜Laravel-Warteschlange mit RabbitMQ unter Homestead (Ubuntu) - Praktisches Kapitel🎜🎜Die Erlaubnis ist Kann auf virtuelle Hosts zugreifen Anzeige/, wenn keine Berechtigung vorliegt, wird Kein Zugriff angezeigt. 🎜🎜🎜🎜Andere Verwendungen🎜🎜1. laravel-queue-rabbitmq+Supervisor-Daemon. Im Wesentlichen geht es darum, den Warteschlangentreiber zu ändern, und die Verwendung unterscheidet sich nicht von Redis. 🎜🎜2 Sie können eine ähnliche Verwendung verwenden: Java betreibt RabbitMQ ohne Laravel und verwendet die Methode „Verbindung + Produzent + Verbraucher“. 3. Sie können auch eine komplexere Verwendung verwenden, z. B. den Zugriff auf andere Kommunikationsprotokolle (z. B. MQTT), das Abonnieren von Themen usw. Informationen zur spezifischen Verwendung finden Sie auf der offiziellen Website von RabbitMQ. 🎜🎜🎜🎜Zusammenfassung🎜🎜Die regelmäßige Verwendung von Laravel + Redis Queue + Supervisor kann bereits unseren täglichen Bedarf decken. Laut Qian Laos „Engineering Cybernetics“ ist für ein System möglicherweise nicht die neueste oder fortschrittlichste Technologie die beste. Was für das System geeignet ist und die Stabilität des Systems gewährleistet. 🎜🎜Umgekehrt können wir natürlich nicht an den alten Regeln festhalten. Unsere Kompetenzpakete müssen zeitnah aktualisiert und verbessert werden, damit wir unserer selbst und dem Beruf, den wir lieben, würdig sind. 🎜🎜🎜Verwandte Empfehlungen: 🎜Die neuesten fünf Laravel-Video-Tutorials🎜🎜🎜

    Das obige ist der detaillierte Inhalt vonSo verwenden Sie RabbitMQ in Laravel (Homestead-Umgebung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Erklärung dieser Website
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

    Heiße KI -Werkzeuge

    Undresser.AI Undress

    Undresser.AI Undress

    KI-gestützte App zum Erstellen realistischer Aktfotos

    AI Clothes Remover

    AI Clothes Remover

    Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

    Undress AI Tool

    Undress AI Tool

    Ausziehbilder kostenlos

    Clothoff.io

    Clothoff.io

    KI-Kleiderentferner

    Video Face Swap

    Video Face Swap

    Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

    Heißer Artikel

    <🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Nordhold: Fusionssystem, erklärt
    4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
    Mandragora: Flüstern des Hexenbaum
    3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

    Heiße Werkzeuge

    Notepad++7.3.1

    Notepad++7.3.1

    Einfach zu bedienender und kostenloser Code-Editor

    SublimeText3 chinesische Version

    SublimeText3 chinesische Version

    Chinesische Version, sehr einfach zu bedienen

    Senden Sie Studio 13.0.1

    Senden Sie Studio 13.0.1

    Leistungsstarke integrierte PHP-Entwicklungsumgebung

    Dreamweaver CS6

    Dreamweaver CS6

    Visuelle Webentwicklungstools

    SublimeText3 Mac-Version

    SublimeText3 Mac-Version

    Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

    Heiße Themen

    Java-Tutorial
    1674
    14
    PHP-Tutorial
    1278
    29
    C#-Tutorial
    1257
    24
    Beispiel für Laravel -Einführung Beispiel für Laravel -Einführung Apr 18, 2025 pm 12:45 PM

    Laravel ist ein PHP -Framework zum einfachen Aufbau von Webanwendungen. Es bietet eine Reihe leistungsstarker Funktionen, darunter: Installation: Installieren Sie die Laravel CLI weltweit mit Komponisten und erstellen Sie Anwendungen im Projektverzeichnis. Routing: Definieren Sie die Beziehung zwischen der URL und dem Handler in Routen/Web.php. Ansicht: Erstellen Sie eine Ansicht in Ressourcen/Ansichten, um die Benutzeroberfläche der Anwendung zu rendern. Datenbankintegration: Bietet eine Out-of-the-Box-Integration in Datenbanken wie MySQL und verwendet Migration, um Tabellen zu erstellen und zu ändern. Modell und Controller: Das Modell repräsentiert die Datenbankentität und die Controller -Prozesse HTTP -Anforderungen.

    Lösen Lösen Apr 18, 2025 am 09:24 AM

    Bei der Entwicklung von Websites mit CraftCMS stoßen Sie häufig mit Ressourcendateiproblemen, insbesondere wenn Sie häufig CSS und JavaScript -Dateien aktualisieren, alte Versionen von Dateien möglicherweise weiterhin vom Browser zwischengespeichert. Dieses Problem wirkt sich nicht nur auf die Benutzererfahrung aus, sondern erhöht auch die Schwierigkeit der Entwicklung und des Debuggens. Kürzlich habe ich in meinem Projekt ähnliche Probleme gestoßen, und nach einigen Erkundungen fand ich das Plugin Wiejeben/Craft-Laravel-Mix, das mein Caching-Problem perfekt löste.

    Wie man laravel lernt wie man laravel kostenlos lernt Wie man laravel lernt wie man laravel kostenlos lernt Apr 18, 2025 pm 12:51 PM

    Möchten Sie das Laravel -Rahmen lernen, aber unter keinen Ressourcen oder dem wirtschaftlichen Druck leiden? Dieser Artikel bietet Ihnen ein kostenloses Lernen von Laravel und lehrt Sie, wie Sie Ressourcen wie Online -Plattformen, Dokumente und Community -Foren verwenden, um eine solide Grundlage für Ihre PHP -Entwicklungsreise zu schaffen.

    Laravel Framework Installationsmethode Laravel Framework Installationsmethode Apr 18, 2025 pm 12:54 PM

    Artikelzusammenfassung: Dieser Artikel enthält detaillierte Schritt-für-Schritt-Anweisungen, um die Leser zu leiten, wie das Laravel-Framework einfach installiert werden kann. Laravel ist ein leistungsstarkes PHP -Framework, das den Entwicklungsprozess von Webanwendungen beschleunigt. Dieses Tutorial deckt den Installationsprozess von den Systemanforderungen bis zur Konfiguration von Datenbanken und das Einrichten von Routing ab. Durch die Ausführung dieser Schritte können die Leser schnell und effizient eine solide Grundlage für ihr Laravel -Projekt legen.

    Welche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger aus Welche Versionen von Laravel gibt es? So wählen Sie die Version von Laravel für Anfänger aus Apr 18, 2025 pm 01:03 PM

    In dem LaRavel Framework -Versionsauswahlhandbuch für Anfänger taucht dieser Artikel in die Versionsunterschiede von Laravel ein, um Anfänger bei der Entscheidung über fundierte Entscheidungen zwischen vielen Versionen zu unterstützen. Wir werden uns auf die wichtigsten Funktionen jeder Version konzentrieren, ihre Vor- und Nachteile vergleichen und nützliche Ratschläge geben, um Anfängern zu helfen, die am besten geeignete Version von Laravel auf der Grundlage ihrer Fähigkeiten und der Projektanforderungen auszuwählen. Für Anfänger ist die Auswahl einer geeigneten Version von Laravel von entscheidender Bedeutung, da sie ihre Lernkurve und ihre allgemeine Entwicklungserfahrung erheblich beeinflussen kann.

    Laravel -Benutzeranmeldungsfunktion Laravel -Benutzeranmeldungsfunktion Apr 18, 2025 pm 12:48 PM

    Laravel bietet einen umfassenden Auth-Framework für die Implementierung von Benutzeranmeldungsfunktionen, einschließlich: Definieren von Benutzermodellen (eloquentes Modell), Erstellen von Anmeldeformularen (Blattvorlagen-Engine), Schreiben von Login-Controllern (Erben von Auth \ Logincontroller), Überprüfung von Login-Anfragen (Auth :: Versuch) Umleitung nach Anmeldung (Redirect). Darüber hinaus enthält das Auth -Framework auch Funktionen wie das Zurücksetzen von Kennwörtern, das Registrieren und Überprüfen von E -Mails. Weitere Informationen finden Sie in der Laravel -Dokumentation: https://laravel.com/doc

    Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Wie sehe ich die Versionsnummer von Laravel an? So sehen Sie die Versionsnummer von Laravel Apr 18, 2025 pm 01:00 PM

    Das Laravel-Framework verfügt über integrierte Methoden, um die Versionsnummer einfach zu sehen, um die verschiedenen Anforderungen der Entwickler zu erfüllen. In diesem Artikel werden diese Methoden untersucht, einschließlich der Verwendung des Befehlszeilen -Tools des Composers, der Zugriff auf .Env -Dateien oder das Erhalten von Versionsinformationen über PHP -Code. Diese Methoden sind für die Aufrechterhaltung und Verwaltung der Versionierung von Laravel -Anwendungen von wesentlicher Bedeutung.

    Der Unterschied zwischen Laravel und ThinkPhp Der Unterschied zwischen Laravel und ThinkPhp Apr 18, 2025 pm 01:09 PM

    Laravel und ThinkPhp sind beide populäre PHP -Frameworks und haben ihre eigenen Vor- und Nachteile in der Entwicklung. In diesem Artikel wird die beiden Tiefe verglichen und ihre Architektur, Funktionen und Leistungsunterschiede hervorgehoben, um Entwicklern zu helfen, fundierte Entscheidungen auf der Grundlage ihrer spezifischen Projektanforderungen zu treffen.

    See all articles