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提供了工具,帮你在微服务之间传递 ...
随机推荐
- python_并发编程——锁
多进程模拟买票~ import time import json from multiprocessing import Process class Show(Process): #查 def run ...
- laravel5.8 编译laravel mix
如果第一次无需执行(如果编译的时候出错再次执行才需要) 1:rm -rf node_modules 更改镜像为淘宝镜像 2:yarn config set registry https://regis ...
- 题解 UVa11889
题目大意 \(T\) 组数据,每组数据给定两个正整数 \(A,C\),求使 \(LCM(A,B)=C\) 的最小的 \(B\),若无解则输出NO SOLUTION. 分析 当 \(C\%A=0\) 时 ...
- 从http简介到网络分层及web架构
浏览器发起HTTP请求的典型场景 a stateless application-level request/response protocol that uses extensible semant ...
- python为什么不需要重载函数
https://www.cnblogs.com/erbaodabao0611/p/7490439.html
- 01-学习vue前的准备工作(let和const)
es6语法:let和const es6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效 <!DOCYTPE html> <ht ...
- Tensorflow细节-P42张量的概念及使用
1.运行以下代码 import tensorflow as tf a = tf.constant([1.0, 2.0], name="a") b = tf.constant([2. ...
- Phoenix 简单介绍
转载自:https://blog.csdn.net/carolzhang8406/article/details/79455684 1. Phoenix定义 Phoenix最早是saleforce的一 ...
- Oracle NVL 函数 nvl nvl2
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...
- 2019/7/18 --1.<%@ include file=""%>与<jsp:include page=""/>两种方式的作用
一.前言 身为一名coder有太多太多的知识点要去学,太多太多的东西要去记.往往一些小细节也就难免疏忽,但悲催的是多数困恼你的bug就是因为这些微不足道的知识点.我们又不是机器人,怎么可能什么都记得了 ...