- 博客(14)
- 收藏
- 关注
原创 RocketMQ - 如何实现事务消息
事务消息的使用场景很多,比如在电商系统中用户下单后新增了订单记录,对应的商品库存需要减少。又例如红包业务,张三给李四发红包,张三的账户余额需要扣减,李四的账户余额需要增加,怎么保证张三账户扣减李四账户加钱呢?这些问题都是事务问题,可以简单理解为:一个表的数据更新后,如何保证另外一个表的数据也更新成功。如果使用同一个数据库实例,那么问题很简单,可以使用本地事务来解决,Spring的@Transactional注解就支持。消费事务消息与消费普通消息的代码是一样的,无需做任何修改。
2020-05-31 08:32:33 5246 2
原创 itextpdf在PDF指定位置添加文本
最近项目中需要给固定格式的PDF文件动态添加内容,记录下实现方式:使用Adobe打开PDF,点击右下角的准备表单双击名称字段,给字段添加标签productName代码 public static void main(String[] args) throws Exception{ Map<String, Object> data = new HashMap<String, Object>();//要插入的数据 data.put("pro
2020-05-30 07:09:12 12229 3
原创 Java 替换word文档文字
最近项目中需要在word文档中指定位置动态添加文字,记录下项目中的实现方式添加依赖的lib<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-excelant</artifactId> <version>3.12</version> </depende
2020-05-30 07:05:32 9168 10
原创 RocketMQ - 如何实现顺序消息
消息消费成功后,会向Broker提交消费进度,更新消费位点信息,避免下次拉取到已消费的消息,顺序消费中如果消费线程在监听器中进行业务处理时抛出异常,则不会提交消费进度,消费进度会阻塞在当前这条消息,并不会继续消费该队列中的后续消息,从而保证顺序消费。轮询算法简单好用,但是有个弊端,如果轮询选择的队列是在宕机的Broker上,会导致消息发送失败,即使消息发送重试的时候重新选择队列,也可能还是在宕机的Broker上,无法规避发送失败的情况,因此就有了故障规避机制。Consumer能够不重复接收消息?
2020-05-27 21:29:25 2475 1
原创 RocketMQ - 集群管理
在分布式服务架构中,任何中间件或者应用都不允许单点存在,服务发现机制是必备的。服务实例有多个,且数量是动态变化的。注册中心会提供服务管理能力,服务调用方在注册中心获取服务提供者的信息,从而进行远程调用。接下来介绍一下RocketMQ的整体架构设计、集群管理。
2020-05-25 22:39:14 889
原创 RocketMQ - 什么是RocketMQ
RocketMQ是一个低延时、高可靠、可伸缩、易于使用的分布式消息中间件,是由阿里巴巴开源捐献给Apache的顶级项目。RocketMQ具有高吞吐、低延迟、海量消息堆积等优点,同时提供顺序消息、事务消息、定时消息、消息重试于追踪等功能,非常适合在电商、金融等领域使用。
2020-05-23 09:47:09 646 1
原创 Dubbo集成Sentinel实现限流
Dubbo服务接入Sentinel DashboardDubbo服务限流规则配置Sentinel热点限流热点参数限流的使用@SentinelResource热点参数限流
2020-05-13 22:03:17 3554 3
原创 Sentinel集成Nacos实现动态流控规则
Sentinel的理念是只需要开发者关注资源的定义,它默认会对资源进行流控。当然,我们还是需要对定义的资源设置流控规则,主要有两种方式:通过FlowRuleManager.loadRules()手动加载流控规则。在Sentinel Dashboard上针对资源动态创建流控规则。针对第一种方式,如果接入Sentinel Dashboard,那么同样支持动态修改流控规则,但是基于Sentinel Dashboard所配置的流控规则,都是保存在内存中的,一旦应用重启,这些规则都会被清除。为了解决这个问题
2020-05-10 16:56:09 2329 2
原创 Spring Cloud集成Sentinel
Sentinel接入Spring Cloud基于Sentinel Dashboard来实现流控配置自定义URL限流异常URL资源清晰
2020-05-09 20:29:29 2829 1
原创 分布式限流框架 - Sentinel
Sentinel是面向分布式服务架构的轻量级流量控制组件,主要以流量为切入点,从限流、流量整形、服务降级、系统负载保护等多个维度来帮助我们保障微服务的稳定性。稳定是系统的基础能力,稳定性差的系统会出现服务超时或服务不可用,给用户带来不好的体验,也会对业务造成不良影响。Sentinel的特性Sentinel有如下特性:应用场景丰富:几乎涵盖所有的应用场景,例如秒杀、消息削峰填谷、集群流量控...
2020-05-07 22:28:36 4529 1
原创 Dubbo和Spring集成的原理
使用Dubbo最方便的地方在于它可以和Spring非常方便的集成,实际上,Dubbo对于配置的优化,也是随着Spring一同发展的,从最早的XML形式到后来的注解方式以及自动装配,都是在不断地简化开发过程来提高开发效率。在Spring Boot集成Dubbo时,服务发布主要有以下几个步骤:添加dubbo-spring-boot-starter依赖定义@org.apache.dubbo.co...
2020-05-04 11:39:20 1785 1
原创 Spring Boot自动装配的原理
Spring Boot不得不说的一个特点就是自动装配,它是starter的基础,也是spring boot的核心,那到底什么是自动装配呢?简单的说,就是自动将Bean装配到IoC容器中。接下来,我们通过一个例子来了解下自动装配。添加starter<dependency> <groupId>org.springframework.boot</groupId&...
2020-05-03 10:01:18 3515 2
原创 消息队列Kafka - Java中如何是用Kafka进行通信
首先在项目中添加kafka的依赖: <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.0</version> </de...
2020-05-02 17:44:49 686
Java集合、JVM面试题
2024-02-22
Java基础常见面试题
2024-02-22
Java并发编程最全面试题
2024-02-22
Java 工程师成神之路
2024-02-22
Git基础知识及面试题
2024-02-22
ElasticSearch面试题
2024-02-22
Dubbo知识及面试题
2024-02-22
BIO,NIO,AIO,Netty面试题
2024-02-22
300页的Java核心面试知识整理(带答案,超全)
2024-02-22
Java并发编程学些手册
2024-01-31
Java集合框架面试必备八股文
2024-01-30
Java JVM面试必备八股文
2024-01-30
MySQL面试题必备八股文
2024-01-30
Java并发编程面试题八股文
2024-01-30
Spring面试必备八股文
2024-01-30
RocketMQ面试必须会的八股文
2024-01-30
Java最新面试题详解
2024-01-30
Redis必备基础知识
2024-01-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人