spring cloud (一)初步认识

一、微服务

在学习spring cloud之前,我们先了解什么是微服务,微服务本身并没有一个精确的定义。我的理解是,传统架构习惯于将一个项目的所有功能放在一个服务中运行,这样的服务容易因为一个模块出问题导致整个服务的不可用。为了解决这样的问题,我们提出了微服务的概念。微服务就是将整个项目根据不同的业务进行拆分,然后通过http请求、消息队列等其他途径进行服务通信的一种手段。

微服务具有一下特性:(出自spring cloud与docker 微服务架构实战 周立著)

1.每个微服务都可以单独运行

2.一系列单独运行的服务构成整个系统

3.每个微服务都是独立开发的业务,一个微服务只关注特定的功能

4.微服务之间通过轻量的通信机制进行通信

5.可以选取不同的技术以及不同的数据存储

6.全自动的部署机制

二、微服务的优缺点

1.优点

解耦:对于我们底层程序员而言,看得见的好处就是解耦。我要实现一个功能,可能并不需要很深入的了解别人的代码,因为程序员嘛,可能都觉得别人的代码是个渣渣([哭笑不得])。我可以新作一个微服务,这个服务为其他功能提供服务,又不依赖于原来已有的功能,至于业务逻辑,可以一边上手一边熟悉 内聚,可以独立部署:意思就是我维护的这个微服务,可以独立部署,对其他服务不会是强依赖,不会存在因为其他服务不存在而造成我自己的服务不能启动或者不可用的问题。

分布式:微服务架构下不存在一个特别大的系统包含很多中心功能,这样也能提高容错性,一个服务的瘫痪并不会让整个系统瘫痪 权限验证:微服务是高度内聚的服务,我自己的这个服务,我可以定制任意合理规则,而这个规则又只适用于我自己的服务。相比于dubbo RPC调用,http微服务调用的权限验证可以更直接更严格更定制化,而rpc调用时的权限验证,我个人始终觉得不能做的很优雅 数据分开治理,自带分库属性:原来的大系统使用一个数据库,当数据很多流量很大时,就会涉及到分库分表。

2.缺点

缺点就是多个服务就需要运行在多台服务器上,运营压力就大了

三、当前分布式框架

当前熟悉的分布式框架主要是阿里巴巴的double 和spring cloud了。

阿里的Double可以说是最早的分布式框架了,早期使用double的公司非常多。但由于其更新较少,且更加符合阿里自己的业务,被spring cloud赶超。spring cloud则是spring家族中的一员,它以其开源,更新稳定的优势后来者居上,成为当前最流行的分布式框架。

四、spring cloud

说了这么多,开始步入今天的正题,spring cloud。上文已经说了,spring cloud是spring家族的一员,一般他都是配合spring boot使用,lz建议大家先学习spring boot。另外学习使用spring cloud,官方建议使用jdk1.8.

现在简单介绍一下spring cloud提供的组件:

1.核心组件Eureka

Eureka用于服务的注册与发现,他是微服务的核心组件,微服务的大部分功能的实现都离不开它。

2、zuul api网关

api网关主要用于请求的过滤以及路由,一般微服务的请求都是经过api网关进行过滤,然后经过路由,负载均衡,最后才会把请求转发到真正的服务中

3.自动配置config

这个组件实现的是自动配置功能,是可选组件,lz建议使用。该组件的功能就是将配置文件进行集中管理。

4.微服务之间通信ribbon 以及feign

由于按功能拆分服务,可能某一个模块需要使用到另外一个模块的功能,此时则需要微服务之间进行通信,spring cloud为我们提供了对应的组件,ribbon 和feign

5.服务的容错处理 hystrix

6.微服务的跟踪spring cloud sleuth

以上提到的组件的使用我会在之后的文章中慢慢介绍。

下面附上lz自己画的微服务架构图:如有不当之处,请大家指出



猜你喜欢

转载自blog.csdn.net/linhui258/article/details/80559470