微服务
No_Game_No_Life_
这个作者很懒,什么都没留下…
展开
-
为分布式做准备吧——从Ajax到WebSocket
文章目录解决方案1:频繁轮询解决方案2:长轮询解决方案3: 分块编码解决方案4: Applet和Adobe FlashWebSocket当需要前端频繁的请求后端数据的时候,比如说数据的实时显示,这种情况下产生问题的核心原因是:服务器知道数据什么时候更新,但浏览器不知道。这种情况下,即使对于强大的Ajax,也是一个难以解决的问题。解决方案1:频繁轮询当我们手中只有ajax工具的时候,我们往往...原创 2019-07-04 14:39:37 · 651 阅读 · 0 评论 -
为分布式做准备吧——远程调用服务(RPC)和基于消息的通信(Message Queue)对比
文章目录系统结构功能特点系统结构RPCMessage Queue调用方式Consumer <=> ProviderSender <=> Queue <=> Receiver调用对象Consumer调用的Provider提供的服务。Sender发送消息给Queue;Receiver从Queue拿到消息来处理。功能特点...原创 2019-07-05 15:58:16 · 701 阅读 · 0 评论 -
为分布式做准备吧——分布式服务架构设计概述
文章目录分布式服务框架设计架构原理通信框架长连接还是短链接BIO还是NIO序列化与反序列化协议栈服务路由基于服务注册中心的订阅发布集群容错服务调用分布式服务框架设计架构原理通常,分布式服务框架的架构可以抽象为三层:RPC层:包括底层通信框架(例如NIO框架的封装、公有协议的封装等)、序列化和反序列化框架、用于屏蔽底层通信协议细节和序列化方式差异的Remoting框架。Filter Ch...原创 2019-07-05 11:36:08 · 761 阅读 · 0 评论 -
为分布式做准备吧——调用链原理
分布式系统的远程调用过程典型的分布式系统的调用关系如下图所示,在用户的一个请求到达组合的前端服务后,前端服务会分发请求到内部的各个服务,每次调用都设计跨系统的一次请求和一次响应。在有大规模、高并发请求量的系统中,我们如何标识这些请求及存储这些调用信息,并形成一个调用链呢?如果系统的某两个服务之间出了问题,我们又如何提供可视化的方式展现调用链,并在调用链上标注产生问题的那条边呢?从上图可知...原创 2019-07-09 10:07:50 · 1408 阅读 · 0 评论 -
为分布式做准备吧——微服务的交互模式
微服务的交互模式服务与服务的交互模式可以分为以下3类:同步调用模式也就是同步阻塞。接口异步调用模式消息队列异步处理模式以下是两条原则:如果业务逻辑允许,我们可以将一些耗时长的、用户对响应没有特别要求的操作异步化。例如,12306会在订票高峰期开启订票异步模式,用户是通过后续查询得到的结果。如果性能不是问题或者处理的逻辑是短小的轻量级逻辑,那么可以使用同步方...原创 2019-07-08 15:58:57 · 609 阅读 · 0 评论 -
为分布式做准备吧——微服务保障一致性的模式
文章目录一致性问题实例解决一致性问题的模式和思路微服务保证最终一致性的模式查询模式补偿模式异步确保模式定期校对模式可靠消息模式缓存一致性模式在之前的文章中,我们介绍了烟囱式到SOA再到微服务以及 从平台到中台:企业IT架构转型之道两篇文章,这里继续了解和介绍微服务。一致性问题实例案例1:下订单和扣库存如果先下订单,扣库存失败,那么会导致超卖。反之会导致少卖。两种情况都会导致运营成本增...原创 2019-07-08 15:15:55 · 762 阅读 · 0 评论 -
微服务容器化实践——微服务设计拆分方法论
文章目录基于业务复杂度选择服务划分方法基于数据驱动划分服务基于领域驱动划分服务基于业务复杂度选择服务划分方法当业务复杂度足够高的时候,应该基于领域驱动来划分服务。而DDD本身足够复杂,很多概念比较抽象,所以当业务复杂度比较低的时候,可以选择基于数据驱动划分服务。基于数据驱动划分服务数据驱动强调的是数据结构,也就是通过分析需求,来确定整体数据结构,根据表之间的关系划分服务。一般步骤如下:...原创 2019-12-04 20:34:54 · 1036 阅读 · 0 评论 -
微服务容器化实践——微服务引入的问题和解决方案
文章目录什么是微服务?微服务的不足微服务架构引入的问题及解决方案什么是微服务?使用一套小服务来开发单个应用的方式,每个服务运行在独立的进程里,一般采用轻量级的通讯机制互联,并且它们可以通过自动化的方式部署。关于微服务的其他内容,我的以下文章可以一一说明:烟囱式到SOA再到微服务从平台到中台:企业IT架构转型之道分布式服务架构设计概述多微才算微服务?其实微服务这个微不是以代码量或...原创 2019-12-03 14:53:30 · 914 阅读 · 0 评论 -
微服务容器化实践——数据通信模式
文章目录RESTRPCRPC与REST的比较如何选择RPC框架MQMQ与RPC/HTTP的选用Socket目前的数据通信模式/协议主要包含了三个大类:RESTRPCMQREST要了解REST,首先必须明确HTTP的运作方式。但实现REST并非是一定要使用HTTP,REST规范中并没有HTTP、JSON、XML等相关约束,它描述的是互联网软件架构的一种风格。那为什么提及REST的时...原创 2019-12-03 10:33:53 · 418 阅读 · 0 评论 -
油盐微服务——微服务拆分
文章目录适合上微服务么?微服务特点服务拆分方法论适合上微服务么?不适合上微服务的场景有:系统包含很多很多强事物的。访问压力不大,对可用性要求不高的。业务相对稳定,迭代周期长的。康威定律:即沟通的问题会影响系统的设计。当沟通很难的适合,会不自觉的减少沟通,从而影响迭代的速度。所以微服务提倡小团队,由小团队负责整个系统的设计与实现,团队内部可以具有频繁的细粒度的沟通。微服务特点...原创 2019-09-11 11:24:29 · 183 阅读 · 0 评论 -
油盐微服务——声明式服务调用Feign
文章目录对于前面的Ribbon和Hystrix的介绍,Spring Cloud Feign基于Netflix Feign实现,封装整合了以上两个工具,来简化开发。原创 2019-09-11 11:23:36 · 297 阅读 · 0 评论 -
油盐微服务——服务发现与请求方式
文章目录服务发现客户端服务发现服务端服务发现RPC服务和HTTP服务对比RPC服务服务发现传统的项目而言,服务器端的服务实例的网络地址是相对固定的。而基于云端、现代化的微服务服务实例的网络地址往往是动态更新的。由于服务器端的服务实例扩展、维护、升级,导致服务器端服务实例的IP地址、端口发生变化,从而使得客户端无法获取服务实例新的地址进行正常的调用。服务发现为解决此类问题的一个解决方案,服务发...原创 2019-09-09 10:35:14 · 321 阅读 · 0 评论 -
油盐微服务——服务容错保护Hystrix
文章目录引入Hystrix由于网络问题或者依赖服务自身的问题出现的调用故障或者延迟,如果此时调用方请求不断增加,就会形成任务积压,最终导致自身服务的瘫痪。比如在一个电商网站中,可能会讲系统拆分成为用户、订单、库存、积分、评论等一系列服务单元,如果其中一个单元出现故障,就很容易发生故障的蔓延,导致整个系统瘫痪。为了解决这个问题,产生了断路器模式。Hystrix实现了断路器、线程隔离等一系列服...原创 2019-09-08 16:35:19 · 165 阅读 · 0 评论 -
油盐微服务——负载均衡Ribbon
文章目录客户端负载均衡RestTemplate详解Spring Cloud Ribbon 是一个基于http和tcp的客户端负载均衡工具,它不需要像服务注册中心那样独立部署,它几乎存在于每一个Spring Cloud构建的微服务和基础设施中。微服务之间的调用,API网关的请求转发等内容实际上是通过Ribbon来实现的。客户端负载均衡客户端负载均衡中,所有客户端节点都维护着自己要访问的服务端...原创 2019-09-08 15:29:08 · 221 阅读 · 0 评论 -
油盐微服务——服务治理Eureka
文章目录服务治理EurekaSpring Cloud通过为Eureka增加了Spring Boot风格的自动化配置,能够很轻松的进行整合。服务治理服务治理很显然是微服务里最核心和基础的模块,主要用来实现微服务的注册与发现。服务注册:通常会有一个注册中心,每个服务单元向注册中心登记自己提供的服务,将主机与端口号、版本号、通信协议等信息告知注册中心。注册中心会维护一个服务清单,类似于下图:...原创 2019-09-08 10:57:13 · 161 阅读 · 0 评论 -
油盐微服务——Spring Cloud简介
文章目录Spring Cloud简介Spring Cloud简介Spring Could是一个基于Spring Boot实现的微服务架构开发工具,它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一系列简短的开发方式。Spring Cloud包含了多个子项目,例如:Spring Could Config:配...原创 2019-09-06 10:18:11 · 324 阅读 · 0 评论