Extensiones de protocolo: arquitectura

Para lograr la extensibilidad a nivel de tráfico, el procesamiento del tráfico en un dispositivo NetScaler se expone como una canalización de módulos de procesamiento independientes. El tráfico fluye a través de ellos a medida que lo procesa de entrada a salida. Estos módulos en proceso siguen un modelo de nada compartido. El paso de mensajes se utiliza para enviar los datos de tráfico de un módulo de la canalización al siguiente módulo.

Ciertos puntos de la canalización de procesamiento del tráfico se han hecho extensibles, de modo que puede agregar código para personalizar el comportamiento de NetScaler.

Imagen traducida

De forma predeterminada, el tráfico omite un módulo programable al que no se agrega ningún código.

Imagen traducida

Comportamientos

Las interfaces programables para personalizar el manejo del tráfico se denominan comportamientos. Los comportamientos son básicamente una formalización de los patrones programables comunes que están disponibles en un dispositivo NetScaler. Los comportamientos constan de un conjunto predefinido de funciones de devolución de llamadas a eventos. Puede implementar un comportamiento proporcionando funciones de devolución de llamada que se ajusten al comportamiento.

Por ejemplo, el comportamiento del cliente TCP consiste en una función de devolución de llamada (on_data) que procesa los eventos del flujo de datos del cliente TCP. Para implementar el equilibrio de carga basado en mensajes (MBLB) para un protocolo basado en TCP, puede agregar código para esta función de devolución de llamada para procesar el flujo de datos TCP del cliente y analizar el flujo de bytes en mensajes de protocolo.

Contexto:

Las funciones de devolución de llamada de un comportamiento se llaman con un contexto, que es el estado del módulo de procesamiento. El contexto es la instancia del módulo de procesamiento. Por ejemplo, las devoluciones de llamada de comportamiento del cliente TCP se llaman con contextos diferentes para distintas conexiones TCP del cliente.

Carga útil:

Además del contexto, las devoluciones de llamada de comportamiento pueden tener otros argumentos. Por lo general, el resto de los argumentos se pasan como carga útil, que es la colección de todos los argumentos.

Por lo tanto, las instancias del módulo de procesamiento programable se pueden ver como una combinación de estado de instancia más funciones de devolución de llamada de evento, es decir, el contexto más el comportamiento. Y el tráfico fluye a través del proceso como carga útil de eventos.

Para obtener información sobre las extensiones de API de NetScaler, consulte Referencia de la API de extensiones de NetScaler.

El siguiente fragmento de código muestra una función definida por el usuario para manejar eventos de flujo de datos de cliente TCP. El contexto y la carga se transfieren a la función mediante el código de NetScaler. Este código simplemente reenvía los datos TCP recibidos en cada llamada al siguiente contexto del módulo de procesamiento de la canalización. En este caso, el siguiente módulo es el contexto de equilibrio de carga (LB), que es un módulo nativo de NetScaler.

function client.on_data(ctxt, payload)
    ns.send(ctxt.output, "DATA", {data = payload.data})
end
<!--NeedCopy-->
Extensiones de protocolo: arquitectura