- 博客(19)
- 资源 (47)
- 收藏
- 关注
转载 JDK的SPI机制
模块之间不对实现类进行硬编码, 一旦代码里涉及具体的实现类,就违反了可拔插的原则。为了实现在模块装配的时候能不在程序里动态指明,这就需要一种服务发现机制。java spi就是提供这样的一个机制:为某个接口寻找服务实现的机制。有点类似IOC的思想,就是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要。java spi的具体约定如下 :当服务的提供者,提供了服务接口的一种实现之后,在jar包...
2018-04-28 16:57:19 642
转载 基于Redis的限流系统的设计
本文讲述基于Redis的限流系统的设计,主要会谈及限流系统中限流策略这个功能的设计;在实现方面,算法使用的是令牌桶算法来,访问Redis使用lua脚本。1、概念In computer networks, rate limiting is used to control the rate of traffic sent or received by a network interface ...
2018-04-28 16:53:27 196
转载 微服务架构
微服务架构中,主要为分布式架构提供了集群容错的三大利刃:限流、降级和熔断。并同时提供了SPI、过滤器、JWT、重试机制、插件机制。此外还提供了很多小的黑科技(如:IP黑白名单、UUID加强版、Snowflake和大并发时间戳获取等)。Features分布式限流(Limiter)致力于分布式服务调用的流量控制,可以在服务之间调用和服务网关中进行限流!服务降级(Degrade)致力于提供分布式的服务降...
2018-04-28 16:51:35 540
转载 Spark Streaming详解(重点窗口计算)
前面有几篇关于Spark Streaming的博客,那会只是作为Spark入门,快速体验Spark之用,只是照着葫芦画瓢。本文结合Spark官网上Spark Streaming的编程指南对Spark Streaming进行介绍StreamingContext如同SparkContext一样,StreamingContext也是Spark Streaming应用程序通往Spark集群的通道,它的定义...
2018-04-27 18:04:09 15023 1
转载 spark job, stage ,task介绍
1. spark 如何执行程序?首先看下spark 的部署图: 节点类型有:1. master 节点: 常驻master进程,负责管理全部worker节点。2. worker 节点: 常驻worker进程,负责管理executor 并与master节点通信。dirvier:官方解释为: The process running the main() function of the applicat...
2018-04-27 15:21:12 154
转载 Spark常用算子讲解
Spark的算子的分类 从大方向来说,Spark 算子大致可以分为以下两类: 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。 Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。 2)Action 行...
2018-04-27 14:48:53 358
转载 Spark RDD之Partition
概要Spark RDD主要由Dependency、Partition、Partitioner组成,Partition是其中之一。一份待处理的原始数据会被按照相应的逻辑(例如jdbc和hdfs的split逻辑)切分成n份,每份数据对应到RDD中的一个Partition,Partition的数量决定了task的数量,影响着程序的并行度,所以理解Partition是了解spark背后运行原理的第一步。P...
2018-04-27 14:27:49 3367
原创 spring事务详解
事务有四大特性(ACID)1.原子性(Atomicity)事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。2.一致性(Consistency)事务在完成时,必须是所有的数据都保持一致状态。3.隔离性(Isolation)并发事务执行之间无影响,在一个事务内部的操作对其他事务是不产生影响,这需要事务隔离级别来指定隔离性。4.持久性(Durability)一旦...
2018-04-25 15:43:06 150
原创 MongoDB 查询优化原则
1. 在查询条件、排序条件、统计条件的字段上选择创建索引,可以显著提高查询效率。2. 用$or时把匹配最多结果的条件放在最前面,用$and时把匹配最 少 结果的条件放在最前面。3. 使用limit()限定返回结果集的大小,减少数据库服务器的资源消耗,以及网络传输的数据量。4. 尽量少用$in,而是分解成一个一个的单一查询。尤其是在分片上, $in会让你的查询去每一个分片上查一次...
2018-04-25 14:51:48 1651 2
原创 mongodb 查询条件
这节来说说mongodb条件操作符,"$lt", "$lte", "$gt", "$gte", "$ne"就是全部的比较操作符,对应于"<", "<=", ">", ">=","!="。原子操作符:"$and“, "$or“, &quo
2018-04-24 17:59:06 308
转载 重载,重写与多态的区别
重载(Overloading) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。 重载的时候,方法名要一...
2018-04-23 21:39:04 6276
原创 JAVA多线程实现的四种方式
参考文章:JAVA多线程实现的四种方式Java多线程实现方式主要有四种:继承Thread类、实现Runnable接口、实现Callable接口通过FutureTask包装器来创建Thread线程、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,后两种是带返回值的。1、继承Thread类创建线程Thre...
2018-04-23 21:17:07 153 1
转载 谈谈Java中的ThreadLocal
ThreadLocal介绍&跳出误区看看源码线程独享变量?ThreadLocal介绍&跳出误区 ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。跳出误区 需要重点强调的的是,不要拿ThreadLocal和synchronized做...
2018-04-23 21:15:43 174
转载 Java多线程学习(吐血超详细总结)
本文主要讲了java中多线程的使用方法、线程同步、线程数据传递、线程状态及相应的一些线程函数用法、概述等。在这之前,首先让我们来了解下在操作系统中进程和线程的区别: 进程:每个进程都有独立的代码和数据空间(进程上下文),进程间的切换会有较大的开销,一个进程包含1--n个线程。(进程是资源分配的最小单位) 线程:同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(P...
2018-04-23 21:01:59 150
转载 nginx启动、重启、重新加载配置文件和平滑升级
Nginx有一个主进程和几个工作进程,主进程的主要作用就是读取、评估配置文件和管理工作进程,工作进程对请求做实际处理。工作进程的数量是在配置文件中配置的,一般设置为cpu的核心数*线程数。nginx可以通过信号控制,默认情况下,主进程的进程ID记录在/usr/local/nginx/logs/nginx.pid 文件中。信号可以通过nginx可执行文件发送给nginx (nginx -s 信号),...
2018-04-23 18:23:47 22549
转载 nginx负载均衡的5种策略(转载)
nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。nginx的upstream目前支持的5种方式的分配1、轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserver { se...
2018-04-23 17:25:06 231
原创 掌握JVM一篇就够
掌握JVM一篇就够程序的本质-堆和栈JVM运行机制类的生命JVM内存模型垃圾回收JVM常见参数追本溯源——堆和栈堆通常是一个可以被看做一棵树的数组对象,栈是一种只能在一端进行插入和删除操作的先进后出线性表,JVM的本质是堆和栈第一,从软件设计的角度看,栈代表了处理逻辑,而堆代表了数据。这样分开,使得处理逻辑更为清晰。分而治之的思想。这种隔离、模块化的思想在软件设计的方方面面都有体现。第二,堆与栈的...
2018-04-19 22:05:27 430 1
转载 Java中的多线程你只要看这一篇就够了
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确...
2018-04-19 21:58:12 182
原创 SpringBoot热部署详解
项目里用到了 spring-boot。由于在修改前端的时候,需要频繁的预览样式,但是又不能每次都重启,太慢了。于是查到了这个很有帮助的方法! 1 maven 配置 1.1 maven 依赖 在 pom.xml 文件中,增加如下插件。 <!--devtools可以实现页面热部署(即页面修改后会立即生效,这个可以直接在application.properties文件中配置spring.thym...
2018-04-18 23:06:52 5446 1
gcc rpm安装包
2021-02-20
crontabs_pack
2021-02-20
initscripts.zip
2021-02-20
centos7.4 postgresql11-11.8 rpm 安装包
2020-11-14
service命令 安装包
2020-11-14
ImpalaJDBC42-2.6.17.1020.jar
2020-05-18
logstash-7.6.0.tar.gz
2020-02-23
logstash-7.6.0.rpm
2020-02-23
docker离线rpm包-use.rar
2019-10-30
elasticHD_darwin_amd64
2019-02-28
elasticHD_linux_amd64
2019-02-28
elasticHD_windows_amd64
2019-02-28
cdh-7.1.7, cm7.4.4离线安装包
2023-11-24
jdk-8u291-x64.rar
2021-05-10
net-tools-2.0-0.51.20160912git.el8.x86_64.rpm
2021-02-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人