Генерация Sitemap на микросервисах
Яна Сидорова
Middle backend developer Hawking Bros
Мы продолжаем цикл статей о микросервисной архитектуре. В прошлый раз мы говорили о переходе на микросервисную архитектуру. В этот раз речь пойдёт о генерации файла sitemap.xml и о нашем решении этой задачи
Введение
Что такое Sitemap?
Sitemap — файл формата xml, который содержит информацию о страницах сайта: URL-адреса, типы файлов, даты публикаций статей и так далее. Нужно предоставить этот файл поисковой системе, чтобы страницы сайта правильно индексировались для поиска.
Когда Sitemap нужен?
Если сайт уже построен на микросервисной архитектуре, не нужно объяснять, что не все ссылки на страницы находятся в верхнем меню. Скорее всего, это сложная система, содержащая большое количество контента, и этот контент хотелось бы показывать пользователю при поиске в Google.
В чём проблема?
Существуют автоматические генераторы, но они работают только со статичной и редко обновляемой информацией. Значит нужно писать свой метод: собрать все статичные URL, сгенерировать динамические, исходя из информации в базе данных; затем создать файл и наполнить его, не забывая про структуру XML-документа.
Проблема при использовании микросервисной архитектуры заключается в том, что базы данных микросервисов автономны и изолированы, в каждой из них находятся данные, которые нужно получать по отдельному запросу. Где расположить метод генерации Sitemap? Будет ли он отправлять запрос в каждый микросервис? Сколько времени занимает сбор данных? Где вообще хранить файл sitemap.xml?
Решить задачу можно разными способами, мы же поделимся своим видением.
Схема и технологии
Ситуация
В нашем примере сайт — интернет-магазин с более чем сотней тысяч товаров. Компания имеет около 50 филиалов, каждый со своей страницей контактов, блогом с новостями и акциями и тому подобным. Все эти сущности разделены по микросервисам.
Технологии
PHP-фреймворк Laravel, брокер очередей Kafka, поисковая система ElasticSearch в качестве хранилища данных, СУБД PostgreSQL. Взаимодействие между frontend и backend реализовано с помощью REST API.
Суть
Итак, для генерации готового файла sitemap.xml требуется:
- Дать команду на сбор адресов страниц микросервисам, которые должны их генерировать.
- Сохранить сгенерированные данные в общем хранилище.
- Дать команду на получение и форматирование этих данных в формат xml.
- Сохранить сгенерированный xml-файл для быстрого доступа при запросе.
Для получения:
- Отправить API-запрос в соответствующий микросервис.
- Получить содержимое файла из быстрого доступа или из внешнего хранилища.
- Отдать данные в ответе.
Для этого нам потребуются брокер сообщений и внешнее хранилище.
В качестве брокера сообщений на данном примере используется Kafka, за внешнее хранилище отвечает ElasticSearch.
В Kafka отправляется сообщение о генерации sitemap (по нажатию кнопки в административной панели, из cron-задачи или напрямую из терминала). Конкретно этот тип сообщения прослушивают только те микросервисы, которые должны участвовать в сборе адресов. Далее методы микросервисов внутри себя проходятся по заданным константами статичным урлам, по своей БД, если требуется, а также формируют часть файла и сохраняют её в документ заранее созданного индекса.
Генерация Sitemap
Теперь, чтобы взять эти данные и составить из них документ, определённый микросервис (например, seo) принимает API запрос.
Чтобы вернуть ответ, сначала методы микросервиса seo смотрят в кэш. Время хранения кэша зависит от частоты обновляемых данных, в нашем случае это один день. Если в кэше нужных данных не оказалось, методы ищут их в базе данных микросервиса c датой обновления не ранее суток. Если же данных нет и там, происходит следующий процесс.
Микросервис обращается к индексу ElasticSearch, получает части файла, объединяет и применяет к ним нужное форматирование. Затем содержимое файла сохраняется в базу данных, кэшируется для дальнейшего быстрого доступа и отдаётся в ответе.
Получение Sitemap
Заключение
Таким образом, при запросе sitemap.xml из браузера, веб-сервер посылает API-запрос к микросервису seo и полученный ответ подставляется на страницу.
Такая схема позволяет легко добавлять в процесс генерации файла новые микросервисы. Для этого нужно подключить их к прослушиванию сообщения и реализовать методы сбора адресов внутри себя.
Использование очереди сообщений позволяет не ждать ответа последовательных запросов к каждому микросервису, а генерировать части файла асинхронно, чтобы избежать ошибки 504 Gateway Time Out.
Если какой-то микросервис недоступен или генерация закончилась ошибкой, часть адресов просто не попадёт в общий список, а ошибку можно будет легко отследить в логах. Зато сам sitemap. xml будет всегда доступен, даже во время обновления адресов, так как за получение файла отвечает другой запрос.
Реклама на Tproger: найдем для вас разработчиков нужного стека и уровня.
Подробнее
Реклама на tproger.ru
Загрузка
Генератор карты сайта
Генератор карты сайта (для Витрины!)
Бесплатно!
Чтобы скачать плагин, перейдите в панель управления вашим сайтом и нажмите на кнопку «Установить» в разделе «Маркетплейс».
- Описание
- Отзывы о плагине (0 шт.)
Данный плагин «Генератор карты сайта» создает в корне вашего сайта файл sitemap.xml
Файл sitemap.xml — это файл с информацией о страницах сайта,подлежащих индексированию. Наличие данного файла влияет на; скорость индексирования страниц вашего сайта.
Разместив файл sitemap. xml на сайте, вы можете:
- сообщить поисковым роботам Яндексу и Google, какие страницы вашего сайта нужно индексировать;
- как часто обновляется информация на страницах;
- индексирование каких страниц наиболее важно.
Файлы sitemap.xml учитываются при обходе сайта, однако мы не гарантируем, что все URL из вашего файла будут добавлены в поисковый индекс.
Плагин «Генератор карты сайта» автоматически формирует файл карты и сохраняет ее в корне сайта. После установки плагина и генерации файла не забудьте добавить директиву Sitemap: http://ваш_домен/sitemap.xml в файл robots.txt
Как открыть интернет-магазин телефонов
Как открыть интернет-магазин телефонов
Как открыть интернет-магазин вещей
Как открыть интернет-магазин вещей
Как фотографировать товары для интернет-магазина
Как фотографировать товары для интернет-магазина
SEO продвижение интернет-магазина своими руками
SEO продвижение интернет-магазина своими руками
Как получить бесплатный номер 8 800
Как получить бесплатный номер 8 800
Плавное подчёркивание ссылки при наведении
Плавное подчёркивание ссылки при наведении
Как сбросить кэш сайта и браузера
На панели администратора, в правом верхнем углу страницы, есть кнопка «Сбросить кэш». .. Перейти >>>
Как перейти на защищенный HTTPS протокол
в файле .htaccess нужно добавить код перенаправления запросов на https, а в файле config.ini нужно прописать PROTOCOL = «https»… Перейти >>>
Каким образом меняется иконка во вкладке браузера
Чтобы изменить favicon (иконку во вкладке браузера), необходимо перейти в настройки Moguta.CMS и загрузить изображение в формате *.ICO…. Перейти >>>
Как подтвердить сайт в Яндекс.Вебмастер
Выберите тип подтверждения Метатег. Вставьте код в настройках Moguta.CMS в поле «Метатеги для подтверждения сайта»…. Перейти >>>
Как настроить цели Яндекс.Метрики
Первым действием необходимо убедиться что счетчики подключены к вашему сайту. Для этого в разделе настроек магазина укажите их JS скрипты в соотетству… Перейти >>>
Как вставить Яндекс.Карту на сайт
Для получения кода карты перейдем в конструктор Яндекс.Карт и создадим карту с нашим адресом и маршрутом…. Перейти >>>
Высота и ширина картинок не меняется!
Указанные параметры изображений настроек будут применяться только для новых загруженных изображений. Необходимо пересоздать миниатюры изображений в на… Перейти >>>
Как восстановить пароль администратора?
Для восстановления забытых паролей пользователей сайта, созданного на Moguta.CMS, предусмотренна страница /forgotpass… Перейти >>>
Какой CSS-стиль применяется? Как его изменить?
Кликните правой кнопкой мыши, например, на заголовок страницы. В контекстном меню выберите «Просмотреть код»…. Перейти >>>
Как выводить контент только на заданной странице
Для этого можно использовать вставки кода в каркас верстки страниц шаблона в файл template.php… Перейти >>>
Обмен заказами между интернет-магазином и 1С
Двухсторонний обмен данными с 1С реализован в рамках стандарта протокола CommerceML разработанного компанией 1С… Перейти >>>
Как установить движок
Установка движка должна производиться на хостинг путем загрузки одного файла index.php в корневую директорию вашего сайта…. Перейти >>>
Как главной страницей сайта сделать страницу каталога?
В настройках админки выберите опцию «Выводить каталог на главной странице» Перейти >>>
Как перенести сайт на новый хостинг
В корне сайта, откройте файл config. ini вашего нового сайта и приведите в соответствие параметры для подключения к новой базе… Перейти >>>
Что такое шорткоды плагина и куда их вставить
Как изменить текст письма с сайта
В настройках панели управления перейдите в настройки шаблона, раздеш шаблоны писем. Вы можете менять следующие письма… Перейти >>>
Где можно редактировать текст соглашения на обработку пользовательских данных?
Рядом с опцией в настройках магазина «Запрашивать подтверждение пользовательского соглашения» -> «Изменить текст соглашения»… Перейти >>>
Как удалить переносы строк в ячейке файла excel/csv
Используйте CTRL+H для автозамены по документу. Либо макрос. Перейти >>>
ГенераторRSS. Создайте свой RSS-канал Онлайн
Генератор RSS. Создайте свой RSS-канал Онлайн
Генератор карты сайтаГенератор RSSGoogle Покупки FeedsЯндекс Покупки FeedsPodcast Maker
Хотите создать RSS-канал?
Наш бесплатный онлайн-инструмент предоставляет очень простой способ создать RSS-канал из любого места.
Просто введите URL-адрес веб-страницы , чтобы начать создание канала:
С нами создание RSS-канала проще, чем когда-либо.
Следите за своими любимыми профилями в социальных сетях, партнерским контентом или другими онлайн-ресурсами, которые вам нужны, через RSS-каналы, которые вы можете синхронизировать со своими веб-приложениями или любым средством чтения RSS.
Поделитесь своим новостным контентом с миллионами читателей в ведущих поисковых системах и агрегаторах новостей легко настроив полнотекстовый канал вашего сайта для синхронизации с платформами издателей.
Наша служба генератора RSS позволяет создавать RSS-канал практически из любого веб-ресурса. Никаких технических навыков не требуется. Наш бот сгенерирует ленту за считанные секунды.
Подробнее
Создайте RSS-канал для своего сайта и привлекайте подписчиков и трафик через RSS-читалки и новостные агрегаторы
Публичный Бесплатно
0 долларов США
абсолютно бесплатно для веб-издателей
Создание RSS-канала непосредственно с веб-сайта для привлечения подписчиков и распространения контента
Базовый RSS-канал
Создание базового RSS-канала для любого веб-сайта.
Полный текст RSS
Извлечение, чтение и объединение всего содержимого страниц веб-статей.
Центр издателей
Продвигайте и монетизируйте содержимое своего веб-сайта с помощью Центра издателей Новостей Google.
Яндекс Турбо
Оптимизируйте свой контент для мобильного поиска Яндекса.
Яндекс Дзен
Распространяйте свой потрясающий контент с помощью Яндекс Дзен.
RSS из социальных сетей
Отслеживание социальных сетей с помощью RSS 2.0, совместимого с любой программой для чтения RSS
Twitter в RSS
Создавайте RSS-каналы интересующих вас учетных записей Twitter.
Youtube в RSS
Получите список последних видео, загруженных на каналы Youtube.
Pinterest в RSS
Отслеживание пинов из любых общедоступных профилей пользователей или определенных досок.
VK to RSS
Простой способ получить доступ к списку публичных постов в ВКонтакте.
Reddit to RSS
Будьте в курсе тем сообщества Reddit.
RSS-каналы для партнеров по маркетингу
Получайте доход от партнерского маркетинга с помощью RSS
Amazon RSS
Создавайте RSS-каналы для продвижения продуктов Amazon.
eBay RSS
Создание RSS-каналов для продвижения продуктов eBay.
Как работает генератор RSS?
Наша служба генератора RSS анализирует указанную вами целевую страницу и отслеживает новые обновления, а также подробно сканирует каждую публикацию, чтобы извлечь и преобразовать ее содержимое в формат RSS 2.0 в соответствии с настраиваемыми параметрами. В результате вы получаете настраиваемую и гибкую RSS-ленту, которую можно подключить к любому каналу чтения RSS или каналу синдикации.
Создавайте свои собственные RSS-каналы, содержащие только то, что вам действительно нужно: новостную ленту, сообщения в блогах, последние объявления или что-то еще.
Попробуйте бесплатно Выбрать тариф
Кроме того, наш генератор позволяет создавать полнотекстовые RSS-каналы для синхронизации с сервисами агрегации новостей, предоставляемыми Google и Яндекс.
Поддерживает полнотекстовые RSS-каналы для Google News Producer, Yandex News, Yandex Zen и Yandex Turbo Pages.
Процесс создания RSS-каналов очень прост:
- Выберите страницу вашего сайта, на которой регулярно обновляется контент (например, страница новостей)
- Преобразуйте ее в RSS-ленту. Для автоматического обновления RSS-канала создайте обновляемый RSS-канал в личном кабинете
- Привлекайте подписчиков, размещая RSS-канал на своем сайте и продвигая его в популярных онлайн-агрегаторах.
Создание бесплатных RSS-каналов или создание постоянно обновляемых RSS-каналов для:
- Новостей веб-сайта
- Партнерский рекламный контент
- Профили в социальных сетях
- …и многое другое!
RSS — наиболее широко используемая и удобная технология для распространения контента в Интернете.
x
Этот веб-сайт использует файлы cookie. Использование этого веб-сайта означает, что вы согласны с этим. Политика конфиденциальностиAccept
Blogger Sitemap — Создание XML-карт сайта для Google и Bing Search
Digital Inspiration
Search SiteSearch SiteЛегко создавайте XML-карты сайта для своих блогов Blogger (blogspot) для улучшения SEO
URL-адрес блога
Вставьте полный URL-адрес своего блога Blogger (blogspot)
Карта сайта XML
Карта сайта XML для вашего блога https://labnol. blogspot.com готова 👇
Следующий шаг — отправьте карту сайта в Google и Bing.
Нажмите здесь, чтобы создать другую карту сайта.
Все, что вы хотели знать о файлах Sitemap XML для поиска Google
Что такое инструмент Blogger Sitemap?
Инструмент Blogger Sitemap создаст полную XML-карту сайта вашего блога Blogger со всеми вашими сообщениями в блоге, а не только с недавно опубликованными сообщениями в блоге.
Зачем нужны файлы Sitemap в формате XML?
XML-файлы Sitemap помогают поисковым системам находить сообщения в вашем блоге и лучше его индексировать. Карты сайта поддерживаются всеми основными поисковыми системами, включая Google и Bing.
Отправить XML-карту сайта в Google »
Перенаправление Blogger
Блоги Blogger теперь автоматически перенаправляются на домены blogspot для конкретной страны, но для создания карты сайта необходимо ввести основной адрес .com.
Предотвратить перенаправление Blogger »
Инструмент для встраивания работает только с блогами, размещенными на Blogger. com. Он также может генерировать XML-карты сайта для блогов, которые используют пользовательские домены с blogspot.
Вот некоторые популярные блоги, размещенные на платформе Blogger / blogspot //webmasters.googleblog.com/
http://googleblog.blogspot.com
https://blogger.googleblog.com/
С момента своего запуска в 2004 году Digital Inspiration получила несколько наград.
Google Developer Expert
Компания Google присудила нам награду Google Developer Expert в знак признания нашей работы в Google Workspace.
ProductHunt Golden Kitty
Наш инструмент Gmail получил награду «Лайфхак года» на конкурсе ProductHunt Golden Kitty Awards в 2017 году.
Google Cloud Champion
Компания Google присвоила нам звание Champion Innovator, признавая наши технические навыки и опыт.
Подпишитесь на наш канал YouTube и получайте уведомления всякий раз, когда мы загружаем новый видеоурок.
Автоматизированный рабочий процесс документа с формами Google Forms and Sheets
Как продавать цифровые товары с помощью PayPal и Google Sheets
Google Apps Script — A Developer’s Guide
Converte Google Slides Dialer
.
Слияние для Gmail с вложениями
Формы загрузки файлов для Google Диска
Dictation — Type with your Voice
Email Google Sheets Automatically
YouTube Video Uploader for Teams
Limit Google Form Responses Automatically
Create PDF Documents from Google Forms
Уведомления по электронной почте для Google Forms
Как скрыть файлы на Google Диске
Создание объединенных документов с помощью Google Sheets или Google Forms
Create PDF Documents with Images and QR Codes
Send Unique File Attachments with Mail Merge for Gmail
Print Password Protected PDF Files
Embed Google Photos in your Website
Chrome Developer Инструменты — Видеоруководство
Как открыть скрытый пароль на странице входа
Безопасные пароли
Сохранение писем Gmail на Google Диске
Отправка электронных писем с подтверждением с помощью Google Forms
Создание изображений Emoji с помощью Google Sheets
Sender Icons для Gmail и Google Inbox
автоматизация бизнес-процессов и повышение производительности труда.