一、SpringBoot整合Junit 1.使用Idea快速搭建SpringBoot工程 或在pom.xml中引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> 2.创建Service类 package com.example.springboo…
一、SpringBoot整合Junit 1.使用Idea快速搭建SpringBoot工程 或在pom.xml中引入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> </dependency> 2.创建Service类 package com.example.springboo…
一、配置文件分类 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者application.yml(.yaml)进行配置。 在同一级别下配置文件的优先级为:properties -> yml -> yaml 二、yaml基本语法 YAML全称是 YAML Ain't Markup Language 。YAML是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚…
一、SpringBoot概述 SpringBoot提供了一种快速使用Spring的方式,基于约定优于配置的思想,可以让开发人员不必再配置与逻辑业务之间进行思维切换,全身心的投入到逻辑业务的代码编辑中。从而大大提高了开发效率,一定程度上缩短了项目周期。2014年4月,SpringBoot1.0.0发布。Spring的顶级项目之一(https://spring.io)。 Spring 缺点 1) 配置繁琐 虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且…
摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试环境上使用其单实例部署就可以了,但是出于MQ中间件本身的可靠性、并发性、吞吐量和消息堆积能力等问题的考虑,在生产环境上一般都会考虑使用RabbitMQ的集群方案。 一、集群方案的原理 RabbitMQ这款消息队列中间件产品本身是基于Erlang编写,Erlang语言天生具备分布式特性(通过同步Erlang集群各…
RabbitMQ应用问题 消息可靠性保障(保障消息100%成功发送出去) 消息补偿机制 消息幂等性保障 乐观锁解决方案 一、消息可靠性保障-消息补偿 二、消息幂等性保障-乐观锁机制 幂等性指一次和多次请求某一个资源,对于资源本身具有相同的结果。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。 在MQ中指,消费多条相同的消息,得到与消费者消息一次相同的结果。
一、消息可投递性 1、介绍 在使用rabbitmq传递消息时,作为消息发送方,为了消息能够可靠传递,杜绝消息的丢失或者传递失败的场景,rabbitmq提供了两种方式来控制消息传递的可靠性模式: confirm 确认模式 rentun 退回模式 rabbitmq传递消息的整个过程: producer -> rabbitmq broker -> exchange -> queue -> consumer confirm 确认模式:消息从producer 到 exch…
一、生产者整合 1.创建生产者SpringBoot工程 2.引入依赖 在pom文件加入以下依赖 <!--1.父工程依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> </parent…
一、work queues 工作队列模式 1.模式说明 work queues:与简单模式相比,多了一个或多个消费者,多个消费者共同消费一个队列里的消息,他们之间是竞争的关系,并不能同时获取消息,是轮询获取消息。 应用场景:对于任务过重或任务较多情况下使用工作队列可以提高任务的处理速度。例如:短信服务费部署多个,只需要有一个节点成功发送即可。 2.代码实现 在生产者producer工程下创建一个WorkQueues类,完成以下代码 package com.ailuti.producer; import com.ra…
一、入门程序 需求:使用简单模式完成消息传递 1.创建工程 创建空工程,命名为:rabbitmq 在工程里添加两个maven模块:rabbitmq-producer(生产者)、rabbitmq-consumer(消费者) 在两个工程里的pom文件分别加入maven依赖 <dependencies> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-clie…
一、 MQ介绍 1.mq的优势 应用解耦:提高系统容错率和可维护性 异步提速:提升用户体验和系统吞吐量 削峰填谷:提高系统稳定性 2.mq的缺点 系统可用性降低 系统引入的外部依赖越多,系统稳定性越差。一旦MQ宕机,就会对业务产生影响。如何保证系统的高可用? 系统复杂性提高 MQ的加入大大增加了系统的复杂性,以前系统是同步调用,现在是通过系统的异步调用。如何保证消息有没有重复消费?怎么处理消息丢失情况?怎么保证消息传递的顺序呢? 一致性问题 A系统处理完业务,通过MQ给B、C、D三个系统发送数据,如果…