持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第1天
SpringCloud系列——微服务概述
微服务
微服务(或微服务架构)是一种云原生架构方法,其中单个应用程序由许多松散耦合且可独立部署的较小组件或服务组成
简单来说就是分布式架构
特征
- 单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责,避免重复业务开发
- 面向服务:微服务对外暴露业务接口
- 自治:团队独立、技术独立、数据独立、部署独立
- 隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
传统项目结构(单体架构)
结构紧密,耦合度高,所有业务代码都结合在一起,导致项目模块庞大,部署时打成一个包,适合简单项目
优点
- 结构简单
- 部署成本低
微服务的变革(分布式架构)
微服务变革了传统项目,将项目模块进行系统的差分,形成独立子项目,每个子项目完成一部分子功能,将来进行独立开发和部署
优点
- 高内聚低耦合
- 项目不会很冗大
- 易于开发
- 易于管理
- 易于重构
- 易于扩展
- 功能分区明显
- 等
微服务技术栈
简单分为注册中心,服务集群,配置中心,服务网关,数据库
服务集群用于进行各种业务的调用
注册中心用于管理(拉取或注册服务信息)服务集群
配置中心用于对服务集群中的每个服务进行配置文件管理
服务网关用于校验要进行访问的用户身份并且将用户请求路由到指定服务
具体见下
SpringCloud
Spring Cloud 为开发者提供了工具来快速构建分布式系统中的一些常见模式(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话,集群状态)。 分布式系统的协调导致了样板模式,使用 Spring Cloud 开发人员可以快速建立实现这些模式的服务和应用程序。 它们在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心以及 Cloud Foundry 等托管平台。
官网地址
中文文档地址
技术栈整合
服务注册发现
Eureka,Nacos,Consul
统一配置管理
SpringCloudConfig,Nacos
服务远程调用
OpenFeign,Dubbo
服务链路监控
Zipkin,Sleuth
统一网关路由
SpringCloudGateWay,Zuul
流控,保护,降级
Hystix,Sentinel