好了话不多说,直接上干货
1.相关概念
1.什么是集群?
计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多
集群:同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事)
2.什么是负载均衡?
负载均衡(Load Balancing)是指将网络流量分散到多个服务器上进行处理,以提高系统的可用性、容错性和抗压能力的一种技术。
在高并发的Web应用中,单台服务器往往无法承受高负载的请求,容易出现火灾、宕机等情况,因此使用负载均衡可以将请求发送到不同的服务器上,使得每台服务器被分担一部分负载,增加了系统的吞吐量和容错能力。
常见的负载均衡算法有轮询法、随机法、加权轮询法、加权随机法等。轮询法是指按照顺序依次分配请求到不同服务器,随机法是指随机分配请求到不同的服务器,加权轮询法是指按照服务器的权重来分配请求,加权随机法是指随机分配请求到不同的服务器,但是每台服务器的请求处理量与其权重成正比。
负载均衡有硬件负载均衡和软件负载均衡两种实现方式。以软件负载均衡来说,常见的有Nginx、HAProxy、LVS、Keepalived等开源软件。而在应用开发中,也可以使用Spring Cloud Gateway或Spring Cloud LoadBalancer等框架来实现负载均衡的功能。
3.什么是分布式?
分布式:一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的
4.集群和分布式的区别,分别解决什么问题?
分布式:一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的),集群是不同服务器运行相同的代码
分布式的好处:
- 资源利用率更合理
- 代码耦合度降低,模块之间独立,便于扩展和复用
- 高吞吐量,某个任务在一台机器上可能要10小时,用10台机器分布式运行可能只需要2小时
集群的优点
- 通过多台计算机完成同样的任务,达到更高的效率——就比如我一台Redis最多允许同时处理100个请求,要同时处理200个请求,加多一台Redis实例即可
- 两台或多台机器的内容和工作过程完全一样,如果有一台死机,那么另一台可以接替它的工作
5.说一下你理解的微服务?
将一个单体项目细粒划分为多个服务,微服务可以用多个数据库和语言
微服务(Microservices)是一种架构风格,它将单个应用程序划分为一组小的服务,每个服务运行在其独立的进程中,并使用轻量级通信机制(如 HTTP API )相互通信。每个微服务都应具有清晰的业务功能,可以独立地部署、升级和扩展。
微服务架构的优点在于:
1. 高可扩展性:单个服务实例可以水平扩展,实现整个体系的快速、简单且可靠的扩展。
2. 高可维护性:所有服务都被隔离在独立的运行环境里,所以更容易理解和维护。
3. 独立部署:每个微服务都可以独立部署,可以对其单独进行调整,不需要整个应用程序的重新部署。
4. 技术多样性:由于微服务架构强调松散耦合,因此可以使用多种技术来实现各自的服务,提高了系统的弹性和可靠性。
5. 更好的可扩展性:微服务架构使得团队可以以更小的单位快速进行开发、验证和发布。
6. 更好的适应性:微服务架构可以更好的适应不同的开发团队和组织分割,适用于分布式开发和管理的环境。
微服务的缺点包括:
1. 分布式系统开发的额外复杂性:在一个微服务架构中&