Java : 如何更优雅的设计异常
来源:lrwinxhttps://lrwinx.github.io/注:本文较长,但是很有参考价值,举例也很恰当,认真读完一定会有所收获。导语异常处理是程序开发中必不可少操作之一,但如何正确优雅的对异常进行处理确是一门学问,笔者根据自己的开发经验来谈一谈我是如何对异常进行处理的。由于本文只作一些经验
大白话带你认识Kafka
作者:说出你的愿望吧丷链接:https://juejin.im/post/5dcf6b6e51882510a23314f3前言应大部分的小伙伴的要求,在Yarn之前先来一个kafka的小插曲,轻松愉快。一、Kafka基础消息系统的作用应该大部份小伙伴都清楚,用机油装箱举个例子所以消息系统就是如上图我
84 岁 iOS 女程序员,不得不服
来源:凤凰网科技作者:箫雨若宫雅子(MasakoWakamiya)在她58岁时拥有了人生中的第一台电脑,那时的她马上要从银行退休。她并不知道,自己即将开启的一段旅程,会让她在81岁时成为世界上已知的年纪最大的iOS应用开发者。2019年,若宫雅子已经84岁了,她把自己称之为IT布道者,鼓励其他老年人
Dubbo常见的18个面试题
作者:DeanWang来源:https://deanwang1943.github.io/bugs/2018/10/05/面试/饿了么/dubbo%20面试题/dubbo是什么dubbo是一个分布式框架,远程服务调用的分布式框架,其核心部分包含:集群容错:提供基于接口方法的透明远程过程调用,包括多协
分布式事务不理解?一次给你讲清楚
作者:victorzheng来源:juejin.im/post/5baa54e1f265da0ac2566fb2此次分享的缘由支付重构考虑支付重构的时候,自然想到原本属于一个本地事务中的处理,现在要跨应用了要怎么处理。拿充值订单举个栗子吧,假设:原本订单模块和账户模块是放在一起的,现在需要做服务拆分
Java集合:ConcurrentHashMap原理分析
作者:^_TONY_^来源:https://www.cnblogs.com/ITtangtang/p/3948786.html一、背景:线程不安全的HashMap因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。效率
Java中的模板设计模式,太实用了
作者:Mazin来源:my.oschina.net/u/3441184/blog/916670顾名思义,模板设计模式就是将许多公用的常用的代码封装成一个模板,我们只需要实现不同的业务需求的代码,然后和模板组合在一起,那么就得到完整的逻辑。在我们的日常开发中,常用的模板模式有两种实现方式:继承和接口回
TCP常见知识点整理
作者:小北觅来源:https://www.jianshu.com/p/8c5ccbe51f5b难免有遗漏,希望大佬们在评论中指出还有那些需要添加的点。感谢!感谢!感谢!一、TCP首部结构详解TCP数据封装在一个IP数据报中:TCP数据在IP数据包中的封装(图片来自《TCP/IP详解卷1》)下图是TC
5个方案告诉你:高并发环境下,先操作数据库还是先操作缓存?
来源公众号捡田螺的小男孩,作者捡田螺的小男孩一、前言在分布式系统中,缓存和数据库同时存在时,如果有写操作的时候,先操作数据库还是先操作缓存呢?先思考一下,可能会存在哪些问题,再往下看。下面我分几种方案阐述。二、缓存维护方案一假设有一写(线程A)一读(线程B)操作,先操作缓存,再操作数据库,如下流程图
一个注解,去掉项目中的一坨set代码,又快又爽
这个小工具,想必大家很多人都使用过,就是Lombok,很多人用她来自动生成get和set代码,却很少用它来生成建造者模式,简单介绍一下安装idea插件pom文件中加入依赖org.projectlomboklombok1.16.20provided使用很多项目中有很多set代码,如下studet.se
redis五种基本数据类型的应用场景是啥?
string缓存简单key-value存储分布式锁setnxkeyvalue,当key不存在时,将key的值设为value,返回1若给定的key已经存在,则setnx不做任何动作,返回0。当setnx返回1时,表示获取锁,做完操作以后delkey,表示释放锁,如果setnx返回0表示获取锁失败,整体
说一下你对redis主从,哨兵,以及redis cluster的理解
介绍上个礼拜,我搭建了一个mongo分片集群,发现分布式系统保证高可用和高性能的套路都差不多。高性能就是做分片(可以类比为分库分表,将数据分到不同服务器上),在Kafka中叫分区,在mongodb中叫shard,在HDFS上叫DataNode。而保证高可用的方式就是做交叉备份。然后我很好奇Redis
Mysql索引简明教程
在绝大多数情况下,Mysql索引都是基于B+树的,而索引可以提高数据查询的效率。但是Mysql是如何利用B+树进行查询的呢?索引的作用只是提高查询效率吗?Mysql中的B+Tree索引假设有一张教师表,里面有教师编号、名字、学科、薪资四个字段。当你执行下面这条创建索引的sql语句时:createin
你是怎么用explain分析sql执行性能的?
介绍在工作中,我们用于捕捉性能问题最常用的就是打开慢查询,定位执行效率差的SQL,那么当我们定位到一个SQL以后还不算完事,我们还需要知道该SQL的执行计划,比如是全表扫描,还是索引扫描,这些都需要通过EXPLAIN去完成。EXPLAIN命令是查看优化器如何决定执行查询的主要方法。可以帮助我们深入了
4种MySQL分页查询优化的方法,你知道几个?
前言当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明。表名:order_h
MySQL连接数太多应该怎么解决?
Mysql数据库的默认最大连接数是:100,对于多人开发的单体项目来说,虽然我们同时在用的连接不会超过10个,理论上100绰绰有余,但是除了我们正在使用的连接以外,还有很大一部分Sleep的连接,这个才是真正的罪魁祸首。分析到了问题的根源,我们就需要对症下药,依次解决:修改Mysql最大连接数量首先
前端如何做测试驱动开发-vue版
最近和测试杠上了,写了的文章都和测试相关。当然,这里的「测试」并不是具体的某个角色,而是验证程序正确性的工作。曾经,前端如何TDD困扰了我很久,随着时间的推移,前端框架开始成熟,我对前端测试有了更深刻的理解,把我做前端TDD的方法分享给大家。理论篇测试驱动开发,英文全称Test-DrivenDeve
HTML5标签也可以DDoS攻击的新方法揭秘
来源|https://www.jianshu.com/p/c0785651be6e近期,来自ImpervaVitalySimonovich和DimaBekerman的安全研究专家发现了一种基于HTML5超链接审计功能(Ping标签)的大规模DDoS攻击。新型DDoS攻击技术在此次攻击活动中,DDoS
javascript防抖和节流
在处理高频事件的时候,类似于window的resize或者scorll,或者input输入校验等操作时。如果直接执行事件处理器,会增大浏览器的负担,轻微的会产生抖动,严重的直接卡死,用户体验非常不好,面对这种情况,我们一般可以采用防抖和节流的方式减少调用频率。同时也不会影响实际效果。一、防抖防抖的作
.NetCore技术研究-.NET Core迁移前的准备工作
前段时间迁移.NETCore做了大量的试水和评估,今天整理一下分享给大家。大致有以下几个部分:1..NETCore的由来2.为什么要迁移.NETCore3..NETCore3.X主要特性4..NETStandard和.NETCore5..NETCoreRoadmap&版本选择接下来,我们详细