Spring Cloud学习笔记--服务注册和发现

1. 微服务

很多年前我刚刚工作的时候也是一个程序员,那个时候我参与了单位的项目,是其中的一颗螺丝钉。我们的项目是一个典型的单体架构,采用了经典的三层模型,我到现在还记得我师父给我讲了一下午三层模型。

  • 表示层:负责和用户进行交互,表现为WEB页面等形式;
  • 业务逻辑层:几乎所有的复杂的业务逻辑都塞在这里,代码量数这里最多;
  • 数据访问层:这一层负责和数据打交道,实现了数据的增删改查接口。

不过现在主流的开发理念已经舍弃了这种架构了,这种架构随着业务规模扩张,会变得像一个怪物,尤其是业务逻辑层,代码会变得十分庞大,臃肿和难以维护。

这个时候,就需要微服务来解决问题了。

说来有意思,有本书叫做《重构》,是一本经典的软件工程方面的书,而本书的作者竟然就是微服务概念的提出者。

那么什么叫做微服务呢,其实也没有一个严格的定义,总之就是一个微服务能提供一个完整的功能,比如现在架构中常见的所谓用户服务,自然就是提供了用户的注册,管理等等功能。

我记得我上学时候,软件工程这门课的老师反复的强调,所谓解耦的概念,那个时候我没有参与过实际的工程项目,对这个概念理解不深,现在想起来,其实微服务就是在解耦。

微服务相对独立,微服务之间通过轻量级的通讯机制通信,比如RESTful API,基于此,微服务甚至可以不需要使用同一种语言。

微服务概念的引入其实也引入了很多概念,比如自动部署,DevOps,服务治理,分布式架构,熔断等。这些概念也就代表着微服务其实是比较复杂的,是有一个庞大的技术栈的。

2. 服务注册和发现

微服务是分布式架构这一点没有问题,那么问题随之而来——如何管理这些分布式的微服务?

比如考勤服务需要依赖用户服务,那么考勤服务中可以将用户服务的地址写死,可是用户服务一旦发生变更,就必须同时重新上线一下考勤服务,这太不优雅了。

如果有一个注册中心,将这些微服务的元信息都保存起来就好了,服务消费者只需要知道自己要去消费什么服务就可以,去服务中心取来元数据,然后去消费就可以了。

这就是服务注册。

实际上服务注册也是有一套复杂的逻辑的,这里就不展开写了。

你可能感兴趣的:(Spring Cloud学习笔记--服务注册和发现)