- 博客(17)
- 收藏
- 关注
原创 netty 5-1 用netty写一个可以用http请求的服务
代码如下serverpackage http;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.ChannelFuture;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.nio.NioServer...
2020-01-19 14:49:55 315
原创 netty 4-3 注册一个ChannelFuture
代码如下 在Server中加入下边的代码即可 ChannelFuture channelFuture = serverBootstrap.bind(6677).sync(); channelFuture.addListener(new ChannelFutureListener() { @Override ...
2020-01-19 13:25:35 135
原创 netty 4-2 定时任务
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { //比如这里我们有一个非常费时的操作。将其弄到NioEventLoop中的queue中就可以了// Thread.sleep(10*1000);// ctx.writeAndFlush(U...
2020-01-19 10:37:37 563
原创 netty 4-1 如果服务端需要长时间的处理。我们可以通过queue处理
只需要修改handler中的read方法 前两行注释的是第一种情况,这中会阻塞。代码中是会开启一个新的线程执行,taskQueue 中会有两条数据。这两个是在一个线程中的要顺序执行 一共三十秒 @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { ...
2020-01-19 10:18:43 197
原创 netty 4*写一个简单的客户端和服务端。 自己的handler
服务端代码如下package netty;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.socket.SocketChannel;import io.net...
2020-01-18 13:47:20 246
原创 netty ?-32 用NIO来实现简单的群聊系统
Client 代码如下package chat;import java.io.IOException;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java....
2020-01-15 18:04:17 400
原创 Queue 队列用数组实现 只用一次的
Queue 可以用数组,也可以用链表来实现我们会有两个指针,一个指针负责添加数据,一个指针负责减少数据注意:font 用来取数据,所以第二次取,要娶下一个package structure;public class QueDemo { public static void main(String[] args) { }}class Que{ private...
2020-01-14 23:16:27 276
原创 netty 20-30
主要是Selector 有几个方法这个就是类似一个监听器selector 方法,就是阻塞监听 channel上的变化 ,有变化的都返回 selectkeys有等确定事件的方法now 有立刻返回的方法利用NIO写一个Server 和 Client 的通讯package nio;import java.io.IOException;import java.net.InetSock...
2020-01-14 16:55:01 89
原创 netty 11-20 利用Buffer 和Channel 和ServerSocketChannel进行文件的复制,也就是读写,以及网络传输
用FileChanel 将字符串写入本地磁盘:package nio;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.OutputStream;import java.nio.ByteBuffer;import java.nio.channels.FileChann...
2020-01-13 23:26:37 263
原创 netty 1-10 主要是BIO 和 NIO 结构,及主要组成 区别
就是像装饰器模式一样,一层一层的增强。2,说的是netty 主要作用,基于事件的网络通信。
2020-01-10 22:51:25 127
原创 zookeeper 5 总结
数据存储DataTree ConcurrentHashMap事务日志快照日志运行时日志java apipackage code;import org.apache.zookeeper.*;import org.apache.zookeeper.data.Stat;import java.io.IOException;import java.util.concurrent....
2020-01-10 12:39:18 118
原创 zookeeper 3 总结 主要说的是如何实现业务方面的分布式事务。还有自身集群同步的方式,都是2pc
1,2 的回顾①集群(zoo.cfg,myid)②znode 节点的数据模型 、特性(有序,临时(断开消失,不能有子节点,不能重复在一个级别的)③节点的stat 一些参数的以一cZxidzookeeper的由来详细比如现在有分布式的一个协调机制1,我们用到zookeeper就要防止单点故障(使用集群) 集群特点:高可用,高性能。2,保持每台数据的一致性3,如果leader...
2020-01-09 13:54:46 225
原创 zookeeper 的 watcher 特性
当数据发生变化的时候。zookeeper会产生一个watcher的事件。并且会发送给客户端。但是只发一次。下次再发生改变的话。我们就收不到了。怎么对事件exists getData, getChildren如何触发这个事件呢:事务类型的操作都会触发:也就是增删改create delete setDatawatcher事件None(-1) 客户端的连接状态发生变化的时候。Nod...
2020-01-07 19:46:31 240
原创 zookeeper 前两节的总结 它能干什么,以及集群,和配置文件的记本说明
一,如果一个服务要调用另一个服务就需要存储另一台服务的一些信息,如果服务器过去的情况下,我们需要保存的配置过多。所以我们出现了一个管理的地方,地址的统一管理。二,如果要真的调用,我们要通过协议,传输序列化的对象。协议地址维护负载均衡服务上下限感知由于以上的三个需求。我们需要实现:那么就是zookeeper的作用了。也就是都是统一的管理。分布式协调服务:作用 最初其实是为了多个进...
2020-01-07 19:46:17 136
原创 稀疏数组的实现和恢复
package DataStructures;public class XishuArray { public static void main(String[] args) { int chess[][] = new int[11][11]; chess[1][2] = 1; chess[2][3] = 2; //其实就...
2020-01-06 22:46:01 169
原创 序列化和反序列化
一,序列化的意义传输过程中,我们要想使用对象,就要序列化java中的序列化存在的问题:序列化之后,数据比较大语言限制,不是跨平台的。JSON 跟java直接序列化差不多。比较流行的: protobufs,序列化时注意的问题如果有serId 必须要一样,不然报校验错误如果serid一样,两端的字段不一样多。没关系,能正常解析,但是没有值。静态变量不会参与序列化。t’ran...
2020-01-03 11:14:03 114
原创 分布式架构的中的协议:
网络领域的一些知识。a)协议:tcp,udp,multicast 广播协议b)IO:NIO,BIO,AIOc)Socket 套接字d)NIO 的框架,netty Mimae)序列化和反序列化如果是四层,怎么分配呢第一层,加tcp 程序都会有端口,为了寻址。第二层,加ip 家 就像是寄快递,我们会把,寄件人和收件人都传过去,ip也是两个都要。第三层 ,加mac 相当...
2020-01-02 17:26:40 214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人