- 博客(67)
- 资源 (1)
- 收藏
- 关注
原创 【Netty4 简单项目实践】十四、用SpringBoot加载Netty
【前言】在没用SpringBoot加载Netty的时候,我觉得单独靠Thread启动一个Netty也挺好。后来因为工作习惯的改变,越来越多的依赖AOP、SOA,觉得SpringBoot管理起Netty后,其实也还好,因为很少在Netty上操作ORM,唯一有点喜欢的就是基于AOP的Log。【入口】之前我写好一个Netty Server后,会让他implements Runnable/Callable...
2018-02-08 10:13:41
7348
原创 【Netty4 简单项目实践】十三、WebSocket Over ProtocolBuf
【前言】之前用TCP模式传输ProtocolBuf模式,后面上了一个websocket传输ProtocolBuf业务,目前基本已经稳定了,现在把编解码器部分记录下来。【server部件的组装】核心思想是ProtocolBuf是byte[]流,而websocket对象在Netty自带的编解码中是对象,其中的数据部分是pb序列化后的字节流(即,ws的内容是二进制字节数组)所以在编码器和解码
2018-01-12 12:00:51
1086
2
原创 【Netty4 简单项目实践】十二、客户端连接池-压测利器
【前言】之前想写压测工具来着,但是没有很好的分析工具,所以没什么动力写。最近学会了用阿尔萨斯赶紧把压测工具补上了,疯狂的压榨服务器性能。用Netty已有的连接池模型,可以省去自己维护连接保活的工作。本来写了5个类,整理了一下代码发现非常简单,基础类就一个。【连接池】忘记自己借鉴了谁的代码,客户端连接池采用Netty的ChannelPoolMap接口,用网络连接地址做Key,用Fixed
2017-12-28 14:19:18
4062
1
原创 【Netty4 简单项目实践】十一、用Netty分发mpegts到websocket接口
【前言】推视频流的时候,rtmp会有3秒的延迟。目前有一种解决方案是用mpegts的格式解决。如果考虑用ffmpeg来推流的话,可以使用http格式和udp格式来推流。现在要做的事情是用Netty来转发rtmp到websocket接口上,然后用H5来播放。播放的插件使用jsmpeg这个项目来实现。【ffmpeg推mpegts】ffmpeg推流支持http和udp两种协议,目前还不支
2017-12-18 15:30:01
4189
2
原创 【Java】用etcd做服务注册和发现
最近尝试了一下etcd来做服务的注册发现【etcd服务】从etcd官网下载二进制文件即可,分配了三台机器做集群10.0.1.98 etcd-00110.0.1.205 etcd-00210.0.1.182 etcd-003然后用脚本启动服务etcd --name etcd-002 --initial-advertise-peer-ur
2017-09-04 13:11:27
18373
3
原创 【thrift】cygwin上编译安装thrift中的坑
下载了最新的cygwin,版本为0.10.0只编译c++版本的thrift在cygwin上装了 5.4.0-1 cygwin64-gcc-core5.4.0-1 cygwin64-gcc-g++5.4.0-1 gcc-core5.4.0-1 gcc-g++5.4.0-4 mingw64-i686-gcc-core5.4.0-4 mingw64-i686-gc
2017-06-28 17:59:27
858
原创 【Java加密】(一)JCE配置加密算法强度不受限授权的安装
使用JCA/JCE的时候,在jdk1.4版本及以上是需要安装授权的,否则大部分对称加密算法最高支持128bit,非对称加密算法最高支持2048bit。本方法需要确认法律风险,如果是中国,似乎好像是有授权的,允许安装无长度限制的证书。
2017-03-29 16:56:46
7286
翻译 【Java 性能伴侣】第一章 G1概览
Java8引入的Garbage First垃圾回收器,这本书对其进行了详细的描述。我打算翻译全书的四章来全面学习这个垃圾回收器使用上的调优手段。
2017-03-28 21:24:57
2091
转载 【ssl】SSL证书转换
http://www.cnblogs.com/aiqingqing/p/4521667.html1.从pfx格式的证书提取出密钥和证书set OPENSSL_CONF=openssl.cnfopenssl pkcs12 -in my.pfx -nodes -out server.pemopenssl rsa -in server.pem -out server.key open
2017-01-12 18:29:46
1367
原创 【Netty4 简单项目实践】十、Http协议下使用protocol buff
介绍了在Netty中如何用Http收发Protocol buff序列化的对象。
2016-12-08 11:57:04
1528
转载 【Hibernate】Hibernate分表的实现--老古董留存
之前一直不知道Hibernate如何分表,最暴力的方法就是写多个POJO,加上注解@Entity(name=xxx)制定表名,但是实际上常常会分100个表记录业务流水,记录用户。所以这种暴力方法并不能解决问题。曾经一度为了分表打算放弃Hibernate转用Mybitas,不知道下文这个方法能不能解决我的问题。
2016-10-08 11:42:27
1680
原创 【Netty4 简单项目实践】九、示例项目
这个示例项目包含了【Netty4 简单项目实践】系列的代码。还包括之后写的一部分内容,如聊天敏感词过滤
2016-08-24 11:09:10
1421
原创 【Java】正则表达式匹配多单词任意顺序组合的字符串
【问题】做表情抽取的时候发现标签里面的属性在不同浏览器下顺序不尽相同,比如:chrome上这样的一个标签:在firefox上会变成这样:最开始的正则规则是简单粗暴的方式:String rex = "src=\"1.jpg\"\\stitle=\"\\S+\"\\s+class=\"emoji\\s+emoji\\w+\">";在firefox上彻底失败了【解决】
2016-08-19 16:01:31
7001
原创 【nginx】App打点场景下,用nginx的log捕获http协议的$request_body的正确方法
【应用场景】App里面的打点数据想自己收集,可以考虑向nginx发一个json,通过nginx生成的日志实现实时获取数据。所以问题就归结为nginx日志的生成。正如 http://www.cnblogs.com/meteorx/p/3188647.html 这篇作者抱怨的,nginx并不会老老实实把request_body生成在log中。不会生成的原理在于nginx处理con
2016-07-28 11:32:29
9645
原创 【Java】聊天过滤 DFA算法的Java实现
开心就好Trie树的原理不讲了,直接上代码ChatFilter.java 是核心的过滤器 NoneWantToSee.list中读敏感词,这个文件中一个敏感词放一行过滤器实现数据加载和提供过滤服务,过滤服务是把敏感词替换成**,可以自定义行为。和一些例子不同,我在代码中处理了部分重叠状态的识别,比如“丝袜” “丝袜网” 都作为敏感词可以被识别出来并处理掉。另外有一点,构造使用的
2016-06-30 16:28:10
2537
原创 【Netty4 简单项目实践】七、上线前准备--内存泄漏监控、系统监控
一、内存泄漏Netty4的内存泄漏监控默认是没有的,需要手动设置。它的内存泄漏只是针对Bytebuf,这也暗示着使用Bytebuf能提高系统性能降低GC的影响。配置很简单,就是设置运行变量 io.netty.leakDetection.level String str = Property.getProperty("io.netty.leakD
2016-05-24 14:04:21
4726
原创 【Netty4 简单项目实践】六、断掉未鉴权的TCP长连接--ChannelHandelContext中的定时器用法
本文是Netty实践中的一个小应用:用ChannelHandlerContext定时器来实现阻断无效TCP长连接的方法。
2016-05-07 15:39:40
7784
原创 【Netty4 简单项目实践】五、Netty4接收HTTP文件上传
又要开一个接收文件上传的服务,找了官方的样例代码,把不需要的东西删了一圈,很容易就实现了。Bootstrap没什么变化,所以只写上initChannel需要加载的处理器.childHandler(new ChannelInitializer() { @Override protected void initCh
2016-05-01 23:02:30
14263
原创 【Netty4 简单项目实践】三、压缩消息体:使用google的protocol buff
老古董的C++程序员最讨厌的地方就是爱扣什么鸟传输带宽。讲道理,带宽上的那点开销和编解码的开销+代码维护(Json)成本比起来根本不值一提。咱们继续。ChannelHandlerContext原理本来是不想讲原理的,但是有几个认知需要明确一下。在每个处理类(比如编解码)的输出,如果不满足下一个类的输入类型要求,下一个类是根本不会响应。比如之前看到的:public cla
2016-04-25 22:25:19
3725
原创 【Netty4 简单项目实践】二、解决TCP连包问题:分隔符解码器
TCP他会分包发很讨厌,开始的时候用分隔符来实现String消息的提取。这种解决方案适合于用Json进行消息交互的TCP长连接。下面的代码,在第一篇的代码上进行修改即可。分隔符处理器解决的思路是在channel链上加载分隔符处理器DelimiterBasedFrameDecoder,代码如下String delimiter = "Doge";ByteBuf[
2016-04-25 18:44:03
1645
原创 【Netty4 简单项目实践】一、长连接服务通用框架原型
第一个版本实现面向字符串的TCP长连接服务看点:Liunx优化、TCP连接设置服务端通用框架在Netty4中,所有的服务端使用相同的框架结构。生成一个ServerBootstrap对象在ServerBootstrap对象的group中添加“接收消息循环队列”和“发送消息循环队列”两个对象在ServerBootstrap对象上设置连接的属性(比如TCP连接属性:收发包
2016-04-25 18:20:36
5968
6
原创 【Netty】实现Netty4的web socket服务,比如聊天室的原型
业务需要实现一个web socket,没考虑Tomcat,Tomcat那个容量简直惨不忍睹,居然还有人推荐用。基本是照着官方样例来的:server入口http://netty.io/4.0/xref/io/netty/example/http/websocketx/server/WebSocketServer.html服务加载的channel生成器http://netty.io
2016-04-05 20:04:14
5101
转载 【springboot】自定义模板配置
http://blog.youkuaiyun.com/isea533/article/details/50412212
2016-03-30 11:58:40
1534
转载 【springboot】Spring boot配置文件 application.properties
http://www.tuicool.com/articles/veUjQba# ===================================================================# COMMON SPRING BOOT PROPERTIES## This sample file is provided as a guideline. Do N
2016-03-30 10:46:37
5100
转载 【spring】spring session的一些细节
http://www.infoq.com/cn/articles/Next-Generation-Session-Management-with-Spring-Session文章里还讲了用法,其他地方(官网)都没有。
2016-03-29 17:14:33
412
原创 【rtmp】AAC编码注意事项
客户端AAC编码后推rtmp在flash上总听不到声音,并且和图像mux之后,还会导致图像无法播放。参考了这篇文章:http://billhoo.blog.51cto.com/2337751/1557646 终于解决了这篇文章的核心有两点:1)同步帧封装成rtmp后发送一次即可,此时不携带任何的aac数据包;2)同步帧和普通aac数据帧的帧头有区别,需要注意其他需要注意的地方
2016-03-28 15:38:11
967
转载 【libav】libav的常用方法
https://wiki.libav.org/Snippets/avconvffmpeg是对libav的封装avconvThanks to roxlu for providing most of them.Convert from raw x264 to flv (when you get an error with monotonically increa
2016-03-25 10:29:48
1940
转载 【ffmpeg】一些常用方法
1、将文件当做直播送至live ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://server/live/streamName 2、将直播媒体保存至本地文件 ffmpeg -i rtmp://server/live/streamName -c copy dump.flv 3、将其中一个直播流,视频1、将文件当做直播送
2016-03-25 09:50:09
579
转载 【Java】讲synchronized最清楚的文章
http://blog.youkuaiyun.com/luoweifu/article/details/46613015
2016-03-23 11:11:22
435
原创 【FFMPEG】在MacBook Pro上用FFMPEG推rtmp流
上一篇讲了怎么在Mac上捕获桌面和摄像头,然后保存在文件里,这里单独说下如何推rtmp流。我先用red5建了个服务,下了他的样例oflaDemo,然后运行下面的指令./ffmpeg -f avfoundation -pixel_format uyvy422 -i "1" -f flv rtmp://localhost/oflaDemo/pid123456789ffmpeg支
2016-03-09 16:16:29
3157
原创 【FFMPEG】FFMPEG程序捕获Mac设备流媒体
1. 从ffmpeg官网下载ffmpeg版本,选择Mac版本,其中static版本的程序包含了所有的库,先用这个版本。这个版本只有一个执行程序文件ffmpeg2. 运行 ./ffmpeg -devices 查看机器上的所有设备./ffmpeg -devicesffmpeg version 3.0-tessus Copyright (c) 2000-2016 the FFmp
2016-03-08 18:28:32
6690
原创 【maven】eclipse中maven构建web app插件冲突问题
错误提示 Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.17 如果是windows用户,到当前用户目录 c:\Users\你的用户名 比如administrator就是C:\Users\Administrator进入\.m2\repository\ 文件夹,在搜索栏里输入 *.lastUpd
2015-10-30 13:16:07
528
转载 【Java】JavaEE性能问题的10大诱因
【原文链接】https://dzone.com/articles/top-10-causes-java-eeTop 10 Causes of Java EE Enterprise Performance ProblemsPerformance problems are one of the biggest challenges to expect when designing an
2015-10-26 15:45:06
1897
转载 【Java】Java 性能调优指南 – 高性能Java
【原文链接】http://coderbee.net/index.php/java/20140503/907本文主要基于 Java performance tuning tips or everything you want to know about Java performance in 15 minutes的翻译。这篇指南主要调优 java 代码而不是 JVM 设置。
2015-10-26 15:32:54
2368
转载 【R】R语言windows下连接MySQL
http://www.dataguru.cn/thread-289411-1-1.html1. 下载http://dev.mysql.com/downloads/connector/odbc2. R中安装RODBC程序包3. API文档 ?RODBC
2015-09-08 14:12:42
701
原创 【J2EE】Web功能预加载
【前言】有时候会用静态类的形式加载数据到内存中来提升查询效率,在J2EE中如果靠URL访问才加载,对首个访问用户来说是无法忍受的。在众多的预加载模式中,我偏向使用Servlet的Listener来完成这个工作。【实现】ServletContextListener接口可以用于监听Web应用的启动和关闭,用这个监听器就足够了。在这个接口中,有一个public void contex
2015-09-02 09:50:37
631
Java NIO框架的实现技巧和陷阱
2015-10-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人