生产事故!线上四台机器同一时间全部 OOM
作者:码海来自:码海
答应我,别再if/else走天下了可以吗
作者:hansonwong99来自:CodeSheep
一文搞懂Java中静态代理、动态代理以及CGLIB代理
一、开篇Java的代理就是客户类不再直接和委托类打交道,而是通过一个中间层来访问,这个中间层就是代理。为啥要这样呢,是因为使用代理有2个优势:可以隐藏委托类的实现可以实现客户与委托类之间的解耦,在不修改委托类代码的情况下能够做一些额外的处理我们举个很常见的例子:工厂会生产很多的玩具,但是我们买玩具都
采用Istio实现灰度发布
灰度发布(又名金丝雀发布)介绍当应用上线以后,运维面临的一大挑战是如何能够在不影响已上线业务的情况下进行升级。做过产品的同学都清楚,不管在发布前做过多么完备的自动化和人工测试,在发布后都会出现或多或少的故障。根据墨菲定律,可能会出错的版本发布一定会出错。“ANYTHINGTHANCANGOWRONG
YApi:打通前后端及QA的、可视化的接口管理平台
平台介绍YApi是高效、易用、功能强大的api管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护API,YApi还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。特性基于Json5和Mockj
JWT不是万能的,入坑需谨慎
越来越多的开发者开始学习JWT技术并在实际项目中运用JWT来保护应用安全。一时间,JWT技术风光无限,很多公司的应用程序也开始使用JWT(JsonWebToken)来管理用户会话信息。本文将从JWT的基本原理出发,分析在使用JWT构建基于Token的身份验证系统时需要谨慎对待的细节。任何技术框架都有
一文搞懂蓝绿发布、灰度发布和滚动发布
应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布、灰度发布和滚动发布,目的是尽可能避免因发布导致的流量丢失或服务不可用问题。一、蓝绿发布项目逻辑上分为AB组,在项目系统时,首先把A组从负载均衡
spring boot 分布式事务解决方案LCN
对比LCN和saga(华为apache孵化器项目),LCN使用代理连接池封装补偿方法,saga需要手工写补偿方法,相对来说LCN使用更加方便。参考官方地址1.原理1.事务控制原理LCN事务控制原理是由事务模块TxClient下的代理连接池与TxManager的协调配合完成的事务协调控制。TxClie
一篇文章让你搞懂什么是TCP/IP协议
什么是TCP/IP协议?计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的通信,所有这一切都需要一种规则.而我们就将这种规则称为协议(protocol).也就是说
一篇文章让你搞懂什么是TCP/IP协议
什么是TCP/IP协议?计算机与网络设备之间如果要相互通信,双方就必须基于相同的方法.比如如何探测到通信目标.由哪一边先发起通信,使用哪种语言进行通信,怎样结束通信等规则都需要事先确定.不同的硬件,操作系统之间的通信,所有这一切都需要一种规则.而我们就将这种规则称为协议(protocol).也就是说
linux下的C语言开发(makefile编写详解)
对于程序设计员来说,makefile是我们绕不过去的一个坎。可能对于习惯VisualC++的用户来说,是否会编写makefile无所谓。毕竟工具本身已经帮我们做好了全部的编译流程。但是在Linux上面,一切变得不一样了,没有人会为你做这一切。编代码要靠你,测试要靠你,最后自动化编译设计也要靠你自己。
为啥这个查询使用索引,那个查询不使用索引,学会才发现真tm简单
来源于关注我们都是小青蛙,作者小孩子4919B+树结构我们说对于InnoDB存储引擎来说,表中的数据都存储在所谓的B+树中,我们每多建立一个索引,就相当于多建立一棵B+树。对于聚簇索引对应的B+树来说,叶子节点处存储了完整的用户记录(所谓完整用户记录,就是指一条聚簇索引记录中包含所有用户定义的列已经
为什么Java线程没有Running状态?
来源:https://dwz.cn/dLRLBZabJava虚拟机层面所暴露给我们的状态,与操作系统底层的线程状态是两个不同层面的事。具体而言,这里说的Java线程状态均来自于Thread类下的State这一内部枚举类中所定义的状态:什么是RUNNABLE?直接看它的Javadoc中的说明:一个在J
15 个 Linux 神器,你会用几个?
作者:int32bit来源:http://t.cn/R1FKgdNag:比grep、ack更快的递归搜索文件内容。tig:字符模式下交互查看git项目,可以替代git命令。mycli:mysql客户端,支持语法高亮和命令补全,效果类似ipython,可以替代mysql命令。jq:json文件处理以及
JVM 发生 OOM 的 8 种原因、及解决办法
原文地址:https://dwz.cn/fx1KyZh0作者:占小狼小A:xx服务又宕机了小B:歪日,咋搞的,登上去看看咋回事小A:又OOM了,不知道哪个**写的代码,一坨*一样。撸Java的同学,多多少少会碰到内存溢出(OOM)的场景,但造成OOM的原因却是多种多样。堆溢出这种场景最为常见,报错信
Java:如何更优雅的处理空值?
导语在笔者几年的开发经验中,经常看到项目中存在到处空值判断的情况,这些判断,会让人觉得摸不着头绪,它的出现很有可能和当前的业务逻辑并没有关系。但它会让你很头疼。有时候,更可怕的是系统因为这些空值的情况,会抛出空指针异常,导致业务系统发生问题。此篇文章,我总结了几种关于空值的处理手法,希望对读者有帮助
MySQL 性能优化之骨灰级,高阶神技
一、前言MySQL调优对于很多程序员而言,都是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器能够按照预想的合理方式运行而已。今天给大家讲解MySQ
Java 如何设计 API 接口,实现统一格式返回?
前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)一般系统的大致整体架构图如
12306 抢票,极限并发带来的思考?
每到节假日期间,一二线城市返乡、外出游玩的人们几乎都面临着一个问题:抢火车票!虽然现在大多数情况下都能订到票,但是放票瞬间即无票的场景,相信大家都深有体会。尤其是春节期间,大家不仅使用12306,还会考虑“智行”和其他的抢票软件,全国上下几亿人在这段时间都在抢票。“12306服务”承受着这个世界上任
这样讲 API 网关,你应该能明白了吧
为了提高系统的性能和可靠性,将应用服务进行拆分微服务化。作为系统入口的API网关也逐渐成为了标配。今天我们一起来看看API网关的设计思路,需要承载了哪些功能?以及如何选择流行的API网关?什么是API网关既然需要API网关为我所用,首先就让我们来了解一下什么是API网关。什么是API网关网关一词最早