Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 11:24
    Kenji-Tanaka commented #3887
  • 10:45
    nagytech edited #4086
  • 10:45
    nagytech synchronize #4086
  • 10:43
    nagytech opened #4086
  • 09:00
    Horusiath commented #4077
  • 06:31
    Aaronontheweb commented #4085
  • 06:28
    Aaronontheweb commented #4085
  • 06:24
    Aaronontheweb commented #4085
  • Dec 07 11:49
    IgorFedchenko commented #4085
  • Dec 07 10:31
    IgorFedchenko commented #4085
  • Dec 07 08:36
    IgorFedchenko commented #4085
  • Dec 06 20:57
    IgorFedchenko commented #4085
  • Dec 06 20:32
    IgorFedchenko commented #4085
  • Dec 06 20:01
    IgorFedchenko commented #4085
  • Dec 06 19:55
    IgorFedchenko commented #4085
  • Dec 06 16:22
    Aaronontheweb labeled #3997
  • Dec 06 16:22
    Aaronontheweb closed #3997
  • Dec 06 16:20
    IgorFedchenko commented #3997
  • Dec 06 16:08
    IgorFedchenko commented #4085
  • Dec 06 15:50
    Aaronontheweb assigned #4085
Arjen Smits
@Danthar
@atresnjo take a look at actorselections and how addresses work: https://getakka.net/articles/concepts/addressing.html#querying-the-logical-actor-hierarchy
atresnjo
@atresnjo
Yeah I can know that I can do it myself, question was more like if there's something already inbuilt.
thanks tho
Chris
@chriskolenko

Is there any gotcha's when using Cluster Discovery Consul + Routing?

Here is my deployment config:

            /other {
                router = broadcast-group
                routees.paths = ["/user/api"]
                virtual-nodes-factor = 8
                cluster {
                    enabled = on
                    max-nr-of-instances-per-node = 2
                    allow-local-routees = off
                    use-role = "other"
                }
            }

I have the other console application running with an actor ready for messages at /user/api

Here is the cluster config:

    cluster {
        roles = ["other"]
    }

Logs are showing that the nodes are up and running with the correct roles.

But the when telling /user/other a message it keeps deadlettering. Anyway to debug what's going on?

Oh... I'm having no issues with routing when I'm broadcasting to the same role + enabling allow-local-routees. But once scaling up I'm sure the external routees wouldn't work :(
Chris
@chriskolenko
^^^^^^^^^ Nevermind.. Found my issue..
Was creating the ActorSystems with different names. Once I figured it out, started working like a charm. :D
AndreSteenbergen
@AndreSteenbergen
Doe anyone knwo why this can occur in a cluster? I see a lot of these in my logs
[ERROR][12/2/18 4:18:21 PM][Thread 0007][remoting] SkipLastField called on an end-group tag, indicating that the corresponding start-group was missing
Cause: Google.Protobuf.InvalidProtocolBufferException: SkipLastField called on an end-group tag, indicating that the corresponding start-group was missing
Can my MsgPack serialization be the reason that message in protobuf is raised? All my own messages are serialized in MsgPack, but I can't find a lot googling this error.
Zied
@zimayel_gitlab
Hello, can maybe someone Confirm that the first example releated to this: https://getakka.net/articles/intro/use-case-and-deployment-scenarios.html using FluentConfig is absolete and have to be updated ?
joowon
@HIPERCUBE
image.png
How can i configure hyperion serialization?
I followed getakka.net serialization document, but it doesn't work.
image.png
As you can see, matched serializer is still NewtonSoftJsonSerializer
Jack Wild
@jackowild
does anybody know if it is possible to check if all actors in an actor system have an empty mailbox?
Bartosz Sypytkowski
@Horusiath
@HIPERCUBE how are you attaching this HOCON config to your actor system? (Also: are you using .net core or full framework?)
Chris G. Stevens
@cgstevens
I do want to give a shout out to the Akk.Net team. You all have done an amazing job.
I've been using Akka.Net for over 3 years and just really enjoy working with Actors, messaging and SignalR.
Here is my latest creation - https://github.com/cgstevens/FileProcessor
Aaron Stannard
@Aaronontheweb
@cgstevens wow! that is really cool
and this can work simultaneously across multiple machines?
Chris G. Stevens
@cgstevens
image.png
@Aaronontheweb Thanks Aaron!
Well I have only been working on my system but I did run a quick test and my work was in a different domain as well as a copy of my WindowsMonitor, so yes to answer your question :)
I am trying to get a project together that demonstrates all of the AWESOME tools you all have built.
So right now in the solution contains the following services:
Lighthouse - service discovery
Processor (EastCoast/WestCoast) - This is to simulate the Singleton Actor, there can only be one just like highlander :) Basically keeps track of jobs.
Worker (EastCoast/WestCoast) - This demonstrates the ClusterRouterPool and distributes the reading of a line.
WIndowsMonitor - WindowsForms application that allows you to view into the cluster... (just like my other I have created)
WebMonitor - This is using SignalR to funnel message from an actor which is using PubSub Mediator to subscribe to Topics from the Processor and Worker services.
Chris G. Stevens
@cgstevens
If anyone would love to clone my project and make sure it works that would be awesome; LOL :)
You know.. famous last words... works on my box!
Chris G. Stevens
@cgstevens
Ohhhh if you want to run across multiple systems you will need to change the 127.0.0.1 ipaddress in the hocon config to the host ipaddress.
You will need to do this with all members of the cluster so that they know how to talk to each other.
Aaron Stannard
@Aaronontheweb
@jackowild you'd need to write some custom code for that - using wildcard actor selections and a custom message type
@zimayel_gitlab yes, that's correct
we haven't supported that syntax in years
Ilya Komendantov
@IlyaKomendantov_twitter

Hey guys,
I have data duplication issue when using TCP. I'm sending from "for" loop on client and reply with the same message from akka (echo).
If the message size 15 bytes + 4 for length, everything is perfect (sent 20k messages that is arrived in order and no duplication).
If message size more than that, duplications arrived. The pattern here is 1,2,3,4,2,3,4,5,6,7,8,2,3,4,5,6,7,8,9,10, ... (not always)
From my investigation the issue caused by

  1. <NetworkStream>.WriteAsync(packet, 0, packet.Length).ConfigureAwait(false) on client
    or
  2. <Tcp.Received>.Data.ToArray() on server (akka)

I have a repro project and will send to anyone who volunteers for investigation :)

Alex Michel
@amichel
Hi, is there an easy way to get count of actors my actor is currently watching? FullActorState is internal class and doesn't expose _watching.Count?
joowon
@HIPERCUBE
@IlyaKomendantov_twitter Can you share the reproduce repo?
Ilya Komendantov
@IlyaKomendantov_twitter
Ilya Komendantov
@IlyaKomendantov_twitter
@HIPERCUBE I've also captured traffic it shows that client sent 10 messages and got 22 in the reply https://drive.google.com/open?id=1KYSKINzPWPoyUuK5BWHR8PeXQPg7Z-iz
remark: this is a localhost
Jan Schoeman
@oofpez
Hi! I'm looking into options for telemetry and monitoring so I can find bottlenecks.
seeing a lot of stuff for JVM Akka but not so much for AKKA.NET.
joowon
@HIPERCUBE
I really want to know that too :)
Phobos is a monitoring and tracing integration for Akka.Net build by @Aaronontheweb
the JVM has the advantage of using AOP like things to weave that stuff into your actors. .NET does not has that advantage
senzacionale
@senzacionale

I also have a problem
Message='akka.actor.provider' is not a valid type name : 'Akka.Cluster.ClusterActorRefProvider, Akka.Cluster'

my hocon config file:

akka {

stdout-loglevel = DEBUG
loglevel = DEBUG
loggers=["Akka.Logger.Serilog.SerilogLogger, Akka.Logger.Serilog"]
log-config-on-start = on  

actor {
    provider = "cluster"
}

remote {
    dot-netty.tcp {
            hostname = "127.0.0.1"
            port = 8081
            maximum-frame-size = 256000b
        }
}            

cluster {
    seed-nodes = ["akka.tcp://tradex@127.0.0.1:4053"] # address of seed node
    roles = ["ordersync", "logger"] # roles this member is in
    role.["ordersync"].min-nr-of-members = 3 # crawler role minimum node count

    # auto downing is NOT safe for production deployments.
    # you may want to use it during development, read more about it in the docs.
    #
    # auto-down-unreachable-after = 10s
}

}

Bartosz Sypytkowski
@Horusiath
@senzacionale do you have Akka.Cluster dependency in you project (it's separate nuget package). Also sometimes people are calling their project the same names, as akka packages are named, causing namespace clashes: make sure it's not your case ;)
Peter Huang
@ptjhuang
Would this be of any interest to anyone for akka.net contrib? https://doc.akka.io/docs/akka/2.5.9/actor-discovery-typed.html
Maciek Misztal
@mmisztal1980
Hey guys, can anyone tell me how many fallbacks does the config support? I've just tried to assemble my config from a parsed Config + 2 fallbacks, when the ActorSystem was created, It didn't contain all of the configs I've chained via the .WithFallback
Jorge Candeias
@JorgeCandeias
I’m not aware of limits, but on one project we have about eight fallbacks and they work fine. The one occasion where they weren’t working and I was scratching my head was because of a hard to spot typo in the hocon text.
Mike Bridge
@mikebridge
I have a WebApi app that is running in an Azure App Service and I was about to try to get it to communicate back and forth with a remote actor system running on a VM. However, I don't think I can open up a port on the App Service that the remote actor system can communicate with. If I understand correctly, attaching to a vnet will only give my WebApi app access to the things in the VNet, but not vice-versa. Do I need to move the webapp to an App Service Environment or is there a better way of accomplishing this?
Shukhrat Nekbaev
@snekbaev
heh, similar question to @mikebridge. I've been using remoting on Azure with WebApps (not ASE) since the end of September. Occasionally messages were not received back from the VM, but VM always got them. In general, WebApp restart seemed to be the way to address it. Recently it's been happening more frequently. Not sure if it has anything to do with an upgrade to 4.7.2 and/or latest Akka+dependencies. I do use VNET. When I start WebApps first and then the windows service on the VM - everything is fine. It can last for days. Basically it seems to pair webapp -> VM and keeps it like that. However, when I restart the WebApp I see "connection was reset by peer" on the VM and then when WebApp is started and the message is sent then I see the debug text in the VM's service: attempt to associate WebApp -> VM, which seems to pass, then it receives the message, processes it and tries to reply. And this fails because at this moment VM's service tries to pair back to the WebApp and I get a warning that remote is not accessible and it is gated etc. etc. What's interesting is that it doesn't happen in the happy path start-up order, but does if WebApp is restarted (at least). BTW, happy path works well in the scale-out scenario too. Is there a way to configure VM's service to not try to pair back on connection resets? :) I understand that's against the peer-to-peer nature of Akka where both endpoints should be reachable... However, ASE is not an option and given that it already works half-way... maybe there's some tweak? :) Or is this trully the case (as per docs) for a custom low-level Akka I/O approach? @Horusiath, @Aaronontheweb what do you guys think?
Mike Bridge
@mikebridge
@mikebridge In my particular case my webapp's communication with the remote actorsystem is only ever one-way. My best guess is that a better solution is to get rid of Akka.Net in WebApi and rewrite the remote actor system as a Rest API that uses Akka.Net internally. ASE looks like overkill for this system, and redeploying in a VM isn't difficult but seems like a hassle just to open a port in WebApi that isn't receiving any messages anyway. (It would be too bad, because the remote actor works great in all my internal deployment scenarios.)
Peter Huang
@ptjhuang
If we want to implement Akka.Monitoring AND establish tenant/user context AND do some authorisation checks based on message header, what's a good way to do it without multiple inheritance and traits, and with much of these infrastructural needs requiring access to lifecycle overrides of the Actor. I'm thinking of a ReceiveActor derived class (e.g. AspectReceiveActor) that provides extension points to an ordered list of "aspects" to be executed AroundXYZ. The aspect list is populated by the derived class of AspectReceiveActor in its constructor. Any other better ideas?
Shukhrat Nekbaev
@snekbaev
@mikebridge the reason I used VNET pairing - wanted all Akka traffic to be completely internal. Yes, it costs ~23 EUR, but not nearly as much as ASE :)