{"id":36707007,"url":"https://github.com/stick-i/scblogs","last_synced_at":"2026-01-12T11:43:40.787Z","repository":{"id":37856988,"uuid":"480212146","full_name":"stick-i/scblogs","owner":"stick-i","description":"🎉校园博客，基于微服务架构且前后端分离的博客社区系统。项目后端技术栈：JDK17+SpringBoot + SpringCloud + Mybatis-Plus + Nacos + MySQL + Redis + MQ + ElasticSearch + Docker。前端主要是基于Vue2和ElementUI进行开发的。","archived":false,"fork":false,"pushed_at":"2025-12-19T08:04:03.000Z","size":4292,"stargazers_count":518,"open_issues_count":17,"forks_count":106,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-12-22T02:43:09.389Z","etag":null,"topics":["docker","elasticsearch","java","jwt-token","mybatis","nacos","rabbitmq","redis","spring-boot","spring-cloud","springboot","springcloud","vue"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stick-i.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-04-11T03:23:11.000Z","updated_at":"2025-12-21T09:19:04.000Z","dependencies_parsed_at":"2024-07-18T14:37:52.282Z","dependency_job_id":null,"html_url":"https://github.com/stick-i/scblogs","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/stick-i/scblogs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stick-i%2Fscblogs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stick-i%2Fscblogs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stick-i%2Fscblogs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stick-i%2Fscblogs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stick-i","download_url":"https://codeload.github.com/stick-i/scblogs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stick-i%2Fscblogs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338972,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T10:58:46.209Z","status":"ssl_error","status_checked_at":"2026-01-12T10:58:42.742Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","elasticsearch","java","jwt-token","mybatis","nacos","rabbitmq","redis","spring-boot","spring-cloud","springboot","springcloud","vue"],"created_at":"2026-01-12T11:43:40.730Z","updated_at":"2026-01-12T11:43:40.781Z","avatar_url":"https://github.com/stick-i.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 校园博客 [scblogs]\n\n\u003cp align=center\u003e\n  \u003ca href=\"http://www.scblogs.cn\"\u003e\n    \u003cimg src=\"./document/image/scblogs-logo.png\" alt=\"校园博客\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp  align=center\u003e\n   基于微服务架构的前后端分离的博客系统\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\u003ca target=\"_blank\" href=\"https://github.com/stick-i/scblogs\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/license-CC%20BY--NC--ND%204.0-lightgrey\" alt=\"知识共享许可协议\"/\u003e\n  \u003cimg src=\"https://img.shields.io/github/stars/stick-i/scblogs\" alt=\"\"/\u003e\n  \u003cimg src=\"https://img.shields.io/github/forks/stick-i/scblogs\" alt=\"\"/\u003e\n\u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/badge/JDK17-blue\" alt=\"\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SpringBoot-3.2.1-green\" alt=\"\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SpringCloud-2023.0.0-green\" alt=\"\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/SpringCloudAlibaba-2022.0.0.0-green\" alt=\"\"/\u003e\u003cbr\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Vue-2.6.14-green\" alt=\"\"/\u003e\n  \u003cimg src=\"https://img.shields.io/badge/ElementUI-2.15.6-green\" alt=\"\"/\u003e\n\u003c/a\u003e\u003c/p\u003e\n\n## 系统架构图\n\n\u003e GitHub点此 [链接](https://raw.githubusercontent.com/stick-i/scblogs/main/document/image/scblogs-framework.png) 查看大图，Gitee直接点图片就可以放大\n\n![image](./document/image/scblogs-framework.png)\n\n## 暂停维护\n\n此项目为作者大学时期学习微服务时所创建，现由于个人时间原因已暂停维护，在线网站也一并下线。\n\n此项目适合微服务初学者进行参考学习，如有疑问，仍然欢迎提issue。\n\n## 项目地址\n\n项目部署在腾讯云服务器上，代码托管在 **Gitee** 和 **GitHub** 上，欢迎大家 **Star**\n\n- Gitee地址：https://gitee.com/sticki/scblogs\n- GitHub地址：https://github.com/stick-i/scblogs\n- QQ交流群：729931395 \u003ca target=\"_blank\" href=\"https://qm.qq.com/cgi-bin/qm/qr?k=KwCs7qjv8N65wHys9A1nT8yZwfQF4oHh\u0026jump_from=webapi\u0026authKey=pk46Kps4/87pOQAWXQ+QcdHs31ZrGn+3/E/wBcxPEJrT/EkON/P6knYvUUDIexue\"\u003e\u003cimg border=\"0\" src=\"https://pub.idqqimg.com/wpa/images/group.png\" alt=\"校园博客\" title=\"校园博客\"\u003e\u003c/a\u003e （优先加微信群吧，QQ我不咋用）\n- 微信交流群：加我微信 **sticki6**，备注或私聊 “校园博客”，我拉你进群\n\n## 项目特点\n\n- 微服务架构开发，友好的代码结构及注释，便于阅读及二次开发\n- 前后端分离，通过 **Json** 进行数据交互，前端无需关注后端技术\n- 采用 **Nacos** 作为服务注册中心，支持分布式集群架构，方便微服务配置管理\n- 采用 **Getaway** 搭建网关服务，进行负载转发的同时对用户身份进行识别，并支持配置接口未认证拦截功能\n- 采用 **JWT** 的方式进行用户鉴权，配合网关服务保证其他所有微服务都能准确识别用户身份\n- 采用 **Minio** 搭建对象存储服务，同时引入七牛云对象存储\n- 采用 **AOP** + 自定义注解 + **Redis** 实现限制IP接口访问次数\n- 基于 **Redis** 实现的分布式全局唯一ID生成器，保障ID可用性、安全性。\n- 页面交互使用 **Vue2.x**，极大的提高了开发效率\n\n## 项目目录\n\n```\n├─config：全局配置文件目录\n├─document：项目文档目录\n├─common：公用模块\n│  ├─common-amqp：公用AMQP模块\n│  ├─common-core：核心模块\n│  ├─common-redis：公用Redis模块\n│  ├─common-regex：公用正则模块\n│  ├─common-tool：公用工具模块（需要修改或调整）\n│  └─common-web：公用web模块\n├─gateway-service：网关服务\n├─user-service：用户服务\n├─blog-service：博客服务\n├─blink-service：动态服务\n├─comment-service：评论服务\n├─resource-service：资源服务\n└─vueblog：前端Vue服务\n```\n\n## 技术选型\n\n|      技术      |       说明       |                        官网                         |\n| :------------: | :--------------: |:-------------------------------------------------:|\n|   SpringBoot   |     MVC框架      |      https://spring.io/projects/spring-boot       |\n|  SpringCloud   |    微服务框架    |     https://spring.io/projects/spring-cloud/      |\n|    Gateway     |   网关服务框架   |  https://spring.io/projects/spring-cloud-gateway  |\n|     Fegin      |     RPC框架      | https://spring.io/projects/spring-cloud-openfeign |\n|     Nacos      |  注册、配置中心  |              https://nacos.io/zh-cn/              |\n|  MyBatis-Plus  |    数据库框架    |             https://mp.baomidou.com/              |\n|     MySQL      |      数据库      |              https://www.mysql.com/               |\n|     Redis      |    分布式缓存    |                 https://redis.io/                 |\n|    RabbitMQ    |     消息队列     |             https://www.rabbitmq.com/             |\n| Elasticsearch  |     搜索引擎     |     https://github.com/elastic/elasticsearch      |\n|     Docker     |    容器化部署    |              https://www.docker.com/              |\n|    Jenkins     |  自动化部署服务  |              https://www.jenkins.io/              |\n|     Druid      |   数据库连接池   |         https://github.com/alibaba/druid          |\n|     七牛云     |      七牛云      |   https://developer.qiniu.com/sdk#official-sdk    |\n|     SLF4J      |     日志框架     |               http://www.slf4j.org/               |\n|     Lombok     | 简化对象封装工具 |      https://github.com/rzwitserloot/lombok       |\n|     Nginx      |    web服务器     |                 http://nginx.org/                 |\n|     Hutool     |  Java工具包类库  |             https://hutool.cn/docs/#/             |\n|     Minio      | 本地对象存储服务 |                  https://min.io/                  |\n| Docker Compose |  Docker容器编排  |         https://docs.docker.com/compose/          |\n\n## 启动服务\n\n### 启动后端\n\n需要准备的环境：\n\n- MySQL（强制）\n- Redis（强制）\n- Nacos（强制）\n- ES（blog-content-service依赖，需要安装ik分词器）\n- RabbitMQ（blog-service依赖）\n- MinIO（resource-service依赖）\n\nSQL、Nacos配置等文件以及说明在 [document](./document) 目录下，Nacos里的相关配置也需要修改为自己实际的。\n\n由于本项目没有完善的教程文档，故仅适合有一定项目基础的同学，同时也欢迎大家来补充教程。\n\n### 启动前端\n\n**1、安装node.js**\n参考菜鸟教程：https://www.runoob.com/nodejs/nodejs-install-setup.html\n\n**2、运行前端项目**\n```shell\n# 进入到前端项目目录\ncd vueblog\n\n# 强烈建议不要用直接使用 cnpm 安装，会有各种诡异的 bug，可以通过重新指定 registry 来解决 npm 安装速度慢的问题。\nnpm install --registry=https://registry.npmmirror.com\n\n# 本地开发 启动项目\nnpm run serve\n```\n打开浏览器输入\nhttp://localhost:8080/\n\n## 参与贡献\n\n在参与项目贡献前，请先阅读 [CONTRIBUTING](./CONTRIBUTING.md) 这个文件，这很重要。\n\n如果你经常性的无法访问GitHub，这篇文章或许可以帮到你：[GitHub连接不上解决方案](https://juejin.cn/post/7158258577113612302)。\n\n## 贡献者名单 \n\n \u003ca href=\"https://github.com/stick-i/scblogs/graphs/contributors\"\u003e \n\u003cimg src=\"https://contrib.rocks/image?repo=stick-i/scblogs\" /\u003e \n\u003c/a\u003e \n\n\n## 赞助\n\n如果本项目对你有帮助，可以请作者喝杯奶茶（超爱）！\n\n| ☕️微信赞赏                                               | ☕️支付宝赞赏                                          |\n|------------------------------------------------------|--------------------------------------------------|\n| ![微信](./document/image/wechat-appreciation-code.jpg) | ![支付宝](./document/image/alipay-receipt-code.jpg) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstick-i%2Fscblogs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstick-i%2Fscblogs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstick-i%2Fscblogs/lists"}