タグ付けされた質問 「actor」

5
LMAXのかく乱パターンはどのように機能しますか?
かく乱のパターンを理解しようとしています。私はInfoQビデオを見て、彼らの論文を読んでみました。リングバッファが関係していることを理解しています。これは、キャッシュの局所性を利用して新しいメモリの割り当てをなくすために、非常に大きな配列として初期化されることを理解しています。 位置を追跡する1つ以上の原子整数があるように思えます。各「イベント」は一意のIDを取得しているようで、リング内での位置は、リングのサイズなどに関する係数を見つけることでわかります。 残念ながら、私はそれがどのように機能するかを直感的に理解できません。私は多くの取引アプリケーションを実行し、アクターモデルを研究したり、SEDAを調べたりしました。 彼らのプレゼンテーションでは、このパターンは基本的にルーターがどのように機能するかであると述べました。しかし、ルーターがどのように機能するかについての良い説明は見つかりませんでした。 より良い説明への良い指針はありますか?

5
Scalaアクター:受信vs反応
まず、Javaの経験は豊富ですが、関数型言語に興味を持つようになったのはつい最近のことです。最近、Scalaを検討し始めました。Scalaはとてもいい言語のようです。 ただし、「Scalaでのプログラミング」でScalaのActorフレームワークについて読んでいますが、理解できないことが1つあります。30.4章では、react代わりにreceiveを使用するとスレッドを再利用できるようになると述べています。これは、JVMではスレッドが高価であるため、パフォーマンスに優れています。 これは、のreact代わりに呼び出すことを覚えている限り、receive好きなだけアクターを開始できることを意味しますか?Scalaを発見する前は、Erlangで遊んでおり、Programming Erlangの作者は200,000を超えるプロセスをスポーンさせずに生み出したことを誇りに思っています。Javaスレッドでそれを行うのは嫌です。Erlang(およびJava)と比較して、Scalaではどのような制限を見ていますか? また、このスレッドの再利用はScalaでどのように機能しますか?簡単にするために、スレッドが1つしかないと仮定します。私が開始するすべてのアクターはこのスレッドで順次実行されますか、それとも何らかのタスク切り替えが行われますか?たとえば、メッセージを互いにピンポンする2つのアクターを開始した場合、それらが同じスレッドで開始された場合、デッドロックの危険がありますか? Scalaのプログラミングによると、使用するアクターの作成はを使用する場合reactよりも困難ですreceive。react戻らないので、これはもっともらしく聞こえます。ただし、この本では、をreact使用してループ内に配置する方法を示していますActor.loop。結果として、 loop { react { ... } } 私にとって、これは while (true) { receive { ... } } これは本の前半で使用されています。それでも、本は「実際には、プログラムには少なくとも数個が必要になる」と述べていreceiveます。だから私はここで何が欠けていますか?返す以外に、receiveそれreactができないことは何ですか?そして、なぜ私は気にしますか? 最後に、私が理解していないことの核心にたどり着きます。この本ではreact、スレッドを再利用するためにコールスタックを破棄することがどのように可能になるかについて、本が繰り返し言及しています。それはどのように機能しますか?呼び出しスタックを破棄する必要があるのはなぜですか?そして、関数が例外(react)をスローすることによって終了したときにコールスタックが破棄されるのはなぜreceiveですか? 『Scalaでのプログラミング』は、ここでの主要な問題のいくつかにつまづいているように思えますが、それは残念です。

3
WebSphere MQやTibco Rendezvousなどのメッセージングソリューションの代わりにアクターを使用するのはいつですか?
JMSの代わりにScalaのアクターを支持する設計上の決定についての質問と回答をすでに読みました。。 通常、私たちは何年も前から存在しているメッセージングソリューションを使用します。WebSphereMQやApache ActiveMQなどのJMS実装がポイントツーポイント通信に使用されるか、Tibco Rendevousがマルチキャストメッセージングに使用されます。 それらは非常に安定しており、実績があり、高い可用性とパフォーマンスを提供します。それにもかかわらず、設定とセットアップはAkkaよりもはるかに複雑に見えます。 前述の製品(WebSphere MQまたはActiveMQ)がこれまで正常に使用されてきたいくつかのユースケースでAkkaを使用する必要があるのはなぜですか。今後のプロジェクトで、WebSphere MQまたはTibco RVの代わりにAkkaを使用することを検討する必要があるのはなぜですか? そして、いつアッカを避けるべきですか?他のソリューションと同じ高可用性とパフォーマンスを提供していますか?それとも、Akkaを他のメッセージングミドルウェアと比較することさえ悪い考えですか? たぶん、JVM(Point-to-Point)、TibcoRV(マルチキャスト)、Akka以外に検討する必要がある別のメッセージングソリューションもJVM環境にありますか?
106 java  scala  jms  actor  akka 

3
Node.jsイベントシステムは、Akkaのアクターパターンとどのように異なりますか?
私はNode.jsしばらく仕事をしてきましたが、自分はJavaにかなり長けていると思います。しかし、私Akkaはその俳優パターンを発見し、すぐに興味を持った(私が理解していることから)。 ここで、私のJavaScriptスキルがScala / Javaスキルと同等であると想定して、どちらかのシステムの実用性に焦点を当てたいと思います。特にウェブサービスの面で。 Nodeは多くの同時操作の処理に優れていると私は理解していました。アセット管理システムに適したNode Webサービスは、(大規模なトラフィックの多いアプリケーションで)変更を送信する多くのユーザーを同時に処理するのに優れていると思います。 しかし、アッカの俳優について読んだ後、それは同じことで優れていると思われます。そして、私は仕事を一口サイズのピースに減らす考えが好きです。さらに、何年も前に、Erlangに手を出して、それが使用するメッセージパッシングシステムに夢中になりました。 私は複雑なビジネスロジックを処理する多くのアプリケーションに取り組んでおり、どちらか一方に大きくジャンプする時がきたと思っています。特に、レガシーStrutsおよびC#アプリケーションのアップグレード。 とにかく、聖戦を避けて、2つのシステムはどのように根本的に異なっていますか?どちらも同じ目標を目指しているようです。おそらくAkkaの「自己修復」アーキテクチャには利点があります。 編集する 近い票を獲得しているようです。この質問を「どちらが良いですか、ノードとかakkaか」と考えないでください。私が探しているのは、Nodeのようなイベント駆動型ライブラリとAkkaのようなアクターベースのライブラリの根本的な違いです。
93 node.js  events  akka  actor 

2
アクターはスレッドと比較してどのように機能しますか?
俳優がどのように良いか短い説明がありますかスレッドと比較してか? スレッドをアクターと見なして他のスレッドにメッセージを送信することはできませんか?多少の違いはありますが、はっきりしていません。スレッドを別の方法で使用して、任意の言語でアクターを使用できますか?

1
JMSではなくScalaのアクターを支持する設計上の決定は何ですか?
JMSの代わりにScalaアクターを使用する場合の違いは何ですか? たとえば、パフォーマンスとスケーラビリティの観点から、ScalaアクターモデルはJMSと比較して何を追加しますか?どの場合、JMSではなくアクターを使用する方が理にかなっていますか?つまり、JMSがカバーできないアクターが対処する問題は何ですか?
81 java  scala  jms  actor 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.