- 博客(14)
- 收藏
- 关注
原创 I/O 多路复用底层原理前篇 - 五种IO模型
现代计算机服务器操作系统大部分都是基于linxu实现,为处理高并发而采取NIO的模型,对于支持异步IO模型的系统持有不确定因素。详见BIO 、NIO 、AIO 总结同步与异步的定义同步:发起一个fn的调用,需要等待调用结果返回,该调用结果要么是期望的结果要么是异常抛出的结果,可以说是原子性操作(要么成功要么失败返回)异步: 发起一个fn调用,无需等待结果就直接返回,只有当被调用者执行处理程序之后通过“唤醒”手段通知调用方获取结果(唤醒的方式有回调,事件通知等)小结: 同步和异步关注的是程序之间的通信。...
2022-08-25 19:04:40 179
原创 nacos 知识点总结
目录nacos的高可用是如何做的?1、全局高可用2、同城容灾3、数据多级容灾nacos的一致性是如何保证的?注册中心配置管理 SDK与server端的一致性 Server之间的一致性nacos的健康检查机制是什么?注册中心的健康检查机制nacos的健康检查机制临时实例永久实例: 主动探活集群模式下的健康检查机制nacos注册中心的设计原理是什么?Nacos 部署架构上是单 Region 封闭,Region 间独立,跨 Region 通过网关或者 Nacos-sync 完 成服务互
2022-07-14 15:23:23 1196
原创 如何理解BIO NIO AIO?
很多文章在谈论到BIO、NIO、AIO的时候仅仅是抛出一堆定义,以及一些生动的例子。看似很好理解。但是并没有将最基础的本质原理显现出来,如果没有没有从IO的原理出发的话是很难理解这三者之间的区别的。所以本篇文章从Java是如何进行IO操作为开头进行分析。
2022-03-31 15:09:40 126
原创 有了 HTTP 协议,为什么还要 RPC 协议,两者有什么区别?
本文简单地介绍一下两种形式的 C/S 架构,先说一下他们最本质的区别,就是 RPC 主要是基于 TCP/IP 协议的,而 HTTP 服务主要是基于 HTTP 协议的。我们都知道 HTTP 协议是在传输层协议 TCP 之上的,所以效率来看的话,RPC 当然是要更胜一筹啦!下面来具体说一说 RPC 服务和 HTTP 服务。
2022-02-17 16:03:33 337
原创 Kafka高吞吐的原因
1、 kafka基于顺序写入磁盘的方式2、多个patition3、批量处理消息4、批量消息可以通过压缩,减少消息体积,KAFKA支持Gzip和Snappy压缩协议。5、零拷贝正常流程:磁盘文件 --> 拷贝到内核空间 --> 拷贝到用户空间 --> 拷贝到内核空间 --> 拷贝到网卡零拷贝:通过mmap代替read,减少一次拷贝。磁盘文件 --> 拷贝到内核空间 --> 拷贝到内核空间 --> 拷贝到网卡
2022-02-13 12:35:32 866
原创 使用SpringBootCondition更自由地定义条件化配置
Spring提供了多种实现化条件化配置的选择,最基本的就是@Conditional,在@Conditional基础上又衍生出来很多,如ConditionalOnProperty和ConditionalOnClass等。@ConditionalOnBean(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)@ConditionalOnClass(某个class位于类路径上,才会实例化一个Bean)@ConditionalOnExpression(当表达式为true的时候,才会实例化一个Bea
2022-01-20 11:33:14 266
原创 idea 打不开的问题
找到mac目录下/Users/mac/Library/Application Support/ 下的JetBrains,直接删除就能重新安装新的idea了
2021-09-28 10:47:14 98
原创 一分钟了解分布式锁
最近在拆微服务的过程中遇到了自己刚入职公司时写的一段代码需求:就是用户领取优惠券问题一个用户课堂下,可以创建N个课程,用户可以基于课程创建优惠券(可以针对一节课创建多个优惠券),优惠券创建时会指定一定的数量,然后用户可以领取该优惠券,但是每个用户只能领取最多一张该优惠券拿到这个需求要做技术设计的时候,我们很容易的想到以下几个关键点:优惠券的数量是一定的,不能超额发放 用户有且只能领取一张这个时候作为一名职业的码农,我们能很快的想到一个关键的问题就是,高并发的情况下去领取优惠券,如何能保证
2021-03-17 10:45:00 231
原创 @Configuration @ConfigurationProperties @EnableConfigurationProperties
@Configuration这个注解的主要作用是把使用该注解的类当做Bean来使用,用于配置Spring容器。 @ConfigurationProperties(prefix="xxxx") 用来获取相同父标签的元素的值。具体使用案例见下文。 **@EnableConfigurationProperties(xxx.class)**将配置好的类进行使用,在内填入参数类。具体案例:my:servers: - dev.example.com - another.example.com复制代码
2020-09-10 09:48:35 197
原创 (二) redis API理解和使用
redis API理解和使用1、全局变量2、数据结构和内部编码2.1、字符串2.2、哈希2.3、列表2.4、集合2.5、有序集合告诉大家一个联系redis的网站http://try.redis.io1、全局变量redis有五种数据结构,他们是键值对中的值,对于key来说有一些通用的命令。keys *:获取redis的所有键,强烈不推荐使用在实战中。O(n)dbsize:键的...
2019-10-19 15:44:06 235
原创 (一)初始redis
第一章:初始redisredis的特点1、 速度快2、基于键值对的数据结构服务器3、丰富的功能4、简单稳定5、客户端语言多6、持久化(RDB和AOF)7、主从复制8、高可用和分布式redis可以做什么?redis不可以做什么?redis的特点1、 速度快redis的所有数据都存放在内存中redis是用C语言实现的,距离操作系统更近,速度更快redis使用单线程框架,没有多线程资源竞争的问...
2019-10-19 13:41:27 175
转载 Maven常用命令
Maven常用命令:Maven库:http://repo2.maven.org/maven2/Maven依赖查询:http://mvnrepository.com/一,Maven常用命令:1. 创建Maven的普通Java项目:mvn archetype:create -DgroupId=packageName -DartifactId=projectName2. 创建Maven的...
2018-04-11 11:14:26 181
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人