什么是微服务如今随着社交媒体的兴起,互联网的快速发展,应用程序变得越来越复杂,需要处理的任务也越来越多 。
文章插图
过去的单体应用程序已经无法满足日益增进的技术需求 。因此人们迫切地需要一种技术架构来解决这些问题,于是,微服务架构诞生了 。
通过采用微服务架构,人们可以显著地提高应用程序的灵活性、可扩展性 。
微服务总览基于微服务的架构有几个独立的单元,它们通过彼此的协同工作来接收和处理来自各种来源的请求 。
【什么是微服务,如何构建微服务】这些独立的单元也叫作插件单元,你可以在需要的时候对它们进行替换和修改,而这些操作不会影响程序的整体工作 。
文章插图
如果你决定实现一个微服务架构,你应该熟悉应用程序生命周期中的各种关注点,如持久化、日志记录、监控、负载均衡、缓存等,此外你应该知道哪些工具或哪些技术栈更适合您的应用程序 。
微服务构成DockerDocker 是一个开源平台,用于应用程序进行打包分发,其中包含应用程序在各种环境中运行所需的库和依赖项 。在Docker的帮助下,开发团队可以将应用程序打包成容器 。实际上,Docker是容器化应用程序的工具之一,这意味着你也可以不使用Docker来创建容器,Docker的真正好处是使这个过程更轻松、更安全、更简单 。
文章插图
在你容器化你的应用之后,你需要一些工具来管理容器化的应用来做一些手动和自动化的操作,比如水平扩展 。这些工具为你的应用管理提供一些服务,比如自动负载均衡,保证高服务可用性 。
这种服务通过定义多个管理器节点来完成,如果一个节点管理器出现任何故障,其他管理器可以保持应用程序服务可用 。
管理 Docker 环境、配置管理、提供环境安全等,这些问题可以通过 docker 容器管理工具集中自动化 。
API 网关API 网关可以被视为一种 API 管理工具,它充当您的应用程序服务和不同客户端之间的中间件 。
API 网关可以管理下面这些事情:
路由:网关接收所有 API 请求并将它们转发到目标服务 。
日志记录:统一记录所有请求 。
授权:检查用户是否有权限访问该服务 。
性能分析:估计每个请求的执行时间并检查您的应用程序瓶颈 。
缓存:通过在网关级别处理缓存,可以消除服务上的大量流量 。
负载均衡实际上,它是作为反向代理工作的,客户端只需要知道你的网关,应用服务就可以实现对外隐藏 。例如,如果您想记录服务的请求和响应 。如果您的应用程序由多个服务组成,您的客户端需要知道每个服务地址,并且在更改服务地址的情况下,应该更新多个地方 。
文章插图
将能够通过运行更多的服务实例来处理更多的请求,但问题是,哪个实例应该接收请求或者客户端如何知道哪个服务实例应该处理请求吗?这些问题的答案是负载平衡 。负载均衡意味着在一个服务实例之间共享收入流量 。为了扩展独立服务,需要运行多个服务实例 。
使用负载均衡器,客户端不需要知道服务的正确实例 。
服务发现随着你的应用服务数量越来越多,服务需要知道彼此的服务实例地址,但是这在很多的大型应用程序中,这是无法处理的 。所以我们需要引入服务发现,它负责提供应用中所有组件的实际地址,它们可以轻松地向服务发现服务发送请求并获取可用的服务实例地址 。当你的应用中可以有多个服务时,服务发现是一个您的应用程序的必备工具 。您的应用程序服务不需要知道每个服务实例地址,这意味着服务发现为您铺平了道路 。
事件总线在微服务架构模式中,您将使用两种不同类型的通信,同步和异步通信 。
同步通信意味着服务通过 HTTP 调用或 GRPC 调用相互调用 。
文章插图
异步通信意味着服务通过消息总线或事件总线相互交互,这意味着服务之间没有直接连接 。
虽然架构可以同时使用两种通信方式,但同时我们也需要服务之间使用 GRPC 或 HTTP 调用来获取响应 。这些服务通过事件总线相互交互 。此外,如果您需要创建一个能够插入新服务以接收一系列特定消息的应用程序,则需要使用事件总线 。在事件总线中,常用的工具有 RabbitMQ、Kafka 。
推荐阅读
- Vlookup公式出错,找了半天,发现是数据隐藏了
- 怀孕可以吃大麦茶吗?怀孕吃什么比较好
- 怀孕可以吃酱黄瓜吗?怀孕吃什么比较好
- 怀孕可以吃儿童奶粉吗?怀孕吃什么比较好
- 怀孕可以吃泡芙吗?怀孕吃什么比较好
- 怀孕可以吃脱脂牛奶吗?怀孕吃什么比较好
- 怀孕可以吃麻雀吗?怀孕吃什么比较好
- 怀孕可以吃荷花吗?怀孕吃什么比较好
- 怀孕可以吃早餐奶吗?怀孕吃什么比较好
- 怀孕可以吃红肠吗?怀孕吃什么比较好