guanw / ct-dns Goto Github PK
View Code? Open in Web Editor NEWservice discovery with support for different storage options + http/grpc protocols (WIP)
service discovery with support for different storage options + http/grpc protocols (WIP)
https://semaphoreci.com/community/tutorials/how-to-perform-integration-testing-on-go-applications-with-docker
specify // +build integration
in xxx_test.go file
and use go test -tags integration
to run integration
https://www.philosophicalhacker.com/post/integration-tests-in-go/
this is kind of blocked by #36 .
heartbeat -> (optional: kafka ->) api server -> redis ttl record
idea 1: health check agent on individual host of running service.
idea 2: service constantly reports themselves to ct-dns backend and set ttl.
idea 3: separate service doing health check after scanning all available services.
try to evaluate current handlers
reference: https://gist.github.com/kelvinn/6a1c51b8976acf25bd78
optional: add rate limit
right now the schema only gives host and port. Need to support protocol as well.
support reading config from yml, make it as priority compared to passing via command flags?
Scenario: if the write/get from store fails, it might be due to random reason like instable network.
Should add protection mechanism for retry to minimize this type of impact.
To start:
implement (done by #50 and #51 )/v2/discovery:endpoints
and /v1/registration/{serviceName}
https://medium.com/@salmaan.rashid/envoy-control-plane-hello-world-2f49b2865f29
next: use go-control-plane to implement v2
server.Server
with gateway at front first for current envoy.yaml to work.Update: (This might not be needed as I only intend to provide EDS implementation as an example)
Also see this
support specifying multiple services dynamically?
On startup, new service host should be able to register their host/port/etc information with ct-dns. Brainstorm the best way to do it.
initially I want record to expire with a ttl because we might have a separate service that does healthcheck polling and remove any invalid hosts.
etcd: https://godoc.org/github.com/coreos/etcd/clientv3#example-Lease--Grant
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.