小白网-奉贤部落-奉贤免费信息发布平台

查看: 24|回复: 0
打印 上一主题 下一主题

微服务指的是什么(微服务的微是什么)

[复制链接]

2万

主题

2万

帖子

7万

积分

论坛元老

Rank: 8Rank: 8

积分
78182
跳转到指定楼层
楼主
发表于 2025-7-26 12:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
什么是微服务?如今,随着社交媒体的兴起和互联网的快速发展,应用程序变得越来越复杂,需要处理的任务也越来越多。
过去单一的应用已经无法满足日益增长的技术需求。因此,人们迫切需要一种技术架构来解决这些问题,于是微服务架构诞生了。
通过采用微服务架构,人们可以显著提高应用的灵活性和可扩展性。
微服务概述基于微服务的架构有几个独立的单元,它们通过相互协作接收和处理来自各种来源的请求。
这些独立的单元也叫插件,你可以在需要的时候替换和修改它们,但是这些操作不会影响程序的整体工作。
如果您决定实现微服务架构,您应该熟悉应用程序生命周期中的各种问题,如持久性、日志记录、监控、负载平衡、缓存等。此外,您应该知道哪些工具或技术堆栈更适合您的应用程序。
微服务组合DockerDocker是一个开源平台,用于封装和分发应用。它包含应用程序在各种环境中运行所需的库和依赖项。在Docker的帮助下,开发团队可以将应用程序打包到容器中。实际上,Docker是容器化应用程序的工具之一,这意味着没有Docker你也可以创建容器。Docker真正的好处是让这个过程更容易、更安全、更简单。
在你把你的应用容器化之后,你需要一些工具来管理容器化的应用,来做一些手动和自动的操作,比如水平扩展。这些工具为您的应用程序管理提供了一些服务,例如自动负载平衡以确保高服务可用性。
这项服务是通过定义多个管理器节点来完成的。如果一个节点管理器出现故障,其他管理器可以保持应用程序服务可用。
管理docker环境,配置管理,提供环境安全等。这些问题可以通过Docker容器管理工具进行集中和自动化处理。
Gateway API Gateway可以看作是一个API管理工具,充当你的应用服务和不同客户端之间的中间件。
网关可以管理以下内容:
路由:网关接收所有API请求,并将它们转发给目标服务。
日志:统一记录所有请求。
授权:检查用户是否有权访问服务。
性能分析:估计每个请求的执行时间,检查应用程序的瓶颈。
缓存:通过在网关级别处理缓存,可以消除服务上的大量流量。
实际上,负载平衡是一个反向代理。客户端只需要知道你的网关,应用服务可以对外隐藏。例如,如果您想要记录服务的请求和响应。如果您的应用程序由多个服务组成,您的客户端需要知道每个服务地址,并且在更改服务地址的情况下,应该在多个地方更新服务地址。
将能够通过运行更多的服务实例来处理更多的请求,但问题是,哪个实例应该接收请求,或者客户端如何知道哪个服务实例应该处理请求?这些问题的答案是负载平衡。负载平衡意味着在一个服务实例之间共享收入和流量。为了扩展独立的服务,有必要运行多个服务实例。
有了负载平衡器,客户机不需要知道服务的正确实例。
发现随着你的应用服务越来越多,服务之间需要知道彼此的服务实例地址,但这在很多大型应用中是无法处理的。因此,我们需要引入服务发现,它负责提供应用程序中所有组件的实际地址。他们可以很容易地向服务发现服务发送请求,并获得可用的服务实例地址。当您的应用程序中可以有多个服务时,服务发现是您的应用程序的一个基本工具。您的应用程序服务不需要知道每个服务实例地址,这意味着服务发现为您铺平了道路。
在微服务架构模式下,您将使用两种不同类型的通信,同步通信和异步通信。
同步意味着服务通过HTTP调用或GRPC调用相互调用。
异步通信是指服务之间通过消息总线或事件总线进行交互,也就是说服务之间没有直接的连接。
尽管该架构可以同时使用两种通信方法,但我们还需要在服务之间使用GRPC或HTTP调用来获得响应。这些服务通过事件总线相互交互。此外,如果您需要创建一个可以插入新服务以接收一系列特定消息的应用程序,您需要使用事件总线。在事件总线中,常用的工具有RabbitMQ和Kafka。
收集日志使用微服务架构模式时,最好将您的服务日志集中起来。这些日志将用于调试问题或根据日志的类型聚合日志,以便进行分析。在任何需要调试请求的情况下,如果不在一个地方收集服务日志,可能会遇到困难。您还可以将与特定请求相关的日志与唯一的关联ID相关联。这意味着与请求相关的不同服务中的所有日志都可以通过这个关联的Id来访问。工具弹性日志存储。
微服务架构中的监控和告警,如果想拥有一个可靠的应用或服务,就必须对应用的功能、性能、通信等任何方面进行监控,实现一个负责任的应用。为什么需要监控整体功能和服务健康状况?您还需要监控性能瓶颈,并准备一个计划来解决它们。通过在关键点定义服务的早期警报,可以减少服务的停机时间,从而优化用户体验。当服务过载时,监控服务的整体资源消耗,等等。
分布式跟踪调试一直是开发人员最关心的问题之一。单片调试非常简单,但是在微服务架构中,由于一个请求可能会经过不同的服务,这使得调试和跟踪变得困难。因为代码库不在一个地方,所以在这里使用分布式跟踪工具会很有帮助。
如果没有分布式跟踪工具,通过不同的服务跟踪您的请求几乎是不可能的。借助OpenTelemetry、Jeager和Zipkin等工具,可以用丰富的UI演示请求的过程,轻松跟踪请求和事件。
结论微服务是一个非常庞大的技术,需要你了解很多技术栈。刚开始,你可能会很困惑,但没关系。在你充分接触或者使用了一个微服务的架构之后,你会逐渐了解它,知道微服务为什么需要那些技术,因为每一项技术都是为了解决某一项技术而设计的,一切都是恰到好处,不需要过多的设计。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

GMT+8, 2025-8-22 01:59 , Processed in 0.051087 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表