JAVA
yine
在通信领域深耕16+年,精通C/C++/Java/Go/lua/py等编程语言,精通各类运营商协议如:SIP/T1/E1/PRI/H.323/SMGP/CMPP/SGIP/CNGP等,精通开源通信框架如:FreeSWITCH/Asterisk/Kamailio/OpenSIPS/WebRTC/JsSIP的配置使用及模块扩展及源码修改,掌握VoIP领域的音视频编解码,压缩算法,PLC,FEC,NACK等丢包补偿技术,ICE技术,QoS技术等,掌握主流模拟及数字中继网关配置接入,掌握主流微服务,存储引擎、搜索引擎、分布式、并行计算等框架,曾从事IM核心系统、消息推送平台、VoIP媒体交换平台...
展开
-
Google代码风格样式
https://github.com/google/styleguide原创 2020-04-09 17:21:41 · 371 阅读 · 0 评论 -
领域驱动设计DDD+CQRS+DIP落地
在领域驱动设计的落地过程仁者见仁智者见智,这篇文章写的不错,值得参考:http://deepoove.com/blog/#/posts/69https://www.infoq.cn/article/alibaba-freshhema-ddd-practicehttps://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-archit...原创 2019-09-19 16:57:16 · 601 阅读 · 0 评论 -
IntelliJ IDEA 最新版 注册码
下载地址:http://www.osxwin.com/s/jetbrains-intellij-idea-ultimate注册码地址:http://idea.lanyus.com/原创 2018-11-18 01:31:27 · 447 阅读 · 0 评论 -
DUBBO: 解决异步调用返回值null的问题
dubbo异步调用变同步当consumer或provider配置async属性时,会有传递性,后面调用都会变异步,如果链路上有一个地方代码是同步方式,那么这个地方会返回null。解决:方法一:将所有链路上的代码改异步方式(Future);方法二:要么把异步改同步;方法一方式工作量可能较多,因为链路上的dubbo调用可能比较多,这里简单说下后一种方式在调用dubbo方法前,执...原创 2018-08-15 10:02:50 · 4885 阅读 · 2 评论 -
Reactor模型
想象以下情形:长途客车在路途上,有人上车有人下车,但是乘客总是希望能够在客车上得到休息。传统的做法是:每隔一段时间(或每一个站),司机或售票员对每一个乘客询问是否下车。Reactor模式做法是:汽车是乘客访问的主体(Reactor),乘客上车后,到售票员(acceptor)处登记,之后乘客便可以休息睡觉去了,当到达乘客所要到达的目的地后,售票员将其唤醒即可。概念Reactor模式是基于...转载 2018-08-01 16:02:07 · 1572 阅读 · 0 评论 -
通用服务化方案
大家好,我今天的分享主要围绕以下几点,首先跟大家简要介绍一下微博服务化的演进过程,其次是微博自研跨语言RPC 框架 Motan 实现的一些关键技术要点,主要是跨语言方面,再次,结合目前市面上的一些Service Mesh 实现对比,给出基于 Motan-Go 的更符合微博场景的Weibo Mesh 实现。 最后,是我个人对于面向未来泛服务化架构的一些思考。一些同学对Service Mesh...转载 2018-08-01 11:26:00 · 1350 阅读 · 0 评论 -
gRPC 服务端创建和调用原理解析
gRPC 是一个高性能、开源和通用的 RPC 框架,面向服务端和移动端,基于 HTTP/2 设计。由 Google 开发并开源,语言中立,当前支持 C、Java 和 Go 语言,其中 C 版本支持 C、C++、Node.js、C# 等。RPC 入门RPC 框架原理RPC 框架的目标就是让远程服务调用更加简单、透明,RPC 框架负责屏蔽底层的传输方式(TCP 或者 UDP)、序列化方式(...转载 2018-08-01 11:23:56 · 4974 阅读 · 0 评论 -
JAVA并发编程:Synchronized和Lock
前言Java多线程编程中,保证线程安全通常会使用到synchronized和Lock。那么合适该使用synchronized,什么时候该使用Lock呢。这个就需要我们对synchronized和Lock有个清晰的了解。Lock和synchronizedsynchronized 是JAVA提供的强制原子性的内置锁机制。一个synchronized有两部分:锁对象的引用 (synchron...转载 2018-07-31 13:28:09 · 202 阅读 · 0 评论 -
Tomcat停机过程分析及线程处理方法
工作中经常遇到因为Tomcat shutdown时自己创建的线程因没有及时停止而引起的各种莫名其妙的报错,这篇文章将通过对Tomcat停机过程的梳理讨论产生这些错误的原因,同时提出了两个可行的解决办法。Tomcat停机过程分析一个Tomcat进程本质上是一个JVM进程,其内部结构如下图所示:(图片来自网络)从上至下分别为Server、service、connnector | Engine、host...转载 2018-04-21 20:31:19 · 1548 阅读 · 0 评论 -
一次Java调用OS命令的优化过程实录
1前言1.1优化目标人脸识别(FaceRecognition)服务运行在Windows系统的bat文件中,其计算量非常大,运行耗时也比较长(10-20小时),并且在Java程序中使用Runtime执行命令,比直接运行cmd命令耗时更多,因此必须采取必要的手段对整个Server进行优化。主要优化目标是降低Java程序中的执行时间,以提高吞吐率。1.2系统环境1转载 2017-07-25 16:02:11 · 632 阅读 · 0 评论 -
zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee转载 2017-04-26 11:18:36 · 534 阅读 · 0 评论 -
从业务的层面进行流量控制
之前产品线上发生过若干次因为tomcat连接池被耗尽而导致宕机的故障,而具体根源原因则各不尽相同。有因为调用和被调用的服务申请相同的分布式锁而导致死锁的,有因为发送内部或外部的JMS消息发生堵塞的,有因为某个存在性能问题的接口被较多调用导致的,还有某些超高频接口没有做好专门优化而导致的。。。 所有上述问题的本质解决,肯定是要针对各种问题根源,分别予以解决。解决死锁问题,外部接口原创 2015-08-21 15:00:51 · 2917 阅读 · 0 评论 -
netty3升级到4后由于线程模型的变化引起的问题
1|Netty的特点Netty入门比较简单,主要原因有如下几点:Netty的API封装比较简单,将复杂的网络通信通过BootStrap等工具类做了二次封装,用户使用起来比较简单;Netty源码自带的Demo比较多,通过Demo可以很快入门;Netty社区资料、相关学习书籍也比较多,学习资料比较丰富。但是很多入门之后的Netty学习者遇到了很多困惑,例如不知道原创 2015-09-10 12:51:18 · 2743 阅读 · 0 评论 -
性能测试工具
压力测试工具Grinder:http://grinder.sourceforge.net/PTP自动化性能测试平台: http://perf.hz.netease.com/Jmeter: http://jmeter.apache.org/Gatling: http://www.infoq.com/cn/articles/new-generation-server-testing转载 2015-08-26 11:29:18 · 6812 阅读 · 0 评论