Anarchy In the 1K

技術調査

Spring BatchでPartitioningを用いて処理の多重化

背景 Spring Batchのパフォーマンスの改善の為に、Partitioningを用いた処理の多重化を検討することになりました。今回の記事では、実際に動くものを元に解説を行います。 目次 背景 目次 解説 概説 詳説 設定 コード slaveステップで呼び出すTasklet Partit…

CommandLineJobRunnerを用いたSpring Batchの実行

目次 目次 背景 ハンズオン 事前準備 DBの用意 プロジェクトの作成 コーディング 設定ファイル Spring Batchの設定 ジョブ個別の設定 Javaソース ファイル 実行 背景 前回こちらの記事でSpring Boot Batchを用いたバッチ実行を行いました。今回は、コマンド…

Spring Boot Batchの実行とメタデータテーブル

目次 目次 背景 ハンズオン 事前準備 プロジェクトの作成 DBの用意 コーディング Tasklet JavaConfig エントリポイント 設定ファイル 実行 1回目 実行前のDB アプリケーションの実行 実行後のDB 2回目 アプリケーションの実行 実行後のDB 背景 必要に迫られS…

I/O処理の分類まとめ

I/O処理の分類 "I/O処理準備中の振る舞い"と" I/O処理完了の連携方法"の組み合わせにより、以下の通り分類されます。 "I/O処理準備中の振る舞い" カーネルがI/O処理の準備中*1だった際の、アプリケーションの振る舞いで、以下の通り分かれます。 ブロッキン…

Java NIOを用てスケーラブルI/Oを実現する

目次 目次 背景 ノンブロッキングI/Oの実装方法 NIOとストリームI/Oの比較 Bufferクラス 概要 主な属性 主な操作 I/Oの多重化の実装方法 利用するクラス一覧 SelectableChannelをSelectorに登録する方法 背景 先日、こちら記事でスケーラブルI/Oの実現方法を…

NginxでHTTPS対応のフォワードプロキシを構築

今回の記事の構成は、以下の通りです。構築方法は、「ハンズオン」に記載しています。 背景 調査結果 CONNECTとはなにか CONNECTメソッドを用いたHTTPS通信の流れ そもそも、なぜCONNECTメソッドが必要か エラー原因 ハンズオン 概要 手順 Nginxのソースコー…

CircleCIでタグ発行を契機にサーバへデプロイ

やりたいこと 先日、以下の記事でCircleCIの導入を行いました。今回は、バージョン番号のタグ発行を契機とした、サーバへのデプロイを自動化します。 CircleCIの調査 - Anarchy In the 1K 事前準備 SSH SSHキーの作成 CircleCIがサーバに接続する為のSSHキー…

CircleCIの導入

CircleCIとは GitHub上のリポジトリの更新を契機として、処理実行が可能なCI/CDサービスです。リポジトリ上のに配置した.circleci/config.ymlに則り、CircleCIが処理を行います。CircleCIの概要に関しては、合わせて以下もご覧下さい。 継続的インテグレーシ…

Gradleでマルチプロジェクト

マルチプロジェクトについて マルチプロジェクトとは 複数の子プロジェクトを内部に保持するプロジェクトのことを指します。マルチプロジェクトを用いることで、1つのプロジェクトを更に細かい粒度で分割することが可能になります。 マルチプロジェクトの使…

ThreadPoolExecutorの調査

背景 Javaでスレッドプールを扱う際に、いつもお世話になっているThreadPoolExecutorに関して、ExecutorsクラスのnewXyzThreadPoolメソッドを用いて生成するだけで、その中身を意識したことはありませんでした。今回はそのThreadPoolExecutor関して、調べた…

スケーラブルI/O実現方法の調査

背景 スケーラブルなI/Oに関して、以下書籍で勉強しています。 Javaネットワークプログラミングの真髄作者:エズモンド・ピット発売日: 2007/04/28メディア: 大型本 スケーラブルなI/Oの実現方法に関して、こちらでは以下の通り記載があります*1。 I/Oのノン…

MyBatis Dynamic SQLを使ってみた。

背景 Java + MyBatisを使って開発を行っているのですが、コード上でSQLの組み立てを行う方法が無いか調べたところ、MyBatis Dynamic SQLを使うと実現できる様です。 以下のQuick Startを元に試してみたので、ここではその際のメモを残そうと思います。 MyBat…