微服务小说门户,你也能做一个
小编这两天除了学习、编码,剩下的时间都用在了看小说上,前段时间看完了雪中悍刀行,最近还在研读三体
真是每天都看得不亦乐乎
于是小编在想,是不是给大家介绍一个小说网站的项目呢?毕竟小说网站业务难度适中,没有商城系统那种复杂的业务。但是作为互联网项目,一样需要面对大规模用户和海量数据的处理,所以高并发、高可用、高性能、高容错、可扩展性、可维护性也是小说网站设计需要考虑的问题,商城系统中所用到的技术同样适用于小说网站。
所以说,使用微服务架构来构建一个小说门户平台是非常有意思的,利用微服务构建的小说门户平台来学习现下流行技术相较于业务比较复杂的商场系统来说也是比较容易的,非常适合于没有实际微服务项目经验的同学用来学习和入门微服务技术栈。
于是,小编立马放下手中的书籍,赶紧奔赴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 -- 支付微服务
技术 | 说明 |
---|---|
SpringBoot | Spring应用快速开发脚手架 |
SpringCloud | 微服务架构解决方案 |
Nacos | 注册中心和配置中心 |
Sentine | 限流/熔断/降级 |
SpringCloud Gateway | 微服务网关 |
SpringBoot Admin | 微服务监控 |
MyBatis | 持久层ORM框架 |
MyBatis Dynamic SQL | Mybatis动态sql |
PageHelper | MyBatis分页插件 |
MyBatisGenerator | 持久层代码生成插件 |
Seata | 分布式事务中间件(待应用) |
Sharding-Jdbc | 代码层分库分表中间件 |
JJWT | JWT登录支持 |
Redis | 分布式缓存 |
ElasticSearch | 搜索引擎 |
RabbitMq | 消息队列 |
OSS | 阿里云对象存储服务 |
Mysql | 数据库服务 |
Redisson | 实现分布式锁 |
Lombok | 简化对象封装工具 |
Swagger | API文档生成工具 |
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君”
回复“小说”,获取项目地址
往期推荐
大家好,我是TJ
一个励志推荐10000款开源项目与工具的程序员
欢迎关注我,了解多好玩、有趣的科技资讯