タグ

queueに関するakishin999のブックマーク (37)

  • Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと

    Amazon SQS は可用性やスケーラビリティの高いメッセジキューサービスであり、AWS の代表的なサービスの 1 つと言えるでしょう。ところが、番の運用に耐えられるアプリケーションにしようと思うと考えることが意外に多いものです。エントリーでは簡単なサンプルアプリケーションをベースに、番で運用するために考慮すべき点・注意点について見ていきます。題材として扱うのが SQS なだけで、SQS 以外を使ったアプリケーションにも応用できる内容もあるでしょう。 なお、SQS には Standard queue と FIFO queue がありますが、Standard queue を使う前提とします。 アジェンダは次のとおりです。 サンプルアプリケーション 1. ログ 2. At-least-once delivery と visibility timeout 3. デプロイ 4. 異常系 5

    Amazon SQS を使ったアプリケーションを本番で運用する際に考慮すべき基本的な 5 つのこと
  • AWS をどう使わずにおくか - portal shit!

    ジョブキューイングシステムをどうするかでチームのリーダーとやりあって考えたことがあるのでまとめておく。 Rails で使うジョブキューイングシステムの技術選定で、リーダーは Amazon SQS 推し(レガシーシステムで SQS を使っている)、自分は Sidekiq 推しだった。前職時代に Sidekiq を使ってトラブルに遭遇したことはなかったし、とても簡単に使えるので Sidekiq で十分だと思っていた。 Sidekiq は GitHub でのスター数は 9000 オーバーで、 Rails の ActiveJob バックエンドとしては事実上のデファクトスタンダードだといえると思う。ググれば情報がいっぱい出てくるし、チームメンバーもリーダー以外は全員 Sidekiq の使用経験があった。 GitHub - sidekiq/sidekiq: Simple, efficient back

    AWS をどう使わずにおくか - portal shit!
  • RabbitMQはSidekiqと同等以上だと思う: 前編(翻訳)|TechRacho by BPS株式会社

    次記事: RabbitMQはSidekiqと同等以上だと思う: 中編(翻訳) 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: RabbitMQ is more than a Sidekiq replacement – Not again 原文公開日: 2018/03/07 著者: Stanko Krtalić Rusendić 原文が長いため、3に分割します。中編と後編は今後公開いたします。 私はRabbitMQに乗り換えたこともあって、Sidekiqについてああだこうだと書いてきました。記事では、production運用を1年間行って得た知見と所感を述べたいと思います。 記事を書いたきっかけは、ある地元のRuby meetupグループで私が行ったスピーチが大きな反響を呼んだことでした。 そもそもSidekiqやRabittMQがなぜ必要なのか Sidekiqなどのいわゆ

    RabbitMQはSidekiqと同等以上だと思う: 前編(翻訳)|TechRacho by BPS株式会社
  • ストリーム処理を支えるキューイングシステムの選び方

    This document discusses messaging queues and platforms. It begins with an introduction to messaging queues and their core components. It then provides a table comparing 8 popular open source messaging platforms: Apache Kafka, ActiveMQ, RabbitMQ, NATS, NSQ, Redis, ZeroMQ, and Nanomsg. The document discusses using Apache Kafka for streaming and integration with Google Pub/Sub, Dataflow, and BigQuery

    ストリーム処理を支えるキューイングシステムの選び方
  • cron + α が欲しい時には ts(Task Spooler) のご利用をご検討下さいというメモ - ようへいの日々精進XP

    おひさしブリーフ、かっぱです。 tl;dr 下図のように cron ジョブで定期的にスクリプトを生成して実行させようとした時、スクリプト完了する前に次の cron ジョブが走ってスクリプトが生成されて、そのスクリプトが実行されてしまうような状況に遭遇してどうしたもんかなと悩んでいたら ts というツールを見つけたので試してみた。 memo ts とは http://vicerveza.homeunix.net/~viric/soft/ts/ https://osdn.jp/magazine/09/01/20/0150258 スクリプトやコマンドを ts コマンド経由で実行することで、それらをジョブとしてキューに放り込んで順次実行してくれるツール。冒頭の構成に ts を加えると下図のようになり、cron の開始時間とスクリプトの実行時間の依存関係は切り離される。 導入 CentOS 6 に導

    cron + α が欲しい時には ts(Task Spooler) のご利用をご検討下さいというメモ - ようへいの日々精進XP
  • Amazon SQSの使いどころ その2

    前回、キューを使って、時間がかかる処理を非同期で処理するフローを書きました。今回は、キューにAmazon SQSを使うと、なぜ嬉しいのか?を書いてみたいと思います。 なんだかバカみたいですが、前回も書いた通り、信頼性のあるキューを作るのは大変な事です。既に実績のあるサービスを、格安(激安)で使えるのですから、利用しない手は無いです。信頼性という意味では、 メッセージを複数のデータセンターにコピーするので、メッセージが消える心配をしなくてよい。 とAmazon側は言っています。これぞまさにクラウドって感じですね。メッセージのやり取りはSSL経由で、さらにユーザー認証がかかっていますので、基的なセキュリティーは保たれていると思います。 AmazonAPIは大抵REST/SOAPの二種類が用意されていますが、SQSも例外ではありません。ただ、APIを素のまま利用するケースはまれだと思います。

    Amazon SQSの使いどころ その2
  • RabbitMQ 3.6の新機能「Lazy Queues」の概要と検証

    はじめまして。DMM.comラボでインフラエンジニアをしております大山裕泰です。今回は、世の中にあまたある分散システムを支えるMQの雄の一つ「RabbitMQ」と、昨年12月にリリースされたv3.6.0において組み込まれた新機能「Lazy Queues」について、いったいどういうもので、どのように実装して、どんな結果になるのかをマルッと解説してしまおうと思います。稿によって、読者の皆さまが携わる分散システムの開発・運用に少しでも役立てばと思います。 RabbitMQについて 今回フォーカスするRabbitMQは、AMQPという柔軟性と信頼性に富んだメッセージ転送を実現するプロトコルの実装になります。AMQPは、2003年にJPMorgan Chaseで開発されたメッセージ転送プロトコルで、柔軟なメッセージルーティングの実現に加え、送信元から送られたメッセージのキューへの格納、およびキュー

    RabbitMQ 3.6の新機能「Lazy Queues」の概要と検証
  • verk/README.md at master · edgurgel/verk

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    verk/README.md at master · edgurgel/verk
  • shoryuken gemで簡単にSQSを使ったJob Queue WorkerをRailsに作成する | DevelopersIO

    丹内です。 掲題のとおり、SQSを簡単に使うことができるshoryuken gemを使ってみました。 前提 ruby 2.2.4 rails 4.2.5 マネジメントコンソールでSQSの作成 AWSマネジメントコンソールのSQS画面から新規にキューを作成します。 Shoryukenによる負荷が抑えられるよう、Receive Message Wait Timeの設定を忘れないようにしてください。 インストール Gemfileに以下のように書いてbundle installします。 gem 'shoryuken' group :development, :test do gem 'foreman' end あとで解説しますが、railsアプリとは別にworkerプロセスも立ち上げるので、便利になるようforemn gemもインストールしています。 Jobクラスを作成 Shoryuken::Wo

    shoryuken gemで簡単にSQSを使ったJob Queue WorkerをRailsに作成する | DevelopersIO
  • →↓↘+パンチ - クラウドワークス エンジニアブログ

    みなさんさようなら、インフラ部の @h3_poteto です。 今日は昇竜拳の話をします。 ↑昇竜拳 クラウドワークス体のアプリはRailsで作られているのですが、その中にちょいちょい非同期処理が載せられています。 メール送ったり、Elasticsearchとの同期処理だったり、重いスカウト処理だったり。 DelayedJobだと限界が見えてきた その非同期処理として、今までは、DelayedJobを使っていたんですが、ジョブが多くなり、キューが多くなり、ワーカーが多くなるにつれて、どんどん重くなってきました。 ActiveRecordを介してDBにキューを貯めるという方式がどうにもキツイ。 DelayedJobは当に気軽に非同期処理が出来て良いのですが、キューにRDBを使うところがすごくイケてないです(だから気軽にできるんですけど)。 エンキューが多くなればそれだけ書き込みも、また処

    →↓↘+パンチ - クラウドワークス エンジニアブログ
  • CentOS6にQ4Mを入れて、Q4Mを使って他サーバPHPプログラムとの連携 - Qiita

    [root@q4m ~]# cd /usr/local/src [root@q4m ~]# git clone git://github.com/kazeburo/mysetup.git [root@q4m ~]# cd mysetup/q4m_mysql56 [root@q4m ~]# sh ./setup.sh cmake, libaio-devel, ncurses-devel は入っていなければこのスクリプトが自動的に yum から入れてくれます。 しばらく待つとビルドが完了し 「メッセージキュー用MySQL」が起動してくれます。 ここまではQiitaの記事に記載があります。 「CentOS 7 に Q4M をインストールする」 出典:http://qiita.com/akishin/items/bbe90f892e9fff2e105c なお、setup.shのファイルにはバージョ

    CentOS6にQ4Mを入れて、Q4Mを使って他サーバPHPプログラムとの連携 - Qiita
  • ActiveJob はまだちょっと使うには早いかも - おもしろwebサービス開発日記

    Rails 4.2 から導入された ActiveJob は、sidekiq や resque などのバックグラウンドジョブ系 gem を、同じ利用方法で扱えるようにしてくれます。 これは便利だなーと思い、sidekiq を ActiveJob を通じて使ってみたのですが、しばらく使った後に「まだ格的に使うのは早いかも」と感じました。 リトライ機能が貧弱 sidekiq は、ジョブが失敗した時にリトライする機能があります。失敗するたびに次にリトライする間隔が伸び、一定回数失敗したら完全に失敗として扱われます。リトライ間隔や、完全に失敗になるまでの回数はもちろん変更可能です。 Web上でリトライしているジョブや完全に失敗したジョブを確認することもできます。 ActiveJob を使うと、この細やかなリトライ機能を失うことになります。例えば、次のように例外を拾って再度キューにジョブを入れること

    ActiveJob はまだちょっと使うには早いかも - おもしろwebサービス開発日記
  • fluentdによる大規模キュー設計

    「Fluentd Meetup 2015 夏」で発表した内容です。

    fluentdによる大規模キュー設計
  • [Ruby on Rails]Active Job – 複数のキューを優先順位をつけて実行する | DevelopersIO

    はじめに 前回に引き続き、Active Jobについてです。今回は複数のキューについてです。前回と同様、Active JobとSidekiqを使用します。 キューについて 前回にも書いたように、Active Jobはキューを実現するためのインターフェースであり、実行にはSidekiqなどの外部のGemを利用します。なのでここでは、Sidekiqのキューについて見てみたいと思います。 By default, sidekiq uses a single queue called "default" in Redis. If you want to use multiple queues, you can either specify them as arguments to the sidekiq command, or set them in the Sidekiq configuratio

    [Ruby on Rails]Active Job – 複数のキューを優先順位をつけて実行する | DevelopersIO
  • 分散型メッセージングミドルウェアの詳細比較 | POSTD

    メッセージキュー について書いている連載の続きとして、今週末は分散型メッセージングを実行するための様々なライブラリを詳細に分析していきたいと思います。今回の分析では、APIの特性、デプロイメントやメンテナンスの容易さ、そしてパフォーマンスの質を含めて2、3種類の異なる側面に着目します。メッセージキューは2つのグループに分類できます。ブローカレス(brokerless)とブローカード(brokered)です。ブローカードなキューはエンドポイント間に何かしらのサーバを挟んでいますが、ブローカレスなメッセージキューは、メッセージ送信の際でも間に何も挾まないP2Pです。 今回分析するのは以下のシステムです。 ブローカレス nanomsg ZeroMQ ブローカード ActiveMQ gnatsd Kafka Kestrel NATS NSQ RabbitMQ Redis 取り掛かりとして、ほぼ間違

    分散型メッセージングミドルウェアの詳細比較 | POSTD
  • RabbitMQ + ruby でプロセス間のやりとりを試してみた

    RabbitMQ + ruby でプロセス間のやりとりを試してみた はじめにRabbitMQはErlang製のAMQP(Advanced Message Queuing Protocol)(Advanced Message Queuing Protocol – Wikipedia)を使用したメッセージキューイングサーバーで、メッセージキューイングとは「メッセージ」を受け取ってそのメッセージを「キュー」に格納していくものです。 任意のプロセスをメッセージキューイングサーバーに接続しておいて、メッセージを送信したり受け取ったりできます。これによって、メッセージ送信者は相手の処理を待たずに自分の処理をすすめる動作が作れたりします。 例えば、AさんとBさんがいて、今日出荷するオレンジの個数とアップルの個数を数えるとします。 AさんはBさんに、”今日出荷するオレンジの個数を数えておいて”というメッセ

    RabbitMQ + ruby でプロセス間のやりとりを試してみた
  • RubyからRabbitMQに接続

    technical notes about web, languages, graphics or other software development stuff. RubyのクライアントからRabbitMQに接続し、Publish / Subscribeの動作確認をする。ここではdirect exchangeを使う。 ライブラリインストール AMQPクライアントライブラリはamqpを使う。よくメンテナンスされているし、ドキュメントもよく整備されているので決定版でしょう。 $ gem install amqp consumer まずはメッセージを購読するconsumerを作成する。 ここでは以下のような設定でメッセージを待ち受けている。 queue名:サーバー自動生成(空文字を渡すことで設定) exchange名:ex.direct exchangeからqueueに送信する際のルーティン

  • Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    Rails で、Controller に定義されている action を一度に取得する方法はありますか? - QA@IT
  • Condorを使ってみた(2) - aaabbb_200904の日記

    前回からかなり時間があいているので、リンクを貼っておこう。。ww (Condorを使ってみた(1): http://d.hatena.ne.jp/aaabbb_200904/20100322/1269272521 ) ちなみに、同時実行ジョブ数の変更方法を調べるのに半年かかってしまったことによる。 orz 同時実行ジョブ数の変更 Condorを使用する際には、ジョブの同時実行数はそのノードに存在するCPUの数となるため、sleepや、ネットワーク待ちを含むようなジョブがあると、CPU使用率が落ちてしまうという動作になる。 この動作を回避するには、condorの設定ファイルの /var/lib/condor/condor_config.local で、NUM_CPUSの設定を行えばよい。 NUM_CPUS=10 (10は任意の数値)再起動を行った後、condor_statusの出力が、次のよ

    Condorを使ってみた(2) - aaabbb_200904の日記
  • Condorを使ってみた(1) - aaabbb_200904の日記

    以前オープンソースの運用ツールについてまとめたとき( http://d.hatena.ne.jp/aaabbb_200904/20090718/1247940134 )、オープンソースのジョブ管理のツールにはなかなかいいものがない、ということを書いた。その後、Red Hat MRGについて調べていたとき、パッケージ内にCondorというGrid向けのバッチジョブ実行ツールが含まれていることに気づいたのだが、こちらをよく調べてみると、ジョブ管理ツールとしてもかなり優秀と思われたので、少し使ってみた。 Condor ( http://www.cs.wisc.edu/condor/ ) の主な使い方は、バッチジョブを複数のノード(Computer Grid的にPCの空き時間を使うことにも対応している)に振り分けることのようだ。ただし、Condor自身は、 1.依存性を持ったジョブの実行 2.複数

    Condorを使ってみた(1) - aaabbb_200904の日記