第6章 チャネル
6.1. チャネルおよびサブスクリプション リンクのコピーリンクがクリップボードにコピーされました!
チャネルは、単一のイベント転送および永続レイヤーを定義するカスタムリソースです。イベントがイベントソースまたは生成側からチャネルに送信された後に、これらのイベントはサブスクリプションを使用して複数の Knative サービスまたは他のシンクに送信できます。
				サポートされている Channel オブジェクトをインスタンス化することでチャネルを作成し、Subscription オブジェクトの delivery 仕様を変更して再配信の試行を設定できます。
			
				Channel オブジェクトが作成されると、変更用の受付 Webhook はデフォルトのチャネル実装に基づいて Channel オブジェクトの spec.channelTemplate プロパティーのセットを追加します。たとえば、InMemoryChannel のデフォルト実装の場合、Channel オブジェクトは以下のようになります。
			
				チャネルコントローラーは、その後に spec.channelTemplate 設定に基づいてサポートするチャネルインスタンスを作成します。
			
					spec.channelTemplate プロパティーは作成後に変更できません。それらは、ユーザーではなくデフォルトのチャネルメカニズムで設定されるためです。
				
				このメカニズムが上記の例で使用される場合は、2 つのオブジェクト (汎用バッキングチャネルおよび InMemoryChannel チャネル) が作成されます。別のデフォルトチャネルの実装を使用している場合、InMemoryChannel は実装に固有のものに置き換えられます。たとえば、Apache Kafka の Knative ブローカーでは、KafkaChannel チャネルが作成されます。
			
バッキングチャネルは、サブスクリプションをユーザー作成のチャネルオブジェクトにコピーし、ユーザー作成チャネルオブジェクトのステータスを、バッキングチャネルのステータスを反映するように設定します。
6.1.1. チャネルの実装タイプ リンクのコピーリンクがクリップボードにコピーされました!
					OpenShift Serverless は、InMemoryChannel および KafkaChannel チャネルの実装をサポートしています。InMemoryChannel チャネルは制限があるため、開発用途にのみ使用することを推奨します。実稼働環境では KafkaChannel チャネルを使用できます。
				
					以下は、InMemoryChannel タイプのチャネルの制限です。
				
- イベントの永続性は利用できません。Pod がダウンすると、その Pod のイベントが失われます。
 - 
							
InMemoryChannelチャネルはイベントの順序を実装しないため、チャネルで同時に受信される 2 つのイベントはいずれの順序でもサブスクライバーに配信できます。 - 
							サブスクライバーがイベントを拒否する場合、再配信はデフォルトで試行されません。
Subscriptionオブジェクトのdelivery仕様を変更することで、再配信の試行を設定できます。