yinghonghui
码龄11年
关注
提问 私信
  • 博客:27,085
    27,085
    总访问量
  • 26
    原创
  • 1,907,014
    排名
  • 0
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:香港
  • 加入CSDN时间: 2014-06-25
博客简介:

yinghonghui的博客

查看详细资料
个人成就
  • 获得2次点赞
  • 内容获得0次评论
  • 获得16次收藏
创作历程
  • 30篇
    2018年
成就勋章
TA的专栏
  • c++
    1篇
  • 汇编语言
    3篇
  • dubbo
    6篇
  • java
    9篇
  • 概念
  • mysql
    2篇
  • netty
    1篇
  • redis
    1篇
  • Spring
    1篇
  • nio
    1篇
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

java NIO

nio 在操作层次上原理:epoll的多路复用技术epoll的简单介绍:https://blog.csdn.net/wyz0516071128/article/details/81058898下面上java 的NIO 的实现。channel ,selector,buffer这三个是java NIO 关键点。1.创建一个ServerSocketChannel ,绑定监听地址2.创建Sel...
原创
发布博客 2018.10.18 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

dubbo 接口唯一性定位

1.group :当一个接口有多个是实现的时候,通过分组来让不同的consumer,调用各自需要的接口2.revision:版本号,更多的时候为了同一组的接口升级时候用,相对group来说粒度更小3.接口名字方法列表...
原创
发布博客 2018.10.15 ·
1902 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spring context refresh

1.prepareRefresh:Prepare this context for refreshing.初始化context的一些属性,状态2.beanfactory 的获取和属性的设置3.postProcessBeanFactory 让子类去处理beanFactory4.invokeBeanFactoryPostProcessors:Invoke factory processors ...
原创
发布博客 2018.10.14 ·
378 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

为什么说Redis是单线程的以及Redis为什么这么快!

https://yq.aliyun.com/articles/619831
转载
发布博客 2018.10.14 ·
179 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

分析jvm内存大致命令

ps -ef|grep javajps: 查询当前机器所有 JAVA 进程信息;jmap: 输出某个 java 进程内存情况 (如:产生那些对象及数量等);jstack: 打印某个 Java 线程的线程栈信息;jinfo: 用于查看 jvm 的配置参数。...
原创
发布博客 2018.10.14 ·
615 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

mysql 乐观锁和悲观锁

转载自:http://www.hollischuang.com/archives/934悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度(悲观),因此,在整个数据处理过程中,将数据处于锁定状态。 悲观锁的实现,往往依靠数据库提供的锁机制 (也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法...
转载
发布博客 2018.10.13 ·
127 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

redis

1.redis key-value ,2.支持string,list ,set,sored set ,hash 数据结构3.支持事务,操作的原子性4.丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除redis 提供 6种数据淘汰策略volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰volati...
原创
发布博客 2018.10.09 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

可达性能分析

jvm 内存划分:程序计数器,java 栈,本地方法栈,堆,方法区(方法区,放着类的信息)。java 虚拟机回收的内存块是堆内存,采用的是可达性分析来判断一个对象是否存活着。GC roots 一般由下面来充当:1.虚拟机栈(栈桢中的本地变量表)中的引用的对象2.方法区中的类静态属性引用的对象3.方法区中的常量引用的对象4.本地方法栈中JNI(Native方法)的引用的对象https...
转载
发布博客 2018.10.09 ·
121 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

hash冲突的其他解决方式

hash 冲突的解决方法:1.开放定址法:在冲突的时候,用再散列函数再次哈希,直到不再冲突为止2.链地址法3.再哈希法 这种方法构造多个不同的哈希函数:Hi=RH1(key) i=1,2,…,k不易产生聚集,但是增加了计算的时间。4.建立公共溢出区https://www.cnblogs.com/wuchaodzxx/p/7396599.html...
转载
发布博客 2018.10.09 ·
163 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

CAS ABA模式

CAS操作可能带来ABA问题,一个变量原本值是A。两个线程进行操作,线程1拿到A值,线程2,拿到A值,然后设置为B,然后再设置为A。这时候线程1,设置值,发现还是A,于是成功的设置值了。解决的方式在值上加版本号,1A,2B,3A 。jdk AtomicStampedReference 是解决这个问题的类。...
原创
发布博客 2018.10.09 ·
402 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java 线程生命周期

java 线程包含五个生命周期:新建,就绪,运行,阻塞,死亡。新建状态:线程创建之后就进入创建状态。就绪状态:当调用线程对象的start()方法(t.start();),线程即进入就绪状态。处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()此线程立即就会执行;运行状态(Running):当CPU开始调度处于就绪状态的线程时,此时线程才...
原创
发布博客 2018.10.04 ·
598 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

synchronized 原理

synchronized:JVM 是通过进入、退出对象监视器( Monitor )来实现对方法、同步块的同步的。编译的时候会在同步的对象插入monitor.enter 指令,在方法退出,或者异常的时候插入monitor.exit指令。任意线程对一个(synchronized修饰的)对象访问前,先访问Monitor,尝试获取对象的使用权限,如果成功获取,线程将进入同步列队;如果失败的话,线程将执...
原创
发布博客 2018.10.03 ·
134 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

reactor模式

1.初级的服务器:while(true){socket = accept();handle(socket)}对于请求只能一个个的来接受。2.第二级别的服务器while(true){socket = accept();new thread(socket);}这时候可以支持多个请求一起回答了,但是对资源的要求明显变高了,而且一点线程的粒度变得十分的大。一次服务端正常的相应,是这...
原创
发布博客 2018.10.03 ·
432 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

dubbo 四种均衡负载

1.ConsistentHashLoadBalance 运用hash算法ConsistentHashSelector 哈希算法类,在调用的时候,他会根据invokers生产对应一个hashkey,这个hashkey对应着存储着ConsistentHashSelector 。ConsistentHashSelector 再根据参数来分析对应的invoker。当服务有变化的时候,invoker...
原创
发布博客 2018.10.02 ·
284 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

数据索引自增

b-tree 数据结构索引:从这个数据接口上,细细咀嚼了一下索引自增。如果数据ID是自增的情况下,可以看上面图,数据的整合是很整齐的。前面两层对应的数据是满的。但是如果ID不是自增的情况,那就不是了。从而导致需要更多前两层的数据。优点:1.自增,趋势自增,可作为聚集索引,提升查询效率2.节省磁盘空间。500W数据,UUID占5.4G,自增ID占2.5G.3.查询,写入效率高:查询略优。写...
原创
发布博客 2018.10.02 ·
1153 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

缓存,数据库

前些时间看到一小段写缓存的东西。缓存redis,couchbase 这些已经成熟的缓存。我这里叙述一下自己的缓存架构的理解。数据库,数据的放在磁盘的,从而导致获取数据的速度变慢了。我们从电脑的硬件层级来理解,cpu,内存,磁盘。很自然的,我们如果想要获得更快的速度,采用的是将数据保存的内存中。这样的才操作速度,自然而然的变得很快了。1.我们可以假设我们创建了一个map的对象,key ----...
原创
发布博客 2018.10.02 ·
157 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java 线程池

参数:1.核心线程参数:corePoolSize2.最大线程数:maximumPoolSize3.keepAliveTime and unit 线程空闲的时候,存活时间。4.workQueue 用于存放任务的阻塞队列。5.handler 当队列和最大线程池都满了之后的饱和策略...
原创
发布博客 2018.09.30 ·
206 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java volatile解析

解析volatile之前需要先叙述一下cpu的内存机制。cpu 的操作数和操作指令是保存的内存中,在cpu计算的时候,先将数据复制一份在各自的高速缓存中。当设计到多核的cpu的时候,因为各自线程在各自cpu操作,那么同一个内存的变量就在不同的cpu里面有各自的一份缓存了。从而导致数据操作就有了缓存不一致的问题。常见的缓存一致性问题解决方案:1)通过在总线加LOCK#锁的方式2)通过缓存一...
原创
发布博客 2018.09.30 ·
162 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

dubbo ExchangeClient 发送消息过程

exchangeClient 发送数据到netty 过程1.ReferenceCountExchangeClient2.HeaderExchangeClient3.HeaderExchangeChannel4.NettyClient5.NettyChannel6.NioSocketChannel发送到netty之后,接下来是netty 的数据处理了,分两部分。1.序列化2.ha...
原创
发布博客 2018.09.30 ·
1038 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

dubbo 注册中心notify 过程

在注册中心subscribe的时候,将directory挂在注册中心上了。当发生notify的时候,根据URL分析找到对应的directory。1.ProtocolListenerWrapper listener 包装2.ProtocolFilterWrapper filter 包装3.DubboProtocol 形成真正调用Invoker3.1 根据地址形成ExchangeClient...
原创
发布博客 2018.09.29 ·
1453 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏
加载更多