3 波波烤鸭

尚未进行身份认证

暂无相关简介

等级
TA的排名 856

Netty编解码之ProtoBuf案例二

  前面我们介绍了Protobuf的基本使用,但是我们是一个POJO对象创建一个proto文件,那么在实际环境中将要创建多个文件,会非常的不方便,本文我们来看看怎么根据类型来动态处理Protobuf案例二proto文件  在proto文件中我们通过message来管理类型,具体如下syntax = "proto3";option optimize_for = SPEED; // 加快解析...

2020-01-01 20:42:02

Netty编解码方案之Protobuf介绍

  本文我们来给大家介绍下Netty中对传输数据编解码的解决方案ProtoBufProtobuf介绍1. Netty本身的编码解码的机制和问题分析Netty 自身提供了一些 codec(编解码器)Netty 提供的编码器StringEncoder,对字符串数据进行编码ObjectEncoder,对 Java 对象进行编码…Netty 提供的解码器StringDecoder, 对字...

2019-12-31 18:08:40

Netty案例介绍(websocket服务)

  本文我们来实现一个基于WebSocket协议的案例。WebSocket案例1.需求分析  Http协议是无状态的, 浏览器和服务器间的请求响应一次,下一次会重新创建连接.所有在有些情况下并不是太适用。这时websocket就是我们的一种实现方案,具体的websocket的内容网上很多,自行查阅哦,本文主要是介绍基于netty如何实现websocket通信。要求:实现基于webSoc...

2019-12-30 23:13:04

Netty案例介绍-群聊案例实现

  前面介绍了基于Netty的Http服务,本文我们来通过Netty来实现群聊案例。群聊案例1.案例需求编写一个 Netty 群聊系统,实现服务器端和客户端之间的数据简单通讯(非阻塞)实现多人群聊服务器端:可以监测用户上线,离线,并实现消息转发功能客户端:通过channel 可以无阻塞发送消息给其它所有用户,同时可以接受其它用户发送的消息(有服务器转发得到)目的:进一步理解Nett...

2019-12-29 15:29:57

Netty入门实例-Http服务

  本文我们继续来实现Netty的第二个入门案例,一个Http服务。Http服务1.需求Netty 服务器在 6668 端口监听浏览器发出请求 "http://localhost:6668/ "服务器可以回复消息给客户端 "Hello! 我是服务器 5 " , 并对特定请求资源进行过滤.2.创建服务端handler  在handler中我们对浏览器提交的Http请求做出处理p...

2019-12-28 17:03:26

Netty第一个入门实例-TCP服务

  本文我们来写第一个Netty的入门实例,一个TCP服务案例。Netty入门案例1. 案例需求创建Netty 服务器在 6668 端口监听创建Netty客户端,客户端能发送消息给服务器 “hello, 服务器~”服务器可以回复消息给客户端 “hello, 客户端~”目的:对Netty 线程模型 有一个初步认识, 便于理解Netty 模型理论2.创建maven项目  通过ecl...

2019-12-28 16:39:28

Netty高性能架构模型介绍

  上一篇我们介绍了Reactor模式,本文我们就来具体分析下Netty中的架构模型到底是怎么样的。Netty模型介绍1.工作原理-简单介绍  Netty 主要基于主从 Reactors 多线程模型(如图)做了一定的改进,其中主从 Reactor 多线程模型有多个 Reactor.流程描述:BossGroup 线程维护Selector , 只关注Accecpt当接收到Accept事...

2019-12-28 16:27:41

Netty高性能架构之Reactor模式

  在讨论Netty的架构模式之前,我们先来介绍下Reactor模式,因为Netty的架构模式是在此基础上演变而来的Reactor模式介绍1. 线程模型基本介绍  不同的线程模式,对程序的性能有很大影响,为了搞清Netty 线程模式,我们来系统的讲解下 各个线程模式, 最后看看Netty 线程模型有什么优越性.  目前存在的线程模型有: 传统阻塞 I/O 服务模型 Reactor 模式...

2019-12-28 15:37:47

Netty简单概述

  本文开始给大家介绍Netty相关的内容,本篇主要介绍的是Netty概念性相关的内容Netty概述1. 原生NIO存在的问题NIO 的类库和 API 繁杂,使用麻烦:需要熟练掌握 Selector、ServerSocketChannel、SocketChannel、ByteBuffer 等。需要具备其他的额外技能:要熟悉 Java 多线程编程,因为 NIO 编程涉及到 React...

2019-12-28 15:06:27

Netty之JavaNIO编程模型介绍02

  因为篇幅问题我们继续上一篇的内容继续。一、NIO网络编程原理分析  NIO 非阻塞 网络编程相关的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 关系梳理图对上图的说明:当客户端连接时,会通过ServerSocketChannel 得到 SocketChannelSelector 进行监听 select ...

2019-12-28 14:45:33

Netty之JavaNIO编程模型介绍01

  我们在前面的BIO的基础上我们来继续介绍下NIO的内容一、Java NIO 基本介绍  Java NIO 全称 java non-blocking IO,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的  NIO 相关类都被放在 java.nio 包及子包下,并且对原 java.i...

2019-12-28 11:53:47

Netty之JavaBIO编程模型介绍

  最近打算再次整理下Netty的相关内容,但是要把Netty弄的比较清楚,我们首先需要对Java中的BIO,NIO及AIO要比较清楚,所以我们前面会花几篇文章先把这块的内容整理出来。JavaBIO编程模型介绍1.I/O模型介绍1.1 什么是I/O模型  简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能。java共支持3种网络编程模型:BIONIO...

2019-12-28 10:52:20

Docker本地镜像推送阿里云教程

  本文我们来介绍下怎么将本地的镜像文件推送到阿里云中。1.镜像生成的方式  通过前面的介绍我们了解到镜像的生成访问有两种通过dockerfilebuild出一个新的镜像通过运行中的容器我们commit一个容器2.推送本地镜像到阿里云2.1 本地推送的镜像文件2.2 阿里云地址http://dev.aliyun/search.html2.3 创建仓库镜像提示操作命...

2019-12-28 00:52:10

Docker常用软件安装之Redis

  本文我们来介绍下在Docker中如何安装Redis。1.docker hub上搜索Redisdocker search redis2.下载镜像  从docker hub上下载4.0版本的Redisdocker pull redis:4.03.运行容器  镜像下载好后,我们就可以执行如下命令来运行了docker run -p 6379:6379 -v /root/myr...

2019-12-27 20:53:01

Docker常用软件安装之MYSQL

  本文我们来介绍下在docker中怎么安装mysql。1.在docker hub上查找mysqldocker search mysql2. 下载mysql镜像文件  此处我们下载5.6版本的mysqldocker pull mysql:5.63.构建容器  镜像下载好后我们可以直接运行启动mysql容器docker run -p 12345:3306 --name mys...

2019-12-27 19:30:36

Docker之Dockerfile案例演示

  上篇文章我们给大家介绍了Dockerfile中的常用指令,本文我们通过具体的案例来说明这些指令。1.Base镜像  Docker Hub中99%的镜像都是通过在base镜像中安装和配置需要的软件构建出来的,如下scratch相对于java中的Object2.自定义镜像mycentos  我们从官方pull下来的centos镜像是mini版的,所以不带有vim这些基础命令,那我们就来...

2019-12-27 02:11:19

Docker之DockerFile介绍

  本文我们来详细介绍下Docker中的DockerFile,1. DockerFile是什么  DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本。构建的三步骤1. 编写Dockerfile文件2. docker build3. docker run脚本文件的样式,以centos为例脚本文件内容FROM scratchADD centos-7...

2019-12-26 15:40:55

Docker之快速搞定容器数据卷

  前面我们介绍了镜像和容器,通过镜像我们可以启动多个容器,但是我们发现当我们的容器停止获取删除后,我们在容器中的应用的一些数据也丢失了,这时为了解决容器的数据持久化,我们需要通过容器数据卷来解决这个问题,本文我们就来介绍下容器数据卷。1.是什么  Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有...

2019-12-26 12:20:04

Docker入门简介

1.什么是Docker  Docker是基于Go语言实现的云开源项目。  Docker的主要目标是Build,Ship and Run Any App,Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境能够做到一次封装,到处运行。  Linux 容器技术的出现就解决了这样一个问题,而 Docker...

2019-12-25 22:21:52

Docker镜像超详细介绍

  本文我们详细给大家来介绍下Docker中的镜像.1. 镜像是什么?  首先我们来看看镜像到底是什么?虽然前面有介绍过镜像和容器,但也不是特别的深入。镜像是一种轻量级、可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件,它包含运行某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件。1.1 UnionFS  UnionFS(联合文件系统): Union文...

2019-12-25 21:58:31

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 技术圈认证(专家版)
    技术圈认证(专家版)
    博客专家完成年度认证,即可获得
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv4
    勤写标兵Lv4
    授予每个自然周发布9篇以上(包括9篇)原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。