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

背景

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

原本打算将设想的功能全部实现并测试后再写这篇文章,但是在实现过程中遇到了很多坑,怕后面会忘记所以决定采用边做边写的形式,并按模块记录。(即使最后搭建出来的框架性能不理想也可以当做是踩坑日记)
在这里插入图片描述
本次技术选型我偏向稳定、易搭建、易维护,选用稳定的开源框架不但减少了运维成本还能学习优秀的设计思想、代码风格和实现方式。

测试报告

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

模块介绍

已实现

核心框架:springcloud F.SR2版

网上有许多优秀的springcloud文章,这里就不阐述如何搭建,选用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尝试自己搭建
​​
本项目的实现[搭建分布式微服务框架–鉴权]2

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

  1. discovery
  2. sentinel独立版
  3. sentine springcloudalibaba 组件版
    本项目的实现[搭建分布式微服务框架–网关]3

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

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

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

希望各位使用任何开源项目能去给作者们一个star,让他们有动力更新和完善
​​
使用到的技术有
1:mybaties-plus
2:hutool
3:thrift等

数据源: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冲突?)

elk总觉得太重,如果有更好的请各位留言推荐

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

可参考的项目:

  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. 尚未编写 ↩︎

猜你喜欢

转载自blog.csdn.net/qq_32628775/article/details/86590254