微服务简介
前言
比如我们网上购物,首先应该去购物网站搜索商品,这个搜索功能可以开发成一个微服务,我们也可以看到相关商品的推荐,这些推荐项也可以是一个微服务,后面比如加入购物车,下订单,支付等功能都可以开发成一个个独立运行的微服务
一、微服务的特点?
- 微服务是一种架构风格
- 微服务把一个应用拆分为一组小型服务
- 微服务每个服务运行在自己的进程内,也就是独立部署和升级
- 微服务的服务之间使用轻量级http 交互,一般使用json 交换数据
- 微服务围绕业务功能拆分
- 可以由全自动部署机制独立部署
- 去中心化,服务自治,服务可以使用不同的语言,不同的存储机制
二、微服务框架功能
微服务具有以上的这些特点,那么作为一个微服务框架,比如Spring Cloud ,一个具备一些什么样的功能呢?微服务框架的功能主要体现在以下几个方面。
- 注册中心:服务提供者和消费者,能从注册中心注册和得到服务信息
- 配置中心:在服务架构中涉及服务较多,需要对于配置文件统一管理
- 服务链路追踪:对于服务之间的负载调用,需要通过链路追踪,得到具体参与者,调用链路出现问题能够迅速定位
- 负载均衡:服务调用服务会采用一定的负载均衡策略,来保证服务的高可用
- 服务容错:通过熔断、降级、服务容错策略,对系统进行有效的保护,降级是在服务或依赖的服务异常时,返回保底数据,熔断是指依赖服务多次失效,则熔断器打开,不在尝试调用,直接返回降级信息。定期探测服务的可用性,若恢复则恢复调用
- 服务网关:用户请求过载时进行限流、排队、过载保护、黑白名单、异常用户过滤拦截等都可以通过服务网关实现
- 服务发布与回滚:蓝绿部署、灰度、AB Test 等发布策略,可快速回滚应用
- 服务动态伸缩,容器化:根据服务负载情况,可快速手动或自动进行节点增加和减少