Skip to content

Simple DNS clustering for distributed Elixir nodes

License

Notifications You must be signed in to change notification settings

feld/dns_cluster

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DNSCluster

Simple DNS clustering for distributed Elixir nodes.

Installation

The package can be installed by adding dns_cluster to your list of dependencies in mix.exs:

def deps do
  [
    {:dns_cluster, "~> 0.1.1"}
  ]
end

Next, you can configure and start the cluster by adding it to your supervision tree in your application.ex:

children = [
  {Phoenix.PubSub, ...},
  {DNSCluster, query: Application.get_env(:my_app, :dns_cluster_query) || :ignore},
  MyAppWeb.Endpoint
]

If you are deploying with Elixir releases, the release must be set to support longnames and the node must be named. These can be set in your rel/env.sh.eex file:

#!/bin/sh
export RELEASE_DISTRIBUTION=name
export RELEASE_NODE="myapp@fully-qualified-host-or-ip"

By default, nodes from the same release will have the same cookie. If you want different applications or releases to connect to each other, then you must set the RELEASE_COOKIE, either in your deployment platform or inside rel/env.sh.eex:

#!/bin/sh
...
export RELEASE_COOKIE="my-app-cookie"

About

Simple DNS clustering for distributed Elixir nodes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Elixir 100.0%