4 shuangyueliao

已隐藏 java工程师

暂无相关简介

等级
TA的排名 1w+

玩转分布式

elasticsearch搜索流程client发送请求到任意一个node,这node成为协调节点协调节点将搜索请求转发所有的shard对应的primaryshard或replicashard每个shard将自己搜索结果的docid返回给协调节点,由协调节点进行数据的合并、排序、分页等操作,产出最终结果最后由协调节点根据docid,去各个节点拉取实际的document数据,返回给...

2019-11-09 20:42:13

Java代理(jdk静态代理、动态代理和cglib动态代理)

jdk静态代理publicinterfaceAddService{Integeradd(inta,intb);}publicclassAddServiceImplimplementsAddService{@OverridepublicIntegeradd(inta,intb){returnab;...

2019-11-07 23:01:41

基于netty手写RPC框架

代码目录结构rpc-common存放公共类rpc-interface为rpc调用方需要调用的接口rpc-register提供服务的注册与发现rpc-client为rpc调用方底层实现rpc-server为rpc被调用方底层实现rpc-sample-client就是使用自实现的rpc框架调用rpc-sample-serverrpc-sample-server就是rpc框架的被调用方...

2019-11-06 10:13:41

IO模型

在java中,主要有三种IO模型,分别是阻塞IO(BIO)、非阻塞IO(NIO)、异步IO(AIO)而实际的操作系统层面的IO模型,如在Linux(UNIX)操作系统中,共有5种IO模型,分别是:阻塞IO模型、非阻塞IO模型、IO复用模型、信号驱动IO模型、异步IO模型。select、poll、epoll都是IO多路利用的机制。select和poll实现需要自己不断轮询所有fd(...

2019-06-11 23:00:29

一、单例模式

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处:1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。2、省去了new操作符,降低了系统内存的使用频率,减轻GC压力。3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了...

2018-07-21 20:29:01

java源码解析

String深入解析String具有不变性的原因:String被final修饰,它不可能被继承,也就是任何对String的操作方法,都不会被继承覆写String中保存数据的是一个char数组的value,它被final修饰,它的内存地址一旦赋值无法修改publicfinalclassStringimplementsjava.io.Serializable,Compa...

2019-10-24 21:05:35

redis实现网关限流(限制API调用次数1000次/分)

添加maven依赖,使用springboot2.x版本<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifact...

2019-09-26 23:40:00

Logback配置文件这么写,TPS提高10倍

通过阅读本篇文章将了解到 日志输出到文件并根据LEVEL级别将日志分类保存到不同文件 通过异步输出日志减少磁盘IO提高性能 异步输出日志的原理 配置文件logback-spring.xmlSpringBoot工程自带logback和slf4j的依赖,所以重点放在编写配置文件上,需要引入什么依赖,日志依赖冲突统统都不需要我们管了。logback框架会默认加载cl...

2019-09-25 21:16:07

tcp居然会数据延迟40ms被发送

tcpdump是很好的tcp分析工具,在此配合nc命令来学习tcpdumpnc-l8000tcpdump-S-n-ilotcpandhost127.0.0.1andport8000nclocalhost8000第一步是启动8000端口第二步是启动抓包程序第三步是建立一次握手连接,ctrlc是退出客户端,能看到四次挥手红色区域是三次握手,蓝色区域...

2019-09-23 21:49:12

mybatis/mybatisPlus Update操作返回值不是影响行数

int的返回值类型Mybatis进行update操作得到的int返回值并不是影响的行数.如图,这里面所写的2rowinset指的是记录的匹配条数,而不是操作影响的记录数.如何设置update返回为受影响条数通过对JDBCURL显式的指定useAffectedRows选项(通常就在jdbcurl配置的最后加上下面这段就OK了)jdbc:mysql://${jd...

2019-09-19 14:53:07

nginx与keepalived实现nginx的高可用配置

keepalived的MASTER节点配置如下(默认配置文件:/etc/keepalived/keepalived.conf)vrrp_scriptchk_nginx{script"/etc/keepalived/nginx_check.sh"#运行脚本,脚本内容下面有,就是起到一个nginx宕机以后,自动开启服务interval2#检测时间间隔wei...

2019-09-11 22:49:13

mybatis plus使用redis作为二级缓存

建议缓存放到service层,你可以自定义自己的BaseServiceImpl重写注解父类方法,继承自己的实现。为了方便,这里我们将缓存放到mapper层。mybatis-plus整合redis作为二级缓存与mybatis整合redis略有不同。1.mybatis-plus开启二级缓存mybatis-plus.configuration.cache-enabled=true2.定...

2019-09-11 10:01:01

使用四种框架分别实现百万websocket常连接的服务器

事实上,最近我又增加了几个框架,现在包括Netty,Undertow,Jetty,Spray,Vert.x,Grizzly和Node.js七种框架。测试数据可以看下一篇文章:七种WebSocket框架的性能比较著名的C10K问题提出的时候,正是2001年。这篇文章可以说是高性能服务器开发的一个标志性文档,它讨论的就是单机为1万个连接提供服务这个问题,当时因...

2019-08-29 23:54:20

netty无缝切换rabbitmq、activemq、rocketmq实现聊天室单聊、群聊功能

netty的pipeline处理链上的handler:需要IdleStateHandler心跳检测channel是否有效,以及处理登录认证的UserAuthHandler和消息处理MessageHandlerprotectedvoidinitChannel(SocketChannelch)throwsException{ ch.pipeline().addLast(defLoo...

2019-08-28 23:15:31

Netty 实现 WebSocket 聊天功能简易版demo

上一次我们用Netty快速实现了一个Java聊天程序(见http://www.waylau.com/netty-chat/)。现在,我们要做下修改,加入WebSocket的支持,使它可以在浏览器里进行文本聊天。准备JDK7+ Maven3.2.x Netty4.x Eclipse4.xWebSocketWebSocket通过“Upgradehandsha...

2019-08-10 14:01:37

Netty 实现聊天功能简易版demo

Netty是一个JavaNIO客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty大大简化了网络程序的开发过程比如TCP和UDP的socket服务的开发。更多关于Netty的知识,可以参阅《Netty4.x用户指南》(https://github.com/waylau/netty-4-user-guide)下面,就基于Ne...

2019-08-10 13:59:06

netty使用EmbeddedChannel对channel的出入站进行单元测试

netty使用EmbeddedChannel对channel的出入站进行单元测试

2019-08-02 01:21:37

从零开始带你成为JVM实战高手笔记

jvm启动参数时强烈建议加入如下的一些参数:-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/usr/local/app/oom加入了这两个参数,在jvmOOM崩溃时,你能够去找到OOM时的内存快照jvm参数的标准模板如下:“-Xms4096M-Xmx4096M-Xmn3072M-Xss1M-XX:Metasp...

2019-08-01 15:47:50

51CTO博客碰上灾难性bug

一时心血来潮想在51CTO博客上同步一篇技术博客https://blog.csdn.net/shuangyueliao/article/details/96433939结果测出了重大bug。在51CTO写技术博客,本人是切换到富文本编辑器上写的,写完提交发现写的博客怎么内容少了一半,一开始以为是自己电脑哪里不对劲。内容丢了一半,进入草稿箱也是如此内容丢了一半。仔细一看丢的内容是OO...

2019-08-01 00:50:19

netty填坑----论填坑,我是专业的

1、为什么netty服务端启动后又无异常地自动退出?由于代码1处执行完后直接进入2、3,那么netty服务端就会关闭退出。解决一、直接在代码1后面处加上同步阻塞sync,那么只有服务端正常关闭channel时才会执行下面的语句解决二、把代码2和3移到operationComplete里面,那么也只有channel关闭时才会让netty的两个线程组关闭2、netty客户端连...

2019-07-28 16:49:24

查看更多

勋章 我的勋章
  • 领英
    领英
    绑定领英第三方账户获取
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。