Skip to content

Basic registry operations for microservices in Clojure

License

Notifications You must be signed in to change notification settings

updcon/libpinkas-clj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

libpinkas-clj

A Clojure library designed to support basic registry operations for microservices with Consul service by HashiCorp.

Heavily inspired by clj-consul-catalog.

libpinkas clj

Usage

project.clj
[updcon/libpinkas-clj "0.0.5"]
example.clj
(ns my-app.jasper
  (:require [libpinkas-clj.core :refer :all]
            [clojure.core.async :refer [timeout <!!] :include-macros true]))

(defn- schema [id port]
  {:node    "My-Node-Name"
   :address "127.0.0.1"
   :service {
             :id                  id
             :name                id
             :service             "my-service"
             :address             "127.0.0.1"
             :tags                ["primary"]
             :enable_tag_override true
             :port                port}
   })

(def ^:private path "http://localhost:8500/v1/catalog/")

(def ^:private serv1 (service path (schema "my-service-1" 8888)))
(def ^:private one-sec 1000)

(defn run-my-service
  (let [status (register serv1)]

    (when status
      (<!! (timeout one-sec)))

    (assert (= (count (filter
                        #(= "my-service-1" (get % :ServiceID))
                        (discover serv1))) 1)))
  (deregister serv1)
  (<!! (timeout one-sec)))

Developing

Consul

==> Starting Consul agent...
           Version: '1.8.4'
           Node ID: '25c675d4-ce4a-c35b-420f-d8ff12469a5f'
         Node name: 'localhost.localdomain'
        Datacenter: 'dc1' (Segment: '<all>')
            Server: true (Bootstrap: false)
       Client Addr: [127.0.0.1] (HTTP: 8500, HTTPS: -1, gRPC: 8502, DNS: 8600)
      Cluster Addr: 127.0.0.1 (LAN: 8301, WAN: 8302)
           Encrypt: Gossip: false, TLS-Outgoing: false, TLS-Incoming: false, Auto-Encrypt-TLS: false
           ..............
==> Consul agent running!

Self tests

Run Consul

$ consul agent -dev

Run tests

$ cd /path/to/libpinkas-clj
$ lein test

lein test libpinkas-clj.core-test
Ran 3 tests containing 9 assertions.
0 failures, 0 errors.

Enjoy!

License

Copyright © 2019-2020 UPDC (UPD Consutlting Ltd)

Distributed under the MIT License.

About

Basic registry operations for microservices in Clojure

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published