自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(154)
  • 收藏
  • 关注

原创 今天是与JDK动态代理亲热的一天!(原理和源码深入分析)

一、先看一个动态代理的小例子大家对动态代理应该挺熟了,如果不熟,请绕行(开玩笑,不懂,这篇文章也让你懂)这是一个接口和一个实现类!public interface Target { int test(int i);}public class TargetImpl implements Target { @Override public int test(int i) { System.out.println("进入方法 ++++++++++++

2020-07-06 21:39:58 837 2

原创 Spring Security认证与授权的原理(源码分析,超详细)

一、工作原理Spring Security所解决的问题就是安全访问控制,而安全访问控制功能其实就是所有进入系统的请求进行拦截,校验每一个请求是否能够访问它所期望的资源,可以通过Filter和AOP等技术来实现,Spring Security对web资源的保护是靠Filter来实现的。当初始化Spring Security时,会创建一个名为SpringSecurityFilterChain的...

2020-05-03 21:54:57 7123 5

原创 自己手写一个RPC,实现远程调用功能(基于netty、反射和代理)

emmm,昨天蘑菇街一面,我感觉面试官特好,问了我几个相对开放的问题,没怎么问基础。但是我感觉我答的不很好,第一次面大公司有点紧张。希望过过过!!!其中有一个题,面试官说你手动搭建过springboo + zookeeper + dubbo是吧,那么dubbo的原理是怎样的呢,或者你手动搭建一个dubbo你想这么做呢?基于这个原因,我今天就花费了半天的时间通过查资料做了一个远程调用rpc。首先...

2020-04-02 21:52:16 1227

原创 手动搭建springboot + dubbo + zookeeper的RPC框架

1、什么是RPC?rpc全称Remote Procedure Call,中文 = 远程调用。我们先来看一下本地调用。本地调用例如:我们在程序里的controller调用了service层的一个方法,在一台机器上这就是本地调用。也就是说这个方法(服务)与调用的程序是在同一个进程中。这样我们通过底层指针(地址)就可以直接找到调用的是哪个方法了。远程调用但是对于一些并发量超过二十...

2020-03-14 12:30:55 642

原创 学习ElasticSearch:Spring Data ElasticSearch

1、搭建工程导入依赖:这里是一个普通的maven工程<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...

2019-12-03 09:16:53 505

原创 JavaScript预编译(执行期上下文)总结

预编译(又叫“执行期上下文”)一般来说,预编译与闭包、作用域链和闭包是密切相关的,好多人包括在企业开发的人都听说过一句话叫做“函数声明整体提升”。这个就是预编译后的一个小结果,所以今天自己总结了一下。分为以下几个步骤来说。大家先看看这段代码console.log(a);var a = 1;结果:为什么变量的声明在输出的下面,却没有报错?值为什么是undefined?大家再看看下面...

2019-01-23 19:12:37 4588 2

原创 如何设计一个秒杀系统??

之前被面试官问到如何设计一个秒杀系统。当时答的不好,后来遇到了一个小伙伴之前做过秒杀系统。经过和大佬的探讨得出了以下的一些设计技巧:一、只用mysql的秒杀系统?这种实现的秒杀系统就是通过查询数据库来防止超卖的发生。update t_goods set stock = stock - 1 where good_id = xxx and stock > 0。前端页面采用java的themlef模板(不用行不行?我就用前后端分离的项目,我就要用vue可不可以,可以,这里我们为了体现后面的优

2020-07-22 23:13:05 436

原创 从暴力破解到记忆搜索,再到动态规划,一个问题如何一步一步变成动态规划的

在这里就不得不吐槽一下学校的算法课,一上来就给我们讲动态规划什么最优子结构、套用一些公式,乱七八糟的也记不住。而实际上动态规划的发展是有一定历史的。为啥会有动态规划呢?起初算法大牛、先贤们在研究一类问题的时候,发现计算的过程中总是出现重复计算的数据,这一部分被反复计算了好多次,后来大神们就用map这样的额外容器记录之前出现的数据,得到了一部分的优化。再后来发现了这类问题的一个规律,最后得总结出了一个动态规划。实际上动态规划就是暴力破解的优化。学校的老师,讲算法直接就给了几个例题,然后讲,很无奈。

2020-06-16 21:22:21 531 1

原创 前缀树的数据结构以及O(n)解决子数组最大异或和的问题

什么是前缀树,比如你输入了一个字符串“abc”:那么前缀树如图所示:依次在头节点下创建节点,然后线上是字母(并非节点是)每个节点上面有两个值:path(代表有多少字符串经过了该节点)、end(有多少字符串以该节点结尾)。现在依次输入:“abc”、“bce”、“abd”、“bef”输入第二个字符串:输入第三个字符串:实际上输入abd的时候,之前已经输入abc了,可以复用之前的前缀ab。更新path。输入第四个字符串,符用b前缀:我们的头节点其实是没用的,字符串的

2020-06-15 22:21:42 527

原创 并查集数据结构以及多机器解决岛屿数量问题

并查集能够解决的问题:(1)查找两个元素是否处于同一个集合(2)把两个集合合并。并查集要求在建立并查集结构的时候,必须给出所有的并查集数据集,在之后的操作过程中不允许在动态添加数据。我们先来看一张小图:假设数据集如下:1,2,3,4,5,6如果合并1和2,同时合并3,4,结果如下:我们称1、3为代表节点,{1,2}、{3,4}、{5}、{6}是集合。现在合并{5}和{1,2},就变成:此时可以解决并查集的第二问题,查询4和1两个元素是否在同一个集合内,怎么做呢?就

2020-06-15 11:13:42 312 1

原创 内存替换算法:LRU和LFU超详细!!!

在我们内存或者cache中有两种替换算法来保证内存或者cache中都是“热点”的数据,一个是LRU和LFU。下面会先分析再给出代码!在这里的get和set操作的时间复杂度都是O(1),因为这两种速度都是很快的,不能要求O(n)。一、LRU首先我们搞一个双向链表。我们定义这个规则:如果有节点被访问(get或者set),那么直接放入到末尾,每一个队列都有一个capacity值表示容量,如果新元素加入,现在达到了容量值,就需要淘汰最近最少使用的,就是头节点。例如:现在node1被访问。

2020-06-14 13:04:30 3476

原创 满满的套路!!二叉树的动态规划

如果题目是一个二叉树的题,并且需要求解的答案(涉及到左右子树结果决策的)都可以用同一个模型来做。统一理解为以x为节点的树的......。下面几个题来讲解。一、判断一棵树是不是平衡树所谓平衡树就是:xoxoxxxooooxoo....自己去百度。那么我们就要求从树的叶子节点逐层向上计算出每一节点是否符合平衡树,如果有一个不符合那么就直接false。这里的可能性:(1)是(2)不是我们先来看节点,一个定义树的节点,另一个定义返回类型(isBalance:当前节点是否平衡,level:树的高度

2020-06-13 22:49:36 1674

原创 那些你不知道的avl树和红黑树的姿势!

一、二叉排序树什么是二叉排序树?对于任意一个节点,左子树的节点都比该节点大,右子树的节点都比该节点小,这就是平衡二叉树,这个和大顶堆有很大区别哦,别傻傻分不清。画图狂魔上线!就下面这玩意就叫做二叉排序树。二叉排序树、二叉查找树、二叉搜索树说的都是一个意思!!为啥要有这个东西?它能干啥?装x吗?原因是这个东西的查询效率特别高,他的时间复杂度是O(logn)。相比于你一个数组从头遍历还得时间复杂度O(n)呢,所以这个有点像二分法查找,但是二分法需要首先前提要求是数组必须有序。也就是说如果你输

2020-06-11 18:09:16 263

原创 神迹!开启遍历新时代 —— 神级遍历Morris算法,时间复杂度O(n),空间复杂度O(1)

一、递归方式和非递归方式遍历二叉树节点数据结构 public static class Node { public Integer value; public Node left; public Node right; public Node(Integer value){ this.value = value; } }递归的方式遍历二叉树算法。 public voi

2020-06-10 22:27:02 422 1

原创 单调栈结构以及算法中实际应用

一、什么是单调栈单调栈就是一个栈结构,但是要求栈底到栈顶的元素必须是单调的(递增或者递减)。本身没啥屌的,但是用法非常屌。二、看一个小题有这样一个数组[3,5,2,4,6,0,1,5],现在要求,打印出每一个元素距离它两边的最近的比它大的值。看图片:没有边界值的为null。暴力破解很容易,遍历每一个数组,然后两边查找比它大的值。有没有可能时间复杂度O(n)解法呢?单调栈上场:访问第一个元素,直接压栈访问第二个元素的时候发现5比栈中3大,由于单调性的问题,所以弹出3,此

2020-06-10 15:44:43 231

原创 实现栈和队列、用栈实现队列,用队列实现栈。

一、实现一个栈就是一个指针下标,入栈加,出栈减。 /** * 我的栈 */ public class MyStack{ private Integer[] arr; private Integer size; public MyStack(int initSize) throws IllegalAccessException { if(initSize < 0){

2020-06-09 22:42:33 115

原创 窗口内最大值或者最小值的更新结构(单调双向队列)

首先我们需要一个双向链表作为队列。例如一个数组{5,4,1,2,6},下面是下标;这个数组有两个指针,一个指向左边界,一个是指向右边界,这个范围就是窗口。并且left和right只能向右前进不能够后退。现有一个需求就是无论窗口是啥,你都要给我找到当前的最大值。也就是这个窗口的最大值。现在搞一个双向队列(值为下标数值):起初只有哦一个值,那么5就进入到队列,从后进入队列,right++,这时候遇到4,比5小那么也进入队列:right++,遇到1。也进入队列,这样如果想要获取窗口

2020-06-09 18:05:12 284

原创 BFPRT算法

一、先来看一个问题在一个乱序的数组中,寻找第k个小的值?很多人第一种解法,用大顶堆,然后poll第k个就是答案了,但是时间复杂度是O(nlogn),有没有O(n)的算法呢?答案是肯定的,就是我们的BFTRP算法二、铺垫这里我们需要大家知道荷兰国旗问题的解法,也就是选定一个基值,比它小的放在左边,比它大的放在右边,相等的放在中间,其实就是快速排序的partition过程。数组{5,7,12,4,2,7,2,5,6,0,1,2},假设选定基值是6,那么数组表示这样实际就是一个荷兰国旗,这

2020-06-09 12:59:51 830

原创 马拉车算法(manacher)求最长回文子串

关于回文字符串的概念大家可以大致去搜索一下,这里不赘述。一、解题思路当前字符串最长回文子串:思路实际上很简单,就是遍历每一个元素,然后分别以这个元素为中心,向两边扩展,比如说现在i = 4,那么当前字符串是t,我们可以里面写一个循环,l = i - 1,r = i + 1,然后判断chars[l] == chars[r]看是否相等,如果相等继续i--,r++,再新型比较,记录一下最大值即可。下面这种情况需要注意:当中心是连续的,那么最好的解决办法(不唯一)是如下:先将字符串变

2020-06-05 10:13:55 276 3

原创 kmp以及算法中如何使用kmp去解决问题

一、看一个问题两个字符串abcabcdeanc和abcd,我们判断后面的字符串是否时前面字符串的子串,如果是返回数组下标,否则返回-1。暴力解法 public static int matchStr(String s,String m){ if(s == null || m == null || s.length() < 1 || s.length() < m.length()){ return -1; }

2020-06-04 16:24:51 222

原创 每日算法:摆动序列、行相等的最少多米诺旋转、最小差值Ⅱ

一、摆动序列如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为摆动序列。第一个差(如果存在的话)可能是正数或负数。少于两个元素的序列也是摆动序列。例如,[1,7,4,9,2,5] 是一个摆动序列,因为差值 (6,-3,5,-7,3)是正负交替出现的。相反, [1,4,7,2,5]和[1,7,4,5,5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。给定一个整数序列,返回作为摆动序列的最长子序列的长度。 通过从原始序列中删除一些(...

2020-06-03 12:36:02 156

原创 开发中装x必备(编程新风格、新姿势、新走向)—— Java 8的新特性

一、lambda表达式/** * 1、例子:(int 01,int 02) -> return 01 - 01 * 2、格式: * ->:lambda表达式操作符 * 左边:形参列表(就是接口中的抽象方法的形参列表) * 右边:方法体(重写抽象方法的方法体) * 3、表达式本质:作为函数式接口(接口中只有一个抽象方法,@FunctionInterface标记)的实例(对象) * */在java中的主角的就是对象,几乎所有东西都是对象,包括方法

2020-06-02 17:01:40 227

原创 微服务:Spring Cloud Config 配置中心

对于传统的单体应用而言,常使用配置文件来管理所有配置,比如SpringBoot的application.yml文件,但是在微服务架构中全部手动修改的话很麻烦而且不易维护。微服务的配置管理一般有以下需求:集中配置管理,一个微服务架构中可能有成百上千个微服务,所以集中配置管理是很重要的。 不同环境不同配置,比如数据源配置在不同环境(开发,生产,测试)中是不同的。 运行期间可动态调整。例如,可根据各个微服务的负载情况,动态调整数据源连接池大小等 配置修改后可自动更新。如配置内容发生变化,微服务可以

2020-06-01 13:29:44 844

原创 微服务:SpringCloudStream学习

看一张小图:比如,这是我们一个完整的项目(脑补完整!!)。此时中间件用的是RabbitMQ,如果现在项目需求换成ActiveMQ(对,就是一个很傻x的需求),你咋办?思考60分钟3秒。......................决定改代码!!!那你就太low了,我们srpingCloud为我们提供了一个组件去解决这个问题。一、Spring Cloud Stream 在实际的企业开发中,消息中间件是至关重要的组件之一。消息中间件主要解决应用解耦,异步消息,流量削锋等问题,实现.

2020-05-31 17:27:55 247

原创 微服务:SpringCloud 分布式链路追踪sleuth、zipkin

一、微服务架构下的问题在大型系统的微服务化构建中,一个系统会被拆分成许多模块。这些模块负责不同的功能,组合成系统,最终可以提供丰富的功能。在这种架构中,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心,也就意味着这种架构形式也会存在一些问题:如何快速发现问题? 如何判断故障影响范围? 如何梳理服务依赖以及依赖的合理性? 如何分析链路性能问题以及实时容量规

2020-05-31 10:57:11 238

原创 微服务:SpringCloud GateWay网关

Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,旨在为微服务架构提供一种简单而有效的统一的 API 路由管理方式,统一访问接口。Spring Cloud Gateway 作为 Spring Cloud 生态系中的网关,目标是替代 Netflflix ZUUL,其不仅提供统一的路由方式,并且基于 Filter 链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。它是基于

2020-05-29 17:55:13 885

原创 微服务:SpringCloud zuul网关

一、存在的问题在之前的文章中,微服务架构已经初具雏形。但还有一些问题:不同的微服务一般会有不同的网 络地址,客户端在访问这些微服务时必须记住几十甚至几百个地址,这对于客户端方来说太复杂也难以维护。如下图:前端应用程序调用我们消费者提供的接口会有以下几个问题:客户端会请求多个不同的服务,需要维护不同的请求地址,增加开发难度 (各个消费者ip不同) 在某些场景下存在跨域请求的问题 加大身份认证的难度,每个微服务需要独立认证(关于微服务认证,可以看我之前的文章,深入的讲解了分.

2020-05-28 16:50:01 152

原创 微服务:SpringCloud 比hystrix牛的Sentinel(国人的骄傲!)

一、简介随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。 Sentinel 具有以下特征: 丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。 完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到..

2020-05-27 15:15:47 565

原创 微服务:SpringCloud hystrix 服务熔断、断路器、隔离

一、雪崩效应在微服务架构中,一个请求需要调用多个服务是非常常见的。如客户端访问A服务,而A服务需要调用B 服务,B服务需要调用C服务,由于网络原因或者自身的原因,如果B服务或者C服务不能及时响应,A服 务将处于阻塞状态,直到B服务C服务响应。此时若有大量的请求涌入,容器的线程资源会被消耗完毕, 导致服务瘫痪。服务与服务之间的依赖性,故障会传播,造成连锁反应,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的“雪崩”效应。雪崩是系统中的蝴蝶效应导致其发生的原因多种多样,有不合理的容量设.

2020-05-26 22:43:13 422

原创 微服务:SpringCloud 高并发出现的问题以及解决办法(一篇文章给你安排的明明白白的!!!)

之前的做文章讲述了一些常用的组件,这次我们来聊聊基于上面组件的高并发问题。我们先以高并发时,项目程序出现的现象入手。一、修改项目order-service这里面我们不采用feign,而是采用普通的http请求的方式,用restTemplate。这里有两个接口。@RestController@RequestMapping("/order")public class OrderController { @Autowired private ProductFeginClie

2020-05-26 17:34:30 4709 1

原创 微服务:SpringCloud 使用Feign组件

一、之前项目存在的问题我们这样去调用微服务:是不是感觉不好啊,怎么可能去拼字符串呢?low爆了对吧。我们的Feign组件就是解决这个问题滴!二、Feign组件1、简介Feign是Netflflix开发的声明式,模板化的HTTP客户端,其灵感来自Retrofifit,JAXRS-2.0以及WebSocket. Feign可帮助我们更加便捷,优雅的调用HTTP API。 在SpringCloud中,使用Feign非常简单——创建一个接口,并在接口上添加一些注解,代码就.

2020-05-26 14:43:29 357

原创 微服务:SpringCloud 使用consul来代替eureka注册中心

Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服 务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架、分布一致性协议实 现、健康检查、Key/Value 存储、多数据中心方案,不再需要依赖其它工具(比如 ZooKeeper 等)。 使用起来也较 为简单。Consul 使用 Go 语言编写,因此具有天然可移植性(支持Linux、windows和 Mac OS X);安装包仅包含一个可执行文件,方便部署,与 Docker

2020-05-26 10:12:42 634

原创 微服务:SpringCloud 添加ribbon 负载均衡(+源码分析!)

在之前注册中心那一章,消费者调用提供者的接口,是需要写死这样的url的。但是真实的环境我们一般要求服务提供者高可用,所以呢同一个服务需要多个服务提供者。那么消费者就不能够写死这个url了。所以基于如此我们改一下代码。一、修改代码,添加ribbon实现负载均衡1、服务提供者首先呢,用ip+port用于区别调用不同的服务。设置到ProductName我们用两个application分别启动同一个项目, 不过用的是不同端口,模拟两个服务。记得修改端口。当然如果不会的话,就copy一下再建立一.

2020-05-25 09:22:54 210

原创 你知道springboot的自动装载机制吗?一篇文章让你豁然开朗!!!

之前学完ssm的时候,当时做了一个简单的小网站,非常开心,但是对于那些配置文件刚开始还是有些头疼。后来学习到springboot,就感觉太清爽了!!!去nmd配置文件,我们只需要在application.properties配置一些mybatis、数据源、端口、视图解析器等就可以了。开发一个小网站很快就完成了。不知道大家第一次接触springboot是什么感觉,我第一感觉就是不用配置那么多配置文件了。但是真的不用配置了吗?为什么不需要我们配置了呢?大家想过这个问题吗?这里有一个叫做springboot自

2020-05-24 11:09:46 1121

原创 微服务:SpringCloud 注册中心(Eureka)+ 源码分析est

一、没有注册中心的模拟微服务这里有四个项目,其中三个是服务提供者,这三个服务提供者通过@RestController暴露rest接口,供消费者去调用。消费者可以用java代码编写get或者post请求,我们通常用的是RestTmplate,这个spring为我们提供好的类,特别好用!正常情况下,我们就可以很顺利的调用这些服务了。这个是没有问题的!小伙伴们可能要问,这能调用。我们直接搞就行了,为啥还用注册中心呢?多此一举?我们来考虑这样几个问题:(1)在我们调用提供者的接口的时候,是不是要将他

2020-05-21 14:49:58 409

原创 微服务:系统架构的演变

通过这篇文章我们来学习我们项目系统架构的演变过程。没部署过项目的或者没做过项目的小伙伴也可以康康,hhhh..当我们系统的用户逐渐增多,我们系统就必须具备了高可用、高并发这样的特性。如何解决?1、单体应用架构这种应用架构就是我们在校园中做项目(例如一个网站、一个小程序等)经常用的架构,说白了,学校也不可能给你几台服务器让你玩分布式,第一是有这种需求也不会交给学生做,第二是学校的系统一般的并发量还没达到这个级别。我个人现在大三,在学校做过大大小小很多系统,到最后说白了就是反复做同一个事,也没啥

2020-05-20 21:51:07 785

原创 每日算法:朋友圈、岛屿数量、合法二叉树、后继者

1、朋友圈班上有N名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B的朋友,B 是 C的朋友,那么我们可以认为 A 也是 C的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个N * N的矩阵M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。输入: [[1,1,0], [1,1,0], [0,0,1]]输出: 2 说明:已知学生...

2020-05-20 20:41:53 362

原创 SpringDataMongoDB的常见的CRUD

我们常用的数据库一般是MySql,但是在数据量大的时候。MongoDB这种NoSql型数据库更加有优势!我们来看一下如何用java来操作。1、创建一个maven工程引入依赖别跟我说你不知道到maven是个啥,哈哈哈!!!<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSch

2020-05-19 13:19:05 267

原创 每日算法:矩阵篇(在行列都排好序的矩阵中找数、“之”字形打印矩阵、旋转正方形矩阵、转圈打印矩阵)

1、转圈打印矩阵【题目】 给定一个整型矩阵matrix,请按照转圈的方式打印它。例如: 1 2 3 4 5 6 7 8 9 10 11 12 13 1415 16打印结果为:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11, 10,【要求】 额外空间复杂度为O(1)思路:我们定义两个点,一个是左上角a[a][b],一个是右下角a[c][d]。坐标就是(a,b)、(c,d)。我们可以打印最外层的数,依次然后a、b都加1,c、d减一,进入内圈。1 2 ...

2020-05-13 15:49:06 382

原创 Spring Cloud Security OAuth2 实现分布式系统授权

1、架构图:1、UAA认证服务负责认证授权。2、所有请求经过 网关到达微服务3、网关负责鉴权客户端以及请求转发4、网关将token解析后传给微服务,微服务进行授权。2、注册中心所有微服务的请求都经过网关,网关从注册中心读取微服务的地址,将请求转发至微服务。 本节完成注册中心的搭建,注册中心采用Eureka。...

2020-05-12 22:25:44 1017

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除