node-service-geoip
a RabbitMQ microservice wrapping the node-geoip package (geoip-lite on npm).
project status
Done
- Used in production
- Dockerized
- Deployable via Tutum
- Uses BunnyMQ
service install
npm install service-geoip
npm updatedb
used to build the geo DB. This is not needed when module is used as a client.
docker build
docker build .
configuration
configuration can be done using env vars
#default AMQP_URL=amqp://localhost #default AMQP_QUEUE=geo:ip
usage
start the service
setup env vars and start the container or run npm start
npm start
consume the service
npm i bunnymq --save
Then in your code:
var bunny = /*config here or use bunnymq's env vars*/producer;bunny;
consuming from a compatible amqp broker
just send the IP as the message content on the queue you have defined (see #configuration) with contentType set to application/json
Tutum
Here is a sample stackfile to deploy your microservice (create your tutum repository from the github repo first)
rabbitmq-master: image: 'tutum/rabbitmq:latest' environment: - RABBITMQ_PASS=PASSWORDservice-geoip: image: 'tutum.co/TUTUM_USER/service-geoip:latest' environment: - 'AMQP_URL=amqp://admin:PASSWORD@rabbitmq-master' links: - rabbitmq-master ports: - '9001:8080'