Блог Мухомора — это система блога с разделением клиентской и серверной части, основанная на архитектуре микросервисов.
Проектная информация | Демонстрация сайта | Характеристики проекта | Технологическая архитектура | Структура проекта | Документация проекта | Быстрый старт | Видео-курсы| Скриншоты проекта | Запись обновлений | Рабочий блокнот
[Перед вопросом] Вы можете использовать Baidu или Google для решения проблемы; некоторые вопросы могут быть быстро решены с помощью поисковой системы.
[Перед вопросом] Вы можете проверить issues или руководство FAQ; возможно, ваша проблема уже была встречена другими людьми.
[Перед вопросом] Вы можете прочитать как задать вопрос открытому сообществу.
[Задайте вопрос] Рекомендуется использовать Gitee issue для задания вопроса, так как решение проблемы будет сохранено, что поможет другим пользователям избежать аналогичных проблем. Вторым вариантом может быть использование 蘑谷社区, QQ группы или WeChat группы. При использовании группы для задания вопроса убедитесь, что вы полностью описываете процесс возникновения проблемы, а также приложите графическое описание проблемы для более эффективного её решения.## Внутренний рекрутинг ByteDance
ByteDance в настоящее время имеет множество позиций для найма. Привлекательные условия работы доступны по внутренней ссылке рекрутинга для студентов и социальной ссылке рекрутинга для соискателей. После отправки заявки через внутреннюю ссылку рекрутинга вы сможете связаться со мной через паблик WeChat для получения информации о ходе вашего отбора.
Ранее я работал над системой управления с использованием Vue и Element UI, поэтому сейчас планирую создать свой собственный микросервисный блоговый сайт, основанный на последней версии технологической стеки, с разделением на клиентскую и серверную части.
Некоторые статьи в Мошка Блог взяты из моего личного журнала учебных записей, которые находятся в другом репозитории: Learning Notes. В нем содержится информация о JVM, JUC, Java, Spring, Spring Cloud, компьютерных сетях, операционных системах, структуре данных, Vue, Linux и других темах. Если вас интересует эта тема, вы можете перейти в этот репозиторий и поддержать его звездами Star Support.
Мошка Блог использует несколько компонентов мониторинга Spring Cloud, но все они не обязательно должны быть запущены. Обязательными для запуска службами являются:nacos
, nginx
, rabbitmq
, redis
, mysql
, mogu-gateway
, mogu-sms
, mogu-picture
, mogu-web
, mogu-admin
.
Другие службы можно не запускать, это не повлияет на нормальную работу системы. Вы можете выбирать запуск служб в соответствии со своими требованиями.
Минимальные требования: 1 ядро, 2 ГБ ОЗУ требуется включение виртуальной памяти[часто приводит к отказу].
Рекомендованные требования: 2 ядра, 4 ГБ ОЗУ акционное предложение[текущие требования автора].
Последнее время акции Tencent Cloud и Alibaba Cloud очень выгодны. Если вам нужны такие услуги, рекомендую обратить внимание!
[Алибаба Клоб] Акционное предложение облачных серверов, 2 ядра, 2 ГБ ОЗУ, 5 Мбит/с легкий сервер приложений 60 юаней/год Перейти
[Тенцент Клоб] Акционное предложение облачных продуктов, популярный 2 ядра, 4 ГБ ОЗУ, 8 Мбит/с облачный сервер, первый год 74 юаня/год, 222/3 года [Автор настоятельно рекомендует] Перейти
Demonstration backend of the community: http://43.248.128.46:39528/
Demo account: Get it here
Mobile application: mobile version of the "Mushroom" blog available for download via a QR code. For installation use the documentation Installation of the Mushroom Blog Mobile Application and video tutorial Install the Mushroom Blog Mobile App in 20 Minutes.
![]() |
The project has two main versions: Eureka and Nacos, where the Eureka version uses components from Spring Cloud, while the Nacos version utilizes components from Spring Cloud Alibaba, such as Nacos and Sentinel.
Представленные ниже демонстрационные среды используются в настоящее время на официальном сайте Mushroom Community.
[Демонстрация фронтенда сообщества]: http://43.248.128.235:29527/
[Демонстрация бэкенда сообщества]: http://43.248.128.235:29528/
[Демоаккаунт]: получить доступ
На данный момент исходный код Mushroom Community не открыт для публичного доступа. Получение лицензии на использование исходного кода возможно через спонсорство Mushroom Community. Подробнее можно узнать, связавшись с Moxi WeChat: coder_moxi (укажите "Mushroom Community" при отправке запроса).
Проект mogu_blog_go представляет собой адаптированную версию Mushroom Blog, реализованную на языке программирования Go. Он обеспечивает большую часть базовых функций, присутствующих в оригинальной версии Mushroom Blog. При этом фронтенд-код и структура баз данных остались практически без изменений, что позволяет использовать оригинальные страницы фронта Mushroom Blog.Технологии используемые в проекте mogu_blog_go: beego, gorm, mysql, redis и nginx. В отличие от микросервисной версии Mushroom Blog, Golang версия может легко работать даже на серверах с конфигурацией 1C2G, что значительно снижает риск отказа сайта.
Для быстрого создания окружения разработки на платформе Windows, воспользуйться руководством по установке Go версии Mushroom Blog: руководство по установке Go версии Mushroom Blog.
Адрес документации: http://docs.moguit.cn
Проект размещен на платформах Gitee и GitHub, приветствуем ваши звездочки и форки!
(в настоящее время ещё не завершён)
;(в настоящее время ещё не завершён)
;в настоящее время запущен через java -jar
;(на данный момент ещё не завершён)
.## Выбор технологииАрхитектурная схема системы MoguBlog, созданная с помощью ProcessOn.### Аппаратная часть| Технология | Описание | Официальный сайт | | :------------------: | :----------------------------: | :------------------------------------------------------------------------: | | Spring Boot | MVC-фреймворк | https://spring.io/projects/spring-boot | | Spring Cloud | Микросервисный фреймворк | https://spring.io/projects/spring-cloud/ | | Spring Security | Фреймворк аутентификации и авторизации | https://spring.io/projects/spring-security | | MyBatis Plus | ORM-фреймворк | https://mp.baomidou.com/ | | Swagger UI | Инструмент генерации документации | https://github.com/swagger-api/swagger-ui | | Kibana | Анализ данных и визуализация | https://www.elastic.co/cn/kibana | | Elasticsearch | Поисковый движок | https://github.com/elastic/elasticsearch | | Beats | Легковесный инструмент сбора данных | https://www.elastic.co/cn/beats/ | | Logstash | Принятие данных от Beats и их обработка | https://www.elastic.co/cn/logstash | | Solr | Поисковый движок | http://lucene.apache.org/solr/ | | RabbitMQ | Система очередей сообщений | https://www.rabbitmq.com/ | | Redis | Распределенная система кэширования | https://redis.io/ | | Docker | Фреймворк контейнеризации | https://www.docker.com || Druid | Библиотека подключения к базе данных | https://github.com/alibaba/druid | | Qiniu Cloud | Облачное хранилище объектов Qiniu | https://developer.qiniu.com/sdk#official-sdk | | JWT | Поддержка входа с использованием JWT | https://github.com/jwtk/jjwt | | SLF4J | Фреймворк логгирования | http://www.slf4j.org/ | | Lombok | Утилита упрощенного создания объектов | https://github.com/rzwitserloot/lombok | || Nginx | HTTP и обратный прокси веб-сервер | http://nginx.org/ | | JustAuth | Инструмент для работы с третьими сторонами | https://github.com/justauth/JustAuth | | Hutool | Библиотека инструментальных классов для Java | https://hutool.cn/docs/#/ | | АлиДаНьЮ | Сервис отправки SMS сообщений | https://doc.alidayu.com/doc2/index.htm | | Github Actions | Автоматизация сборки и развертывания | https://help.github.com/en/actions | | Zipkin | Отслеживание трассировки запросов | https://github.com/openzipkin/zipkin | | Flexmark-java | Преобразование Markdown в Html | https://github.com/vsch/flexmark-java | | Ip2region | Библиотека для офлайн определения региона по IP адресу | https://github.com/lionsoul2014/ip2region | | Minio | Локальная служба хранения объектов | https://min.io/ | | Docker Compose | Управление контейнерами Docker | https://docs.docker.com/compose/ |
Исправленный текст:
| Druid | Библиотека подключения к базе данных | https://github.com/alibaba/druid | | Qiniu Cloud | Облачное хранилище объектов Qiniu | https://developer.qiniu.com/sdk#official-sdk | | JWT | Поддержка входа с использованием JWT | https://github.com/jwtk/jjwt | | SLF4J | Фреймворк логгирования | http://www.slf4j.org/ | | Lombok | Утилита упрощённого создания объектов | https://github.com/rzwitserloot/lombok | | Nginx | HTTP и обратный прокси веб-сервер | http://nginx.org/ | | JustAuth | Инструмент для работы с третьими сторонами | https://github.com/justauth/JustAuth | | Hutool | Библиотека инструментальных классов для Java | https://hutool.cn/docs/#/ | | АлиДаНьЮ | Сервис отправки SMS-сообщений | https://doc.alidayu.com/doc2/index.htm | | Github Actions | Автоматизация сборки и развертывания | https://help.github.com/en/actions | | Zipkin | Отслеживание трассировки запросов | https://github.com/openzipkin/zipkin | | Flexmark-java | Преобразование Markdown в HTML | https://github.com/vsch/flexmark-java | | Ip2region | Библиотека для офлайн-определения региона по IP-адресу | https://github.com/lionsoul2014/ip2region | | Minio | Локальная служба хранения объектов | https://min.io/ | | Docker Compose | Управление контейнерами Docker | https://docs.docker.com/compose/ | | Portainer | Визуальное управление Docker | https://github.com/portainer/portainer |### Фронтенд-технологии| Технология | Описание | Официальный сайт | | :------------------------: | :-----------------------------------------: | :--------------------------------------------------------------: | | Vue.js | Фреймворк для фронтенда | https://vuejs.org/ | | Vue-router | Фреймворк маршрутизации | https://router.vuejs.org/ | | Vuex | Глобальная система управления состоянием | https://vuex.vuejs.org/ | | Nuxt.js | Создание приложений с серверной отрисовкой (SSR) | https://ru.nuxtjs.org/ | | Element | Фреймворк UI для фронтенда | https://element.eleme.io | | Axios | Фреймворк HTTP для фронтенда | https://github.com/axios/axios | | ECharts | Фреймворк для графиков | http://echarts.baidu.com/ | | CKEditor | Редактор веб-страниц | https://ckeditor.com/ | | highlight.js | Внешний плагин выделения синтаксиса | https://github.com/highlightjs/highlight.js | | Vditor | Редактор Markdown | https://github.com/Vanessa219/vditor | | vue-cropper | Компонент обрезки изображений | https://github.com/xyxiao001/vue-cropper | | vue-image-crop-upload | Компонент обрезки и загрузки изображений | https://github.com/dai-siki/vue-image-crop-upload | | vue-emoji-comment | Компонент комментариев с эмодзи | https://github.com/pppercyWang/vue-emoji-comment | | clipboard.js | Современный модуль копирования текста | http://www.clipboardjs.cn/ | | js-beautify | Улучшение кода JavaScript | https://github.com/beautify-web/js-beautify | | FileSaver.js | Сохранение файлов на клиентской стороне | https://github.com/eligrey/FileSaver.js |
js |
| SortableJS | мощная библиотека JavaScript для перетаскивания | http://www.sortablejs.com/ |
| vue-side-catalog | навигационная панель каталога | https://github.com/yaowei9363/vue-side-catalog |
| uniapp | язык программирования для кросс-платформенного мобильного приложения | https://uniapp.dcloud.io/ |
| colorUi | библиотека компонентов WeChat Mini Programs для визуализации | https://github.com/weilanwl/ColorUI |
| showdown | Конвертер Markdown в HTML на основе JavaScript | https://github.com/showdownjs/showdown |
| turndown | Конвертер HTML в Markdown на основе JavaScript | https://github.com/domchristie/turndown |
Примечание: В некоторых местах использовано кириллическое написание ключевых слов для сохранения смысла оригинального текста. ## Быстрый старт### [Рекомендовано] Одна команда для установки мухут блога
См. Как использовать одну команду для установки мухут блога, выполните следующую команду на облачном сервере, чтобы завершить однокнопочную установку мухут блога.
wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh
Видео с пошаговым руководством для однокнопочной установки: Установка микросервисной архитектуры блога за 20 минут
См. Windows + VMware для быстрой установки локальной среды разработки мухут блога, быстро создайте среду разработки мухут блога на платформе Windows, установив промежуточные компоненты в VMware.
См. Настройка окружения для мухут блога на Windows, чтобы быстро создать среду разработки мухут блога на Windows, установив все компоненты в этой среде.
См. Однокнопочная установка мухут блога с использованием Docker Compose (версия Nacos), чтобы быстро установить проект мухут блога на сервере Linux.
См. Публикация образа Docker мухут блога на облачный сервер через IDEA (подходит для установки с помощью Docker Compose), чтобы после изменения исходного кода ветки Nacos создать новый образ и установить его на облачный сервер, а затем запустить через Docker Compose.
См. Установка мухут блога на сервер Alibaba Cloud (ветка Eureka), чтобы после изменения исходного кода ветки Eureka собрать проект и установить его на облачный сервер.
См. Установка мухут блога на сервер Alibaba Cloud (ветка Nacos), чтобы после изменения исходного кода ветки Nacos собрать проект и установить его на облачный сервер.
См. Использование GitHub Actions для непрерывной интеграции, после того как вы отправите запрос push, с помощью GitHub Actions можно автоматически выполнять компиляцию, сборку, развертывание и другие операции.
См. Переключение режима поиска в蘑菇博客, чтобы выполнить смену поисковой системы蘑菇博客. В настоящее время поддерживаются методы Solr, ElasticSearch и SQL.### Настройка облачного хранилища Qiniu Cloud
См. Настройка облачного хранилища Qiniu Cloud для蘑菇博客, чтобы настроить облачное хранилище Qiniu Cloud и локальное хранение файлов.
См. Использование Zipkin для отслеживания цепочек вызова, чтобы объединять данные задержек вызовов различных систем бизнеса и достигать мониторинга и отслеживания цепочек вызовов, а также быстрого определения сервисов с высокими задержками.
См. Руководство по установке Nacos для регистрации служб и конфигураций, чтобы создать центр регистрации служб и конфигураций.
См. Руководство по установке Sentinel для управления потоками, Sentinel называют защитником потока в распределённых системах, что аналогично Hystrix.
См. Руководство по размещению QQ мини-приложения, чтобы запустить и разместить мобильное приложение uniapp.
См. Руководство по размещению WeChat мини-приложения, чтобы запустить и разместить мобильное приложение uniapp.### Расширение новых функций и страниц蘑菇博客
См. Как расширять новые функции и страницы蘑菇博客, чтобы разрабатывать нужные вам страницы на основе существующей архитектуры蘑菇博客.
См. Установка ELK для сбора журналов蘑菇博客, чтобы быстро установить среду ELK с использованием Docker для сбора журналов蘑菇博客.
См. Открытие сайта заняло 20 секунд, поэтому я решил установить свой собственный蘑菇CDN, чтобы бесплатно установить свой собственный蘑菇CDN для ускорения доступа.
| :----------------: | :-------------------: | :--------------------------------------------------------------: | | IDEA | IDE для разработки на Java | https://www.jetbrains.com/idea/download | | WebStorm | IDE для фронтенд-разработки | https://www.jetbrains.com/webstorm/ | | RedisDesktop | Визуализация Redis | https://redisdesktop.com/download | | SwitchHosts | Управление локальными Host'ами | https://oldj.github.io/SwitchHosts/ | | X-shell | Инструмент удаленного доступа к Linux | https://xshell.en.softonic.com/ | | X-ftp | Инструмент передачи файлов в Linux | https://www.netsarang.com/ru/all-downloads/ | | SQLyog | Инструмент подключения к базе данных | https://sqlyog.en.softonic.com/ | | ScreenToGif | Инструмент записи GIF-анимации | https://www.screentogif.com/ |### Разработка окружение
Инструмент | Версия | Скачать |
---|---|---|
JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
Maven | 3.3.0+ | http://maven.apache.org/ |
Elasticsearch | 6.3.0 | https://www.elastic.co/downloads |
Solr | 7.0 | http://lucene.apache.org/solr/ |
MySQL | 5.6 | https://www.mysql.com/ |
Erlang | 20.3 | https://www.erlang.org/ |
RabbitMQ | 3.7.4 | http://www.rabbitmq.com/download.html |
Nginx | 1.10 | http://nginx.org/en/download.html |
Redis | 3.3.0 | https://redis.io/download |
Zipkin | 2.12.5 | https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec |
Nacos | 1.3.2 | https://github.com/alibaba/nacos/releases |
Sentinel | 1.7.2 | https://github.com/alibaba/Sentinel/releases |
Мухоморный блог в начале использовал решения многих открытых проектов, открытость — это сложно, спасибо за вашу щедрость и готовность делиться.
Спасибо Qiniu Cloud за предоставленные бесплатные облачные хранилища и CDN услуги
Спасибо JetBrains за предоставление открытой лицензии- Спасибо 杨欢小仙女 за шаблон блога: http://www.yangqq.com/
Спасибо PanJiaChen за Vue-шаблон управления сайтом: vue-element-admin
Vue проект был создан с учетом этого руководства: https://segmentfault.com/a/1190000009506097
Спасибо Бао Ми Дуй за предоставление MyBatis-Plus фреймворка: http://mp.baomidou.com/
Спасибо yadong.zhang за предоставление библиотеки для третьей стороны авторизации: https://gitee.com/yadong.zhang/JustAuth
Спасибо bihell за проект Dice блога: https://github.com/bihell/Dice
Спасибо pppercyWang за компонент Emoji-комментариев: vue-emoji-comment
Спасибо РуоЯнь за проект RuoYi: https://gitee.com/y_project/RuoYi
Спасибо yaowei9363 за компонент Vue-стороны каталога: vue-side-catalog
Спасибо КИВЕН сообществу за проект QIWIEN облачного хранилища: https://gitee.com/qiwen-cloud/qiwen-file
Спасибо weilanwl за ColorUI: https://github.com/weilanwl/ColorUI
Мухоморный блог
) и телеграм-канал (укажите при добавлении: добавление в группу). В данный момент проект имеет множество недочетов, поэтому приветствуем всех желающих для технического обсуждения. Чтобы предотвратить рекламу, просим указывать свои данные при добавлении в группу. Спасибо!ВКонтакте группа [Примечание: приглашение] | мушром блог ) [Группа заполнена] |
QQ группа (Примечание: мушром блог ) [Рекомендовано] |
---|---|---|
![]() |
![]() |
![]() |
Открытый проект невозможен без вашей поддержки. Если у вас есть хорошие идеи, вы нашли какие-то ошибки и исправили их, а также исправили ошибки в документации блога "Муха", приветствуем ваши Pull Requests для участия в открытом вкладе.
Сервер, домены и другие услуги требуют затрат, поэтому для поддержания нормального функционирования проекта, если вы считаете этот проект полезным для вас, мы будем рады получить вашу помощь. Донат будет использоваться для повышения производительности сервера, спасибо за вашу поддержку! ( ps: При донате можно указать это )
Alipay | |
---|---|
![]() |
![]() |
В данный момент код мобильной версии открыт в ветке Nacos. Если вы хотите его использовать, переходите в ветку Nacos.
## Скриншоты сайта | Административная панель | | :----------------------------------------------------: | :---------------------------------------------------: | |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| | | | |
|
| |
|
| |
|
| | | | |
```markdown |
|
| |
|
| |
| | | Пользовательская панель | | |
|
| |
|
| |
|
| |
|
| |
|
|
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )