美文网首页
OPQ - 一款开源高性能持久化消息队列

OPQ - 一款开源高性能持久化消息队列

作者: levinlin | 来源:发表于2017-04-20 14:21 被阅读0次

OPQ

AnOpen sourcedPersistent messageQueue

Code is tested under go1.4.2(CAUTION: OPQ hasn't been tested in production environment so far)

Features

    1.persistent message storage

    2.push model - push message to target service and block when failure

    3.easy to use - simple API whith HTTP POST method, no addtional client integration is required

    4.message replay

    5.high performance aimed

    6.operations-friendly - graceful stop/restart, HA (TODO)

Performance

    1.over 20,000(Message/Second) with 2K(Byte) message payload

    2.over 30,000(Message/Second) with 1K(Byte) message payload

Install

Download source code

    go get -u github.com/LevinLin/OPQ

Build OPQ

    cd /path/to/OPQgo build

Run OPQ

    cd /path/to/OPQnohup ./OPQ &>/dev/null &

    -debug

    System runs in debug model when given debug=yes, which will enable log/output in debug level, default to no

    -port

    Listening port, default to 8999

    -syslog

    System log name, default to system.log

    -admin

    Enable admin portal when given admin=yes, default to no(TODO, not available yet)

Gracefully restart OPQ

    kill -1 %{PID}

Usage

Push Message

    url: http://%{SERVER_NAME}[:%{SERVER_PORT}]/opq/push

    post fields:

        1.url: target url

        2.topic: each message should belong to a topic

        3.message: message content

    header: specify the header if you need

    example:(PHP)

    <?php

        $url="http://localhost:8999/opq/push";

        $ch=curl_init();

        curl_setopt($ch, CURLOPT_URL,$url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

        curl_setopt($ch, CURLOPT_POST,1);

        $data=array(

            'url'=>'http://127.0.0.1/Comment/addComment?comment=nny&user=q18',

            'topic'=>'comment', 

            'message'=>'this is message body',

        );

        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

        $response=curl_exec($ch);

        var_dump($response);

        curl_close($ch);

Replay Message

    url: http://%{SERVER_NAME}[:%{SERVER_PORT}]/opq/replay

    post fields:

        1.topic: topic name

        2.cmd: commond number (message index, start from 0)

    example:(PHP)

    <?php

        $url="http://localhost:8999/opq/replay";

        $ch=curl_init();

        curl_setopt($ch, CURLOPT_URL,$url);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

        curl_setopt($ch, CURLOPT_POST,1);

        $data=array(

            'topic'=>'comment',

            'cmd'=>'30',

        );

        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

        $response=curl_exec($ch);

        var_dump($response);

        curl_close($ch);

相关文章

  • OPQ - 一款开源高性能持久化消息队列

    OPQ AnOpen sourcedPersistent messageQueue Code is tested ...

  • Kafka简介

    Kafka是一个分布式消息队列,具有高性能、持久化、多副本、横向扩展能力。生产者往队列里写消息,消费者从队列里取消...

  • Linux安装Kafka

    kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里...

  • Kafka 技术汇总

    1 基本概念 Kafka 是一个分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息...

  • RabbitMQ 消息持久化机制(消息不丢) --- 2022-

    RabbitMQ持久化机制分为队列持久化、消息持久化、交换器持久化。不管是持久化的消息还是非持久化的消息都可以被写...

  • 【新手快速入门】从零开始学习Kafka

    简介 kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从...

  • 震惊了!原来这才是kafka!

    [TOC] 简介 kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消...

  • RabbitMQ 如何保证消息的可靠性

    队列持久化 上面的代码就是进行消息持久话,当然还有其他写法,例如: 其他写法不一一赘述。如果队列A之前没有持久化,...

  • kafka原理学习笔记

    一、kafka简介 kafka是分布式消息队列,具有高性能、持久化、多副本备份、横向扩展能力,其最大的特性是高吞吐...

  • Win7安装使用redis服务

    Redis简介:1:开源免费,高性能NoSql数据库。2:支持数据持久话。即:RDB快照持久化机制和AOF持久化机...

网友评论

      本文标题:OPQ - 一款开源高性能持久化消息队列

      本文链接:https://www.haomeiwen.com/subject/euklzttx.html