j3com / SpringCloudDemo

微服务demo,在这可以快速体验整套微服务的流程

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

☀️SpringCloudDemo

微服务试验地

这是实践微服务知识的地方,眼过千遍不如手过一遍,很多时候在动手时会碰到新问题,发现以前从未关注过的点。再加上工作中,很多框架底层都是大佬们搭建好的,我们大多数时刻只能关注业务逻辑,无法更上一层楼,所以就有了这个试验地,让自己成为一次上帝,建造自己的代码世界~

本项目是基于SpringCloud搭建的,里面使用到的知识,有些会分享在我的博客,有任何疑问欢迎留言和讨论

如果想使用本项目,需要安装RedisMysqlRabbitMQ,ElasticSearch,Nacos,Sentinel-dashboard 每一项安装都能百度到,很简单就能装好的 由于我的配置都通过nacos读取的,所以装好nacos后,导入common-config里的nacos配置包就好啦 最后再根据你安装的ip,端口,账号密码等修改其中的配置就OK,都是有注释说明的

咳咳,如果有收获的话记得给个赞哦!

项目演示地址:目前还没部署到服务器呢

以下编辑更新于:2021/05/10

📢项目主要用到的技术

微服务基础框架:SpringCloud

服务发现和配置管理:Nacos

网关:SpringCloudGateway

负载均衡:Nginx,Ribbon

远程调用:Feign

服务保护:Sentinel

数据库框架及数据库:Mybatis-plus,Druid,MySQL

容器部署:Docker

⛳项目主要结构

  • 服务层次分明
    • 通过Maven层层递进服务,统一在最外层控制包和版本
    • MQ,缓存,公共代码都在各自包中,一目了然
    • 服务间功能职责分明
    • 通过Nacos和依赖间的合理规划,统一在Nacos中加载配置

⛅项目主要已实现的功能

  • 微服务的试验

    • Nacos进行统一配置管理
    • Nginx(这个在项目看不出来)的负载均衡,及静态资源部署
    • Ribbon的负载均衡和配置试验(主要是重试机制)
    • 网关的试验,包括对请求的header,body及cookie的增删改试验
    • Feign的试验,包括异常处理和配置试验(主要涉及okhttp)
    • Sentinel的熔断降级试验,包括dashboard的使用
    • Druid的试验,包括其控制面板的操作
    • Docker的试验(没有结合项目)
    • ElasticSearch和kibana的简单试验
  • RabbitMQ的试验

    • 测试每种交换机
    • 测试死信队列和延迟队列
    • 测试异常处理和手动ack应答
  • Redis的试验

    • 结合SpringCache,实现会自动刷新的缓存,防止缓存雪崩(具体实现看博客)
  • Mybatis-plus试验

    • 自动生成Mapper等代码
    • 常用Mybatis的操作

🌈总结

虽然目前实现的功能很少,主要是在搭建底层框架,但在这过程中对平时项目用到的技术有更深刻的理解,会去搜索别人实际是如何实现的,会去模仿他人的设计模式,会去感受到技术不是十全十美的,有很多取舍...

最大的收获是:当我从NG开始做到数据库,整个微服务流程在脑海里是清晰的,好比是大树有了主干,那么相关的知识和优化也能顺利的开枝散叶了

微服务不是单机系统,每个步骤都要考虑并发和可靠性,麻烦的同时也是一种挑战(当然,这个只是简单的练手项目) 所以积跬步以至千里、积小流以成江河,每一点思考,都是在进步呀~

About

微服务demo,在这可以快速体验整套微服务的流程


Languages

Language:Java 100.0%