JAVA
文章平均质量分 70
LYJ_er
好好学习,天天向上
展开
-
Docker
11原创 2021-12-28 17:28:17 · 949 阅读 · 0 评论 -
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 · 969 阅读 · 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 · 1094 阅读 · 2 评论 -
apollo(阿波罗)分布式配置中心
88原创 2021-04-27 20:45:58 · 440 阅读 · 0 评论 -
两种自定义注解
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 · 204 阅读 · 0 评论 -
常见面试问题
一、开场白自我介绍,项目经验(介绍下自己最满意的,有技术亮点的项目或平台,重点介绍下自己负责那部分的技术细节;这一块主要考察应聘者对自己做过的事情是否有清晰的描述,判断做的事情的复杂度)2、JVM垃圾回收算法有几种类型? 他们对应的优缺点又是什么?类的加载过程是什么?简单描述一下每个步骤JVM 预定义的类加载器有哪几种?分别什么作用?什么是双亲委派模式?有什么作用?什么是内存溢出, 内存泄露? 他们的区别是什么?引起类加载操作的行为有哪些?介绍一下 JVM 提供的常用工具Full GC原创 2021-03-07 22:45:42 · 490 阅读 · 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 · 305 阅读 · 0 评论 -
面试实战
1. xx-job 分片单机多任务:自定义业务规则,配置多个xxl任务,每个任务指定不同的参数,但使用相同的jobhanlder:多机分片:配置多个机器地址,采用多机器取模的方式,来为不同的机器指定各自服务,路由策略选择:分片广播分片任务场景:10个执行器的集群来处理10w条数据,每台机器只需要处理1w条数据,耗时降低10倍2. 什么时候用不到索引索引原则都建立在最左匹配原则索引列上使用函数(replace\substr\concat\sum count avg),表达式字符串不加引号,原创 2021-03-05 17:15:28 · 412 阅读 · 3 评论 -
面试三:多线程
1.实现多线程的方式1、继承thread类2、实现runnable接口3、实现callable接口,带返回值2.1.java什么叫线程安全?什么叫不安全?就是线程同步的意思,就是当一个程序对一个线程安全的方法或者语句进行访问的时候,其他的不能再对他进行操作了,必须等到这次访问结束以后才能对这个线程安全的方法进行访问什么叫线程安全:所在的进程中有多个线程在同时运行,而这些线程可能会同时...原创 2019-08-19 14:07:18 · 156 阅读 · 0 评论 -
面试四:高并发 + redis
1.秒杀并发控制设计1.页面设置成静态html2.限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。3.削峰:对于秒杀系统瞬时会有大量用户涌入,把瞬间的高流量变成一段时间平稳的流量。实现削峰的常用的方法有利用缓存和消息中间件等技术。4.异步处理:秒杀系统是一个高并发系统,采用异步处理模式可以极大地提高系统并发量,其实异步处理就是削峰的...原创 2019-08-19 14:07:29 · 523 阅读 · 1 评论 -
面试五:消息中间件
1…消息中间件?消息中间件特点、应用场景?异步处理,用户注解耦,用户下单.流量削峰,秒杀活动日志处理 (kafka)消息通讯,点对点,聊天室缺点:系统可用性降低(MQ挂了、MQ高可用性)系统复杂度提高(重复消费、消息丢失)数据一致性(B、C成功,D失败)2.MQ挂了、MQ高可用性怎么解决?RabbitMq的高可用性,基于主从分离RabbitMq有三种模式:单机模式普...原创 2019-08-19 14:07:37 · 222 阅读 · 0 评论 -
面试六:spring框架知识
1.springMVC运行过程1.用户发起请求到前端控制器(Controller)2.前端控制器没有处理业务逻辑的能力,需要找到具体的模型对象处理(Handler),到处理器映射器(HandlerMapping)中查找Handler对象(Model)。HandlerMapping返回执行链,包含了2部分内容: ① Handler对象、② 拦截器数组3.前端处理器通过处理器适配器包装后执行...原创 2019-08-19 14:07:46 · 164 阅读 · 0 评论 -
面试七:数据库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 · 187 阅读 · 0 评论 -
面试八:分布式
1.什么是分布式系统?用过那些分布式系统?一个业务分拆多个子业务,部署在不同的服务器上。2.分布式锁1.基于数据库实现分布式锁2.基于缓存redis实现分布式锁 (设置超时时间)3.基于Zookeeper实现分布式锁(临时节点)3.分布式缓存,redis、Memcachedredis和Memcached区别1 、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,se...原创 2019-08-19 14:08:01 · 218 阅读 · 0 评论 -
面试:其他
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 · 146 阅读 · 0 评论 -
Spring Boot配置多数据源
**1.目的**项目中需要连第二个数据库,去实现查询服务,方法用两个:1.另外重新写一个项目提供服务 2.在原来的项目中使用多数据源因为只做两个查询服务,所以就不需要重新写一个服务,选择了多数据源方式2.怎么做1.application.properties 写两份配置信息spring.datasource.jiameng.driver-class-name=com.mysql.c...原创 2019-08-19 14:03:42 · 224 阅读 · 0 评论 -
分布式任务调度平台 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 · 222 阅读 · 0 评论 -
面试二:JVM内容
1.为什么要用类加载器?类加载是做什么的?怎么加载类加载器负责加载 Java 类的字节代码到 Java 虚拟机中双亲委派模式2.类的生命周期加载 验证 准备 解析 初始化 使用 卸载3.和服务器类加载的区别(tomcat)1.启动类去加载2.系统类去加载3.webapp应用类去加载(class)4.webapp应用类去加载(lib)5.通用类加载器去加载4.双亲委派模式?为什...原创 2019-08-19 14:07:07 · 131 阅读 · 0 评论 -
面试一 :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 · 145 阅读 · 0 评论 -
简单学习Docker
什么是容器那么应用容器长什么样子呢,一个做好的应用容器长得就好像一个装好了一组特定应用的虚拟机一样有了容器,相当于有了一个可以运行起来的虚拟机,只要你能运行容器,安装的配置就全省了。而且一旦你想换台机器,直接把这个容器端起来,再放到另一个机器就好了。硬件,操作系统,运行环境什么的都不需要考虑了。利用容器的话,那么开发直接在容器里开发,提测的时候把整个容器给测试,测好了把转载 2017-12-20 13:56:23 · 164 阅读 · 0 评论 -
Spring Cloud Bus 配置更新
Spring Cloud Bus做配置更新步骤如下: 1. 提交代码触发post请求给bus/refresh 2. server端接收到请求并发送给Spring Cloud Bus 3. Spring Cloud bus接到消息并通知给其它客户端 4. 其它客户端接收到通知,请求Server端获取最新配置 5. 全部客户端均获取到最新的配置在win下使用下面命令来模拟we原创 2017-11-28 14:51:43 · 563 阅读 · 0 评论 -
设计模式六大原则(5):迪米特法则
定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不言而喻,但是怎么样编程才能做到低耦合转载 2018-01-02 10:54:06 · 156 阅读 · 0 评论 -
spring boot 定时任务更新浏览数、点赞数
SpringBoot配置定时任务可以直接使用自带的Scheduled,这相当于一个轻量级的Quartz,它可以让我们直接使用注解来完成定时任务的配置。1.定时任务方法/** * 定时任务 * * @author lyj * @since 2.0 */@Configuration@EnableSchedulingpublic class TigerDataApproveT原创 2018-01-24 18:32:03 · 2179 阅读 · 0 评论 -
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 · 3648 阅读 · 0 评论 -
spring boot +Websocket 推送
使用websocket有两种方式:1是使用sockjs,2是使用h5的标准。使用Html5标准自然更方便简单,所以记录的是配合h5的使用方法。1、pom 核心是@ServerEndpoint这个注解。这个注解是Javaee标准里的注解,tomcat7以上已经对其进行了实现,如果是用传统方法使用tomcat发布项目,只要在pom文件中引入javaee标准即可使用。转载 2018-01-09 16:28:37 · 612 阅读 · 0 评论 -
spring boot + rabbit
RabbitMQ 即一个消息队列,主要是用来实现应用程序的异步和解耦,同时也能起到消息缓冲,消息分发的作用,中间件最标准的用法是生产者生产消息传送到队列,消费者从队列中拿取消息并处理,生产者不用关心是谁来消费,消费者不用关心谁在生产消息,从而达到解耦的目的。在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。RabbitMQ介绍通常我们谈到转载 2018-01-29 17:22:55 · 313 阅读 · 0 评论 -
Spring Boot + MongoDB 增删改查的简单使用
MongoDB简介mongodb是一个介于nosql数据库和mysql数据库之间的一个数据存储系统,它没有严格的数据格式,但同时支持复杂查询,而且自带sharding模式和Replica Set模式,支持分片模式,复制模式,自动故障处理,自动故障转移,自动扩容,全内容索引,动态查询等功能。扩展性和功能都比较强大。 mongodb在数据查询方面,支持类sql查询,可以一个key多value内容...原创 2018-02-12 11:33:41 · 2057 阅读 · 2 评论 -
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 · 1349 阅读 · 0 评论 -
JAVA面试题经验
0.自我介绍1.JAVA基础1.string 、stringbuffer、 stringbuilder区别string是长度是不可变的,stringbuffer、 stringbuilder是长度可以变的,stringbuffer是线程安全的,stringbuilder是线程不安全2.常用的集合类、特点、底层实现set、map、list,hashset、...原创 2019-08-08 16:19:53 · 2859 阅读 · 3 评论 -
Netty服务端1
1.Netty服务端创建时序图步骤1代码: EventLoopGroup bossGroup = new NioEventLoopGroup(); EventLoopGroup workerGroup = new NioEventLoopGroup();首先通过构造函数创建ServerBootstrap实例,通常会创建两个EventLoopGroup(也可以只创建...原创 2018-08-02 16:05:36 · 150 阅读 · 0 评论 -
解决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 · 751 阅读 · 0 评论 -
生成分布式唯一的订单号:twitter的SnowflakeIdWorker
public class SnowflakeIdWorker { // ==============================Fields=========================================== /** 开始时间截 (2015-01-01) */ private final long twepoch = 1420041600000L;...原创 2019-01-31 13:37:23 · 1255 阅读 · 0 评论 -
Spring事务和AOP一些知识点
Spring事务和AOP一些知识点在开发中,一般都把事务加到Service层。和事务相关的注解:@Transactional事务管理方式有两种:编程式事务 、声明式事务编程式事务:自己写代码来开启和提交事务,需要在代码中显式调用beginTransaction()、commit()、rollback()等事务管理相关的方法声明式事务:通过注解来使用事务,底层是建立在 AOP 的基础之上...原创 2019-03-08 16:53:23 · 220 阅读 · 0 评论 -
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 · 860 阅读 · 0 评论 -
Hikari 数据库连接池配置主从结构
HikariCP是数据库连接池,而且是号称史上最快的,而且目前来看确实是这样的,SpringBoot2.0也已经采用HikariCP作为默认连接池配置.HikariCP 默认配置主要参数是在 com.zaxxer.hikari.HikariConfig 中初始化的,部分参数是在 com.zaxxer.hikari.pool.PoolBase 中初始化的。 name 描述 构造...原创 2019-04-08 18:44:06 · 2963 阅读 · 0 评论 -
Spring Cloud Zuul简单使用
总结一下spring cloud 的结构: 1、请求统一通过API网关(Zuul)来访问内部服务. 2、网关接收到请求后,从注册中心(Eureka)获取可用服务 3、由Ribbon进行均衡负载后,分发到后端具体实例 4、微服务之间通过Feign进行通信处理业务 5、Hystrix负责处理服务超时熔断 6、Turbine监控服务间的调用和熔断相关指标Spring Cloud Zuul简单使转载 2017-11-28 15:30:35 · 2486 阅读 · 2 评论