SpringCloud
lukaifang
这个作者很懒,什么都没留下…
展开
-
消息总线真的能保证幂等?
一、缘起如《消息总线消息必达》所述,MQ消息必达,架构上有两个核心设计点:(1)消息落地(2)消息超时、重传、确认再次回顾消息总线核心架构,它由发送端、服务端、固化存储、接收端四大部分组成。再次回顾消息总线核心架构,它由发送端、服务端、固化存储、接收端四大部分组成。为保证消息的可达性,超时、重传、确认机制可能导致消息总线、或者业务方收到重复的消息,从而对业务产生影响。举个栗子:购买会员卡,上游支付系统负责给用户扣款,下游系统负责给用户发卡,通过MQ异步通知。不管是上半场的ACK丢失,导致M转载 2020-05-26 13:51:25 · 243 阅读 · 0 评论 -
到底什么时候该使用MQ?
一、缘起一切脱离业务的架构设计与新技术引入都是耍流氓。引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题(详见《互联网架构为什么要做微服务?》)。二、MQ是干嘛的消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只需要依赖MQ,逻辑上和物理上都不用依转载 2020-05-26 13:47:51 · 337 阅读 · 0 评论 -
RabbitMQ实战教程
RabbitMQ实战教程1.什么是MQ消息队列(Message Queue,简称MQ),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已。其主要用途:不同进程Process/线程Thread之间通信。为什么会产生消息队列?有几个原因:不同进程(process)之间传递消息时,两个进程之间耦合程度过高,改动一个进程,引发必须修改另一个进程,为了隔离这两个进程,在两进程间抽离出一层(一个模块),所有两进程之间传递的消息,都必须通过消息队列来传递,单独修改某一转载 2020-05-26 13:17:37 · 4110 阅读 · 2 评论 -
SpringCloud学习笔记(五)——消息驱动 Stream
消息驱动,顾明思议,在企业级应用中,消息中间件经常用于处理非同步场景、消息通知、应用解耦等。常用的有RabbitMq、kafka、Redis等消息队列等。Spring Cloud Stream是一个构建事件消息驱动的微服务框架,提供了一个灵活的编程模型。并基于Spring的基础之上,支持发布-订阅模型、消费者分组、数据分片等功能。一、Stream 应用模型Middleware: 消息中间件,如RabbitMq等Binder:可以认为是适配器,用来将Stream与中间连接起来的,不同的Binder对原创 2020-05-25 17:44:08 · 225 阅读 · 0 评论 -
SpringCloud学习笔记(四)——异步和消息MQ
异步的常见形态:通知:单向请求,你对他放电,他为你绝缘请求/异步相应:客户端发送请求到服务端,服务端异步响应请求,客户端不会阻塞,而且被设计成默认相应,不会立刻送达消息:利用消息可以实现一对多的交互,比如发布-订阅模式MQ的应用场景:异步处理:比如用户注册之后,需要发短信和加积分,注册信息写入数据库后通过异步消息让短信服务和积分服务去做他们的事,提升用户体验流量削峰:常见于秒杀场景,访问过大导致流量剧增甚至挂掉。一般在应用前端加入消息队列控制用户数量,如果超出,则抛弃用户请求,或者让他跳转原创 2020-05-25 16:27:49 · 573 阅读 · 0 评论 -
SpringCloud学习笔记(三)——统一配置中心
文章目录统一配置中心简介一.为什么需要统一配置中心?二、如何搭建统一配置中心统一配置中心简介本文会带大家来了解Spring cloud config这个组件,首先,先带来一个问题。我们用这个组件的目的是什么呢?这么多人用,肯定是有原因的嘛。存在即合理。一.为什么需要统一配置中心?如果不使用统一配置中心,会带来很多问题,比如:1.不方便维护假如一个服务,由多人开发,其中a在开发的时候,修改了配置,b来开发的时候,需要测试别的一些功能,这个时候配置文件已经被a修改得面目全非了,这就造成了冲突。2.原创 2020-05-09 16:45:32 · 830 阅读 · 0 评论 -
ribbion负载均衡和Nginx负载均衡的区别
在SpringCloud框架使用哪个好 负载均衡算法写在哪里1、nginx负载是服务端的负载;ribbion的负载,是代码中微服务的负载(客户端负载);这两个负载并不冲突。2、服务端负载:用户请求到了nginx以后,nginx负载决定把请求转发到哪台服务器;(负载的列表是存在nginx服务端的,所以叫服务端负载)3、客户端负载:ribbon是集成在服务消费端,他的负载是,首先去注册中心获...转载 2020-05-05 19:27:16 · 1259 阅读 · 0 评论 -
SpringCloud学习笔记(三)——应用间的通信
应用间的通信主要有两种:HTTP vs RPC两大配方的主角就是SpringCloud和DubboDubbo是个RPC框架,而SpringCloud的目标是微服务架构下的一站式解决方案SpringCloud微服务架构下, 微服务之间使用HTTP restful的方式, HTTP restful的方式本身轻量易用, 适用性强,可以很容易的跨语言,跨平台,或者与已有的系统交互Dubb...原创 2020-05-05 19:26:22 · 647 阅读 · 0 评论 -
SpringCloud学习笔记(二)——Eureka注册中心
文章目录Eureka简介Eureka架构图Eureka Server注册中心新建项目过程配置文件控制台Eureka Client:服务注册新建项目过程配置文件eureka的高可用启动多个实现高可用Eureka总结Eureka简介eureka是Netflix开发的服务发现组件,本身是一个基于REST的服务。Spring Cloud将它集成在其子项目spring-cloud-netflix中,以...原创 2020-05-03 20:20:45 · 412 阅读 · 0 评论 -
SpringCloud学习笔记(一)——SpringCloud简介
SpringCloud是什么?Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通...转载 2020-05-03 19:38:06 · 224 阅读 · 0 评论