搭建分布式微服务框架--总览

目录

    • 前言
    • 测试报告
    • 模块介绍
      • 已实现
        • 核心框架:springcloud F.SR2版
        • 配置/服务中心:alibaba nacos(动态配置/服务注册与发现)
        • 鉴权模块:springcloud security(oauth2)
        • 网关模块:springcloud zuul+nepxion discovery(灰度发布/版本控制)+alibaba sentinel(流量卫士)
        • 调度中心:xxl-job(大众点评调度中心)
        • 服务模块:由各实际业务组成
        • 数据源:mysql5.8主从,mongdb,redis
      • 计划实现中:
        • sharding-sphere实现分表分库
        • 监控模块:elk/zipkin(目前与nacos冲突?)/Grafana
        • 分布式事务:尚未决定用哪款
        • 后台管理ui(vue)
        • cacheCloud(搜狐redis管控中心)
        • docker/k8s/jenkins集群自动化部署

前言

本篇着重与技术概览,详细的整合步骤有时间会慢慢补充(应该不会有催更的)

正好公司最近有意向搭建微服务架构,希望能够从现有若干产品中分离出核心业务,未来以功能模块对外提供灵活组装的产品。自己接触微服务有小半年了,但是对这块的认知还是比较浅显,这么久自己总是在看别人的博客,是时候写一篇属于自己的了,因此我抽了些时间按照自己的理解分了模块,并对各种新技术尝个鲜,希望完成后可以和大家分享讨论完善。

原本打算将设想的功能全部实现并测试后再写这篇文章,但是在实现过程中遇到了很多坑,怕后面会忘记所以决定采用边做边写的形式,并按模块记录。(全当是踩坑记录好啦)
在这里插入图片描述
技术选型我尽量选择稳定、易搭建、易维护,稳定的开源框架不但减少了运维成本还能学习优秀的设计思想、代码风格和实现方式。推荐大家在使用开源项目遇到问题是先去issues或这全局搜一下关键字,比直接百度有用。

测试报告

未来将把测试报告放在这里给大家参考

模块介绍

已实现

核心框架:springcloud F.SR2版

网上有许多优秀的springcloud文章,可以通过idea直接快速搭建脚手架,选用F.SR2版完全是因为这是目前(2019年1月22日)最新最稳定版,与各开源框架的兼容性也最好。

配置/服务中心:alibaba nacos(动态配置/服务注册与发现)

官网:https://nacos.io/zh-cn/
github:

  1. 独立版:https://github.com/alibaba/nacos 可直接参考官网文档搭建
  2. springcloudAlibaba组件版:配置中心,服务注册与发现

本项目的实现[搭建分布式微服务框架–配置中心、服务注册于发现]1

鉴权模块:springcloud security(oauth2)

如果你不是很了解或者oauth2,强烈推荐先了解oauth2的一些基本概念
了解概念后可以搜索springcloud security oauth2尝试自己搭建
​​搭建分布式微服务框架--总览_第1张图片
本项目的实现[搭建分布式微服务框架–鉴权]2

网关模块:springcloud zuul+nepxion discovery(灰度发布/版本控制)+alibaba sentinel(流量卫士)

  1. discovery
  2. sentinel独立版
  3. sentine springcloudalibaba 组件版
  4. GateWay替换zuul(努力中…)
    本项目的实现[搭建分布式微服务框架–网关]3

调度中心:xxl-job(大众点评调度中心)

官网:http://www.xuxueli.com/xxl-job/#/
github:https://github.com/xuxueli/xxl-job
本项目的实现[搭建分布式微服务框架–调度中心]4

服务模块:由各实际业务组成

希望各位使用任何开源项目能去给作者们一个star,让他们有动力更新和完善
​​搭建分布式微服务框架--总览_第2张图片
使用到的有
1:mybaties-plus
2:hutool
3:swagger2.0+xrebel
4:thrift
5:shardingsphere

数据源:mysql5.8主从,mongdb,redis

mysql5.8主从,mongdb,redis的安装和实现都很简单,这里就不阐述了
本项目的实现[搭建分布式微服务框架–数据源]5

计划实现中:

sharding-sphere实现分表分库

官网:http://shardingsphere.io/index_zh.html
github:https://github.com/apache/incubator-shardingsphere

监控模块:elk/zipkin(目前与nacos冲突?)/Grafana

elk总觉得太重,如果有更好的请各位留言推荐
1.目前实现nacos、mysql的Grafana监控

分布式事务:尚未决定用哪款

可参考的项目:

  1. Hmily QQ群:162614487
  2. LCN

后台管理ui(vue)

可参考的项目

  1. pig-ui QQ群:23754102
  2. renren-fast-vue

cacheCloud(搜狐redis管控中心)

官网:https://cachecloud.github.io/
搜狐很良心有详细的视频教程,这块如果有运维人员可以直接让运维去做

docker/k8s/jenkins集群自动化部署

之前实现了jenkins+git钩子触发部署,但总觉得有点慢?


  1. https://blog.csdn.net/qq_32628775/article/details/86592187 ↩︎

  2. 尚未编写 ↩︎

  3. 尚未编写 ↩︎

  4. 尚未编写 ↩︎

  5. 尚未编写 ↩︎

你可能感兴趣的:(架构)