自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

bd7xzz

简单程序员

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

原创 服务端问题剖析浅谈

这是一篇很随性的浅谈,主要围绕着作为一个服务端程序员如何解决疑难杂症这个话题。我是一名使用java的程序员,在我的认知范围内,java还是擅长于服务端业务编程。即:拥有完善的解决企业级信息化问题的生态,适用于服务端非极端性能要求下的一种编程语言。这里的重点是:生态健全,能够快速应对各种复杂业务。面向服务端,众所周知java在客户端(浏览器、桌面端、嵌入式)领域做的不是很好,只有安卓还说得过去。

2023-08-19 20:40:26 164

原创 如何构造一个安全的单例?

为什么要问这个问题?我们知道,单例是一种很常用的设计模式,主要作用就是节省系统资源,让对象在服务器中只有一份。但是实际开发中可能有很多人压根没有写过单例这种模式,只是看过或者为了面试去写写demo熟悉一下。那为啥说是一种常用的模式?其实我们用的spring管理对象生命周期,用到默认的scope就是单例。这样的场景几乎每天都在用,所以我们不需要自己手写单例了。那么为了面试,进大厂,是不是就要刷刷文章学习学习呢?当我们刷完单例的整体结构时,会发现还是很简单的嘛,无非就是懒汉、饿汉。饿汉上来就创建,没什么难

2023-08-07 23:35:23 1210

原创 Java是如何创建线程的(二)从glibc到kernel thread

上一节我们讨论了java线程是如何创建的,看了看从java代码层面到jvm层面的源码里都干了什么。整个流程还是比较复杂的,我将上一节总结的调用时序图贴在下面,方便你回忆起整体调用流程。这一节,我们再来详细看看glibc到linux kernel是如何创建线程的。这篇文章会涉及到一点汇编指令,因为我们要看看线程是如何进入内核态的。不用担心看不懂,我会写上注释,也不用死记硬背,只要知道线程进入内核态时是通过汇编指令进入的即可。

2023-02-11 20:26:30 714

原创 Java是如何创建线程的(一)从java到jvm

线程我们经常用,也会经常被面试或讨论到。我如果说Java如何创建线程的?你肯定回答下面三种:你一样会想,这么简单的问题有什么好问的,简直侮辱我的智商。但,请仔细想想,你真的知道上面3个问题,都包含在一个问题中,Java是如何跟操作系统交互创建线程,并被操作系统调度的?这3个问题,是我在2023年元旦放假休息的时候突然想到的,为什么会这么想?所以,我想看看背后的真相,看看线程的源代码是怎么实现的。在正式内容之前,我希望你抛弃之前对线程的认识,同时不要惧怕底层原理和代码,这篇文章也会很长。

2023-02-05 15:35:47 677

原创 警惕jdk8 UDP和Thread.interrupt的Bug

线上业务在热点流量大的情况下(业务采用Java编程语言实现),单机偶发出现Hystrix熔断,接口无法提供服务。

2022-12-01 00:45:13 897 4

原创 有效的单元测试

本文阐述了单测的重要性,给出了错误的单测示范,针对错误反推出正确的姿势。有效的单测要把握3个特性:简洁、稳定、可靠。使用合适的单测工具库有助于写出好的单测代码(如:使用Spock基于TDD准则进行测试)。《代码整洁之道》和《重构》两本书中编写和重构代码的指导方法也同样适用于单测代码。《有效的单元测试》这本书非常推荐阅读。[1]《有效的单元测试》[2]《代码整洁之道》[3]《重构:改善既有代码的设计》[4]

2022-09-11 19:47:41 425

原创 某系统双十一内存飙升分析和解决方案

一、问题现象系统在双十一期间出现频繁内存飙升现象,内存在几天内直接飙升到报警阈值。在堆内存空间由3g调整到4g后,依然出现堆内存超过阈值问题,同时在重启若干次内存依然会飙升堆积。同时也发现了jvm一直不出现full gc,young gc稍微有点颤抖并出现young gc回收慢现象,很诡异,where is the full gc?!如图所示:同时可以看到,young gc后,内存逐渐......

2022-08-07 12:32:51 2260

原创 如何做一个可实施的故障预案?

其实写这篇博文的目的有三:我认为一个好的系统架构是面向错误和失败的,一个优秀的架构师除了能够给出解决复杂系统问题的方案,更需要给出异常和故障的解决方案。无论何时,我们应该精心设计,通过有限的资源解决复杂的问题,并最大化的预测故障,降低故障的发生概率。在这里,我希望能够阐述清楚工作中使用的故障分析方法、故障经验总结思路、预案构造过程,以及如何去实施预案。一份合理可实施的预案不是一个人能完全梳理清楚的,也不是一个人能完全实施展开的,这离不开一个团队。如果你的系统并没有什么用户使用,出现故障可以随时下线修复,那这

2022-05-31 20:42:08 760

原创 一个可实施的技术方案模板

1. 背景描述项目背景,说清楚整个项目的背景以及业务方向。2. 目标根据背景列出要实现的目标点:xxxxxxxxx…3. 业务分析3.1 支持的能力若项目已上线,本次只是迭代,要写清楚已有业务的能力,以及针对本次迭代目标,要具备什么能力(功能)若是新项目,要写清楚针对本次迭代目标,要具备什么能力(功能)3.2 行业调研除非你创造了一个杀手级应用,否则你的轮子基本都是重复的。这里要写出业务领域内其他公司是如何实现的,若公司内有类似的实现,要写出公司内其他人是怎么实现的。他人的实现

2021-03-28 17:14:38 3824

原创 如何写一篇可实施的技术方案?

为何要写这篇博文?一个错误的方案设计重点是什么?拿模板说说总结

2020-05-11 23:28:27 27996 15

空空如也

空空如也

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

TA关注的人

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