微服务分布式系统架构之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
管理 Spring 微服务中的分布式会话
在微服务架构中,管理分布式会话是确保用户体验一致性和系统可扩展性的关键挑战。本文探讨了在 Spring 框架下实现分布式会话管理的多种方法,包括集中式会话存储和客户端会话存储(如 Cookie),并分析了它们的优缺点。同时,文章还涵盖了与分布式会话相关的安全考虑,如数据加密、令牌验证、安全 Cookie 政策以及服务间身份验证。此外,文中强调了分布式会话在提升系统可扩展性、增强可用性、实现数据一致性及优化资源利用方面的显著优势。通过合理选择会话管理策略,结合 Spring 提供的强大工具,开发人员可以在保证系统鲁棒性的同时,提供无缝的用户体验。
100 0
|
5月前
|
监控 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注册中心服务 构建商品
1019 3
|
3月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
9月前
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
345 5
|
4月前
|
消息中间件 缓存 监控
中间件架构设计与实践:构建高性能分布式系统的核心基石
摘要 本文系统探讨了中间件技术及其在分布式系统中的核心价值。作者首先定义了中间件作为连接系统组件的"神经网络",强调其在数据传输、系统稳定性和扩展性中的关键作用。随后详细分类了中间件体系,包括通信中间件(如RabbitMQ/Kafka)、数据中间件(如Redis/MyCAT)等类型。文章重点剖析了消息中间件的实现机制,通过Spring Boot代码示例展示了消息生产者的完整实现,涵盖消息ID生成、持久化、批量发送及重试机制等关键技术点。最后,作者指出中间件架构设计对系统性能的决定性影响,
|
8月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
3009 57
|
6月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
395 0
|
8月前
|
消息中间件 缓存 算法
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
579 0
分布式开发:数字时代的高性能架构革命-为什么要用分布式?优雅草卓伊凡
|
10月前
|
并行计算 PyTorch 算法框架/工具
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践
本文探讨了如何通过技术手段混合使用AMD与NVIDIA GPU集群以支持PyTorch分布式训练。面对CUDA与ROCm框架互操作性不足的问题,文章提出利用UCC和UCX等统一通信框架实现高效数据传输,并在异构Kubernetes集群中部署任务。通过解决轻度与强度异构环境下的挑战,如计算能力不平衡、内存容量差异及通信性能优化,文章展示了如何无需重构代码即可充分利用异构硬件资源。尽管存在RDMA验证不足、通信性能次优等局限性,但该方案为最大化GPU资源利用率、降低供应商锁定提供了可行路径。源代码已公开,供读者参考实践。
953 3
融合AMD与NVIDIA GPU集群的MLOps:异构计算环境中的分布式训练架构实践

热门文章

最新文章