Linux CentOS NFS 服务安装配置使用

NFS介绍

NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它最早是由 Sun 公司发展出来的,也是 FreeBSD 支持的文件系统中的一个,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本地文件一样方便。简单的理解,NFS 就是可以透过网络,让不同的主机、不同的操作系统可以共享存储的服务。

主要是针对近期的视频文件上传提供服务。

查看更多

分享到 评论

ActivityMq安装部署配置使用

延迟消息

  • 延迟消息需要在apache-activemq-5.15.10/conf目录下的activitymq.xml找到对应的broker标签增加schedulerSupport属性开启,否则发送延迟消息不会生效

    1
    2
    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" schedulerSupport="true" >
    </broker>
分享到 评论

视频剪辑-ffmpeg下载部署安装

前言

最近项目组有针对视频剪辑的功能需求,主要是通过后台上传的视频文件之后,然后需要根据时间剪辑对应的片段用于在相应的页面显示,之前一直没有针对视频文件处理相应的经验,印象中这个视频处理应该是在客户端进行处理的,类似现在很火的抖音、快手等增加各种剪辑、合并等。在网上一看发现服务端也有对应的解决方案。

类似阿里云的视频剪辑: https://helpcdn.aliyun.com/document_detail/101562.html

七牛: https://developer.qiniu.com/dora/api/1246/audio-and-video-stitching-avconcat

以上这些是需要收费的;后来发现ffmpeg这个剪辑工具也能满足相应的需求;

即在服务器上按照ffmpeg这个功能键,然后通过Java代码去执行相应的命令,检测是否剪辑完即可;

查看更多

分享到 评论

救火队长系列(疑难问题定位解决方法思路)

此文章系列主要用于记录平常工作中遇到的一些疑难问题以及相关的定位思路方法

  • 内存不足导致SpringBoot应用程序被系统Kill
  • 生产的一个定时任务某一天莫名其妙被Kill了(内存溢出)
分享到 评论

内存不足导致SpringBoot应用程序被系统Kill

此篇主要记录平常工作中遇到的一些疑难问题

  1. 最近一台机器部署了3个SpringBoot应用之后,发现当中有应用会莫名其妙的被kill,而且没有任何日志JVM错误;本以为是内存溢出导致系统挂了,但是一直没有找到任何相关可用日志;

    最后通过以下命令查看了系统日志,发现是由于被系统Kill的,由于在申请内存的时候系统以及无法满足了,导致被kill; 阿里云的服务器,默认swap分区大小是0,然后应用在申请系统内存时,如果内存不足就会被系统直接kill 三种解决方案:

    1. 升级机器内存大小
    2. 添加swap分区大小
    3. 设置应用程序启动最大内存大小
    1
    cat /var/log/messages
    1
    2
    Nov  7 14:53:03 AliYunOS kernel: Killed process 11340, UID 0, (java) total-vm:5778380kB, anon-rss:1026616kB, file-rss:132kB
    Nov 7 14:53:03 AliYunOS kernel: Out of memory: Kill process 11340 (java) score 95 or sacrifice child
分享到 评论

内存不足导致SpringBoot应用程序被系统Kill

此篇主要记录平常工作中遇到的一些疑难问题

  1. 最近一台机器部署了3个SpringBoot应用之后,发现当中有应用会莫名其妙的被kill,而且没有任何日志JVM错误;本以为是内存溢出导致系统挂了,但是一直没有找到任何相关可用日志;

    最后通过以下命令查看了系统日志,发现是由于被系统Kill的,由于在申请内存的时候系统以及无法满足了,导致被kill; 阿里云的服务器,默认swap分区大小是0,然后应用在申请系统内存时,如果内存不足就会被系统直接kill 三种解决方案:

    1. 升级机器内存大小
    2. 添加swap分区大小
    3. 设置应用程序启动最大内存大小
    1
    cat /var/log/messages
    1
    2
    Nov  7 14:53:03 AliYunOS kernel: Killed process 11340, UID 0, (java) total-vm:5778380kB, anon-rss:1026616kB, file-rss:132kB
    Nov 7 14:53:03 AliYunOS kernel: Out of memory: Kill process 11340 (java) score 95 or sacrifice child
分享到 评论

埋点数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package=com.suixing.subway
channel=渠道名称(跳转渠道来源,默认为个厂商)
name=应用名称
app_version=1.0.21(版本号)
client_id=
info_ma=
manufacturer=vivo(厂商)
model=vivo%20x6s%20a(型号)
os_type=android
os_id=app(app,h5,quick)
lang=zh
region=cn
px=1080*1920
net=wifi
source=other
extra={}
app_id=a9190d80050b51e9980fab5f153fae1e(应用appId)
uid=04fd678312793d33bf92557853dd8e44(imei or other)
req_id=420916e911937338d165b0c1815eadea(打开批次,即用户打开次数)
page_name=pages/index
page_path=/pages/index
sta_time=1572834191942
end_time=1572834370462
duration=17119
is_entry=0(1:进入,0:离开)
sdk_version=1.0.0(sdk版本默认1.0.0)
debug=0 (debug模式默认0 1:debug 0:生产)
分享到 评论

JVM GC日志查看分析(四)

1
-XX:NewSize=5242880 -XX:MaxNewSize=5242880 -XX:InitialHeapSize=10485760 -XX:MaxHeapSize=10485760 -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:gc.log

上面”-XX:InitialHeapSize” 和 “-XX:MaxHeapSize”就是初始堆大小和最大堆大小,”-XX:NewSize”和”-XX:MaxNewSize”是初始新生代大小和最大新生代大小,”-XX:PretenureSizeThreshold=10485760”指定了大对象阈值是10MB。

相当于给堆内存分配10MB内存空间,其中新生代5MB内存空间,其中Eden区占4MB,每个Survivor区占0.5MB(8:1:1默认),大对象必须超过10MB才会直接进入老年代,年轻代使用ParNew垃圾回收器,老年代使用CMS垃圾回收器。

-XX:+PrintGCDetail:打印详细的gc日志

-XX:+PrintGCTimeStamps:这个参数设置可以打印出来每次GC发生时间

-Xloggc:gc.log:这个参数可以设置将gc日志写入一个磁盘文件

查看更多

分享到 评论

Dubbo源码Consumer调用链路流程(一)

目录:

  1. ReferenceConfig初始化
  2. 初始化Protocol
  3. 创建Invoker
  4. 创建ProxyFactory
  5. 自动生成和编译一个动态的Adaptive类
  6. 异步转同步

查看更多

分享到 评论

Netty 编码 Encoder(七)

mark

目录:

  1. Netty编码概述
  2. Encoder Demo举例
  3. MessageToByteEncoder
  4. writeAndFlush()方法
  5. 总结

查看更多

分享到 评论