Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
Ronen
@ronenhamias
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.
Ronen
@ronenhamias
@harry-hao you are correct to access headers of service message the service message can be used in the contract.
the use of service message in the contract is sometimes too cumbersome so in those cases its needed its possible but i guess in most usecases one its more simple to just POJO type in the contract.
郝羽
@harry-hao
Thanks for your suggestion, @ronenhamias
I totally agree. But in my case it seems worth, I was trying to route RPC calls between data centers,
when RPC calls received, I need to decide to terminate it locally or forward it, header is smaller and convenient here.
Ronen
@ronenhamias
@harry-hao did you consider to use custom router?
if you implement your own router then you should have ability to access service message headers and select endpoint of your choice.
郝羽
@harry-hao
Thanks, it works.😁
thoheoketket
@thoheoketket
I just want to learn about Raft-leader-election so I have downloaded the raft-leader-election-master project but in the project has Mircoservices and others that related to the bigger project so I have downloaded them all but i still can not run anythings because they got conflicts with each others. can someone have me pls? thank you so much. I have downloaded clumsy/scalecube and scalecube/scalecube-services. I have build them both and change the dependencies of the raft project with both but I still can not run :(( so can someone tell me that have I downloaded the right project? thank you so much
Ronen
@ronenhamias
yhea this was just a playground test very long time ago
@thoheoketket
the idea was to check possibilities in scalecube project and learning
thoheoketket
@thoheoketket
so it means that i can not test it now?
thoheoketket
@thoheoketket
I have built the clumsy/scalecube successfully and use it as dependency for my raft-leader-election-master. everything is ok except the test folder. in one of the file test, the function startAwait() of Microservices cant be found. I dont know how to fix it to run the test folder. can u help me pls @ronenhamias. thank you so so much
thoheoketket
@thoheoketket
and i cant find class io.scalecube.net.Address. have you deleted that class? :((
Ronen
@ronenhamias
it was moved to another module
@thoheoketket i am saying it passed long time since i maintained it so dont know the status of it
i suggest to consider it like a code example