自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 kafka简单代码示例

在 Kafka 中,可以通过配置和处理消息传递保证来确保消息的可靠性和一致性。下面是一些详细的配置和处理方法,以及具体的场景示例:acks具体场景示例: 假设有一个订单系统,需要确保订单完成后的库存减少,并且需要保证消息的可靠性和一致性。这样,在订单完成后,生产者将发送订单完成消息到 Kafka,消费者接收并处理该消息,使用数据库事务将库存减少,并在消息处理完成后进行提交。如果有任何错误或异常发生,可以根据实际情况进行重试、回滚或其他错误处理操作,以确保消息的可靠性和一致性。

2024-02-07 14:24:45 731

原创 入门 Kafka

了解基本概念:开始之前,了解 Kafka 的基本概念是非常重要的。这包括主题(Topics)、分区(Partitions)、生产者(Producers)、消费者(Consumers)等。理解这些概念将有助于您理解 Kafka 的工作原理和架构。安装和配置:在本地环境中安装 Kafka,并进行基本的配置。您可以参考 Kafka 官方文档或在线教程,以便了解如何安装和设置 Kafka。生产者和消费者:学习如何编写 Kafka 生产者和消费者的代码。了解如何发送消息到 Kafka 集群并从中读取消息。

2024-02-05 17:43:16 118 2

原创 初识消息队列(MQ)

消息队列(MQ)的主要作用包括异步通信削峰平稳流量和解耦系统之间的依赖关系。MQ允许系统中的不同组件通过发送和接收消息进行异步通信。发送方将消息放入消息队列中,而不需要等待接收方立即处理。这种异步通信机制可以提高系统的吞吐量和响应时间,同时降低系统之间的耦合性。当系统面临突发高峰请求时,MQ可以起到缓冲作用,通过将请求放入消息队列中,逐渐处理请求,从而平稳地处理流量。这种削峰平稳流量的能力可以有效地保护系统免受突发高负载的影响,提高系统的稳定性和可靠性。

2024-02-05 14:27:09 519

原创 volatile关键字

在并发编程中,有三个重要的概念需要考虑,它们是原子性、可见性和有序性。1. 原子性(Atomicity):原子性指的是一个操作不可被中断,要么完全执行成功,要么完全不执行。原子性保证了多个线程对共享数据的访问是互斥的,一个线程在执行原子操作期间,其他线程不能同时访问该数据。常见的原子操作包括读取、写入和更新操作。2. 可见性(Visibility):可见性指的是一个线程对共享数据的修改能够立即被其他线程所看到。当一个线程修改了共享数据的值后,其他线程应该能够立即看到这个修改后的值。

2024-02-05 10:57:16 794

原创 数据库并发修改出现的情景,及解决方案

通过锁机制来解决数据库并发修改问题,可以使用数据库的锁机制,如行级锁或表级锁,来控制并发访问,确保同一时间只有一个事务能够修改数据。以下是一个具体的实现方案,以及一个场景例子来说明:实现方案:行级锁:在需要并发修改的数据表中,通过在事务中使用语句来获取行级锁。这会锁定查询结果集中的行,确保只有该事务能够修改这些行。其他事务需要等待锁释放。表级锁:在需要并发修改的数据表中,通过在事务中使用语句来获取表级锁。这会锁定整个表,确保只有该事务能够修改该表的数据。其他事务需要等待锁释放。

2024-02-04 16:48:03 653 1

原创 乐观锁的实现之cas(Compare and Swap)

CAS(Compare and Swap)操作是一种并发编程中常用的原子操作,用于实现多线程环境下的无锁同步。CAS操作可以实现对共享变量的原子性读取和更新。CAS操作包括三个操作数:内存地址(或者说是变量的引用)、当前期望的值和新值。CAS操作的执行过程如下:1. 读取内存地址的当前值。2. 检查当前值是否与期望的值相等。3. 如果相等,将新值写入内存地址;否则,放弃操作。在执行CAS操作时,如果当前值与期望的值相等,说明在读取到值后没有其他线程修改过该值。

2024-02-04 14:49:52 566

原创 synchronize锁升级

Java中的synchronized关键字用于实现线程同步,保证多个线程对共享资源的操作具有原子性和可见性。在不同的JDK版本中,对synchronized的优化过程可能有所不同。在旧版本的JDK中,synchronized关键字的底层实现是依赖于操作系统的底层互斥量(mutex)来实现的。每次进入synchronized块时,会使用操作系统提供的互斥量进行加锁和解锁。这种方式在竞争不激烈的情况下效率较高,但在高并发场景下可能存在性能问题。从JDK 1.6开始,Java引入了和来优化。

2024-02-02 15:50:01 623

原创 DB事务隔离级别之可重复读

需要注意的是,事务B虽然不能修改已读取的订单数据,但是在事务A执行期间,事务B仍然可以读取其他未被锁定的订单数据,只有对已经被锁定的数据进行修改操作时会被阻塞。具体来说,在"可重复读"隔离级别下,当事务A开始执行读取订单数据的操作时,数据库会对相关的数据行进行加锁,确保其他事务无法修改这些数据。然而,需要注意的是,在高并发的限量抢购场景下,使用"可重复读"隔离级别可能会导致锁竞争增加,降低系统的并发性能。在限量抢购场景中,多个用户同时竞争有限的商品数量,确保数据的一致性和避免冲突是非常重要的。

2024-02-02 11:39:58 924 1

原创 SpringCloud Gateway 项目动态路由转发报错java.net.UnknownHostException:xxx

SpringCloud Gateway 项目动态路由转发报错java.net.UnknownHostException:xxx

2022-02-25 15:50:11 2178

原创 eureka服务项目启动报错:Unable to start embedded Tomcat

eureka服务项目启动报错:Unable to start embedded Tomcat,原因pom.xml中少引入了依赖。pom.xml文件配置如下:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:s

2022-02-16 15:40:11 939

原创 ide找不到database工具栏,ide配置database报错

ide版本:IntelliJ IDEA Community Edition 2021.1.3问题1.安装好ide后发现,ide工具栏没有database,打开view-》Tool windows里面也没有原因:没有下载database插件解决:1.安装database插件2.重启ide3.在view-》tool windows --》DB browser即可问题2:ide配置mysql数据库连接,报错: server time zone value ‘�й���׼ʱ��’ is unre

2021-07-02 14:34:02 1129 1

原创 谷歌导出所有书签

版本 72.0.3626.81(正式版本) (64 位)

2020-06-02 16:19:56 362

原创 antd pro学习之react扫盲学习(四)

jsx,箭头函数1. jsxJSX 是 JavaScript XML 的简写,写法大致和html相同

2020-06-02 15:07:11 165

原创 antd pro学习之react扫盲学习(三)

自定义简单react组件1.在src下新建hello.jsimport React from 'react';// const Hello =()=>{// return(// <div>Hello React!</div>// );// }//函数Hello和上面注释掉的箭头函数的表示效果是一样的,//当有多个dom...

2020-06-02 14:49:30 222

转载 es入门学习资料收集整理

学习引用连接:[最完整的Elasticsearch 基础教程]Elasticsearch 6.4基本操作 - Java版Elastic控制查询精准度-minimum_should_matchES 22 - Elasticsearch中如何进行日期(数值)范围查询ElasticSearch与SpringBoot的集成与JPA方法的使用索引:一个索引就是一个拥有几分相似特征的文档的集合;在一个索引中,你可以定义一种或多种类型,在你想将文档引入某个索引时,并不强制要求显式创建索引;文档:一个文档是

2020-06-02 14:42:24 291

原创 springboot整合es客户端入门案例

springboot 2.2.5.RELEASEelasticSearch 6.4.3Elasticsearch Java API的四类client连接方式TransportClient,RestClient,Jest,Spring Data Elasticsearch,由于官方推荐使用RestClient,就学习了RestClient,pom.xml<!-- 高阶restClient --> <dependency> <groupId>org.ela

2020-05-26 17:55:00 361

原创 springboot quartz ORA-00942: 表或视图不存在

springboot 整合quartz<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-quartz</artifactId> <version>2.2.5.RELEASE</version></dependency>启动项目报错:quartz java.s

2020-05-26 10:40:19 2058

原创 tomcat通过shutdown 关闭后,发现tomcat线程依然在,netty绑定的socket线程也是

tomcat关闭,netty线程无法关闭https://www.jianshu.com/p/8bbe259ec1c4https://www.cnblogs.com/zemliu/p/3692996.html

2020-05-18 09:48:02 2285

原创 antd pro学习之react扫盲学习(二)

实现简单的页面输出在生成的react脚手架中,1. public/index.html<!DOCTYPE html><html lang="en"> <head> <meta charset="utf-8" /> <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /&g...

2020-05-08 12:04:24 268

原创 antd pro学习之react扫盲学习(一)

react扫盲学习(一)环境(1)安装nodejs下载地址:https://nodejs.org/zh-cn/download/.msi–>需安装 .zip–>解压即用,无需安装(2)编辑器 vscode下载地址:https://code.visualstudio.com/(二)创建react项目在任意位置新建一个文件夹,shift+鼠标右键 ,选择shell...

2020-04-30 16:57:40 511

react项目脚手架

npx create-react-app my-app命令创建的react项目脚手架,在nodejs+npm环境下既可以通过命令npm start启动该项目

2020-05-06

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除