程序员大目

其他

Spring Boot 如何统计、监控 SQL 运行情况?

,也是阿里巴巴的开源项目。Druid是阿里巴巴开发的号称为监控而生的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss
2022年3月17日
其他

23 个开箱即用的实用 Shell 脚本分享

点击下方“IT牧场”,选择“设为星标”转载:博智互联shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的有效方式。区区几行代码,就可以让计算机接近按照你的意图行事。为大家整理了23个实例,通过23个实战经典脚本实例,展示了shell脚本编程的实用技术和常见工具用法。大家只需根据自己的需求,将文中这些常见任务和可移植自动化脚本推广应用到其他类似问题上,能解决那些三天两头碰上的麻烦事。检测两台服务器指定目录下的文件一致性#!/bin/bash######################################检测两台服务器指定目录下的文件一致性######################################通过对比两台服务器上文件的md5值,达到检测一致性的目的dir=/data/webb_ip=192.168.88.10#将指定目录下的文件全部遍历出来并作为md5sum命令的参数,进而得到所有文件的md5值,并写入到指定文件中find
2021年4月14日
其他

血的教训 | 一次订单号重复的事故差点被开除

ConcurrentHashMap•Redis性能监控指标汇总•最全的DevOps工具集合,再也不怕选型了!•微服务架构下,解决数据库跨库查询的一些思路•聊聊大厂面试官必问的
2020年9月10日
其他

LinkedBlockingQueue vs ConcurrentLinkedQueue

阻塞队列表示如果访问线程已满(当队列有界时)或变为空,则队列将阻塞该线程。如果队列已满,则添加新元素将阻塞访问线程,除非新元素有可用空间。类似地,如果队列为空,则访问元素会阻塞调用线程:
2020年7月1日
其他

解读Java 8 中为并发而生的 ConcurrentHashMap

方法的每一步实现都已经给出注释,该方法的核心思想就是,只允许一个线程对表进行初始化,如果不巧有其他线程进来了,那么会让其他线程交出
2020年6月30日
其他

Redis性能监控指标汇总

backlog_sizerepl_backlog_size:1048576通过查看sync_partial_err变量的次数来决定是否需要扩大积压缓冲区,它表示主从半同步复制失败的次数
2020年6月29日
其他

最全的DevOps工具集合,再也不怕选型了!

是一个分布式版本控制系统,用来在软件开发过程中跟踪源代码的更改。它是专为协调不同程序员的工作而设计的,也可用于跟踪各种文件集中的更改。它的优势包括速度、数据完整性以及对分布式非线性工作流的支持。
2020年6月28日
其他

微服务架构下,解决数据库跨库查询的一些思路

在服务做微服务改造后,原先单库join查询已经不能满足要求,每个拆分的微服务对应一个数据库实例,而且部署在不同的服务器上,那么解决“跨库查询”就势在必行了。
2020年6月27日
其他

聊聊大厂面试官必问的 MySQL 锁机制

根据索引的有序性,而普通索引是可以出现重复值,那么当我们第一个sesson查询的时候只出现一条数据num=3,为了解决第二次查询的时候出现幻读,也就是出现两条或者更多num=3这样查询条件的数据。
2020年6月26日
其他

Java 线上故障排查完整套路

来看看堆外内存有没有被回收。如果被回收了,那么大概率是堆外内存本身分配的太小了,通过-XX:MaxDirectMemorySize进行调整。如果没有什么变化,那就要使用
2020年5月30日
其他

SQL 进阶技巧(下)

这几个参数一定要配好,再根据每条慢查询对症下药,像我司每天都会把这些慢查询提取出来通过邮件给形式发送给各个业务团队,以帮忙定位解决
2020年5月28日
其他

SQL 进阶技巧(上)

中,子查询的结果会产生一张新表,不过如果不加限制大量使用中间表的话,会带来两个问题,一是展示数据需要消耗内存资源,二是原始表中的索引不容易用到,所以尽量减少中间表也可以提升性能。
2020年5月27日
其他

干掉Navicat:这个IDEA的兄弟真香!

Server、Sqllite及Sybase等网上主流的关系数据库产品,除了能执行sql、创建表、创建索引以及导出数据等常用的功能之外,还能在关键字上有高亮的提示,而且对字段的提示也是非常智能的!
2020年5月26日
自由知乎 自由微博
其他

微服务项目搭建,到底要不要聚合工程?

语言开发,那也没有必要聚合,因为不同的微服务实际上都是一个个独立运行的项目,由不同的团队开发维护,微服务的一大优势就是各个团队对独立开发,互不影响,如果搞个聚合工程,又把各个团队绑定在一起了。
2020年5月25日
其他

一文读懂阿里大中台、小前台战略

通过抽象各条业务线,把共用的服务抽象出来共享,不限于用户、订单等基础模块服务,还包括具体的业务的抽象,比如教育培训相关的课程、讲师、学员等服务,通过抽象并以微服务的形式实现,避免重复投入资源造轮子。
2020年5月24日
其他

彻底解决 GitHub 拉取代码网速慢的问题

https://gitee.com/objcoding/seata.github.io.git这个速度快到我想哭,你能想象GitHub
2020年4月8日
其他

基于 SpringBoot2 和 Netty 实现一个简易的RPC通信框架

Annotation.class.getName().equals(beanDefinition.getMetadata().getInterfaceNames()[0]))
2020年4月7日
其他

一本彻底搞懂MySQL索引优化EXPLAIN百科全书

INNODB存储引擎下,一般是字符串类型,很长,全部作为索引大大增加存储空间,索引也需要维护,对于长字符串,又想作为索引列,可取的办法就是取前一部分(局部),代表一整列作为索引串。
2020年4月6日
其他

盘点 10 个代码重构的小技巧

有一个专业名词叫卫语句,可以治疗这种恐怖的嵌套条件语句。它的核心思想是,将不满足某些条件的情况放在方法前面,并及时跳出方法,以免对后面的判断造成影响。经过这项手术的代码看起来会非常的清晰,下面
2020年4月4日
其他

性能测试如何定位瓶颈?偶发超时?看高手如何快速排查问题

插件,帮助开发者更高效地开发、测试、诊断并部署应用。通过插件,可以将本地应用一键部署到任意服务器,甚至云端(ECS、EDAS、ACK、ACR
2020年4月3日
其他

震精!Spring Boot内存泄露,排查竟这么难!

从内容上来看,像是解压后的JAR包信息。读取JAR包信息应该是在项目启动的时候,那么在项目启动之后使用strace作用就不是很大了。所以应该在项目启动的时候使用strace,而不是启动完成之后。
2020年4月1日
其他

瓜子二手车在 Dubbo 版本升级、多机房方案方面的思考和实践

dubbo在未配置配置中心时,默认使用注册中心作为配置中心。通过注册中心的配置信息初始化配置中心配置时,由于遗漏了用户名密码,导致此问题。
2020年2月18日
其他

Java12可用新特性一览

.transform(StringUtils::toCamelCase); transformedNames.add(transformedName);}有朋友可能会说,这个和单纯的对字符串
2020年2月16日
其他

聊聊 Java 的几把 JVM 级锁

若是,则设置第一个读线程firstReader为空,否则,将第一个读线程占有的资源数firstReaderHoldCount减1;
2020年2月15日
其他

如何设计一个安全的对外接口?

大部分网站基本都需要用户名和密码才能登录,并不是谁来能使用我的网站,这其实也是一种安全机制;对应的对外提供的接口其实也需要这么一种机制,并不是谁都可以调用,需要使用接口的用户需要在后台开通
2020年2月12日
其他

垃圾回收-实战篇

异常这种情况主要是因为单个线程请求栈深度大于虚拟机所允许的最大深度(如常用的递归调用层级过深等),再比如单个线程定义了大量的本地变量,导致方法帧中本地变量表长度过大等也会导致
2020年2月11日
其他

SQL 性能优化梳理

切分查询。将一个对服务器压力较大的任务,分解到一个较长的时间中,并分多次执行。如要删除一万条数据,可以分10次执行,每次执行完成后暂停一段时间,再继续执行。过程中可以释放服务器资源给其他任务。
2020年2月9日
其他

Git 如何优雅地回退代码

并发异步编程,原来十个接口的活现在只需要一个接口就搞定!•初探性能优化--2个月到4小时的性能提升!•关于数据库分库分表的一切都在这里了。想知道更多?长按/扫码关注我吧↓↓↓>>>技术讨论群
2020年2月1日
其他

如何提高服务器并发处理能力?

还有一点要提及的是硬件环境,服务器的硬件配置对应用程序的性能提升往往是最直接,也是最简单的方式,这就是所谓的scale
2020年1月3日
其他

太神奇的 SQL 查询经历,group by 慢查询优化!

的自动配置,是如何实现的?•使用Consul实现服务发现:instance-id自定义(3种方式)•踩坑了!使用
2020年1月2日
其他

SpringBoot+RabbitMQ ,保证消息100%投递成功并被消费(附源码)

BindingBuilder.bind(mailQueue()).to(mailExchange()).with(MAIL_ROUTING_KEY_NAME);
2020年1月1日
其他

Java 并发异步编程,原来十个接口的活现在只需要一个接口就搞定!

Furture.get()获取执行结果的值,取决于执行的状态,如果任务完成,会立即返回结果,否则一直阻塞直到任务进入完成状态,然后返回结果或者抛出异常。
2019年12月31日
其他

初探性能优化--2个月到4小时的性能提升!

1、接收上一环的数据:属于Interactive接口的receive方法的实现,基于之前的设计,即是对象中有一个ConcurrentLinkedQueue类型的属性,用来接收上一环传来的数据。
2019年12月30日
其他

关于数据库分库分表的一切都在这里了。

pt-online-schema-change,使用过程中会创建触发器和影子表,也需要很长的时间。在此操作过程中,都算为风险时间。将数据表拆分,总量减少,有助于降低这个风险。
2019年12月29日
其他

深入浅出 CAS

大哥就会把锁拿出来其他的线程来抢了(非公平)。锁的这种概念基于一种悲观机制,它总是认为数据会被修改,所以你在操作一部分代码块之前先加一把锁,操作完毕后再释放,这样就安全了。其实在
2019年12月22日
其他

Spring Boot 的自动配置,是如何实现的?

•安装单机版Consul•微服务治理实践:探寻业务的单点异常自愈能力•支付宝的架构到底有多牛逼!还没看完我就跪了!•配置热更新,不想重启,如何更新Bean的状态?•如何模拟
2019年12月21日
其他

踩坑了!使用 @Autowired 注入成功,GetBean 方法却获取不到?!

•安装单机版Consul•微服务治理实践:探寻业务的单点异常自愈能力•支付宝的架构到底有多牛逼!还没看完我就跪了!•配置热更新,不想重启,如何更新Bean的状态?•如何模拟
2019年12月20日
其他

使用Consul实现服务发现:instance-id自定义(3种方式)

${spring.application.name}-${server.port}-${random.long}目前市面上的一些文章也是这么玩的。但这样做,在一些场景下还是有一点小问题的。
2019年12月20日
其他

“国货之光” 完美日记的微服务实践和优化思路

•安装单机版Consul•微服务治理实践:探寻业务的单点异常自愈能力•支付宝的架构到底有多牛逼!还没看完我就跪了!•配置热更新,不想重启,如何更新Bean的状态?•如何模拟
2019年12月19日
其他

如何用Redis实现“附近的人”这个功能?

在Redis源码geo.c的文件注释中,只说明了该文件为GEOADD、GEORADIUS和GEORADIUSBYMEMBER的实现文件(其实在也实现了另三个命令)。从侧面看出其他三个命令为辅助命令。
2019年12月18日
其他

安装单机版Consul

•下载最新稳定版:https://www.consul.io/downloads.html[1]•下载指定版本:https://releases.hashicorp.com/consul/[2]
2019年12月14日
其他

微服务治理实践:探寻业务的单点异常自愈能力

•配置热更新,不想重启,如何更新Bean的状态?•一篇文章搞定:扫码登录实现原理•超详细:如何设计出健壮的秒杀系统?•如何模拟
2019年12月13日
其他

支付宝的架构到底有多牛逼!还没看完我就跪了!

前文也提到过,如果一个分布式系统是部署在一个局域网内的(一个物理机房内),那么个人认为分区的概率极低,即便有复杂的拓扑,也很少会有在同一个机房里出现网络分区的情况。
2019年12月11日
其他

配置热更新,不想重启,如何更新Bean的状态?

参数时,可以通过创建一个新的DataSource对象来替换dataSourceReference的值,而对外暴露的是DynamicDataSource对象,这对使用方来说是无感知的。
2019年12月10日
其他

一篇文章搞定:扫码登录实现原理

同时,将这个key值和本公司的验证字符串合在一起,通过二维码生成接口,生成一个二维码的图片(二维码生成,网上有很多现成的接口和源码,这里不再介绍。)然后,将二维码图片和uuid一起返回给用户浏览器。
2019年12月9日
其他

超详细:如何设计出健壮的秒杀系统?

分析秒杀的业务场景,最重要的有一点就是超卖问题,假如备货只有100个,但是最终超卖了200,一般来讲秒杀系统的价格都比较低,如果超卖将严重影响公司的财产利益,因此首当其冲的就是解决商品的超卖问题。
2019年12月8日
其他

如何模拟 5 万的并发用户

为了完成诸如“添加到购物车”,“登录”还有其它这样的请求,你也许要使用正则表达式,JSON路径提取器,XPath提取器,来提取诸如Token字符串,表单构建ID还有其它要素
2019年12月7日
其他

9 个可以快速掌握的 Java 性能调优技巧

在创建了测试套件并使用分析器分析你的应用程序之后,你可以列出一系列需要解决以提高性能的问题列表。这很好,但这并没有回答你需要从哪里开始的问题。你可以专注于速成方案,或从最重要的问题开始。
2019年12月6日
其他

用了这么久的数据库连接池,你知道原理吗?

理解了连接池的原理就可以了,没有必要什么都从头写一遍,那样会花费很多时间,并且性能及稳定性也不一定满足要求。事实上,已经存在很多流行的性能优良的第三方数据库连接池jar包供我们使用。如:
2019年12月5日
其他

不同场景下,如何选择数据库?

里会存一些过程性的数据,即只需要读写最近一段时间存入的数据,过段时间这些数据就不需要了,需要进行定时清理。分级存储就是在
2019年11月19日