- 博客(24)
- 资源 (4)
- 收藏
- 关注
转载 一致性哈希算法的原理与实现(转载)
一致性哈希算法的原理与实现(转载) 学习一致性哈希算法时看到这篇文档感觉还不错,转载记录下。分布式系统中对象与节点的映射关系,传统方案是使用对象的哈希值,对节点个数取模,再映射到相应编号的节点,这种方案在节点个数变动时,绝大多数对象的映射关系会失效而需要迁移;而一致性哈希算法中,当节点个数变动时,映射关系失效的对象非常少,迁移成本也非常小。本文总结了一致性哈希的算法原理和Java实现,并列举了其应用。 作者:王克锋 出处:https://kefeng.wang/2018/08/10/consi
2021-06-16 16:51:14
213
原创 springcloud Alibaba(nacos服务注册发现)
一、服务注册发现nacos注册:1、客户端调用API接口注册实例,封装ip、端口、服务名等为instance对象2、服务端通过ApplicationListener注册监听,触发监听事件处理请求将参数封装为pair对象放入阻塞队列3、 线程池调用线程异步处理从队列中取出pair,信息往set集合写完成注册4、 注册实例同时定时发送心跳:循环嵌套延时(5s)调用API接口,服务端间隔时间内无心跳会先健康状态变为false,再检测不到心跳会删除服务实例(30s)服务发现:调用nacosserver接
2021-04-08 16:49:53
229
原创 java解析parquet文件
一、parquet文件Parquet是Apache Hadoop生态系统的一种免费的开源面向列的数据存储格式。 类似于Hadoop中可用的其他列存储文件格式,如RCFile格式和ORC格式。Parquet有高效编码压缩及更少IO,性能优势明显。Parquet文件是由一个header以及一个或多个block块组成,以一个footer结尾。header中只包含一个4个字节的数字PAR1用来识别整个Parquet文件格式。数据存在block中,block包括行组等。metadata存在于footer中,包含了
2021-04-05 22:17:35
5589
6
原创 sparklistener使用
一、SparkListenerspark 提供了一系列整个任务生命周期中各个阶段变化的事件监听机制,通过这一机制可以在任务的各个阶段做一些自定义的各种动作,SparkListener便是这些阶段的事件监听接口类,实现这个类中的各种方法便可实现自定义的事件处理。搬砖中需要对数据量进行统计,依赖spark监听器完成,对每个action算子的job进行监听,数据量依赖dataframe持久化与累加器完成。二、主要方法实现该类的一些方法package org.apache.spark.scheduler
2021-03-30 20:05:17
1384
原创 ApplicationEvent解耦业务
一、ApplicationEvent+Listenerspring提供了ApplicationEvent+Listener实现事件监听等功能,实现了观察者模式。通过 ApplicationEvent 类和 ApplicationListener 接口来提供在 ApplicationContext 中处理事件。如果一个 bean 实现 ApplicationListener,那么每次 ApplicationEvent 被发布到 ApplicationContext 上。二、使用步骤1.继承Applica
2021-03-29 20:00:48
137
原创 java IO、netty学习
Netty一、BIO二、NIO三、Netty一、BIO阻塞io,存在无法同时支持多个连接,新建线程处理数据优化该问题,引发的问题是线程数可能过多,内存资源不足;引入线程池会限制并发数,由线程池决定连接数,阻塞等待数据也会占用线程池线程资源。public class SocketServer { public static void main(String[] args) throws IOException{ //初始化ServerSocket ,绑定端口 S
2021-03-08 20:04:25
450
原创 jar包冲突一种解决思路
jar包冲突一种解决思路前言一、shade打包二、使用步骤1.引入库2.读入数据总结前言跟着部门大佬学习了一种解决jar冲突的方法,起因是因为连接数据库时pg的url前缀、driver与基于pg修改扩展的数据库url前缀、driver名称相同,同一个jar无法同时支持连接两种数据库(阴差阳错。。。其实可以连)。需要将两个数据库驱动jar都引入,但又会引起冲突,提出使用maven的shade打包方式,通过改变包名来解决冲突, 因为包的本来用途就是解决同名问题,工程里引入打的新jar,这样可以加载两个
2021-03-07 16:24:41
943
原创 springcloud Alibaba
Spring Cloud Alibaba微服务框架一、nacos二、使用步骤1.引入库2.读入数据总结搬砖使用的是阿里的微服务框架,估计是Eureka后续不更新了,阿里的微服务框架发展势头更猛,现在趁有时间总结下。先使用,后续研究记录下原理等等。一、nacos实现分布式环境下的配置管理和服务注册发现,感觉是以前的Eureka与Config结合。1、 安装(windows下)Nacos:微服务配置中心、服务注册中心,相当于eureka+config环境要求:基础环境:JDK 1.8+;Maven
2021-03-05 00:49:19
139
2
原创 sparksql中大小表jion
sparksql中大小表jion总结一下遇到的sparksql大小表jion情况。一、数据倾斜使用sparksql对一张大表和小表jion时发现executor节点数据倾斜严重,最终执行超时失败了。查看日志发现对应的执行计划是Sort-Merge Join,查了下该方式适合两张大表join,会把两张表shuffle:按照join key进行重新分区,两张表数据会分布到整个集群;sort:对分区中的两表数据,分别进行排序;merge:对排好序的两张分区表数据执行join操作。分别遍历两个有序序列
2021-03-01 01:16:44
2128
原创 springboot添加定时任务
springboot添加定时任务一、@Scheduled注解二、使用quartz搬砖中需要使用定时任务定时执行一些业务逻辑一、@Scheduled注解1、启动类添加@EnableScheduling2、@Component添加至任务类,开启定时任务3、@Scheduled添加至方法上,添加定时任务可以指定cron、fixedRate、fixedDelay、initialDelay等属性。过程:(1)拦截“@Scheduled”注解的方法,并解析相应的的注解参数,放入“定时任务列表”等待后续处
2021-01-25 00:21:22
521
原创 自定义Spark的外部数据源
自定义Spark的外部数据源读取文件建立scala工程自定义数据源BaseRelationRelationProviderTableScanSpark提供了自定义外部数据源的功能,可以根据自身需要自定义数据读取获取dataframe,写法是val df = spark.sqlContext.read.format(“com.spark.datasource”).option("",).op...
2020-03-22 02:02:32
2085
原创 程序打成jar包执行
打包发布上一篇将调用第三方接口的程序完成后打包执行,涉及到IDEA将工程打成jar包打开IDEA工程,选择File-Project Structure-Artifacts,之后点击+号,选择JAR-From modules with depenencies -OK选择主类,同时指定MANIFEST.MF路径,将默认路径的main\java删去,不然后续执行生成的jar包出现没有主清单错误。...
2019-09-11 00:03:12
197
原创 Java调用第三方接口获取数据方法
java实现调用第三方接口获取数据最近学习向第三方接口发出http请求,获取返回数据进行存储,把内容总结一下。几种方法查了一些资料,总共有这么几种方法发出http请求:java的Java.net.HttpURLConnection类实现commons的HttpClientApache封装的CloseableHttpClientSpringBoot的RestTemplate第一个...
2019-09-10 01:07:53
7995
原创 linux系统安装ant
实验跑工具需要安装ant1、官网下载安装包,我的是apache-ant-1.9.13-bin.tar.gz,解压到/usr/local下sudo tar -zxvf apache-ant-1.9.13-bin.tar.gz -C /usr/local2、设置环境变量sudo gedit ~/.bashrc 添加ANT_HOME与PATH/etc/profile与bashrc的区别在于...
2018-12-27 22:12:08
303
原创 virtualbox与linux系统设置共享文件夹
晚上用到虚拟机跑别人的工具,虚拟机与主机间文件共享,vm有tools可以直接互传,虚拟机时virtualbox1、设置-共享文件夹-小蓝文件夹-添加主机路径、文件名-勾选自动挂载2、打开虚拟机,在某个目录下创建一个文件夹windowshare与主机的boxshare连接3、可以看到连接成功,复制文件到共享文件夹都出现了参考:https://blog.youkuaiyun.com/z1917265...
2018-12-25 20:57:47
409
原创 面试笔试遇到的一些题(5)
平安科技、还有其他一些面试1、自我介绍2、float a=0.1 语句是否正确,String s=new String(“abc”)语句执行后的过程3、java垃圾回收讲一下4、栈和队列的特点5、两个队列实现栈,两个栈实现队列6、判断链表有环7、反转链表8、多线程实现几种方法,callable、future了解么,怎么在一个线程处理数据后获取这些数据9、数据库范式,索引优点、my...
2018-10-24 17:44:40
169
原创 面试笔试遇到的一些题(4)
前天接到了百度的电话安排面试,没想到竟然过了笔试,记录下面试问的题。1、自我介绍2、简历上的项目,论文。3、基础知识OSI七层模型、tcp三次握手四次挥手、快速排序过程、基准点的选择、不同基准点有什么影响、复杂度、为何不能继续减小复杂度、mysql:事务是什么、特性、mysql如何实现这些特性的、linux熟悉么(答用过但是很少用后就没问了)总共大概半小时,最后问了面试官两个问题,面试官...
2018-10-10 15:06:16
125
原创 面试笔试遇到的一些题(3)
1、约瑟夫环问题(1)使用java中LinkedList解决package demo;import java.util.LinkedList;import java.util.Scanner;public class yuesefu { public static void main(String[] args) { // TODO Auto-generated method st...
2018-10-09 17:26:47
104
原创 面试笔试遇到的一些题(2)
主要问了java基础知识。1、set与list异同点。set与list都实现了collection接口。list有序存储,允许重复数据,查找O(1),实现类有ArrayList、Vector、LinkedList[O(n)]。set不允许重复元素,无序,实现类hashset、linkedhashset、treeset(有序)2、二叉树深度优先遍历,广度优先遍历。深度优先使用栈,广度优先(层次...
2018-10-05 13:57:28
116
原创 面试笔试遇到的一些题(1)
1、甲乙丙3人轮流掷硬币,第一次甲掷,第二次乙掷,第三次丙掷,规定先掷出正面者获胜,求各人获胜概率2、一段木棒随机折成三段,三段构成三角形概率。假设木棒长L,三段长度分别为x,y,L-x-y,三者满足下列关系:在坐标系中表示为 根据三角形两边之和大于第三边得到坐标系中表示如下:面积为大三角的四分之一,所以概率为1/4。参考:https://www.cnblogs.com/xu...
2018-10-04 00:19:02
383
原创 word卸掉Math Type后PowerPoint一直跳出无法加载Math Type的问题
今天开始打算把自己遇到的问题都写出来,以后万一遇到也可以参考。我的是office2016,以前用过Math Type,然而word卸掉Math Type后遇到了PowerPoint一直跳出无法加载Math Type问题。首先尝试了重装office2016,并没有用处。接着百度了方法如下: 1、在卸载了MathType后仍然在PowerPoint启动后出现加载错误项,找到相应的MathTy...
2018-09-13 10:45:45
19390
6
gradle.docx
2019-07-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人