Мини-программа Mall Mall, чтобы создать лучшие передовые практики SpringCloudAlibaba

Spring Cloud
Мини-программа Mall Mall, чтобы создать лучшие передовые практики SpringCloudAlibaba

задний план

Поскольку я видел много технических систем на своем пути, я также был свидетелем того, что некоторые технические системы прекратили обслуживание.Я хочу использовать набор технических систем, которые я считаю лучшими для создания распределенной микросервисной системы, включая уровень разработки, уровень промежуточного программного обеспечения. и уровень эксплуатации и технического обслуживания.Технология, как технологический стек в технической команде, которую вы хотите. В этом году SpringCloud перестал поддерживать прежние технологии, такие как eureka, feign, zuul и эластичную работу Dangdang.com, и Dangdang.com зависнет. Поэтому по этим причинам я хочу перейти на хороший стек технологий.

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

Фоновая картинка выше тоже сделана мной, она тоже очень красивая?

Цель этой статьи

  1. Позвольте мне представить общий дизайн и причины, по которым стек технологий используется в некоторых проектах.
  2. Познакомьтесь с инструментами, используемыми для разработки небольших программ, и начните фронтенд-разработку.
  3. В дальнейшем основные моменты и технические сложности каждого технического сценария будут вводиться один за другим. Например, когда использовать механизм правил, унифицированную проверку подлинности учетной записи. Ранее я делился некоторыми техническими моментами, и теперь я использую предыдущую технологию для этого проекта.
  4. Некоторые вещи находятся в разработке и еще не закончены.
  5. Эта статья также предназначена для того, чтобы написать о технологии, которая мне нравится, оставив практический результат.

Добро пожаловать в публичный аккаунт, статья на шаг быстрее

Мой публичный номер: Кшитигарбха думает

image

Технологическая архитектура

На этот раз я в основном перешел на SpringCloudAlibaba.

Служба управления:

springCloud Dubbo, потому что исходный набор SpringCloud прекратил техническое обслуживание. Хотя на этот раз я использовал dubbo, некоторые люди спрашивали, сожалеют ли они о переходе с dubbo на springcloud. Даунгрейд сервиса ещё и потому, что Hystrix больше не используется, поэтому используется Sentinel

Сервисный шлюз:

Компания, в которой я работал раньше, использовала java-сервис в качестве сервера приложения, а затем агрегировала несколько нижестоящих сервисов, предоставила их на уровень пакета интерфейса и вернула их приложению, а также эти функции аутентификации.На этот раз шлюз SpringCloud используется для пересылки и аутентификации. Часть аутентификации была изменена, этот момент более важен, и он включен в более поздний дизайн бизнес-системы.

очередь сообщений:

Используйте RocketMq вместо rabbitMq (медленно) и Kafka (функция подтега тега отсутствует, несколько потребителей в очереди будут потреблять одно и то же)

Распределенные транзакции:

Это межсистемная транзакция. В прошлом использовался метод эвентуальной согласованности и асинхронной обработки. На этот раз я посмотрю, есть ли какие-либо сценарии, использующие распределенные синхронные транзакции. Я узнал о структуре, разработанной людьми из LCN. В этот раз хочу использовать Seata Али. (в настоящее время находится в разработке и еще не используется)

Движок правил:

На картинке этого не написано, а вот использование слюней, которое используется для маркетинговых услуг.Это правила предоставления различных скидок в этом магазине, например: 10 минус 10 при достижении 100, 10 юаней при достижении 3 шт, и 1 шт при заполнении.эти правила для предметов. Фактически, это можно сделать с помощью механизма правил.Компании, занимающиеся онлайн-кредитованием, которые работали в прошлом, использовали разные правила при подключении к третьим сторонам.

Дела по расписанию:

SchedulerX вместо эластичной работы, потому что Dangdang будет зависать. Vipshop использует эластичную работу, чтобы инкапсулировать его, и называет его сатурном, а Huya инкапсулирует сатурн. На этот раз давайте исследуем Ali SchedulerX и посмотрим, какой из них лучше.

Самостоятельно разработанный интерфейс RestFul генерируется автоматически:

Это фреймворк, который я сделал сам, concise-mvc, простой генератор mvc, потому что микросервисы теперь вызываются с помощью dubbo, и нет интерфейса протокола http для springCloudgateway или приложений верхнего уровня. Поэтому я создал интерфейс на основе специальной аннотации и сгенерировал: / #{имя интерфейса}/#{имя метода} uri. Таким образом, разработчик может только разработать интерфейс dubbo и автоматически сгенерировать интерфейс http для вызова шлюза.

внешний интерфейс:

Внешний интерфейс в настоящее время представляет собой только небольшую часть программы, а не сторону ПК. На этот раз внешний интерфейс также написан мной с использованием uniapp. Этот фреймворк основан на Vue. Вы можете использовать код для реализации WeChat, Douyin, Baidu, установка, компиляция программ для таких платформ, как ios, его компиляция будет автоматически преобразована в интерфейс, требуемый каждой платформой. Он построит навигационную панель и маршрут до какой страницы, нам нужно только написать логику, подключить back-end интерфейс, стиль и взаимодействие. И инкапсулировать некоторые стили компонентов, такие как кнопки, которые можно скачать с их маркета.

Почему бы не использовать его для реализации внешнего кода на стороне ПК, потому что ПК относительно большой, а макет стиля другой.

icon

iconfront — это библиотека значков Ali, в которой вы можете найти значки для создания шрифтов или изображений, которые могут использоваться кодом Vue апплета в качестве пользовательского интерфейса.

инструмент для сборки

Visual Studio Code, HBuilderX, инструменты разработчика WeChat

Система фонового управления

Он использует структуру vueadmin, а также предоставляет вам панели навигации и переходы, такие как uniapp. Просто напишите туда реализацию.

Объекты эксплуатации и технического обслуживания

С точки зрения эксплуатации и технического обслуживания, технологический стек является одним из компонентов, которые, как мне кажется, проще использовать в кредитной компании.Многие компании, которые переходят на более поздний срок, используют их.Лучшей из них является система, разработанная кредитной компанией на основе на k8s, потому что это сделали другие компании.Для развертывания k8s существует только одна тестовая среда и рабочая среда.

На самом деле многие блоки эксплуатации и обслуживания — это то, чем я не буду заниматься в этом проекте, поскольку у меня нет времени делать слишком много, я могу попросить других помочь с развертыванием.

Микросервисное подразделение

система УДБ

Я вижу, что во многих системах есть служба безопасности, но они выполняют только функцию аутентификации. Причина, по которой он здесь называется udb, заключается в том, что, когда я работал в интернет-компании, система предназначалась не только для аутентификации, но и для функции единой учетной записи, то есть для того, чтобы WeChat, вход в систему с мобильного телефона и вход в систему с авторизацией QQ были всеми. в одном месте. Пусть учетная запись WeChat и номер QQ одного и того же человека будут привязаны к одному номеру. И сгенерируйте идентификатор как userId, чтобы другие системы в бизнесе могли взаимодействовать через этот идентификатор.

Авторизация WeChat на самом деле oauth2.

В таком унифицированном месте аутентификации токен, сгенерированный UDB, может содержать идентификатор пользователя, что позволяет разработке springCloudgateway использовать GatewayFilter для унифицированного перехвата интерфейса данных.Фильтр сначала аутентифицируется, и система udb возвращает идентификатор пользователя, а затем вставляет идентификатор пользователя в тело Http, позволяя нижестоящим системам шлюза использовать этот идентификатор пользователя единообразно, чтобы номер счета (например, банка) можно было унифицировать для нескольких проектов.

Здесь аутентификация UDB использует JWT для шифрования userId, что может гарантировать, что пользователи могут изменять свои собственные данные и не будут изменять данные идентификаторов других людей, если вы не передадите токен другим.

Благодаря такому сочетанию системы Udb и springCloudgateway взаимодействие с идентификатором пользователя и аутентификация могут быть унифицированы, а различные проекты, такие как однократная электронная коммерция и однократный заказ, могут различаться одним идентификатором пользователя и другим идентификатором приложения, когда один и тот же человек является то же самое, иначе один Люди, которые приходят в одну и ту же компанию, имеют разные идентификационные номера.Вы можете видеть, что приложение ICBC и приложение e-Rong также имеют одинаковый номер физического лица и разные бизнес-идентификаторы.

Маркетинговые услуги

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

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

Образцы были разработаны

Эпилог

Однажды каждый будет самостоятельно достраивать понравившиеся системы и строить свои игрушки. Обратите внимание на публичный аккаунт и оставьте сообщение, чтобы получить структуру проекта.


Добро пожаловать в публичный аккаунт, статья на шаг быстрее

Мой публичный номер: Кшитигарбха думает

Самородки: Дзидзо Кельвин

Краткая книга: Кельвин Кельвин

Моя одежда: Дзидзо Кельвинgitee.com/kelvin-cai