1.微服务简介
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦,从而降低系统的耦合性,并提供更加灵活的服务支持。
2.微服务技术选型
区域内容分发:CDN
网络负载均衡:lvs
网关负载均衡、反向代理:nginx+lua、Kong、Spring Cloud Zuul、Spring Cloud Gateway
服务网关:zuul,kong,springcloud gateway
熔断、降级、限流:Hystrix,Sentinel
服务注册与发现:eureka,nacos,consul,zookeeper
服务配置:nacos,springcloud config,consul
服务负载均衡:ribbon,Load Balancer
组件通信:feign,RestTemplate,Dubbo RPC,OpenFeign
消息队列:RabbitMQ、Kafka、ActiveMQ、RocketMQ
链路追踪:zipkin,Skywalking
服务部署:docker,kubernetes,jenkins
服务监控:Metrics+ELK,SpringCloud Admin
分布式日志:ELK
分布式存储:fastDFS、OSS
分布式事务:seata
分布式任务调度:SchedulerX,xxl-job
短信服务:SMS
邮件服务:mail
3.微服务核心组件
注册中心
服务注册
服务发现
服务网关
安全认证和授权
路由管理
协议转换
负载限流
服务熔断
监控
断路器状态管理
故障恢复
限流
分布式配置中心
集中化配置管理
配置信息动态刷新
配置信息版本控制
配置信息安全管理
配置信息监控
负载均衡
服务调用
微服务系统架构:
3.1.注册中心
在微服务架构里主要起到了协调者的一个作用。
关系调用说明: 服务生产者启动时,向服务注册中心注册自己提供的服务; 服务消费者启动时,在服务注册中心订阅自己所需要的服务; 消费者从提供者中调用服务;
注册中心一般包含如下几个功能:
服务发现:
服务注册/反注册:保存服务提供者和服务调用者的信息
服务订阅/取消订阅:服务调用者订阅服务提供者的信息,最好有实时推送的功能
服务路由(可选):具有筛选整合服务提供者的能力。
服务配置:
配置订阅:服务提供者和服务调用者订阅微服务相关的配置
配置下发:主动将配置推送给服务提供者和服务调用者
服务健康检测
检测服务提供者的健康情况
3.1.1.注册中心对比
3.2.服务网关
也称为API网关,对外提供API接口,是服务调用的唯一入口,可以在这个组件中实现请求路由、用户鉴权、动态路由、灰度发布、负载均衡、负载限流等功能。API 网关是微服务架构中的入口,用于接收来自客户端的请求,并根据请求的内容路由到不同的微服务。常用的 API 网关包括 Nginx、Kong、Zuul 和 Spring Cloud Gateway 等。