服务架构演变

2020-08-21 00:18|来源: 网路

一、单体架构

1597939096691034941.png

web2.0

1597939202322091860.png

单体应用

1597939360477067308.png


应用服务器与中间件部署在不同服务器

单体架构4.png

缓存

单体架构5.png


二、集群架构

集群1.png


三、分布式架构

分布式架构2.png


相关问答

更多
  • 实现分布式的方法有很多,WEBSERVICE,hessian,EJB等等都可以 异步的方式你还可以采用JMS
  • 微服务架构。随着系统业务量的不断增多,单一的一套系统可能无法对应高并发,且系统变得越来越臃肿,后期难以维护。这种情况下会采用微服务架构设计,为了让单一模块变得更加清晰容易维护,且使某个模块儿的负载能力变得更加强大,添加集群也更为方便。 微服务架构的实现方式有很多种。 spring cloud是其中一种的实现方式,spring cloud对微服务所需要的几点特性封装的比较好,如:零耦合,服务之间方便调用。 另外还有dubbo可以作为微服务的载体,同样也具有零耦合,高可用,支持业务分解的功能,但没有spring ...
  • 微架构也是SOA的一种,只是其component更小更多而已。 Spring等框架中,常有依赖注入,Ioc等技术,通过配置文件,决定API调用,一个不是很恰当的比喻,把这些API分开,包装成Service,放在网络上,每个有自己的process,通过与语言无关的协议通讯,类似Rest之类的,这就成了微架构。 据说,好处是容易deploy,更灵活,解耦;坏处是网络限制性能,不易确定系统state等等。 个人感觉,微架构只是把复杂性推到了其他的地方,过分强调解耦,可能造成不必要的细化,导致系统更为复杂,难以维护 ...
  • 你拥有的逻辑并不是错误的,但更好的是在向另一个服务发出请求之前构建一个抽象层,例如。 另一个微服务的API网关。 让我们为这个实例调用微服务B(API网关向B发出请求)。 在这种情况下,B应该提供自己的客户端,了解另一个服务应该如何与之交互,无论是通过HTTP还是WebSockets,协议都取决于B,因为B了解应该如何与之通信。 客户和正在一起实施的服务的论点是,这两个组件应具有更高的凝聚力,因为从技术上讲,它们受合同约束,例如。 如果需要对服务进行请求,则需要遵守服务所需的合同。 在使用Express的简 ...
  • 我想如果你能够稍微调整你的术语/方法,你会发现你可以使用Apache NiFi来执行你系统中几乎所有的任务。 虽然NiFi旨在处理流数据而不是批处理/作业,但您可以使用CRON计时来安排任务执行(初始REST API调用和数据检索),然后将流文件发送到后续处理器。 使用此模型,您可以摄取数据,将数据视为离散记录,并在XML,JSON,CSV,Avro等各种格式之间轻松转换,过滤,路由,转换和查询数据,然后将其路由到目标SQL数据库。 所有这些操作都将具有实时监控,起源记录,审计,可重放性,日志记录,细粒度用 ...
  • 肯定是#1。 让客户与多个GraphQL服务交谈(如方法#2)完全失败了首先使用GraphQL的目的,即为整个应用程序数据提供模式,以便在单个往返中提取它。 从微服务的角度来看, 共享无架构似乎是合理的,但对于客户端代码来说,这是一个绝对的噩梦,因为每次更改一个微服务器时,都必须更新所有的客户端。 你一定会后悔的。 GraphQL和微服务是完美的,因为GraphQL隐藏了客户端具有微服务架构的事实。 从后端的角度来看,您希望将所有内容分解为微服务,但从前端的角度来看,您希望所有数据都来自单一的API。 使用 ...
  • 从技术上讲,Poe,产品也可以是一种服务。 因此,在您的情况下(不知道您提供的内容的更多信息),您可以使用产品架构为您的服务。 但是,还有另一种标记服务的方法,即使用GoodRelations标记来增强Schema.org/Offer标记。 这是另一个stackoverflow帖子的链接,或许可以提供一个更好的例子: 使用Schema.org和GoodRelations标记进行服务 希望有所帮助。 Technically, Poe, a product can also be a service. So i ...
  • 现在可以在此处找到Bond模式演变规则和最佳实践: https : //microsoft.github.io/bond/manual/bond_cpp.html#schema-evolution https://microsoft.github.io/bond/manual/bond_cs的.html#模式进化 The Bond schema evolution rules and best practices can now be found here: https://microsoft.github ...
  • 使用点对点消息传递模型,只有一个消费者将收到消息。 在pub / sub模型中,将通知所有订阅者。 ActiveMQ的示例。 Use Point to Point messaging model and only one consumer will receive a mesage. In pub/sub model all subscribers will be notified. Example with ActiveMQ.
  • 分发需要模块化。 但是,它需要的不仅仅是模块化:它还需要模块之间的粗粒度交互。 例如,在单流程电子商务系统中,您可能拥有用于管理用户购物车和计算价格的单独模块。 他们可能会通过购物车互动,要求计算器为物品定价,然后是另一件物品等等。这样就可以了。 但是,在分布式系统中,这需要大量的小方法调用,这是低效的; 如果你使用CORBA进行分发,你可能会侥幸成功,但是使用SOAP,你会遇到麻烦。 相反,您可能希望购物车让计算器一次性为整个订单定价。 从关注点分离的角度来看可能会更糟(为什么计算器必须知道推车的想法?) ...