自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(319)
  • 资源 (4)
  • 收藏
  • 关注

原创 Spring Cloud 汇总

部署Docker 部署 Seata Server(使用nacos 做为注册中心和配置中心)组件Nacos的简单介绍以及服务注册与发现功能的基本使用使用RestTemplate和Feign实现微服务之间的相互请求@LoadBalanced注解,看完保证你还懂@Qualifier注解Ribbon负载均衡策略介绍以及自定义负载均衡实现Spring Cloud Alibaba之seata 分布式事务BUG记录【BUG记录】com.alibaba.nacos.api.exception.N

2022-02-19 19:38:02 606 1

原创 kafka 汇总

部署以及简单介绍kafka的简单介绍以及docker-compose部署单主机Kafka集群Java原生APIkafka客户端操作之Admin APIkafka 客户端之producer API发送消息以及简单源码分析kafka 客户端之producer API发送消息(自定义负载均衡实现)与负载均衡调用源码分析Kafka producer的事务和幂等性kafka Java客户端之 consumer API 消费消息kafka Java客户端之 consumer API 多线程消费消息ka

2022-02-16 12:03:44 5423 2

原创 ElasticSearch 汇总

部署与基本使用ElasticSearch:简单介绍以及使用Docker部署ElasticSearch 和 KibanaElasticSearch:集成IK分词器以及基本使用ElasticSearch:Rest API操作原生Java APIElasticSearch Java 客户端连接ElasticSearchElasticSearch Java API之索引操作ElasticSearch Java API之文档操作ElasticSearch Java API之高级查询(分页查询,高亮查询

2022-02-16 11:57:19 5425

原创 Java并发编程汇总

基础Java多线程创建与运行Thread.Start()方法运行多线程Synchronized底层实现,锁升级的具体过程进阶Java并发编程之线程池Java并发编程之线程池的关闭

2022-01-24 14:56:08 4908

原创 设计模式汇总

设计模式的原则设计模式七大原则创建型简单工厂模式工厂方法模式抽象工厂模式建造者模式原型模式单例模式结构型装饰者模式代理模式行为型扩展阅读双重检查锁单例模式为什么要用volatile关键字?...

2022-01-22 21:13:38 5002

原创 ECS 服务器连接数过高,CPU占用百分之百

服务器发出警报,CPU100%使用htop查看情况(top也可以,不过htop功能更多)在CentOS 7上安装htop步骤1.首先添加EPEL存储库,并确保所有软件包都是最新的。yum -y install epel-releaseyum -y update步骤2.安装htop。使用yum命令安装htop进程监视工具:yum -y install htop安装后,通过输入以下命令启动htop:htopUbuntu 安装sudo apt install htop具体的使

2022-04-15 21:28:50 4386 2

原创 Spring Framework 5.2.19源码下载和编译

bean 的定义bean 的解析bean 的创建spring-framework官网点击如图所示github按钮,spring-framework的源码托管在了github上面,直接去github搜索也是可以的M1…M2(Milestone):里程碑版本,在版发布之前会出几个里程碑的版本。使用snapshot版本开发了一个时间,觉得最近写代码杠杠的,那么就整几个里程碑版本记录下吧RC1…RC2(Release Candidates):发布候选,内部开发到一定阶段了,各个模块集成后,经过细心的测

2022-02-21 14:50:28 1198

原创 Spring Cloud Alibaba之seata 分布式事务

Seata简单介绍Seata 是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。Seata术语TC (Transaction Coordinator) - 事务协调者:维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器: 定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM (Resource Manager) - 资源管理器: 管理分支事务处理的资源,与TC交谈以注册分支事

2022-02-18 21:18:59 1122

原创 【BUG记录】spring cloud 集成seata的时候:can not register RM,err:can not connect to services-server.

BUG背景我在部署seata-server,也就是seata的服务端的时候,使用了nacos 做为注册中心和配置中心,并使用的是docker 来部署的seata-server。如下博客Docker 部署 Seata Server(使用nacos 做为注册中心和配置中心)然后我使用spring cloud 结合使用seata来做分布式事务。但是却出现了如下错误我截取了部分日志出来,可见seata 内置netty来实现网络通信,8091也正是seata-server的端口,根据如下日志可知我们客户端程

2022-02-18 17:52:07 24988 3

原创 【BUG记录】Idea spring boot项目中target中没有同步更新最新目录文件及资源

BUG 日志可见是bean创建异常,依赖注入失败org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'buyServiceImpl': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error

2022-02-18 12:00:43 4108 2

原创 【BUG记录】mybatis-plus3 You have an error in your SQL syntax; check the manual that corresponds to your

BUG描述当我使用mybatis-plus3执行CRUD的时候,出现如下错误Creating a new SqlSessionSqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@18833453] was not registered for synchronization because synchronization is not activeJDBC Connection [HikariProxyConnection

2022-02-17 23:51:37 616 1

原创 【BUG记录】Data source rejected establishment of connection, message from server: “Too many connections“

BUG我的数据库连接工具dataGrip给我报出了标题那样的错误而与此同时我运行一个spring boot项目,使用spring data jpa 来操作数据库,这个项目运行不起来,会报出如下错误:连接数据库出现异常com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.可能原因mysql安装目录下的my.ini(linux: my.cnf)中设定的并发连

2022-02-17 21:37:36 1617 2

转载 【BUG记录】docker 报错:driver failed programming external connectivity on endpoint

原文地址docker端口映射或启动容器时报错 Error response from daemon: driver failed programming external connectivity on endpoint seata-server报错场景:看错误来判断应该是端口映射或者网络出现了问题,端口映射问题几率较大!原因:docker服务启动时定义的自定义链DOCKER由于 centos7 firewall 被清掉firewall的底层是使用iptables进行数据过滤,建立在ipta

2022-02-17 16:26:37 985 1

原创 Docker 部署 Seata Server(使用nacos 做为注册中心和配置中心)

组件版本关系版本说明每个 Spring Cloud Alibaba 版本及其自身所适配的各组件对应版本(经过验证,自行搭配各组件版本不保证可用)如下表所示(最新版本用*标记):docker 拉取 seata镜像seata github地址 seata目前已经维护到了1.4.2seata 手动下载地址因为和其他组件适配的关系,我使用docker部署1.3.0的seatadocker pull seataio/seata-server:1.3.0创建挂载文件夹mkdir -p /us

2022-02-17 13:51:15 2990 1

原创 ElasticSearch Java API之高级查询(分页查询,高亮查询,正则表达式查询,聚合查询等)

ElasticSearch 封装了很多查询方法首先我们需要批量插入数据,以做测试使用static void batchInsertDocument(RestHighLevelClient client) throws IOException { //创建批量新增请求对象 BulkRequest request = new BulkRequest(); request.add(new IndexRequest().index("userxt")

2022-02-14 21:49:02 6404 1

原创 ElasticSearch Java API之文档操作

文档Document简单介绍被索引的一条数据,索引的基本信息单元,以JSON格式来表示。比如:你可以拥有某一个客户的文档,某一个产品的一个文档,当然,也可以拥有某个订单的一个文档。文档以 JSON(Javascript Object Notation)格式来表示, JSON数据适合互联网数据交互。在一个 index/type 里面,你可以存储任意多的文档。文档对象新建一个User类,好插入数据到ElasticSearch 中@Datapublic class User { privat

2022-02-14 18:19:28 6290 1

原创 ElasticSearch Java API之索引操作

背景:ElasticSearch Java 客户端连接ElasticSearch以这篇博客为基础ElasticSearch:简单介绍以及使用Docker部署ElasticSearch 和 Kibana 这篇博客简单部署了ElasticSearch索引概念简单介绍通常说的索引有两种词性,名称和动词。动词索引indexing,索引一个文档,表示把一个文档存储到索引Index里,可以用来查询和检索,es采用倒排索引名词索引index,简单的理解成关系型数据库中的数据库的概念创建索引 static

2022-02-14 16:20:52 5840

原创 ElasticSearch Java 客户端连接ElasticSearch

ElasticSearch 客户端特征所有 Elasticsearch API 的强类型请求和响应。所有 API 有阻塞和异步版本。使用fluent的builders和功能模式,以便在创建复杂的嵌套结构时编写简洁且可读的代码。通过使用对象映射器(如 Jackson)或任何 JSON-B 实现来无缝集成应用程序类。将协议处理委托给 http 客户端(如Java Low Level REST Client),该客户端负责处理所有传输级别的问题:HTTP连接池、重试、节点发现等。ElasticS

2022-02-14 13:40:45 8800

原创 ElasticSearch:Rest API操作

methodurl地址描述PUT(创建,修改)localhost:9200/索引名称/类型名称/文档id创建文档(指定文档id)POST(创建)localhost:9200/索引名称/类型名称创建文档(随机文档id)POST(修改)localhost:9200/索引名称/类型名称/文档id/_update修改文档DELETE(删除)localhost:9200/索引名称/类型名称/文档id删除文档GET(查询)localhost:9200/索引名...

2022-02-13 22:49:17 6653

原创 ElasticSearch:集成IK分词器以及基本使用

IK分词器的简单介绍把一段中文划分成一个个的关键字,我们在搜索时候会把自己的语句进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作 ,默认的中文分词是将每个字分成一个词。目前比较流行的是ik分词器是一个好用的中文分词器。下载IK分词器根据你的Es的版本来下载对应版本的IK,这里我使用的是7.16.2的ES,所以就下载ik-7.16.2.zip的文件(这种版本对应的整挺好)下载网址ElasticSearch:简单介绍以及使用Docker部署ElasticSearch 和 Kiba

2022-02-12 22:10:20 5972

原创 ElasticSearch:简单介绍以及使用Docker部署ElasticSearch 和 Kibana

ElasticSearch在实际生产里通常和LogStash,Kibana,FileBeat一起构成Elastic Stack来使用ElasticSearch介绍ElasticSearch是什么?Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发

2022-02-12 15:19:50 8176

原创 kafka Java客户端之Connect API

kafka Connect 简单介绍Kafka Connect 是一个可扩展、可靠的在Kafka和其他系统之间流传输的数据工具。它可以通过connectors(连接器)简单、快速的将大集合数据导入和导出kafka。Kafka Connect可以接收整个数据库或收集来自所有的应用程序的消息到Kafka Topic。使这些数据可用于低延迟流处理。导出可以把topic的数据发送到secondary storage(辅助存储也叫二级存储)也可以发送到查询系统或批处理系统做离线分析。Connect API实现一个

2022-02-12 12:36:34 7079

原创 Kafka Java客户端Stream API

Kafka Stream概念及初识高层架构图Kafka Stream是Apache Kafka从0.10版本引入的一个新Feature,它提供了对存储于Kafka内的数据进行流式处理和分析的功能。简而言之,Kafka Stream就是一个用来做流计算的类库,与Storm、Spark Streaming、Flink的作用类似,但要轻量得多。Kafka Stream的基本概念:Kafka Stream是处理分析存储在Kafka数据的客户端程序库(lib)由于Kafka Streams是Kafka的一个

2022-02-10 22:03:05 5763

原创 kafka Java客户端之consumer 流量控制 以及 Rebalance解析

Consumer 流量控制为了避免Kafka中的流量剧增导致过大的流量打到Consumer端将Consumer给压垮的情况,我们就需要针对Consumer进行限流。例如,当处理的数据量达到某个阈值时暂停消费,低于阈值时则恢复消费,这就可以让Consumer保持一定的速率去消费数据,从而避免流量剧增时将Consumer给压垮。大体思路如下:在poll到数据之后,先去令牌桶中拿取令牌如果获取到令牌,则继续业务处理如果获取不到令牌,则调用pause方法暂停Consumer,等待令牌当令牌桶中的令牌足够,

2022-02-08 18:18:47 11389 3

原创 kafka Java客户端之 consumer API 多线程消费消息

kafka consumer 线程设计Kafka Java Consumer采用的是单线程的设计。其入口类KafkaConsumer是一个双线程的设计,即用户主线程和心跳线程。用户主线程,指的是启动Consumer应用程序main方法的线程,心跳线程(Heartbeat Thread)只负责定期给对应的Broker机器发送心跳请求,以表示消费者应用的存活性。Kafka consumer不是线程安全的。所有网络I/O都发生在进行调用应用程序的线程中。用户的责任是确保多线程访问正确同步的。非同步访问将导致

2022-02-08 14:41:31 7129 2

原创 kafka Java客户端之 consumer API 消费消息

背景:我使用docker-compose 搭建的kafka服务kafka的简单介绍以及docker-compose部署单主机Kafka集群使用consumer API消费指定Topic里面的消息首先我们需要使用Admin API 来创建Topic或者使用kafka的脚本文件来创建Topic脚本文件创建topic进入kafka容器docker exec -it ${CONTAINER ID} /bin/bashcd 到脚本文件的文件夹cd /opt/kafka/bin使用脚本文件创建To

2022-02-07 22:47:11 7091

原创 Kafka producer的事务和幂等性

背景:kafka 客户端之producer API发送消息以及简单源码分析从Kafka 0.11开始,KafkaProducer又支持两种模式:幂等生产者和事务生产者。幂等生产者加强了Kafka的交付语义,从至少一次交付到精确一次交付。特别是生产者的重试将不再引入重复。事务性生产者允许应用程序原子地将消息发送到多个分区(和主题)。幂等性Kafka在 0.11 版本引入了一项重大特性,幂等性。所谓的幂等性就是指 Producer 不论向 Server 发送多少次重复数据,Server 端都只会持久化一条

2022-02-06 20:58:32 7384

原创 BlockingQueue(阻塞队列)详解

原文地址主要在此基础上做了一点修改与补充一. 前言在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利。本文详细介绍了BlockingQueue家庭中的所有成员,包括他们各自的功能以及常见使用场景。二. 认识BlockingQueue阻塞队列,顾名思义,首先它是一个队列,而一个队列在数据结构中所起的作用大致如下图所示:从上图我们可以很清楚看到,通过一个共

2022-02-05 22:10:35 12663 1

转载 分门别类总结Java中的各种锁,让你彻底记住

原文地址前言本文需要具备一定的多线程基础才能更好的理解。学习java多线程时,最头疼的知识点之一就是java中的锁了,什么互斥锁、排它锁、自旋锁、死锁、活锁等等,细分的话可以罗列出20种左右的锁,光是看着这些名字就足以让人望而却步了,更别说一个个去理解它们的含义了。其实我要在这里告诉大家,我们看到的其实只是假象,其实根本没有这么多锁,或者这样说,这里边有很多锁其实就是一个东西,当我们从不同的侧重点去看的时候,它们就会衍生出不同的名字。本文就是着重将这些锁进行分门别类的总结,另外,本文不着重阐述锁的实现

2022-01-29 12:00:10 4856

原创 kafka 客户端之producer API发送消息(自定义负载均衡实现)与负载均衡调用源码分析

背景:kafka 客户端之producer API发送消息以及简单源码分析已经介绍了producer的异步发送和异步回调发送消息的基本使用,但是都是使用内置的负载均衡策略。kafka的负载均衡是在客户端实现的。自定义负载均衡实现在某些特殊的业务场景下我们经常会有自定义负载均衡算法的需求,在Kafka中可以通过实现Partitioner接口来自定义Partition负载均衡器。kafka自带的有三种实现DefaultPartitioner:如果record中指定了分区,则使用它;如果未指定分区但存

2022-01-28 21:22:40 7027

原创 kafka 客户端之producer API发送消息以及简单源码分析

背景:我使用docker-compose 搭建的kafka服务kafka的简单介绍以及docker-compose部署单主机Kafka集群Kafka API简单介绍kafka除了用于管理和管理任务的命令行工具,Kafka还有5个用于Java和Scala的核心API他们分别是The Admin API : 用于管理和inspect topics, brokers和其他 Kafka 对象The Producer API: 将事件流发布(写入)到一个或多个 Kafka topicsThe Cons

2022-01-28 14:56:40 7828

原创 kafka客户端操作之Admin API

Kafka API简单介绍kafka除了用于管理和管理任务的命令行工具,Kafka还有5个用于Java和Scala的核心API他们分别是The Admin API : 用于管理和inspect topics, brokers和其他 Kafka 对象The Producer API: 将事件流发布(写入)到一个或多个 Kafka topicsThe Consumer API: 订阅(读取)一个或多个topics并处理它们生成的事件流The Kafka Streams API: 用于实现流处理应用

2022-01-27 20:51:30 7023 1

原创 kafka的简单介绍以及docker-compose部署单主机Kafka集群

Kafka简单介绍Kafka是由Apache软件基金会开发的一个分布式、分区的、多副本的、多订阅者的开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。 这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。 这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。 对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案。Kafka的目的是通过H

2022-01-27 14:28:05 7731

转载 多线程下ThreadLocalRandom用法

原文地址学习 ThreadLocalRandom 的时候遇到一些疑惑,为何使用它在多线程下会产生相同的随机数?阅读源码后终于稍微了解了一些它的运行机制,总结出它在多线程下正确的用法,特此记录。ThreadLocalRandom的用处在多线程下,使用 java.util.Random 产生的实例来产生随机数是线程安全的,但深挖 Random 的实现过程,会发现多个线程会竞争同一 seed 而造成性能降低。其原因在于:Random 生成新的随机数需要两步:根据老的 seed 生成新的 seed

2022-01-25 23:03:57 4785

转载 ThreadLocal-面试必问深度解析

原文地址ThreadLocal简单介绍ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不同的变量值完成操作的场景。从数据结构入手,下图为ThreadLocal的内部结构图从上面的结构图,我们已经窥见ThreadLocal的核心机制:每个Thread线程内部都有一个Map。Map里面存储线程本地对象(key)和线程的变量副本(value)。但是,Th

2022-01-25 22:10:30 4812

原创 【Spring Cloud】Ribbon负载均衡策略介绍以及自定义负载均衡实现

负载均衡的实现方式客户端的负载均衡服务端的负载均衡(经常使用nginx来实现)ribbon 注册到nacos server之后,ribbon会从nacos server获取服务列表

2022-01-25 21:46:21 5696

转载 Volatile关键字详解

原文地址Java 内存模型的原子性、可见性、有序性基本概念原子性:原子是世界上的最小单位,具有不可分割性。比如 a=0;(a非long和double类型)这个操作是不可分割的,那么我们说这个操作时原子操作。再比如:a++; 这个操作实际是a = a +1;是可分割的,所以他不是一个原子操作。非原子操作都会存在线程安全问题,需要我们使用同步技术(sychronized)来让它变成一个原子操作。一个操作是原子操作,那么我们称它具有原子性。java的concurrent包下提供了一些原子类,我们可以通过阅

2022-01-24 21:36:52 4875

转载 并发问题的起源以及Java是怎么解决并发问题的(Java内存模型JMM)

主要在java内存模型JMM理解整理博客上做一点点增加。并发问题的起源并发问题的起源还是来于硬件。计算机的CPU、内存、I/O 设备的速度有极大差异的,为了合理利用 CPU 的高性能,平衡这三者的速度差异,计算机体系结构、操作系统、编译程序为此想出了不少办法。CPU增加了高速寄存器,以均衡与内存的速度差异操作系统增加了进程、线程,以分时复用 CPU,进而均衡 CPU 与 I/O 设备的速度差异编译程序优化指令执行次序,使得缓存能够得到更加合理地利用但是这些分别导致了可见性,原子性,有序性等

2022-01-24 21:18:17 4943

转载 Java线程状态切换和关闭线程的正确姿势

原文地址线程状态及切换Java中的线程有六种状态,使用线程Thread内的枚举类来实现,如下,我对每个状态都进行了一定的解释。public enum State { /** 表示一个线程还没启用(即未调用start方法)*/ NEW, /** * JVM中执行的线程都是处于这个状态的,但是处于这个状态不一定在JVM中执行, * 也就是说,只有这个状态有资格被JVM调度从而获得时间片执行。 */

2022-01-24 19:48:54 5191

转载 线程的属性

原文地址线程属性概览属性名称用途注意事项id每个线程都有自己的ID,用于识别不同的线程不允许被修改name便于用户在开发、调试或运行过程中区分每个不同的线程或定位问题等有默认的名称,用户自定义线程名称时,尽量定义的清晰有意义isDaemontrue:代表是守护线程,false:代表是非守护线程(用户线程)会继承父线程是否是守护线程的属性priority线程优先级,是告诉线程调度器,用户希望哪些线程在调度过程中更容易获得CPU资源线程默认和父线程的优先性相等,不应该依赖线程优先级进行编程线程 idID

2022-01-24 19:29:13 5175

3D烟花动画特效

用JavaScript实现的3D烟花动画特效,用来给大家借鉴借鉴。

2019-02-25

特效粒子图形变形动画

用jQuery实现特效粒子图形变形动画,用来给大家借鉴借鉴。

2019-02-25

图论算法整理

这是自己打ACM时整理的一些图论模板以及一些题目,代码有注释,包括常用的最短路径,最大流,最大匹配等算法

2018-06-08

做爬虫时需要使用到的抓包工具

Fiddler是一个很好用的抓包工具,可以将网络传输发送与接收的数据包进行截获、重发、编辑等操作。也可以用来检测流量。Fiddler安装后,设置的端口默认为8888,当Fiddler启动后,默认将IE的代理设为了127.0.0.1:8888,而其他如火狐浏览器需要手动设置代理后才可以抓包。

2018-06-08

空空如也

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

TA关注的人

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