Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Tomcatコミッタがお送りするちょっとマニアックなTomcatのコンフィグレーション10選

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.
Avatar for kfujino kfujino
May 27, 2021

 Tomcatコミッタがお送りするちょっとマニアックなTomcatのコンフィグレーション10選

Avatar for kfujino

kfujino

May 27, 2021
Tweet

Other Decks in Technology

Transcript

  1. 誰? • 藤野圭一 • 2019/10 Future入社 ◦ 独立系SI企業から転職。2社目 • 趣味

    ◦ 生き物飼育(クワガタ、カブトムシ、アクアリウム) ◦ OSS活動 Confidential Copyright ©︎ 2021 by Future Corporation
  2. OSS活動 • ロール ◦ Tomcat コミッタ ◦ Tomcat PMCメンバ ◦

    Incubator コミッタ ◦ Incubator PMCメンバ ◦ ASF メンバ • その他 ◦ 本も出しています ◦ 国内外カンファレンス多数登壇 Confidential Copyright ©︎ 2021 by Future Corporation
  3. StuckThreadDetectionValve • スタックしていたスレッドが戻ってきた際もログに Confidential Copyright ©︎ 2021 by Future Corporation

    • 但しスレッドダンプのようなロック情報等は見れないの で、ロック状態の解析を行う場合は、スレッドダンプが必 要 処理時間も
  4. 静的クラスタメンバーシップ • Staticメンバシップ Confidential Copyright ©︎ 2021 by Future Corporation

    Tomcat1 Static(Unicast Addr)Group メンバ定義 • Tomcat1 • Tomcat2 • Tomcat3 Tomcat2 メンバ定義 • Tomcat1 • Tomcat2 • Tomcat3 Tomcat3 メンバ定義 • Tomcat1 • Tomcat2 • Tomcat3
  5. Cloudクラスタメンバーシップ • Cloudメンバシップ ◦ kubernetes用のクラスタメンバシップ ◦ DNSPingとKubePingの2実装(※後者を説明) ◦ 別途kubernetesの環境が必要 ◦

    PodにCloudメンバシップを設定したTomcatインスタンスをデプロイ ◦ KubePingを利用してダイナミックにクラスタメンバシップを構築す る Confidential Copyright ©︎ 2021 by Future Corporation
  6. Cloudクラスタメンバーシップ • Cloudメンバシップ Confidential Copyright ©︎ 2021 by Future Corporation

    Tomcat1 Kubernetes(Openshift) クラスタ Pod Tomcat1 Pod Tomcat1 Pod Master KubePing KubePing Pod情報 Pod情報
  7. 組込みTomcatのコンフィグソース • SpringBoot等に組込まれているTomcat • SpringBoot専用機ではないので、だれでもnew Tomcat()で Tomcatインスタンスを作成できる。起動もできる。 • とはいっても、new Tomcat()した後、どうやってTomcatを

    コンフィグするのかわからない • 簡単なWebサーバならさっくっと出来るが、少し凝った設 定をしているserver.xmlで構成されたTomcatを組込みで再 現するのはなかなか大変 • そんな時のコンフィグを二つ紹介 Confidential Copyright ©︎ 2021 by Future Corporation
  8. 多言語化対応 • Tomcat translations projectにジョインして言語を選択する ことで手軽に翻訳が可能 • ソースをハッキングしなくてもコミュニティ貢献が気軽に 出来ます •

    なのでTomcatのログの日本語がおかしかったらPOEditor経 由で直して頂ければ、リリース時に反映されます • 8割くらい私が勢いでやっているのでいろいろ問題あると思 いますので気軽に修正してください Confidential Copyright ©︎ 2021 by Future Corporation
  9. Tomcat10以降のバージョン体系 • はじめに。知っておくこと1 ◦ TomcatはJavaEEのサブセットをsupport ▪ Tomcat7.0.x : support Java

    EE 6 ▪ Tomcat8.5.x : support Java EE 7 ▪ Tomcat9.0.x : support Java EE 8 Confidential Copyright ©︎ 2021 by Future Corporation
  10. Tomcat10以降のバージョン体系 • はじめに。知っておくこと2 ◦ JavaEEがEclipse Foundationに ▪ JavaEE8 → JakartaEE8

    ◦ JakartaEE8は名前が変わって、機能に影響の無いちょ っとした修正のみ ◦ 要は完全互換 Confidential Copyright ©︎ 2021 by Future Corporation
  11. Tomcat10以降のバージョン体系 • JakartaEE8→JakartaEE9へのバージョンアップ ◦ 仕様の追加云々はないが、めんどくさい ◦ javax.* -> jakarta.* のネームスペースの変更

    ◦ 簡単にいうと、JavaEE8(JakartaEE8)のアプリケーションは JakartaEE9と互換性はない ◦ つまり動かない。Java的に言うとClassNotFoundException Confidential Copyright ©︎ 2021 by Future Corporation
  12. Tomcat10以降のバージョン体系 • Tomcat10を含めたサポート状況 ◦ Tomcat7.0.x : support Java EE 6

    ◦ Tomcat8.5.x : support Java EE 7 ◦ Tomcat9.0.x : support Java EE 8(JakartaEE8) ◦ Tomcat10.0.x : support JakartaEE9 • これが今現在の状態。まぁまだ分かる Confidential Copyright ©︎ 2021 by Future Corporation
  13. Tomcat10以降のバージョン体系 • では、JakartaEE10がリリースされるとどうなるか? ◦ Tomcat8.5.x : support Java EE 7

    ◦ Tomcat9.0.x : support Java EE 8 ◦ Tomcat9.10.x : support Java EE 8 with Tomcat10 API ◦ Tomcat10.0.x : EOL ◦ Tomcat10.1.x : support JakartaEE10 Confidential Copyright ©︎ 2021 by Future Corporation
  14. Tomcat10以降のバージョン体系 • では、JakartaEE11がリリースされるとどうなるか? ◦ Tomcat8.5.x : support Java EE 7

    →多分EOL ◦ Tomcat9.0.x : support Java EE 8 ◦ Tomcat9.10.x : EOL ◦ Tomcat9.11.x : support Java EE 8 with Tomcat11 API ◦ Tomcat10.1.x : support JakartaEE10 ◦ Tomcat11.0.x : support JakartaEE11 Confidential Copyright ©︎ 2021 by Future Corporation