by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 01:09
    harry-hao closed #790
  • 00:21
    harry-hao opened #791
  • 00:19
    harry-hao edited #790
  • 00:19
    harry-hao edited #790
  • Aug 06 16:19
    harry-hao opened #790
  • Aug 06 09:14

    snripa on develop

    POC for: public api, private ap… get token functionality assign proper authentication le… and 6 more (compare)

  • Aug 06 09:14
    snripa closed #59
  • Aug 06 08:59
    snripa synchronize #59
  • Aug 06 08:59

    snripa on auth

    role_arn - optional (compare)

  • Aug 06 07:10
    AhianZhang starred scalecube/scalecube-gateway
  • Aug 05 15:20
    snripa synchronize #59
  • Aug 05 15:20

    snripa on auth

    Change tf backend namings, and … (compare)

  • Aug 05 14:29
    snripa opened #66
  • Aug 05 14:28
    snripa opened #65
  • Aug 05 09:59
  • Aug 05 04:11
    MasterLover starred scalecube/scalecube-services
  • Aug 04 15:59
    snripa opened #64
  • Aug 04 15:37
    snripa opened #63
  • Aug 04 15:32
    snripa synchronize #59
Ronen
@ronenhamias
its the best place to see the usecases how to use
and the test are also written as usecases
so each test demo some behavior that might happen
the examples are more on level of getting started
the tests go deeper
zkybohr
@zkybohr

what I meant was,

in your raft implementation, you will be using as,

this.microservices.cluster().spreadGossip

for broadcasting to the cluster nodes.

But in the latest code the microservices class does not expose the cluster reference. Is there any way to do this?

Ronen
@ronenhamias
microservices uses discovery module
the ScalecubeServiceDiscovery uses cluster internally
so if you need strict SWIM and Gossip you can just use cluster
for services you can use discovery() that speaks about service endpoints
so we pushed down the cluster as implementation of discovery
you can always create clusters instances when required
zkybohr
@zkybohr
actually my work is with the service level only, but checking if there is a way to send messages to all the cluster nodes
Ronen
@ronenhamias
you could theoretically create an api on all cluster nodes
and fanout to all using your custom router
but this would be kind of wired usecase :)
better alternative is to use directlly the cluster
but gossip is not a messaging platfrom
there is no ordering
its will reach to all cluster nodes eventually
its good for static things
cluster have transport
and knowing members you can message to all
zkybohr
@zkybohr
understood that, trying to implement the master role in lazier way
"better alternative is to use directlly the cluster" -- means we can get the cluster reference of the microservice or a separate cluster instance?
Ronen
@ronenhamias
create new Cluster()
zkybohr
@zkybohr
hmm ok
Ronen
@ronenhamias
this why i said that if i was to implment it today i would do this as part of cluster
zkybohr
@zkybohr
yeah understood that,,just checking if it can be done in some easier way for a quick workaround
@ronenhamias thanks a lot for your inputs
Eugene Utkin
@eutkin
Hi all
please, help me in this case.
test failed by 43 line. If we have signature on Invalid interface as Flux<String> invalidRequestChannel(Flux<String> input) test succecfull
I'm writing the documentation for the project and I found this bug.
Eugene Utkin
@eutkin
@ronenhamias I need your help. I started writing documentation for my Service Factory and I'm missing terms. We can create terms for:
  • Interface to describe the user services API
  • The implementations of these interfaces that we register with Microservices
Eugene Utkin
@eutkin
ServiceInfo's instance and Service Definition maybe?
Eugene Utkin
@eutkin
@ronenhamias have we aeron as transport for scalecube cluster already?
Ronen
@ronenhamias
not as part of scalecube open source
Eugene Utkin
@eutkin
ok
Eugene Utkin
@eutkin
Ping me,please, when you free and we may continue work with my DI PR :) I waiting
Ronen
@ronenhamias
Eugene Utkin
@eutkin
cool
郝羽
@harry-hao
I want to pass some argument in ServiceMessage headers, so that I can route by it,
then I found headers cannot be mapped to the ServiceMethod.
I thought it can be done by adding a ServiceHeader like following snippet, could anyone give some advice on this? Thanks.
@Service
public interface FooApi extends IDL {
    @ServiceMethod
    Flux<SCMessage> roundtrip(Flux<SCMessage> messages,
                              @ServiceHeader("dst-region") String dstRegion);
}
Swapnil Pandey
@swapnil-pandey
Suppose I have two systems that are connected to the internet. IP is assigned to both the systems by the ISP. Can I use scalecube to pass messages between two such nodes? OR do I need to have a static public IP assigned to each system?
郝羽
@harry-hao
You will need at least one static IP to let other nodes to join, such IP is called seedAddress in the code, and it should be public if other nodes are not in same LAN network.
But with single seed is not robust, it will fail when the seed fails. Having more seeds will make it better.
@swapnil-pandey
郝羽
@harry-hao

About the header thing, I just realized I can do that using service dispatcher, like:

  @ServiceMethod
  @RequestType(GreetingRequest.class)
  @ResponseType(GreetingResponse.class)
  Flux<ServiceMessage> bidiGreetingMessage(Publisher<ServiceMessage> requests);

But it errors when invoking the service provider, I have sent a PR for this, would some one please take a look?
scalecube/scalecube-services#790
Thank you.

Swapnil Pandey
@swapnil-pandey
@harry-hao so can this work if the seed node has static public IP but the there nodes don't? Will broadcast from any node work?
郝羽
@harry-hao
It depends what you use. @swapnil-pandey
For gossip, if two nodes could not reach each other, there's still a chance they can gossip to each other (depends on the gossip settings) with the help of other nodes which they could reach.
For RPC, if two nodes could not connect each other, then a central node which they both can connect could be used as exchange, this central node need a public IP to let others provide and consume service from it.