微服务分布式系统架构之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去请求其他的服务。也是保证整个服务的安全。

相关文章
|
4月前
|
监控 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注册中心服务 构建商品
806 3
|
8月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
297 5
|
3月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
11月前
|
存储 缓存 NoSQL
分布式系统架构8:分布式缓存
本文介绍了分布式缓存的理论知识及Redis集群的应用,探讨了AP与CP的区别,Redis作为AP系统具备高性能和高可用性但不保证强一致性。文章还讲解了透明多级缓存(TMC)的概念及其优缺点,并详细分析了memcached和Redis的分布式实现方案。此外,针对缓存穿透、击穿、雪崩和污染等常见问题提供了应对策略,强调了Cache Aside模式在解决数据一致性方面的作用。最后指出,面试中关于缓存的问题多围绕Redis展开,建议深入学习相关知识点。
760 8
|
7月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
2430 57
|
9月前
|
消息中间件 人工智能 监控
文生图架构设计原来如此简单之分布式服务
想象一下,当成千上万的用户同时要求AI画图,如何公平高效地处理这些请求?文生图/图生图大模型的架构设计看似复杂,实则遵循简单而有效的原则:合理排队、分工明确、防患未然。
358 14
文生图架构设计原来如此简单之分布式服务
|
7月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
370 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
1044 69
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
9月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
811 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
3314 36
微服务架构解析:跨越传统架构的技术革命

热门文章

最新文章