一、网关是什么?作用是什么?
1、概念:
网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连设备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。
2、作用:
主要作用就是进行协议转换,不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。
3、原理:
从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway) [1] 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。
二、什么是SpringCloud熔断?
1、雪崩效应:
“雪崩效应"就是单个服务节点出现问题会造成大面积的服务节点出现异常,为了解决这种问题出现了"熔断机制”。
2、熔断机制是为了解决雪崩效应而出现的:
Spring Cloud 采用Hystrix 组件的 Circuit Breaker 去做熔断器。
熔断器的机制就是当服务A出现问题时,请求次数超过阈值会关闭服务A直接返回失败信息。这样服务B和C及其依赖的服务还可以正常运行。
此外熔断器提供自我修复机制,服务器A在熔断一段时间后会自动重启并且重新发送部分请求,若部分请求没有问题会继续发送剩余请求。最后熔断器会提供服务监控功能。
三、SpringBoot的存储过程:
存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
直白点就是,本该在service层完成的逻辑操作,直接放到数据库内完成了。
好处:减少了与数据进行连接完成操作的过程,提高了执行效率
缺点:增加了数据库的负担,且移植性较差
四、Https和http协议?
1、http协议:
超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据,互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP的初衷是为了提供一种发布和接收HTML页面的方法。
2、https协议:
HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
3、SSL协议:
SSL(Secure Socket Layer)安全套接层是Netscape公司率先采用的网络安全协议。它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术。SSL广泛支持各种类型的网络,同时提供三种基本的安全服务,它们都使用公开密钥技术。
4、TCP/IP协议:
TCP/IP传输协议,即传输控制/网络协议,也叫作网络通讯协议。它是在网络的使用中的最基本的通信协议。TCP/IP传输协议对互联网中各部分进行通信的标准和方法进行了规定。并且,TCP/IP传输协议是保证网络数据信息及时、完整传输的两个重要的协议。TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。
五、JSON:
1、JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。
2、JSON 与 JS 对象的关系:
很多人搞不清楚 JSON 和 JS 对象的关系,甚至连谁是谁都不清楚。其实,可以这么理解:
JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。
如:
var obj = {a: 'Hello', b: 'World'}; | //这是一个对象,注意键名也是可以使用引号包裹的 |
var json='{"a": "Hello", "b": "World"}'; | //这是一个 JSON 字符串,本质是一个字符串 |
六、Java设计模式:
1、单例模式:
概念:一个类有且只有一个实例,并且自行实例化向整个系统提供。
(1)饿汉式:
指全局的单例实例在类装载时就构建。
特点:类加载时就初始化,线程安全。
// 构造方法私有化 private Singleton() { } // 饿汉式创建单例对象 private static Singleton singleton = new Singleton(); public static Singleton getInstance() { return singleton; } |
(2)饱汉式:
只有用到这个单例实例时才创建。
特点:第一次调用才初始化,避免内存浪费。
/* * 懒汉式创建单例模式 由于懒汉式是非线程安全, 所以加上线程锁保证线程安全 */ private static Singleton singleton; public static synchronized Singleton getInstance() { if (singleton == null) { singleton = new Singleton(); } return singleton; } |
2、工厂模式:
用工厂方法代替了new对象的操作。在new一个对象的时候直接调用工厂方法就行了。实现工厂接口,再由工厂类调用工厂方法创建实例。