Spring cloud微服务安全实战-6-1本章概述

这一章来讲一下,微服务之间的通讯安全。
当前这个架构还存在的问题

在网关上做限流还是有一些问题的。例如我的订单服务限流是100,库存服务限流也是100。但是我的订单服务会调用我的库存服务。那么在网关这,给订单转100个请求,库存转100个请求,最后订单又调了库存,库存会同时受到200个请求。这时候库存服务可能就挂掉了。
这是在网关这里做限流,可能会出现的一些问题。
第二个问题就是身份认证。
效率低,在网关上每一个请求都要去认证服务器验令牌。这样就会导致多一次网络请求的开销。同时我的认证服务器压力就会很大,而且还要保证高可用。而且一旦我的认证服务器坏了,没法验令牌了。所有的请求就都没法处理了。
不安全:在传递用户信息的时候,是在请求头里面加了个username,然后把用户名放进去了。 订单服务从请求头里就知道他是谁了。

那么我再写一个其他服务,也调用订单服务,下一个订单,在请求头里面传一个张三。订单服务就认为我是张三。传个李四,订单服务就认为我是李四,这样做实际上是不安全的
你不能从头里面一个请求中明文的参数,来判断用户是谁。
第三个问题:传递麻烦,把信息放在请求里面 传给了订单服务,比如说 订单服务还要调用库存服务。那么订单服务调用库存服务的时候,也要在请求头里面再加上username,再去调,库存服务才能知道当前这个用户是谁。传递起来也是比较麻烦的。这是认证面临的一些问题。
授权:和限流的问题类似。例如我在权限控制里面 控制这个人只能访问订单服务,不能访问库存服务。,但是订单服务内部又访问了库存服务。
我一访问订单服务,实际上又访问库存的服务了。权限实际上是越权了。没有限制住,
微服务之间去调用的时候,通过网关调用的时候,还有一个是雪崩。当一个服务出现问题的时候,把其他的服务都给带死了。
比如说我的库存服务。 因为某些原因响应变慢了。比如说是网络的问题,数据库压力大或者是其他的一些问题。我的库存服务变慢了。会导致我的订单服务也变慢。然后所有调用库存服务的服务都变慢。这些线程全都在这等待着,然后这些线程可能都是通过网关进来的。那么网关上也有一大堆线程在这等待着,最后导致所有的服务,你的网关上所有线程都被占住了。
可能订单服务的所有线程都被占住了,最后导致,大量的服务都不能用了。但是最根上只有一个库存服务出了问题。这就是我们说的服务的雪崩,
刚才讲的这些问题就是我们第六章要解决的问题。
结束
Spring cloud微服务安全实战-6-1本章概述的更多相关文章
- 《Spring Cloud微服务 入门 实战与进阶》
很少在周末发文,还是由于昨晚刚收到实体书,还是耐不住性子马上发文了. 一年前,耗时半年多的时间,写出了我的第一本书<Spring Cloud微服务-全栈技术与案例解析>. 时至今日,一年的 ...
- Spring Cloud微服务安全实战_00_前言
一.前言: 一直以来对服务安全都很感兴趣,所以就学习.这是学习immoc的 jojo老师的 <Spring Cloud微服务安全实战课程>的笔记,讲的很好. 课程简介: 二.最终形成的架 ...
- Spring cloud微服务安全实战_汇总
Spring cloud微服务安全实战 https://coding.imooc.com/class/chapter/379.html#Anchor Spring Cloud微服务安全实战-1-1 课 ...
- Spring Cloud微服务安全实战_4-1_微服务网关安全_概述&微服务安全面临的挑战
第四章 网关安全 这一章从简单的API的场景过渡到复杂的微服务的场景 4.1 概述 微服务安全面临的挑战:介绍中小企业的一个微服务架构,相比第三章的单体应用的简单的API所面临的哪些挑战 OAu ...
- Spring Cloud微服务安全实战_4-5_搭建OAuth2资源服务器
上一篇搭建了一个OAuth2认证服务器,可以生成token,这篇来改造下之前的订单微服务,使其能够认这个token令牌. 本篇针对订单服务要做三件事: 1,要让他知道自己是资源服务器,他知道这件事后, ...
- Spring Cloud微服务安全实战_4-3_订单微服务&价格微服务
实现一个场景: 订单微服务: POM: <?xml version="1.0" encoding="UTF-8"?> <project xml ...
- Spring cloud微服务安全实战 最新完整教程
课程资料获取链接:点击这里 采用流行的微服务架构开发,应用程序访问安全将会面临更多更复杂的挑战,尤其是开发者最关心的三大问题:认证授权.可用性.可视化.本课程从简单的API安全入手,过渡到复杂的微服务 ...
- Spring cloud微服务安全实战-6-8sentinel限流实战
阿里2018年开源的. 简单来说就是干三件事,最终的结果就是保证你的服务可用,不会崩掉.保证服务高可用. 流控 先从最简单的场景来入手. 1.引用一个依赖, 2,声明一个资源. 3.声明一个规则 注意 ...
- Spring cloud微服务安全实战-6-4权限控制改造
授权,权限的控制 令牌里的scope包含fly就有权限访问.根据Oauth的scope来做权限控制, 要让@PreAuthorize生效,就要在启动类里面写一个注解. 里面有一个属性叫做,就是在方法的 ...
- Spring cloud微服务安全实战-6-2JWT认证之认证服务改造
首先来解决认证的问题. 1.效率低,每次认证都要去认证服务器调一次服务. 2.传递用户身份,在请求头里面, 3.服务之间传递请求头比较麻烦. jwt令牌. spring提供了工具,帮你在微服务之间传递 ...
随机推荐
- Java - 框架之 Struts2
一. Package 标签 1. 标签属性:name : 包的名称,只有在一个项目中不重名即可.extends : 继承哪个包,默认为 struts-default.name ...
- CSS hack整理
浏览器的兼容性一直是个头疼的问题,使用“欺骗”技术可使各个浏览器效果一致,花了些时间整理了各个浏览器的HACK,主要包括IE系列和最新版本的Chrome.Safari.Firefox. Opera,比 ...
- jquery锚点跳转
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- C# 接收C++ dll 可变长字节或者 字符指针 char*
网络上查找到的几乎都是 需要提前固定知道 接收字符(字节)数据的大小的方式,现在的数据大小方式 不需要提前知道如下 思路: 1 .C++,返回变长 指针或者字节 的地址给C# 接收,同时返回 该地址的 ...
- Restful API 指南
作为软件开发人员,我们大多数人在日常生活中使用或构建 REST api.API 是系统之间的默认通信方式.亚马逊是如何有效地使用 api 进行通信的最佳例子. 在这篇文章中,我将讨论如何更好地设计 R ...
- MongoDB 常用操作命令大全
一.数据库常用命令1.Help查看命令提示 复制代码 代码如下: helpdb.help();db.yourColl.help();db.youColl.find().help();rs.help() ...
- RegularExpression正则表达式
1.必須為大寫字母,小寫字母,數字和符號的至少其中3種組合 The new password should contain any three of different syntax which is ...
- C# 分割字符串 分隔符是字符串的情况
string[] arr = System.Text.RegularExpressions.Regex.Split(str, "\r\n");
- (27)打鸡儿教你Vue.js
v-for 数组参数的顺序 当含有index时,以前传递的参数顺序是: (index, value).现在(value, index) ready替换使用新的mounted钩子代替,通过使用mount ...
- AtCoder Beginner Contest 133 E - Virus Tree 2(组合数学)
题意 n个点的树k种颜色,距离不超过2的点对需颜色不同,求方案数 Code(copy) #include<iostream> #include<cstdio> #include ...