微信搜索[阿丸笔记],关注Java/MySQL/中间件各系列原创实战笔记,干货满满. 2021年了,终于开始系统性总结Netty相关的东西了. 这会是Netty系列的第一篇,我想先聊聊 "为什么要学习Netty". 绕不开的编程框架 Java进阶之梯 面试"绝招" 一个小小的心结 1.绕不开的框架 说到Netty,相信所有做Java后端开发的同学都应该听说过.这是一个再经典不过.且仍然被广泛使用的网络编程框架.就我接触过并看过源码的开源项目,可以说基本上都是使用Ne…
先放上链接吧,项目已经开始2周了:https://github.com/hellozhangran/happy-egg-server 想法 现在是2019年11月24日,还有人要开始学习Node.js吗? Node.js大概从2014年开始火热,现在搜一下学习教程,很多开源教程都是3~5年前写下的.再详细搜一下express.mongodb相关文章,时间点大部分也是2017,大量的Node.js开源项目也已经停更了.当年大家都在讨论Node.js为何这么火,而此刻我发现大家开始讨论为何Node.…
外国人专门写了一篇文章,来分析为什么go在中国如此火: <Why is Golang popular in China?> http://herman.asia/why-is-go-popular-in-china 下面是知乎的回复: 作者:匿名用户 链接:https://www.zhihu.com/question/30172794/answer/47122000 1 一些真正使用go语言的公司: 这些公司在高速发展的同时,Golang也因此在国内逐渐传播开来.在云计算时代,从国内Go 语言…
前言 上一篇文章,我们对 Netty做了一个基本的概述,知道什么是Netty以及Netty的简单应用. Netty 源码分析系列(一)Netty 概述 本篇文章我们就来说说Netty的架构设计,解密高并发之道.学习一个框架之前,我们首先要弄懂它的设计原理,然后再进行深层次的分析. 接下来我们从三个方面来分析 Netty 的架构设计. Selector 模型 Java NIO 是基于 Selector 模型来实现非阻塞的 I/O.Netty 底层是基于 Java NIO 实现的,因此也使用了 Se…
前言 在之前的 SpringBoot 整合长连接心跳机制 一文中认识了 Netty. 但其实只是能用,为什么要用 Netty?它有哪些优势?这些其实都不清楚. 本文就来从历史源头说道说道. 传统 IO 在 Netty 以及 NIO 出现之前,我们写 IO 应用其实用的都是用 java.io.* 下所提供的包. 比如下面的伪代码: ServeSocket serverSocket = new ServeSocket(8080); Socket socket = serverSocket.accep…
ES transport client底层是netty实现,netty本质上是异步方式,但是netty自身可以使用sync或者await(future超时机制)来实现类似同步调用! 因此,ES transport client可以同步调用也可以异步(不过底层的socket必然是异步实现). 发送端例子 对于java client的数据发送(这里以bulk为例),写过的人都知道,其实是很简单的,因为大部分事情都已经被client做掉了,那么我们先给出例子感知一下: client初始化 Settin…
Reactor模式 Reactor是1995年由道格拉斯提出的一种高性能网络编程模式.由于好多年了,当时的一些概念与现在略有不同,reactor模式在网络编程中是非常重要的,可以说是NIO框架的典型模式,一些经典的框架,比如Mina.Netty.Cindy都是此模式的实现. 我们来看看当年提出的通用模型: 上面的图形中: 1.Handle 可以理解为资源或者文件句柄,放在netty里面就是channel,就是我们实际要处理的东西 2.Event Handler和Concrete Event Ha…
前言 上篇博文(netty实现消息中心(一)思路整理 )大概说了下netty websocket消息中心的设计思路,这篇文章主要说说简化版的netty聊天室代码实现,支持群聊和点对点聊天. 此demo主要说明netty实现消息推送的基本使用方法,如果需要扩充其它功能,可以基于此脚手架扩展. 完整项目代码地址:netty聊天室github源码 介绍 1.登录页面 2.聊天页面 核心代码: 启动netty服务,监听端口 private static void startNettyMsgServer(…
目前微信公众号的编辑器是不支持Markdown语法的,那怎么办呢? 有一款叫Markdown Here的插件可以解决这个问题(支持Chrome.Firefox.Safari). 官方网站:http://markdown-here.com/ Markdown here插件下载地址(需FQ) Markdown Here 的用法非常简单,直接在编辑器中用Markdown语法写完文章或粘贴进去写好的文章,然后鼠标右键选择「Markdown转换」,或者点击 Markdown Here 插件图标转换.(键盘…
目前大部分的博客作者在用Word写博客这件事情上都会遇到以下3个痛点: 1.所有博客平台关闭了文档发布接口,用户无法使用Word,Windows Live Writer等工具来发布博客.使用Word写博客需要在第三方博客平台注册帐号,且需要第三方博客平台提供API接口.目前的有的博客平台均已关闭博客接口,所以无法使用Word来发布博客. 2.发布到博客或公众号平台的图片无法转载.由于所有博客平台,公众号平台(如微信)开启了图片防盗链功能,作者发布到这些平台上的图片则无法转载到其它的网站中,这限制…