- 博客(145)
- 资源 (58)
- 收藏
- 关注
原创 spring boot 使用 undertow 替换tomcat web容器
spring boot 默认使用tomcat web容器1.需要移除tomcat依赖 pom.xml 中配置。<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion>.
2020-08-31 10:36:40 812
原创 spring boot 支持https和http
配置文件server.port=443 server.tomcat.max-threads = 2000server.tomcat.uri-encoding = UTF-8server.tomcat.MaxConnections = 2000server.tomcat.ConnectionTimeout = 3000server.ssl.key-store=classpath:21...
2018-10-17 14:11:25 929
原创 spring 读写分离
Spring 配置读写分离。准备一个主库 账号为 读写权限,一个从库 账号为只读权限。配置文件datasource.url= jdbc:mysql://*******rds.aliyuncs.com:3306/test?allowMultiQueries=truedatasource.username=testdatasource.password=testdatasource.driver= c...
2018-04-23 11:58:01 223
原创 Maven打包,包下的xml丢失的解决
maven打包时,除了java的编译文件,其他文件会被过滤掉,添加如下配置,可以解决在build 节点中增加以下配置src/main/java**/*.properties**/*.xmlfalsesrc/main/resources
2017-08-17 10:13:15 1999
原创 01 spring-cloud-alibaba nacos 安装配置
一、Nacos介绍Nacos是SpringCloudAlibaba架构中最重要的组件。Nacos 是一个更易于帮助构建云原生应用的动态服务发现、配置和服务管理平台,提供注册中心、配置中心和动态 DNS 服务三大功能。能够无缝对接Springcloud、Spring、Dubbo等流行框架。nacos和eureka功能对比nacos支持a(高可用)p(分区容错)和c(一致性)p的切换默认为ap, eureka仅支持ap,zookeeper仅支持cp二、nacos能做什么?服务注册发现和服务健康监测:
2022-03-30 14:22:33 330
原创 4. Java Stream 中方法
Stream 中方法的使用案例:limit、sorted、filter、count、findFirst、findAny、map、mapToInt、mapToLong、mapToDouble、flatMap、flatMapToInt、flatMapToLong、flatMapToDouble、anyMatch、allMatch、noneMatch、reduce、toArray实例:人员实体:package com.study.stream;import java.util.List;i
2022-03-21 19:37:00 3003
原创 5. Lambda Predicate
1.源码:@FunctionalInterfacepublic interface Predicate<T> { /** * 具体过滤操作 需要被子类实现. * 用来处理参数T是否满足要求,可以理解为 条件A */ boolean test(T t); /** * 调用当前Predicate的test方法之后再去调用other的test方法,相当于进行两次判断 * 可理解为 条件A && 条件B
2022-03-20 12:24:39 814
原创 java compareTo 方法 和 Comparator 接口
compareTo 方法是接口 Comparable 的实现返回值是整型,它是先比较对应字符的大小(ASCII码顺序),如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的长度差值,如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方结束。如果参数字符串等于此字符串,则返回值 0; 如果此字符串小于字符串参数,则返回一个小于 0 的值; 如果此字符串大于字符串参数,则返回一个大于 0 的值。说明:如果第一个字符和
2022-03-14 20:37:05 5202
原创 3. Java Stream 集合去重 distinct
distinct()使用hashCode()和equals()方法来获取不同的元素。因此,我们的类必须实现hashCode()和equals()方法。如果distinct()正在处理有序流,那么对于重复元素,将保留以遭遇顺序首先出现的元素,并且以这种方式选择不同元素是稳定的。在无序流的情况下,不同元素的选择不一定是稳定的,是可以改变的。distinct()执行有状态的中间操作。 在有序流的并行流(parallelStream)的情况下,保持distinct()的稳定性是需...
2022-03-08 15:39:26 3425
原创 2.Java Stream()与ParallelStream()
1. Stream 的操作分类Stream 的操作 中间操作 无状态 unordered,filter,map,mapToInt,mapToLong,mapToDouble, flatMap,flatMapToInt,flatMapToLong,flatMapToDouble,peek 有状态 distinct,sorted,limit,skip 结束操作 非短路操作 forEach,forEachOrdered,toArray,redu
2022-03-08 15:28:48 852
原创 1. Java Stream 概述
Stream,配合Lambda ,给我们操作集合(Collection)提供了极大的便利。Stream流是JDK8新增的成员,允许以声明性方式处理数据集合,可以把Stream流看作是遍历数据集合的一个高级迭代器。Stream将要处理的元素集合看作一种流,在流的过程中,借助Stream API对流中的元素进行操作,比如:筛选、排序、聚合等。1、使用流的好处代码以声明性方式书写,说明想要完成什么,而不是说明如何完成一个操作。可以把几个基础操作连接起来,来表达复杂的数据处理的流水线,同时保持代
2022-03-04 16:56:44 366
原创 4. lambda Supplier、Consumer 和其他函数接口
Supplier 接口Supplier接口产生一个给定类型的结果。Supplier没有输入参数。源码:@FunctionalInterfacepublic interface Supplier<T> { /** * Gets a result. * * @return a result */ T get();}案例:public class Person { private String name;
2022-03-04 15:54:40 257
原创 3. lambda 方法引用
lambda 方法引用分为4类,方法引用也受到访问控制权限的限制,可以通过在引用位置是否能够调用被引用方法来判断。具体分类信息如下: 类型 使用方式 静态方法 ContainingClass::staticMethodName 指定实例的方法 containingObject::instanceMethodName 特定类实例的任意方法 Contain
2022-03-03 17:28:09 445
原创 2. lambda 应用
lambda 在线程、list、map的应用。1.线程的lambda使用方法new Thread(new Runnable() { @Override public void run() { System.out.println("匿名内部类"); }}).start();new Thread(()->{ System.out.println("匿名函数");}).start();注意第二个线程里的lambda表达式,并不需要显式
2022-03-02 16:42:23 303
原创 1. Lambda 初识
Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。语法lambda 表达式的语法格式如下:(parameters) -> expression或(parameters) ->{ statements; }以下是lambda表达式的重要特征:可选类型声明:不需要声明参数类型,编译器可以统一识别参数值。 可选
2022-03-02 16:36:19 232
原创 12. elasticsearch 别名
Elasticsearch的mapping一旦创建,只能增加字段,而不能修改已经存在mapping的字段。在elasticsearch里面给index起一个aliases(别名)能非常优雅的解决两个索引无缝切换的问题,这个功能在某些场景下非常使用。比如电商的核心商品索引库,除了实时增量数据外,每天都要重建一遍索引,避免index里面的数据和db里面的数据不一致,因为index分shard了,所以要一个一个的shard做全量替换,直到所有的shard替换完毕,才能宣布重建成功。整个过程其实还是风险挺大的,
2022-03-01 15:14:48 195
原创 10. elasticsearch 排序
1.普通排序先按age排序再用name排序{ "query": { "match_all": {} } , "sort": [ { "age": { "order": "desc"}, "name": { "order": "desc"} } ]}2. 数组字段排序如果某个字段是数组,也是可以排序的,不过需要指定 mode 。mode 支持 min、max、avg、sum。PUT student{ "map
2022-02-28 17:53:12 643
原创 11. elasticsearch 搜索
must 必须符合,filter 必须符合、should 或满足其一即可、must_not 必须不符合只有must会影响分值计算,可以进行嵌套使用1.分词或模糊搜索方式一{ "query": { "match": { "ser_name": "北京" } }}方式二{ "query": { "bool": { "must": { "match": { "ser_name": "北京"...
2022-02-28 17:38:53 980
原创 9. elasticsearch 运维指令
cat基础查看都有哪些cat指令一、Cat通用参数 参数名 指令示例 功能 Verbose GET /_cat/XXX/?v 开启详细输出 Help GET /_cat/XXX/?help 输出可用的列 Headers GET /_cat/XXX/?h=column1,colum
2022-02-24 16:34:44 415
原创 8. elasticsearch 索引复制
Reindex会将一个索引的数据复制到另一个已存在的索引,但是并不会复制原索引的mapping(映射)、shard(分片)、replicas(副本)等配置信息。一、reindex的常用操作1、reindex基础实现 _reindex会将一个索引的快照数据copy到另一个索引,默认情况下存在相同的_id会进行覆盖(一般不会发生,除非是将两个索引的数据copy到一个索引中),可以使用以下命令将索引快照进行copy:POST _reindex { "source": { "index": "..
2022-02-24 16:23:10 3754
原创 7. elasticsearch聚合
ES聚合指标value_count: 计数 cardinality: 去重计数 avg: 平均值 sum: 求和 max: 最大值 min: 最小值 percentiles: 百分比 top_hits: 简单来说就是聚合分组后从每一个组取部分数据作为结果返回histogram:直方图集合 date_histogram:日期间隔集合1, 基础数据 用户登陆信息 包含登陆时间、用户ID等信息查询某个时间段内uv DSL如下:{ "query": { "bool": { "filter": [
2022-02-24 16:04:45 1098
原创 6 Elasticsearch 优化
Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力。本文从性能和稳定性两方面,从linux参数调优、ES节点配置和ES使用技巧三个角度入手,介绍ES调优的基本方案。当我们发现es使用还是非常慢,需要优先关注在以下这两类的运行情况。hot_threadshot_threads(GET /_nodes/hot_threads&interval=30),抓取30s的节点上占用资源的热线程,并通过排查占用资源最...
2022-02-24 10:39:22 549
原创 5. must 与 filter
must和filter 同样可以查询出需要的数据结果,底层的数据处理有些区别。Elasticsearch 默认是按照文档与查询的相关度(匹配度)的得分倒序返回结果的. 得分 (_score) 就越大, 表示相关性越高。得分越高,搜索的数据排序靠前。must:结果会进行得分计算,进行得分计算。filter:过滤数据,直接过滤,结果不会进行得分计算,查询速度会快,并且可以使用查询缓存。实际使用场景:如:查询河北省,年龄18岁,名字中有“阳东”的关键字的人名。1.数据过滤,“河北省”和“年
2022-02-23 11:05:40 2067
原创 4. elasticsearch mapping基础
es 很强大,合适的mapping,才能更大发挥它的优势,使用es前,需要对mapping进行详细的了解,以便在使用中,根据实际情况去设置合适的mapping2.1analyzer :分词器只作用于text类型的字段char_filter:字符过滤器tokenizer:指定分词器filter:词单元过滤器analyzer: 自定义的分词器2.1.1PUT /my_index{"settings": {"analysis": {"char_filte...
2022-02-22 17:41:47 605
原创 3. elasticsearch 汇总排序问题剖析
es主要解决简单大量数据的搜索问题,不擅长进行数据的汇总聚合计算。因为es是分布式搜索,对于数据的汇总聚合并且排序存在误差的问题。我们进行问题的复现、问题的原因和解决的方法。1.es 汇总排序问题剖析1.1 创建erp信息索引put os_erp_data{"settings": {"number_of_shards": "2","number_of_replicas": "1"},"mappings": {"os_erp_data_type": {...
2022-02-22 17:32:45 637
原创 2.elasticsearch 内存fieldData优化
在es中,text类型的字段使用一种叫做fielddata的查询时内存数据结构。当字段被排序,聚合或者通过脚本访问时这种数据结构会被创建。它是通过从磁盘读取每个段的整个反向索引来构建的,然后存存储在java的堆内存中,无法自行释放,导致es服务内存使用过高。 fileddata默认是不开启的。Fielddata可能会消耗大量的堆空间,尤其是在加载高基数文本字段时。一旦fielddata已加载到堆中,它将在该段的生命周期内保留。此外,加载fielddata是一个昂贵的过程,可能会导致用户遇到延迟命中。这
2022-02-22 17:08:57 891
原创 1. Elasticsearch的搜索类型(SearchType类型)
分布式搜索背景介绍:ES是一个分布式搜索引擎,分布式有分布式的缺点。比如要搜索某个单词,但是数据却分别在5个分片(Shard)上面,这5个分片可能在5台主机上面。因为全文搜索天生就要排序(按照匹配度进行排名),但数据却在5个分片上,如何得到最后正确的排序呢?ES是这样做的,大概分两步。第一步: ES客户端会将这个搜索词同时向5个分片发起搜索请求,这叫Scatter,第二部: 这5个分片基于本Shard独立完成搜索,然后将符合条件的结果全部返回,这一步叫Gather。客户端将返回的结果进行重新排序和
2022-02-22 16:37:10 1486
原创 nginx nginx_concat_module 实现前端js和css合并请求
nginx-http-concat是阿里云开发的nginx开源组件,可以在nginx编译安装时添加模块,也可以在已安装的nginx中重新添加模块。1.获取现在nginx 的配置cd/usr/local/nginx查看配置信息./sbin/nginx -V获得的配置--prefix=/usr/local/nginx --conf-path=/usr/local/nginx/...
2020-05-08 09:45:36 442
原创 mybatis 分页,当查询行数为0终止继续的查询
mybatis 分页拦截,当返回行数是0是,发现继续执行分页sql,应该立刻返回,不必要再进行数据库的查询。拦截注解如下:@Intercepts({@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class,...
2020-03-26 15:03:31 482
原创 sprint boot 打包分离静态文件
spring boot 提供的打包方式,是把所有的文件打成一个jar包,静态文件无法分离出来1.无法进行nginx动静分2.jar过大,自己项目的代码其实很小,紧急更新上传很慢故需要通过修改pom文件进行分离打包直接放pom关键配置<plugin> <groupId>org.apache.maven.plugins<...
2020-03-06 15:26:12 588
原创 java lombok使用 简化代码
Lombok能以简单的注解形式来简化java代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法,而且需要维护,当属性多时会出现大量的getter/setter方法,这些显得很冗长也没有太多技术含量,一旦修改属性,就容易出现忘记修改对应方法的失误。Lombok能通过注解的方式,在编译时自...
2019-06-27 14:25:45 299
原创 redis 哨兵模式注意事项
sentinel 配置开启远程连接 使用阿里云服务器142.19.35.253 为阿里局域网ip172.19.35.283 为网ip部署机器的ipbind 142.19.35.253开启远程连接protected-mode no设置主节点,如果需要远程连接 此处的ip需要使用外部ip使用sentinel monitor mymaster 172.19.35....
2018-10-09 16:38:56 367 1
原创 spring Boot 使用jetty
spring Boot 默认集成Tomcat如果想使用jetty,pom配置也是很简单的1.第一步移除Tomcat依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo...
2018-09-06 15:11:54 2172
原创 mongodb spring-data 使用
pom文件配置,spring主配置忽略org.springframework.dataspring-data-mongodb1.10.6.RELEASE创建mongodb.xml<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://
2017-09-07 15:48:14 915
原创 rabbitmq与spring 结合
maven 配置 org.springframework spring-core 4.3.9.RELEASE org.springframework spring-context 4.3
2017-08-22 13:39:35 307
原创 maven 打包jar,可以运行项目
org.apache.maven.plugins maven-compiler-plugin 3.0 ${jdk.version} ${jdk.version} ${pr
2017-08-17 10:16:12 420
原创 Spring与RMI 集成,实现远程调用
服务器端配置 service 接口实现类serviceName 暴露在外界的服务名称serviceInterface 需要实现的接口registry 注册服务的端口,此端口不能与服务宿主(如:To
2017-04-10 14:41:04 480
原创 java hessian和spring 结合使用
服务器端配置和代码pom 配置 com.caucho hessian 4.0.38web.xml 配置 hessian-servlet org.springframework.web.servlet.DispatcherServlet
2017-04-10 11:53:49 319
原创 sping AOP 使用
定义接口public interface Performer {void perform(List ls);}实现接口@Servicepublic class Drama implements Performer {public void perform(List ls) {// TODO Auto-generated method stub
2017-03-17 19:01:55 398
原创 java 自定义异常
当第三方使用你封装的程序工作时,一些判断是否符合逻辑的错误,想以异常的方式提醒第三方,需要自定义异常类自定义异常类需要 继承 Exceptionpublic class DemoException extends Exception { /** * */ /* * 错误详情 */ private String exMsg; /* * 错误码 */
2017-03-17 13:53:09 404
ffmpeg4ios-1.0-lib.zip phone安装好播放器
2015-10-22
java commons.httpclient3.0
2015-01-26
Android Studio汉化包
2014-12-28
APP.js 简单的移动端App应用
2014-09-09
支持XP和VISIT和WIN7的64位和32位分区软件
2013-02-21
软件项目实施方案.doc
2019-07-04
slf4j+log4j 日志+ehcache.rar
2016-07-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人