Назад | Перейти на главную страницу

Узнайте, какой сервер Coldfusion используется в кластере

У нас есть кластер с балансировкой нагрузки из 2 серверов для наших приложений Coldfusion. Я столкнулся со странным поведением и хотел бы узнать, на каком из двух серверов в данный момент находится пользователь, когда он запускает веб-приложение. Есть ли способ узнать, какой сервер используется для конкретных запросов?

Переменная cgi.server предоставляет только такую ​​информацию, как cfprod.domain.com, а мне нужно cfprod1.domain.com или cfprod2.domain.com.

Вы можете получить имя экземпляра CF, используя следующее: #GetMetricData ("PERF_MONITOR"). InstanceName #

Проблема в том, что у вас, вероятно, не включена служба метрик, поскольку она отключена по умолчанию в выпусках Enterprise. Я не удивлюсь, если есть другой способ получить имя экземпляра.

Если вы хотите сделать это, не добавляя дополнительный контент для управления на серверах, вы можете программно получить имена хостов сервера, на котором работает ColdFusion. Он будет уникальным для каждого узла кластера.

<cfset hostName=CreateObject("java", "java.net.InetAddress").localhost.getHostName()/>

Это обсуждается на StackOverflow: https://stackoverflow.com/questions/830782/in-coldfusion-is-there-a-way-to-determine-what-server-the-code-is-running-on

Если у вас есть стандартный заголовок include, возможно, выведите имя сервера в виде комментария HTML. Это будет означать, что на каждом сервере будут разные файлы, но это может помочь вам отследить проблему для устранения неполадок. Если файл заголовка должен быть таким же, добавьте код для включения или чтения из какого-либо другого файла, который может отличаться, возможно, за пределами вашего корневого веб-сервера, если два сервера регулярно синхронизируют веб-корневой каталог.

У меня есть простое приложение, которое я использовал для тестирования стабильности сеанса, переключения при отказе и репликации в кластерах ColdFusion. Вы можете скачать session_test.zip из моего блога здесь: http://www.talkingtree.com/blog/downloads.cfm

Этот тест сообщает, к какому экземпляру относится ваш запрос, и если экземпляр сервера или токен сеанса изменились, например, во время аварийного переключения. И если сеанс восстанавливается после переключения на исходный сервер, это тоже будет указано.