Skip to content

lib-x/fdiscovery

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fdiscovery

file based tiny discovery lib

Usage

server side

package main

import (
    "log"
    "time"
    "github.com/lib-x/fdiscovery"
)

func main() {
    disc := discovery.NewFileSystemDiscovery("/tmp/services")
    
    serviceName := "myservice"
    serviceAddress := "localhost:8080"

    err := disc.Register(serviceName, serviceAddress)
    if err != nil {
        log.Fatalf("Failed to register service: %v", err)
    }

    // send heartbeat every 20 seconds
    go func() {
        for {
            time.Sleep(20 * time.Second)
            err := disc.Heartbeat(serviceName)
            if err != nil {
                log.Printf("Failed to send heartbeat: %v", err)
            }
        }
    }()

    // your logic here
    select {}
}

client side

package main

import (
    "fmt"
    "log"
    "github.com/lib-x/fdiscovery"
)

func main() {
    disc := discovery.NewFileSystemDiscovery("/tmp/services")

    service, err := disc.Discover("myservice")
    if err != nil {
        log.Fatalf("Failed to discover service: %v", err)
    }

    fmt.Printf("Found service: %s at %s\n", service.Name, service.Address)

    // use the service
}

About

file based tiny discovery lib

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages