我是做java 的,最近公司要求用vue做一套管理系统,我学了一星期vue 就开始做了.最近由于疫情待在家,就撸了一个仿照微信的项目使用 vue ,springboot ,mysql,后台用netty 做消息处理,并且可以打包成apk 在手机上使用 下图是在手机上使用 (图中输入密码黑屏是因为我用小 ...
分类:
微信 时间:
2020-02-21 16:14:55
阅读次数:
838
在最近一段时间里,通过搜集有关资料加上自己的理解,设计了一款轻量级RPC,起了一个名字 lightWeightRPC 。它拥有一个RPC常见的基本功能。主要功能和特点如下: 利用Spring实现依赖注入与参数配置 利用Netty来实现客户端与服务端的远程通信 利用Hessian来实现序列化 设置Zo ...
分类:
其他好文 时间:
2020-02-20 00:13:39
阅读次数:
83
在上一个版本中利用netty实现了简单的一对一的RPC,需要手动设置服务地址,限制性较大。 在本文中,利用zookeeper作为服务注册中心,在服务端启动时将本地的服务信息注册到zookeeper中,当客户端发起远程服务调用时,先从zookeeper中获取该服务的地址,然后根据获得的这个地址来利用n ...
分类:
其他好文 时间:
2020-02-19 23:54:43
阅读次数:
114
在网络传输中,怎么确保通道连接的可用性是一个很重要的问题,简单的说,在网络通信中有客户端和服务端,一个负责发送请求,一个负责接收请求,在保证连接有效性的背景下,这两个物体扮演了什么角色,心跳机制能有效的保证连接的可用性,那它的机制是什么,下文中将会详细讲解。 网络层的可用性 首先讲一下TCP,在du ...
分类:
其他好文 时间:
2020-02-19 23:48:43
阅读次数:
72
在前两个版本中,每次发起请求一次就新建一个netty的channel连接,如果在高并发情况下就会造成资源的浪费,这时实现 异步请求 就十分重要,当有多个请求线程时,需要设计一个 线程池 来进行管理。除此之外,当前方法过于依赖注册中心,在高并发情况下对注册中心造成了压力;另外如果注册中心出现宕机等情况 ...
分类:
其他好文 时间:
2020-02-19 23:44:01
阅读次数:
58
1、ChannelOption.SO_BACKLOG ChannelOption.SO_BACKLOG对应的是tcp/ip协议listen函数中的backlog参数,函数listen(int socketfd,int backlog)用来初始化服务端可连接队列,服务端处理客户端连接请求是顺序处理的, ...
分类:
Web程序 时间:
2020-02-19 16:58:21
阅读次数:
186
pipeline 添加 handler 的时候,如果没有指定线程池,则使用 channel 的 IO 线程池,即 NioEventLoop。 所以,NioEventLoop 的作用是,轮询 SocketChannel 的网络事件,同时也可以处理 handler 中的代码。 public interf ...
分类:
编程语言 时间:
2020-02-18 18:04:46
阅读次数:
122
一、前言 前面博客大部分介绍了基于EMQ中间件,通信协议使用的是MQTT,而传输的数据为纯文本数据,采用JSON格式。这种方式,大部分一看就知道是熟悉Web开发、软件开发的人喜欢用的方式。由于我也是做web软件开发的,也是比较喜欢这种方式。阿里的物联网平台,也是推荐这种方式。但是,但是做惯硬件开发, ...
分类:
Web程序 时间:
2020-02-14 18:22:54
阅读次数:
89
JDK Byte Buffer的缺点:长度是固定的,不能动态扩容,API使用复杂,因此Netty封装了自己ByteBuf,Bytebuf有三个重要属性:Capacity容量、readerIndex读取位置和writerIndex写入位置,提供两个指针来支持顺序读写操作.同时三者满足如下关系:0<=r ...
分类:
Web程序 时间:
2020-02-14 18:05:42
阅读次数:
100
概述 Netty其实就是一个异步的、基于事件驱动的框架,其作用是用来开发高性能、高可靠的IO程序。 因此下面就让我们从Java的IO模型来逐步深入学习Netty。 IO模型 IO模型简单来说,就是采用如何的方式来进行数据的接受和发送,因为存在着发送方和接收方两个角色,因此IO模型一般分为以下3类: ...
分类:
Web程序 时间:
2020-02-13 09:46:06
阅读次数:
79