java
文章平均质量分 60
不会吉他的肌肉男不是好的挨踢男
这个作者很懒,什么都没留下…
展开
-
java线程池ThreadPoolExecutor类使用最全实战
在《阿里巴巴java开发手册》中指出了线程资源必须通过线程池提供,不允许在应用中自行显示的创建线程,这样一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。而线程池不允许使用Executors去创建,而要通过ThreadPoolExecutor方式,这一方面是由于jdk中Executor框架虽然提供了如newFixedThreadPool()、newSingleThreadExecutor()、newCachedThreadPool()等创建线程.转载 2021-06-05 14:29:38 · 441 阅读 · 0 评论 -
Springboot+MyBatis-Plus+druid多数据源配置实现数据库执行分表数据迁移
最近项目的数据库有单表数据已经超过2千w了,开始进行用mycat分表,就需要把之前的数据重新导入mycat逻辑表中,按着有分表规则依次分散到不同的分表当中。我的操作是部署一个mycat服务并配置好一系列的分表配置,写一个多数据源程序,从原始的数据库链接中读取数据再插入mycat的链接中参考 mycat 多数据源官方文档1.application.yml配置文件spring: datasource: type: com.zaxxer.hikari.HikariDataSource .原创 2021-06-04 10:51:25 · 815 阅读 · 1 评论 -
springboot 整合kafka最强指南
首先部署好kafka和Zookeeper 可以参考我的其他博文 在Windows上搭建Kafka 或者Windows环境下Zookeeper安装配置一、kafka与Spring版本对应的关系表先看一下我的基础环境springboot version:springboot2.1.3.RELEASEkafka version :2.2.4.RELEASE集成之前先放上一张官网的kafka与Spring版本对应的关系表,后续如遇到消息不能正常发送接收就请排查一下是不是版本问题官网链接:http原创 2021-06-01 16:41:09 · 1449 阅读 · 1 评论 -
elasticsearchTemplate 多个字段一次性聚合统计
现有一个机构表 有hospitalId,hospitalName 想统计出的结果是|hospitalId | hospitalName |count|- 2238-|-XXXXXXXX医院-|2000|- 2268-|-XXXXXXXX医院-|2565当我们通过hospitalId 聚合查询时候 得到的结果是|hospitalId |count|- 2238-|2000|- 2268-|2565用户根本不知道2238是哪个机构 所以这里可以通过hospitalId 和hospital原创 2021-05-28 15:11:11 · 617 阅读 · 0 评论 -
elasticsearch基本操作之--使用QueryBuilders进行查询
QueryBuilder 是es中提供的一个查询接口, 可以对其进行参数设置来进行查询复制代码package com.wenbronk.javaes;import java.net.InetSocketAddress;import java.util.ArrayList;import java.util.Iterator;import java.util.Map.Entry;import org.elasticsearch.action.ListenableActionFuture;.原创 2021-05-25 11:30:38 · 1160 阅读 · 0 评论 -
ElasticSearch中 如何使用“group by“ 进行日 周 月 年统计呢?(ElasticsearchTemplate进行聚合查询)
我用的es是 6.8.1如果我们想在es实现sql 中的group by 进行 日 周月年的统计SELECT COUNT(id) FROM patientstudy GROUP BY createTime;先介绍下 es DateHistogramInterval public static final DateHistogramInterval SECOND = new DateHistogramInterval("1s"); public static final Date.原创 2021-05-20 11:06:01 · 1650 阅读 · 0 评论 -
ElasticSearch中使用“group by“ 统计 (ElasticsearchTemplate进行聚合查询)
我用的es是 6.8.1如果我们想在es实现sql 中的group by的查询统计效果SELECT COUNT(id) FROM patientstudy GROUP BY hospitalId;在kibana中执行命令POST /patientstudy/_search?size=0{ "aggs" : { "count" : { "terms" : { "field" : "hospitalId" } } }}看结果用java怎么实现呢 pub.原创 2021-05-20 10:35:57 · 4440 阅读 · 0 评论 -
Java多线程原来可以有返回值
一、概述根据我之前的博文不能错过的java 多线程总结终结版,我们已经能够声明并使一个线程任务运行起来了。但是遇到一个问题:现在定义的任务都没有任何返回值,那么加入我们希望一个任务运行结束后告诉我一个结果,该结果表名任务执行成功或失败,此时该怎么办呢?答案是使用Callable。之前定义的任务都直接实现了Runnable,该接口的run方法并无返回值。而Callable的call方法可以根据你传入的泛型参数返回对应类型的数据。二、实现在使用多线程时需要每个线程的返回值,自己的类需要实现Callabl原创 2021-04-28 14:21:51 · 393 阅读 · 0 评论 -
不能错过的java 多线程总结终结版
作为一个合格的java程序员,说到多线程我们应该很快的想到 线程池如何让创建?线程池的核心属性有哪些?线程池的优势又有哪些?使用线程池不当又会出现什么样的问题?一 、我们为什么需要使用线程池?总体来说,线程池有如下的优势:(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分.原创 2021-04-28 11:41:38 · 324 阅读 · 0 评论 -
springCloud Gateway StripPrefix和PrefixPath过滤器的区别
一、 StripPrefix FilterStripPrefix Filter 是一个请求路径截取的功能,我们可以利用这个功能来做特殊业务的转发。server: port: 8080#--- #三个横线表示再创建一个配置文件spring: #profiles: predicate-path #配置文件名 和 spring.profiles.active 相对应 #配置程序名为eureka-gateway-client application: name:原创 2021-04-15 15:08:06 · 2641 阅读 · 0 评论 -
SpringBoot2+Netty 实现websocket,支持URL参数,支持Channel和用户绑定关系
1.pom依赖<!-- WebSocket --> <dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1.36.Final</version> </dependency>原创 2021-04-06 10:59:44 · 930 阅读 · 1 评论 -
java监控目录文件的实现方法
最近公司的项目要采集客户服务器的文件,但按照常规的对接方法无法实现。遂开始了解监控文件的实现方式。利用common-io包进行监控使用Commons-io的monitor下的相关类可以处理对文件进行监控,它采用的是观察者模式来实现的有以下特点可以监控文件夹的创建、删除和修改可以监控文件的创建、删除和修改采用的是观察者模式来实现的采用线程去定时去刷新检测文件的变化情况1、导入依赖<dependency> <groupId>commons-io</.转载 2021-03-29 15:05:22 · 367 阅读 · 0 评论 -
spring boot 整合elasticsearch 实现全局搜索
注意spring boot版本,我使用的是2.1.4.RELEASE本文在我之前的博文canal deployer+canal adapter自动同步MySQL数据到ElasticSearch 基础下进行1.引入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data.原创 2021-03-09 11:31:35 · 668 阅读 · 0 评论 -
canal deployer+canal adapter自动同步MySQL数据到ElasticSearch
一、安装Elastic Search 6.81.下载Elastic Search 6.8资源下载2.部署环境配置创建用户(es不能使用root启动,否则报错)adduser elastic修改服务器配置a)vi /etc/sysctl.conf添加配置vm.max_map_count = 262144b)vi /etc/security/limits.conf添加配置* soft nofile 65536*原创 2021-03-09 11:14:22 · 1426 阅读 · 0 评论 -
使用 Java 8 的流获取 List 中的重复元素
废话不多说 直接上代码public class test { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("java"); list.add("java"); list.add("python"); System.out.println(getDuplicat原创 2021-03-02 15:57:22 · 788 阅读 · 0 评论 -
springCloud微服务集群部署定时任务保证只在一个服务器运行一次
首先说下情况,我们平常开发SpringCloud微服务的时候,若要确保高可用,同一服务都会部署多台实例,然后注册到Eureka上。一般我们会把所有定时任务写到一个服务里,那平常单实例的时候,都可以正常执行。如果该定时任务服务部署多个实例,如何确保只在一个服务实例里执行任务呢?个人总结了下,可以有以下解决思路。使用分布式锁借助分布式锁,确保多个实例里的task只有竞争到锁的实例任务才执行。比如,redis的分不式锁。这种方式不好的地方是需要修改逻辑代码,增加了对redis的依赖。 /**原创 2021-01-26 14:01:14 · 4214 阅读 · 0 评论 -
分库分表需要知道的分布式ID生成方式
最近公司的数据有单表超过千万条数据了,需要考虑分库分表了,先来了解下分布式ID生成方式吧!来源 程序员内点事一、为什么要用分布式ID?在说分布式ID的具体实现之前,我们来简单分析一下为什么用分布式ID?分布式ID应该满足哪些特征?1、什么是分布式ID?拿MySQL数据库举个栗子:在我们业务数据量不大的时候,单库单表完全可以支撑现有业务,数据再大一点搞个MySQL主从同步读写分离也能对付。但随着数据日渐增长,主从同步也扛不住了,就需要对数据库进行分库分表,但分库分表后需要有一个唯一ID来标.原创 2020-12-10 11:12:02 · 398 阅读 · 0 评论 -
java dcm4che findscu实现workList通讯——客户端SCU
全网实现workList服务的,要么是基于C++的DCMTK、要么是基于C#的fo-dicom。想用dcm4che实现 找了好几个月都没有一个例子。无奈只能通过DCMTK和fo-dicom 实现方式并查看dcm4che源码自己实现了。经过不懈的努力总算是实现了并实际跟设备测试成功!首先得先了解 DICOM worklist工作原理?一、关于Worklist在RIS与PACS的系统集成中。Wordlist的连接bai为其主要工作之一。Wordlist成像设备工作列表,它是DICOM协议中众多服务类别.原创 2020-11-12 15:28:50 · 5709 阅读 · 32 评论