首页 > 技术文章 > 微服务 分布式 集群 负载均衡

KL2016 2019-07-11 23:26 原文

      微服务架构:微服务架构是一种软件架构风格,将一个复杂的应用拆分为多个服务模块,每个模块负责单一的业务功能对外服务,并且可以单独编译部署。每个模块单独部署,模块之间无法直接通信,所以需要借助RPC(远程过程通信协议)或者通过HTTP协议让模块之间进行通信。dubbo 是一套微服务系统的协调者。运用dubbo时将dubbo的jar引入项目中然后项目初始化的时候就会将当前系统需要发布的服务以及当前系统的IP和端口号发送给注册中心;以及描述当前系统所需要的服务,然后向注册中心请求这些服务所在的IP和端口号。

       分布式:将以一个业务拆分为多个子业务,部署在不同的服务器上。分布式和微服务是一样的。

      集群:分布式是以缩短单个任务的执行时间来提升效率,集群是通过单位时间内执行的效率来提高效率的,集群的每台服务器上部署的是同样的服务,他是有组织性的,一台服务器崩了,其他服务器可以顶上来。而分布式的每个节点都完成不同的功能,如果一个节点崩了则此服务器的服务无法访问,所以最好就是分布式+集群部署。

     负载均衡:负载均衡其实就是集群的前置。集群部署完后,需要一台服务器充当调度者角色,用户的所有请求首先被此调度者服务器接收,然后根据每台服务器的负载情况分发请求。

<HTTP重定向实现负载均衡>当用户请求某个服务时,请求首先被调度者服务器截获,然后根据某种策略选择集群中的一台服务器,将其的IP地址封装在HTTP响应信息的location字段中,并将响应消息状态码设置为302,然后将响应信息返回给浏览器。

http状态返回代码 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。

http状态返回代码 2xx (成功) 表示成功处理了请求的状态代码。

http状态返回代码 3xx (重定向) 表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

http状态返回代码 4xx(请求错误) 这些状态代码表示请求可能出错,妨碍了服务器的处理。 

http状态返回代码 5xx(服务器错误) 这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。详情<https://www.cnblogs.com/dekui/p/7801289.html>

<DNS负载均衡>我们提交的请求不会直接发送给想要访问的网站,而是首先发送给域名服务器,会将其解析为IP地址然后返回,如果一个域名指向了多个IP地址每次域名解析时,DNS只要选一个IP返回即可。本地计算机就是有一个DNS域名解析器,首先现在本地查找,如果找不到再向远程DNS服务器发送需要解析的域名。

<反向代理负载均衡>反向代理服务器位于实际服务器之间的服务器,所有请求首先经过反向代理服务器,服务器根据请求要么直接返回结果,要峨眉将请求交给其他后端服务器。

推荐阅读