关于springcloud微服务介绍以及组件使用策略(第一章)
Spring Cloud 作为一套微服务治理的框架,几乎考虑到了微服务治理的方方面面。
使用Spring Cloud之前我们需要对于架构的小知识作一些介绍以便于更好的认识到架构之间的进展和使用策略:
对于企业开发的架构:
原先的一些单体架构访问压力小,一个数据库+一个应用+一个web容器就可以跑起来;在单体架构中,技术选型非常灵活,优先满足快速上线的要求,也便于快速跟进市场。
后面渐渐的企业为了应对更大的流量就对原有的业务进行了拆分如:前端系统,后端系统…等 ,如今发展到了垂直架构了,垂直架构就是将系统分层开发的模式,每个层级都对应了自己的职责,UI 层负责和用户进行交互、业务逻辑层负责具体的业务功能、数据库层负责和上层进行数据交换和存储。简单来说就是SSH整合,Struts 负责 Web 层逻辑控制、Spring 负责业务层管理 Bean、Hibernate 负责对数据库操作进行封装,持久化数据。
然后渐渐发展到SOA和微服务架构这一块;SOA 代表面向服务的架构,将应用程序按照不同的职责划分为不同的模块,不同的模块直接通过特定的协议和接口进行交互。微服务和SOA不同的是他的组件是可以对外进行提供服务,每一个组件都是产品,每一个服务之间都有自己独立的空间可以认为是SOA的一种扩展;
那么我今天主要介绍一些SpringCloud组件之间的介绍以及使用:
SpringCloud一共分别有5大核心的组件:
分别为注册组件1:Eureka:通过EurekaServe 注册中心 通过EurekaClient发布服务实现服务发布到注册中心并调用(我们等会详细介绍组件之间的使用);
2:服务调用组件Feign服务调用RestMapping接口地址,实现微服务的提供者和消费者之间的接口调用;也可以理解为服务与服务之间互相调用而产生的组件
3:Hystrix 服务组件,使用组件的作用是为了防止服务压力过大导致线程出现的一系列异常:如雪崩,穿透 而实现熔断,限流的组件服务 也可以理解为在系统中为了防止高并发而导致系统崩溃的一种容错机制;
4:zull 路由组件 一般的微服务组件中都会提供一个路由组件,假设我们配置了几百台服务器 当我们需要调用的时候 我们需要统一经过路由访问后端各个服务中;当然对于网关他不仅仅是为了提高我们的转发请求,对于限流降级,安全等优点
5:Ribbon: 负载均衡 一般是和Eureka 和Feign之间互相使用的将相同的应用部署到多台机器上。 解决访问统一入口问题,我们可以在集群前面增加负载均衡设备,实现流量分发。 负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。
下一章实战解析;
…