タグ

ブックマーク / qiita.com/joker1007 (5)

  • Kafka StreamsのWindowStateStoreを利用した集計処理で未来のタイムスタンプを扱う際の危険な罠 - Qiita

    Kafka StreamsにはWindow Aggregationという仕組みがある。 特定の時間間隔毎にイベントの数を数えたり等を行うための機能だ。 で、それを利用してユーザー毎のイベント実行回数をカウントする処理を書いていたのだが、何故か結果が合わない。 テストコードでは再現しないし確率的に結果がズレるという状況が発生した。 物凄くハマったが、原因は未来のtimestampが来た時の処理にあった。 検証バージョン kafka-streams-2.4.0 問題の詳細 一度書き込んでバックエンドのKafkaトピックまでデータが届いているにも関わらず、データを再度取得しようとした時に既存の集計カウントが取得できない。 そのためカウントがリセットされるし、他の箇所でも結果が取得できない状態になっていた。 確実にput処理は行われている 紐付いているKafkaのトピックには確実にデータが届いてい

    Kafka StreamsのWindowStateStoreを利用した集計処理で未来のタイムスタンプを扱う際の危険な罠 - Qiita
  • 開発しやすいRails on Docker環境の作り方 - Qiita

    最近、Rails界隈でDocker使い始めました、という話を聞く機会が増えてきたので、自分が開発環境整備用に構築したDockerの設定をまとめておく。 ちなみに、production運用については以前書いたので適当に探してくださいw 結論から書いておくと、volumeをちゃんと活用すればいい、ってだけの話です。 まず、番用と開発用のDockerfileは分けた方が良い。一つでやろうとするとどうにも無理がでるので。 自分はDockerfileとDockerfile-devというものを用意している。 docker-composeはほぼ必須です。少なくともrailsプロセスとDBだけでも二つは必要だし、Dockerfileを分けてると事故るので。 Dockerfileはこんな感じ。 FROM mybase:ruby-2.3.1-debian RUN echo "deb http://http.

    開発しやすいRails on Docker環境の作り方 - Qiita
  • production環境でRailsアプリをdockerコンテナとしてECSで運用するために考えたこと - Qiita

    実際には、まだ当の番環境では運用できてなくて開発用のステージングで運用が開始できたぐらいで、他にもやること一杯あるんだけど、ある程度知見が溜まったのでまとめておく。 ちなみに、規模はそんなに大きくないがデータ量は多いアプリケーションで運用環境はAWSのECSを想定しており、現時点で普通のEC2ノードとコンテナで並行稼動している。 docker-swarmなりで自前でコンテナプールを構築してもいいのだが、そうするとサービスディスカバリとか考えなければいけないことが増えるので、後回しにしている。 (注: かなりサービス固有の事情が含まれるため、もし参考にされる方が居たとしても、そのままの形では適用できない可能性が高い) 追記: RailsアプリのためのDockerfileとdocker-compose.ymlのサンプル - Qiita コンテナ化のモチベーション CentOSのお守りからの

    production環境でRailsアプリをdockerコンテナとしてECSで運用するために考えたこと - Qiita
  • Railsをバージョンアップし続けるために必要なこと - Qiita

    当は、RubyWorld Conf辺りでこういう内容も交えてなんか話せればいいなあと思ってたんだけど、CFPに落ちたのでQiitaにポエムを書いてみました。 Railsはそれなりに学習コストはかかりますが、慣れてくるとデフォルトで便利なものが揃ってるしサードパーティライブラリも豊富で、未だに最も便利なWebアプリケーションフレームワークの一つだと思います。 なので、最近のスタートアップ界隈ではRailsで開発をスタートする、という話をよく耳にします。(個人の感想です) しかし、Rails体に新しい要素をガンガン取り入れてくるので、バージョンアップのサイクルはかなり早く、それに追従していくのはそれなりに大変です。 Railsで開発をする場合には、一旦レールに乗ったらプロダクトが死ぬまで走り続ける覚悟が必要です。(時速60km以下になったら爆発する) それを最初に理解しておかないと、あっ

    Railsをバージョンアップし続けるために必要なこと - Qiita
  • RSpec3の新しいFormatter APIについて - Qiita

    いよいよRSpec3時代が近付いてきました。 betaとかrcで新しいバージョンが出る度にハマり所を仕込んでくるので、そろそろ落ち着いて欲しい所です。 RSpec3は表記の変更だけでなくて内部実装をがっつりリファクタリングしてるため、Formatterの作りも結構変わっています。 カスタムFormatterを自分で作ってる人とかForkして改造する人以外にはあんまり関係無いかもしれませんが、一応どう変わったのか書いておきます。 (そもそもそういう人は自分でソース読むし……) Formatterの基となるクラスはRSpec::Core::Formatters::BaseFormatterというクラスです。 これは2系でも3系でも変わってません。 RSpec3系で大きく変わったのは、Formatters.registerというメソッドを呼び出してFormatterクラスを登録しなければいけな

    RSpec3の新しいFormatter APIについて - Qiita
  • 1