SF
Martin的专栏
Martin的专栏
注册登录
关注博客
注册登录
主页
关于
RSS
如何用Docker构建多平台镜像
MartinDai
4 月 5 日
阅读 4 分钟
2.4k
我们知道Docker镜像是支持多平台(不同的操作系统/架构)的,比如linux/amd64,linux/arm64,linux/riscv64等,当我们需要在不同平台使用容器运行我们的镜像的时候,通常可能会考虑分别编译各个平台的镜像文件,然后打上不同的tag用来区分平台,使用的时候也同样需要根据实际运行的平台在配置文件中选择不同的tag,这样...
Serverless部署应用并使用Cloudflare加速和支持HTTPS
MartinDai
2023-05-21
阅读 4 分钟
2.4k
Serverless 是一种云计算模型,它使开发人员能够构建和运行应用程序,而无需关心底层的服务器基础设施。在传统的应用程序开发中,开发人员需要管理服务器的配置、扩展和维护等任务。而在 Serverless 模型中,这些任务都由云服务提供商来处理,开发人员只需专注于编写应用程序的业务逻辑。
MacOS 安装k8s
MartinDai
2022-07-21
阅读 3 分钟
4.5k
安装前准备确保本地已经安装并启动好了Docker Desktop拉取k8s镜像(如果本地网络好可以正常拉取到k8s官方镜像,可以跳过这一步)克隆git仓库到本地 {代码...} 进入项目目录,执行 {代码...} 等待所有镜像拉取完成部署k8s进入Docker Decktop的设置页面,勾选Kubernetes设置页的配置,点击右下角的Apply & Restart按钮...
[转]手把手教你编写Skywalking插件
MartinDai
2020-09-29
阅读 8 分钟
3.7k
在正式进入编写环节之前,建议先花一点时间了解下javaagent(这是JDK 5引入的一个玩意儿,最好了解下其工作原理);另外,Skywalking用到了byte-buddy(一个动态操作二进制码的库),所以最好也熟悉下。
记一次堆外内存泄漏排查过程
MartinDai
2020-09-12
阅读 3 分钟
13.6k
本文涉及以下内容开启NMT查看JVM内存使用情况通过pmap命令查看进程物理内存使用情况smaps查看进程内存地址gdb命令dump内存块背景最近收到运维反馈,说有项目的一个节点的RSS已经是Xmx的两倍多了,因为是ECS机器所以项目可以一直运行,幸亏机器内存充足,不然就可能影响到其他应用了。排查问题通过跳板机登录到目标机器,...
Java8 Stream完全使用指南
MartinDai
2020-05-30
阅读 8 分钟
13.8k
Stream是Java 1.8版本开始提供的一个接口,主要提供对数据集合使用流的方式进行操作,流中的元素不可变且只会被消费一次,所有方法都设计成支持链式调用。使用Stream API可以极大生产力,写出高效率、干净、简洁的代码。
使用Let's Encrypt让域名支持HTTPS
MartinDai
2020-05-20
阅读 2 分钟
1.9k
如果安装报错,那么可能是因为系统缺少 acme.sh 所需要的依赖项,acme.sh 的依赖项主要是 netcat(nc),我们通过以下命令来安装这些依赖项,然后重新安装一遍 acme.sh:
记一次锁使用不当导致Dubbo线程阻塞问题
MartinDai
2019-11-17
阅读 4 分钟
6.3k
背景 线上环境一个后台项目,提供基于dubbo实现的事件分发服务,最近突然出现心跳超时。 问题分析 检查内存是否溢出 {代码...} 意料之中,内存正常,因为内部有接入内存溢出告警,如果是内存溢出应该有收到通知,但是这次没有溢出通知。 查看线程栈 {代码...} 发现有大量DubboServerHandler开头的线程阻塞在一个同样的地...
在Ubuntu上使用Jetty部署War包
MartinDai
2019-10-13
阅读 3 分钟
5.4k
前提 有一台装有Ubuntu系统的服务器和一个可以部署的War包 1.安装Java 创建文件夹 {代码...} 进入[链接]找到需要安装的JDK版本下载地址 下载JDK {代码...} 有些版本不支持这种方式下载,所以只能手动下载后再上传到服务器 解压JDK {代码...} 安装Java软链 {代码...} {代码...} {代码...} {代码...} 其中jdk-13是上一步解...
Docker学习笔记
MartinDai
2019-05-30
阅读 5 分钟
2.4k
最近在折腾自己维护在github上的项目的时候,发现项目所依赖的外部环境比较多,比如zookeeper、redis、elasticsearch等等,如果都安装一遍的话比较麻烦,而且因为是自己整理平时积累用的项目,对数据也没什么要求,只要有这样一个环境能保证项目运行起来就行了。第一时间想到的就是利用docker容器部署需要的组件,这样不...
Nginx正向代理和反向代理配置
MartinDai
2018-12-16
阅读 3 分钟
8.2k
Nginx的反向代理功能应该是Nginx诸多功能里面最常用的一个功能了,正向代理的话可能使用的场景比较少,平时接触的也不多,本章内容仅包含这两个功能的基本使用配置,因为是本地版本的,所以不包含负载均衡相关的内容。
基于Redis的BloomFilter实现
MartinDai
2018-12-13
阅读 4 分钟
17k
最近在研究布隆过滤器(如果不了解什么是布隆过滤器的,推荐看这篇如何判断一个元素在亿级数据中是否存在?了解),发现Guava提供了封装好的类,但是只能单机使用,一般现在的应用都是部署在分布式系统的,所以想找个可以在分布式系统下使用的布隆过滤器,找了半天只找到一个基于redis开发的模块项目ReBloom,但是这个是...
Linux服务器安装JDK
MartinDai
2018-05-08
阅读 1 分钟
3.1k
本文是通过Windows系统电脑上的SecureCRT远程连接Linux服务器安装JDK。 准备工作: 官网下载JDK安装包jdk-7u45-linux-x64.gz Linux服务器安装rz/sz功能,详见Linux系统下安装rz/sz命令及使用说明 连接到Linux服务器,开始安装步骤 上传安装包首先创建一个文件夹,用于接收安装包和作为安装目录 {代码...} 进入文件夹 {代...
使用cronolog切割nginx访问日志,定时清理旧日志
MartinDai
2018-05-08
阅读 1 分钟
6.7k
执行 sudo chown -Rwhoami:admin /usr/local/sbin如果没有/usr/local/sbin这个文件夹先执行 mkdir /usr/local/sbin
Arthas使用指南
MartinDai
2018-04-26
阅读 4 分钟
65.8k
Arthas 能为你做什么? 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception? 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了? 遇到问题无法在预发 debug 一下,难道只能通过加日志再重新预发布吗? 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现,怎么办? 是否有一个...
JVM参数使用手册
MartinDai
2017-08-10
阅读 7 分钟
17.4k
Xms英文解释:Initial heap size(in bytes)中文释义:堆区初始值使用方法:-Xms2g 或 -XX:InitialHeapSize=2048m
JVM优化过程全记录
MartinDai
2017-08-04
阅读 3 分钟
7.6k
今天看JVM群里有人发了一个GC情况,让人帮忙看优化的,于是我也凑热闹发了出来想让群里的大神们指导优化一下,以下是优化过程记录. 一开始我贴了下面的两张图 jstat看GC记录jstat -gcutil pid 1000 20 jcmd看VM参数(第一次使用这个命令)jcmd pid VM.flags 可以看到YGC了8W多次,FGC有1100+,相比较另一个发出来求教的,...
使用Spring Boot本地启动,第三方包无法修改项目内静态常量
MartinDai
2017-05-07
阅读 2 分钟
9.5k
最近在研究Spring Boot的的时候,遇到一个问题。项目里有一个静态常量类,其中有个常量是可变的,需要项目启动的时候请求外部链接拿到数据后再回调设置这个常量,而这个请求外部链接的操作是通过一个引入的第三方jar包实现的。这个时候出现一个很诡异的现象,项目启动的时候第三方jar包正常执行了请求成功拿到数据,也把...
git 指定sshkey访问远程仓库
MartinDai
2016-05-26
阅读 1 分钟
18.7k
今天生成服务器sshkey的时候悲剧的把本地~/.ssh/id_rsa这个文件给覆盖了,然后导致我的git不能提交文件了,ssh如果没有特殊配置的话,默认使用的就是~/.ssh/id_rsa这个文件当做私钥的,所以现在问题来了,我的git想要使用key访问远程仓库,而服务器也要用这个key,显然这两个key不是一样的,但是文件只有一个,怎么办呢?
MySQL分页查询offset过大,Sql优化经验
MartinDai
2016-04-26
阅读 1 分钟
18.8k
当offset特别大时,这条语句的执行效率会明显减低,而且效率是随着offset的增大而降低的。原因为:MySQL并不是跳过offset行,而是取offset+N行,然后放弃前offset行,返回N行,当offset特别大,然后单条数据也很大的时候,每次查询需要获取的数据就越多,自然就会很慢。
排序算法系列之归并排序
MartinDai
2015-10-25
阅读 3 分钟
2.2k
{代码...}
fastJson顺序遍历JSON字段
MartinDai
2015-07-24
阅读 1 分钟
45.6k
fastJson在把json格式的字符串转换成JSONObject的时候,使用的是HashMap,所以排序规则是根据HASH值排序的,如果想要按照字符串顺序遍历JSON属性,需要在转换的时候指定使用LinkedHashMap代替HashMap。
iBatis使用小技巧
MartinDai
2015-06-23
阅读 1 分钟
3.8k
在sql语句中直接使用大于号或等于号会造成解析错误,使用<![CDATA[ your sql ]]>把带有大于号或等于号的语句包在里面就可以了。
应用发布到sae问题小结
MartinDai
2015-06-21
阅读 1 分钟
2.4k
这个问题是困扰我最久的,官方没有提供详细的jar包冲突列表,所以只能自己去找别人的经验,在这里列举我遇到的以及我看到的一些冲突的jar包。-servlet-api.jar(这个官方有说的)-jsp-api.jar(被这个包坑了很长时间,没找到哪里有说,还是根据JVM日志错误看到一个解决tomcat容器同样问题的解决方案联想到的)-xml-apis.jar(...
SpringMVC同名参数绑定问题
MartinDai
2015-06-21
阅读 1 分钟
8.9k
如果是sturts的话,这个很好解决,在Controller声明user和acc对象就行了,但是SpringMVC的参数绑定和struts不一样,它会自动的去找对应的属性绑定,而如果你的action是这样的:
HTML无刷新下载文件方法总汇
MartinDai
2015-06-21
阅读 1 分钟
12.3k
首先要保证有一个后台可以下载文件的方法,这里只总结前端解决方法,所以不对后台做分析,假设现在有一个下载文件的方法/project/download.action。如果不想通过后台直接下载可以看我的另一篇文章《 html使用a标签不通过后台实现直接下载》。
html使用a标签不通过后台实现直接下载
MartinDai
2015-06-21
阅读 1 分钟
36.6k
在做项目的时候经常会碰到上传下载,通常在上传完文件以后会把文件在项目中的相对路径存到数据库以便下载,如果想直接下载文件,不通过后台action,则可以直接把文件路径给a标签的href属性,例如:
Oracle插入或修改 报ORA-01704: 文字字符串太长
MartinDai
2015-06-21
阅读 1 分钟
16.8k
今天在操作数据库数据的时候,想要插入一条某个字段是一个很长的字符串(比如一篇文章)的数据,例如: {代码...} 或 {代码...} 在使用PL/SQL执行的时候,报ORA-01704: 文字字符串太长错误。 解决方案: 使用存储过程操作数据,如下: {代码...} 原因分析:sql在执行之前会把所有字符类型的数据转换成VARCHAR2类型,而VA...
Java操作HTML格式字符串的标签和属性
MartinDai
2015-06-21
阅读 4 分钟
14.6k
在使用Editor(所见即所得编辑器)的时候,有时候可能会碰到需要在后台修改编辑器的内容,而且这些内容还都是HTML格式的数据,这个时候如果需要定位到某个标签的话就比较困难,毕竟是后台语言,不像前端的js一样可以在页面上直接取到某个标签,今天就分析一下使用Java如何操作HTML格式的字符串。
Jetty9报JSP support not configured错误
MartinDai
2015-06-21
阅读 1 分钟
12.4k
今天在使用Jetty9部署应用的时候,发现进入首页直接报了个500错误,内容为JSP support not configured。我使用的是官方推荐的方式配置的,参考译文《Jetty9使用jetty.sh启动Unix服务》,就是使用${jetty.base}来管理web应用,但是我发现在使用Jetty自带的默认web应用配置目录启动的时候,却又是可以的,于是把两个start....
1
(current)
2
下一页
1
(current)
下一页