微服务分布式系统架构之zookeeper与dubbo-2

简介: 微服务分布式系统架构之zookeeper与dubbo-2

一、微服务核心基础知识

简介:网关,服务发现注册,配置中心,链路追踪,负载均衡器,熔断

①、网关:路由转发+过滤器

      /api/v1/product/                 商品服务

      /api/v1/order/                     订单服务

      /api/v1/user/                       用户服务

网关最主要的作用是路由的转发,和充当过滤器的功能。

路由:用户的请求来到网关层的这边,然后由网关层去决定调用哪个服务。

过滤器:比如某个服务是需要登录的,比如用户服务/订单服务,因为它要下订单。

②、服务注册发现:调用和被调用方的信息维护

在上面的图中,比如有四个服务a,b,c,d,由网关路由到a,b,c,但是服务c调用服务d。由网关是很难配置管理这几个服务的,这时就有服务注册发现组件的产生。这时由网关请求服务注册中心。服务在启动的时候就向服务注册中心中去注册,把信息和ip地址等等都注册上去。这时网关就不会自己去实现一些复杂的调用关系。

这时网关从服务注册中心上去拿到服务的一些注册的信息,就可以根据一些信息就找到相对应的服务。这样就方便很多。

如果某一个时刻服务a不可用了,这时服务注册中心就可以告诉网关这个服务a不能用了,就可以告诉网关去找服务a一样的服务了,这样就很方便了。

③、配置中心:主要用于应用里面的一些配置。(application.properties)

      主要功能:管理配置,动态更新

因为服务是比较多的,比如上面的5个服务,或者几十个服务,如果配置一多,如果修改了一个服务的配置,这个配置是这些个服务都用的上的,如果是逐一修改的话不是很现实的,这个时候就引入了配置中心,动态的刷新。

④、链路追踪:分析调用链路耗时

比如:下单->查询商品服务获取商品的价格->查询用户信息->保存数据库

获取整一个链路的耗时。可以分析哪个服务的时间耗时长,然后从而进行优化。

⑤、负载均衡器:分发负载,分发一些请求

比如nginx做负载均衡器,比如瞬间有几百个请求到网关这一边,然后由网关负载到不同的服务,这时就会出现一个服务对应不同的服务实例。以防所有的请求就只到一个服务实例上,从而宕机。

⑥、熔断:保护自己和被调用方

在下面的图中,服务a需要服务b提供的服务,以此类推,服务c需要服务d提供的服务。从而形成一个链路。


如果服务d宕机的话,就会影响服务c,从而会影响服务a,这时就会出现雪崩的效应。


熔断的作用就是在服务d不能够提供服务的时候就给它干掉。让服务c去请求其他的服务。也是保证整个服务的安全。

相关文章
|
5月前
|
存储 安全 Java
管理 Spring 微服务中的分布式会话
在微服务架构中,管理分布式会话是确保用户体验一致性和系统可扩展性的关键挑战。本文探讨了在 Spring 框架下实现分布式会话管理的多种方法,包括集中式会话存储和客户端会话存储(如 Cookie),并分析了它们的优缺点。同时,文章还涵盖了与分布式会话相关的安全考虑,如数据加密、令牌验证、安全 Cookie 政策以及服务间身份验证。此外,文中强调了分布式会话在提升系统可扩展性、增强可用性、实现数据一致性及优化资源利用方面的显著优势。通过合理选择会话管理策略,结合 Spring 提供的强大工具,开发人员可以在保证系统鲁棒性的同时,提供无缝的用户体验。
114 0
|
6月前
|
监控 Java API
Spring Boot 3.2 结合 Spring Cloud 微服务架构实操指南 现代分布式应用系统构建实战教程
Spring Boot 3.2 + Spring Cloud 2023.0 微服务架构实践摘要 本文基于Spring Boot 3.2.5和Spring Cloud 2023.0.1最新稳定版本,演示现代微服务架构的构建过程。主要内容包括: 技术栈选择:采用Spring Cloud Netflix Eureka 4.1.0作为服务注册中心,Resilience4j 2.1.0替代Hystrix实现熔断机制,配合OpenFeign和Gateway等组件。 核心实操步骤: 搭建Eureka注册中心服务 构建商品
1077 3
|
7月前
|
人工智能 Kubernetes 数据可视化
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
本文回顾了一次关键词监测任务在容器集群中失效的全过程,分析了中转IP复用、调度节奏和异常处理等隐性风险,并提出通过解耦架构、动态IP分发和行为模拟优化采集策略,最终实现稳定高效的数据抓取与分析。
132 2
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
|
4月前
|
缓存 Cloud Native 中间件
《聊聊分布式》从单体到分布式:电商系统架构演进之路
本文系统阐述了电商平台从单体到分布式架构的演进历程,剖析了单体架构的局限性与分布式架构的优势,结合淘宝、京东等真实案例,深入探讨了服务拆分、数据库分片、中间件体系等关键技术实践,并总结了渐进式迁移策略与核心经验,为大型应用架构升级提供了全面参考。
|
4月前
|
负载均衡 Java API
《深入理解Spring》Spring Cloud 构建分布式系统的微服务全家桶
Spring Cloud为微服务架构提供一站式解决方案,涵盖服务注册、配置管理、负载均衡、熔断限流等核心功能,助力开发者构建高可用、易扩展的分布式系统,并持续向云原生演进。
|
10月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
369 5
|
4月前
|
存储 NoSQL 前端开发
【赵渝强老师】MongoDB的分布式存储架构
MongoDB分片通过将数据分布到多台服务器,实现海量数据的高效存储与读写。其架构包含路由、配置服务器和分片服务器,支持水平扩展,结合复制集保障高可用性,适用于大规模生产环境。
396 1
|
5月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
8月前
|
监控 算法 关系型数据库
分布式事务难题终结:Seata+DRDS全局事务一致性架构设计
在分布式系统中,CAP定理限制了可用性、一致性与分区容错的三者兼得,尤其在网络分区时需做出取舍。为应对这一挑战,最终一致性方案成为常见选择。以电商订单系统为例,微服务化后,原本的本地事务演变为跨数据库的分布式事务,暴露出全局锁失效、事务边界模糊及协议差异等问题。本文深入探讨了基于 Seata 与 DRDS 的分布式事务解决方案,涵盖 AT 模式实践、分片策略优化、典型问题处理、性能调优及高级特性实现,结合实际业务场景提供可落地的技术路径与架构设计原则。通过压测验证,该方案在事务延迟、TPS 及失败率等方面均取得显著优化效果。
455 61
|
9月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
3182 57