自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1953)
  • 资源 (24)
  • 收藏
  • 关注

转载 [小项目]-netty实现聊天功能

Netty是一个Java的NIO客户端服务端框架可以快速的开发网络应用程序,比如客户端和服务端的协议,大大简化了网络程序的开发过程。我们知道Netty的整体架构主要由3部分组成:缓冲(buffer)、通道(channel)、事件模型(event model)。所有的高级也行都构建于这三个组件之上。下面我们基于这个架构实现一个简单的网络聊天功能。1.环境:JDK 7Maven3Netty 4.1IDEA142.服务端服务端的handlernetty的所有IO处理都是基于事件驱.

2020-11-18 20:57:08 693 2

转载 再过半小时,你就能明白kafka的工作原理了

为什么需要消息队列  周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了……  第二天正常上着班,突然接到快递小哥的电话:  小哥:“你是xx吗?你的女朋友到了,我现在在你楼下,你来拿一下吧!”。  我:“这……我在上班呢,可以晚上送过来吗?“。  小哥:“晚上可不行哦,晚上我也下班了呢!”。  于

2020-11-18 20:50:06 428

转载 深入理解Java中的AQS

目录AQS概述 AQS中的独占模式 非公平锁的加锁流程 非公平锁的释放流程回到顶部AQS概述​ AbstractQueuedSynchronizer抽象队列同步器简称AQS,它是实现同步器的基础组件,juc下面Lock的实现以及一些并发工具类就是通过AQS来实现的,这里我们通过AQS的类图先看一下大概,下面我们总结一下AQS的实现原理。先看看AQS的类图。​(1)AQS是一个通过内置的FIFO双向队列来完成线程的排队工作(内部通过结点head和tail记录队首和队尾元素,..

2020-07-28 09:49:35 604

转载 美团面试官:有没有比读写锁更快的锁?

互联网架构小马哥2020-04-01 22:00:45面试三连面试官:了解锁吗?小明:了解,还经常用过。面试官:说说synchronized 和 lock 的区别吧小明:synchronized是可重入锁,由于lock是一个接口,重入性取决于实现,synchronized不支持中断,而lock可以。面试官:好了,那有没有比这两种锁更快的锁呢?小明:在读多写少的情况下,读写锁比他们的效率更高。面试官:那有没有比读写锁更快的锁呢?小明:。。。。。。。。。。我靠,.

2020-06-11 09:02:36 893 2

转载 使用@Transactional遇见的问题,子方法回滚如何让父方法不回滚

老徐聊技术2019-12-16 14:49:50项目开发中不知道大家碰没碰见过这种情况。在方法1中调用方法2(2个方法都是有事务的)。方法2出现异常要回滚,但是方法1不能回滚,并且要记录方法2抛出的异常到数据库中。看一个例子:例子1例子1结果从代码中可以看出,我都加上了Transactional,但是没有一个事务生效的。2个方法的事务都没起作用。先要知道Transacti...

2020-01-02 09:46:23 9174 4

转载 面试被问怎么排查平时遇到的系统CPU飙高和频繁GC,该怎么回答?

Java之高级架构2019-10-27 16:04:48(关联着看看这篇文章:https://blog.csdn.net/u011277123/article/details/103495338)处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。本文主要针对系统运行...

2019-12-30 18:03:28 1211

转载 Spring事物(@transactional注解)在什么情况下会失效,为什么?

程序员小皮2019-12-13 16:34:27一、@transactional 的使用1、一般在service里加@Transactional注解,不建议在接口上添加2、加了此注解后每个业务方法执行时,都会开启一个事务,不过都是按照相同的管理机制。3、@Transactional注解只能应用到public修饰符上,其它修饰符不起作用,但不报错。4、默认...

2019-12-24 17:24:24 14345 4

转载 SpringBoot---WebMvcConfigurer详解

目录1. 简介2. WebMvcConfigurer接口2.1 addInterceptors:拦截器2.2addViewControllers:页面跳转2.3addResourceHandlers:静态资源2.4configureDefaultServletHandling:默认静态资源处理器2.5configureViewResolvers:视图解析器...

2019-12-12 10:34:37 843

转载 线上服务器CPU占用率高如何排查定位问题?

(关联着看看这篇文章:https://blog.csdn.net/u011277123/article/details/103768939)解决问题的能力以超高比例排名第一,这也是为什么很多面试过程中,面试官都喜欢问如下问题:1、你这个项目遇到的最大挑战是什么?如何解决的?2、如果线上发生了报警你回如何排查呢?3、你有解决过什么线上问题吗?4、能列举几个你知道的排查Li...

2019-12-11 16:43:36 5225 1

转载 Tomcat的性能与最大并发配置

当一个进程有 500 个线程在跑的话,那性能已经是很低很低了。Tomcat 默认配置的最大请求数是 150,也就是说同时支持 150 个并发,当然了,也可以将其改大。当某个应用拥有 250 个以上并发的时候,应考虑应用服务器的集群。 具体能承载多少并发,需要看硬件的配置,CPU 越多性能越高,分配给 JVM 的内存越多性能也就越高,但也会加重 GC 的负担。 操作系...

2019-12-11 16:10:16 2216

转载 从头到尾说一次 Java 垃圾回收,写得非常好

Java的小本家2019-09-13 08:46:00什么是垃圾回收垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的空间,防止内存泄露。有效的使用可以使用的内存,对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收。Java 语言出来之前,大家都在拼命的写 C 或者 C++ 的程序,而此时存在一个很大的矛盾,C++ 等语言创建对象要...

2019-10-09 09:39:45 756

转载 Maven打包的三种方式

Maven可以使用mvn package指令对项目进行打包,如果使用Java-jar xxx.jar执行运行jar文件,会出现"no main manifest attribute, in xxx.jar"(没有设置Main-Class)、ClassNotFoundException(找不到依赖包)等错误。要想jar包能直接通过java -jar xxx.jar运行,需要满足:1、在ja...

2019-09-24 11:36:06 1432

转载 Git恢复之前版本的两种方法reset、revert(图文详解)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/yxlshk/article/details/799445352019/7/27 修改更新一、问题描述在利用github实现多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,...

2019-09-10 09:35:43 1229

原创 jdk1.8的日常使用

List<Long> listIds = Arrays.asList(str.split(",")).stream().map(s -> Long.parseLong(s.trim())).collect(Collectors.toList());List<Long> newSkuIdList = skuIdList.stream().distinct().s...

2019-09-06 11:10:43 742

转载 Spring切面中的正则表达式

吉林乌拉2019-08-30 09:03:22在上一篇中我们重写StaticMethodMatcherPointcutAdvisor类的matches方法,通过方法名定义了切点,但在这种方式创建的切点有很大的弊端,不方便。因为如果目标类中有多个方法时,就不太适用了。spring为了更方便我们使用切面,于是提供了支持正则表达式的实现类RegexpMethodPointcutAdvisor类,因...

2019-09-02 12:01:04 1058

转载 减少该死的 if else 嵌套

Java的小本家2019-09-02 10:38:10不知大家有没遇到过像“横放着的金字塔”一样的if else嵌套:我并没夸大其词,我是真的遇到过了!嵌套6、7层,一个函数几百行,简!直!看!死!人!if else作为每种编程语言都不可或缺的条件语句,我们在编程时会大量的用到。但if else一般不建议嵌套超过三层,如果一段代码存在过多的if else嵌套,代...

2019-09-02 11:52:30 947

转载 除了负载均衡,Nginx 还可以做很多

程序猿久一2019-09-01 15:40:37Nginx应该是现在最火的web和反向代理服务器,没有之一。她是一款诞生于俄罗斯的高性能web服务器,尤其在高并发情况下,相较Apache,有优异的表现。那除了负载均衡,她还有什么其他的用途呢,下面我们来看下。一、静态代理Nginx擅长处理静态文件,是非常好的图片、文件服务器。把所有的静态资源的放到nginx上,可以使应用动静分离,...

2019-09-02 11:42:52 1214

转载 高性能负载均衡:nginx搭建tomcat集群

楠哥教你学Java2019-09-01 11:07:08什么是tomcat集群?利用nginx对请求进行分流,将请求分配给不同的tomcat去处理,减少每个tomcat的负载量,提高服务器的响应速度。目标实现高性能负载均衡的tomcat集群。工具nginx-1.13.10apache-tomcat-7.0.81实现步骤1、下载nginx,目...

2019-09-02 11:28:46 548

转载 微服务部署:蓝绿部署、滚动部署、灰度发布、金丝雀发布

在项目迭代的过程中,不可避免需要”上线“。上线对应着部署,或者重新部署;部署对应着修改;修改则意味着风险。目前有很多用于部署的技术,有的简单,有的复杂;有的得停机,有的不需要停机即可完成部署。本文的目的就是将目前常用的布署方案做一个总结。一、蓝绿布署Blue/Green Deployment(蓝绿部署)1、定义蓝绿部署是不停老版本,部署新版本然后进行测试,确认OK...

2019-08-29 09:40:26 836

转载 API网关在微服务架构中的应用,这一篇就够了

【原创】老顾聊技术2019-08-28 18:24:41欢迎关注头条号:老顾聊技术精品原创技术分享,知识的组装工目录前言 什么是API网关 网关优点 接口优化 中心化 负载均衡 服务熔断 灰度发布 现有网关框架 总结前言现在的互联网产品技术架构,如果没有上微服务架构,都感觉被同行鄙视,太low了。在微服务架构中,不同的微服务有不同的请求地址,各个微服务之...

2019-08-29 09:39:34 1841

转载 IDEA:Could not read from remote repository.的解决办法

https://blog.csdn.net/qq_1411/article/details/82876526在idea上可以commit,Show History和Revert,但是就是不能push和pull,从网上找了相关文档,终于解决问题在setting-->Version Control-->Git-->SSH executable设置为Native即可,如图:...

2019-07-11 13:16:54 975

转载 RabbitMQ:消息一致性之生产者确认

【原创】Java低级攻城猿2019-06-27 15:11:42对于消息中间件的使用,确保业务流程正确的进行下去的前提,就是要保证消息的一致性,也就是确保消息不会丢失。引入消息中间件的目的,无非就是异步、解耦和削峰,到达这样的目的,系统之间传递的消息就负有不可推卸的责任,假如消息跑丢了,轻则影响数据的完整性,重则影响整个系统的使用,所以保证消息的一致性是使用消息中间件至关重要的前...

2019-06-28 14:26:38 2242 1

转载 列举MySQL的四种事务隔离级别

MySQL的四种事务隔离级别本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB一、事务的基本要素(ACID)1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不可能停滞在中间环节。事务执行过程中出错,会回滚到事务开始前的状态,所有的操作就像没有发生一样。也就是说事务是一个不可分割的整体,就像化学中学过的原子,是物质构成...

2019-06-22 09:19:16 998

转载 数据库的七种传播方式

其实数据库的七种传播行为在网上查询了一下,和Spring中使用到的7种事务传播行为是没什么差别的,因为我写的博文基本和JAVA有相关,所以就结合Spring中事务传播和例子来讲一下咯。事务传播行为如下:Require:支持当前事务,如果没有事务,就建一个新的,这是最常见的;Requires_New:新建事务,如果当前存在事务,把当前事务挂起;Supports:支持当前事务,如果当前...

2019-06-22 08:50:22 1196

转载 「快学springboot」SpringBoot多环境配置文件

【原创】Happyjava2019-06-18 07:01:00往期文章「快学Docker」Docker简介、安装和Hello World实现「快学springboot」使用springboot实现发送邮件功能为什么阿里Java规约手册要求谨慎使用Arrays.asList方法面试官:说说Java中的transient关键字「快学springboot」在springbo...

2019-06-18 15:35:50 3270

转载 zuul-redislimiter-spring-boot基于Zuul网关Filter的分布式限流

儒雅程序员2019-06-18 06:22:00zuul-redislimiter-spring-boot基于Zuul的限流器快速开始克隆, 编译,安装git clone https://github.com/tangaiyun/zuul-redislimiter-spring-boot.gitcd zuulredislimiter/zuul-redislimi...

2019-06-18 14:51:31 1303

转载 jvm 内存分配与回收策略

达升笑讲故事2019-06-17 09:00:06内存分配策略1、对象优先分配在新生代Eden区多数情况下,对象分配在新生代的Eden,若Eden区域内存不够,则引发一次Minor GC2、大对象直接进入老年代大对象直接分配在老年代,避免新生代里出现从Eden到Survivor频繁的内存复制可用 -XX:PretenureSizeThreshold设置,大于此值的对象直接...

2019-06-18 14:11:55 870

转载 SpringCloud使用Sentinel 代替 Hystrix

本文基于springboot-2.0.6RELEASE+cloud-F.SR2Feign环境下:只需两步1.在原使用hystrix的模块中添加如下依赖:<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-alib...

2019-06-18 11:06:02 16067 2

转载 Spring Cloud Alibba教程:Sentinel的使用

什么是SentinelSentinel,中文翻译为哨兵,是为微服务提供流量控制、熔断降级的功能,它和Hystrix提供的功能一样,可以有效的解决微服务调用产生的“雪崩”效应,为微服务系统提供了稳定性的解决方案。随着Hytrxi进入了维护期,不再提供新功能,Sentinel是一个不错的替代方案。通常情况,Hystrix采用线程池对服务的调用进行隔离,Sentinel才用了用户线程对接口进行隔...

2019-06-18 11:05:56 2146

转载 spring AOP 实现 sql注入检测

达升笑讲故事2019-06-07 09:24:47利用spring AOP 实现 sql注入检测什么是sql注入?所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个...

2019-06-17 17:43:58 1631

转载 Redis队列(一):基于列表的消息队列的使用Redis队列(一):基于列表的消息队列的使用

【原创】服务端开发2019-06-08 18:13:44blpop / lpop一、概述在使用层面,Redis提供了用于存放字符串数据的列表这种数据类型,在数据存储容量方面,列表最多可以存放2的32次方减一个字符串元素,即大概40亿左右,不过一般不要存放这么多,否则由于数据是存放在内存中的,可能会撑爆内存。 在内部数据结构实现层面,列表主要是基于链表实现的,字符串数据按照插入顺...

2019-06-10 14:37:52 1082

转载 springboot + redis + 注解 + 拦截器 实现接口幂等性校验

Java高级互联网架构2019-06-09 19:53:33一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次。比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次等等二、常见解决方...

2019-06-10 11:25:03 1533

转载 注意这几点,轻轻松松配置 Nginx + Tomcat 的集群和负载均衡

顿悟源码2019-05-28 08:36:00Tomcat 集群是当单台服务器达到性能瓶颈,通过横向扩展的方式提高整体系统性能的有效手段。Nginx 是一个高性能的 HTTP 和反向代理 web 服务器,可以通过简单的配置实现 Tomcat 集群的负载均衡。本文使用的 Tomcat 是 8.5.35 版本,Nginx 是 1.14.2 版本。接下来看下配置的过程以及可能会遇到的问题,首发...

2019-05-29 10:24:01 639

转载 拼多多后台开发面试真题:如何用Redis统计独立用户访问量

【原创】沙茶敏碎碎念2019-05-28 07:01:00众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上6天班是常态,每天工作时间基本都是超过12个小时,也是相当辛苦的。废话不多说,今天我们来聊一聊拼多多的一道后台面试真题,是一道简单的架构类的题目:拼多多有数亿的用户,那么对于...

2019-05-28 17:55:00 1761

转载 降龙十八掌之 springboot整合shiro(含MD5加密)

java学习爱好者2019-05-27 16:21:00开发环境:1、mysql - 5.7.212、navicat(mysql客户端管理工具)3、idea 20174、jdk95、tomcat 8.56、springboot7、mybatis 38、shiro9、maven项目开始:一、数据库设计:注:数据库三张表和spring整合s...

2019-05-28 15:35:46 985

转载 【Redis】Java面试-Redis高性能的key-value数据库整理(很全面)

半路出家程序猿2019-05-22 05:31:00redis单点吞吐量单点TPS达到8万/秒,QPS达到10万/秒。redis的5中存储类型string、list、set、map(hash)、stored-setredis的string类型能表达3中类型:字符串、整数和浮点数。根据场景相互间自动转型,并且根据需要选取底层的承载方式 value内部以int、sds作为结...

2019-05-24 16:23:50 1335 1

转载 面试官问我注解的使用有没有踩过坑

猿天地2019-05-23 10:51:53问题背景很久很久前,在我还是青铜的时候(现在依旧是青铜段位)去面试,面试官问我怎么获取类,方法上的注解。当时的我也算用过注解,顺口就回答了,用isAnnotationPresent判断是否加了注解,getAnnotation获取注解对象,然后获取注解中的值。大致的代码是这样子的:正在我沾沾自喜的时候,面试官又乘胜追击了,那...

2019-05-23 14:58:55 670

转载 Java的两种动态代理,你真的懂么?

BigDataKer2019-05-23 08:30:00Spring主要有两大思想,一个是IOC,另一个就是AOP。对于Spring的核心AOP来说,AOP的原理就是java的动态代理机制来实现,所以本篇主要对java动态代理做一个简单介绍.1、代理(Dynamic Proxy)代理分为静态代理和动态代理,静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但...

2019-05-23 14:29:53 1033

转载 RabbitMQ在分布式系统中的应用

Python部落2019-05-19 08:10:00(此处已添加圈子卡片,请到今日头条客户端查看)在本文中,我们首先要来探讨一下使用分布式系统的好处,以及如何借助RabbitMQ来迁移至分布式系统。然后我们也会学习到一些RabbitMQ的基本知识,最后会结合理论知识,学习一下如何用Python编程语言跟它进行交互。分布式系统我们先假设一下,设想我们正在做一个电商网站。有用户下订...

2019-05-21 11:25:23 2310

转载 聊聊Java里常用的并发集合

JAVA柯尼塞克 2019-05-20 20:31:27前言在我们的程序开发过程中,如果涉及到多线程环境,那么对于集合框架的使用就必须更加谨慎了,因为大部分的集合类在不施加额外控制的情况下直接在并发环境中直接使用可能会出现数据不一致的问题,所以为了解决这个潜在的问题,我们要么在自己的业务逻辑中加上一些额外的控制,例如锁,或者我们直接使用Java提供的可在并发环境中使用的集合类,这是一个简...

2019-05-21 11:03:23 663

jdk-8u231-windows-x64.7z

在java里面,我们通常都是认为接口里面是只能有抽象方法,不能有任何方法的实现的,那么在jdk1.8里面打破了这个规定,引入了新的关键字default,通过使用default修饰方法

2020-04-08

kafkatool_64bit (1).zip

消息队列 Kafka 版是阿里云基于 Apache Kafka 构建的高吞吐量、高可扩展性的分布式消息队列服务,广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等,是大数据生态中不可或缺的产品之一,阿里云提供全托管服务,用户无需部署运维,更专业、更可靠、更安全。

2020-03-21

存储过程调试工具

对于某些存储过程很多且复杂的SQL的应用,在短时间内要使得所有MySQL存储过程和函数正常运行,那么如果能找到一个比较好的调试工具,就可以事半功倍, 这里介绍的是dbForge Studio for MySQL。

2018-06-14

redis+session共享

redis+session共享,redis+session共享,redis+session共享,redis+session共享redis+session共享,redis+session共享,redis+session共享,redis+session共享,redis+session共享

2018-02-24

graphviz-2.38与PlantUML结合使用

PlantUML一定要用到Graphviz。PlantUML使用Graphviz来生成相关图形(只有序列图可以不依赖它),其它图形都需要,因此得安装它,否则生成图形失败,且报错。

2017-12-28

webservice

maven+spring+cxf之webservice服务端与客户端,可直接在其基础上二次开发使用。

2017-11-03

solr分词器

classpath目录:/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes [root@bogon IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes 注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。

2017-09-25

mysql导数据到oracle

mysql导数据到oracle

2017-08-24

javax.servlet的jar包

javax.servlet的jar包

2017-08-21

p2p加速器下载

p2p加速器下载

2017-08-18

SecureCRT8.0破解版及注册机

SecureCRT8.0破解版及注册机

2017-06-01

mantisbt-1.2.19.tar.gz

mantisbt-1.2.19.tar.gz

2017-05-19

sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar

sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar

2017-05-18

Java实现与FTP服务器的数据传输

Java实现与FTP服务器的数据传输

2017-05-17

redis-2.6.14.tar.gz

redis-2.6.14.tar.gz

2017-03-21

java-MQ学习

java-MQ

2017-03-16

上传zip文件

上传zip文件

2017-02-08

java解析excel

java解析excel

2017-01-20

mybatis分页

mybatis分页

2016-12-27

鸿洋——自定义相机

http://blog.csdn.net/u011277123/article/details/52954516

2016-10-28

图片连拍,无须返回

自定义相机实现连拍!

2016-09-13

dropdownmenu

一个实用的多条件筛选菜单,在很多App上都能看到这个效果,如美团,某视频网站电影票等

2016-08-23

快速集成android实现listview的字母A-Z排序,界面侧边字母索引

Android手机字母A-Z排序侧边索引是非常常见的功能,在此提供快速集成框架.教你用Android studio工具一分钟搞定这个效果.

2016-08-10

memcache与redis的比较

简单的比较了两者的异同,方便读者的认识!

2015-05-04

空空如也

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

TA关注的人

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