All Projects → phachon → wmqx

phachon / wmqx

Licence: MIT license
基于 Rabbitmq 的 Http 异步消息调用服务

Programming Languages

go
31211 projects - #10 most used programming language
CSS
56736 projects
typescript
32286 projects
shell
77523 projects

Projects that are alternatives of or similar to wmqx

pan
Pan is a high performance mq proxy,support kafka,rabbit-mq,rocketmq,nsq and other mq
Stars: ✭ 27 (-32.5%)
Mutual labels:  mq, rocketmq
Newlife.rocketmq
纯托管轻量级RocketMQ客户端,支持发布消息、消费消息、负载均衡等核心功能!
Stars: ✭ 140 (+250%)
Mutual labels:  mq, rocketmq
net-amqp-rabbitmq
Perl bindings to the librabbitmq-c AMQP library.
Stars: ✭ 23 (-42.5%)
Mutual labels:  rabbitmq-client, rabbitmq-consumer
rocketmq-spring-boot-starter
Rocketmq spring boot starter
Stars: ✭ 17 (-57.5%)
Mutual labels:  rocketmq
BitsOJ
Offline Judge for competitive programming contests.
Stars: ✭ 16 (-60%)
Mutual labels:  rabbitmq-server
funboost
pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和全球一切知名消息队列中间件,python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数。旧名字是function_scheduling_distributed_framework
Stars: ✭ 351 (+777.5%)
Mutual labels:  rocketmq
ansible-role-rabbitmq
Ansible Role - RabbitMQ
Stars: ✭ 49 (+22.5%)
Mutual labels:  rabbitmq-server
dnmp
docker-compose部署LNMP环境 Nginx/Openresty、MySQL(5.7、8.0、8.1)、PHP7.4(8.0、5.6)、Redis5.0、PHPMyAdmin、Xdebug、RabbitMQ、Nacos
Stars: ✭ 138 (+245%)
Mutual labels:  rabbitmq-server
JavaFamily
【Java面试+Java学习指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。
Stars: ✭ 517 (+1192.5%)
Mutual labels:  rocketmq
wmq
Wrapped message queue which based on rabbitmq,support http protocol
Stars: ✭ 27 (-32.5%)
Mutual labels:  wmq
jackrabbit
Simple AMQP / RabbitMQ job queues for node based on amqplib
Stars: ✭ 28 (-30%)
Mutual labels:  rabbitmq-client
rocketmq-client-php
A Php Client for Apache RocketMQ.
Stars: ✭ 80 (+100%)
Mutual labels:  rocketmq
rabbitmq-labs
The source code for my RabbitMQ tutorials.
Stars: ✭ 45 (+12.5%)
Mutual labels:  rabbitmq-management
base
小而美的业务基础框架,也是本项目的核心
Stars: ✭ 47 (+17.5%)
Mutual labels:  mq
punch-q
👊 A small utility to play with IBM MQ
Stars: ✭ 49 (+22.5%)
Mutual labels:  mq
dynamic-threadpool
📌 强大的动态线程池框架,附带监控报警功能。支持 JDK、Tomcat、Jetty、Undertow 线程池;Dubbo、Dubbox、RabbitMQ、RocketMQ、Hystrix 消费线程池(更多框架线程池还在适配中)。内置两种使用模式:轻量级依赖配置中心以及无中间件依赖版本。
Stars: ✭ 3,609 (+8922.5%)
Mutual labels:  rocketmq
rabbitmq-consumer
A configurable RabbitMQ consumer made in Rust, useful for a stable and reliable CLI commands processor.
Stars: ✭ 25 (-37.5%)
Mutual labels:  rabbitmq-consumer
mall4cloud
⭐️⭐️⭐️ Springcloud商城 O2O商城 小程序商城 PC商城 H5商城 APP商城 Java商城 分销商城 多用户商城 uniapp商城 微服务商城
Stars: ✭ 3,915 (+9687.5%)
Mutual labels:  rocketmq
awesome-integration
A curated list of awesome system integration software and resources.
Stars: ✭ 117 (+192.5%)
Mutual labels:  mq
ridge
Pure asynchronous PHP implementation of the AMQP 0-9-1 protocol.
Stars: ✭ 49 (+22.5%)
Mutual labels:  rabbitmq-client

logo

stable build godoc license go_Report platforms download_count release

WMQX is a support http protocol MQ service based on RabbitMQ development, his predecessor was wmq, Because of the differences in code architecture and implementation, a new project is created called WMQX. I am here to thank his author and my friend snail007. Of course, you can also understand that WMQX is an enhanced version of wmq.

中文文档

Why need WMQX?

RabbitMQ is a lightweight messaging queue middleware that is easy to deploy locally and in the cloud and supports multiple messaging protocols. RabbitMQ can be used in many scenarios and supports multiple language SDK. Usually you use RabbitMQ like this:

  1. As a productor:
    • Write code to connect to RabbitMQ and open a channel.
    • Write code to declare an exchange and set related properties.
    • Write code to declare a queue and set the associated properties.
    • Writing code USES routing key to establish a binding relationship between exchange and queue.
    • Write code to send messages to RabbitMQ.
  2. As a consumer:
    • Write code to connect to RabbitMQ, open a channel, start the consuming process, wait for the message to be received, and process the consuming business logic.

As shown in the figure below: RabbitMQ

Problems encountered:

  1. RabbitMQ connections, Exchange, Queue declarations and modifications are coupled with business code, increasing the cost of development and maintenance.
  2. When modifying the consumer's business logic, you may need to restart the consumption process frequently.
  3. For first-time users of MQ, it takes time and labor to understand how RabbitMQ works and write code for production and consumption.
  4. ...

Solution and implementation:

  1. Pull out the connection of RabbitMQ, the declaration of Exchange, Queue and other non-business operations to provide services separately, and the operation of Exchange and Queue is provided to users in a friendly API.
  2. To help the user implement the consuming process of each message, the user only needs to provide the API interface of the consumer, and the consuming process calls the corresponding consumer API after waiting for the message. The consumer business logic changes, only the API needs to be modified, and the consumer process does not need to be restarted.
  3. For the first time using the MQ or not clear the principle of the RabbitMQ users, don't need to understand the use of the RabbitMQ and coded, need only through the HTTP access services, can be quickly using the message queue.

So WMQX was born. The working principle is as follows:

wmqx

Feature

  1. There is no need to connect to RabbitMQ, providing a high-performance, highly available HTTP interface to manage messages
  2. To help users realize the consumption process, they only need to add the corresponding consumer API through the interface to realize the consumption or message push
  3. Each consumer is handled by a separate goroutine, and consumers consume each other independently
  4. Simple and convenient deployment, support cross-platform deployment, low use and access costs
  5. The WMQX consuming process forwards the original request information to the corresponding consumer URL by sending the message through the HTTP publishing interface
  6. Provide a complete set of background management UI, see WMQX-UI

Install

RabbitMQ

If you don't have a RabbitMQ service, you'll need to install it yourself, which is pretty simple, see http://www.rabbitmq.com/download.html

WMQX

Download the latest binary from https://github.com/phachon/wmqx/releases

# Unpack 
$ tar -zxvf wmqx-linux-amd64.tar.gz

Start Run

# The default configuration file use wmqx.conf in the current directory
$ cp config.toml wmqx.toml

# config wmqx.conf
[rabbitmq]
host = "RabbitMQ Server Ip"
port = 5672
username = "test"
password = "123456"
vhost = "/"

# start run
$ ./wmqx 
# Of course, you can also specify the configuration file path to start
$ ./wmqx --conf wmqx.conf

Using document

Manage Api Documents

Publish Api Documents

Publish SDK

Use Example

Contribution

see Contribution

Feedback

  • If you like the project, please Star.
  • If you have any problems in the process of use, welcome submit Issue.
  • If you find and solve bug, welcome submit Pull Request.
  • If you want to redevelop, welcome Fork.
  • If you want to make a friend, welcome send email to [email protected].

License

MIT

Thanks

Create By [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].