随笔分类 -  互联网架构师公开课-白鹤翔

1 2 下一页

netty解决TCP的拆包和粘包的解决办法
摘要:TCP粘包、拆包问题 熟悉tcp编程的可能知道,无论是服务端还是客户端,当我们读取或者发送数据的时候,都需要考虑TCP底层的粘包个拆包机制。 tcp是一个“流”协议,所谓流就是没有界限的传输数据,在业务上,一个完整的包可能会被TCP分成多个包进行发送,也可能把多个小包封装成一个大的数据包发送出去,这 阅读全文

posted @ 2018-02-27 10:25 luzhouxiaoshuai 阅读(842) 评论(0) 推荐(0) 编辑

netty--helloword程序
摘要:1、使用netty需要使用到下面的java包 netty-all-5.0.0.Alpha2.jar 我们来看下面具体的代码 1. 创建一个ServerBootstrap实例 2. 创建一个EventLoopGroup来处理各种事件,如处理链接请求,发送接收数据等。 3. 定义本地InetSocket 阅读全文

posted @ 2018-02-09 15:18 luzhouxiaoshuai 阅读(258) 评论(0) 推荐(0) 编辑

redis高级命令4 持久化机制 、事务
摘要:redis的事务是支持很简单,基本没有啥用我们来看下面的列子 我们开启一个事务,在事务中执行了age 加1,set a4 ,还有对一个字符串进行加一,对字符串加1导致了事务失败,按道理incr age在事务操作中会失败,但是这里age的值已经加上了,所以redis的事务是不可靠的,当成了解 redi 阅读全文

posted @ 2017-11-05 16:07 luzhouxiaoshuai 阅读(174) 评论(0) 推荐(0) 编辑

redis高级命令3哨兵模式
摘要:redis的哨兵模式 现在我们在从服务器1.222上让该从服务器作为哨兵 首先将redis安装包文件下的sentinel.conf文件复制到/usr/local/redis/etc目录下 然后修改sentinel.conf文件 mymaster是名称可以顺便, 192.168.1.121是主服务器的 阅读全文

posted @ 2017-11-05 15:11 luzhouxiaoshuai 阅读(6604) 评论(0) 推荐(0) 编辑

redis高级命令2
摘要:主服务负责数据的写,从服务器负责客户端的高并发来读 创建主从复制 clone不能让上面的mac地址不能重复,IP地址也不能重复 122和123是从服务器,我们修改二者的配置文件 其中 192.168.1.121是主服务器的IP地址,6379是端口 这样启动三个服务器就可以了,主服务器用于写,从服务器 阅读全文

posted @ 2017-11-04 18:37 luzhouxiaoshuai 阅读(121) 评论(0) 推荐(0) 编辑

redis高级命令1
摘要:设置name的过期时间是20秒 redis默认是16个数据库,默认是将数据存储在第0个数据库中 因为默认是0,当你选择其他数据的时候,是没有值的 阅读全文

posted @ 2017-11-04 17:52 luzhouxiaoshuai 阅读(102) 评论(0) 推荐(0) 编辑

redis基础二----操作set数据类型
摘要:set集合是无序的,不能存在重复元素 bbb吃重复元素,是不能添加成功的 2 接下来分析zset,是有序的,你在添加的时候要指定元素的序列号 上面的 3 4 5 6 就是指定的元素的序列号 withscores就是将元素的序列号显示出来,按照序号的大小进行显示 阅读全文

posted @ 2017-11-04 16:57 luzhouxiaoshuai 阅读(156) 评论(0) 推荐(0) 编辑

redis基础二----操作List类型
摘要:1、lpush的使用方法 2、rpsuh的使用方法 3、删除元素 lrem中2值的是删除2个集合中的“b”元素 4、 通过上面的分析,redis中的list比较类型java的qunue队列 阅读全文

posted @ 2017-11-04 16:15 luzhouxiaoshuai 阅读(184) 评论(0) 推荐(0) 编辑

redis基础二----操作hash
摘要:上面usr就是hash的名字,usr这个hash中存储了key 为id、name和age的值 一个hash相当于一个数据对象,里面可以存储key为id name age的值 2、批量插入一个hash数据 阅读全文

posted @ 2017-11-04 16:09 luzhouxiaoshuai 阅读(174) 评论(0) 推荐(0) 编辑

redis基础一
摘要:2、修改redis.conf的配置文件有两个地方 a、将daemonize设置成true支持后台启动 b、将redis的数据库文件保存到 下面的目录 3、启动redis服务器 4、操作redis ,给redis添加数据,首先要进行redis的客户端才能操作redis,执行下面的命令,进行redis客 阅读全文

posted @ 2017-11-04 14:41 luzhouxiaoshuai 阅读(106) 评论(0) 推荐(0) 编辑

jvm基础知识—垃圾回收机制
摘要:1、首先类的实例化、static、父类构造函数执行顺序 我们来看下面的程序代码: 程序的运行结果是: main app run..I`m a static {} from class A..I`m a static {} from class B..top of A() a1=8 a2= a3=9g 阅读全文

posted @ 2017-10-26 14:37 luzhouxiaoshuai 阅读(284) 评论(0) 推荐(0) 编辑

jvm基础知识1
摘要:堆放实例对象,栈放实例对象的引用,方法区存储创建类的信息 上面堆和垃圾回收的关系,垃圾回收回收的是堆内存的数据,s0和s1区域, 例如现在我们要清除s0中的堆对象,将s0中正在运行的对象从s0区域移动到s1区域中,然后将s0中要被清除的堆对象清除,现在对象都存储在s1中,s0中为空,即下来要清除s1 阅读全文

posted @ 2017-10-26 11:43 luzhouxiaoshuai 阅读(266) 评论(0) 推荐(0) 编辑

java soket通信总结 bio nio aio的区别和总结
摘要:1 同步 指的是用户进程触发IO操作并等待或者轮询的去查看IO操作是否就绪 自己上街买衣服,自己亲自干这件事,别的事干不了。 2 异步 异步是指用户进程触发IO操作以后便开始做自己的事情,而当IO操作已经完成的时候会得到IO完成的通知(异步的特点就是通知) 告诉朋友自己合适衣服的尺寸,大小,颜色,让 阅读全文

posted @ 2017-10-24 14:26 luzhouxiaoshuai 阅读(327) 评论(0) 推荐(0) 编辑

java scoket aIO 通信
摘要:AsynchronousServerSocketChannel assc.accept(this, new ServerCompletionHandler()); 第一个参数是服务器的处理类,第二个参数当服务接受到客户端的连接之后,用来处理客户端的连接 这里accept并不是一直阻塞的,会继续向下面 阅读全文

posted @ 2017-10-24 14:14 luzhouxiaoshuai 阅读(284) 评论(0) 推荐(0) 编辑

java scoket Blocking 阻塞IO socket通信四
摘要:记住NIO在jdk1.7版本之前是同步非阻塞的,以前的inputsream是同步阻塞的,上面学习完成了Buffer现在我们来学习channel channel书双向的,以前阻塞的io的inputstream都是单向的 channel有四种连接状态 connect accept read write 阅读全文

posted @ 2017-10-13 16:57 luzhouxiaoshuai 阅读(241) 评论(0) 推荐(0) 编辑

java scoket Blocking 阻塞IO socket通信三
摘要:在NIO同步非阻塞的场景中和原来同步阻塞最大的却别就是引入了上面的Buffer对象,现在我们来学校上面的BUffer对象 我们来看看程序的代码: 程序的输出结果是: 使用flip复位:java.nio.HeapIntBuffer[pos=0 lim=3 cap=10]容量为: 10限制为: 3获取下 阅读全文

posted @ 2017-10-13 16:17 luzhouxiaoshuai 阅读(364) 评论(0) 推荐(0) 编辑

java scoket Blocking 阻塞IO socket通信二
摘要:在上面一节中,服务端收到客户端的连接之后,都是new一个新的线程来处理客户端发送的请求,每次new 一个线程比较耗费系统资源,如果100万个客户端,我们就要创建100万个线程,相当的 耗费系统的资源,服务器是没有办法支持这样多的客户端进行连接的 我们可以采用线程池的方式来实现:提高 阻塞模式:列如客 阅读全文

posted @ 2017-10-13 14:42 luzhouxiaoshuai 阅读(469) 评论(0) 推荐(0) 编辑

java scoket Blocking 阻塞IO socket通信一
摘要:客户端的代码: 我们来对上面的功能进行总结: 阅读全文

posted @ 2017-10-13 14:36 luzhouxiaoshuai 阅读(177) 评论(0) 推荐(0) 编辑

disruptor架构四 多生产者多消费者执行
摘要:1、首先介绍下那个时候使用RingBuffer,那个时候使用disruptor ringBuffer比较适合场景比较简单的业务,disruptor比较适合场景较为复杂的业务,很多复杂的结果必须使用disruptor 我们来看看多消费者多生产者的情况 程序运行的效果是: 当前消费者: c1,消费信息: 阅读全文

posted @ 2017-10-13 14:04 luzhouxiaoshuai 阅读(2828) 评论(0) 推荐(0) 编辑

disruptor架构三 使用场景更加复杂的场景
摘要:先c1和c2并行消费生产者产生的数据,然后c3再消费该数据 我们来使用代码实现:我们可以使用Disruptor实例来实现,也可以不用产生Disruptor实例,直接调用RingBuffer的api来实现,不清楚看上一节使用的api函数workpool和BatchEventProcess来辅助实现消费 阅读全文

posted @ 2017-10-13 11:45 luzhouxiaoshuai 阅读(880) 评论(0) 推荐(0) 编辑

1 2 下一页

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

统计

点击右上角即可分享
微信分享提示