<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[oarsman的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/oarsman</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; oarsman]]></copyright><item><title><![CDATA[MacOS下的IntelliJ IDEA突然无法访问本机的虚拟机]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/146427574</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/146427574</guid><author>oarsman</author><pubDate>Fri, 21 Mar 2025 20:28:37 +0800</pubDate><description><![CDATA[挠了半天头，又觉得是程序的问题，但是程序明明没有动过啊，于是试着在idea的terminal里面ping了一下，果然有问题，idea 报告“ping: sendto: No route to host” 路由不可达。今天在开发的过程中，突然遇到一个怪事，之前运行的好好的程序，突然间报无法连接redis服务器，一开始以为是网络问题，在OS的terminal里又是ping 又是telnet的，一切正常，可是程序就是连不上。于是，破案了啊，打开IDEA的权限，一切终于恢复了正常。]]></description><category></category></item><item><title><![CDATA[RabbitMQ 双机系统偶尔丢失消息问题排查]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/141194398</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/141194398</guid><author>oarsman</author><pubDate>Wed, 14 Aug 2024 17:14:13 +0800</pubDate><description><![CDATA[然后怀疑是我们业务系统没有正确处理订阅消息导致的，于是又在主机上进行了网络抓包，发现确实没有收到该订阅的消息。既然网络没有问题，又确实没有收到消息，所以进一步怀疑是上层系统的问题，结果上层系统排查了半天，确认消息确实发布到了队列中。情况是这样的，我们的一个项目，采用双机热备的模式部署了一套应用系统，这个应用系统和上层的业务系统之间通过RabbitMQ进行消息交互。最后总结下来，虽然是一个低级的程序bug，但是排查过程中，浪费了太多的时间，主要是大家都没有考虑到双机系统会出现备机消费消息的可能性。]]></description><category></category></item><item><title><![CDATA[FTP被动模式返回服务器地址为0.0.0.0]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/136913925</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/136913925</guid><author>oarsman</author><pubDate>Thu, 21 Mar 2024 17:13:02 +0800</pubDate><description><![CDATA[注意 Passvie Mode 里面的6个数字，前四个，是服务器的IP地址 152.38.148.xx(安全起见，最后一个数字我隐藏掉了，用XX待敌)， 后两个是端口号2个字节的值，实际端口号=197*255+220。于是想当然的认为，肯定是被动模式没有配好，于是上服务器，打开vsftp.conf修改配置，打开被动模式，设置端口范围。于是仔细查看了所有的提示，发现put的时候，FTP返回的服务器地址和实际的服务器地址不一致。这样的配置，会导致返回的服务器地址被错误按照IPV6解析，从而出错。]]></description><category></category></item><item><title><![CDATA[制作Centos7自动安装镜像(五)]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112809655</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112809655</guid><author>oarsman</author><pubDate>Tue, 19 Jan 2021 15:04:39 +0800</pubDate><description><![CDATA[文章总览：制作Centos7自动安装镜像

终于进入到最后的阶段了，这也是这个阶段最为复杂的一步了。

我们来逐步完善吧：

1. 同步系统安装包

建立一个目录，用于制作安装包，我建立的目录是/root/kickstart/iso

首先，将Linux标准的安装光盘放入光驱，或者虚拟光驱，执行如下命令


/usr/bin/rsync -a --exclude=repodata/ /media/ /root/kickstart/iso/

将光盘上数据全部同步到指定目录。其中/media/ 是光盘的挂载路]]></description><category></category></item><item><title><![CDATA[制作Centos7自动安装镜像（四）]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112805265</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112805265</guid><author>oarsman</author><pubDate>Tue, 19 Jan 2021 14:33:44 +0800</pubDate><description><![CDATA[文章总览：制作Centos7自动安装镜像

通过kickstart软件，我们已经有了一个初始化的ks.cfg脚本了。下面要做的就是在这个脚本上添加上我们要加入的内容。

在此处做一些背景说明。虽然我前面的文章只写了应用rmp包的制作，但是实际上我制作了两个rmp包，一个是应用包。另外一个是一些系统配置文件，包含my.cnf rc.local profile

这三个文件放在一个叫做DeviceController-cfg-1.0.0.rpm 的文件中，而这三个文件将会被安装在/opt/wedo/cfg/t.]]></description><category></category></item><item><title><![CDATA[制作Centos7自动安装镜像(三)]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112793966</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112793966</guid><author>oarsman</author><pubDate>Tue, 19 Jan 2021 11:53:05 +0800</pubDate><description><![CDATA[在这里说明一下，我们制作自动化安装镜像用的是linux的kickstart技术。 这个技术的核心是制作一个ks.cfg文件，将所有需要自动化安装的内容写成一个脚本，放置在镜像中，并在安装菜单中指定这个配置文件的位置，这样Linux在启动的时候，会找到这个ks.cfg文件，并根据文件中的内容进行安装。一个典型的ks.cfg文件结构如下:


#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
i]]></description><category></category></item><item><title><![CDATA[制作Centos7自动安装镜像(二)]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112788929</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112788929</guid><author>oarsman</author><pubDate>Mon, 18 Jan 2021 19:08:08 +0800</pubDate><description><![CDATA[文章总览：制作Centos7自动安装镜像

RPM安装包制作

Linux镜像的标准安装方式是将待安装的软件制作成RPM包，然后将RPM包解压并复制到指定的目录中去(据说除此之外还可以将带安装的软件做成tar包，直接用来做安装。关于如果把tar包做到镜像里面来实现自动安装，这个我还没有尝试。有机会尝试话再完善一下这篇文章）。

鉴于我们项目的情况，一开始只考虑把开发出来的JAVA应用制作成RPM包。但是后来，在实际制作的时候发现，除了JAVA应用之外，我们还有一些配置文件如 /etc/profile /et]]></description><category></category></item><item><title><![CDATA[阻止RPM构建工具对RPM包中的文件进行压缩]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112792225</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112792225</guid><author>oarsman</author><pubDate>Mon, 18 Jan 2021 19:02:50 +0800</pubDate><description><![CDATA[转载至：https://www.cnblogs.com/LiuYanYGZ/p/9565861.html

When we create an RPM using rpmbuild, the binary files are stripped. The intention is to reduce the file size, without affecting the functionality. This is the default setting, configured using the rpm ]]></description><category></category></item><item><title><![CDATA[制作Centos7自动安装镜像(一)]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/112788165</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/112788165</guid><author>oarsman</author><pubDate>Mon, 18 Jan 2021 16:59:35 +0800</pubDate><description><![CDATA[0. 背景

之所以在这里写这篇文章，主要是最近项目中遇到了这个问题。在我们的一个项目里计划要有一个集群，近60台机子要进行批量的安装， 最早的技术方案是打算使用网络安装来进行的。 但是由于项目的实际原因，网络安装无法实现(在这里吐槽一下，甲方的项目管理真的不咋样，设备都进场了网络环境还都不具备。)，所以只能临时改用其他方案了。由于我们采购的是裸机，需要安装操作系统，JAVA环境，mysql数据库，应用程序， 初始化用户，初始化数据库，初始化配置文件，设定开机自启动和守护进程。 这些东西手工搞一遍，还行。搞]]></description><category></category></item><item><title><![CDATA[windows平台 Runtime.getRuntime().exec() 指定路径无效的问题]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/107975678</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/107975678</guid><author>oarsman</author><pubDate>Thu, 13 Aug 2020 11:42:05 +0800</pubDate><description><![CDATA[近日来项目中需要用程序调用外部的脚本来执行第三方的一些功能应用。于是，第一时间想起了使用Runtime.getRuntime().exec() 来调用脚本。在使用过程中，发现第三方的应用虽然可以通过参数传递配置文件的名字，但是却只能读和它同一目录的配置文件，不支持参数中带有路径的用法。基于这第一点，第一反应是，用exec的重构方法指定工作目录来解决，于是，写下了如下的命令

Runtime.getRuntime.exec("pshell.sh -config config.xml",null,new F..]]></description><category></category></item><item><title><![CDATA[Android EditText 限制只能输入指定范围的数字]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/105971356</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/105971356</guid><author>oarsman</author><pubDate>Thu, 07 May 2020 14:17:23 +0800</pubDate><description><![CDATA[最近由于公司需要，改做一个android的APP, 其中有一个功能，需要弹出一个对话框，要求用户输入IP地址。IPV4的地址。

IPV4的地址大家都知道是怎么一回事了。 按照产品的设计，应该是让用户分别输入四个地址段的数字，而不是一串字符串，这样可能客户体验好一些吧。

于是就有一个问题了，需要限制，每一个地址段的值，从0~255, 不允许其他内容。

首先，纯数字这个问题好解决，没有什么可说的...]]></description><category></category></item><item><title><![CDATA[年度总结]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/103933209</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/103933209</guid><author>oarsman</author><pubDate>Sat, 11 Jan 2020 09:11:02 +0800</pubDate><description><![CDATA[2015变，离开了爱立信，离开了亿榕，终于开始了自己的创业历程，对我来说，无疑是这一生最大的变化了

2016乱，创业并没有想象的那么容易，各种事情纷至沓来，加上又要管孩子，又要上海北京成都三地跑，家里又碰到精神病的骚扰，一个乱字，说不尽所有的事。

2017 苦，苦不苦呢？创业整四年，谁苦谁知道。家里好容易摆脱了神经病的骚扰，换了套新房子。眼看就要落定了，结果原房主要反悔，涨价100万。偏偏...]]></description><category></category></item><item><title><![CDATA[joomla+flex模板 首页不能显示的问题]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/103818115</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/103818115</guid><author>oarsman</author><pubDate>Fri, 03 Jan 2020 12:33:06 +0800</pubDate><description><![CDATA[最近，公司打算更新自己网站，计划用joomla来做CMS，并且使用flex来做模板。

于是，根据要求，按部就班的将joomla 3.9安装了起来。 已运行，joomla就提示 PHP版本过低，可能存在安全隐患.

查了一下系统，centos7 yum默认装的php 是5.4，是低了点。

于是，按照网上的攻略，更新yum源，升级到php7.2.

运行joomla，一切正常。安装flex模板。看...]]></description><category></category></item><item><title><![CDATA[清除本地MAVEN库下面的snapshot旧版本]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/102983471</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/102983471</guid><author>oarsman</author><pubDate>Sat, 09 Nov 2019 09:43:00 +0800</pubDate><description><![CDATA[最近参与了一个新项目的开发，在项目的POM文件中引入了另外一个项目组开发的模块。由于他们还在开发过程中，因此为了及时得到他们最新的成功，在POM中引用了他们的snapshot版本，这样的话，一旦他们发布新版本。我这边很快就能够更新，拿到最新的jar文件。

就这样过了一段时间。今天，我到MAVEN本地库目录下面去查找一些文件，偶然间进到了这个snapshot的文件夹，这不进来还好，一进来，我晕，里...]]></description><category></category></item><item><title><![CDATA[How to Repair MySQL Replication]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/102729266</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/102729266</guid><author>oarsman</author><pubDate>Thu, 24 Oct 2019 18:38:21 +0800</pubDate><description><![CDATA[mysql数据库同步异常解决办法，转载过来作为自己的参考
]]></description><category></category></item><item><title><![CDATA[mac OS 下搭建 JAVA OpenCV的开发环境]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/101021918</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/101021918</guid><author>oarsman</author><pubDate>Thu, 19 Sep 2019 14:46:58 +0800</pubDate><description><![CDATA[由于OpenCV 本身是通过C++开发的。如果要用JAVA进行开发，则需要通过JNI调用C++的库才可以实现。但是OpenCV官方只提供了windows环境下的dll库，没有提供mac OS 和Linux下面的库。所以，如果想在Mac os 和linux下面进行开发，关键的一点就是需要编译出本地的openCV库。

目前网上有两种方式来做这个事情，我尝试了一下。 其中号称利用port 自动安装编译...]]></description><category></category></item><item><title><![CDATA[XStream 转换 List＜String＞的方法]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/100712589</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/100712589</guid><author>oarsman</author><pubDate>Tue, 10 Sep 2019 21:35:17 +0800</pubDate><description><![CDATA[今天在做一个基于XML报文的通信接口的时候，遇到了一个小问题，在这个XML里面，客户定义了一个纯String的List，如下所示


&lt;root&gt;
    &lt;desc&gt;this is only a example&lt;/desc&gt;
    &lt;namelist&gt;
      &lt;name&gt;user01&lt;/name&gt;
       ...]]></description><category></category></item><item><title><![CDATA[一次网络丢包问题排查的经历]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/100574453</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/100574453</guid><author>oarsman</author><pubDate>Fri, 06 Sep 2019 10:55:15 +0800</pubDate><description><![CDATA[前两天，有一个同事跑来找我帮忙。说他们项目现场出现了一个奇怪的事情。在做性能测试的时候，发现偶尔会出现消息延迟增大的问题，有时候一条消息发出去，需要5秒钟才能够被对方收到。如此长的延迟已经严重影响了性能测试的结果。由于负责现场测试的同事对网络不是十分的熟悉，所以想让我帮忙排查一下。事情紧急，二话不说，动手。

首先看了一下他们的日志，发现并不是所有的消息延迟都很大，只有一小部分会出现这种情况。而且...]]></description><category></category></item><item><title><![CDATA[多网卡服务器路由策略配置]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/90523193</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/90523193</guid><author>oarsman</author><pubDate>Fri, 24 May 2019 21:36:18 +0800</pubDate><description><![CDATA[今天，有一个项目即将投入使用，同事远程登录上服务器，打算做一下生产前的检查，突然间发现服务器无法和上位业务系统连接了。经过一番检查没有发现原因。便找我帮忙。于是登录上去看了一下，第一反应是上位业务系统的网络有问题，但是用另外一台备机去访问上位业务系统，是没有问题的。

由于这是一台多网卡的服务器，同时连接了三个子网，底层业务系统，上位业务系统以及远程VPN连接。排除了上位业务系统的故障之后，首先反...]]></description><category></category></item><item><title><![CDATA[SpringBoot 无法注入jar包中的JPA接口的问题]]></title><link>https://blog.youkuaiyun.com/oarsman/article/details/85268645</link><guid>https://blog.youkuaiyun.com/oarsman/article/details/85268645</guid><author>oarsman</author><pubDate>Wed, 26 Dec 2018 21:21:05 +0800</pubDate><description><![CDATA[今天在开发过程中遇到了一个问题。由于是多模块项目，其中一个模块中以JPA的方式实现了几个DAO类，大致的代码如下：


package c.dao;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.re...]]></description><category></category></item></channel></rss>