- 浏览: 48461 次
- 性别:
- 来自: 北京
最新评论
文章列表
最近做多职位简历召回时,使用多线程进行es数据召回,发现每次es召回的时间大概在1000ms,甚至导致RuntimeException。linux机器cpu核数等于8
一、分析原因
1、单线程进行es数据召回,耗时30ms左右,猜猜是由于多线程导致的
2、切回线程池多线程执行es数据召回,每条数据耗时1000ms左右,此时线程池配置如下:
private static ExecutorService THREAD_POOL = new ThreadPoolExecutor(40,40, 60, TimeUnit.SECONDS, new LinkedB ...
如果要开发一个spring自定义的标签比如:
<pre:strategy id="strategyFrist" interface="org.test.spring.schema.strategy.FristStrategy"
url="tcp://strategy/frist" />
扩展Spring自定义标签大致需要如下几步:
创建需要扩展的组件
定义XSD文件描述组件内容
创建一个文件,实现BeanDefinitionParser接口,用来解析XSD文件中的定义和组件定义
创 ...
java获取resource目录下的文件
- 博客分类:
- JAVA基础
我们通常需要获取resource目录下的文件如配置文件,用于进行相应的数据获取。在WEB程序里面的jar、resources都是由Tomcat内部来加载的,所以你在代码中动态加载jar、资源文件的时候,首先应该是使用
Thread.currentThread().getContextClassLoader()。
URL l1 =
Thread.currentThread().getContextClassLoader().getResource("readFile/test1.xml");
System.out.println(l1);
URL l2 ...
最近突然萌发了研究JDK源码的想法,所以就想到了在自己常用的Eclipse上可以调试JDK源码。
整个设置过程也很简单:
首先你要安装好JDK(我的JDK安装路径根目录是D:\Java\jdk-8u92-windows-x64),JDK安装路径里有个“src.zip”就是JDK的源码文件压缩包;
java中的深复制和浅复制
- 博客分类:
- JAVA基础
前言:本文为复制文章,便于以后查阅,非常感谢原文作者,原文链接如下:https://www.cnblogs.com/Qian123/p/5710533.html
Java提高篇——对象克隆(复制)
阅读目录
为什么要克隆?
如何实现克隆
@ImportResouce 和 @Import 在springboot中的使用
@Import注解可以导入类(bean会被spring容器托管),也可以导入配置类(配置类中的所有bean会被spring容器托管)
@ImportResouce注解加载XML配置文件
1、@ImportResouce有两种常用的引入方式:classpath和file,具体查看如下的例子:
classpath路径:locations={"classpath:application-bean1.xml","classpath:application-bean ...
在SpringBoot使用ApplicationEvent&ApplicationListener完成业务解耦
前言:
项目中往往各个业务逻辑之间耦合性较强,因为我们在service都是直接引用的关联service或者jpa来作为协作处理逻辑,然而这种方式在后期更新、维护性难度都是大大提高了。通过使用事件通知、事件监听形式来处理逻辑时耦合性则是可以降到最小。
spring中事件监听实现
ApplicationEvent、ApplicationListener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为 ...
JavaWeb三大组件指的是:Servlet、Filter、Listener,这三个组件在JavaWeb开发中分别提供不同的功能。
本博客内容参考以下博客:
http://blog.csdn.net/gebitan505/article/details/70808730
http://blog.csdn.net/xiaojie119120/article/details/73274759
1、Servlet
Servlet是用来处理客户端请求的动态资源,也就是当我们在浏览器中键入一个地址回车跳转后,请求就会被发送到对应的Servlet上进行处理。
...
前言:在了解volatile关键字的过程中,在网上发现了一篇讲解特别清楚的,拷贝下来,便于以后查看,原文地址:
https://www.cnblogs.com/dolphin0520/p/3920373.html
Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。
volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于vola ...
在使用dubbo异步调用方法,遇到一个坑,类似于这个描述场景:客户端远程异步调用ServiceA,ServiceA在处理客户端请求的过程中需要远程同步调用ServiceB,ServiceA从ServiceB的响应中取数据时,得到的是null。网上找到的解决方法,感谢作者解惑,在这里记录一下,原文请参考:http://blog.csdn.net/windrui/article/details/52150345
dubbo对上下文信息的描述如下(点击查看 ):RpcContext 是一个 ThreadLocal 的临时状态记录器,当接收到 RPC 请求,或发起 RPC ...
1、前言,session一直都是我们做集群时需要解决的一个难题,过去我们可以从serlvet容器上解决,比如开源servlet容器-tomcat提供的tomcat-redis-session-manager、memcached-session-manager,现在我们可以通过springSession实现session在集群中的共享。
Spring Session提供了一个用于管理用户会话信息的API和实现,同时也支持集群会话而不受限于特定于应用程序容器的解决方案。
2、支持功能
1)、springSession支持将session存储到第三方存储容器, ...
在项目开发中,我们经常需要进行前后端接口联调的工作,以往通过api接口文档进行接口的描述,一旦接口有什么改动,就需要进行api文档的更改,很不方便,现在我们可以通过swagger进行接口的在线查看和调用,非常方便,如果你对swagger不是很了解,请看这里:5分钟了解swagger 。
下面以springboot为例,进行swagger的配置使用说明,具体如下:
1、引入pom
<dependency>
<groupId>io.springfox</groupId>
<artifactId>spr ...
在springboot中使用aop
1、加入pom
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
2、定义aop切面类
/**
* ClassName:MetricsAop <br/>
* @author shijun@richinfo.cn
* @versi ...
在实际业务中,我们经常会遇到树形的机构数据,如行政区划、栏目分类等。
数据库表的设计机构大致如下:
CREATE TABLE `ri_sys_cat` (
`cat_id` varchar(64) NOT NULL COMMENT 'ID',
`cat_kind` varchar(4) DEFAULT NULL COMMENT '行业分类类型',
`cat_code` varchar(10) DEFAULT NULL COMMENT '行业分类代码',
`cat_name` varchar(100) NOT NULL COMMENT '分类名称',
...
本文参考文章:
https://www.cnblogs.com/fjdingsd/p/5273008.html
https://app.yinxiang.com/shard/s48/nl/12116050/04c101dd-05f4-47cb-8f4d-ce4663e7f842/
如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性(ACID):
⑴ 原子性(Atomicity)
原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库 ...