Dubbo の自動再試行機能とその問題点—— framework design の観点から

Dubbo は、デフォルトで 再試行(retry)機能 を備えています。これは、クライアント側のタイムアウトや lokale エラー発生時に、複数回の呼び出しを自動的に試みる設計です。しかし、実装の背景にある設計思想と実際の運用におけるリスクのバランスには、注意すべき重要な点があります。特に、非冪等な操作に対して誤って再試行を許可してしまうと、データの重複挿入や状 ...

6月29日 18:12 投稿

ユーザー機能実装ガイド:いいね、設定、ブラックリスト管理

機能概要 いいね機能の実装 ユーザー共通設定機能 ブラックリスト機能 電話番号変更機能 1. いいね統計表示 1.1 基本概念 いいね:他のユーザーに対する評価(例:AがBにいいねしても、BがAにいいねしたとは限らない) フォロワー:自分をいいねしたユーザー 相互フォロー:お互いにいいねした状態 1.2 Dubboサービス //UserLikeApi.java public interface UserLikeApi ...

6月13日 00:46 投稿

CompletableFutureのget()メソッドに潜む性能問題について

Dubboのソースコードを調査していた際、興味深い実装箇所を見つけました。 org.apache.dubbo.rpc.protocol.AbstractInvoker#waitForResultIfSync このメソッド内では、CompletableFutureのget(long, TimeUnit)が呼び出されており、タイムアウト値としてInteger.MAX_VALUEが指定されています。一見すると、単純なget()メソッドを使用するのと同等に見えます。 ではなぜ、無 ...

5月22日 21:47 投稿