查看原文
其他

微服务小说门户,你也能做一个

TJ TJ君 2021-11-13

小编这两天除了学习、编码,剩下的时间都用在了看小说上,前段时间看完了雪中悍刀行,最近还在研读三体

真是每天都看得不亦乐乎

于是小编在想,是不是给大家介绍一个小说网站的项目呢?毕竟小说网站业务难度适中,没有商城系统那种复杂的业务。但是作为互联网项目,一样需要面对大规模用户和海量数据的处理,所以高并发、高可用、高性能、高容错、可扩展性、可维护性也是小说网站设计需要考虑的问题,商城系统中所用到的技术同样适用于小说网站。

所以说,使用微服务架构来构建一个小说门户平台是非常有意思的,利用微服务构建的小说门户平台来学习现下流行技术相较于业务比较复杂的商场系统来说也是比较容易的,非常适合于没有实际微服务项目经验的同学用来学习和入门微服务技术栈。

于是,小编立马放下手中的书籍,赶紧奔赴GitHub给大家找找,还真找到了一个不错的小说网站项目。

Novel-Cloud

Novel-Cloud是一款基于小说精品屋-plus构建的Spring Cloud 微服务小说门户学习平台,致力于原创文学阅读与写作,提供了爬虫工具用于开发过程中测试数据的采集(爬虫项目和小说精品屋-plus通用)。采用了Spring Boot 2.2.5.RELEASE 、Spring Cloud Hoxton.SR4、 MyBatis3DynamicSql、Sharding-Jdbc、Redis、RabbitMq、Elasticsearch、Docker等流行技术,集成了Nacos注册中心/配置中心、Spring Cloud Gateway网关、Spring Boot Admin监控中心、ELK分布式日志分析等基础服务。前端计划使用Vue开发,后台接口一期开发已完成(充值/作家专区除外的所有接口)。

我们先看下这个项目的软件架构及项目结构、技术组成:

novel-cloud
├── novel-common -- 通用模块,供其他业务微服务模块依赖
├── novel-gen -- 持久层代码生成器,集成Swagger
├── novel-gateway -- 基于Spring Cloud Gateway构建的网关服务
├── novel-monitor -- 基于Spring Boot Admin构建的监控中心
├── novel-search -- 基于Elastic Search构建的搜索微服务
├── novel-file -- 基于阿里云OSS构建的文件微服务
├── novel-home -- 门户首页微服务
├── novel-news -- 新闻中心微服务
├── novel-user -- 用户中心微服务
├── novel-author -- 作家中心微服务
├── novel-book -- 小说微服务
└── novel-pay -- 支付微服务
技术说明
SpringBootSpring应用快速开发脚手架
SpringCloud微服务架构解决方案
Nacos注册中心和配置中心
Sentine限流/熔断/降级
SpringCloud Gateway微服务网关
SpringBoot Admin微服务监控
MyBatis持久层ORM框架
MyBatis Dynamic SQLMybatis动态sql
PageHelperMyBatis分页插件
MyBatisGenerator持久层代码生成插件
Seata分布式事务中间件(待应用)
Sharding-Jdbc代码层分库分表中间件
JJWTJWT登录支持
Redis分布式缓存
ElasticSearch搜索引擎
RabbitMq消息队列
OSS阿里云对象存储服务
Mysql数据库服务
Redisson实现分布式锁
Lombok简化对象封装工具
SwaggerAPI文档生成工具
Docker应用容器引擎
Logstash分布式日志采集
Vue前端开发框架

最后我们再一起看下整个项目成型后的效果图:

注册中心截图

配置中心截图

监控中心截图

接口文档

门户网站

整个安装过程也不是很难,跟着小编一起上车:

1、下载源码,如果是ZIP包,下载后需要解压。

2、开发环境配置,请确保开发机器上已安装如下软件环境。

  • Java开发工具包jdk1.8+
  • IDE(Eclipse或IntelliJ IDEA)
  • 项目管理工具maven
  • 微服务注册中心/配置中心nacos
  • 分布式缓存服务Redis
  • 搜索引擎服务ElasticSearch
  • ElasticSearch可视化客户端Kibana
  • 消息中间件RabbitMq
  • 数据库服务Mysql

3、登陆nacos配置中心导入下载源码中的配置文件。

4、使用IDE导入下载的源码(这里以IntelliJ IDEA为例)。

5、修改通用配置中的配置中心地址和命名空间ID。

6 、启动微服务网关。

修改网关服务的配置中心地址和命名空间ID

修改网关配置文件注册中心地址和命名空间ID

启动网关服务novel-gateway

7、启动监控服务。

修改监控服务的配置中心地址和命名空间ID

修改监控微服务的注册中心地址和命名空间ID以及登陆的用户名和密码

启动监控服务novel-monitor,启动方法和网关服务相同

访问监控服务,因为网关中配置了监控服务的路由,所以可直接或通过网关来访问监控服务:http://<网关ip>:<网关端口号>/monitor

8、启动业务微服务,这里以小说微服务为例。

  • 修改网关配置文件book-service.yml中的注册中心地址和命名空间ID,以及其他配置(数据库/redis/elasticsearch/mq等),方法同上

  • 启动novel-service服务,方法同上

  • 访问接口文档:http://<服务IP>:<服务端口号>/swagger-ui.html,

例如:http://127.0.0.1:620/swagger-ui.html

9、通过网关统一接口访问路径。

http://<网关IP>:<网关端口号>/api/<接口路径>

以小说小说分类列表查询接口为例:http://127.0.0.1:527/api/book/listBookCategory

10、访问用户中心/作家中心等需要认证的接口。

访问登陆接口获取JWT

设置JWT认证

访问需要认证的接口

对整个感兴趣的小伙伴,想研究下微服务的小伙伴,对知识充满欲望的小伙伴,一起来学习啦:

点击下方卡片,关注公众号“TJ君

回复“小说”,获取项目地址


往期推荐

往期推荐

工欲善其事必先利其器,一款开源编码辅助工具~

一转眼暑假就要过去了,你还记得当年陪你度过整个夏日的红白机吗?

如何防范SpringBoot 相关漏洞?一文教你学会各种防范技巧

Chrome插件大集合,教你玩转插件不求人~

面试必备,各种技术知识集大成之项目~

飞雪连天射白鹿,笑书神侠倚碧鸳





大家好,我是TJ

一个励志推荐10000款开源项目与工具的程序员

欢迎关注我,了解多好玩、有趣的科技资讯

: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存