一、目前所有的企业都开始拥抱微服务的架构模式
saas化:Software As A Serrvice 软件即服务
pass化:Platform As A Service 平台即服务
架构体系:单体架构、SOA面向服务的架构、分布式架构、微服务架构
协议: web1.0、web2.0、移动互联网
二、http:“超文本传输协议”
1997年发布的HTTP/1.1的版本是目前比较主流的HTTP的版本
目前HTTP最新的版本是:HTTP/1.1
手机归属地使用版本:http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
三、微服务的架构通信模式使用的方法有两种
1)一种是采用基于REST API的轻量级的基于HTTP的协议
2)使用的是gRPC的协议
异步模式、同步模式
数据传输:文字和声音,也有其他的方式
四、TCP/IP分层管理
TCP/IP协议按层次主要为:应用层、传输层、网络层、数据链路层
1)应用层:应用层决定了向用户提供应用服务时通信的活动。而HTTP的协议和gRPC的协议就是属于应用层的协议
2)传输层:应用层的下层是网络传输层,提供处于网络连接的两台计算机之间的数据传输
3)网络层:主要是用来处理网络上流动的数据包,所谓数据包就是网络传输中的最小单位,在该层协议中,规范通过怎样的路径到达目标计算机,并且把数据包传送给对方
4)链路层:主要是处理链接网络的硬件部分。如操作系统,硬件设备的驱动等
websocket协议:客户端与服务端始终保持持久连接,不会断开
物联网:互联网技术的深度发展,互联网使用的协议都是websocket的协议
协议:http、websocket(持久连接)、gRPC(流式stream的数据)
传输层:核心的协议就是TCP/IP的协议
TCP/IP通信传输流
五、三次握手
为什么会有三次握手的设计?
应用层的协议是为了上层应用之间的交互,但是不需要关注底层网络传输层之间的事情,那么问题来了?应用层既然不关注网络传输层的事情,网络传输层怎么保障应用层之间数据的传输?所以为了数据传输的安全和保障,就设计了三次握手
1)服务端的确认:客户端发送数据出去,服务端需要确认我收到了
2)服务端反馈:服务端告诉客户端,你发送的数据我这边确认收到了
3)客户端确认:客户端需要向服务端再次反馈,客户端收到服务端的反馈了
如:在公司里面,当你说的话别人无法理解,一定是你的沟通有问题,也就是描述有问题
URI可以称为统一资源标识符,而URL是统一资源定位符。URI可以理解为标识某一个互联网的资源,而URL表示资源的地点
HTTP是应用层的协议
在微服务的架构模式下,使用的也是轻量级的通信模式(REST API),在微服务的架构模式中,需要清楚的是它的通信模式可以分为同步通信模式和异步通信模式,或者更加具体本质的说就是请求/响应和异步请求/响应(发布/订阅模式)
双方指的是:客户端与服务端
REST API
Java:企业级开发领域具备非常强大的生命力,开发的技术栈非常完善,其中阿里的生态开发语言基本是Java
python:数据分析,数据科学领域非常具备优势
Go:容器化的语言,应用在Docker和K8S的开发
PHP:轻量级的语言
Net:微软系列
三个语言开发,但是之间需要通信,需要数据传输,标准化就是REST API,使用统一的标准来进行交互
HTTP完整的请求流程:
使用chrome浏览器怎么查看网络请求
发送Requests:请求地址、请求方法、请求头、请求参数(可能有,也可能没有)
Response回复:协议状态码、响应数据、响应头
浏览器输入百度网址,右键点击检查,选择Network,点击清空键,刷新网址,查看页面显示网址信息,在Headers中查看
六、通信模式
1、同步通信
客户端发送请求给服务端,服务端必须回应客户端的请求
缺点:1)容易超时,客户端发送请求后,服务端迟迟没有回应客户端的请求
2)如果请求时存在大的计算量和逻辑存在问题,就会导致请求堵塞,后面的都挤压
同步通信又可以说是请求/响应的模式
2、异步通信
在异步的交互中,客户端和服务端互相不需要关注对方的存在,只需要关注对应的MQ的消息,客户端与服务端的交互主要是会通过MQ的消息中间作为消息的传递来进行交互的
MQ:RabbitMQ,Kafka(linkyin),ActivityMQ(alibaba)
所有的MQ都可以说是队列机制,也可以说是生产者消费者的模式。
所谓的队列机制,遵守先进先出的规则
生产者消费者模式:生产后,基于进行快速的消费