- 博客(21)
- 收藏
- 关注
原创 Class.forName VS ClassLoader.loadClass
Class.forName VS ClassLoader.loadClass1、Class.forName 特点Class.forName有两个重载有类名、是否初始化、classLoader只有类名只有类名的,实际上表现同有1,是否初始化字段默认为true,classLoader是调用者的classLoader是否初始化:置为false时,不会进行初始化操作,也就不会执行静态代码块classLoader:指定classLoader,不一定非要是调用者的classLoaderClass.f
2021-04-22 13:36:36
257
原创 RocketMQ架构-源自官网
架构设计1 技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。NameServer:NameServer是一个
2021-04-15 14:38:14
205
原创 RocketMQ最佳实践-源自官网
最佳实践1 生产者1.1 发送消息注意事项a) Tags的使用一个应用尽可能用一个Topic,而消息子类型则可以用tags来标识。tags可以由应用自由设置,只有生产者在发送消息设置了tags,消费方在订阅消息时才可以利用tags通过broker做消息过滤:message.setTags(“TagA”)。b) Keys的使用每个消息在业务层面的唯一标识码要设置到keys字段,方便将来定位消息丢失问题。服务器会为每个消息创建索引(哈希索引),应用可以通过topic、key来查询这条消息内容,
2021-04-14 23:08:32
243
原创 ConcurrentHashMap
ConcurrentHashMap看ConcurrentHashMap,需要先了解HashMapConcurrentHashMap和HashMap相同的地方:数组长度都是2的n次幂Node结构都相同hash值都是原hash值高低位异或的结果ConcurrentHashMap和HashMap不同的地方:数组初始长度:带容量c造器下,Concurrent要运算 c*1.5+1,可避免扩容key不能为空ConcurrentHashMap的hash值的符号位一定是0,拒绝负数负载因子只有在
2021-03-30 16:49:15
170
原创 JAVA的HashMap
HashMap前置知识点:Hash:将输入转换成一个数字有几个特点:多次调用,结果相同散列,很少的改动,都要尽可能的造成很大的结果波动,避免根据结果的变化来反推源输入高效HashMap的数据是怎么保存的?数组+链表+红黑树HashMap的几个字段:table:存放数据的数组(Node数组)负载因子:map的size超过(必须要超过,等于的时候也不扩容)数组长度*负载因子后,就要进行扩容table的size一定是2的n次幂,因为求余效率高,(-1再与即可)Node有以下四个字
2021-03-28 12:28:30
93
原创 JAVA线程池备忘录
JAVA线程池备忘录线城池的实现线程池的参数说明自带的rejectedExecutionHandler线城池的实现JAVA中,JDK自带的线程池实现类是java.util.concurrent.ThreadPoolExecutor直接创建这个类的实例即可创建一个线程池线程池的参数说明ThreadPoolExecutor有很多个构造函数,都是围绕着以下6个参数来变的corePoo...
2020-04-20 10:54:52
146
原创 redis的持久化
Redis的持久化rdbrdb简介rdb配置rdb的优缺点aofaof简介配置AOF的重写机制AOF 的优缺点aof文件实例rdb和aof共存rdbrdb简介RDB 是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis 重启会通过加载dump.rdb文件恢复数据。Redis 在写 ...
2019-12-22 19:04:51
132
转载 Kafka的IRS
Kafka ISRkafka replicaData Replication如何Propagate(扩散出去)消息?Data Replication何时Commit?Data Replication如何处理Replica恢复Data Replication如何处理Replica全部宕机kafka replica当某个topic的replication-factor为N且N大于1时,每个Par...
2019-12-22 09:49:11
486
原创 Redis 5.0.7笔记
Redis 5.0.7笔记Redis 5.0.7的编译安装下载安装c编译套件makeinstall安装完成Redis的集群Redis集群介绍Redis 集群的数据分片集群需要的端口Redis集群配置参数集群测试Redis 5.0.7的编译安装下载https://redis.io/download在redis官网寻找下载链接下载下来是tar.gz包,拷贝到Linux机器上,再解压t...
2019-12-15 17:33:37
411
原创 Linux 根据权限查找文件
编译了个redis,发现东西都在src下然而,src下文件多如牛毛,实在不方便管理我就想把需要的文件都拿出来简单来说find -perm 775就可以找到需要的文件了具体的就自行百度find -perm...
2019-12-15 14:58:10
441
原创 Linux 权限记录
Linux权限记录Linux 权限Linux 权限Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。Li...
2019-12-15 14:49:37
173
原创 记ES使用中的一个坑
记一个ES小坑ES使用中的一个注意事项ES使用中的一个注意事项最近运维同学发现,系统好多ES报错,经调查发现是ES参数拼接过程中使用了StringBuilder来拼接JS字符串,value中的特殊字符让ES无法解析JSON,解决方案很简单:将反斜杠和双引号(【\】【"】)分别替换成【\】【"】即可,注意有先后,要先替换反斜杠,在替换双引号也可以使用第三方的JSON工具来实现JSON转换效果(...
2019-12-15 11:10:51
501
原创 Neo4j VS TigerGraph横向对比
Neo4j VS TigerGraph横向对比结果对比版本技术细节单机性能集群方式计费方式Neo4j和TigerGraph都是非常优秀的图数据库,有幸做过两者的对比,现总结如下:横向对比结果对比版本Neo4j 3.1.0企业版TigerGraph0.9.x(老版本,当时还叫graphSQL)技术细节TigerGraph创建点类型的时候,必须指定此类型的点的key;Neo4j无需...
2019-12-15 11:02:26
2907
原创 Kafka客户端(2.1.0)
Kafka的客户端程序准备工作生产者普通生产者带回调的生产者自定义分区策略实现Partitioner 接口在配置项中指定Partitioner类同步生产者消费者简单消费者重置offset设置offset重置策略为earliest设置offset重置策略为latest设置offset重置策略为none手动提交offset准备工作要使用kafka的客户端,首先要引入Kafka客户端的依赖,下面是2...
2019-12-08 17:47:51
535
原创 Kafka2.1.0允许远程连接
Kafka集群模式启动后,直接用控制台的producer、consumer去收发消息,会有异常提示,这是因为默认的kafka是不支持远程连接导致的我们观察server.properties配置文件,重点关注31和36行先看看listeners这个配置项The address the socket server listens on. It will get the value return...
2019-12-01 17:49:00
2320
原创 混乱的Kafka命令行客户端连接方式
混乱的Kafka命令行客户端连接方式初次使用Kafka(版本2.1.0)命令行客户端,发现Topic、Producer、Consumer等各个命令行工具连接Kafka服务器的方式各不相同,在此做个记录支持 --bootstrap-server 的kafka-console-consumer.shkafka-consumer-groups.sh支持 --broker-list 的kaf...
2019-12-01 14:42:41
1445
原创 常见的集群Leader(Master)选举机制
常见的Leader选举机制常见的Leader选举机制1、投票制2、借助ZK常见的Leader选举机制1、投票制投票制的一般流程在集群启动或Leader宕机时,会先比较所有实例的事务号,以具有最新事务的实例作为Leader,若多个实例都有最新的事务号,则从中随机取一个(或根据实例ID选取最大或最小的,看具体实现)作为Leader,Follower再从新的Leader中同步事务。总结来说,有...
2019-12-01 11:22:48
1674
原创 Flink的状态和状态后端
Flink的状态和状态后端Flink的状态类型Keyed StateOperator State可插拔状态后端Exactly-once的状态一次性Flink是有状态的流处理Flink的状态类型Keyed State和key相关的状态Operator State算子任务中的状态可插拔状态后端Exactly-once的状态一次性...
2019-11-26 14:03:49
665
原创 Flink的Window机制
Flink的Window机制FlinkWindow的分类Flink的Window可以分为两大类,五小类时间窗口窗口类型说明举例滚动时间窗口以一定的时常分隔的时间每一个时间段都是一个window若间隔=15秒,那么一分钟可以切割成如下窗口0-15,15-30,30-45,45-60,前闭后开区间滑动时间窗口以特定的步长(step)增长的,时长(size)...
2019-11-19 21:33:03
170
原创 Flink笔记
使用Flink分四部创建执行环境添加SourceTransformSink创建执行环境Flink支持 批处理 和 流处理,两者创建执行环境的API是不一样的,创建批处理env的代码如下:val env = ExecutionEnvironment.getExecutionEnvironment创建流处理env的代码如下:val env = StreamExecution...
2019-11-16 21:55:12
164
原创 JVM内存模型
JVM内存模型JVM内存模型各内存保存的数据栈内存溢出JVM内存模型各内存保存的数据方法区方法区保存的是方法执行的具体操作栈栈保存的是方法的执行、基本类型的数据、堆内存的地址堆所有分配的对象程序计数器程序执行顺序的记录,此内存很小本地方法栈此处保存的是操作系统的原生函数栈内存溢出若栈内存溢出,会出现StackOverflowError,若调用栈太长,就容易出现此异...
2019-11-16 13:39:02
134
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人