В последний год или около того основная энергия работы была направлена на разработку системы Push, и в нее было вложено много сил, но уже больше года я пишу код и закапываюсь в дорога, пренебрегая подведением итогов.Я пользуюсь этой возможностью, чтобы рассмотреть и обобщить.Соответствующий дизайн системы, я надеюсь, будет полезен для меня и читателей.
концепция
Push: это означает активную отправку, которая на самом деле представляет собой систему, в которой сервер активно отправляет сообщения в приложение пользователя. Нажмите с точки зрения пользователя
- Вне приложения: основной формой отображения являются уведомления мобильного телефона (системные функции мобильного телефона, фиксированный стиль).
- Внутри приложения: дисплей можно настроить в соответствии с потребностями, различные поп-музыки.
С технической точки зрения, то, что активно передается, — это в основном данные.Данные могут использоваться для приведенного выше отображения, или некоторые данные, которые не нужно отображать внутри, могут быть переданы клиенту, но конечной целью является для пользовательского опыта.
Архитектура
Элементами, содержащимися в начальном состоянии системы Push, являются только отправитель, системный канал и получатель.
Отправитель: человек, который создает push-контент, как создается контент. Системный канал: канал для пользователей, которые достигают созданного контента, можно рассматривать как ядро системы Push.
- Он может подключаться к основным производителям мобильных телефонов, а пользовательское оборудование может быть отправлено производителю, когда пользовательское оборудование находится в автономном режиме.
- Длинный канал соединения между самодельным сервером и приложением пользователя может напрямую связаться с пользователем через самодельный канал в онлайн-состоянии.
Получатель: Пользователь, содержимое отображается на мобильном телефоне пользователя.
Вышеупомянутое определенно более упрощено.Чтобы он действительно стал системой, нужно больше вещей, таких как отправка 100 миллионов пользователей за раз? В системе толпа должна быть шардирована и назначена на разные машины для решения этого вопроса, и лучше всего отправлять ее в градациях серого.Если есть определенное давление на систему, ей нужно ограничить ток. Конечно, существуют определенные меры контроля за последующим эффектом и производительностью данных в реальном времени.
- Обработка больших данных: распределение задач
- Параллельная обработка: оттенки серого, ограничение тока
- Мониторинг данных: Платформа данных
Конечно, вы также можете сделать некоторые вещи на стороне эксплуатации, чтобы снизить риски, добавить некоторые потоки утверждения, управлять и контролировать все отправленные данные контента, и есть много служб, которым необходимо использовать каналы для поддержки в дополнение к операциям.
- Система контента: весь доступный пользователю контент
- Открытая платформа: внешний сервис системных функций, поддержка горизонтального бизнеса
- Процесс утверждения: защита безопасности системы и предотвращение некоторых случайных операций
Если число пользователей велико, чисто ручной метод не может быть выполнен и требует определенного контроля, персонализированного обслуживания, персонализированного контента и персонализированного времени. В это время различные входы в систему вытесняют ресурсы канала, а также требуются некоторые назначения приоритетов, а также некоторый мониторинг и сигнализация каналов.
На данный момент общие элементы в основном доступны, и что еще можно сделать, так это отшлифовать некоторые детали, а также обязанности компонентов и принять некоторые решения:
- Определение операционных рабочих процессов через систему
- Полностью открытая платформа, простота использования операционной платформы
- Стабильность и масштабируемость системы, трансформация некоторых звеньев измерения давления и построение моделей. Кроме Push, чем еще может быть система?
Состав услуги
Некоторые из наиболее важных сервисов или платформ зависят от:
- Контент-платформа
- Инструменты безопасности контента
- Платформа потока утверждения
- Платформа алгоритмов
- платформа данных
- Длинная соединительная платформа
- Центр конфигурации
- Центр мониторинга сигнализации
- ...
использование технологии
В основном используемая технология:
- Кэш, регулирование, понижение версии
- Центр конфигурации, очередь сообщений, центр диспетчеризации, кластерное хранилище, вызов RPC, управление журналами
- Вычислительная платформа в реальном времени, автономная вычислительная платформа
- Знание многопоточности, некоторые шаблоны проектирования
идея
Технически это не обязательно настолько продвинуто, главным образом потому, что пользовательская база велика, что в определенной степени увеличивает сложность системы. С технической точки зрения существуют соответствующие платформы, которые внутренне инкапсулируют технические трудности, а реальные технические трудности решаются на некоторых нижних уровнях или промежуточном программном обеспечении.
Главным для развития бизнеса сейчас стало уточнение бизнес-приоритетов, выявление технических препятствий, продвижение проектов. Требования к аналитическим способностям и социальным навыкам выше, чем к техническим.
Конечно, поскольку я технология, я все еще не могу перестать учиться и исследовать технологии.
В конце концов
Время ограничено, и стоит упомянуть о более впечатляющих вещах в Push, которые можно придумать, надеюсь, это может быть полезно читателям.