location /sse/ {
# enables EventSource support
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_buffering off;
}
- Leaky bucket : キューイングして出力量(consume)で調節 (アルゴリズムというかキューを使って調節)
- Token bucket : 定期的に資源を追加し平均値を調節。バーストに強い (ソシャゲのスタミナ回復)
- Fixed window counters : 単位時間あたりの上限値を指定。キューを使わないLeaky bucket。境界の2倍問題あり
- Sliding window log : 総数(counters)でなくアクセス時刻(log)で管理。境界問題を解消する一方、消費増加がぱない(
Int
→Array(Time)
) - Sliding window counters : countersのままで、単位時間の割合計算によって境界問題を解消。これにしておけば間違いない
- https://christina04.hatenablog.com/entry/rate-limiting-algorithm
- 日本語。メリットとデメリットも解説されており、デメリットを克服する形で次のアルゴリズムの説明に入るので、全体がわかりやすい
1つのアプリケーションを機能別にAPIとして切り出したもの。大規模化・複雑化が進むにつれ、開発コストおよび新規メンバーの参入コストが高くなるため、2014年頃から流行りだした。対して、もともとの1枚岩のアプリケーションはmonolithicと呼ばれる。日本だとモノリスとも言われる。
小さくなったのは良いが、「連携設定」「APIのセキュリティ」「リトライ処理」などコストが増した。また、個数の増加に伴い、新しいMSを追加したときの影響範囲も分かりづらく、それらを解消するために「監視体制」「サーキットブレイク」なども必要となり、複雑性を増していった。
### global
[vars]
var qname = "foo"
### job request
var data = "bar"
var id = (redis) INCR /job/${qname}/ids/max
(redis) HSET /job/${qname}/datas ${id} ${data}
(redis) LPUSH /job/${qname}/ids ${id}
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import io.gatling.core.Predef._ | |
import io.gatling.http.Predef._ | |
import io.gatling.jdbc.Predef._ | |
class Repeat extends Simulation { | |
val httpProtocol = http.baseURL("http://localhost").inferHtmlResources() | |
val scn = scenario("repeat test").repeat(10) { exec(http("Home").get("/")) } | |
setUp(scn.inject(rampUsers(10) over(1)).protocols(httpProtocol)) | |
} |
以下の情報を元に Galera
と GR
のレプリケーションの違いをまとめたもの。
- https://www.percona.com/blog/2017/02/24/battle-for-synchronous-replication-in-mysql-galera-vs-group-replication/
- http://lefred.be/content/group-replication-vs-galera/
- https://www.slideshare.net/StevenLi6/open-stack-ha-designampdeployment-kilo
- https://www.slideshare.net/Grypyrg/percona-xtradb-cluster-vs-galera-cluster-vs-mysql-group-replication
- http://mysqlhighavailability.com/performance-evaluation-mysql-5-7-group-replication/
- キューの最大本数:
Thousands (or even tens of thousands) of queues should be no problem at al
private def current_environment_from_env
ENV["SENTRY_ENVIRONMENT"]? || "default"
private def detect_release_from_env
ENV["SENTRY_RELEASE"]?
NewerOlder