将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,并使用轻量级机制通信,通常是 HTTP RESTFUL API 。这些服务围绕业务能力来划分构建的,并通过完全自动化部署机制来独立部署。
微服务架构的主要特点是组件化、松耦合、自治、去中心化。
优点:
#每个服务足够内聚,足够小,代码容易理解、开发效率提高。
#服务之间可以独立部署,微服务架构让持续部署成为可能。
#系统相比较复杂单体应用更为简洁轻量化,每个微服务因为独立部署,可以使用不同跨语言编写,这样使得微服务架构更为灵活。
#低耦合性,符合面向对象设计高内聚低耦合特性。不同模块间依赖低,相互关联小。
缺点
#微服务跟一般单体服务相比较要复杂的多。
#分布式系统可能复杂难以管理。
#因为分布部署跟踪问题难。
#当服务数量增加,管理复杂性增加。
#服务配置中心,将所有的服务的配置文件放到本地仓库或者远程仓库,配置中心负责读取仓库的配置文件,其他服务向配置中心读取配置。 SpringCloud Config 使得服务的配置统一管理 并可以在不人为重启服务的情况下进行配置文件的刷新。
#SpringCloud 核心的核心组件,包括 Eureka Hystrix Zuul Archaius 等。
#服务注册和发现组件。
#熔断器组件 Hystrix 通过控制服务的 API 接口的熔断来转移故障,防止微服务系统发生雪崩效应。另外, Hystrix 能够起到服务限流和服务降级的作用。使用Hystrix Dashboard 组件监控单个服务的熔断器的状态。
#能够起到智能路由和请求过滤的作用,是服务接口统一暴露 关键模块,也是安全验证、权限控制的一道门。
#声明式远程调度组件
#负载均衡组件
#消息总线组件,常和 Spring Cloud Config 配合使用,用于动态新服务的配置。
#服务链路追踪组件,封装了 Dapper Zipkin, Kibina 等组件,可以实时监控服务的链路调用情况。
#大数据操作组件,可以通过命令行的方式操作数据流。
#安全模块组件,是对 Spring Security 封装,通常配合 0Auth2使用来保护微服务系统的安全。
#是 Spring Cloud Consul 的封装,和 ureka 类似,它是一个服务注册和发现组件。
#是 Spring Cloud Zookeeper 封装,和 Eureka Consul相似,用于服务的注册和发现。
#数据流操作组件,可以封装 Redis RabbitMQ Kafka 等组件实现发送和接收消息等。
#该组件是 Spring Cloud Spring Boot CLI 的封装,可以让用户以命令行方式快速运行和搭建容器。
#提供了任务调度和任务管理的功能。
#用于 Paas 云平台连接到后端
本文地址:https://blog.csdn.net/wolf09311/article/details/107506720
如对本文有疑问, 点击进行留言回复!!
springmvc之ResponseBody响应json数据遇到的错误及解决
uni-app 后台升级 静默升级 uniapp 后台更新 静默更新 在线升级
SpringBoot多Module启动报错Could not transfer metadata
Hibernate项目报错:Cannot call sendError() after the response has been committed
网友评论