MicronautのHTTPサーバー設定を理解!ポート変更・スレッド数などの調整方法
生徒
「MicronautのHTTPサーバーって、デフォルトのポートやスレッド数を変えたい場合はどうしたら良いですか?」
先生
「Micronautではapplication.ymlやapplication.propertiesでHTTPサーバーのポートやスレッド数を簡単に設定できます。」
生徒
「具体的にはどの項目を設定すれば良いですか?」
先生
「ポートを変更する場合はmicronaut.server.port、スレッド数を調整する場合はmicronaut.server.netty.*の項目を使います。順番に見ていきましょう。」
1. HTTPサーバーの基本設定とポート番号の変更
Micronautで作成したアプリケーションは、標準(デフォルト)では「8080」というポート番号を使って通信を待ち受けます。しかし、他のソフトがすでに8080を使っていたり、本番環境の指定があったりする場合は、設定ファイル(application.yml)を書き換えるだけで簡単に変更可能です。
プログラミングに慣れていない方でも安心してください。設定は「どの住所(ホスト)の、どのドア(ポート)を開けるか」を記述するだけです。例えば、ポート番号を「9090」に変更し、どこからでも接続できるようにするには、以下のように記述します。
micronaut:
server:
# サーバーが待ち受けるポート番号を指定します
port: 9090
# 0.0.0.0を指定すると、外部からのアクセスをすべて許可します
host: 0.0.0.0
この設定を反映させてアプリを起動すると、ブラウザなどで http://localhost:9090 と入力するだけでアクセスできるようになります。もしポート番号を「-1」に設定した場合は、空いているポートがランダムで割り当てられるため、テスト実行時などに非常に便利です。
初心者向け:Javaコードで設定値を読み込む例
設定したポート番号をプログラムの中で使いたい場合、Micronautでは「@Value」という注釈(アノテーション)を使うだけで、自動的に設定値を読み込むことができます。まずは難しく考えず、以下のサンプルを見てみましょう。
import io.micronaut.context.annotation.Value;
import jakarta.inject.Singleton;
@Singleton
public class WelcomeMessage {
// application.ymlの port の値を読み込みます
@Value("${micronaut.server.port}")
protected int serverPort;
public String getGreeting() {
return "サーバーはポート " + serverPort + " で元気に動いています!";
}
}
このように、設定ファイル(YAML)とJavaプログラムを連携させることで、プログラムを書き換えずに動作環境(開発用、本番用など)に合わせて柔軟にサーバーの挙動をコントロールできるのがMicronautの大きな強みです。
2. スレッド数やパフォーマンス調整
MicronautのHTTPサーバーはNettyを内部で使用しており、スレッド数やI/Oスレッド数を調整することでパフォーマンスを最適化できます。設定例は以下の通りです。
micronaut:
server:
netty:
eventLoopThreads: 16
ioRatio: 70
eventLoopThreadsはNettyのイベントループスレッド数を指定し、ioRatioはI/Oスレッドの処理割合を設定します。これにより高負荷時のレスポンス性能を向上させることができます。SEOキーワード:Micronaut Netty 設定、スレッド数調整、Java Micronaut パフォーマンスチューニング
3. HTTPSやポート範囲の設定
MicronautではHTTPSを有効化する場合もapplication.ymlで簡単に設定可能です。SSL証明書やキーストアの指定もここで行います。
micronaut:
server:
ssl:
enabled: true
key-store:
path: classpath:keystore.jks
password: secret
port: 8443
この設定でHTTPSはポート8443で起動し、安全な通信が可能になります。SEOキーワード:Micronaut HTTPS設定、SSL Micronaut、ポート8443、Java Micronaut セキュアサーバー
4. Javaコードからのサーバー設定確認
MicronautではJavaコードからサーバー設定を取得してログ出力することも可能です。
import io.micronaut.context.annotation.Value;
import jakarta.inject.Singleton;
@Singleton
public class ServerInfo {
@Value("${micronaut.server.port}")
private int port;
public void printServerPort() {
System.out.println("HTTPサーバーはポート " + port + " で起動しています");
}
}
このようにして、起動中のサーバーポートをコード上で取得でき、デバッグや環境別設定確認に便利です。SEOキーワード:Micronaut Java サーバー設定、ポート確認、Micronaut 開発者向けガイド、サーバー情報取得
5. 実務での活用ポイント
- 開発環境・本番環境でポート番号を変えて複数アプリを同時起動
- Nettyのスレッド数を調整して負荷に応じた最適化
- HTTPSやSSL設定で安全な通信を確保
- Javaコードから設定値を参照してログ出力や条件分岐に利用
- Micronautの外部設定機能を活用して、環境ごとに柔軟なサーバー設定を管理
SEOキーワード:Micronaut HTTPサーバー、ポート設定、スレッド調整、Netty設定、Java Micronaut 開発、環境別設定、HTTPS対応