您当前的位置: 首页 >  微服务

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

微服务轮子项目(02) - 框架技术选型

杨林伟 发布时间:2020-12-03 14:22:21 ,浏览量:3

文章目录
    • 1. 引言
    • 2. 技术选型
      • 2.1 技术架构图
      • 2.2 项目构建元素
        • 2.2.1 组件对比
      • 2.3 功能模块
        • 2.3.1 统一认证功能
        • 2.3.2 分布式系统基础支撑
        • 2.3.3 系统监控功能
        • 2.3.4 业务基础功能支撑
    • 3. 总结

1. 引言

本文的代码已上传到Github,有兴趣的同学可以参考下:https://github.com/ylw-github/backend-wheel

在上一篇博客《微服务轮子项目(01) - 整体架构》,主要讲解了轮子项目的整体架构(如下图),本文主要讲解的是技术选型。 在这里插入图片描述

2. 技术选型 2.1 技术架构图

这是我整理的一张技术架构图: 在这里插入图片描述

2.2 项目构建元素
  • 分布式系统套件版本:Spring Boot 2.x + Spring Cloud + Spring Cloud Alibaba
  • 服务治理注册与发现:Spring Cloud Alibaba Nacos(注意0.8.0才是生产可用状态)
  • 统一配置中心:Spring Cloud Alibaba Nacos
  • 服务降级、熔断和限流:alibaba/Sentinel
  • 网关路由代理调用:Spring Cloud Gateway / Netflix Zuul
  • 声明式服务调用:Spring Cloud OpenFeign
  • 服务负载均衡:Spring Cloud Netflix Ribbon
  • 服务安全认证:Spring Security
  • 数据访问层:Mybatis-plus
  • 分布式事务:alibaba/Seata(注意1.0才是生产可用状态)
  • 统一日志收集存储:ELK + Filebeat
  • 服务应用监控:Spring Cloud Admin
  • 服务调用链监控:Skywalking
  • 分布式任务调度:XXL-JOB
  • 全文搜索引擎:Elasticsearch
  • 分库分表:Sharding-JDBC
  • 容器管理平台:Rancher
  • 其它待补充…
2.2.1 组件对比

服务注册发现:Nacos 对比 Eureka

  • eureka闭源了,所以不作考虑
  • nacos是目前比较看好的后起之秀,并且是ap模型非常适合注册中心支持多机房部署;同时无缝对接与支持dubbo、spring cloud和kubernates云原生体系

配置中心:Nacos 对比 Apollo

  • Nacos缺点:目前的版本在功能上还是比apollo要少点,主要体现在发布审计、灰度发布等功能。
  • Nacos优点:支持yml格式,并且和注册中心是同一套中间件,方便管理运维

服务降级、熔断和限流:Sentinel 对比 Hystrix

  • hystrix停止更新了
  • sentinel 的功能比hystrix要多,主要为以下几点
  • ----------支持动态配置规则(业务无入侵)
  • ----------支持系统负载保护(根据自定义规则总体保护,不限于某个接口) 完善的控制台(开箱即用、可配置规则、秒级监控、机器发现等)
2.3 功能模块 2.3.1 统一认证功能
  • 网关统一认证
  • url级权限控制
  • 支持oauth2的四种模式登录
  • 支持用户名、密码加图形验证码登录
  • 支持手机号加密码登录
  • 支持openId登录
  • 支持第三方系统单点登录
  • 其它待补充…
2.3.2 分布式系统基础支撑
  • 服务注册发现、路由与负载均衡
  • 服务降级与熔断
  • 服务限流(url/方法级别)
  • 统一配置中心
  • 统一日志中心
  • 统一搜索中心
  • 统一分布式缓存操作类、cacheManager配置扩展
  • 分布式锁
  • 分布式任务调度器
  • 支持CI/CD持续集成(包括前端和后端)
  • 分布式Id生成器
  • 分布式事务(强一致性/最终一致性)
  • 日志链路追踪
  • 其它待补充…
2.3.3 系统监控功能
  • 服务调用链监控
  • 应用拓扑图
  • 应用统一日志查询
  • 慢查询SQL监控
  • 应用吞吐量监控(qps、rt)
  • 服务降级、熔断监控
  • 服务限流监控
  • 微服务服务监控
  • 服务器监控
  • redis监控
  • mysql监控
  • elasticSearch监控
  • nacos监控
  • prometheus监控
  • 其它待补充…
2.3.4 业务基础功能支撑
  • 多租户(应用隔离)
  • 高性能方法级幂等性支持
  • RBAC权限管理,实现细粒度控制(方法、url级别)
  • 快速实现导入、导出功能
  • 数据库访问层自动实现crud操作
  • 代码生成器
  • 基于Hutool的各种便利开发工具
  • 网关聚合所有Swagger接口文档
  • 统一跨域处理
  • 统一异常处理
  • 其它待补充…
3. 总结

技术选型

关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.3903s