自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 记录少时诵诗书

select==>时间复杂度O(n) 32位机最大监听端口1024,64位是2048.它仅仅知道了,有I/O事件发生了,却并不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有流,找出能读出数据,或者写入数据的流,对他们进行操作。所以select具有O(n)的无差别轮询复杂度,同时处理的流越多,无差别轮询时间就越长。假设1000个fd,进程统一把1000个fd传select,内核监控这些,发现哪些fd准备好,则返回fd。然后进程拿准备好的fd再调用read。即多路复用,选择.

2021-11-22 16:49:36 504

原创 mysql

MySQL :: MySQL 8.0 Reference Manual :: 14.5 INFORMATION_SCHEMA and Data Dictionary Integrationmysql - Select from information_schema tables very slow - Stack Overflow

2021-10-27 16:15:53 106

原创 kafka server

group coordinator简单来说就是,GroupCoordinator 是负责进行 consumer 的 group 成员与 offset 管理group 如何选择相应的 GroupCoordinator要说这个,就必须介绍一下这个__consumer_offsetstopic 了,它是 Kafka 内部使用的一个 topic,专门用来存储 group 消费的情况,...

2019-07-08 19:21:57 167

翻译 kafka reliable data delivery

kafka保证partition级别的消息有序kafka支持acks(0,1,all)三种级别只要有一个replicas存活,已经committed的message就不会丢失。consumer只能消费已经committed的message。可靠的系统是需要用高吞吐,低延迟和硬件花费来交换的。replication每一个kafka topic都会被分区到partitions级...

2019-04-01 16:06:52 184

翻译 kafka internals

cluster membershipkafka使用zookeeper上的ephemeral node(短暂的节点,每有一个broker会创建一个node)来管理kafka cluster现有的brokers成员列表,通过brokerId来区分,当一个broker短暂的与zookeeper失联,zookeeper会将它移除出列表,但每个topic的replicas列表中仍会保留brokerId,...

2019-03-29 15:41:54 182

原创 kafka consumer

consumer group当一个consumer group的多个consumer订阅了一个topic,则每个consumer会接收属于这个topic的partitions的不同子集,这些所有子集不相交且合集为所有的partitions。若consumer的数量超过partition的数量,则会有consumer空闲。当负载增加时,大数量的partition便允许增加更多的consumer来...

2019-01-10 15:59:54 353

原创 kafka producer

producer发送消息的过程producerRecord先指定想要写入的topic,或者指定一个key或者partition(若没有指定partition,会根据key来自动选择partition),当发送这个record,producer会先serialize这个record为一个byteArrays.当知道要写入哪一个topic的哪一个partition后,这个record会被加入属...

2019-01-08 14:27:01 170

原创 k8s configMap

Changing the main process of a container Passing command-line options to the app Setting environment variables exposed to the app Configuring apps through ConfigMaps Passing sensitive information ...

2018-11-26 10:52:11 673

原创 k8s volume

Creating multi-container podspod里面的每一个container都有他自己的filesystem,都是isolated。因为filesystem都来自于container的image。每次image有新的file在build time加进来,container都会重启,container重启还有可能是因为process died或者liveness probe...

2018-11-16 15:59:18 358

原创 jucccccccccccccc

When you’re unable to access your pods through the service, you should start by going through the following list:First, make sure you’re connecting to the service’s cluster IP from within the clu...

2018-11-15 17:09:10 488

原创 k8s services

services提供一个入口,通过一个ip和port能够访问到一个service后面的一组pods(提供同一个service),且能负载均衡。这样pods可以随时变换,而不需要随时更改ip和port。  service是通过同样的label来分组pods的,创建好RC后变可以通过kubectl expose来创建相对应的servcie Using kubectl exe...

2018-11-15 17:08:22 220

原创 k8sRC&replicaSet

liveness-probe:通常是定时发送一个httpGet请求,最好是代码里面有healthCheck,能检查所有关键模块是否健康。 RC:通过label管理pods,发现少了会通过pod template去创建新的pod Changing a ReplicationController’s pod template only affects pods created af...

2018-11-15 11:31:35 201

原创 k8s pods

应该把pods视为一个分离的机器,并在上面只运行一个app,kubernetes不能水平扩展单个container,但它能扩展整个pods,所以如果在单个pods上运行前端和后端两个app,扩展到两个pod之后,会有两个前端和后端程序在跑,但一般情况下前端和后端对扩展的要求是不一样的,所以前端和后端程序也是分别放在单个的pod上的。 那又是什么时候需要在单个pod上部署多个containe...

2018-11-09 15:42:26 672

原创 k8s知识点

docker创建image是在docker daemon创建的,docker client和daemon可以不在同一个机器上,mac 或者windows的daemon运行在vm上image的组成如图,每一层叫一个layer, container中运行的processes有不同的IDs,container有他自己的PID LINUX namespace,有着完全分离的process ...

2018-11-08 16:57:29 182

原创 k8s简介

k8s可以把整个datacenter作为一个完整的计算资源来运行apps。k8s是一个软件系统,它可以允许你在这上面轻松的部署和管理容器应用,它是基于features of linux containers来运行不同的applications而不用去理会任何的应用的internal details,(云供应商可以将不同客户的不同应用部署在同一台机器上这样可以充分利用硬件资源而不会影响每一个应用...

2018-11-07 16:28:47 424

原创 容器技术

以前的虚拟机技术,可以在一台物理机器上虚拟出多个机器,每个机器有自己的操作系统,所以在每个虚拟机上可以运行自己的程序,但软件技术慢慢发展,一个软件的component变得越来越多也越来越小,虚拟机技术就会使得对于硬件的资源过度浪费,并且加大系统管理员的工作量,所以发展出了容器技术。容器技术允许你在同一台主机上运行多个service,而且每个service可以有不同的env,并且可以减少开销,且...

2018-11-06 16:01:46 136

原创 kafka知识点整理

producer可根据不同的需求决定不同的kafka策略如实时低延迟高可靠或允许一定的丢失和延迟等。可以实现自己的序列化规则但建议用通用的如json或apache avro。fire and forget发送方式不关心是否成功到达,有retry机制,但部分数据有可能丢失。同步发送,等待返回结果来知道发送是否成功。异步发送,可在send方法中传入callback方法来实现异步发送...

2018-10-31 17:53:35 228

原创 java jichu rongqi

字符流Reader和Writer,使用了字节流,读到一个或多个字节(中文对应两个字节,UTF-8码表中是3个字节)时,先查指定编码表,将查到的字符返回,只能处理字符数据只要是处理纯文本的数据,优先考虑使用字符流。字节流InPutStream和OutPutStream,读到一个字节就返回一个字节,可以处理所有类型数据,如图片,MP3,AVI视频文件。...

2018-09-03 15:43:12 170

原创 java xuniji

通过泛型指定的不同类型来限制形参的具体类型,操作的数据类型被指定为一个参数,这种参数类型可以用在类,接口,方法中,分别为泛型类,泛型接口,泛型方法。泛型只在编译阶段有效,正确检验泛型的结果后,会将泛型的相关信息擦除,并在对象进入和离开方法的边界处添加类型检查和类型转换的方法。泛型类public class Generic<T>{ private T key; ...

2018-09-03 11:50:33 97

原创 计算机基础

serializable是java提供的一套标准的序列化接口,是个空接口,为对象提供序列化和反序列化操作,只要实现接口即可。首先serialVersionUID是系统为我们提供辅助我们进行序列化和反序列化过程的,序列化的时候系统会把当前类的serialVersionUID写入序列化的文件中(也可能其他中介),然后反序列化的时候会检查serialVersionUID是否和当前类的serialVe...

2018-09-03 11:36:36 528

原创 threadlocal详解

threadlocal是线程局部变量,每一个线程独有,是每个线程在本地工作内存中的对主内存中的数据的一个副本拷贝,这样就可以使得多线程并发访问主内存中这个数据在本地内存中的副本。每个Thread通过一个threadLocalMap来维护属于这个thread的threadLocal变量表(因为一个线程可能有多个threadlocal变量),它使用threadlocal作为key,变量作为valu...

2018-08-30 11:39:38 136

原创 java锁分类

绝对线程安全:无论进行什么操作都是线程安全的。相对线程安全:比如一些标注为线程安全的容器,它的一些方法被synchronized修饰,但即使如此,在多线程的情况下,在方法调用端依旧需要额外的同步措施来保证多个方法的组合操作是线程安全的。线程安全的实现方法互斥同步:悲观的并发策略。同步是指多个线程并发访问共享数据时,保证共享数据在同一时刻只被一个线程使用(使用信号量时是一些)。而互斥是一...

2018-08-22 19:06:11 147

原创 计算机网络

GET,PUT,DELETE都是幂等操作,而POST不是,post用于创建,put用于更新HTTP会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。1.1 Cookie机制在程序中,会话跟踪是...

2018-08-22 18:55:10 104

原创 操作系统

一、Unix/Linux的体系架构  如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,包括CPU资源、存储资源、I/O资源等。为了使上层应用能够访问到这些资源,内核必须为上层应用提供访问的接...

2018-08-14 20:27:21 162

原创 设计模式

单例Runtime 类封装了 Java 运行时的环境。 每一个 java 程序实际上都是启动了一个 JVM 进程, 那么每个 JVM 进程都是对应这一个 Runtime 实例。public class Singleton { private static Singleton singleton; private Singleton() { } ...

2018-08-09 10:42:16 123

原创 JMM&&volatile&&线程状态

很多计算都需要处理器与内存交互,如读取数据,由于计算机存储设备与处理器运算速度差了几个数量级,就产生了速度矛盾,引入高速缓存解决了速度矛盾,但这也引入了一个新的问题,缓存一致性,多处理器中,每个处理器都有自己的高速缓存,而他们又共享同一主内存,可能产生缓存数据不一致的情况。除了增加高速缓存,处理器还可能对输入代码进行乱序执行优化。处理器会在计算之后将乱序执行结果重组,保证结果与顺序执行结果一致。但...

2018-08-06 14:45:57 165

原创 Java的atomic包整理

CAS与锁相比,volatile变量是一种更轻量级的同步机制,不会发生上下文的切换,但是volatile不能用于构建原子的复合操作,因此当一个变量依赖旧值时,就不能使用volatile变量。CAS是一种无锁算法,是一项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。...

2018-08-01 10:06:56 370

原创 jdk1.8更新内容整理

本博文只是介绍有哪些新特性,具体特性的详细介绍请翻看其他博文红黑树hashmap和concurrentHashMap中使用了红黑树。性质1. 节点是红色或黑色。性质2. 根节点是黑色。性质3 每个叶节点(NIL节点,空节点)是黑色的。性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)性质5. 从任一节点到其每个叶子的所有路径都包含相...

2018-08-01 09:16:19 1797

原创 并发容器总结

并发容器是线程安全的,但只是指并发容器的原子操作是线程安全的,多个原子操作组成的复合操作仍然是不安全的,需要通过加锁来保证多线程的安全。 ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<String,Integer>(); map.put("key", 1);...

2018-08-01 09:15:55 145

原创 jvm垃圾收集

确定垃圾引用计数法在java中是通过引用来和对象进行关联的,可以通过引用计数来判断一个对象是否可以被回收。如果一个对象没有任何引用与之关联,那么这个对象就成为可被回收的对象了。这种方式称为引用计数法。这种方式的特点是实现简单,而且效率较高,但是它无法解决循环引用的问题,因此在Java中并没有采用这种方式。可达性分析通过一系列的“GC Roots”对象作为起点进行搜索,如果在“G...

2018-07-31 19:27:44 113

原创 jvm内存管理

方法区线程共享。主要存储类的类型信息,常量池,成员变量信息,方法信息,构造函数和普通函数的字节码内容,还包括一些在类,实例,接口初始化时使用到的特殊方法,存储的信息来自class文件。可GC,对应持久代,会出现OOM。运行时常量池:方法区一部分,用于存放编译期生成的各种字面量和符号引用以及翻译出来的直接引用,这部分内容将在类加载后进入常量池存放,存放的为类中固定的常量信息,方法和域的引用信...

2018-07-31 19:26:57 91

原创 jvm类加载机制

加载找到需要加载的类并把类的信息加载到jvm的方法区中,然后在堆中实例化一个java.lang.class对象,作为方法区中这个类的信息的入口。hotspot会在真正用到一个类的时候对他进行加载。验证验证这个类是否合法,字节码格式,变量与方法是否重复,数据类型是否有效,继承与实现是否合乎标准。准备为类的静态变量分配内存并设为jvm默认的初值(常量会直接设为初始值),非静态变...

2018-07-31 19:26:42 123

原创 java容器知识点整理

ArrayList底层是一个容量为10的数组,扩展倍率为0.5。LinkedList底层是一个双向链表,有指向表头和表尾的指针。HashSet底层是用的hashMap<element,dummy value>,key唯一(在hashmap中无法存在两个一样的K,V)。TreeSet底层是红黑树,复杂度为O(logn)。HashMap底层是数组ta...

2018-07-31 17:42:53 231

原创 数据库

事务原子性:事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性:事务执行的结果必须是使数据库从一个一致性状态变成另一个一致性状态。因此当数据库指包含成功事务提供的结果时,就说数据库处于一致性状态。如果数据库系统运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分一写入物理数据库,这时数据库就处于一种不正确的...

2018-07-31 17:19:16 966

原创 java代理知识点整理

代理(Proxy)是一种设计模式,提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。静态代理 public interface dao { public void save();}public class daoImpl implements dao { public vo...

2018-07-31 15:35:44 161

原创 spring,springmvc知识点整理

springIOC控制反转,通过依赖注入的方式来进行解耦,可通过设置lazy-init=“true”让它在第一次被访问时创建,。工作原理:解析xml配置文件,获取相应的bean,spring会根据对应的bean创建一个对应的bean类,里面有对应的id,type和一个map用于存储properties,一个entry对应一个properties属性,先找到对应的class文件,通过反...

2018-07-30 10:55:41 1438 1

原创 redis知识点整理

redis是一个可基于内存可持久化的日志型,key-value数据库,提供多种语言的API,是单线程的,为什么redis是单线程的,本文主要以java为例。redis的特性包括:数据访问速度快(存在内存中),有数据持久化机制,支持集群模式(容量可以线性扩展),支持丰富的数据结构,可以按Key设置过期时间,过期自动删除,支持事务。redis缺点:数据库容量受物理内存的限制,不能用作海量数据的...

2018-07-26 11:31:30 548

原创 mybatis知识点整理

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。工作原理          每个基于...

2018-07-19 11:31:28 438

空空如也

空空如也

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

TA关注的人

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