分布式和微服务区别
分布式与微服务:两种技术的不同点 分布式系统侧重于将不同功能模块分散部署在多台机器上,强调系统整体的协调和合作;而微服务则侧重于将系统划分为多个小型、独立的服务,注重服务的解耦和灵活扩展。分布式系统主要强调的是整体的服务协同,而服务的个体往往在物理层面上是不同的计算机或者集群节点。
作用不同:分布式系统是若干独立计算机的集合,这计算机对用户来说就像单个相关系统。也就是说分布式系统背后是由一系列的计算机组成的,但用户感知不到背后的逻辑,就像访问单个计算机一样。
从概念理解,分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。区别分布式的方式是根据不同机器不同业务。
分布式架构是将系统划分为多个部分,每个部分运行在不同的计算机或服务器上。这种架构可以解决单一服务器负载过大的问题,通过将任务分配给多个节点来完成。分布式架构提高了系统的可扩展性和可靠性,可以灵活地处理大量数据和高并发请求。
聊聊集群、分布式和微服务之间的联系和异同点
集群与分布式的主要区别在于部署方式和效率提升方式:集群通过负载均衡分担任务,分布式则通过缩短单个任务执行时间;集群关注整体的并发处理,分布式则强调任务的独立执行。微服务架构则是在分布式基础上的进一步拆分,每个微服务独立部署,粒度更小,提供了更高的灵活性和敏捷性。
集群内的Consul节点通过gossip协议(流言协议)维护成员关系,也就是说某个节点了解集群内现在还有哪些节点,这些节点是Client还是Server。单个数据中心的流言协议同时使用TCP和UDP通信,并且都使用8301端口。跨数据中心的流言协议也同时使用TCP和UDP通信,端口使用8302。
分布式ID的引入是为了应对大数据量和分表后可能出现的ID冲突问题。它保证了全局的唯一性,是互联网企业处理数据增长的必要手段。在分布式ID生成策略方面,可以采用分布式哈希函数或时间戳加分布式序列号等方式。RPC,即远程过程调用,解决了不同服务间高效通信的需求,它简化了服务间的通信过程,提高了效率。
集群流控往往体现出集群性能的不足,集群抖动也会引发客户端发送超时。通过采集集群中每个节点心跳耗时情况、集群写入Tps水位的变化率来掌握集群是否稳定。 场景三 集群的高可用 高可用主要针对极端场景中导致某个可用区不可用、或者集群上某些主题和消费组异常需要有一些针对性的措施。
这样有两种选择: 集群模式 :如果B和C都擅长炒菜,那么让B和C都去炒菜。改善点是提高了效率,任何一个厨师辞职都不会影响学生就餐。缺点就是精力不能完全用在专业的领域,因为他们都还需要洗菜、切菜。分布式系统 :如果B擅长洗菜,C擅长切菜,那么让B负责洗菜,C负责切菜,A只负责炒菜。
三分钟彻底弄懂什么是分布式和微服务架构
微服务架构是一种现代软件设计模式,它将单一应用程序分解为一组小型、独立的服务,每个服务专注于特定业务功能,通过轻量级通信机制协作。微服务架构的起源可以追溯到互联网时代,从分布式到SOA架构的演变,服务不断细化,最终形成微服务架构。
微服务是一种软件架构模式,其以独立的小型服务为基本单位构建应用系统。这种架构风格强调的是通过组合一系列独立服务来构建应用,每个服务都运行在自己的进程中,通过轻量级通信机制进行交互。其核心目标是确保系统的高度可伸缩性、可维护性和可扩展性。
分层架构如四层结构,通过分隔职责降低系统复杂度,但可能限制扩展性。事件驱动架构利用发布/订阅模型处理异步通信,适用于大规模应用。MVC架构通过模型、视图和控制器分离,提高代码重用和灵活性,但可能导致结构复杂和视图与控制器依赖过强。