作者:佩弦_秦子轩_188 | 来源:互联网 | 2023-10-12 19:47
0. 引言
上一期我们介绍了什么是微服务,微服务的基础概念,那么本期我们来介绍一下微服务涉及的技术点以及所需要的组件
1. 微服务涉及哪些技术
1.1、基础技术
首先每个微服务都可以看作是单机架构,所以最基础的就要要求你掌握单机架构的知识,单机架构最少量要求掌握的知识包括:
- java
- mysql
- springboot
- mybatis,mybatis-plus
- linux
如果你对于以上知识还没有掌握,那么可以参考我之前的学习路线文章:
初级java学习路线
1.2、部分中间件
- redis
- MQ(RocketMQ、RabbitMQ、kafka、ActiveMQ任意一个即可,推荐RocketMQ)
1.3、微服务涉及技术点
(仅列举个人认为常用的,根据架构层级排序)
- 区域内容分发:CDN
- 网络负载均衡:lvs
- 网关负载均衡、反向代理:nginx+lua
- 服务网关:zuul,kong,springcloud gateway
- 熔断、降级、限流:Hystrix,Sentinel
- 服务注册与发现:eureka,nacos,consul,zookeeper
- 服务配置:nacos,springcloud config,consul
- 服务负载均衡:ribbon
- 组件通信:feign,RestTemplate
- 链路追踪:zipkin
- 服务部署:docker,kubernetes,jenkins
- 服务监控:Metrics+ELK,SpringCloud Admin
- 分布式日志:ELK
- 分布式存储:fastDFS、OSS
- 分布式事务:seata
- 分布式任务调度:SchedulerX,xxl-job
- 短信服务:SMS
- 邮件服务:mail
我们通过下面这张图来总览整个架构布局
看到这里是不是觉得头大了,学习一个微服务需要掌握这么多技术吗?答案自然不是,这些只是要搭建一个高可用高并发低响应的微服务架构需要掌握的技术栈。
真正开发中也不需要你掌握全部技术的应用,通常是分工合作,各有所长,但是想要成长为一方大佬,更需要持续不断的学习。
那么针对初学者,我们也整理出微服务开发的核心组件,让大家能够快速的掌握微服务框架。并且也会在后续一一介绍上述列举的这些技术点,让大家能够不断的丰富自己的技能。
2. 微服务核心组件
目前的微服务组件分成了两个体系:一是springcloud官方的体系,二是阿里巴巴公司推出的springcloud alibaba体系
一个微服务框架至少需要的组件有:网关、注册中心、微服务,如果想要通过服务来统一管理我们的配置文件,那么就还需要一个配置中心
如果是springcloud体系,就涉及如下组件(同类组件仅推荐一个组件来方便大家快速学习,部分组件已经停止维护的就不再进行列举):
- 网关:gateway
- 注册中心:consul
- 配置中心:consul
如果springcloud alibaba体系,就涉及如下组件:
- 网关:gateway(alibaba没有单独开发网关组件,更多是结合spring cloud gateway使用)
- 注册中心:nacos
- 配置中心:nacos
本身alibaba体系更加符合中国的业务场景,在国内的开发公司中也更常使用ailibaba体系,因此我们先以alibaba体系作为切入点,让大家对微服务框架快速掌握起来
3. 下期预告
1、spring cloud gateway详解
2、spring cloud alibaba nacos详解
3、基于gateway,nacos搭建微服务框架
关注公众号,了解更多新鲜内容