Artículo original publicado el sábado 15 de septiembre de 2012

Todavía no he visto demasiada información sobre esto, así que se me ocurrió tomarme un rato para investigar un poco el Administrador de solicitudes (RM) de PowerShell. Para los que no están familiarizados con el RM, es una nueva parte de SharePoint 2013, diseñada para hacer enrutamientos y limitaciones de solicitudes de SharePoint. Al conocer la naturaleza de las solicitudes entrantes, por ejemplo, el agente de usuario, la URL solicitada o la IP de origen, SharePoint puede personalizar la respuesta a cada solicitud. Puede enrutarla según las reglas que usted defina o puede limitar la solicitud por completo. Las reglas del RM se aplican por aplicación web, al igual que la limitación se lleva a cabo en SharePoint 2010. 

A grandes rasgos, los objetivos del RM son los siguientes:

  • El RM puede enrutar a WFE con una mejor integridad y mantener vivos los WFE de integridad baja
  • El RM puede identificar solicitudes perjudiciales y rechazarlas inmediatamente
  • El RM puede priorizar solicitudes limitando las de prioridad más baja (bots) para atender las de prioridad más alta (usuarios finales)
  • El RM puede enviar todas las solicitudes de tipo específico, por ejemplo búsqueda, para máquinas específicas
  • El tráfico aislado puede ayudar a solucionar errores en una máquina
  • El RM puede enviar solicitudes pesadas a WFE más poderosos

Las reglas de enrutamiento y limitación se implementan de este modo:

  • Las reglas de enrutamiento regulan las solicitudes de rutas y se asocian con MachinePools
  • MachinePools contienen servidores
  • Los servidores usan pesos para el enrutamiento – pesos estáticos y pesos íntegros
  • Los pesos estáticos son constantes para los WFE; los pesos íntegros cambian de forma dinámica según los índices de integridad

Bien, estos son los aspectos básicos de su funcionamiento. Si quiere más detalles sobre las características y el uso del RM, encontrará más documentos en TechNet. Si está leyendo esto, asumo que sabe lo suficiente sobre el tema (o le interesa) como para poder, realmente, trabajar con esto. Así pues, solo voy a repasar un poco de PowerShell para ayudarlo a comenzar. Estos son cmdlets que me parecieron útiles al trabajar con el RM. El proceso básico que recorrerá es parecido a este:

  • Obtener una referencia a SPWebApplication
  • Obtener una referencia a la configuración del administrador de solicitudes para la aplicación web
  • Crear un criterio o más
    • Una solicitud debe coincidir con TODOS los criterios de una regla para coincidir con la regla (es decir, ser AND’d juntos)
  • Obtener una referencia a un grupo de máquinas o crear uno, si es necesario
  • Agregar la regla

Ahora veamos un ejemplo:

#Obtener una referencia a SPWebApplication
$w = Get-SPWebApplication -identity http://foo

#Obtener una referencia a la configuración del administrador de solicitudes para la aplicación web
$rmset = $w | Get-SPRequestManagementSettings

#Crear un criterio o más
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex

#Obtener una referencia a un grupo de máquinas o crear uno, si es necesario
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)

#Agregar la regla
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp

Ahora veamos esa regla de enrutamiento:
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"

 

#ver los criterios
$rr.Criteria

 

#cambiar la fecha de expiración de la regla de enrutamiento
$rr.Expiration = "12/25/2013 5:00:00 PM"

 

Muy bien, ahora tiene una regla de enrutamiento. Crear una regla de limitación es muy similar:

 

#Agregar una nueva regla de criterios que busque solicitudes de OneNote. Para hacerlo, examine el UserAgent de la solicitud y busque el encabezado que usa OneNote.
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex

#Agregar una regla de limitación que use la regla de criterio cuando la integridad del servidor alcance un índice de 8.
#Tenga en cuenta que las reglas de limitación se aplican a toda la aplicación web, #no a máquinas individuales, por lo que no puede
#usar un grupo de máquinas con ellas.
$rmset | Add-SPThrottlingRule -Nombre "OneNote Throttle Rule" -Criterio $criteria -Umbral 8

 

#ahora vea todas las reglas de enrutamiento para la aplicación web
$rmset.RoutingRules

 

#Ver todas las reglas de limitación
$rmset.ThrottlingRules 

 

Ahora veamos con un poco más de detalle cómo es trabajar con grupos de máquinas:

#Obtener todas las máquinas de enrutamiento que haya disponibles
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available

#Obtener todas las máquinas de un grupo específico
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table

#Agregar máquina WFE1 a todos los grupos de máquinas de una aplicación web en particular; (mil gracias a Tyler por ayudarme con este, no soy experto en PowerShell
$a = Get-SPWebApplication -Identity http://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }

#Agregar máquina WFE1 a un grupo específico
$a = Get-SPWebApplication -Identity http://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)

#Eliminar WFE1 de todos los grupos de máquinas
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo

Bien, eso es todo, amigos. Esto debería proporcionarles un panorama más que suficiente como para empezar a trabajar.

 

 

Esta entrada de blog es una traducción. Puede ver el artículo original en Working with Request Manager in SharePoint 2013