- 博客(46)
- 资源 (2)
- 收藏
- 关注
原创 springboot日志冲突
Exception in thread "main" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.D.
2021-11-15 17:12:20
964
1
原创 SpringBoot集成Elasticsearch
最近项目中需要用到es查询数据,就自己springboot环境集成了elasticsearch,结果使用时候一直出错,直接请求es地址是没问题的,就查了好多资料,现在记录一下1.遇到的问题发生ccs_minimize_roundtrips 问题{“error”:{“root_cause”:[{“type”:“illegal_argument_exception”,“reason”:“request [/logstash-filebeat-label_timely_detail_202105_v1/_
2021-05-18 19:29:36
1085
2
原创 两种自定义注解
1.利用AOP在运行时切面处理的 日志注解1)定义注解@Target(value= {ElementType.TYPE, ElementType.METHOD})@Retention(value= RetentionPolicy.RUNTIME)public @interface Log { /** 方法名 */ AspectEnum methodName() default AspectEnum.insert; /** 操作名称 */ String ope
2021-03-19 16:47:59
202
原创 常见面试问题
一、开场白自我介绍,项目经验(介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;这一块主要考察应聘者对自己做过的事情是否有清晰的描述,判断做的事情的复杂度)2、JVM垃圾回收算法有几种类型? 他们对应的优缺点又是什么?类的加载过程是什么?简单描述一下每个步骤JVM 预定义的类加载器有哪几种?分别什么作用?什么是双亲委派模式?有什么作用?什么是内存溢出, 内存泄露? 他们的区别是什么?引起类加载操作的行为有哪些?介绍一下 JVM 提供的常用工具Full GC
2021-03-07 22:45:42
487
1
原创 互联网架构学习方向
1. JVM2. java.util.concurrnet 并发编程并发编程Synchroized,volatile, TheadPooexecutor,Future,FutureTask, countdownlatch,cyclebarrier,semphormHashTable在不指定容量的情况下的默认容量为11,而HashMap为16,Hashtable不要求底层数组的容量一定要为2的整数次幂,而HashMap则要求一定为2的整数次幂。Hashtable扩容时,将容量变为原来的2倍加1,而H
2021-03-05 17:49:20
304
原创 面试实战
1. xx-job 分片单机多任务:自定义业务规则,配置多个xxl任务,每个任务指定不同的参数,但使用相同的jobhanlder:多机分片:配置多个机器地址,采用多机器取模的方式,来为不同的机器指定各自服务,路由策略选择:分片广播分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍2. 什么时候用不到索引索引原则都建立在最左匹配原则索引列上使用函数(replace\substr\concat\sum count avg),表达式字符串不加引号,
2021-03-05 17:15:28
411
3
原创 分布式任务调度平台 xxl-job
公司用了XXL-JOB,发现用这个公司好多,而且的确特别好用,记录一下。官方操作链接:http://www.xuxueli.com/xxl-job/#/?id=%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0xxl-job%E3%80%8B公司项目用的spri...
2019-08-28 10:10:43
218
原创 面试:其他
9.设计模式1.单例模式public class SingletonDemo1 {private static SingletonDemo1 instance;private SingletonDemo1(){}public static SingletonDemo1 getInstance(){if (instance == null) {instance = new Single...
2019-08-19 14:08:13
142
原创 面试八:分布式
1.什么是分布式系统?用过那些分布式系统?一个业务分拆多个子业务,部署在不同的服务器上。2.分布式锁1.基于数据库实现分布式锁2.基于缓存redis实现分布式锁 (设置超时时间)3.基于Zookeeper实现分布式锁(临时节点)3.分布式缓存,redis、Memcachedredis和Memcached区别1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,se...
2019-08-19 14:08:01
213
原创 面试七:数据库mysql
1.高并发查询 数据库优化1、优化sql2、分库分表3、读写分离4、nosql数据库5、缓存6、索引怎么优化sql?1.建立索引(explain字段查询索引有没有用到,索引不是越多越好)2.查询数量多的时候使用LIMIT3.避免 SELECT *4.用IN来替换OR5.LIKE双百分号无法使用到索引2.mysql怎么分库分表?怎么设计?怎么读写分离?取模 1、中间变量...
2019-08-19 14:07:53
184
原创 面试六:spring框架知识
1.springMVC运行过程1.用户发起请求到前端控制器(Controller)2.前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组3.前端处理器通过处理器适配器包装后执行...
2019-08-19 14:07:46
161
原创 面试五:消息中间件
1…消息中间件?消息中间件特点、应用场景?异步处理,用户注解耦,用户下单.流量削峰,秒杀活动日志处理 (kafka)消息通讯,点对点,聊天室缺点:系统可用性降低(MQ挂了、MQ高可用性)系统复杂度提高(重复消费、消息丢失)数据一致性(B、C成功,D失败)2.MQ挂了、MQ高可用性怎么解决?RabbitMq的高可用性,基于主从分离RabbitMq有三种模式:单机模式普...
2019-08-19 14:07:37
220
原创 面试四:高并发 + redis
1.秒杀并发控制设计1.页面设置成静态html2.限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。3.削峰:对于秒杀系统瞬时会有大量用户涌入,把瞬间的高流量变成一段时间平稳的流量。实现削峰的常用的方法有利用缓存和消息中间件等技术。4.异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大地提高系统并发量,其实异步处理就是削峰的...
2019-08-19 14:07:29
520
1
原创 面试三:多线程
1.实现多线程的方式1、继承thread类2、实现runnable接口3、实现callable接口,带返回值2.1.java什么叫线程安全?什么叫不安全?就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问什么叫线程安全:所在的进程中有多个线程在同时运行,而这些线程可能会同时...
2019-08-19 14:07:18
152
原创 面试二:JVM内容
1.为什么要用类加载器?类加载是做什么的?怎么加载类加载器负责加载 Java 类的字节代码到 Java 虚拟机中双亲委派模式2.类的生命周期加载 验证 准备 解析 初始化 使用 卸载3.和服务器类加载的区别(tomcat)1.启动类去加载2.系统类去加载3.webapp应用类去加载(class)4.webapp应用类去加载(lib)5.通用类加载器去加载4.双亲委派模式?为什...
2019-08-19 14:07:07
127
原创 面试一 :JAVA基础
1.string 、stringbuffer、 stringbuilder区别string是长度是不可变的,stringbuffer、 stringbuilder是长度可以变的,stringbuffer是线程安全的,stringbuilder是线程不安全2.常用的集合类、特点、底层实现set、map、list,hashset、treeset、arraylist、linedlist、hash...
2019-08-19 14:06:59
140
原创 Spring Boot配置多数据源
**1.目的**项目中需要连第二个数据库,去实现查询服务,方法用两个:1.另外重新写一个项目提供服务 2.在原来的项目中使用多数据源因为只做两个查询服务,所以就不需要重新写一个服务,选择了多数据源方式2.怎么做1.application.properties 写两份配置信息spring.datasource.jiameng.driver-class-name=com.mysql.c...
2019-08-19 14:03:42
223
原创 JAVA面试题经验
0.自我介绍1.JAVA基础1.string 、stringbuffer、 stringbuilder区别string是长度是不可变的,stringbuffer、 stringbuilder是长度可以变的,stringbuffer是线程安全的,stringbuilder是线程不安全2.常用的集合类、特点、底层实现set、map、list,hashset、...
2019-08-08 16:19:53
2857
3
原创 用户行为日志概述
用户行为日志:用户每次访问网站时所有的行为数据(访问、浏览、搜索、点击。。。)为什么要记录用户访问行为日志网站页面的访问量 网站的黏性 推荐用户行为日志生成渠道Nginx Ajax用户行为日志内容IP 账号 时间区域 所使用的客户端 模块 appId 跳转的链接地址日志数据内容:访问的系统属性:操作系统、浏览器等等 访问特征:点击的url、从哪个url跳...
2019-08-05 19:50:46
2985
原创 分布式计算框架MapReduce
MapReduce优点:海量数量离线处理、易开发、易运行MapReduce缺点:实时流式计算wordcount入门:统计文件中每个单词出现的次数需求:求wc文件内容小:shell 文件内容很大:TB GB ??? 如何解决大数据量的统计分析借助于分布式计算框架:MapReduce分而治之(input)<k1, v1> ->map-...
2019-04-09 20:14:34
202
原创 Hikari 数据库连接池配置主从结构
HikariCP是数据库连接池,而且是号称史上最快的,而且目前来看确实是这样的,SpringBoot2.0也已经采用HikariCP作为默认连接池配置.HikariCP 默认配置主要参数是在 com.zaxxer.hikari.HikariConfig 中初始化的,部分参数是在 com.zaxxer.hikari.pool.PoolBase 中初始化的。 name 描述 构造...
2019-04-08 18:44:06
2947
原创 Vert.x 学习和使用
1.Vert.x是什么 Vert.x是一个轻量级的高性能JVM应用平台,基于它可开发各种移动,Web和企业应用程序。它是基于netty和mina的NIO的编写的。Vert.x官网:https://vertx.io/docs/vertx-core/java/2.怎么用package com.lyj.learn.learndesign.vertX;import io.vert...
2019-04-04 14:51:38
854
原创 资源调度框架YARN
MapReduce1.x存在的问题:单点故障、节点压力大不易扩展、不能支持处理MapReduce1之外的计算框架MapReduce:Master/Slave架构,1个JobTracker带多个TaskTrackerJobTracker:负责资源管理和作业调度TaskTracker: 定期向JobTracker汇报节点的健康、资源使用情况、作业执...
2019-03-26 19:52:41
193
原创 HDFS安装和使用
HDFS安装步骤:jdk安装 解压:tar -zxvf jdk-8u80-linux-x64.tar.gz -C ~/app 添加到系统环境变量:~/.bash_profile export JAVA_HOME=/home/hadoop/app/jdk1.8.0_80 export PATH=$JAVA_HOME/bin:$PATH 使得环境变量生效: so...
2019-03-25 16:51:29
11033
原创 Spring事务和AOP一些知识点
Spring事务和AOP一些知识点在开发中,一般都把事务加到Service层。和事务相关的注解:@Transactional事务管理方式有两种:编程式事务 、声明式事务编程式事务:自己写代码来开启和提交事务,需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法声明式事务:通过注解来使用事务,底层是建立在 AOP 的基础之上...
2019-03-08 16:53:23
213
原创 生成分布式唯一的订单号:twitter的SnowflakeIdWorker
public class SnowflakeIdWorker { // ==============================Fields=========================================== /** 开始时间截 (2015-01-01) */ private final long twepoch = 1420041600000L;...
2019-01-31 13:37:23
1252
原创 解决java.security.InvalidKeyException: Illegal key size
今天发现新装的服务器日志有这个问题,很奇怪,网上搜了一下就有答案 Jdk中两个jar需要替换local_policy.jar和US_export_policy.jar,解除密钥长度的限制,解决Illegal key size异常。1.6版本http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download...
2018-11-15 14:28:17
748
原创 Netty服务端1
1.Netty服务端创建时序图步骤1代码: EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup();首先通过构造函数创建ServerBootstrap实例,通常会创建两个EventLoopGroup(也可以只创建...
2018-08-02 16:05:36
148
原创 Elasticsearch 常用操作api
查询es各个状态curl -XPUT http://192.168.1.28:9200/hd_newscurl -XPUT http://192.168.1.28:9200/hd_boxerscurl -XPUT http://192.168.1.28:9200/hd_videoscurl -XPUT http://192.168.1.28:9200/hd_community增加数据curl -X...
2018-02-12 11:44:59
1348
原创 Spring Boot + MongoDB 增删改查的简单使用
MongoDB简介mongodb是一个介于nosql数据库和mysql数据库之间的一个数据存储系统,它没有严格的数据格式,但同时支持复杂查询,而且自带sharding模式和Replica Set模式,支持分片模式,复制模式,自动故障处理,自动故障转移,自动扩容,全内容索引,动态查询等功能。扩展性和功能都比较强大。 mongodb在数据查询方面,支持类sql查询,可以一个key多value内容...
2018-02-12 11:33:41
2055
2
转载 spring boot + rabbit
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。RabbitMQ介绍通常我们谈到
2018-01-29 17:22:55
310
原创 spring 异步发送短信
ThreadPoolTaskExecutor是一个spring的线程池技术,利用他可以轻松的视线线程池。1.pom.xml org.springframework spring-context-support 3.0.5.RELEASE 2.spring.xml <bean id="threadPoolTaskExecutor" class="org.sprin
2018-01-25 10:56:31
3646
原创 spring boot 定时任务更新浏览数、点赞数
SpringBoot配置定时任务可以直接使用自带的Scheduled,这相当于一个轻量级的Quartz,它可以让我们直接使用注解来完成定时任务的配置。1.定时任务方法/** * 定时任务 * * @author lyj * @since 2.0 */@Configuration@EnableSchedulingpublic class TigerDataApproveT
2018-01-24 18:32:03
2178
转载 spring boot +Websocket 推送
使用websocket有两种方式:1是使用sockjs,2是使用h5的标准。使用Html5标准自然更方便简单,所以记录的是配合h5的使用方法。1、pom 核心是@ServerEndpoint这个注解。这个注解是Javaee标准里的注解,tomcat7以上已经对其进行了实现,如果是用传统方法使用tomcat发布项目,只要在pom文件中引入javaee标准即可使用。
2018-01-09 16:28:37
607
转载 设计模式六大原则(6):开闭原则
定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。 开闭原则是面向对象设计中最基础的
2018-01-02 10:55:50
165
转载 设计模式六大原则(5):迪米特法则
定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样编程才能做到低耦合
2018-01-02 10:54:06
153
转载 设计模式六大原则(4):接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:(图1 未遵循接口隔离原则的设计
2018-01-02 10:34:50
206
转载 设计模式六大原则(2):里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。
2018-01-02 10:29:23
149
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人