自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 org.artofsolving.jodconverter.office.OfficeException: failed to start and connect

把soffice.bin这个任务结束即可。

2023-08-07 16:53:56 384

原创 《你不知道的 Chrome 调试技巧》-- 学习笔记

ctrl + shift + p :调出command然后输入screen效果。

2023-08-01 11:31:06 342

原创 ELK(elasticsearch+logstash+kibana+beats)

Elasticsearch(以下简称ES) 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。ES是 Elastic Stack 的核心,采用集中式数据存储,可以通过机器学习来发现潜在问题。ES能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标)。支持 PB级数据的秒级检索。:Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。

2023-07-19 15:01:04 799

原创 Elasticsearch--suggester

搜索一般都会要求具有“搜索推荐”或者叫“搜索补全”的功能,即在用户输入搜索的过程中,进行自动补全或者纠错。以此来提高搜索文档的匹配精准度,进而提升用户的搜索体验,这就是Suggest。

2023-07-19 11:32:52 502

原创 Elasticsearch--客户端

语言无关​java最常用的客户端是Java Client、Java Rest Client、Java Transport Client。

2023-07-14 17:48:33 4430

原创 Elasticsearch--查询(nested、join)

嵌套类型数据的某个值是json、object对象;不再是简单的数据类型,或者简单数据类型的数组;那么还用之前的查询方式就有问题了。因为ES在存储复杂类型的时候会把对象的复杂层次结果扁平化为一个键值对列表。此时,需要用nested进行查询。

2023-07-14 15:52:14 3260

原创 《Linux基础命令讲解》学习笔记

Linux不是一个具体的操作系统,而是一类操作系统的总称。具体版本称为发行版:Red Hat:目前被IBM收购,收费版,目前全球最大的Linux供应商CentOS: Red Hat推出的免费版Ubuntu :界面比较友好。

2023-07-07 10:54:43 226

原创 layui学习

layui 的栅格采用业界比较常见的 12 等分规则,内置手机、平板、PC 桌面中大型屏幕的多终端适配处理,最低能支持到 ie8。layui 开放了它经典的管理系统布局方案。如果不知道样式在哪个模块下,引入总的核心样式文件;如果知道样式在哪个模块下,直接引入modules下具体的样式。layui-col-md-offset* --> * 代表当前列向右偏移多少列。layui.use : 使用layer模块。布局采用响应式框架通用的栅格系统进行布局。宽度不固定100%适应的容器。行:layui-row。

2023-06-29 14:47:54 141

原创 《JDK8特性深入讲解》学习笔记

如果不适用lambda表达式的话,可以使用匿名内部类,但是代码会显得有点多lambda表达式其实就是匿名内部类Lambda表达式简化了匿名内部类的使用,语法更加简单。

2023-06-25 11:10:15 364

原创 Spring AOP 学习(动态代理、JdbcTemplate、Junit)

Proxy jdk动态代理,面向接口cglib 第三方动态代理,面向父类。

2023-06-08 10:31:27 808

原创 枚举、反射

jdk1.5之前,需要自己实现枚举。

2023-05-30 12:50:36 486

原创 shiro入门实战

推荐需要手动创建CustomRealm,并且继承AuthorizingRealm ,写自定义过滤器@Override// 获取主体subject// 将传入的角色转成数组操作// 健壮性校验// 开始校验将自定义过滤器配置给shiroshiro配置文件中将自定义过滤器配置进去@Bean//1. 构建ShiroFilterFactoryBean工厂//2. 设置了大量的路径//3. 设置安全管理器//4. 设置过滤器链。

2023-05-29 16:41:47 1059 1

原创 Fastjson过滤器用法

其中object 是要转成json的对象,name是属性名,value是属性值,可以根据自己的需求自定义。SimplePropertyPreFilter 实现了 PropertyPreFilter。当然new PropertyFilter()也可以改成lambda的形式,那么更简介。return true表示会返回回来;return false表示过滤掉了。NameFilter和ValueFilter都实现了。也可以自己写 PropertyFilter。过滤gender属性。对value进行修改。

2023-05-26 16:58:53 1831

原创 aop实现自定义注解

添加依赖写需要的注解/** 请求类型 *//** 接口类型 */定义切面@Aspect@Component// 类名// 方法名// 开始时间// 执行方法 proceed就是返回值// 结束时间// 获取入参// 获取注解中apiType的值System.out.println("类名:" + className + ";方法名:" + methodName + ";开始时间:" + startTime + ";结束时间:" + endTime);

2023-05-25 17:40:03 1567

原创 Eureka实战入门

spring cloud的版本是根据springboot版本确定的Spring Cloud Dalston, Edgware, Finchley, and Greenwich 版本不再更新了SNAPSHOT:开发版本,最新版本Milestone:大版本在发布前的里程碑的版本Release candidate:RC版本,准备发布的版本Release:发布的版本spring cloud:Hoxton.SR12spring cloud netflix:2.2.9.Releasespring boot:2.3.1

2023-05-18 20:45:17 430

原创 navicat连接oracle报错 ORA-28547

5. 将instantclient_11_2文件中的所有文件复制,粘贴到instantclient_xxx文件夹中。4. 将navicat安装路径中instantclient_xxx文件夹中的文件进行备份后删除(主要是为了复原)3. 下载后,将文件解压,生成instantclient_11_2文件。1. 先用idea连接oracle,查看oracle版本。6. 重启navicat,可以连接oracle的数据库了。我的文件夹名称为:instantclient_10_2。选择对应的版本(下载时,需要登录)

2023-05-16 17:28:14 1215

原创 Es读写调优、深度分页

create:如果在PUT数据的时候当前数据已经存在,则数据会被覆盖,如果在PUT的时候加上操作类型create,此时如果数据已存在则会返回失败,因为已经强制指定了操作类型为create,ES就不会再去执行update操作。delete:删除,ES对文档的删除是懒删除机制,即标记删除。(.del文件)index:创建索引update:包括全量替换、部分替换。

2023-05-09 17:44:58 803

原创 maven入门学习

maven是基于ant升级的,apache的自动化构建工具、项目管理工具maven使用pom.xml进行配置maven项目可以更方便的实现导jar包、拆分项目idea默认集成了maven。

2023-05-08 16:14:15 814

原创 Ribbon、LocdBalance和openFeign的实战

LoadBalance自定义负载均衡策略需要实现ReactorServiceInstanceLoadBalancer接口@Override// 可以自己实现负载均衡openFeign是Netflix开源的声明式HTTP客户端优点:可以做到使用http请求远程服务时就像调用本地方法一样的体验,开发者完全感知不到这是远程方,更感知不到这是个http请求。

2023-05-04 14:31:17 576

原创 nacos实战

spring cloud是一系列框架的有序集合,是分布式系统构建工具。

2023-04-28 09:50:44 775

原创 RabbitMQ入门

RabbitMQ是由Erlang语言编写的基于AMQP的消息中间件。而消息中间件作为分布式系统重要组件之一,可以解决应用耦合,异步消息,流量削峰等问题。原理。

2023-04-18 15:28:28 383

原创 Spring Cloud Alibaba Sentinel

Sentinel: 分布式系统的流量防卫兵随着微服务的流行,服务和服务之间的稳定性变得越来越重要。以流量为切入点,从流量控制、流量路由、熔断降级、系统自适应过载保护、热点流量防护等多个维度保护服务的稳定性。官方手册Sentinel 社区官方网站:sentinel分为两部分:核心库(Java客户端)不依赖任何框架/库,只需要Java运行时环境,同时对Dubbo/SpringCloud 等框架也有较好的支持。

2023-03-30 12:32:01 195

原创 Spring Cloud Alibab --Seata

Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。TC (Transaction Coordinator) - 事务协调者维护全局和分支事务的状态,驱动全局事务提交或回滚。TM (Transaction Manager) - 事务管理器定义全局事务的范围:开始全局事务、提交或回滚全局事务。RM (Resource Manager) - 资源管理器。

2023-03-27 11:27:50 1393

原创 Spring Cloud -- GateWay

需要实现两个接口:GlobalFilter、 Ordered@Component@Slf4j/*** @param exchange 可以拿到对应的request和response* @param chain 过滤器链* @return 是否放行*/@Overridelog.info("**********用户名为null,非法用户,请求被拒绝!");//如果username为空,返回状态码为406,不可接受的请求/*** 加载过滤器的顺序。

2023-03-15 21:49:06 901

原创 项目心得--网约车

当accessToken快要过期了,但是用户正在访问,此时突然过期,对用户体验很不友好。GET请求中,如果参数放在body中,使用@RequestBody进行参数传递,GET请求会被转成POST请求。同一个父项目中的各个子项目,如果需要相互调用,可以在父项目中加对应的项目依赖,也可以在调用的项目中添加依赖。第一种缺点:不适合频繁有插入的情况(第一页的数据,可能在看第二页的时候被挤到第二页了,看到了重复数据)dependencies:在父项目中写了依赖后,子项目自动继承父项目的依赖,可以直接使用。

2023-03-08 10:25:46 2323

原创 mysql

若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。这时,另一个事务也来读取同一条记录,如果不加控制,第二个事务读取了这些“脏”的数据,并据此做进一步的处理,就会产生未提交的数据依赖关系。index:全索引扫描这个比all的效率要好,主要有两种情况,一种是当前的查询时覆盖索引,即我们需要的数据在索引中就可以索取,或者是使用了索引进行排序,这样就避免数据的重排序。

2022-12-30 15:16:53 542

原创 kafka学习笔记

同时在Kafka集群中,Topic的每一个日志的分区都一定会有1个Borker担当该分区的Leader,其他的Broker担当该分区的follower,Leader负责分区数据的读写操作,follower负责同步改分区的数据。这样如果分区的Leader宕机,该分区的其他follower会选取出新的leader继续负责该分区数据的读写。Apache Kafka是Apache软件基金会的开源的流处理平台,该平台提供了消息的订阅与发布的消息队列,一般用作系统间。要保证多分区的多条记录之间的完整性,需要事务。

2022-12-26 21:16:00 1323 1

原创 zookeeper学习笔记

刚new出来的Zookeeper,它的状态是连接中的状态,还没有准备好,可以通过countDownLatch来等Zookeeper准备完成;因为过半就可以确定消息已经完成写操作,那么就有可能发生,Client读取到的是没有进行写操作的Follower,此时,可以通过sync从leader上同步一下数据。1. new zookeeper的时候,传入的watch,是session级别的,和path、node没有关系。官方压测,zookeeper选择新的leader的时间不到200ms,可以很快进入高可用状态。

2022-12-19 16:27:08 669

原创 Redis面试准备

4.epoll:多路复用nio,依然是同步非阻塞io,因为虽然等待事件发生,但是依然需要自己调用read系统调用读取数据,先调用create创建一个注册器,ctl.add,del从注册器上新增或删除连接,wait等待连接产生事件,每次新链接绑定到注册器上,一次系统调用得到需要处理的socket,然后再循环处理有数据读写的socket连接。然后客户端再去访问对应的客户端。,根据redis实例和数据来构成哈希环来解决所有数据都需要重新算的问题,但是这种,新增redis实例,会导致部分数据查询不到。

2022-12-16 20:55:29 363

原创 多线程学习笔记(四)-- 常见类及使用

AQS的核心是共享的state变量,volatile修饰的,通过CAS的方式给state设值;还有一个双向链表,没有获取到锁的线程通过CAS的方式加到链表的末端tail为什么要设值成双向链表,因为后面的节点需要拿到前面的节点。

2022-12-10 19:32:59 700

原创 容器的常用方法和线程安全(Map、List、Queue)

CopyOnWriteArrayList:写时复制,读的时候不加锁,写的时候加锁,复制原来的List,并添加新元素。SynchronousQueue:容量为0,需要有其他线程等待取值,才能put进去值,用于两个线程交换数据。:取数据,并remove队列中的,原子性是通过CAS实现的。方法也是添加数据的,没有返回值,添加不进去会抛异常。方法是添加数据的,有一个boolean的返回值;take:取数据,如果数据为空了,会阻塞等待。put:添加数据,如果数据满了,会阻塞等待。:取数据,并不会remove。

2022-12-10 15:44:38 646

原创 多线程学习笔记(三)

缓存行:从缓存中读取数据是按照一块来读取的,这一块叫做缓存行,64字节大小缓存一致性协议:当两个数位于同一个缓存行时,有两个线程需要同时读取了缓存行中的数据后进行修改,需要和另一个线程的数据保存一致可以通过在数据前后补充空数据来保证两个数据不在同一个缓存行,来避免反复进行缓存一致性(jdk1.7中LinkedBlockingQueue就用了此方式)jdk1.8中,可以通过@Contended来保证数据自己在一个缓存行中, 需要在jvm运行参数中加 -XX:RestrictContend

2022-12-07 17:44:49 508

原创 JVM学习-- JVM调优

垃圾收集器和内存大小有关一般情况,serial+serial old 适用几十兆内存ps+po 适用几百兆~几个GparNew+CMS 可以用到20GG1 可以用到上百GZGC 可以 4T~16T-XX:+UseConc(urrent)MarkSweepGC = ParNew + CMS + Serial Old-XX:+UseParallelGC = Parallel Scavenge + Parallel Old (1.8默认) 【PS + SerialOld】-XX:+UseParallelOldGC

2022-12-04 15:49:41 461

原创 多线程轮流打印

让2个线程轮流打印,a线程是打印ABCDEFGHIJ,b线程是打印1、2、3、4、5、6、7、8、9、10。2个线程轮流打印,a线程是打印ABCDEFGHIJ,b线程是打印1、2、3、4、5、6、7、8、9、10。上面是2个线程,可以通过true、false的两种状态来区分,那如果是3个线程呢,4个线程呢,要怎么办?3个线程,轮流打印,第一个线程只打印A,第二个线程只打印B,第三个线程只打印C。一开始,ifPrint为false,此时,ta线程会进行打印,打印。此时,ta线程会进行打印,打印。

2022-11-30 21:00:25 700

原创 NoSuchMethodError

最近遇到好几次NoSuchMethodError的错误了,各种各样的方法找不到。要是还是不知道,打开这个文件,到里面查看是否有自己要调用的那个方法。到了这里,可能就知道了调用的是不是自己想要的jar了。要是没有的话,设置想要的jar。然后启动项目,就会打印路径,

2022-11-15 20:59:39 173

原创 Elasticsearch学习--script

doc['age'].value和doc['age']都能正确输出,doc['age'] * 0.9和doc['age'].value * 0.9也都不报错。,doc['age'].value和doc['age']都能正确输出,但是doc['age'] * 0.9报错。:会被加载到内存中,效率更高,更消耗内存,只允许简单类型,object和nested属于复杂类型。es源数据是map类型的,在取值的时候,要根据doc['x xx']取值。但是,painless,如果字段为空,*0.9会报错。

2022-11-13 15:24:57 2150

原创 Elasticsearch学习--查询(prefix、wildcard、regexp、fuzzy)

比如computer这个单词,本身是一个词项,index_prefixes可以为这个单词再创建倒排索引,min_chars=2,max_chars=5的话,创建的索引:co、com、comp、compu。fuzziness, 默认是auto,根据字符串长度,从0,1,2取值。编辑距离:把字符改成正确的,需要挪到的次数。match是分词的,fuzzy是不分词的。3) 多出字符(sic -> sic。匹配的也是分词后的词项term。优点:加快前缀索引的搜索效率。为词项创建倒排索引,缺点:占用内存、空间。

2022-11-13 15:10:24 1714

原创 JVM学习(三)-- 垃圾回收

没有任何引用指向的对象就是垃圾。

2022-11-13 15:08:17 409

原创 Jar包反编译,修改代码后,重新打jar包

这个jar包也可以运行,不过生成的名称是xxx.jar, 给我的jar包是xxx-0.0.1-SNAPSHOT-jar-with-dependencies.jar这种格式,所以我最后选择的是上面那种方法,在pom中加manifest配置这种方式重新打包。最近遇到一个问题,需要把现有的jar包反编译成java代码,然后运行,测试,修改后再次打jar包。此时,maven package打包生成 xxx-0.0.1-SNAPSHOT-jar-with-dependencies.jar 可以使用。

2022-11-03 16:24:09 19114 2

原创 url中包含@、冒号等特殊字符

springboot中,使用url连接mongodb时,一般用。如果密码中包含@、:特殊字符,会跟url中的混淆,所以会报错。也可以用encodeURIComponent('@')来得到。

2022-10-25 14:09:07 2681

JSON字符串和java对象的相互转换

http://blog.csdn.net/CelineT/article/details/78794798 这篇博客的源码,我自己纯手工敲的哦,有什么想法的话可以给我留言,第一次写博客,还望多多指教

2017-12-14

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

TA关注的人

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