「パーシステンス」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
 
(2人の利用者による、間の5版が非表示)
2行目: 2行目:
  
 
==概要==
 
==概要==
[[ウェブ]]の世界でパーシステンスという場合は、[[ロードバランサー]]を咬ました複数台の[[HTTPサーバー]]で[[セッション]]を共有するためのセッションサーバー、およびその構築方法を指す。明示的にセッション・パーシステンスなどと記載している事例も見受けられる。
+
[[ウェブ]]の世界でパーシステンスという場合は、ほぼ[[ロードバランサー]]を咬ました複数台の[[HTTPサーバー]]で[[セッション]]を共有するためのセッションサーバー、およびその構築方法をさしている。明示的に「セッション・パーシステンス」などと記載している事例も見受けられる。
  
 
==ハードウェアで対応==
 
==ハードウェアで対応==
18行目: 18行目:
  
 
===ASP.NET: ASP.NET State Service===
 
===ASP.NET: ASP.NET State Service===
Windows ServerにIISを入れると「ASP.NET State Service」というサービスが出来上がる。これはIISの一部なのでWindows Serverでなければ利用できない。このため開発機が普通のWindowsであったり、Monoや.NET Coreなどへの対応を考慮すると極めて非推奨である。
+
[[Windows Server]]に[[IIS]]を入れると「ASP.NET State Service」というサービスが出来上がる。これはIISの一部なのでWindows Serverでなければ利用できない。このため開発機が普通の[[Windows]]であったり、[[Mono]]や.[[NET Core]]などへの対応を考慮すると極めて非推奨である。
  
 
サービスを立ち上げてWeb.configのsessionStateに以下のような設定を加えることで利用できる。
 
サービスを立ち上げてWeb.configのsessionStateに以下のような設定を加えることで利用できる。
33行目: 33行目:
  
 
===ASP.NET: RedisSessionProvider===
 
===ASP.NET: RedisSessionProvider===
[[マイクロソフト]]は[[Redis]]でセッションを監理するライブラリを[[オープンソース]]として公開している。
+
[[マイクロソフト]]は[[Redis]]でセッションを管理する[[ライブラリ]](セッションプロバイダー)を[[オープンソース]]として公開している。
*https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider
+
* https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider
  
マイクロソフトの意図としては[[Azure]]でのAzure Redis Cacheを利用したセッション監理を想定したものだと思われるが、普通にローカルにRedisサーバーを立ち上げても利用でる。Redisなのでプラットフォームに依存せず、スケールアウトもする。現状でもっとも推奨される方法であると思われる。
+
マイクロソフトの意図としては[[Azure]]でのセッション管理にAzure Redis Cacheを使えという思し召しなのだろう。Azure Redis Cacheはいたって普通のRedisなのでローカルにRedisサーバーを立ち上げてもそのまま利用できる。いたって普通のRedisなのでプラットフォームに依存せず、[[スケールアウト]]もする。現状でもっとも推奨される方法であると思われる。
  
 
利用には[[NuGet]]から入れられるのが手っ取り早い。
 
利用には[[NuGet]]から入れられるのが手っ取り早い。
*Microsoft.Web.RedisSessionStateProvider
+
* Microsoft.Web.RedisSessionStateProvider
*https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider
+
* https://www.nuget.org/packages/Microsoft.Web.RedisSessionStateProvider
  
設定方法はマイクロソフトの公式サイトに日本語の資料があるのでこれを見るのが手っ取り早い>。
+
設定方法はマイクロソフトの公式サイトに日本語の資料があるのでこれを見るのが手っ取り早い。
 
*https://azure.microsoft.com/ja-jp/documentation/articles/cache-asp.net-session-state-provider/
 
*https://azure.microsoft.com/ja-jp/documentation/articles/cache-asp.net-session-state-provider/
  
49行目: 49行目:
  
 
==参考文献==
 
==参考文献==
{{reflilst}}
+
{{reflist}}
  
 
{{stub}}
 
{{stub}}

2016年4月1日 (金) 07:45時点における最新版

パーシステンス英語:persistence)とは、直訳すると「存続」という意味である。

概要[編集 | ソースを編集]

ウェブの世界でパーシステンスという場合は、ほぼロードバランサーを咬ました複数台のHTTPサーバーセッションを共有するためのセッションサーバー、およびその構築方法をさしている。明示的に「セッション・パーシステンス」などと記載している事例も見受けられる。

ハードウェアで対応[編集 | ソースを編集]

パーシステンスの主な実現方法としては高性能なロードバランサー製品を用いる方法がある。高性能なロードバランサー製品には接続は同一のHTTPサーバーにだけ接続しつづけるという機能が付いている。これを使えば共有セッションを保持するサーバーを用意しなくても個々のサーバー内で完結できる。またアプリケーション側での対応が不要であるためプロプライエタリなものや、プログラムの改変をしている場合じゃねぇデスマーチに陥った案件などでは活躍する。

アプリケーションで対応[編集 | ソースを編集]

アプリケーションでパーシステンスに対応する方法としてはデータベースセッションを保存するという方法がある。この際に用いるデータベースは一般的なRDBMSでもよいが、セッションという単純なデータ構造、かつ頻繁な読み書き、かつスケールアウトしたい要件ではRedisなどのNoSQLを用いるのが現実的である。

PHP: memcached[編集 | ソースを編集]

PHPではセッションの保存先にmemcachedを指定できる。memcachedを別サーバーにすることでHTTPサーバーをDNSラウンドロビンで単純に複数台設置しても簡単に対応できる。

php.iniで設定するのが手軽である。

session.save_handler = memcached // コメントアウトをはずす
session.save_path = "tcp://localhost:11211" // 追記

ASP.NET: ASP.NET State Service[編集 | ソースを編集]

Windows ServerIISを入れると「ASP.NET State Service」というサービスが出来上がる。これはIISの一部なのでWindows Serverでなければ利用できない。このため開発機が普通のWindowsであったり、Monoや.NET Coreなどへの対応を考慮すると極めて非推奨である。

サービスを立ち上げてWeb.configのsessionStateに以下のような設定を加えることで利用できる。

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
  <system.web>
    <sessionState mode="StateServer"
      stateConnectionString="tcpip=127.0.0.1:42424"
      stateNetworkTimeout="10" />
  </system.web>
</configuration>

ASP.NET: RedisSessionProvider[編集 | ソースを編集]

マイクロソフトRedisでセッションを管理するライブラリ(セッションプロバイダー)をオープンソースとして公開している。

マイクロソフトの意図としてはAzureでのセッション管理にAzure Redis Cacheを使えという思し召しなのだろう。Azure Redis Cacheはいたって普通のRedisなのでローカルにRedisサーバーを立ち上げてもそのまま利用できる。いたって普通のRedisなのでプラットフォームに依存せず、スケールアウトもする。現状でもっとも推奨される方法であると思われる。

利用にはNuGetから入れられるのが手っ取り早い。

設定方法はマイクロソフトの公式サイトに日本語の資料があるのでこれを見るのが手っ取り早い。

関連項目[編集 | ソースを編集]

参考文献[編集 | ソースを編集]