系列博客目录
文章目录
- 系列博客目录
- 为什么学微服务?
- 定义
为什么学微服务?
从下图搜索指数可以看出,微服务热度不减
公司中很多微服务的应用。
公司岗位要求中很多微服务的身影。
定义
微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。
之前开发项目大多采用单体架构,最大特点,开发过程中,不过多少功能,都写在一个项目中,但对于大型互联网项目不适用。
随着项目功能越来越多,小项目变成大项目,开发人员成千上万,一起开发会很混乱。此时微服务就很适合了。这时候我们就要打破单体架构的边界,每一个小的项目就变成微服务,微服务在一起就构成了微服务集群,这种架构就是微服务架构。
微服务中的每一个小的项目,都要做到单一职责(每一种微服务只能负责一部分功能,比如商品的服务,只做商品管理的内容),这时候每一个小项目里面代码的量就小了很多,由一个专门的团队维护和开发。耦合度降低了。
后续会继续介绍更多微服务的优点。如何拆分单体架构,形成微服务的架构呢,这就是服务拆分问题。虽然每一个小项目只干自己相关的东西,但是有一些业务很复杂,往往需要多个小项目大家共同合作,比如订单要调用商品,这时候由于商品和订单已经部署在不同的tomcat上了,物理上已经隔绝了,订单如何查商品的信息呢,这是需要跨comcat,实现跨服务的远程调用,这就是远程调用问题。我们还需要管理,哪些服务还活着呀,端口号是多少呀等等,这就是服务治理问题。而且之前单体项目,只有一个端口,前端直接调用即可,现在每个服务都有自己的端口,前端该访问谁,这就是请求路由问题。类似地还有很多问题。如下所示。
- 服务拆分
- 远程调用
- 服务治理
- 请求路由
- 身份认证
- 配置管理
- 服务保护
- 分布式事务
- 异步通信
- 消息可靠性延迟消息
- 分布式搜索
- 倒排索引
- 数据聚合
学习微服务技术最佳的方案是:给你一个真实单体项目,你自己把它拆成微服务,在拆的过程之中,碰到这些问题,然后学习哪个微服务技术可以解决这些问题,学习才能深刻。其他教程都是针对每个微服务问题给出拆好的demo,本教程不一样,是给一个真实的单体项目(黑马商城)。我们来亲自拆分,碰到问题,学习技术,解决问题,使其变成微服务项目。
课程安排如下图所示。全面偏向企业实战,面试原理源码相关内容前期不讲。面试相关问题最后讲解。学完本教程,不管是搭建微服务还是把单体项目改造成微服务等如下图所示都没问题,满足微服务开发对中高级程序员的各种要求。