自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT三明治的专栏

java全栈干货

  • 博客(70)
  • 资源 (2)
  • 收藏
  • 关注

原创 springboot优雅shutdown时异步线程安全优化

因为前两篇文章介绍的graceful shutdown并不是最优解。从架构师的角度考虑的话,写代码尽量满足多数情况可用,易用,最好还是全局有效的,让其他程序员专注于写业务代码。所以我重新写了一篇

2024-06-16 19:27:14 1634 1

原创 springboot优雅shutdown时如何保障异步线程的安全

我前面写了一篇springboot优雅shutdown的文章,看起来一切很美好。 https://blog.youkuaiyun.com/chenshm/article/details/139640775那是因为没有进行多线程测试。如果一个请求中包括阻塞线程(主线程)和非阻塞线程(异步线程),会是什么效果?接下来我们就测试一番

2024-06-15 14:27:38 1006

原创 震惊!好多人做spring boot release的时候并不是线程安全的

spring boot默认的shutdown方式并不是线程安全的。本文会为你一下验证,并给出解决方案

2024-06-13 08:27:14 380 2

原创 NAT网关在阿里云的应用

NAT网关(Network Address Translation Gateway)是一种网络地址转换服务,提供NAT代理(SNAT和DNAT)能力。NAT是用于在本地网络中使用私有地址,在连接互联网时转而使用全局 IP 地址的技术。NAT实际上是为解决IPv4地址短缺而开发的技术。

2023-10-16 03:58:02 1396

原创 Elasticsearch启用https访问

Elasticsearch启动https

2022-04-25 05:10:04 2717

原创 Elasticsearch创建安全账户

Elasticsearch创建安全账户

2022-04-25 03:01:07 1890

原创 Centos修改时区(timezone)

Centos修改时区(timezone)

2022-04-24 20:21:12 3902

原创 为elasticseach配置ES_JAVA_HOME

为elasticseach配置ES_JAVA_HOME

2022-04-23 08:18:52 4604

原创 Centos 7安装java 17

常用的java安装方法

2022-04-23 07:50:07 9197

原创 Linux alias创建快捷访问地址

有时候我们有好多地址需要访问,不想全路径去切换,那我们就需要一些快捷命令跳到目标地址, alias可以帮到你

2022-04-23 06:53:15 2608

原创 linux x86_64和linux aarch64如何选择

我们选择linux安装包的时候经常有两种选择,一种是x86_64,一种是aarch64版本,如下那么x86_64和aarch64有什么区别呢?以下这个文章给出了很详细的解答https://www.jianshu.com/p/2753c45af9bf服务器一般都是x86_64.也可以通过以下命令确定[sandwich@centos-elk ~]$ archx86_64[sandwich@centos-elk ~]$ uname -aLinux centos-elk 3.10.0-1160.

2022-04-23 05:34:12 28280

原创 Centos7开放端口

CentOs 7快速开放端口

2022-04-19 21:05:48 2339

原创 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535]

elasticsearch启动报错,受限于max open files数量

2022-04-19 07:44:53 5640

原创 动态追踪技术底层分析(字节码插桩)

动态追踪技术是可以不用重启线上java项目来进行问题排查的技术。比如Arthas就属于一种动态追踪工具,它提供的monitor, trace, watch命令就是用动态追踪技术实现的。 Arthas工具的基础,就是Java Agent技术,可以利用他来构建一个附加的代理程序,用来协助检测性能,还可以替换一些现有的功能,甚至jdk的类也能修改,就像JVM级别的AOP功能当我们研究技术到一定深度的时候我们就不能满足于使用了,我会思考它是怎么实现的,我们在工作中能不能开发出类似的辅助工具来帮助自己和同事呢?

2022-03-24 09:42:10 1740

原创 Arthas使用

1.Arthas是什么Arthas是Alibaba开源的Java诊断工具他主要解决以下问题1.这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?2.我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?3.遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?4.线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!5.是否有一个全局视角来查看系统的运行状况?6.有什么办法可以监控到JVM的实时运行状态?7.怎么快速定

2022-03-02 07:54:10 1592

原创 JDK的武器库

JDK为我们提供了不少的工具,如下图所示![](https://upload-images.jianshu.io/upload_images/17663286-b8619b341a151722.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)这些可执行文件都是不错的工具,掌握他们就是掌握JVM分析的武器库。 在windows平台下,他们是exe文件,在其他平台,文件格式会有所不同。 在linux中,一般默认会自带OpenJdk,一般情

2022-01-29 09:16:51 2940

原创 夜战II-程序猿的骚文

记录当年跟同学合租的日子

2022-01-23 19:57:16 266

原创 剖析Stream的性能

Stream随着java 8的出现开始被广泛使用,但是在使用前,请先熟悉它,请不要滥用它。

2022-01-22 15:31:33 2083 1

原创 虚拟机是如何实现泛型的

泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样

2022-01-18 00:17:07 762

原创 Lambda表达式

1.Lambda的字节码我们先来看看一个Runnable的代码段接着我把它改造成Lambda表达式,再看一下它的字节码由此可见它的字节码是invokedynamic。invokedynamic这个字节码是比较复杂。和反射类似,它用于一些动态的调用场景,但它和反射有着本质的不同,效率也比反射要高得多。用以下命令反汇编D:\git\test\target\classes\sandwich\test7> javap -p -v .\LambdaTest.class可以得到以一串比较奇怪

2022-01-10 09:13:18 573

原创 JVM方法调用

代码的执行其实本质上是方法的执行,站在JVM的角度归根到底还是字节码的执行。main函数是JVM指令执行的起点,JVM会创建main线程来执行main函数,以触发JVM一系列指令的执行,真正地把JVM跑起来。这个过程就是方法调用的过程。在一些重型框架中,我们有时候看不到main在哪里,那是因为被框架封装了,但是在各种微服务中,我们都能轻松找到main方法。接下来,我们深入了解方法在JVM中的调用。1.方法调用的字节码指令invokestatic 用来调用静态方法;invokespec

2022-01-08 10:21:13 969

原创 夜战(黄花岗合租日记)

夜战,黄花岗合租日记

2021-12-04 08:11:46 373

原创 Centos 搜索文件路径

我们试试确认sudoers位置普通用户用find查找很难找,因为有很多需要root权限才能看的文件都会deny, 干扰搜索效果切换会root再查[sandwich@192 ~]$ suPassword: [root@192 sandwich]# find / -name sudoersfind: ‘/run/user/1000/gvfs’: Permission denied/etc/sudoers/usr/share/doc/sudo-1.8.23/examples/sudoers可

2021-11-08 06:45:09 1862

原创 centos7 ens33无ip地址查错

1.网络不正常原因修改网络配置后发现不能上网了,执行ifconfig看到ens33已经没有IP地址,如下[sandwich@centos-elk ~]$ ifconfigdocker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 ether 02:42:fb:27:2d:97 txqu

2021-11-03 07:18:36 1077

原创 Docker部署ElasticSearch(Centos 7)

1.搜索ElasticSearch镜像[sandwich@192 ~]$ docker search elasticsearchNAME DESCRIPTION STARS OFFICIAL AUTOMATEDelasticsearch Elasticsearch is a po

2021-11-01 05:21:24 1594

原创 为Docker配置国内镜像源(centos)

这里配置为阿里的镜像。访问阿里云官网 https://www.aliyun.com/ 登陆账号,进入管理控制台 --> 产品与服务 --> 弹性计算 --> 容器镜像服务 --> 镜像加速器,复制自己的专属加速器地址sudo mkdir -p /etc/dockersudo tee /etc/docker/daemon.json <<-'EOF'{ "regist

2021-11-01 02:04:23 592

原创 Centos7 安装docker以及新系统可能会出现的问题

这个时候centos官方已经主推centos8了,但是8的镜像我下载完已经有8.6G了,相对于7的4G多的空间,再加上企业目前生产主流用的还是7,所以我在虚拟机还是继续玩7。Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE。我这里用社区版测试1.查看centos内核版本(docker要求centos内核版本高于3.10)[sandwich@192 ~]$ uname -r3.10.0-957.el7.x86_642.使用root权限更新yum, 确保yum是

2021-11-01 01:24:11 444

原创 xxx is not in the sudoers file.This incident will be reported.的解决方法

新装的虚拟机用户没有sudo权限会弹出以下警告,无法用root权限去更新yum执行sudo yum -y update的时候[sandwich@192 ~]$ sudo yum -y updateWe trust you have received the usual lecture from the local SystemAdministrator. It usually boils down to these three things: #1) Respect the privac

2021-10-31 22:36:28 340

原创 Windows如何安装linux子系统

很多用windows的开发人员其实非常羡慕Mac用户可以在Mac上直接使用linux命令安装软件和操作计算机的,现在windows 10以上的系统也支持安装一个linux子系统,方便个人测试使用,让你不再需要安装虚拟机也能做linux的测试。下面我们来装Linux子系统(微软把它称作Windows Sub Linux)玩玩吧.我本机是window 11预览版一、安装步骤1.在系统设置搜索“启动或关闭Windows功能”2.把“适用于Linux的Windows子系统”打开确定后它会自动下载相关

2021-10-26 23:05:48 1237

原创 mysql windows版忘记root密码如何修改

最近在测试一下mysql的sys库发现需要root权限,但是我平时都是用root创建出来的来宾用户访问,root密码早忘记了。这下要重新找回root密码了。好久没有操作过了,记录一下被我优化过的百度搜到的步骤。1.用管理员权限打开cmd执行net stop mysql停止应用2.进入mysql的bin目录执行D:\Software\mysql-5.7.23-winx64\bin>mysqld --skip-grant-tables3.免密登陆MySQLD:\Software\mysql-

2021-09-28 09:34:35 162

原创 MySQL中的系统库—performance_schema

1.系统库简介系统库中的数据很重要, 没有对 MySQL 有全面通盘的了解,不宜去操作其下的数据,而且对系统库的管理维护是是 DBA 的职责。MySQL 有几个系统数据库,这几个数据库包含了 MySQL 服务器运行过程中所需的一些信息以及一些运行状态信息,我们现在稍微了解一下。performance_schema这个数据库里主要保存 MySQL 服务器运行过程中的一些状态信息,算是对 MySQL 服务器的一个性能监控。包括统计最近执行了哪些语句,在执行过程的每 个阶段都花费了多长时间,内存的

2021-09-27 22:35:39 1478

原创 MySQL体系架构

1. MySQL的组成由上图看出MySQL由上面的连接层和下面的服务器组成。服务器由连接池、管理工具和服务, SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。连接池:由于每次建立建立需要消耗很多时间,连接池的作用就是将这些连接缓存下来,下次可以直接用已经建立好的连接,提升服务器性能。管理工具和服务:系统管理和控制工具,例如备份恢复、Mysql 复制、集群等。SQL接口:接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface。解析.

2021-09-25 07:53:38 174

原创 电脑变慢了怎么办

如果电脑永久了变得又卡又慢,一般是文件系统损坏导致的,可以按照以下步骤修复磁盘系统和损坏文件试试#1.在任务管理器以管理员身份新建任务,打开cmd#2.执行chkdsk, 自动检测磁盘系统C:\WINDOWS\system32>chkdsk文件系统的类型是 NTFS。卷标是 系统。警告! 未指定 /F 参数。将在只读模式下运行 CHKDSK。阶段 1: 检查基本文件系统结构... 已处理 959744 个文件记录。文件验证完成。 已处理 27249 个大型文件记录。

2021-07-15 23:15:27 1631

原创 如何提升自己电脑网速

#1. win+R, 输入gpedit.msc打开本地策略编辑器#2. Windows设置>基于策略的QoS,右键打开高级QoS设置选择最大吞吐量#3.打开限制可保留带宽#4.启用并设置带宽限制为0如果禁用或未配置此设置,则系统使用默认值为 20% 的连接带宽所以我们启用它并设置带宽限制为0,应用>确定...

2021-07-14 06:01:29 529

原创 如何在idea(Intellij, Webstorm, PyCharm, GoLand等)打开外部工具

有时候我们在idea写代码的时候需要调用其他外部工具,怎样才能更快速调用呢?我这里以git bash为例有人可能会说,我直接用Windows搜索不就好了吗?我可以告诉你,有更方便的方法1. 打开Setting>Tools>External Tools2. 添加git bash的可执行文件地址3. idea上打开git bash选择要打开的路径右键>ExternalTools>git bash4. 给外部工具设置快捷键5. 用快捷键打开git bash(我

2021-07-14 05:59:12 399

原创 app微信企业付款注意事项-ip白名单

企业付款到零钱不复杂,请参考官方文档https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2做企业付款到零钱的时候我遇到一个坑,就是ip地址这个ip地址一定是要你发送请求的公网ip地址,无论客户端或者服务端。我的理解是如果前端直接发送请求到微信后台接口,就要用客户端的公网ip,如果是服务端直接发送请求到微信后台接口,就需要用服务端的公网ip。而且这个ip地址必需先添加到商户白名单。添加ip白名单的流程如下:1

2021-07-14 05:58:17 4872

原创 sysctl: cannot stat /proc/sys/net/netfilter/nf_conntrack_max: No such file or directory

sysctl: cannot stat /proc/sys/net/netfilter/nf_conntrack_max: No such file or directory我优化k8s内核参数的时候设置了如下参数cat > kubernetes.conf <<EOFnet.bridge.bridge-nf-call-iptables=1net.bridge.bridge-nf-call-ip6tables=1net.ipv4.ip_forward=1net.ipv4.tcp_

2021-07-14 05:56:02 4337

原创 k8s集群修改节点和master的hostname之后需要如何调整(踩坑之旅)

我把k8s集群master和node的hostname全部修改后发现kube ndoes 还是原来的样子[root@k8s-master1 ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONk8s-master-m1 Ready master 13h v1.15.1k8s-node-n1 Ready <none> 13h v1.15.1k8s-node-n2

2021-07-14 05:55:14 5114 1

原创 centos同步时间

time.windows.com和time.nist.gov,看域名应该都来复自美国全世界的windows计算机基本都用它们来校时。制'time.nist.gov为美国标准技术院,采用格灵威2113时间 (192.43.244.18)time.windows.com看到Windows就知道是微5261软的,微软的校时服务4102器。其它:'www.time.ac.cn为中科院国家授时中心,采用北京1653时间ntp.fudan.edu.cn (复旦)这几个都是常用来更新时间的域名,有时会失败,失

2021-07-14 05:54:32 422

原创 centos7设置静态ip和增加hostname访问

1.修改前查一下动态的gateway[root@centos-node1 sandwich]# netstat -rnKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface0.0.0.0 172.16.71.2 0.0.0.0 UG 0 0 0 ens33172.16.71.0

2021-07-14 05:53:50 464

通过串口和51单片机控制舵机转动(有4种转动方式)

用51单片机控制舵机,周期为20ms,我的程序尽量写得简单易懂了,可以通过串口发送1、2、3、4分别控制舵机的不同工作状态。1右转,2左转,3回到初始位置,4自由转动:不断地左转和右转

2010-08-30

51单片机控制舵机(非常简单易懂的程序,通过按键控制舵机左右转)

通过按键控制舵机的左转和右转,舵机工作周期为20ms.本程序非常简单易懂,希望可以帮到有需要的人。

2010-08-30

空空如也

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

TA关注的人

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