自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 zookeeper的初步认识

1.zookeeper的初步认识它是一个可靠的分布式协调服务,主要用来解决分布式一致性问题,同时也是一种粗粒度的分布式锁服务。1.1 分布式一致性问题在一个分布式系统中,有多个节点,每个节点都会提出一个请求,所有节点只能确定一个请求被通过,这个通过需要所有节点达成一致的结果。所谓的一致性是所有的请求中能够选出一个最终确定的请求。由于网络存在不可靠的问题,存在消息丢失,或者网络延迟,如何在这...

2019-11-24 19:58:23 129

原创 Springboot之自动装配

1.创建一个springboot项目1.依赖包pom.xml<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> &...

2019-11-23 20:32:00 77

原创 基于netty实现简洁版RPC

1.服务提供者package com.netty.provider;import com.netty.api.IRpcService;/** * Created by chenli on 2019/11/13. */public class IRpcServiceImpl implements IRpcService { @Override public int a...

2019-11-14 21:32:13 150

原创 基于netty实现的迷你版TOMCat

1.首先有一个tomcat类用来管理网络请求和servlet映射package com.tomcatmini;import io.netty.bootstrap.ServerBootstrap;import io.netty.channel.*;import io.netty.channel.nio.NioEventLoopGroup;import io.netty.channel.s...

2019-11-13 21:57:45 288

原创 java的发展历程

1.java中的BIO,NIO,AIO1.1BIO和NIO对比BIO模型IO模型BIO通信面向流处理阻塞IO(多线程)触发无NIOIO模型NIO通信面向缓冲(高速公路,多路复用技术)处理非阻塞IO(反应堆 Reactor)触发选择器(轮询机制)对比。1.1 面向流和面向缓冲java ...

2019-11-11 00:16:11 139

原创 迷你版手写RPC

1.什么是RPC?个人理解:RPC是远程服务通信。需要通过计算机网络来传输数据。2.api提供1.定义一个远程调用的接口IHellowServicepackage com.rpc.api;/** * Created by chenli on 2019/11/10. */public interface IHellowService { public String sayH...

2019-11-10 23:06:02 61

原创 tcp协议的三次握手和四次挥手

TCP握手协议TCP的可靠消息首先要建立一个有效的连接,在数据传输前,需要三次握手来建立一个连接。所谓的三次握手就是在建立TCP连接时,需要客户端和赴服务端总共发送3次数据包来确认建立连接。在socket编程中,这个过程由客户端发起第一次握手,由客户端发送一个TCP的SYN标志位置1的包,指明客 户端打算连接的服 务器的端口,以及 初始序号 X , 保存 在包头的序列号 (Sequence ...

2019-11-10 18:20:28 98

原创 分布式架构初步认识之笔记

1.架构的分类架构一般可以分为技术架构,应用架构,业务架构:1.业务架构从概念层帮助开发人员更好的理解系统。2. 应用架构从逻辑层面帮助开发落地系统,如数据交互关系、应用形式、交互方式,是的整 个系统逻辑上更容易理解,步入大家熟知的SOA就属于应用架构的范畴 。3.技术架构主要解决技术平台选型、如操作系统、中间件、设备、多机房、水平扩展、高可 用等问题。2.大型架构的网站演进2.1 电...

2019-11-10 17:40:29 163

原创 序列化和反序列化之学习笔记

1.java领域的对象传输1.基于socket对象传输1.传输对象package com.study.serializable;/** * Created by chenli on 2019/11/9. */public class User { private String name; private int age; public String get...

2019-11-09 21:06:01 129

原创 线程池实现原理之学习笔记

1. 什么是线程池在java中,如果每一个请求都来创建一个线程的话,创建和销毁线程花费的时间和消耗的系统资源比较大。

2019-11-06 23:44:55 115

原创 ConcurrentHashMap如何实现扩容机制之学习笔记

1 addCount transfer扩容首先判断是否需要扩容,也就是当更新后的键值对总数baseCount>=阀值(sizeCtl)时,则重新进行hash;扩容进行两个阶段:1.有一个线程正在扩容,另一个线程进来协助扩容;2.如果当前没有扩容,直接触发扩容操作;private final void addCount(long x, int check) {...if (chec...

2019-11-02 00:02:20 3761 4

原创 ConcurrentHashMap是如何保证线程安全?

1.ConcurrentHashMap简介ConcurrentHashMap是一个Map集合,数据结构是由数据和链表组成;在jdk1.7中使用了分段锁实现线程安全,不过segment锁的粒度大。在java1.8中做了优化,锁的粒度更小了,只在多线程环境下在相同位置添加值时,需要获取锁;还在扩容上做了优化。...

2019-11-01 00:36:51 3332

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除