自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 收藏
  • 关注

原创 频繁fullgc 排查思路

频繁fullgc 排查思路?首先:肯定会有对象频繁的进入老年代才会导致fullgc哪些对象会进入老年代呢?1 >15岁(默认)2 大于 超过s区50%的那部分对象的年龄 的 对象3 大对象分析1:大于15岁的对象一般是单例的 spring 管理的那种对象可以暂时忽略分析2:这种情况可能是年轻代的内存给小了或者S区的内存给小了分析3:排查是不是有select*大表的这种情况那什么时候回fullgc呢?1.old内存小于历次ygc流入的平均对象大小2.yg.

2020-12-26 20:15:49 766

原创 redis分布式锁问题

伪代码:set k v nx exk:锁定的资源 如订单号等v:固定值:如1ex:超时时间业务场景:1.拿锁2.执行业务3.放锁举例:订单号:123A线程:拿锁(k:123 v:1)------------- 业务处理(时间过长 超过锁超时时间 释放锁)------------继续业务处理--------------------释放锁(此时释放的是B线程的锁) ...

2020-11-27 17:49:59 220

原创 线程池+CountDownLatch解决了接口超时问题

ExecutorService pool = new ThreadPoolExecutor(budgetIds.size(), budgetIds.size(), 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(128), new ThreadPoolExecutor.CallerRunsPolicy());List<Future<Map<String, Budget>>.

2020-11-25 18:29:35 1353

原创 rocketMq事务消息的疑惑??

begin transaction业务操作bool snedMqResultif(success){commit}else{rollBack}看似没啥问题!!!sendMq的时候网络有问题 ,消息已到borker但是响应结果的时候网络有问题了呢?结果就是:业务操作失败回滚;消息投递成功!...

2020-11-06 19:57:13 130

原创 Hystrix熔断流程

图中流程的说明:将远程服务调用逻辑封装进一个HystrixCommand。 对于每次服务调用可以使用同步或异步机制,对应执行execute()或queue()。 判断熔断器(circuit-breaker)是否打开或者半打开状态,如果打开跳到步骤8,进行回退策略,如果关闭进入步骤4。 open状态说明打开熔断,也就是服务调用方执行本地降级策略,不进行远程调用。 closed状态说明关闭了熔断,这时候服务调用方直接发起远程调用。 half-open状态,则是一个中间状态,当熔断器处于这种状态..

2020-09-27 10:22:45 915

原创 ZooKeeper总结

1.Zookeeper用途/功能 ZooKeeper,它是一个开放源码的「分布式协调服务」,它是一个集群的管理者,它将简单易用的接口提供给用户。 可以基于Zookeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列「等功能」。 Zookeeper的「用途」:命名服务、配置管理、集群管理、分布式锁、队列管理 命名服务命名服务是指通过「指定的名字」来获取资源或者服务地址。Zookeeper可以创建一个「全局

2020-09-24 14:53:22 560

原创 jvm常用配置

-Xms4000m设置JVM初始内存为4000M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。-Xmx4000m设置JVM最大可用内存为4000M。-Xmn1500m设置年轻代大小为1500M.Sun官方推荐配置为整个堆的3/8。-Xss256k 设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。在相同物理内存下,减小这个值能生成更多的线程。但是操作系统对一个进程内的线程数还是有限制...

2020-09-17 11:53:07 542

原创 log4j logback slf4j jdk-logging(jul) commons-logging(jcl)关系

日志框架日志门面类似JDBC的设计理念,只提供了一套接口规范,自身不负责实现,让使用者不需要关心底层到底是哪个日志库来打印及使用细节.目前使用最广泛的是slf4j/jcl日志库具体实现日志的相关功能:jul,jdk1.4开始,它能满足基本的日志需要,但是功能没有Log4j强大,而且使用范围也没有Log4j广泛Log4j,logback出自一人之手(Ceki Gulcu),logback是Log4j的升级版本日志适配器日志门面适配器:因为slf4j规范提出来后,在此之前的日

2020-07-15 22:36:12 244

原创 线程池(3)-线程池监控

public class ThreadTemplate { /**监控线程池*/ private final static ScheduledExecutorService scheduledExecutorService = new ScheduledThreadPoolExecutor( 1, new BasicThreadFactory.Builder() .namingPattern( .

2020-07-14 23:14:34 309

原创 线程池(2)-Executor框架

Executor框架的结构任务:被执行的任务需要实现Runnable接口或Callable接口 任务的执行:ScheduledThreadPoolExecutor、ThreadPoolExecutor 异步计算的结果:Future、FutureTaskExecutors1)FixedThreadPool:适用于为了满足资源管理需求,需要现在当前线程数量的应用场景,适用于负载较重的服务器. public static ExecutorService newFixedThreadPoo.

2020-07-12 21:43:52 154

原创 线程池(1)

目录线程池的优点线程池的处理流程线程池核心参数关闭线程池合理配置线程池线程池监控线程池的优点降低资源消耗,通过重复利用已创建的线程降低线程创建销毁的消耗; 提高响应速度,任务到达时不需要等到线程创建就能立即执行; 调高线程可管理性;线程池的处理流程当一个任务进入线程池时,如上图:线程池判断核心线程池的线程是否都在执行任务,如何有空闲线程则使用空闲/新建线程执行任务,如果核心线程满了则进入下一流程 判断工作队列是否已满,如果没有则将任务存放在队列中...

2020-07-11 23:57:27 175

原创 策略模式+工厂模式解决if-else

需求系统对接多种第三方支付方式(第三方登录)对于同一功能场景有多种策略时;在此拿支付举例(支付宝、微信).基本代码支付类型枚举public enum PayTypeEnum { ALI_PAY("ALI_PAY","支付宝支付"), WX_PAY("WX_PAY","微信支付"), ; public static PayTypeEnum getByCode(String code){ for (PayTypeEnum value : va

2020-07-09 23:03:13 535

原创 动态代理(2)-使用代理模式写出异步注解(简单的@Async)

自定义异步注解/** * @Retention - 标识这个注解怎 么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。 * @Documented - 标记这些注解是否包含在用户文档中。 * @Target - 标记这个注解应该是哪种 Java 成员。 */@Target({ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface DjlAsyn

2020-07-08 22:33:27 463

原创 代理模式

什么是代理模式代理模式主要对我们方法执行之前与之后实现增强代理模式应用场景日志的采集、权限控制、实现aop、Mybatis mapper、Spring的事务、全局捕获异常、Rpc远程调用、接口分布式事务原理代理数据源代理模式实现的原理代理模式主要包含三个角色,即抽象主题角色(Subject)、委托类角色(被代理角色,Proxied)以及代理类角色(Proxy),如图所示:抽象主题角色:可以是接口,也可以是抽象类;委托类角色:真实主题角色,业务逻辑的具体执行...

2020-07-06 23:20:39 474

原创 ssh链接git Please make sure you have the correct access rights and the repository exists.

把.ssh 下known_hosts 文件清空即可

2020-06-03 14:06:06 207

原创 垃圾回收

2020-05-07 18:41:21 99

原创 java堆中的对象

2020-04-29 15:41:52 200

原创 jvm机运行时数据区域

2020-04-29 10:17:50 116

原创 '递归构造树型结构

package com.anlysdata.pojo.entity;import org.apache.commons.lang3.StringUtils;import java.io.Serializable;import java.util.ArrayList;import java.util.List;public class TRegion implements Seri...

2020-01-06 11:54:19 201

原创 CAP最简单的理解

Consistency:一致性,原文翻译过来是说,对于任何从客户端发达到分布式系统的数据读取请求,要么读到最新的数据要么失败。换句话说,一致性是站在分布式系统的角度,对访问本系统的客户端的一种承诺:要么我给您返回一个错误,要么我给你返回绝对一致的最新数据,不难看出,其强调的是数据正确。Availability:可用性,原文翻译过来是说,对于任何求从客户端发达到分布式系统的数据读取请求,都一定会...

2019-10-23 17:18:05 541

原创 mysql如何定位慢查询

MySQL数据库配置慢查询参数说明:slow_query_log 慢查询开启状态slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录) long_query_time 查询超过多少秒才记录1.查询慢查询配置 show variables like 'slow_query%';2.查询慢查询限...

2019-10-21 22:50:36 234

原创 RabbitMQ如何保证消息队列的高可用?

RabbitMQ 有三种模式:单机模式、普通集群模式、镜像集群模式。单机模式单机模式,就是 Demo 级别的,一般就是你本地启动了玩玩儿的�,没人生产用单机模式。普通集群模式(无高可用性,可提高吞吐量)普通集群模式,意思就是在多台机器上启动多个 RabbitMQ 实例,每个机器启动一个。你创建的 queue,只会放在一个 RabbitMQ 实例上,但是每个实例都同步 queue 的...

2019-10-21 14:58:26 398

原创 Kafka、ActiveMQ、RabbitMQ、RocketMQ 对比选型

特性 ActiveMQ RabbitMQ RocketMQ Kafka 单机吞吐量 万级,比 RocketMQ、Kafka 低一个数量级 同 ActiveMQ 10 万级,支撑高吞吐 10 万级,...

2019-10-21 14:41:31 198

原创 为什么使用消息队列?消息队列有什么优点和缺点?

为什么使用消息队列其实就是问问你消息队列都有哪些使用场景,然后你项目里具体是什么场景,说说你在这个场景里用消息队列是什么?面试官问你这个问题,期望的一个回答是说,你们公司有个什么业务场景,这个业务场景有个什么技术挑战,如果不用 MQ 可能会很麻烦,但是你现在用了 MQ 之后带给了你很多的好处。先说一下消息队列常见的使用场景吧,其实场景有很多,但是比较核心的有 3 个:解耦、异步、削峰。...

2019-10-21 14:39:22 1024

原创 项目打成jar包获取rescources下的文件

InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("/template/月报模版.xls");

2019-10-16 18:48:33 272

原创 阿里人脸识别H5案例(只需身份号 和姓名)

@Override public ResponseDto faceCheck(FaceCheckDto registerDto) { DefaultProfile profile = DefaultProfile.getProfile( "cn-hangzhou", //默认 ...

2019-06-26 15:34:58 3215 1

原创 查询某条记录在mysql中的行数

select d.rownum from (SELECT *FROM (SELECT @rownum:=0) c,(SELECT a.*,@rownum:=IFNULL(@rownum,0)+1 rownum FROM tableName a ORDER BY a.colName) b ) d where d.id='keyWord'

2019-06-03 21:51:14 2376 1

原创 ZooKeeper实现分布式锁

锁接口package lock;public interface Lock { //获取到锁的资源 public void getLock(); // 释放锁 public void unLock();}锁抽象类package lock;import org.I0Itec.zkclient.ZkClient;/** * @Authe...

2019-04-27 15:23:29 212 1

原创 zk---demo

zk应用场景:命名服务:dubbo+zk发布订阅:watcher zk节点发生变化,都会有事件通知负载均衡(和eureka类似)分布式通知watchermaster选举---主备投票机制 ping机制心跳检测分布式锁分布式配置中心//demopackage test1;import org.apache.zookeeper.*;import org.apache.zo...

2019-04-27 15:17:39 164

原创 redis专题

应用场景令牌(Token)生成 短信验证码 分布式锁 计数器 缓存(热点数据) 发布订阅 主从复制redis中只能有一个master 可以存在多个slavemaster可以读写 slave只能读过程:过程:1:当一个从数据库启动时,会向主数据库发送sync命令,2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保...

2019-04-09 15:09:57 123

原创 高并发解决方案

页面优化-》减少页面连接数、页面尺寸瘦身业务应用-》逻辑代码优化(算法优化)、公共数据缓存业务数据库-》数据水平分割(分区分表分库)、读写分离应用服务器-》反向静态代理、配置优化、负载均衡(apache分发,多tomcat实例)系统环境-》JVM调优...

2019-04-08 14:02:55 83

原创 分布式session共享解决方案

1使用spring-session + redis2nginx ip_hash3cookie4tomcat配置session共享5使用token

2019-04-08 13:59:30 265

原创 跨域问题

什么是跨域:ajax访问请求域名与浏览器访问域名地址不同.解决:1jsonp 只支持get请求2httpclient内部转发3http响应头允许跨域设置4ngixn搭建企业网关5springcould zuul接口网关...

2019-04-07 23:36:30 97

原创 rebbion负载均衡规则

//自定义rebbion负载均衡规则 @Bean public IRule myIRule(){ return new RandomRule(); }

2019-01-29 16:25:39 1696 1

原创 springCloud-eureka注册中心集群+服务集群demo

 1.项目结构eureka-service和eureka-service2注册中心集群配置文件 eureka-service   ###服务端口号server: port: 8761eureka: instance: hostname:127.0.0.1 client: ####因为自己是为注册中心,不需要自己注册自己 集群环境为true ...

2019-01-29 11:28:44 263

原创 JVM

线程私有:栈:入口只有一个 先进后出虚拟机栈 -Xss(栈容量默认1M):一个方法对应一个栈帧(1局部变量表(基本数据类型/引用地址)2操作数栈3动态连接4返回地址)高并发 支持更多线程 在内存一定的情况下  减少栈的容量虚拟机栈异常--StackOverflowerError(递归)执行的虚拟机栈深度大于虚拟机栈允许的最大深度可把栈内存调大 支持线程则会变小本地方法栈:n...

2019-01-16 16:45:29 118

原创 必会SQL优化查询

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中使用!=或&lt;&gt;操作符,否则将引擎放弃使用索引而进行全表扫描。3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is...

2018-08-29 13:58:10 422

原创 查出最大,最小的Count(Name)及对应的Name

select name, count(name) from t group by namehaving count(name)=(select max(a.cou) from (select count(name) as cou from t group by name) a )

2018-06-13 00:16:32 389

空空如也

空空如也

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

TA关注的人

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