RocketMQで使用SQL92フィルタリングメッセージ

これまでのところ、RocketMQだけでサポートされているTAGメッセージをフィルタリング、一つだけを持つことができますメッセージはTAG、これはあまりにも複雑なニーズの制限です。したがって、我々はカスタムメッセージフィルタをサポートするために、SQLサブ92式の構文に基づいてフィルタ言語の合理的なセットを定義し、実装したいと考えています。

なぜ、SQL92のサブセットですか?

してみましょうRo​​cketMQメッセージフィルタリング能力は、この質問の目的で、我々は、ほとんどの人がそれに精通している、SQL92が広く使用されている知っています。RocketMQの構文は合理的であるように、それを選択してください。

私の知る限りでは、ActiveMQのは、JavaCCの基礎に基づいて、この機能を達成している、それは非常に簡単で、かつ実行可能です。だから、僕はその構文の一部を抽出し、中RocketMQに統合します。

  1. 数値式:>>=<<=BETWEEN=
  2. 文字式:=<>IN
  3. IS NULLまたは、その後IS NOT NULL
  4. ロジックAND、ロジックOR、ロジックNOT

定数タイプ:

  1. デジタル:3.1415926、5。
  2. 文字「A」、それは単一引用符を持っている必要があります。
  3. NULL特定の定数で。
  4. TRUEブール: FALSE、。

デザイン

おすすめ

転載: blog.csdn.net/weixin_34090643/article/details/91386637