西代零零发

既然选择远方,便只顾风雨兼程

Java程序员的现代RPC指南

Java程序员的现代RPC指南1.前言1.1 RPC框架简介最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦。于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大作业里凡是涉及到分布式通信的都用RMI,真是方便。后来用上了Spring,发现Spring提供了好多Ex...

2015-12-05 11:37:55

阅读数 5010

评论数 0

用Netty开发中间件:高并发性能优化

用Netty开发中间件:高并发性能优化最近在写一个后台中间件的原型,主要是做消息的分发和透传。因为要用Java实现,所以网络通信框架的第一选择当然就是Netty了,使用的是Netty 4版本。Netty果然效率很高,不用做太多努力就能达到一个比较高的tps。但使用过程中也碰到了一些问题,个人觉得都...

2015-10-08 20:52:23

阅读数 65168

评论数 22

Netty 4源码解析:请求处理

Netty 4源码解析:请求处理通过之前《Netty 4源码解析:服务端启动》的分析,我们知道在最前端“扛压力”的是NioEventLoop.run()方法。我们指定创建出的NioServerSocketChannel就是注册到了NioEventLoop中的Selector上。所以我们继续顺藤摸瓜...

2015-08-29 08:14:51

阅读数 8396

评论数 3

用Netty开发中间件:网络编程基础

跟Netty 4学网络编程《Netty权威指南》在网上的评价不是很高,尤其是第一版,第二版能稍好些?入手后快速翻看了大半本,不免还是想对《Netty权威指南(第二版)》吐槽一下: 前半本的代码排版太糟糕了,简直就是直接打印Word的版式似的。源码解析部分的条理性和代码排版好多了,感觉比其他部分的质...

2015-08-23 22:24:48

阅读数 6257

评论数 4

Netty 4源码解析:服务端启动

Netty 4源码解析:服务端启动1.基础知识1.1 Netty 4示例因为Netty 5还处于测试版,所以选择了目前比较稳定的Netty 4作为学习对象。而且5.0的变化也不像4.0这么大,好多网上的例子都已经过时了。 <dependency> ...

2015-08-22 11:29:12

阅读数 10319

评论数 1

六星经典CSAPP-笔记(12)并发编程(上)

六星经典CSAPP-笔记(12)并发编程(上)1.并发(Concurrency)我们经常在不知不觉间就说到或使用并发,但从未深入思考并发。我们经常能“遇见”并发,因为并发不仅仅是操作系统内核的“绝招”,它也是应用开发中必不可少的技巧: 访问慢I/O设备:就像当应用程序等待I/O中的数据时内核会切换...

2015-07-18 14:19:02

阅读数 2406

评论数 0

序列化战争:主流序列化框架Benchmark

序列化战争:主流序列化框架BenchmarkGitHub上有这样一个关于序列化的Benchmark,被好多文章引用。但这个项目考虑到完整性,代码有些复杂。为了个人学习,自己实现了个简单的Benchmark测试类,也算是总结一下当今主流序列化框架的用法。1.序列化的战争按照序列化后的数据格式,主流的...

2015-07-03 21:26:41

阅读数 5510

评论数 0

用Netty解析Redis网络协议

用Netty解析Redis网络协议根据Redis官方文档的介绍,学习了一下Redis网络通信协议。然后偶然在GitHub上发现了个用Netty实现的Redis服务器,很有趣,于是就动手实现了一下!1.RESP协议Redis的客户端与服务端采用一种叫做 RESP(REdis Serializatio...

2015-06-19 21:45:40

阅读数 10241

评论数 5

六星经典CSAPP-笔记(11)网络编程

六星经典CSAPP-笔记(11)网络编程参照《深入理解计算机系统》简单学习了下Unix/Linux的网络编程基础知识,进一步深入学习Linux网络编程和TCP/IP协议还得参考Stevens的书。1.网络基础(略过,待补充)2.IP地址2.1 IP地址的表示IP地址是一个无符号的32位整数。Lin...

2015-05-15 21:48:54

阅读数 3466

评论数 0

Java Socket编程(五)NIO

一、服务器端的处理模式 1.迭代服务器 服务器只有处理完了当前用户的请求后,才会处理下一请求,因此是 迭代式的,在同一线程内处理。 ServerSocket serverSocket = new ServerSocket(port); while(true) { ...

2012-08-06 21:13:22

阅读数 2993

评论数 0

Java Socket编程(四)Socket进阶

一、多播与广播 我们可以向每个接受者单播一个数据副本,但这样做效率可能非常低。 只有UDP套接字允许广播和多播,两者的区别是:广播会发送到网络上所有可达的 主机,有些操作系统可能不允许普通用户进行广播操作;而多播只发送给感兴趣的 主机。具体来说是调用MulticastSocket的...

2012-08-06 21:10:02

阅读数 2673

评论数 0

Java Socket编程(三)发送和接收深入

在Java中,我们可以有很多种方法来发送和接收数据。有的方法比较 靠近底层,有些问题就需要程序员自己去解决,而有些方法抽象层次 比较高,很方便地就可以拿来使用。这些处理数据的方法根据抽象层次 由低到高分别有: 1.手动编码:使用位运算逐个自己编码和解析。 2.利用流来自动...

2012-08-05 19:40:11

阅读数 2694

评论数 0

Java Socket编程(二)Socket基础

二、Socket基础 1.地址的获得 public static void main(String[] args) { try { Enumeration interfaces = NetworkInterface.getNetworkInterfaces(); w...

2012-08-04 21:51:00

阅读数 2829

评论数 0

Java Socket编程(一)TCP/IP简介

以下是对《Java TCP/IP Socket编程》中重要知识的摘录。 一、TCP/IP简介 TCP/IP协议族是互联网使用的协议,也可以用在独立的专用网络中。 TCP/IP协议族包括了IP协议、TCP协议和UDP协议。 IP协议使用IP地址来分发报文,但它是尽力而...

2012-08-04 21:44:21

阅读数 2164

评论数 0

提示
确定要删除当前文章?
取消 删除