(十四)SpringCloud学习笔记之微服务网关概述

17 篇文章 2 订阅
17 篇文章 0 订阅
本文介绍了微服务网关的概念,包括其作为系统统一入口的角色和主要职责,如身份验证、监控等。讨论了常见的API网关实现,如Kong、Zuul、Traefik和Spring Cloud Gateway的优缺点。重点讲述了基于Nginx的网关实现,包括Nginx的反向代理和负载均衡功能,并提供了简单的微服务配置和测试案例。
摘要由CSDN通过智能技术生成

1 服务网关简介

1.1 什么是微服务网关

API网关是一个服务器,是系统对外的唯一入口。API网关封装了系统内部架构,为每个客户端提供一个定制的API。API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

1.2 作用和应用场景

网关具有的职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。当然,最主要的职责还是与“外界联系”。

2 常见的API网关实现方式

  • Kong
    基于Nginx+Lua开发,性能高,稳定,有多个可用的插件(限流、鉴权等等)可以开箱即用。
    问题:只支持Http协议;二次开发,自由扩展困难;提供管理API,缺乏更易用的管控、配置方式。
  • Zuul
    Netflix开源,功能丰富,使用JAVA开发,易于二次开发;需要运行在web容器中,如Tomcat。
    问题:缺乏管控,无法动态配置;依赖组件较多;处理Http请求依赖的是Web容器,性能不如Nginx;
  • Traefik
    Go语言开发;轻量易用;提供大多数的功能:服务路由,负载均衡等等;提供WebUI
    问题:二进制文件部署,二次开发难度大;UI更多的是监控,缺乏配置、管理能力;
  • Spring Cloud Gateway
    SpringCloud提供的网关服务
  • Nginx+lua实现
    使用Nginx的反向代理和负载均衡可实现对api服务器的负载均衡及高可用
    问题:自注册的问题和网关本身的扩展性

3 基于Nginx的网关实现

3.1 Nginx介绍

3.2 准备工作

(1) 准备两台微服务
启动 shop_service_order 微服务,单独请求地址:http://127.0.0.1:9001/
启动 shop_service_product 微服务,单独请求地址:http://127.0.0.1:9002/
(2)下载并安装nginx
(3) 配置Nginx的请求转发

location /api-order {
 proxy_pass http://127.0.0.1:9001/;
}
location /api-product {
 proxy_pass http://127.0.0.1:9002/;
}

(4)运行nginx,测试 访问 http://127.0.0.1/api-order/order/1 自动转发到 http://127.0.0.1:9001/order/1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值