java后端
方乐天
这个作者很懒,什么都没留下…
展开
-
es的同义词模块中expand=true带来的坑
同义词改成expand=false,则只识别出来同义词中的一个,在某个字段中含有a,在检索过程中,则只把a识别出来,而且只有a参与算分,比较合理。如果使用expand=true,在某个字段中含有a,在检索过程中,会把a b c d e f 都识别出来,并且都参与算分,这样会影响检索效果。原创 2023-02-15 17:26:19 · 626 阅读 · 0 评论 -
flink消费kafka消息,自定义keyselector
flink消费kafka消息原创 2022-08-05 15:27:00 · 746 阅读 · 1 评论 -
写的非常好的降级和回滚方案
功能上线之前,就算做了非常严格的功能测试和回归测试,也是不能百分之百保证上线后没问题的。因此研发第一个要做的事情是,上线前先列好线上问题处理方案,大概有如下几种场景:如果技术重构项目,必须有灰度开关,能随时切回去;如果是对接其他微服务接口的,必须保留原有的逻辑,万一新服务接口有问题,能降级到使用旧接口;如果是改动原有接口的,且是非常重要的核心功能,而且涉及到小程序端或者APP端联动一起修改的,那么就需要评估一下,前端和后端同时回滚的方案;;如果是数据库做了变更的,那么一定要做的事情是:旧代码访问变转载 2022-05-18 11:00:40 · 1077 阅读 · 0 评论 -
mysql插入数据时报“Incorrect string value”
com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect string value: '\xF0\x9F\x91\x87\xE4\xB8...'原因:字符串中有4个字节的字符,如表情字符,utf-8编码方式最多支持3字节解决办法:1.需要把mysql表对应的varchar字段改成utf8mb4类型2.需要在写入mysql的sql语句前面加上://设置mysql编码方式,使表情字符串可以正确写入try...原创 2020-06-12 13:52:50 · 988 阅读 · 0 评论 -
es7.x在查询时,必须加上track_total_hits,不然就只显示10000
{ "track_total_hits": true, "query": { "range": { "ts": { "gte": 0 } } }}原创 2020-04-16 18:06:10 · 7119 阅读 · 0 评论 -
es查询某个字段长度大于多少
{ "query": { "bool": { "filter": { "regexp": { "content": { "value": ".{1000,}" } } } } }}原创 2020-03-11 09:02:54 · 11376 阅读 · 0 评论 -
es的嵌套对象类型和嵌套对象聚合
https://www.elastic.co/guide/en/elasticsearch/reference/current/search-aggregations-bucket-nested-aggregation.htmlhttps://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html原创 2018-03-23 18:36:20 · 3692 阅读 · 0 评论 -
interceptor是非线程安全的
如题!一个xml文件里定义的interceptor一般来说是非线程安全的,所以用拦截器的话,不适合用在多线程应用的场景原创 2018-01-15 17:45:14 · 946 阅读 · 0 评论 -
一个非常好用的深度拷贝工具
如题!https://github.com/kostaskougios/cloning能解决你对一个非常庞大的bean,无法进行深度拷贝的问题,试过了,简单好使原创 2017-11-23 17:40:34 · 808 阅读 · 0 评论 -
mysql执行preparedStatement.executeUpdate时,只返回changedRows的行数,不返回涉及到的行数的办法
http://mybatis-user.963551.n3.nabble.com/Return-number-of-changed-rows-td3888464.html转载 2017-08-31 15:53:49 · 1166 阅读 · 0 评论 -
redis模糊查询scan
参考: http://www.redis.cn/commands/scan.html转载 2017-07-13 18:05:51 · 993 阅读 · 0 评论 -
Spring中的@scope注解
默认是单例模式,即scope="singleton"。另外scope还有prototype、request、session、global session作用域。scope="prototype"多例@scope默认是单例模式(singleton)如果需要设置的话@scope("prototype")1.singleton单例模式, 全局有且仅有一个实例2.转载 2017-03-08 20:12:31 · 401 阅读 · 0 评论 -
Arrays.asList()遇到的小问题
今天写一个单元测试的过程中,写了这么一段代码:Map paramMap = new HashMap(); paramMap.put("***", Arrays.asList(new int[]{1, 2})); 结果发现,Arrays.asList(new int[]{1, 2})里面出来的结果,不是我想要的一个链表, 里面有1, 2两条记录; 而是一条记录,里面是原来的数据[1, 2];查...原创 2018-04-23 15:43:11 · 200 阅读 · 0 评论 -
MySQL没有boolean类型
如题,转载自:https://www.cnblogs.com/xiaochaohuashengmi/archive/2011/08/25/2153011.html转载 2018-04-28 11:19:46 · 5835 阅读 · 0 评论 -
NullPointerException打印太多了,就有可能被jdk优化,不打印堆栈信息
The compiler in the server VM now provides correct stack backtraces for all "cold" built-in exceptions. For performance purposes, when such an exception is thrown a few times, the method may be recomp...转载 2018-05-21 15:24:26 · 1122 阅读 · 0 评论 -
runtimeException也是能够捕获的
如题,运行结果: bbbabcdef@Testpublic void testRuntimeException() { int a = 0; try { aaa333(); } catch (Exception ex) { System.out.println("bbb"); } Sy原创 2017-06-02 18:44:01 · 6773 阅读 · 1 评论 -
log4j2.xml中保证输出完整sql语句的办法
<logger name="java.sql.*" level="debug" additivity="true"></logger> <logger name="java.sql.ResultSet" level="debug" additivity="true">&原创 2018-08-20 16:48:11 · 4755 阅读 · 0 评论 -
java的static静态成员变量和static代码块,只有在类被调用或者实例化的时候,才会被赋值,或者调用
如题,如果该类,如A, 在入口程序或者整个执行栈过程中,都不出现,那么A中的static成员变量,或者static代码块,都不会执行。static的方法更是只有在调用的时候,才会执行。一般顺序:静态块----> 静态变量——>成员变量——>构造方法——>静态方法1、静态代码块(只加载一次) 2、构造方法(创建一个实例就加载一次)3、静态方法需要调用才会执行...原创 2019-06-22 15:30:35 · 1875 阅读 · 0 评论 -
linux 里面的crontab容易产生误区
linux 里面的crontab容易产生误区https://blog.csdn.net/liu0808/article/details/80668705原创 2019-07-31 10:59:16 · 133 阅读 · 0 评论 -
redis 清空
http://www.linuxidc.com/Linux/2012-03/57573.htmredis 清空所有数据的命令 flushall flushdb不管用好像keys查看所有的key原创 2014-06-06 18:19:38 · 2142 阅读 · 0 评论 -
mysql和oracle默认表存储结构的不同
这两天遇到一个问题,用同样的sql语句(没有order by),在数据相同的oracle和mysql中查询,出来的结果顺序是不同的:原因是: oracle默认是堆表,mysql默认是索引组织表,堆表和索引组织表的区别如下:堆表(heap table)数据插入时时存储位置是随机的,主要是数据库内部块的空闲情况决定,获取数据是按照命中率计算,全表扫表时不见得先插入的转载 2017-01-18 11:36:04 · 872 阅读 · 0 评论 -
java中finally详解
http://blog.csdn.net/u010533180/article/details/53018450转载 2016-11-03 17:49:31 · 363 阅读 · 0 评论 -
JProfiler使用过程中注意事项
如题!这两天在整JProfiler性能监控工具,使用过程中有几个需要注意的:1: 安装JProfiler的集成到ide的过程中,由于我们使用的是SpringSource Tool Suite Version: 2.8.1.RELEASE,所以集成过程中选择ide的版本选择Eclipse 3.5就行,也能装上使用。2:在使用Jprofiler使用的时候,ProfileSetting中原创 2015-03-12 17:15:55 · 689 阅读 · 0 评论 -
通过 Terracotta实现基于Tomcat的Web应用集群
本文介绍如何配置Tomcat和Terracotta服务器将普通的Web应用部署到集群中,实现跨Tomcat节点的session复 制,以达到负载均衡、提高系统吞吐量和灾难恢复的效果。基本原理简介一般利用Tomcat搭建Web应用集群有如下几种方法:1、利用负载均衡器的粘session的方式把所有同一session的请求都发送到相同的Tomcat节点。这样不同用户的请求就被平均分转载 2014-12-18 17:22:28 · 424 阅读 · 0 评论 -
交换两个数值型变量的最快方法
假设a,b 为两个数值型变量a = a XOR bb =原创 2014-08-20 16:56:35 · 610 阅读 · 0 评论 -
JAVA截屏
如题!Desktop.getDesktop().browse(new URI("http://www.people.com.cn/"));Robot robot = new Robot();robot.delay(3000);Dimension d = new Dimension(Toolkit.getDefaultToolkit().getScreenSize());原创 2014-06-16 17:06:19 · 628 阅读 · 0 评论 -
Eclipse启动时报错 An error has occurred. See error log for more details. loader constraint violation: loa
如题,springsourcetoolsuite 2.8.1release装了aptana3.0的插件后,某天突然baoc原创 2014-05-28 12:28:53 · 3145 阅读 · 0 评论 -
容易粗暴关闭catalina.out日志
简单粗暴关闭catalina.out日志catalina.out日志每过一段时间就会变得很大,在log.properties文件中配置了也不管用,就简单粗暴的将其关闭方法:将bin/catalina.sh中的if [ -z "$CATALINA_OUT" ] ; then CATALINA_OUT="$CATALINA_BASE"/logs/catalina.outfi修转载 2014-07-16 11:30:03 · 591 阅读 · 0 评论 -
java 中对list中的汉字进行排序
List resourceBeans = schemaService.getAllResourceBean();Collections.sort(resourceBeans, new Comparator() {@Overridepublic int compare(Bean o1, Bean o2) {return Collator.getInstance(java.ut原创 2014-01-02 10:27:27 · 807 阅读 · 0 评论 -
将斜杠替换成两个斜杠 java replaceAll方法 正则表达式
java replaceAll() 方法要用 4 个反斜杠,表示一个反斜杠 例如 str1="aa\bbb"; str2="aa'bbb"; 要想替换成 str1="aa\\bbb";str2="aa\'bbb"; 必须这样替换: str1 = str1.replaceAll("\\\\", "\\\\\\\\");转载 2013-12-03 15:49:36 · 788 阅读 · 0 评论 -
spring xml配置文件中指定的xsd文件读取不到了org.xml.sax.SAXParseException:
有时候你会发现过去一直启动正常的系统,某天启动时会报出形如下面的错误:[plain] view plaincopyorg.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/s转载 2013-12-09 12:14:12 · 3141 阅读 · 0 评论 -
java对于汉字的首字母排序,遇到生僻字时,不要使用Collator.getInstance(java.util.Locale.CHINESE),而要用com.ibm.icu.util.ULocale
1.对于数组的排序方法如下:String[] names = {"王林", "杨宝", "李镇", "刘迪", "刘波"}; Arrays.sort(names, com.ibm.icu.text.Collator.getInstance(com.ibm.icu.util.ULocale.SIMPLIFIED_CHINESE));//升序; System.out.print原创 2015-04-28 09:46:57 · 10954 阅读 · 0 评论 -
Java中的正则表达式中的中文
和普通正则表达式有区别:1. 匹配中文有区别转载自:http://blog.csdn.net/xyls12345/article/details/23942533转载 2015-06-05 10:45:50 · 460 阅读 · 0 评论 -
postgre数据库在上一个语句执行失败后,需要提交事务才能开始下一个语句
如题!今天工作中遇到问题,在上一条sql语句执行失败后,紧接着执行下一条sql语句,结果报以下异常:PSQLException: current transaction is aborted, commands ignored until end of transaction block通过google到stackoverflow,发现原来是因为设置了con原创 2016-07-15 17:51:43 · 2406 阅读 · 3 评论 -
ES是如何实现节点容灾的
ES是如何实现节点容灾的1. ES中的index,首先会进行分片,每一个分片数据一般都会有自己的副本数据,ES分配分片的策略会保证同一个分片数据和自己的副本不会分配到同一个节点上2. 当集群中的某一节点宕机后,ES的master在ping该节点时通过一定的策略会发现该节点不存活;此时,ES开启恢复过程,恢复的策略如下: 2.1. 恢复的目标是保证集群中分片的副本数不变转载 2016-06-13 15:18:12 · 3686 阅读 · 0 评论 -
es中doucment失效的同时更新可能出现的问题
elastic search的document在正常情况下更新是没什么问题的,但是如果刚好在ttl到期的同时去更新这个document,会有什么问题呢?这两天刚好遇到了这个情况,报如下异常:at org.elasticsearch.common.util.concurrent.BaseFuture$Sync.get(BaseFuture.java:279)at org.原创 2016-06-12 10:59:44 · 2359 阅读 · 0 评论 -
log4j.properties文件自动加载
今天看代码,发现log4j.properties。没有相应的加载代码,但它却生效了,这多神奇! 看进去,org.apache.log4j, LogManager.java,其有一个static方法块: static { // By default we use a DefaultRepositorySelector which always returns '转载 2016-04-20 15:27:24 · 1825 阅读 · 0 评论 -
java中long值表达式需要注意的一种情况
今天工作中遇到一个情况,long bigInterval = 7 * 30 * 24 * 60 * 60 * 1000;但是实际使用中发现计算出来的bigInterval值为 bigInterval:964130816然后发现这个值是不对的,编译和运行不会报错,但是会有提示,Numeric overflow in expression改为:l原创 2016-04-19 18:04:12 · 5004 阅读 · 0 评论 -
thrift客户端调用不支持多线程方式,非线程安全
thrift client是非线程安全,多线程下使用可能导致server和客户端程序崩溃。client的每次远程方法调用其实是多次调用socket写操作,非原子操作。多线程交错使用,使从代码上看来是一次性完整的东西会出现错乱。所以必须从socket层次一开始就保证其独立性。这就是根本原因了。http://blog.sina.com.cn/s/blog_98cf2a6f0101a转载 2015-08-11 13:56:41 · 3674 阅读 · 0 评论 -
redis服务端最大客户端数
maxclients 最大客户端数# Set the max number of connected clients at the same time. By default# this limit is set to 10000 clients, however if the Redis server is not# able ot configure the process fil原创 2015-06-12 14:56:54 · 1075 阅读 · 0 评论