微服务平台技术架构
微服务概念
微服务是一种用于构建应用的架构方案。微服务架构有别于更为传统的单体式方案,可将应用拆分成多个核心功能。每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作和出现故障时不会相互影响。
微服务组件
下图为搭建微服务平台常用到的一些生态组件
下图为对应生态组件的一些开源实现,相关源码在github中全部可以找到
下面的表格为项目对应的github地址,方便查阅
序号 | 组件名 | github地址 |
---|---|---|
1 | apollo | https://github.com/ctripcorp/apollo |
2 | nacos | https://github.com/alibaba/nacos |
3 | soul | https://github.com/Dromara/soul |
4 | redis | https://github.com/antirez/redis |
5 | sentinel | https://github.com/alibaba/Sentinel |
6 | rocketmq | https://github.com/apache/rocketmq |
7 | lmstfy | https://github.com/bitleak/lmstfy |
8 | saturn | https://github.com/vipshop/Saturn |
9 | flink | https://github.com/apache/flink |
10 | shardingsphere | https://github.com/apache/shardingsphere |
11 | seata | https://github.com/seata/seata |
12 | elasticsearch | https://github.com/elastic/elasticsearch |
13 | porter | https://github.com/sxfad/porter |
14 | skywalking | https://github.com/apache/skywalking |
15 | prometheus | https://github.com/prometheus/prometheus |
16 | id-generator | https://github.com/Meituan-Dianping/Leaf |
电商交易体系技术全景图
上图是个人根据之前的一些工作积累描绘出来的,当然这些只是冰山一角。其中大部分组件都有在公司实际使用过,里面都是开源组件,因为平常工作都是使用Java,所以基本都是从Java里面做的选型。
至于最终技术栈的选择,每个人有不同的认知及经验差异,可能会有其他的一些更好的想法,这个非常好。没有最好的,只有更合适的。可以结合公司的需求,团队的成员熟知度等因素综合考量后,完成这个技术体系的搭建即可。