微服务架构:微服务架构是一种软件架构风格,将一个复杂的应用拆分为多个服务模块,每一个模块负责单一的业务功能对外服务,而且能够单独编译部署。每一个模块单独部署,模块之间没法直接通讯,因此须要借助RPC(远程过程通讯协议)或者经过HTTP协议让模块之间进行通讯。dubbo 是一套微服务系统的协调者。运用dubbo时将dubbo的jar引入项目中而后项目初始化的时候就会将当前系统须要发布的服务以及当前系统的IP和端口号发送给注册中心;以及描述当前系统所须要的服务,而后向注册中心请求这些服务所在的IP和端口号。html
分布式:将以一个业务拆分为多个子业务,部署在不一样的服务器上。分布式和微服务是同样的。后端
集群:分布式是以缩短单个任务的执行时间来提高效率,集群是经过单位时间内执行的效率来提升效率的,集群的每台服务器上部署的是一样的服务,他是有组织性的,一台服务器崩了,其余服务器能够顶上来。而分布式的每一个节点都完成不一样的功能,若是一个节点崩了则此服务器的服务没法访问,因此最好就是分布式+集群部署。浏览器
负载均衡:负载均衡其实就是集群的前置。集群部署完后,须要一台服务器充当调度者角色,用户的全部请求首先被此调度者服务器接收,而后根据每台服务器的负载状况分发请求。服务器
<HTTP重定向实现负载均衡>当用户请求某个服务时,请求首先被调度者服务器截获,而后根据某种策略选择集群中的一台服务器,将其的IP地址封装在HTTP响应信息的location字段中,并将响应消息状态码设置为302,而后将响应信息返回给浏览器。架构
http状态返回代码 1xx(临时响应) 表示临时响应并须要请求者继续执行操做的状态代码。负载均衡
http状态返回代码 2xx (成功) 表示成功处理了请求的状态代码。分布式
http状态返回代码 3xx (重定向) 表示要完成请求,须要进一步操做。 一般,这些状态代码用来重定向。微服务
http状态返回代码 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 网站
http状态返回代码 5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误多是服务器自己的错误,而不是请求出错。详情<https://www.cnblogs.com/dekui/p/7801289.html>ui
<DNS负载均衡>咱们提交的请求不会直接发送给想要访问的网站,而是首先发送给域名服务器,会将其解析为IP地址而后返回,若是一个域名指向了多个IP地址每次域名解析时,DNS只要选一个IP返回便可。本地计算机就是有一个DNS域名解析器,首先如今本地查找,若是找不到再向远程DNS服务器发送须要解析的域名。
<反向代理负载均衡>反向代理服务器位于实际服务器之间的服务器,全部请求首先通过反向代理服务器,服务器根据请求要么直接返回结果,要峨眉将请求交给其余后端服务器。