All Projects → lmajano → messaging-polyglot

lmajano / messaging-polyglot

Licence: other
RabbitMQ Messaging Polyglot with Java, ColdFusion, CommandBox, Groovy and more

Programming Languages

ColdFusion
112 projects
java
68154 projects - #9 most used programming language
HTML
75241 projects
groovy
2714 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to messaging-polyglot

cfml-security-training
An INSECURE example website for use in CFML security training.
Stars: ✭ 26 (+44.44%)
Mutual labels:  coldfusion, cfml
cfml-tags-to-cfscript
A collection of examples defining how to convert CFML code blocks written in tags to CFScript.
Stars: ✭ 30 (+66.67%)
Mutual labels:  coldfusion, cfml
lucee-docs
Source and build scripts for Lucee's documentation.
Stars: ✭ 39 (+116.67%)
Mutual labels:  coldfusion, cfml
cfwheels-example-app
A CFWheels 2.x App with user management, role based permissions and password resets
Stars: ✭ 17 (-5.56%)
Mutual labels:  coldfusion, cfml
core
FarCry Core: a web app framework for the ColdFusion language (supporting Lucee & Adobe ColdFusion engines). An ideal platform for building bespoke or tailor made solutions.
Stars: ✭ 34 (+88.89%)
Mutual labels:  coldfusion, cfml
TestBox
TestBox is a next generation testing framework for ColdFusion (CFML) that is based on BDD (Behavior Driven Development) for providing a clean obvious syntax for writing tests. It also includes MockBox, our mocking and stubbing framework.
Stars: ✭ 54 (+200%)
Mutual labels:  coldfusion, cfml
bolthttp
A HTTP Client for CFML
Stars: ✭ 28 (+55.56%)
Mutual labels:  coldfusion, cfml
Primus
⚡ Primus, the creator god of the transformers & an abstraction layer for real-time to prevent module lock-in.
Stars: ✭ 4,302 (+23800%)
Mutual labels:  sockjs
Swadeshi
Implementing a Web Based solution through which farmers can participate in a commodity exchange market
Stars: ✭ 21 (+16.67%)
Mutual labels:  consumer
spring-websocket-template
Template project for configuring websockets with spring
Stars: ✭ 32 (+77.78%)
Mutual labels:  sockjs
ng2-STOMP-Over-WebSocket
STOMP Over WebSocket service for angular2
Stars: ✭ 35 (+94.44%)
Mutual labels:  sockjs
Centrifugo
Scalable real-time messaging server in a language-agnostic way. Set up once and forever.
Stars: ✭ 5,649 (+31283.33%)
Mutual labels:  sockjs
nodefony
nodefony core framework
Stars: ✭ 19 (+5.56%)
Mutual labels:  sockjs
sockjs-cyclone
SockJS server support for the Cyclone web server
Stars: ✭ 26 (+44.44%)
Mutual labels:  sockjs
analytics-platform-shiny-server
Analytics Platform Shiny Server
Stars: ✭ 21 (+16.67%)
Mutual labels:  sockjs
play2-sockjs
A SockJS server implementation for Play Framework.
Stars: ✭ 60 (+233.33%)
Mutual labels:  sockjs
sockjs-perl
SockJS Perl Plack/PSGI implementation
Stars: ✭ 21 (+16.67%)
Mutual labels:  sockjs
youtube-dl-nas
youtube download queue websocket server with login for private NAS.
Stars: ✭ 136 (+655.56%)
Mutual labels:  consumer
vertx-ddns
基于 Vert.x 的 DDNS 解决方案。自动更新域名解析到本机IP, 支持的DNS服务商: Alidns(阿里云) 、 Dnspod(腾讯云) 、Cloudflare、华为云
Stars: ✭ 126 (+600%)
Mutual labels:  sockjs
ng-stomp
📑 STOMP for AngularJS
Stars: ✭ 42 (+133.33%)
Mutual labels:  sockjs

RabbitMQ 🐰 Messaging Polyglot

by Luis Majano [email protected]

This project was originally forked from Rob Harrop https://github.com/robharrop/presentations

Rabbit MQ Setup

In order to execute the examples you will need to have RabbitMQ Server installed: https://www.rabbitmq.com/ and for the STOMP example you will need to install the web-stomp plugin for RabbitMQ: https://www.rabbitmq.com/web-stomp.html

Docker

However, we have also provide a docker-compose.yml file for doing all this for you 🚀. You run docker-compose up in the root of this project and it will run a RabbitMQ server for you with all the necessary plugins installed.

The default credentials are rabbitmq for both username and password. You can change them in the docker compose file.

Traditional Setup

Invoke the sbin/rabbitmq-server shell script.

You can also start the server in detached mode with rabbitmq-server -detached, in which case the server process runs in the background.

You can customise the RabbitMQ environment by setting environment variables in $RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.conf. Server components may be configured, too, in the RabbitMQ configuration file located at $RABBITMQ_HOME/etc/rabbitmq/rabbitmq.config. Neither of these files exist after installation.

The broker creates a user rabbitmq with password rabbitmq. Unconfigured clients will in general use these credentials. By default, these credentials can only be used when connecting to the broker as localhost so you will need to take action before connecting from any other machine.

RabbitMQ Management Plugin

Install the managment plugin first rabbitmq-plugins enable rabbitmq_management

More information at: https://www.rabbitmq.com/management.html

RabbitMQ Admin URL

http://localhost:15672/ guest:guest

RabbitMQ STOMP Plugin

Install the plugin: rabbitmq-plugins enable rabbitmq_web_stomp

More information at: http://www.rabbitmq.com/web-stomp.html


Source Code

The source code is divided into consumers and producers. You can see many examples here for RabbitMQ implementations: https://www.rabbitmq.com/getstarted.html

Producers

  • Java - Native Java
  • CFML - ColdFusion (A web app)
  • CommandBox - CFML CLI based worker

Consumers

  • ColdFusion : Running a consumer via CFML asynchronously
  • CommandBox : CFML CLI based workers
  • Groovy : Running via Groovy
  • Java : Running via native Java consumers
  • Node : Running using amqplib and node
  • Stomp : Running via stompjs, websockets and RabbbitMQ

We will be using the Default Exchange which is the '' empty exchange, which is a direct exchange or you can use the amq.direct exchange as well.

The routing key used is stock.prices and since it is a direct exchange the queue name is also stock.prices

Stomp Plugin For RabbitMQ URL

http://127.0.0.1:15674/stomp Valid destination types are: /temp-queue, /exchange, /topic, /queue, /amq/queue, /reply-queue/.

Use /queue for durable queues Use /amq/queque for default exchange and non-durable queues

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].