タグ

2019年9月16日のブックマーク (7件)

  • プロダクションで2年間Redis Clusterを運用してみて - Qiita

    TL;DR Redis Clusterで運用は当に楽になった でも、Redis 4.0は不安 Redis Clusterで一番怖いのはDisk IO 特にフェイルオーバーなどのFull Resync時 Redisとは? 高速なインメモリ型のKVS シングルスレッド 豊富なデータ構造(次ページにて詳細) 豊富な操作(次々ページにて詳細) 豊富なデータ構造 key-value型 hash型(key-field-value) set型(集合演算ができる) sorted set型(スコア付きset) 任意の型(redis modules機能) 豊富な操作 インクリメントや和集合などなど lua scriptも実行できちゃう シングルスレッドだからatomicな処理になる Redisの問題点 writeがスケールしない 気軽に停止できない サーバー再起動やバージョンアップなど Redis Clus

    プロダクションで2年間Redis Clusterを運用してみて - Qiita
  • ストリーム処理勉強会 大規模mqttを支える技術

    11. イベント/コマンドデータ受付 センサデータ受付 定常的に発⽣するセンサデータは、都度最新のデータ を取得する、時間をおいた再送で情報を補填可能で あるため、性能を重視しQoS=0(at most once) で連携 バイナリデータ格納ストレージ ブリッジアプリ ブリッジアプリ センサデータの連携 イベント/コマンドデータの連携 バイナリデータの連携 状態の変化などイベントをトリガーに発⽣するイベント データは、当該イベントに基づいてクラウド側での判断 及び制御処理が⾏わるため、確実性を重視し QoS=1(at least once)で連携 画像などの⼀つのサイズが⼤きいバイナリデータは、 バッファリングを⾏いながら連携する必要があるため HTTP(S)でプロトコルの機能を利⽤し連携 MQTT MQTT HTTPS HTTPS HTTPS MQTT MQTT MQTT QoS=0 Q

    ストリーム処理勉強会 大規模mqttを支える技術
  • ISUCON 9 予選に isucon_friends として参加し、予選総合3位でした。 - from scratch

    久しぶりの戦出場 ISUCON3 以来なので 6 大会ぶりですね。。。思えばずっと予選で負け続けてきたものです。 yosuke-furukawa.hatenablog.com 結果どうだったか 予選3位通過でした(棄権含む)。最終スコアは 27,470 ですね。 isucon.net 1位 nil 1 [1] 52,440 2位 にがり 1 [1] 36,270 3位 isucon_friends 3 [0] 27,470 ★ 4位 いんふらえんじにあー as Code 3 [0] 26,460 5位 ようするにメガネが大好きです 3 [0] 25,200 僕らよりもスコアが跳ねている、にもかかわらず、学生が1名でやっている、nil と にがり は当にすごいと思います。 何をやったかまとめ 言語は Go でした。 (Node.js ではありません。) Index貼ったり、OR検索をUN

    ISUCON 9 予選に isucon_friends として参加し、予選総合3位でした。 - from scratch
  • Generating code - The Go Programming Language

    Rob Pike 22 December 2014 A property of universal computation—Turing completeness—is that a computer program can write a computer program. This is a powerful idea that is not appreciated as often as it might be, even though it happens frequently. It’s a big part of the definition of a compiler, for instance. It’s also how the go test command works: it scans the packages to be tested, writes out a

    Generating code - The Go Programming Language
  • Go言語の mockgen と go generate で簡単に mock を作成する方法

    go generate でパッケージ名とファイル名を利用するPosted on Sun, Jan 6, 2019 Tags golang, mock Go言語の mockgen で簡単に mock を揃える方法Go 言語では go generate というプログラムコードを生成するための仕組みがあります。 Generating code - The Go Blog いきなり、チューリング完全について出てきて、は? となりますが、言いたいことは、yacc や protocol buffer, go test でも、コードを解釈してコードを生成することがプログラミング言語において重要になるということのようです。 (Make でもできますが、Go言語としてインテグレーションされているのが大切だということなのでしょう) go generate については、すでに様々な記事があるので、DRY すると

  • rakyll/statik でシングルバイナリにまとめる

    【2021-03-20 追記】 Go 1.16 で embed 標準パッケージおよび //go:embed ディレクティブが追加されたため,この記事は不要になった。 一応,過去の記録として残しておく。 以前紹介した『改訂2版 みんなのGo言語』を読んで知ったのだが,これまたずいぶん前に紹介した jessevdk/go-assets はもうメンテされてないらしい。 確かにリポジトリを見ると3年前(2016年)から更新されてないな。 というわけで『改訂2版 みんなのGo言語』を見ながら rakyll/statik を試してみるとしよう。 rakyll/statik のダウンロードとビルド rakyll/statik のダウンロードとビルドは以下の通り。 $ go get github.com/rakyll/statik@latest go: finding github.com/rakyll/

    rakyll/statik でシングルバイナリにまとめる
  • 書式 %v のカスタマイズ

    今回も小ネタで。 お馴染みの fmt.Printf() 関数などで使われる書式(verb)のうち,今回は %v の出力をカスタマイズすることを考えてみる。 基型における %v 書式の出力 まずは %v の定義から Verb Description

    書式 %v のカスタマイズ