服务形式是什么意思(您了解微服务及其设计模式吗?)

Posted

篇首语:好好学习,天天向上。本文由小常识网(cha138.com)小编为大家整理,主要介绍了服务形式是什么意思(您了解微服务及其设计模式吗?)相关的知识,希望对你有一定的参考价值。

服务形式是什么意思(您了解微服务及其设计模式吗?)

大家好。在本文中,我们将了解微服务架构 以及它与单体应用程序的区别。然后我们将了解什么是微服务设计模式和不同的类型。然后我们将了解微服务架构的优点和缺点来结束本文。让我们开始吧

什么是微服务?

微服务是一种架构风格,用于开发作为单独服务运行的软件应用程序,这些服务通过以下方式相互通信

  1. 使用 API 调用的同步通信
  2. 通过发布和订阅/基于事件的机制进行异步通信——即使用消息队列

这些微服务具有以下属性

  • 可独立部署
  • 高度可扩展的负载
  • 可以使用多种编程语言进行开发——即多语言
  • 松耦合
  • 围绕业务领域组织
  • 由小型独立团队拥有
  • 高度可维护和可测试
  • 通过自动化 CICD 管道持续交付和更快的上市时间
  • 故障恢复能力

使用微服务架构,我们可以实现大型复杂应用程序的快速开发和交付,即上市时间

单体与微服务

在传统的单体架构中,整个应用程序紧密耦合到单个代码库中,使其紧密耦合。在连接到单个数据库的单个代码库中,将有不同的层,如表示、业务逻辑和数据库持久性。这个应用程序构建为一个单一的 fat jar,其中包含类文件和运行它所需的所有依赖项。

虽然 Monolithic 应用程序非常容易构建、测试和部署,但它面临着各种挑战,如紧耦合和可扩展性。单个模块不能在负载上单独缩放,因此我们需要使用称为垂直缩放的技术再次缩放整个应用程序。Monolith 应用程序也是单点故障。

2009 年,Netflix 面临着许多基础设施问题,因为它无法跟上对其快速增长的视频流服务的需求。从那时起,Netflix 决定将其基础设施从其私有数据中心迁移到 AWS 云,并将其单体架构替换为微服务架构。

他们是从单体架构过渡到微服务架构的早期先驱。他们甚至开源了自己用于构建微服务的框架和工具,这些框架和工具被称为Netflix OSS Stack,后来更名 Spring Cloud Netflix。

微服务架构是现代应用程序开发方法,由基于域开发的较小的运行服务组成。这些服务有自己的数据库或模式,并且只包含相关的领域数据。


如上图所示,微服务根据连接到自己数据库的业务领域(即帐户服务、库存服务、运输服务等)进行隔离。这些服务还可以同步或异步地相互连接以获取任何需要的数据。

这些服务作为独立的小 jar文件部署在它们自己的机器中,并且独立部署,这与 Monolithic 应用程序不同。部署可以在本地服务器、云服务器或 docker 容器中完成。

该架构可使用称为水平扩展的技术独立扩展,即仅扩展具有更高负载的服务。此外,这些服务具有容错性和弹性,不会出现单点故障。即使 Inventory 服务和 Shipping 服务宕机,用户仍然可以使用账户服务查看他们的账户

微服务设计模式

微服务架构有许多现成的不同设计模式,可用于不同的用例。

微服务是独立的、松散耦合的,并遵循分布式系统架构,其中每个服务都承担单一职责。这种类型的架构将面临很多挑战,包括通信故障、分布式事务回滚、外部化配置、集中式日志记录等。

这些设计挑战以称为微服务设计模式的解决方案的形式得到解决。如下图所示,微服务有很多设计模式。如果能够接触到所有重要的模式,对于设计微服务架构将非常有帮助。

微服务设计模式通常可以分为以下类型

  1. 分解模式
  2. 集成模式
  3. 数据库设计模式
  4. 可观察性设计模式
  5. 横切设计模式

1. 分解模式

如果我们需要将单体应用程序分解为更小的微服务,分解模式非常有用。这些模式提供了有关如何进行逻辑分解的建议。这些模式有不同类型,而了解该地区的重要模式。

A。按业务能力分解

b. 按子域分解

C。按 Strangler 模式分解

2. 集成设计模式

集成设计模式用于处理不同微服务之间的通信,以及如何在保持高性能的同时获取跨服务的响应并将其发送给客户端。重要的集成模式是

A。API网关模式

b. 聚合器模式

C。代理模式

d. 链式微服务模式

3. 数据库设计模式

数据库设计模式帮助我们为微服务架构设计数据库,例如为每个微服务使用单个共享数据库或单独的数据库,为读写操作使用单独的数据库,跨微服务进行分布式事务管理等。以下这些数据库设计模式非常重要,因为设计数据库可以成就或破坏应用程序

A。每个服务模式的数据库

b. 每个服务共享数据库模式

C。命令和查询责任分离 (CQRS) 模式

d. 事件溯源

e. Saga Pattern(传奇模式)

4. 可观察性模式

可观察性模式对于设计用于适当监控和遥测的微服务非常关键,即集中式日志记录、分布式跟踪、性能指标、微服务实例的健康检查等。重要的模式是

A。日志聚合模式

b. 性能指标

C。分布式追踪

d. 健康检查

5. 横切关注点设计模式

Cross Cutting 模式用于处理微服务如何相互发现、如何外部化微服务配置、如何使用断路器处理服务故障以及如何部署微服务。重要的模式是

A。外部配置模式

b. 服务发现模式

C。断路器模式

d. 蓝绿部署模式

微服务的优势

  1. 微服务遵循单一职责原则。
  2. 更好的合规性和数据安全性。
  3. 独立且可独立部署
  4. 与 Monolith 相比,动态缩放和更便宜的缩放成本
  5. 更快的上市时间
  6. 我们可以为每个微服务使用多种编程语言和框架

7. 更具弹性的应用程序和改进的故障隔离。

8. 大量设计模式的现成可用性

微服务的缺点

微服务架构有其自身的缺点如下

  1. 服务之间通信的复杂性增加
  2. 通信失败的可能性更高
  3. 复杂的分布式事务回滚
  4. 更多资源和开销
  5. 难以测试和调试
  6. 维护多个较小的服务很复杂
  7. 部署复杂

概括

在本文中,我们了解了微服务架构以及它与单体应用程序的区别。然后我们研究了什么是微服务设计模式和不同的类型。我们还看到了微服务架构的优点和缺点来结束这篇文章。

相关参考

开润滑油店挣钱吗(润滑油代理赚钱难?盈利模式了解下)

...自身资源优势,进行多品类经营,甚至跨界融合。汽车后服务市场涵盖的品类很多,除了汽车润滑油之外,还有汽车用品、内饰等多种产品,可以进行多品类的组合,为下游门店提供一站式服务,方便省心。模式二:开拓新产品...

新品牌可以注册天猫旗舰店吗(天猫设计服务入驻的条件以及费用)

设计服务想要入驻天猫需要哪些流程及费用?设计服务通过对设计形式和功能等方面的“人性化”因素的注入,赋予设计物以“人性化”的品格,使其具有情感、个性、情趣和生命,最终达到产品人性化设计的目的。那么设计服...

拆分系统(我设计了一套微服务系统,可是上了生产环境直接崩溃…)

目录单体架构微服务架构服务治理之注册与发现和负载均衡服务治理之限流熔断服务治理之服务监控今天给大家分享一个话题,是关于微服务架构的服务治理的,很多小伙伴可能都觉得自己玩儿过微服务架构,然后可能也听说过...

微信营销不属于哪种营销方式(社区团购以社区微信为主的销售窗口零售商业形式)

...,这决定:  1、社区团购是社区商业,主要为老客户服务。因此社区群主要考虑的主要问题是怎么让老客户高频购买,

抖音上的肌先知美白淡斑是真的吗(微商人应该了解的化妆品行业背后的内幕)

...央视标王、出口大鳄。2005年进入化妆品行业,十年期间服务了600多个化妆品品牌,其中销售额上亿的有13个。集600个化妆品品牌的顶层思维于一身,你想了解的,知无不言言无不尽!我2000年参加工作,2005年沉下心在化妆品上游...

开发个小程序需要多少钱(开发一个微信小程序到底需要多少钱?)

...数公司小程序的开发目前都采用两种方式:租用SaaS形式服务和外包形式,购买独立部署形式的软件;租用SaaS形式服务,听上去很复杂,其实就是企业购买的是一种租赁服务,和租车是一个概念。SaaS服务提供商

物流服务应该提供哪些服务(货代的常用的这几种贸易术语你都了解吗?速看,建议收藏)

物畅网,您身边的铁路多式联运数字化解决商,共建铁路多式联运生态体系,为企业提质增效。大家好,我是畅宝,做货代的小伙伴们应该都清楚,有一些常用的专业名词刚接触确实会有一些陌生,今天畅宝就给大家归纳整理了...

物流服务应该提供哪些服务(货代的常用的这几种贸易术语你都了解吗?速看,建议收藏)

物畅网,您身边的铁路多式联运数字化解决商,共建铁路多式联运生态体系,为企业提质增效。大家好,我是畅宝,做货代的小伙伴们应该都清楚,有一些常用的专业名词刚接触确实会有一些陌生,今天畅宝就给大家归纳整理了...

服务器光口没光 不亮(这些机房布线规范你都知道吗)

...设备,配备48个10G光口和4个40G光口;10G光口用AOC线缆下联服务器万兆端口,40G光口用MPO光纤上联到机房内网核心,单台TOR覆盖2个机柜的服务器接入;ILO:服务器IL

欢迎致电咨询(事关乌海医疗服务能力提升,欢迎致电咨询)

...些问题需要咨询、了解?就三区卫生健康事业发展、医疗服务能力提升、常态化疫情防控等相关问题,您还有哪些意见、建议?同时,您到乌海市不动产登记中心办理过哪些业务吗?您认为乌海市不动产登记中心哪些方面还需要...