По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Друг, если ты еще ни разу не пользовался утилитой sngrep, то эта статья точно для тебя! Если кратко, то sngrep позволяет отображать потоки SIP – вызова (sip flow) прямо в консоли твоего сервера. Утилита покажет SIP – обмен сообщениями в удобной и читаемой форме. Скажем так: sngrep это tcpdump (или wireshark под Linux), но только для VoIP :) /p> Установка на CentOS Рассмотрим быструю установку утилиты на операционной системе CentOS. Первым делом добавим irontec репозиторий. Для этого, создадим файл с именем sngrep.repo в директории /etc/yum.repos.d: touch /etc/yum.repos.d/sngrep.repo Добавляем в файл следующие строки: [irontec] name=Irontec RPMs repository baseurl=http://packages.irontec.com/centos/$releasever/$basearch/ Затем импортируем публичный ключ от irontec: rpm --import http://packages.irontec.com/public.key Все готово к установке. Даем следующие команды: yum update yum install sngrep По окончанию установки, в командной строке дайте команду sngrep. Теперь давайте разберемся с функционалом и тем как пользоваться утилитой. Использование sngrep Как только вы попадете в меню управления утилитой, перед вами будет отражен список VoIP пакетов, которые обрабатывает Ваш сервер: Нажав на Enter вы сможете более детально изучить каждое сообщение. Нажав F5, вы сможете удалить текущие сообщения. Для передвижения между сообщениями используйте стрелки на клавиатуре. При детализации звонка, можно нажать F2/F3 для получения SDR/RTP информации. Для выхода и возврата в предыдущее меню нажмите Esc. Если кратко, следующие опции доступны в базовом интерфейса sngrep: F1 - открыть функциональный помощник; F2 - сохранить собранный дамп в указанный файл; F3 - отфильтровать данные по указанной строке; F4 - показать выбранный расширенный call – flow (схема звонка, с указанием всех этапов его инициации); F5 - удалить собранный дамп; F6 - показать выбранный дамп в текстовом формате (без визуализации стрелочками, только сухие SIP – сообщения); F7 - показать опции фильтрации (фильтровать можно по полю From/To, по источнику и назначению звонка, а так же по различным данным из информационного сегмента поля полезной нагрузки, то есть не из заголовка). Помимо прочего, есть возможность отмечать типы сообщения, такие как REGISTER, INVITE, OPTIONS и прочие; F8 - показать настройки, среди который подсветка синтаксиса, фон и прочие; F10 - настройка отображаемых параметров (такие как From/TO, индекс, метод и прочие); Esc - выйти из sngrep/в предыдущее меню; Enter -посмотреть call-flow выбранного пакета; Space (пробел) - выделить нужный сегмент; i/I - фильтрация только по сообщения типа INVITE; p - поставить на паузу сбор пакетов;
img
Kubernetes - это система с открытым исходным кодом, созданная для оркестровки, масштабирования и развертывания контейнерных приложений. Если вы хоть раз работали с Kubernetes, то знаете, насколько он полезен для управления контейнерами. Вы также знаете, что контейнеры не всегда работают должным образом. Если появляется сообщение об ошибке, вам нужен быстрый и простой способ решить проблему. Из этого туториала Вы узнаете, как перезапустить поды в Kubernetes. Под (Pod) – наименьшая запускаемая единица в ноде. Это группа контейнеров, которые должны работать вместе. Перезапуск подов Kubernetes Допустим, один из подов в вашем контейнере сообщает об ошибке. В зависимости от политики перезапуска Kubernetes может попытаться автоматически перезапустить под, чтобы он снова заработал. Однако это не всегда решает проблему. Если Kubernetes не может решить проблему самостоятельно, и вы не можете найти источник ошибки, перезапуск пода вручную - это самый быстрый способ вернуть приложение в рабочее состояние. Быстрое решение - вручную перезапустить затронутые поды. Это может сэкономить ваше время, особенно если ваше приложение работает и вы не хотите выключать службу. Вот три простых способа сделать это. Метод 1: Rolling Restart Начиная с обновления 1.15, Kubernetes позволяет выполнять непрерывный перезапуск развертывания. В качестве нового дополнения к Kubernetes это самый быстрый метод перезапуска. kubectl rollout restart deployment [deployment_name] Вышеупомянутая команда выполняет пошаговое завершение работы и перезапускает каждый контейнер в вашем развертывании. Ваше приложение по-прежнему будет доступно, поскольку большинство контейнеров все еще будут работать. Метод 2: Использование переменных среды Другой способ - установить или изменить переменную среды, чтобы поды перезагружались и синхронизировались с внесенными вами изменениями. Например, вы можете изменить дату развертывания контейнера: kubectl set env deployment [deployment_name] DEPLOY_DATE="$(date)" В приведенном выше примере набор команд env настраивает изменение переменных среды, развертывание [deployment_name] выбирает ваше развертывание, а DEPLOY_DATE="$(date) изменяет дату развертывания. Метод 3. Масштабирование количества реплик Наконец, вы можете использовать команду масштабирования, чтобы изменить количество реплик неисправного пода. Установка этого количества на ноль по существу отключает под: kubectl scale deployment [deployment_name] --replicas=0 Чтобы перезапустить под, используйте ту же команду, чтобы установить количество реплик на любое значение больше нуля: kubectl scale deployment [deployment_name] --replicas=1 Когда вы устанавливаете количество реплик равным нулю, Kubernetes уничтожает реплики, которые ему больше не нужны. Как только вы установите число больше нуля, Kubernetes создаст новые реплики. Новые реплики будут иметь другие имена, чем старые. Вы можете использовать команду kubectl get pods, чтобы проверить статус модулей и увидеть новые имена. Итог Kubernetes - чрезвычайно полезная система, но, как и любая другая система, она не безошибочна. Когда все же возникают проблемы, вы можете использовать три перечисленных выше метода, чтобы быстро и безопасно заставить ваше приложение работать, не закрывая службу для ваших клиентов.
img
Благодаря Интернету любой человек в мире может получить доступ к ресурсам, на благодаря которым можно научиться программировать за небольшие деньги или вообще без них. Хотя это прекрасно для тех, кто хочет стать разработчиком программного обеспечения, это также создает проблемы, особенно если вы только начинаете. Каждый новый клик приводит к новой рекомендуемой статье, учебному пособию или видео на YouTube для изучения. Но как сделать правильный выбор? Эта статья должна помочь выбрать язык программирования, с которого можно начать изучать программирование или на котором можно сосредоточиться если вы уже изучаете несколько языков. А выбор то действительно большой. Какие сегодня используются языки программирования и что популярно? Веб-приложения: JavaScript, PHP, Ruby, HTML / CSS, TypeScript Мобильные приложения: Swift, Java, JavaScript, Object-C Операционные системы: C, C ++ Распределенные системы: Go Корпоративные приложения: Java, C #, C ++, ErLang Аналитика и машинное обучение: Python, R, Clojure, Julia Математические и научные вычисления: Matlab, FORTRAN, ALGOL, APL, Julia, R, C ++ Визуализация данных: Python, R, Java, C # Большие данные: Java, Python, R, Scala, Clojure Хранение данных: SQL, C #, Java, Python Не уверены, где начать? Вот важный совет - выучите язык общего назначения - general-purpose language. Почему стоит начинать именно с них? Потому что они широко используется и не ограничивается одной областью, это очень важно. Python Простой и понятный синтаксис Python делает его отличным языком общего назначения для освоения. Язык обладает динамической системой типов, автоматическим управлением памятью и поддерживает несколько парадигм программирования, таких как объектно-ориентированная, функциональная и императивная. Многие домены приложений используют его всеобъемлющую стандартную библиотеку. Веб-приложения и приложения для настольных компьютеров, серверы, машинное обучение и приложения для искусственного интеллекта используют Python. Он постоянно входит в число лучших языков программирования каждый год, а количество вакансий с ним просто огромное. JavaScript Согласно ежегодному опросу разработчиков по Stack Overflow, более 70% всех разработчиков используют JavaScript. Он универсален, может применяться практически в любой области программного обеспечения и является одним из основных интерфейсных языков Всемирной паутины. JavaScript также позволяет интерактивные веб-страницы и имеет важное значение для большинства веб-приложений. JavaScript является мультипарадигмальным языком и поддерживает множество стилей программирования от объектно-ориентированного до функционального. У этого также есть огромное, быстро растущее число библиотек, включая некоторые внутренние серверы. Самые известные – React, Angular и Vue.Он настолько популярен, что у него даже есть фреймворки в тех областях, где это не самый лучший вариант, например, в разработке игр и виртуальной реальности. Ruby Как и другие языки, Ruby поддерживает несколько парадигм программирования, таких как объектно-ориентированная, функциональная и императивная. Это также показывает динамическую систему типов и автоматическое управление памятью. Ruby в основном используется в веб-приложениях с платформой Ruby on Rails, но также используется на внутренних серверах и базах данных. Одним из главных достоинств Ruby является его дружелюбие к начинающим. Это один из самых прощающих языков в списке - вы все равно сможете скомпилировать и запустить свою программу до появления проблемы. Его также легко освоить, потому что его синтаксис близок к разговорной речи, и он может делать то же, что и другие языки, с гораздо меньшим количеством строк кода. Java Знаменитый слоган Java - «пиши один раз, запускай где угодно», поскольку он работает на любой платформе, которая его поддерживает. Java является одним из наиболее широко известных языков среди новых разработчиков и вторым наиболее используемым языком в Stack Overflow. Java - это мультипарадигмальный язык, основанный на классах, объектно-ориентированный и разработанный с наименьшей зависимостью от реализации. Благодаря своей структуре он имеет широкий спектр применения в разных областях применения. Одним из наиболее известных применений является разработка приложений для Android, но он также популярен для настольных, веб, серверных и сетевых приложений. Хотя синтаксис Java поначалу может показаться сложным, его освоение может стоить того, чтобы получить первую работу в качестве разработчика. Думаете о конкретной области? Если у вас уже есть конкретная цель - работать над машинным обучением, стать разработчиком мобильных приложений или присоединиться к стартапу, подумайте над освоением языка, соответствующего этой цели. Какой язык программирования нужен для машинного обучения Согласно отчету о GitHub, Python был наиболее часто используемым языком для машинного обучения в 2018 году. Объедините свои знания Python с библиотекой TensorFlow, и вы получите прекрасную возможность получить захватывающую работу, связанную с машинным обучением. Язык программирования R будет следующим лучшим выбором для машинного обучения. Он наиболее эффективен для анализа и обработки данных в статистических целях. Он также предлагает множество пакетов, которые облегчают реализацию алгоритмов машинного обучения. Какой язык программирования изучить для мобильной разработки Если вы заинтересованы в разработке мобильных приложений, вам придется решить, хотите ли вы разрабатывать для устройств Android или Apple. Java - ваш лучший выбор для разработки на Android. Тем не менее, разработка мобильной Java отличается от обычной Java из-за ограниченной мощности смартфонов. Например, обычная Java-программа работает до тех пор, пока вы ее не выключите, а приложение Android можно закрыть в любое время, если оно не запущено на переднем плане. Со стороны iOS, вам стоит изучить Swift, официальный язык Apple для iOS, macOS и другой код, написанный для продуктов Apple. Также можно предложить Objective-C, потому что вы можете создавать графические пользовательские интерфейсы и многофункциональные фреймворки, но Swift легче учить, легче читать, и он одобрен самими Apple. JavaScript - еще один хороший вариант для мобильной разработки. В сочетании с HTML и CSS вы можете создавать приложения, которые можно конвертировать в собственные приложения с помощью Cordova. Другим примером является стек .NET, который также можно использовать для создания приложений и их преобразования с использованием Xamarin. Конечно, эти примеры подчеркивают важность изучения языка общего назначения еще больше. Какой язык программирования выучить для того чтобы запустить стартап Если вы знаете, что хотите создать или присоединиться к стартапу, ничто не сравнится с знанием Ruby и Ruby on Rails. Ruby дружелюбен к новичкам и позволяет разработчикам быстро создавать прототипы, что делает его отличным выбором для быстроразвивающихся стартапов. Каких языков избегать? Есть много других языков на выбор. Некоторые из самых популярных в настоящее время включают Go, Scala, TypeScript, C ++ и Rust. Однако, если вы начинаете изучать разработку программного обеспечения, вам следует избегать большинства из них. Многие языки сложны, продвинуты или слишком сфокусированы на одной области приложения. Итог Гиперфокус на овладение одним языком, а не на изучение нескольких языков Если вы не знаете, с какого языка начать, выберите язык общего назначения Не переживайте о том, какой из них вы должны выбрать, потому что есть рабочие места для каждого языка. Важнее всего ваша мотивация, решимость и способность сосредоточиться на изучении и овладении выбранным вами языком.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59