自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

码农星

多交流多请教大家

  • 博客(54)
  • 收藏
  • 关注

原创 一起聊聊Java NIO

一、IO的基本概念IO我的理解就是数据的发送与接收。IO操作场景一般分为:1.文件IO 2.网络IO(我们平时讲的BIO、NIO、AIO其实说的都是网络编程IO模式)在jdk 1.4中引入了新的java I/O库 java.nio.*包其目的是为了提高速度,新的I/O库也就是NIO,有的人翻译成 no-blocking io有的人翻译成 new io,其实都一样。在Java A...

2019-12-24 16:38:18 714

原创 Linux awk 日常统计操作

小经验:awk 统计top时先sort 然后uniq -c 比较好cat antispam-data.log.info.2019-11-20-08 | grep '耗时' | awk -F '耗时:' '{if ($2<30) num30+=1;if($2<50) num50+=1;if($2<100) num100+=1;} END {print "调用次数 " NR "...

2019-05-15 10:57:35 1536

原创 声明式事务不回滚@Transactional的避坑正确使用

在我们开发中很多时候都要用到事务,例如转账等等的操作,这些我就不多BB了,哈哈。下面我来说下关于Spring的声明式事务@Transaction的坑,我想最大的坑应该还是代理事务不生效的问题,下面放个链接,以免别人问。https://blog.csdn.net/weixin_41485592/article/details/80031597下面我要说的又是一个坑,也是声明式事务不回滚的问题。重点来...

2018-07-01 21:51:45 35322 21

原创 谈谈电商秒杀高并发的处理

众所周知现在连市场卖菜的大妈都快知道高并发了,哈哈,那么我们生活中是否接触过高并发呢。当然了哈哈,比如你给你女朋友抢秒杀的化妆品什么的了。秒杀最棘手的问题就是解决并发带来的问题。下面我们一起聊聊喽。首先我们来说下问题:秒杀高并发带来的最大问题,就是库存超卖。(如果你没看过我的文档,导致你写公司秒杀业务时库存超卖了,公司损失了,将你开除了,你会多么不开心,哈哈我来给你写稻草救救你)嘻嘻嘻嘻嘻...

2018-04-22 23:53:41 27629 48

原创 springboot启动打印web地址

【代码】springboot启动打印web地址。

2022-12-22 19:40:22 254 1

原创 线程的BLOCK、WAITING、TIMED_WAITING状态

BLOCKED状态线程处于BLOCKED状态的场景。当前线程在等待一个monitor lock,比如等待执行synchronized代码块或者使用synchronized标记的方法。 在synchronized块中循环调用Object类型的wait方法,如下是样例 synchronized(this) { while (flag) { obj.wait(); } // some othe...

2020-01-13 15:12:29 3685

原创 Java线程池的使用

http://blog.sina.com.cn/s/blog_7d1968e20102x1x4.html线程池的创建private ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(20, 100, 30, TimeUnit.SECONDS, new LinkedBlockingDeque...

2019-10-28 14:20:14 246

原创 设备指纹测试数据

{ "param": { "tdToken": "eyJvcyI6ImFuZHJvaWQiLCJ2ZXJzaW9uIjoiMy4xLjkiLCJwYWNrYWdlcyI6ImNuLm1pc3NmcmVzaC5hcHBsaWNhdGlvbiomOS4xLjAiLCJwcm9maWxlX3RpbWUiOjQwMiwiaW50ZXJ2YWxfdGltZSI6MTkxMTEsInR...

2019-07-04 16:00:30 3848

原创 MySQL查询 explain中的type指标

Explain命令用于分析sql语句的执行情况和成本预估今天我们重点学习type指标指标逐渐降低:systme>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all1.cons...

2019-06-17 16:30:59 522

转载 时间窗口的设计

转载源:https://www.liangzl.com/get-article-detail-4033.html感觉里面最后说的那个,和阿里的Sentinel组件的时间窗口实现的差不多时间窗口,通常对于一些实时信息展示中用得比较多,比如维持一个五分钟的交易明细时间窗口,就需要记录当前时间,到五分钟之前的所有交易明细,而五分钟之前的数据,则丢掉一个简单的实现就是用一个队列来做,新的数据在...

2019-06-13 11:51:47 4399

原创 Git常用命令你也许有的还没使用过哦

来来来 一起看看吧 有需要就来找找吧查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件...

2019-05-30 16:52:23 228

原创 带你了解Mysql数据库死锁

最近在看一些东西sharding-jdbc,突然想写一下数据库死锁相关的问题。好像前者后者没什么必要关系哈。关于数据库发生死锁可能很少人遇到过,也可能遇到了看到一个报错你就过去了(因Mysql有检测死锁机制),没当回事。我们今天来聊聊死锁。死锁发生的两个必要条件1.肯定在多条sql语句执行事务操作2.肯定多个事务操作同一数据,并相互等待对方资源如下图:左图那两辆车造成死锁了...

2019-05-22 22:03:45 944

翻译 通过JVM日志查看GC情况

原文出处:plumbr.eu许多事件都可能会导致JVM暂停所有的应用线程。这类暂停又被称为”stop-the-world”(STW)暂停。触发STW暂停最常见的原因就是垃圾回收了(github中的一个例子),但不同的JIT活动(例子),偏向锁擦除(例子),特定的JVMTI操作,以及许多场景也可能会导致应用程序暂停。应用程序线程可以被安全地停止掉的那个时间点,就叫做安全点。这一术语也通常用来...

2019-05-22 19:28:48 2253

原创 API设计需要注意的地方

看了梁大的文章摘抄。一、定义好的规范,已经成功了一大半通常情况下,规范就是大家约定俗成的标准,如果大家都遵守这套标准,那么自然沟通成本大大降低。例如,大家都希望从阿里的规范上面学习,在自己的业务中也定义几个领域模型:VO、BO、DO、DTO。其中,DO(Data Object)与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。而 DTO(Data Transfer Object)...

2019-05-16 10:53:28 269

原创 牛逼的跨库跨表分页,你扛得住产品的催残吗?

数据展示就会涉及到分页,一般情况下按照create_time排序limit一下就好了。例如:order by create_time limit m,n可是数据不安分啊,数据越来越多,你又会把数据分库又分表。分完了,数据存储量可以了。回头我擦分页咋搞嘞。比如:我们把数据分了两个数据库,比如每页10条数据,你要翻到10页。基本方案:每个数据库或表,都按时间排序取10条数据(order ...

2019-05-14 18:13:49 674

转载 通过jstack日志分析和问题排查

前段事件公司出现了一个严重故障(调用dubbo服务一直处于超时,整个服务系统发生雪崩,系统彻底访问不了),一开始怎么都找不到问题的根源,日志的表现形式是dubbo线程池用完了,那么具体是什么导致的没有找到,后然通过jstack日志分析才找到问题的根源,根源就是系统日志代码写有问题。通过这个故障我们来了解下如何通过jstack日志分析线上问题。首先了解下jstack1.dump 文件里,值得关注...

2019-05-08 15:46:06 1308

原创 由于网络延时,consumer先抛出超时异常,一段时间后又收到了已经超时的响应,dubbo是怎么处理的?

考虑这样一种情况,由于网络延时,consumer先抛出超时异常,一段时间后又收到了已经超时的响应,dubbo是怎么处理的?拆分为3步看:1. consumer的DubboResponseTimeoutScanTimer进行扫描DubboResponseTimeoutScanTimer负责扫描响应,如果发现超时,自行构造一个超时响应,并处理。Future,Request,Respon...

2019-05-05 17:35:52 987

原创 同盾设备指纹简单分析

研究了下设备指纹,我发现设备指纹无非三个方面。1.设备指纹不可伪造性 2.设备指纹唯一性(降低重码数)3.设备篡改可识别性下面分别说说以上三个方面。设备指纹不可伪造,无非就是通过加密的手段,加密后我方可验证是否为我们自己加密的设备信息。设备指纹唯一性、设备篡改可识别性,以同盾为例子,同盾在生成设备指纹唯一ID时,相应的生成了一些其他组合的DeviceId。首先当用户篡改设备并且...

2019-05-05 15:12:11 4740

原创 网站被国外IP攻击 禁止海外IP访问网站的解决办法

研究发现很多网站被攻击都是来自海外的肉鸡,所以禁掉海外IP访问网站也是不错的防护手段,而且国内网站几乎很少有国外用户访问,称之为大局域网也不为过。 今天来教大家如何利用域名解析禁止掉海外IP访问网站。 绝大多数域名解析服务商都是提供电信联通移动海外线路区分解析的,所以我们可以充分利用这个功能,来禁止海外访问。以阿里云DNS解析为例: 设置A...

2019-05-05 10:42:38 19174 2

转载 当我们说线程安全时,到底在说什么?

本文转发自技术世界,原文链接 http://www.jasongj.com/java/thread_safe/多线程编程中的三个核心概念原子性这一点,跟数据库事务的原子性概念差不多,即一个操作(有可能包含有多个子操作)要么全部执行(生效),要么全部都不执行(都不生效)。关于原子性,一个非常经典的例子就是银行转账问题:比如A和B同时向C转账10万元。如果转账操作不具有原子性,A在向C...

2019-04-21 16:20:44 127

转载 线程高级篇-Lock锁和Condition条件

浅谈Synchronized:  synchronized是Java的一个关键字,也就是Java语言内置的特性,如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,执行代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而获取锁的线程释放锁会有三种情况:  1).获取锁的线程执行完该代码块,然后线程释放对锁的占有;  2).线程执行发生异常,此时JVM会...

2019-04-21 15:15:34 153

原创 2019年学习计划

Java多线程线程池的原理,为什么要创建线程池?减少创建线程和销毁线程的开销,使线程可以达到复用的效果。线程的生命周期,什么时候会出现僵死线程;1)新建状态——(2)就绪状态—((4)阻塞状态)—(3)运行状态——(5)死亡状态 当前进程运行结束后,其父进程仍在运行或仍未结束并且父进程没有调用wait来清理以结束的子进程。导致出现大量的僵尸线程,也...

2019-04-18 10:12:56 186

原创 HttpClient 优化版(添加重试、单路由Max)

/* * Copyright (C) 2018 www.missfresh.cn All rights reserved. * * Created by gaoxing on 2018/11/28. */package com.missfresh.antispam.sdk.utils;import java.io.IOException;import java.io.Input...

2019-04-16 21:32:17 573

原创 查看网络出口IP

查看网络出口IPcurlhttp://members.3322.org/dyndns/getip查看端口占用情况netstat -nltp grep 端口号

2019-04-04 14:25:44 9659

原创 如何查看 Linux 机器负载

负载(load) 是Linux机器的一个重要指标,直观的反映了机器当前的状态,如果机器负载过高,机器运行的服务会出现一些问题。Linux 的负载 主要由于CPU、内存使用、IO消耗三部分组成,任意一项使用过多都会导致服务期负载急剧攀升。命令 uptime 可以直接展现负载load averager : 分别代表 过去1分钟、5分钟、15分钟的平均负载命令 top 也可以展...

2019-03-18 15:36:22 3118

原创 微信appId和openId和unionid 的区别

appid:一个appid唯一对应一个小程序或者公众号,尽管一个appid可以开发多个小程序,但是最终提交审核和上线的只能是一个小程序。openid:微信用户在某个小程序或者公众号的唯一标识,用于获取用户信息通过应用appid+用户微信号加密,产生的openidunionid:同一个用户在不同的应用(小程序或者公众号),unionid是相同的,可以用来用户量去重...

2019-02-27 17:54:20 3611

转载 Java应用线上事故前执行脚本

转载来的,最近也是在学习JVM的一些东西。线上服务出问题了!!!!当手机报警短信响起-》 我们匆匆忙忙打开电脑-》 然后登上跳板机-》 一条一条执行命令,dump下当前vm和heap情况一看表好几分钟过去了!!!多少个用户受到影响,又要做casestudy了,但是发现事后复盘都不知道dump去哪儿找。写了个简单的脚本分分钟snapshot系统的各种情况。#!/bin/ba...

2019-01-21 14:16:47 179

原创 JVM 快速定位问题命令

CPU:toptop -Hp pidjstack -l pid | grep -C10 nid=0x2ddc内存:jmap -heap <pid>jmap -histo:live <pid>jmap -dump:[live,]format=b,file=<filename> <pid>线程:1、查看最大进程数:cat /pro...

2019-01-16 11:30:28 328

转载 Redis 数据存储初识

来源:公司征哥分享初识redis一)万物皆对象:typedef struct redisObject {unsigned type:4;unsigned encoding:4;unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or* LFU data (least significant ...

2019-01-07 20:52:24 103

翻译 Linux awk 入门教程

awk是处理文本文件的一个应用程序,几乎所有 Linux 系统都自带这个程序。它依次处理文件的每一行,并读取里面的每一个字段。对于日志、CSV 那样的每行格式相同的文本文件,awk可能是最方便的工具。awk其实不仅仅是工具软件,还是一种编程语言。不过,本文只介绍它的命令行用法,对于大多数场合,应该足够用了。一、基本用法awk的基本用法就是下面的形式。...

2019-01-07 20:47:16 115

原创 RocketMQ 工作笔记

Producer:发送失败重试3次Customer:消费失败重试,时间级别 1s 2s 4s.....(也可以自己实现次数控制)ProducerGroup :生产者有组主要是为了一些事务处理结果为返回(例如:宕机),会调用组内其他Producer确定事务状态...

2018-12-26 16:03:47 149

原创 Redis提供了RDB持久化和AOF持久化

RDB机制的优势和略施  RDB持久化是指在指定的时间间隔内将内存中的数据集快照写入磁盘。  也是默认的持久化方式,这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自动做快照,下面是默认的快照保存配置 save 900 1 #900...

2018-12-24 17:48:16 127

原创 HTTP工具类

/* * Copyright (C) 2018 All rights reserved. * * Created by gaoxing on 2018/11/28. */package com.missfresh.antispam.sdk.utils;import java.io.IOException;import java.io.InputStream;import ja...

2018-12-04 11:23:06 2651

原创 Sentinel的降级策略和统计算法分析

首先在这里就不讲怎么用了,官网上面的wiki看一下就行,无非两行代码,一个入口进入和一个出口离开。官网wiki地址:https://github.com/alibaba/Sentinel/wiki/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8这里主要分析降级的策略和统计数据的算法至于小编为什么深入了解Sentinel呢,因为线上出了一个我不能理解的问题。PS:最...

2018-11-25 23:54:24 1058

原创 Excel文件批量上传/下载(三):非常全的操作POI的工具类

应该算全了吧,我这个封装的工具类,应该能满足大家的基本需求,如果有更好的东西欢迎分享给我/* * Copyright (C) 2018 gaoxing All rights reserved. * * Created by [email protected] on 2018/11/06. */import java.io.FileNotFoundException;import...

2018-11-06 15:39:08 312

原创 Excel文件批量上传/下载(二):前端、后端配置

咱们玩后端的一般不用管前端,但是 但是 我们不得自己测一下吗,这样方便撕逼。1.前端不管你是html还是jsp都一样,放入我这个表单<form name="Form2" action="/Xxx自己写自己的这块" method="post" enctype="multipart/form-data"> <h1>码农星文件上传测试,请点击</h1...

2018-11-06 15:34:39 530

原创 Excel文件批量上传/下载(一):准备工作

在工作中我们经常会遇到Excel批量导入数据,今天带大家完整的走下流程。并将工具类等分享。首先准备工作:(声明本人使用的是SpringMvc的文件上传或下载,操作Excel使用的POI,本人讲解不墨迹)1.项目中需要包含一下两个jar包: commons-fileupload-1.3.1.jar (不要在这和我纠结版本,去maven仓库别找太老的版本一般都可以) ...

2018-11-06 15:23:09 846

原创 安卓手机安装charles安全证书

开发需要进行app抓包,所以搞了个charles,本小组人都用的苹果手机,我用的安卓。charles需要安装证书,否则手机端抓包会出现unknow。本次安装使用小米mix2为例。1.首先 设置好手机的charles代理 172.16.xxx.xxx 88882.要使用 UC浏览器 访问http://charlesproxy.com/getssl(下载到一个你...

2018-10-15 16:52:25 26295

原创 Dubbo 并发连接底层探究

网络传输在RPC框架中所处的位置一个RPC协议实现由 通信模块、报文编解码模块、序列化模块组成,其中通信模块就是RPC网络传输的实现。其稳定性和性能就直接影响了RPC服务的稳定和性能。如何保证传输模块的稳定和性能呢?网络传输的实现组成IO模型:BIO 同步阻塞 NIO 同步非阻塞 AIO 异步非阻塞 连接模型:长连接 短连接线程分类:IO线程 服务端业务...

2018-08-23 22:51:21 432

原创 开发中常使用的PO、VO、BO、DTO的理解

PO:持久对象 (persistent object),po(persistent object)就是在Object/Relation Mapping框架中的Entity,po的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相...

2018-08-23 11:16:37 6562

空空如也

空空如也

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

TA关注的人

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