标签: Netty

404 | 2021-11-11 | Java后端相关Netty

从操作系统层面分析Java IO演进之路

前言 本文从操作系统实际调用角度(以CentOS Linux release 7.5操作系统为示例),力求追根溯源看IO的每一步操作到底发生了什么。 关于如何查看系统调用,Linux可以使用 strace 来查看任何软件的系统调动(这是个很好的分析学习方法):strace -ff -o ./out java TestJava 一 BIO java / Alipay.com Inc. Copyright (c) 2004-2020 All Rights Reserved. / package io; import java.io. ; import java.net.ServerSocket; import java.net.Socket; / @author xiangyong.ding @version $Id: TestSocket.java, v 0.1 2020年08月02日 20:56 xiangyong.ding Exp $ / public class BIOSocket { public stati

 1524 |  4 |  0 Java后端相关

晚风 | 2021-11-11 | JavaDubbo后端相关ZookeeperNetty

面试官:自己动手从0开始实现一个分布式RPC框架

前言 为什么要自己写一个RPC框架,我觉得从个人成长上说,如果一个程序员能清楚的了解RPC框架所具备的要素,掌握RPC框架中涉及的服务注册发现、负载均衡、序列化协议、RPC通信协议、Socket通信、异步调用、熔断降级等技术,可以全方位的提升基本素质。虽然也有相关源码,但是只看源码容易眼高手低,动手写一个才是自己真正掌握这门技术的最优路径。 一 什么是RPC RPC(Remote Procedure Call)远程过程调用,简言之就是像调用本地方法一样调用远程服务。目前外界使用较多的有gRPC、Dubbo、Spring Cloud等。相信大家对RPC的概念都已经很熟悉了,这里不做过多介绍。 二 分布式RPC框架要素 一款分布式RPC框架离不开三个基本要素: 服务提供方 Serivce Provider 服务消费方 Servce Consumer 注册中心 Registery 围绕上面三个基本要素可以进一步扩展服务路由、负载均衡、服务熔断降级、序列化协议、通信协议等等。 ![e4bf9c2250d54097877e28bb2495c1ab](h

 1699 |  5 |  0 JavaDubbo

社区作者 | 2019-11-27 | Java后端相关Netty

《netty实战》

Netty是一款异步的事件驱动的网络应用程序框架,支持快速地开发可维护的高性能的面向协议的服务器和客户端。 一 异步和事件驱动 1.1 阻塞io(bio) 每个网络请求都需要独立的线程完成数据的读操作、业务处理、写操作。当并发量大时,需要创建大量线程来处理网络连接,系统资源占用大,连接建立后,如果没有数据需要读,则线程阻塞在读操作上,造成资源浪费。 1.2 非阻塞io(nio) i/o复用模型中,用到了selector,它也会阻塞,但是和阻塞i/o不同的是,selector会阻塞多个i/o的读写操作,直...

 3073 |  4 |  0 Java后端相关

社区作者 | 2019-11-12 | JavaNettyTomcat

web开发者不可不知的网络知识

一 概念 作为一名java EE开发者,我们最常用到的可能就是http协议了,但是我们对http协议及其之下的各层协议真的清楚嘛。现在我们就来大概的了解一下。 1.1 应用层-HTTP 1.2 传输层-TCP 1.3 网络层-IP 二 应用层-HTTP 一个http请求包含三个组成部分: 1. 方法-统一资源标识符(uri)-协议/版本 2. 请求的头部 3. 主体内容 以下是一个http请求的例子: js POST /test/index.jsp HTTP/1.1 Accept:text/plain, text/html Accept-Language:zh-CN,zh;q=0.8,en;q=0.6 Connection:keep-alive Host:localhost User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) Content-Length:27 Content-Type:application/x-www-form-urlencoded Accept-Encoding: gz

 770 |  1 |  0 JavaNetty

没有更多了