dlouwers / reactive-consul Goto Github PK
View Code? Open in Web Editor NEWConsul client for Scala
License: MIT License
Consul client for Scala
License: MIT License
Having the example new ServiceBroker and immediately call withService then the selectConnection
is called on the LoadBalancerActor before the connection providers are added causing an ServiceUnavailableException
exception
Example:
val serviceBroker = ServiceBroker(new URL("http://consul.service.consul:8500"), connectionStrategies)
serviceBroker.withService[String, Unit]("my-service") { value => ... }
```
Seems like 0.2.0 was working for some after it was published, but now I can't include the dependency without getting this error:
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: UNRESOLVED DEPENDENCIES ::
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
[warn] :: nl.stormlantern#dockertestkit_2.11;0.2.0: not found
[warn] ::::::::::::::::::::::::::::::::::::::::::::::
(also happens when compiling for scala 2.12)
Currently doesn't work with spray-json 1.3.2:
java.lang.NoSuchMethodError: stormlantern.consul.client.dao.ConsulHttpProtocol.optionFormat(Lspray/json/JsonFormat;)Lspray/json/StandardFormats$OptionFormat;
java.lang.NoSuchMethodError: stormlantern.consul.client.dao.ConsulHttpProtocol.optionFormat(Lspray/json/JsonFormat;)Lspray/json/StandardFormats$OptionFormat;
at stormlantern.consul.client.dao.ConsulHttpProtocol$class.$init$(ConsulHttpProtocol.scala:38)
at stormlantern.consul.client.dao.SprayConsulHttpClient.<init>(SprayConsulHttpClient.scala:19)
Is it possible to upgrade the dependency version?
The client library never applies the tag filtering:
The filtering is done, but the result is never used but the unfiltered set of ServiceInstane
s is used:
Currently it seems that the ConsulHttpClient.getService
method uses the Catalog https://www.consul.io/api/catalog.html#list-nodes-for-service to get all the endpoints for a service; but if a certain endpoint is considered unhealthy (for example since the consul agent is in failed
mode due to network partition the client doesn't excluded it from the available nodes.
Maybe it's better to use the Health https://www.consul.io/api/health.html#list-nodes-for-service for this?
These form the abstraction layer between one or more connection pools and watching service nodes.
Hardcoded name prevents the creation of multiple instances of ServiceBroker
.
Hi,
The goal of this project wasn't necessarily to be a Consul client but rather provide convenient recipes for service discovery, leader-follower election etc. When I started there wasn't any async Consul client available so I wrote my own but this was never a goal in itself. I am now considering using this to abstract over other strongly consistent key-value stores like etcd, zookeeper and maybe even eureka.
Please leave your thoughts on whether you think this would be a good idea and if so how this should be moved forward.
The following example has multiple ServiceDefinition with the same name but different tags, currently this scenario doesnt work and the ServiceBrokerActor at line 70 throws a NoSuchElement exception since the lookup is by name and not by id. In most cases this works because id == name but if name and id differ it was broken; PR #19 fixes this
ServiceDefinition("http.service1", "service1", Set("http"))
ServiceDefinition("gprc.service1", "service1", Set("grpc"))
Could you maybe make a new release after this โ
libraryDependencies += "nl.stormlantern" %% "reactive-consul" % "0.2.0"
could be changed to:
libraryDependencies += "nl.stormlantern" %% "reactive-consul" % "0.2.1"
so that consumers of the library don't run into the dockertestkit unresolved dependencies.
project/build.properties
specifies sbt.version=0.13.5
.
Execution of any sbt
command with that version results in Error during sbt execution: No Scala version specified or detected
.
The example should:
Hi there!
Thanks for releasing this library. It solves a lot of the bread-and-butter issues without the boiler-plate-code other libraries require in the consul-scala world. Thanks again!
I see the release to Maven central - as per https://issues.sonatype.org/plugins/servlet/mobile#issue/OSSRH-16296 - seem to be in-flight since last summer. Is there any plans to complete this?
I have some experience with bringing OSS libraries to Maven Central. What's the best way to support you?
Most important question to me right now: What is the desired coordinate to be used?
The following needs to be done:
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.