ElasticSearch has significantly improved the way we operate scalable persistent services with its easy approach to scalability using symmetric nodes. One of the challenges we’ve found is operating ElasticSearch across geographically distant clusters for fault-tolerance and recovery.
In this quick start, we’ll show you how to implement ElasticSearch plugins to use as a medium for cross-cluster document replication and indexing. This tutorial is a proof-of-concept for global, multi data center replication of ElasticSearch indexing.
Before jumping right in, check out more about what geolocation is used for, how to leverage geohash for your project, and see the full ElasticSearch real-time geo-replication GitHub repository here.
Note: this is not production ready! It is supposed to provoke inspiration and conversation while we work, test and get the bugs out. Thanks so much for checking it out!
The full PubNub Changes Plugin for ElasticSearch GitHub repository can be seen here. This allows ElasticSearch index changes to be propagated via PubNub.
The full PubNub River Plugin for ElasticSearch GitHub repository can be seen here. This enables PubNub content to be indexed by ElasticSearch.
The scripts
directory contains two scripts you can use to publish or listen to PubNub.
Prerequisites:
Using pubnub_debug_listen.coffee:
coffee pubnub_debug_listen.coffee CHANNEL_NAME
, where CHANNEL_NAME is your PubNub channel name (as above, ‘elasticsearch_changes’)Using pubnub_debug_publish.coffee:
coffee pubnub_debug_publish.coffee CHANNEL_NAME
, where CHANNEL_NAME is your PubNub channel name (as above, ‘elasticsearch_changes’)We hope you enjoyed this proof-of-concept example of ElasticSearch real-time geo-replication with PubNub. I also gave a talk on this topic at the Boston ElasticSearch Meetup a couple weeks ago, and you can see the full talk on Implementing Real-time Geo-Replication with ElasticSearch here. If you run into any issues or have any suggestions for making this more awesome, please drop us a line!
There are common underlying technologies for a dating app, and in this post, we’ll talk about the major technologies and designs...
Michael Carroll
How to use geohashing, JavaScript, Google Maps API, and BART API to build a real-time public transit schedule app.
Michael Carroll
How to track and stream real-time vehicle location on a live-updating map using EON, JavaScript, and the Mapbox API.
Michael Carroll