热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

分布式架构之网关

今日产品上线成功,明天睡的可能比较晚,提早分享关于分布




一、网关的定义

所有微服务的入口。

二、网关的目的

  • 1.统一入口(所有微服务的入口点);

  • 2.鉴权校验(统一请求接口鉴权);

  • 3.动态路由(统一请求接口分发);

  • 4.降低耦合(服务独立发展,网关映射即可)。

三、网关的优点与缺点

1.优点

  • (1)避免将内部信息泄露给外部;

  • (2)为微服务添加额外的安全层;

  • (3)支持混合通信协议;

  • (4)降低构建微服务的复杂性;

  • (5)微服务模拟与虚拟化。

2.缺点

  • (1)架构上需要额外考虑更多的编排与管理;

  • (2)路由逻辑配置要进行统一的管理;

  • (3)可能引发单点故障。

四、网关的现有解决方案有哪些

  • 1.SpringCloud Gateway;

  • 2.SpringCloud Zuul;

  • 3.Kong;

  • 4.Nginx+Lua;

  • 5.自研;

  • 6.采用相关领域公司的付费解决方案。

五、在采用SpringCloud Gateway我们遇到了哪些问题

  • 1.网关与微服务没有映射成功导致访问404;

  • 2.网关因为磁盘空间不足陷入”假死”状态导致所有服务不可用;

  • 3.网关某一个跟登录相关的接口报错导致系统无法使用;

  • 4.网关所涉及的中间件被黑客攻击导致服务器崩溃,从而使得所有服务均不可用。

关于SpringCloud如何整合Gateway可以阅读这篇文章:
SpringCloud之Gateway

六、问题的原因和对应的解决方案

1.网关与微服务没有映射成功导致访问404

原因:网关的配置文件由Nacos进行管理,相应的开发人员在部署新的微服务时没有通知运维人员进行相应的配置信息新增从而造成服务访问404。

解决方案:
每次开发人员新增对应的微服务时,及时通知运维人员,让其配置好网关微服务相关的配置。

2.网关因为磁盘空间不足陷入”假死”状态导致所有服务不可用

原因:磁盘空间满了。

解决方案:
清理磁盘空间,服务就能恢复正常。

我之前写过关于这件事的复盘,文章如下:
Linux设备上没有空间之复盘

3.网关某一个跟登录相关的接口报错导致系统无法使用

原因:相关接口涉及Redis中间件,Redis中间件正常,但Nacos中的配置文件出现覆盖的问题,导致微服务应用连接Redis的配置信息不对,造成代码中连接Redis失败,从而造成接口报错。

解决方案:
修改配置文件并重新发布即可。另外这并不是解决问题的根本办法,需要从管理流程上控制,生产环境只有运维有权改动,测试环境只有测试主管有权改动,开发环境也只能由专门的开发人员才能改动,否则时不时就可能出现配置覆盖导致一些代码报错等问题。

4.网关所涉及的中间件被黑客攻击导致服务器崩溃,从而使得所有服务均不可用

原因:由于我方开发人员将6379端口进行公网发布且没有任何认证鉴权措施最后造成了被黑客攻击。

解决方案:
病毒太多,只得重装系统。为了从根本上杜绝此类情况,可参考这篇文章(按照这篇文章所制定规范,基本上不会被黑客攻击,就算被攻击绝不会出现服务器瘫痪重建的情况):
服务器安全策略之思考与实践


红色标记处,点击阅读原文,即我的博客,就能获取到!!!




推荐阅读
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • Sleuth+zipkin链路追踪SpringCloud微服务的解决方案
    在庞大的微服务群中,随着业务扩展,微服务个数增多,系统调用链路复杂化。Sleuth+zipkin是解决SpringCloud微服务定位和追踪的方案。通过TraceId将不同服务调用的日志串联起来,实现请求链路跟踪。通过Feign调用和Request传递TraceId,将整个调用链路的服务日志归组合并,提供定位和追踪的功能。 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 熟练掌握Spring Cloud,终于成为Java工程师的面试门槛 ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • 服务网关与流量网关
    一、为什么需要服务网关1、什么是服务网关传统的单体架构中只需要开放一个服务给客户端调用,但是微服务架构中是将一个系统拆分成多个微服务,如果没有网关& ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
  • 有意向可以发简历到邮箱内推.简历直达组内Leader.能做同事的话,内推奖励全给你. ... [详细]
  • zuul 路由不生效_Zuul网关到底有何牛逼之处?竟然这么多人在用~
    作者:kosamino来源:cnblogs.comjing99p11696192.html哈喽,各位新来的小伙伴们,大家好& ... [详细]
  • 构建LNMP架构平台
    LNMP架构的组成:Linux、Nginx、MySQL、PHP关于NginxNginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgorsysoev开发,其特点是 ... [详细]
author-avatar
手机用户2502880645
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有