微服务
将传统的单体架构的应用系统,打散为更细粒度的单位,其中每个单位都可以进行独立的需求设计和开发测试部署,且可以做到独立自治,单位间通过轻量REST API进行协同或交互。
说人话就是要大拆小,分而治之,并且要保证每个小的都可以独立进行完整的流程。
传统的单体架构,往往采用紧耦合和大数据库(所有服务共享一个数据库)。这个就像小时候学电路,我们不可能串联连接所有电器,这样牵一发动全身,而是需要并联的完成每项任务。
常用组件
注册中心
这是微服务当中最核心的组件。在微服务启动的时候,需要向注册中心注册自己,并告诉注册中心自己提供哪些服务。注册中心会存储这些服务的信息,包括服务的名称、地址、端口、协议等。同时注册中心会采用心跳机制,定期检查服务是否存活。(心跳机制:服务端每隔一段时间发送心跳包,客户端每隔一段时间接收心跳包,若超过一定时间没有接收到心跳包,则认为服务已停止。)
负载均衡
负载均衡器的作用是将请求分发到多个服务实例上,以达到高可用、可扩展性和性能的目标。
服务网关
服务网关是微服务架构中最重要的组件之一。它负责请求的转发、过滤、安全、监控等。它可以帮助我们实现请求的统一认证、流量控制、熔断、限流等。
配置中心
配置中心是微服务架构中另一个重要组件。它可以帮助我们管理微服务的配置信息,包括服务的地址、端口、协议、数据库连接信息等。配置中心可以实现配置的集中管理、动态更新、版本管理等。
日志组件
微服务架构默认将应用日志分别保存在部署节点上,当需要对日志数据和操作数据进行数据分析和数据统计时,必须收集所有节点的日志数据。
nacos
nacos 是阿里巴巴开源的基于 Java 开发的动态服务发现、配置和服务管理平台。它提供了一系列简单易用的特性集,帮助您快速实现动态服务发现、服务配置和服务管理。
服务熔断
熔断这个概念最常用的是电路的保险丝在电流过大的时候,防止电路器件损坏而烧熔断开的现象。在微服务架构中,服务熔断的作用是当某个服务出现故障时(不可用或长时间未响应),快速切断对该服务的调用,避免对其他服务造成影响。
服务降级
在用户高峰期,为了保证服务的可用性,会将部分服务的调用降级,降级后服务的功能变得简单或不可用。简单来说就是弃车保帅的策略。降级的目的是为了保证核心服务的可用性,并减少用户的等待时间。