重定位相关知识,为什么要重定位
1.什么是重定位?由于一个作业装入到与其地址空间不一致的存储空间,对有关地址部分的调整过程称为重定位。
2.重定位有哪几种类型?分为静态重定位和动态重定位两种类型。
3.为什么要进行重定位?我们写正常程序的时候根本不用去关心变量(常量)的位置,因为源程序在编译的时候它的内存中的位置郡被计算好了。

程序装入内存时,系统不会为它重定位。
我们需要用到变量 (常量)的时候直接用变量名访问它就行了。
有的程序不可避免也要用到变量 (常量),各个变量 (常量)在内存中的位置自然也不相同。
既然这些变量没有固定的地址,那么程序在运行的过程中只有重定位,才可以正常地访问相关资源。
spring cloud中gateway存在的意义是什么
先让我们看这样一个场景吧,一个电商网站做了服务化,后端服务分别拆成了用户服务、商品服务、支付服务、物流服务(为了举例,做了简化,实际场景会远比这个复杂);前端有网页版和 APP,前端的所有操作都需要调用后端的各个服务。
在这个过程中,可能会有这样的问题:
问题1.
前端应用需要知道后端每个服务的地址,或者必须接入服务中心;但是服务的地址和端口可能会动态变化。
问题2.
每个服务的技术栈必须相同,遵守相同的接口规范,接口协议必须相同,否则对于前度极度不友好。
问题3
网页版和 APP 展示相同的内容时,可能粒度不同,要么服务端提供粗粒度和细粒度两种 API,要么只提供一组最细粒度的 API,前者增加了后端的开发量,后者可能会导致一次前端需要多次调用细粒度的 API,才能得到想要的数据。
问题4
不同的客户端设备展示的数据不同,比如网页版能展示的数据更详细一些,APP 展示的数据少,那么也会有“提供一个大而全的接口”还是“为不同的调用方提供不同接口”的问题。
问题5
日志、认证和鉴权、计费、监控等等功能,需要各个后端来完善,或者接入到对应的公共组件中(接入也是需要开发的),这就多多少少增加了后端服务的工作。
API Gateway 就是为了解决以上种种问题的;API Gateway 是系统的唯一入口,它屏蔽掉了系统的内部架构,为调用方定制了统一的 API。
单节点网关
多网关集群
我们可以看到 API Gateway 的作用:
把后端各个服务的 API 聚合起来,提供统一且唯一规范的入口,这样使得内部的架构对于调用方透明,客户端和服务端的耦合度降低;各个后端服务之间,可以采用不同的实现方案,而 API Gateway 会屏蔽掉这些差异;
后端的每个服务也都是在不断迭代和升级的,API Gateway 可以将请求路由到不同的接口版本上,可以实现灰度发布;
API Gateway 可以进行服务编排,实现数据聚合,也就是调用方一次请求,API Gateway 调用多个服务拿到数据后返回;
API Gateway 知道所有服务实例的地址,可以对不同的服务采用不同的路由策略;
日志、认证和鉴权、计费、监控等等功能都可以在 API Gateway 上实现;
API Gateway 还可以对流量进行控制,通过熔断、降级、限流等方式,保护后端服务。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注;关注我后,可私信发送数字【1】,获取海量学习资料。
网关网关,一夫当关万夫莫开。最重要的意义就是为软件系统提供安全保障了,人们往往把API鉴权放到网关上来做,因为这样处理简单高效,而且能够很好的保护后端应用。这样能够很好的控制网络请求,而不必将所有后端服务暴露在外部环境中从而有潜在的安全风险。
其次就是为前端提供了统一的API入口,相当于规范了API路径,这为前后端API对接提供了很大的便利。使得团队开发变得高效。所以说这个网关还是非常重要滴。
Java开发者都知道大名鼎鼎的Spring,可以这样说,目前市面上所需要的功能Spring全家桶(Spring、Spring Boot、Spring Cloud)都提供了完美的解决方案。
Spring Cloud它是基于Spring Boot的一款微服务开发框架,它提供了配置管理、服务发现、熔断器、路由、服务跟踪及治理等微服务开发一整套的解决方案。
微服务技术中的网关(Gateway)>技能/strong>
网关(Gateway)是任何微服务架构中最为重要的一部分,网关就好比是一个门卫,严格把关外来访客与内部微服务之间的沟通联系。其实,网关是微服务对外的唯一入口!外部发起的所有请求都是要经过网关的,由网关来决定不同的请求到不同的微服务程序去处理。
Spring Cloud中的网关>技能/strong>
Spring Cloud中的网关不止一种,Spring Cloud中最早期的网关采用的是Zuul,后来改用了Spring Cloud Gateway。
1、Zuul不是Spring Cloud官方推出的
Zuul网关其实是Netflix开发的,它是阻塞式API,而且不支持长连接和Websocket,所以是有一定缺陷的。
2、Spring Cloud Gateway是用来替代Zuul网关的
Spring 5起就推出了自己的网关:Spring Cloud Gateway。它是基于Spring Boot开发的,性能上比Zuul要好,而且在配置及使用上都要比Zuul更方便。
总结
Spring Cloud Gateway是用来替代Zuul网关的,是由Spring官方开发维护的,无论在性能还是操作上都优于Zuul。在新一代Spring Cloud项目中推荐使用。