自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(30)
  • 问答 (1)
  • 收藏
  • 关注

原创 ### Error updating database. Cause: java.sql.SQLException: Incorrect string value: ‘\\xF0\\x9F\\xA6

mysql保存数据是报错:Incorrect string value

2023-01-13 14:41:03 1316

原创 elastic-job分片介绍

分片ElasticJob 中任务分片项的概念,使得任务可以在分布式的环境下运行,每台任务服务器只运行分配给该服务器的分片。 随着服务器的增加或宕机,ElasticJob 会近乎实时的感知服务器数量的变更,从而重新为分布式的任务服务器分配更加合理的任务分片项,使得任务可以随着资源的增加而提升效率。任务的分布式执行,需要将一个任务拆分为多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片项。举例说明,如果作业分为 4 片,用两台服务器执行,则每个服务器分到 2 片,分别负责作业的 50% 的负载

2022-02-23 10:50:08 3624

原创 SchedulerX分布式定时任务MapReduce模型

Map模型基于MapJobProcessor,调用Map方法,即可实现大数据分布式跑批的能力。注意事项SchedulerX不保证子任务一定执行一次,在特殊条件下会failover,可能会导致子任务重复执行,需要业务方自己实现幂等。SchedulerX使用的是Hessian序列化框架,目前不支持LocalDateTime和BigDecimal。子任务中如果有如上两个数据结构,请替换其他的数据结构(特别是BigDecimal,序列化不会报错,反序列化会变成0)。接口执行方式并行计算:最多支

2022-02-22 21:01:32 1319

原创 分布式任务框架

quartzquartz 的常见集群方案如下,通过在数据库中配置定时器信息, 以数据库悲观锁的方式达到同一个任务始终只有一个节点在运行,保证节点高可用 (HA), 如果某一个几点挂了, 其他节点可以顶上缺点:同一个任务只能有一个节点运行,其他节点将不执行任务,性能低,资源浪费当碰到大量短任务时,各个节点频繁的竞争数据库锁,节点越多这种情况越严重。性能会很低下quartz 的分布式仅解决了集群高可用的问题,并没有解决任务分片的问题,不能实现水平扩展xxl-job由个人开源的一个轻量级分布式任

2022-02-22 20:08:16 1795

原创 如何使用Redis实现分布式锁

单机上的锁和分布式锁的联系与区别我们先来看下单机上的锁。对于在单机上运行的多线程程序来说,锁本身可以用一个变量表示。变量值为 0 时,表示没有线程获取锁;变量值为 1 时,表示已经有线程获取到锁了。我们通常说的线程调用加锁和释放锁的操作,实际上,一个线程调用加锁操作,其实就是检查锁变量值是否为 0。如果是 0,就把锁的变量值设置为 1,表示获取到锁,如果不是 0,就返回错误信息,表示加锁失败,已经有别的线程获取到锁了。而一个线程调用释放锁操作,其实就是将锁变量的值置为 0,以便其它线程可以来获

2021-08-03 21:03:18 149

原创 redis原子操作

我们在使用 Redis 时,不可避免地会遇到并发访问的问题,比如说如果多个用户同时下单,就会对缓存在 Redis 中的商品库存并发更新。一旦有了并发写操作,数据就会被修改,如果我们没有对并发写请求做好控制,就可能导致数据被改错,影响到业务的正常使用(例如库存数据错误,导致下单异常)。为了保证并发访问的正确性,Redis 提供了两种方法,分别是加锁和原子操作。加锁是一种常用的方法,在读取数据前,客户端需要先获得锁,否则就无法进行操作。当一个客户端获得锁后,就会一直持有这把锁,直到客户端完成数据更新,才释放

2021-08-03 20:34:51 11069 1

原创 如何解决缓存不一致?

缓存和数据库的数据不一致是如何发生的?首先,我们得清楚“数据的一致性”具体是啥意思。其实,这里的“一致性”包含了两种情况:缓存中有数据,那么,缓存的数据值需要和数据库中的值相同;缓存中本身没有数据,那么,数据库中的值必须是最新值。不符合这两种情况的,就属于缓存和数据库的数据不一致问题了。不过,当缓存的读写模式不同时,缓存数据不一致的发生情况不一样,我们的应对方法也会有所不同,所以,我们先按照缓存读写模式,来分别了解下不同模式下的缓存不一致情况。我在第 23 讲中讲过,根据是否接收写请求,我们可以

2021-08-03 20:23:25 2190

原创 Redis数据类型及使用场景

Redis数据类型及使用场景Redis数据类型及使用场景Redis相比其它的KV数据库,其一大特点是支持丰富的数据类型。它一共支持5种数据类型,下面逐一介绍这5种数据类型及其使用场景和内部实现方式。string简介:Strings数据类型是最常用、简单的key-value类型,普通的key/ value 存储都可以归为此类。value不仅可以是字符串,也可以是数字。因为是二进制安全的,所以你完全可以把一个图片文件的内容作为string来存储。Redis的string可以完全实现目前memca

2021-08-02 19:15:22 195

原创 springboot duboo.reference.check不生效问题

前段时间遇到一个问题,调用dubbo服务经常出现空指针异常,重新一下就解决了, 后来定位到问题是dubbo服务没有找到,导致服务对象是null;经排查发现原因是dubbo服务没有配置check=false属性,看dubbo的配置文件里,已经配置了duboo.reference.check=false.查看其他一些文章也提到duboo.reference.check设置成false,后来换成dubbo.consumer.check=false,这样就能生效了。为了搞清楚原因特地看了一下源码,原来consum

2021-02-20 16:51:10 1876

原创 JRebel插件使用详解

简介Jrebel 可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel是一款JAVA虚拟机插件,它使得JAVA程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。JRebel使你能即时分别看到代码、类和资源的变化,你可以一个个地上传而不是一次性全部部署。当程序员在开发环境中对任何一个类或者资源作出修改的时候,这个变化会直接反应在部署好的应用程序上,从而跳过了构建和部署的过程,可以省去大量的部署用的时间。JRebel是一款JVM插件,它使得Java代码修改后不用

2020-10-27 20:02:41 427

转载 “零拷贝”是什么

前言List itemI/O概念 1.缓冲区 2.虚拟内存 3.mmap+write方式 4.sendfile方式Java零拷贝1.MappedByteBuffer2.DirectByteBuffer3.Channel-to-Channel传输Netty零拷贝其他零拷贝总结前言从字面意思理解就是数据不需要来回的拷贝,大大提升了系统的性能;这个词我们也经常在java nio,netty,kafka,RocketMQ等框架中听到,经常作为其提升性能的一

2020-06-30 09:46:55 426

原创 elasticsearch 深度分页问题

elasticsearch分页对于用过es的人应该都会使用 ,和数据库的分页类似,如下所示,通过from + size可以对数据进行分页。{ "from" : 0, "size" : 10, "query" : { "term" : { "user" : "dejun" } }} 可以查询1-10条记录,不过由于es是分布式的,数据都是分布...

2020-03-15 20:41:46 1026

原创 elasticsearch 数据类型text和keyword区别

在es 2.*版本里面是没有这两个字段,只有string字段。5.*之后,把string字段设置为了过时字段,引入text,keyword字段这两个字段都可以存储字符串使用,但建立索引和搜索的时候是不太一样的keyword:存储数据时候,不会分词建立索引text:存储数据时候,会自动分词,并生成索引(这是很智能的,但在有些字段里面是没用的,所以对于有些字段使用text则浪费了空间)。所以...

2019-10-14 13:49:28 14461 1

原创 java如何将中文转换成byte数组

作为一名程序员,有时候会在想,java是如何将一个中文字符,转化成一个byte数组,是如果从一个byte数组转化成字符的呢? 其实大家都知道utf-8英文占1个字节,中文占3个字节,GBK中文英文都占2个字节,但是我想问,比如utf-8,有谁知道一个中文字符是如何在java中转换成一个byte数组的?好了,下面进入我们的正题:例如;中 这个字是如何转换成一个byte数组的?String st...

2019-05-26 13:21:46 24903 4

转载 阿里巴巴程序员常用的 15 款开发者工具

从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:工具名称和简介使用...

2019-05-07 13:54:48 16037

原创 javax.net.ssl.SSLException: Received fatal alert: protocol_version)解决办法

具体解决办法见:https://blog.csdn.net/gudejundd/article/details/89640741 讲解的很详细

2019-04-30 09:36:17 50250

原创 https如何设置TLS协议版本 javax.net.ssl.SSLException: Received fatal alert: protocol_version)

1.什么是TLSSSL 是“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。(顺便插一句,网景公司不光发明了 SSL,还发明了很多 Web 的基础设施——比如“CSS 样式表”和“JS 脚本”)为啥要发明 SSL 这个协议捏?因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点——比如传输内容会被偷窥(嗅探)和篡改。...

2019-04-28 17:21:41 63349 12

原创 maven jetty插件启动如何指定端口号

在jetty的maven插件中有两种方式设置jetty的端口(默认为:8080)。第一种,通过命令行,在启动jetty的时候设置:mvn -Djetty.port=10086 jetty:run第二种,是在maven的pom文件中进行设置:<plugin> <groupId>org.mortbay.jetty</groupId> ...

2019-04-11 16:13:33 18145

原创 slf4j logback commons-logging log4j 冲突解决办法

首先介绍一下各个日志组件的作用以及用法,如果想要解决此类冲突的问题,首先要对它们有一定的了解,当你了解后,对于以后出现的这类问题能够迎刃而解,本文会用通俗易懂的语言给大家解释。1.我们经常看到的日志组件有哪些? commons-logging log4j slf4j logback java.util.logging(JDK自带)...

2018-11-16 20:11:29 18307

转载 设计模式介绍及Java描述

文章比较长,读者可以通过顶端的目录选择要了解的模式,然后通过文章右边的按钮快速返回顶部重新选择一个新的模式浏览博主精心准备了大量的示例代码。文章尽量提供与编程相关的例子,而不是像多数其他介绍的文章一样,提供一些感觉挺滑稽的例子(那样的例子可能看完觉得写得很好,然而还是不会用…)。本文耗费了作者大量时间,还请亲们给个赞O(∩_∩)O~也可以通过CTRL+F并输入要了解的模式并跳到对应位置。文...

2018-10-09 09:49:56 16217

转载 Spring属性占位符PropertyPlaceholderConfigurer的使用

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2017-06-20 09:53:48 16288

原创 @Transactional 无效的解决方案

关于@Transactional注解 一般都认为要注意以下三点 在需要事务管理的地方加@Transactional 注解。@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上 。@Transactional 注解只能应用到 public 可见度的方法上 。 如果你在 protected、private 或者 package-visible 的方法上

2017-01-12 17:36:24 49016 12

原创 双十一红包集结令二维码

双11红包集结令怎么玩?一.双11红包集结令活动时间集结时间:2016年10月20日15:00:00至2016年10月31日20:00:00领取时间:2016年11月1日00:00:00至2016年11月3日23:59:59二.双11红包集结令参与条件1.用户的淘宝会员账号所绑定的支付宝账号须通过实名认证,并开启余额支付功能,否则不能获取红包;2.用户在2009年至2015年的历年双11当天存在有效

2016-10-24 19:08:58 2371

原创 spring boot No qualifying bean of type [org.springframework.boot.autoconfigure.web.ErrorAttributes]

spring-boot 项目java.lang.IllegalStateException: Failed to load ApplicationContext    at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheA

2016-10-20 12:44:46 23612

原创 spring boot+mybatis 多数据源报错 No qualifying bean of type [javax.sql.DataSource] is defined:

spring boot+mybatis 项目多数据源配置 多数据源报错 mutilple dataSource failed  No qualifying bean of type [javax.sql.DataSource] is defined: expected single matching bean but found 2: payment-dataSource,wacCommondataSource 之前一个数据源一切正常,今天突然增加一个数据源  如

2016-10-20 12:36:49 48537 20

原创 The method of type must override a superclass method解决方式

工程导入myeclipse时,出现问题提示:The method of type must override asuperclass? annotation:@Override的原因查阅了一下资料,发现说在jdk1.5下要使用@Override 这个annotation 必须保证 被标注方法来源于class 而不是interface,但我检查过,发现自己的jdk确实是1.6

2015-04-21 14:13:08 16310

转载 String 的 split、subString,外加StringTokenizer之性能比较

最近在阅读java.lang下的源码,读到String时,突然想起面试的时候曾经被人问过:都知道在大数据量情况下,使用String的split截取字符串效率很低,有想过用其他的方法替代吗?用什么替代?我当时的回答很斩钉截铁:没有。google了一下,发现有2中替代方法,于是在这里我将对这三种方式进行测试。测试的软件环境为:Windows XP、eclipse、JDK1.6。测试用例使用

2015-04-03 09:56:46 638

转载 session和cookie的理解

对session和cookie的一些理解由于项目需要,最近用session容器比较多,传载的同时加上了自己的一些理解,不足之处还请大家补充和纠正。一、cookie机制和session机制的区别*************************************************************************************Cooki

2015-02-12 09:43:12 345

原创 Java中static、final用法小结

一、final1.final变量:      当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方,一是其定义处,也就是说在final变量定义时直接给其赋值,二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不

2015-02-03 14:49:01 16200

原创 java &和&&的区别

面试中常常会被问到的,实际开发中可能大家对&&用的比较多点(当然这边是指大部分),下面谈谈自己对&和&&的理解。&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式,例如,对于if(str

2015-02-02 16:20:16 425

空空如也

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

TA关注的人

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