微服务加厚风格,像把一个单独的应用程序开发为一套小程序,每个小程序运行在自己的进程中,使用轻量级机制通信,通常是http Api,这些服务围绕业务能力构件,通过完全自动化独立部署,这些微服务使用不同的语言,以及不同的存储技术,保持最低的集中式管理。
集群与分布式
集群是个物理形态,分布式是个工作方式。
只要是一堆机器,就可以叫集群,他们不是一起写作干活
《分布式系统原理与规范》
分布式是若干独立于计算机的集合,这些计算机对于用户说单个相关系统。
分布式是建立在网络之上的软件系统。
分布式是将不同的业务分布在不同的地方。
集群是将几台服务器集中在一起,实现同一业务。
分布式中每一个节点都可以是集群,集群不一定是分布式
远程调用
不同服务需要互相调用,成为远程调用
springcloud 使用 http +json完成远程调用
4.负载均衡
常见算法3种
轮询:为第一个请求选择健康池中的第一个后端服务器,然后按顺序往后依次选择,直到最后一个,然后循环。
最小连接:优先选择连接数最少,也就是压力最小的后端服务器,在回话长的情况下可以考虑采用方式。
散列:根据请求员的ip的散列选择转发的服务器。可以一定程度保证用户连接到相同的服务器。
如果应用需要处理状态而且要求用户连接到之前相同的服务器,可以采用着种方式。
服务雪崩
请求挤压
当一个服务不可用时,同时有大量的服务过来,导致志愿耗尽,整个服务不可用。
服务熔断
设置服务的超时,当被调用的服务经常失败打到某个取值,我们可以开启服务短路保护,后来的请求不再去调用这个服务。本地直接返回默认的数据。
服务降级
在运维期间,当系统处于高峰期,系统资源今年张,我们可以让非核心降级运行,某些服务不处理,或者简单处理【抛异常,返回null,调用mock数据,调用fallback处理逻辑】
API网关
在微服务架构中,api gateway 作为整体架构的重要组件,抽象了微服务中都需要的公共功能,同时丰富了客户端负载均衡,服务自动熔断,灰度发布,统一认证,限流控制,日志统计等功能,解决很多api管理问题。