- 博客(66)
- 收藏
- 关注
翻译 [笔记迁移][Activiti文档学习]配置[1]
1. Quick Start1.1 使用Activiti的前置要求Java 7及以上的运行时环境。Apache Tomcat(官方说明:因为仅依赖了Servlet功能,任意web容器应该都可以运行)。1.2 一分钟启动Demo——使用默认配置的Activiti UI复制从官网下载的activiti-app.war到Tomcat的webapps目录下。运行bin目录下startup.bat或startup.sh来启动Tomcat。Tomcat启动后,从浏览器中访问http://l
2020-11-04 14:43:08
441
原创 [笔记迁移][Spring Boot进阶]任务[12]
1. 异步任务(@EnableAsync+@Async)与传统的同步编码不同,异步调用会新建一个线程,与请求线程并行。如不做特殊的处理,请求线程将会继续向下执行。@Async的作用:当在请求线程中调用到被标注的方法时,Spring将自动创建一个线程池来运行这个方法,请求线程不会阻塞,继续向下执行。(也就是代替了手动编写的多线程)实例(1)给需要异步执行的方法标注@Aysnc。@Servicepublic class AsyncService { //说明这是一个异步方法 @Async
2020-10-29 17:24:13
254
原创 [笔记迁移][Spring Boot进阶]开发热部署DevTools[11]
1. 什么是开发热部署?在修改一个Java文件并且编译Build之后,不用重启整个应用,程序可以自动将修改重编译后部署使修改起效。2. Spring Boot中实现热部署的四种方式模板引擎(如thymeleaf)(1)在Spring Boot工程的主配置文件中禁用模板引擎的缓存。(如spring.thyemeleaf.cache=false)(2)改变页面moban ,按Ctrl+F9(IDEA的Build Project快捷键)重新编译当前页面即可生效。Spring Loaded(1
2020-10-29 10:38:01
230
原创 [笔记迁移][Spring Boot进阶]Dubbo[10]
1. 概述1.1 分布式服务框架的两种组合Dubbo(轻量级RPC框架)+Zookeper(服务注册中心)。Spring Cloud Netflix Eureka(REST调用,是Spring Cloud的服务注册中心)1.2 Dubbo概述Dubbo时Alibaba开源的分布式服务调用框架(RPC-Remote Procedure Call),它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦(或者最大程度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的
2020-10-27 17:00:20
225
原创 [笔记迁移][Spring Boot进阶]消息中间件[9]
1. 消息队列概述1.1 消息队列作用与应用场景异步通信(用户注册场景:信息入库与邮件收发、短信收发不需要同步)应用解耦(订单库存场景:连接两个微服务,发布-订阅)流量削峰(秒杀场景:请求在定长消息队列中“抢座位”,未能入队的请求被快速响应秒杀失败,入队的消息等待被其他业务获取处理 )1.2 消息服务中两个重要的概念当发送者发送消息后,将由消息代理接管,消息代理来保证消息传递到指定目的地。消息代理(Message Broker):消息中间件所在的服务器目的地(Destinat
2020-10-27 13:51:43
321
原创 [笔记迁移][Spring Boot进阶]缓存中间件[8]
1. J2EE 缓存规范:JSR-107的核心概念(仅了解)JSR-107定义了5个核心接口(javax.cache.cache-api):CachingProvider、CacheManager、Cache、Entry、Expiry。他们的从属调用关系如图:(1)CachingProvider定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。(2)CacheManager定义了创建、配置、获取、管理和控制多个唯一命名的Cac
2020-10-26 11:33:38
232
原创 [笔记迁移][Spring Boot]自定义starts[7]
1. 分析starters的原理预定义starts方便之处,也是自定义时需要解决的两个问题 :(1)目标场景需要使用到哪些依赖?(2)如何编写导入组件的自动配置类?参考WebMvcAutoConfiguration,定义一个自动配置类的注解要素//1. 首先这是一个配置类@Configuration//2. 使用大量的条件判断,在满足指定条件时自动配置类或组件注入生效@ConditionalOnxxx//比如@ConditionalOnWebApplication、@Condit
2020-10-24 22:52:03
196
原创 [笔记迁移][SpringBoot]Spring Boot启动配置原理[6]
主配置类(标注了@SpringBootApplication)的main中,SpringApplication.run(主配置类名.class,args)就是分析入口。总体来说,SpringBoot启动流程分为了两步:创建SpringApplication对象。调用这个对象的run方法。 //SpringApplication.java public static ConfigurableApplicationContext run(Object[] sources, String[]
2020-10-24 20:48:41
189
原创 [笔记迁移][Spring Boot]SQL数据访问[5]
1. 简介对于DAO层,SQL or NoSQL,Spring Boot默认采用整合 Spring Data 的方式进行统一处理2.整合原生JDBC简单使用(相关配置参考DataSourceProperties)spring: datasource: driver-class-name: com.mysql.jdbc.Driver username: root passwor...
2020-10-24 10:42:05
187
原创 [DataBase][1] 主流数据库的导入导出
文章目录一、Oracle1. 传统方式1.1 语法1.2 使用说明2. 数据泵 (Data Pump) 方式【Oracle10g及以上】2.1 检查逻辑的存在性(需要dba权限)2.2 语法2.3 使用说明3. 说明3.1 文件格式3.2 注意事项二、PostgreSQL1. 导入2. 导出2.1 语法2.2 选项说明三、MySQL一、Oracle1. 传统方式1.1 语法导入imp {...
2019-09-21 16:54:23
308
原创 [笔记迁移][Spark][14]Spark性能优化
文章目录一、概述二、诊断内存消耗三、高性能序列化类库四、优化数据结构五、对多次使用的RDD进行持久化cache/persist或Checkpoint六、使用序列化的持久化级别七、JVM GC机制调优八、提高并行度九、广播共享数据十、数据本地化十一、redeceByKey()与groupByKey()十二、※Shuffle性能优化※一、概述性能瓶颈:CPU、网络带宽、内存(最集中的问题源)=...
2019-07-25 08:34:13
186
原创 [笔记迁移][Spark][13]Spark源码——内核架构6
文章目录14. CheckPoint14. CheckPoint适用场景:自定义Spark应用程序特别复杂,从初始RDD到整个应用完成有很多步骤,比如超过20个Transformation操作,而且整个应用运行的时间也特别长,比如1-5小时。为什么:对于特别复杂的Spark应用,很有可能需要重复使用某个RDD,若因为节点故障,导致先前持久化过的数据丢失,当再一次使用到该RDD时,就可能又要...
2019-07-24 13:31:58
453
原创 [笔记迁移][Spark][12]Spark源码——内核架构5
文章目录11. Shuffle(最最最最最重要,重点出错、调优目标)11. Shuffle(最最最最最重要,重点出错、调优目标)(1)发生时机: 与Tuple的key操作相关,包括reduceByKey/ groupByKey/ sortByKey/ countByKey/ join/ cogroup(2)特点: &nb...
2019-07-24 11:14:25
374
原创 [笔记迁移][Spark][11]Spark源码——内核架构4
文章目录8. TaskScheduler——分发Task至Executor9. Executor8. TaskScheduler——分发Task至Executor /** * TaskScheduler提交Task的入口 */ override def submitTasks (taskSet : TaskSet) { val tasks = taskSet.task...
2019-07-18 16:13:29
263
原创 [笔记迁移][Spark][10]Spark源码——内核架构3
文章目录7. Job(initialized after SparkContext)7. Job(initialized after SparkContext)(1)一个Application可能包含多个Job,一个Action触发一个Job,运行完前一个Job,代码才会继续向下,触发下一个Job(2)以wordCount为例:textFile -> flatMap(基类RDD中定义)...
2019-07-18 14:21:27
184
原创 [笔记迁移][Spark][9]Spark源码——内核架构2
续上篇,Spark源码——内核架构1(4)最最最最最重要的机制:资源调度schedule() [1]Master总调度——Driver(on Worker)调度机制 /** * Schedule the currently available resources among waiting apps. This method will be call...
2019-07-17 17:24:49
273
原创 [笔记迁移][Spark][8] Spark源码——内核架构1
文章目录1.宏观概览2.窄依赖与宽依赖3.基于Yarn的两种提交模式4. SparkContext5. Master1.宏观概览Applicationspark-submitDriverSparkContextMasterWorkerExecutorJobDAGSchedulerTaskSchedulerShuffleMap TaskResult Task2.窄依...
2019-07-17 09:11:28
335
原创 [笔记迁移][Spark][8]常见应用案例
说明:部分示例在练习中使用了两种实现文章目录1. 基于排序机制的wordcount2. 二次排序(ORDER BY col1,col2)3.TOPN1. 基于排序机制的wordcount/** * 基于排序机制的 wordcount * 需求: * 1. 对文本文件内出现的每个单词统计出其出现的次数 * 2. 按照每个单词出现次数降序排序 * @author Z -Jay * ...
2019-07-16 11:39:06
150
原创 [笔记迁移][Spark][7]共享变量:Broadcast Variable & Accumulator
文章目录1. 概述2. Broadcast Variable3. Accumulator1. 概述 默认情况下,若在一个算子函数中使用到了来自外部的某个变量,则该变量的值会被拷贝到每个Task中,此时每个Task只能操作自己获得的副本,而无法实现多个Task间的共享。 Spark为此提供了两种共享变量...
2019-07-16 11:00:16
121
原创 [笔记迁移][Spark][6]RDD持久化
文章目录1. 为什么RDD需要持久化?2. 节点如何持久化?3. 如何操作持久化?4. Demo5. 持久化策略——persist()参数StorageLevel指定1. 为什么RDD需要持久化?RDD持久化解决的问题: 每当Action操作执行,其之前的Transformation才会被触发,形成RDD链条。Action操作完成后,该RDD会被...
2019-07-16 10:03:15
219
原创 [笔记迁移][Spark][5]RDD——分布式弹性数据集相关2
紧接着RDD——分布式弹性数据集相关1,首先补充高级算子cogroup(8) 高级算子 cogroup,与join算子的两点不同之处:[1] join算子将两个RDD按Key连接,结果形成一条条的记录,而cogroup将两个RDD按Key连接后,若相同的Key对应着多条记录,则将记录进行归并。返回JavaPairRDD中的元素形式为<公用键,Tuple2<调用RDD中的值的可迭代容...
2019-07-08 15:27:34
139
原创 [笔记迁移][Spark][4]RDD——分布式弹性数据集相关1
文章目录一、创建RDD二、操作RDD:两类算子一、创建RDDSpark Core(代替MR,进行离线批处理操作)提供了三种创建RDD的方式:创建方式应用场景使用程序种的集合创建主要用于测试,在实际部署到集群运行之前,通过集合构造测试数据集,来测试Spark应用的流程使用本地文件创建主要用于临时性地处理一些存储大量数据地文件使用HDFS文件创建最常用地...
2019-07-08 14:23:56
177
原创 [笔记迁移][Spark][2]Spark概述
Spark的核心,即一种新型的大数据计算框架(通用的大数据快速处理引擎),可以基于Hadoop上存储(hdfs、Hive)的大数据进行计算Spark代替Hadoop? No!!!Spark能够替代的只是Hadoop的一部分,如MapReduce计算框架,Hive查询引擎。Spark本身不提供大数据存储功能和调度功能!Spark主要基于内存进行计算, 较基于磁盘和网络的MapRe...
2019-07-08 14:20:51
146
原创 [笔记迁移][Spring Boot]SpringMVC Web开发[4]
1. 使用Spring Boot(三步走)创建Spring Boot应用,选中需要的模块Spring Boot默认将这些场景自动配置(xxxAutoConfiguration注入+xxxProperties映射封装),只需要在配置文件中指定少量配置就可以运行编写业务逻辑代码2. RESTful-CRUD实例2.1 准备2.1.1 使用Spring Initializer快速创建自带...
2019-03-03 10:31:38
808
1
原创 [笔记迁移][Spring Boot]日志[3]
1.日志框架日志门面(抽象层)与日志实现Spring Boot:底层时SpringFramework,默认使用JCL,但SpringBoot选用SLF4J和logback2.使用SLF4J2.1 如何在系统中使用?在开发中,需要调用日志记录的方法时, 不应该直接调用日志实现类,而是调用日志抽象层定义的方法接口SLF4J+默认实现logback的简单使用//导入SLF4J,lo...
2019-03-01 09:49:55
265
原创 [笔记迁移][Spring Boot]配置[2]
1. Spring Boot的全局配置文件要求(1) application.properties / application.yml,二选一,但 名字必须固定为application※(2) 存放于src/main/resources目录或者classpath:config下(3) 显式指定Spring Boot自动配置项以覆盖默认值2.yml -> YAMLYAML Ain’...
2019-02-28 21:19:31
278
原创 [笔记迁移][Spring Boot]入门[1]
1. What is Spring Boot?SpringBoot -> JavaEE 一栈式 解决方案以简化独立的、产品级别的Spring应用开发“约定大于配置”思想的实现2. Why Spring Boot?(1)快速 创建独立运行的Spring项目以及与主流框架集成;(2)使用 嵌入式Servlet容器 ,应用无需打成war包;(3)场景启动器 starters自动依赖...
2019-02-28 19:20:04
267
原创 [笔记迁移][Spring注解驱动]扩展原理相关-Spring容器创建及初始化过程[4]
核心refresh()//org.springframework.context.support.AbstractApplicationContext @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonit...
2019-02-27 20:42:11
221
原创 [笔记迁移][Spring注解驱动]扩展原理相关[3]
1. BeanFactoryPostProcessor(1) 源码public interface BeanFactoryPostProcessor { /** * Modify the application context's internal bean factory after its standard * initialization. All bean definiti...
2019-02-27 20:07:49
229
原创 [笔记迁移][Spring注解驱动]AOP相关[2]
三、AOP相关1. 开启基于注解的AOP代理给配置类标注@EnableAspectJAutoProxy(当然,切面对象与被增强对象添加到容器中),相当于之前配置文件的&amp;lt;aop:aspectj-autoproxy/&amp;gt;2. @EnableAspectJAutoProxy原理注:很多形式相似的注解@Enablexxx表示开启xxx功能,深入时应该找出为容器注册的组件、组件工作时机、组...
2019-02-22 21:12:39
229
原创 [笔记迁移][Spring注解驱动]概览及IoC容器相关[1]
一、概览:三个部分二、IoC容器相关1. @Configuration &amp; @Bean 向容器注册组件(1) SE环境下,使用AnnotationConfigApplicationContext加载配置类代替之前ClassPathApplicationContext加载类路径下配置文件启动IoC容器(2) 使用配置类代替配置文件注册//使用标注@Configuration的配...
2019-01-15 15:49:44
149
原创 [2018/11][实践总结][Redis][Shiro][FreeMarker][AOP-Log4j][404Request] 项目总结
内容相关:本片基于2018/10开始的项目teachingsystem,对Spring集成Redis的总结记录。
2018-12-09 13:43:11
322
原创 [笔记迁移][Spark][1]Spark环境搭建
一、集群搭建Spark*3+Hadoop*1Linux准备工作(1)安装镜像CentOS6.5-minimal.iso(2)配置ip临时配置:1. ifconfig eth0 192.168.109.191 (192,193)2. ping 192.168.109.19x (自己)3. 修改/etc/hosts,添加“ip/主机”映射4. ping {主机名} (自己)永久配置...
2018-11-28 15:08:01
203
原创 [笔记迁移][Spark开发语言][Scala][13]多线程——Actor(了解)
Spark2.x的源码中,已经不在使用Actor进行消息通信,取而代之的是 RPCEndPoint,但用法、作用却是极为相似的 了解RPC/** * An end point for the RPC that defines what functions to trigger given a message. * * It is guaranteed that `onStart`, `re...
2018-11-28 14:48:13
345
原创 [笔记迁移][Spark开发语言][Scala][12]函数式编程
将函数赋值给变量(1) Scala函数是“一级元素”,可以独立定义,独立存在,而且可以直接将一个函数赋值给一个变量(2) Scala语法规定,将函数赋值给变量时,必须在函数名后面加上空格和下划线匿名函数(类似Java的Lambda表达式,Spark中将大量使用)Scala定义匿名函数的语法规则:(参数名:参数类型) => 函数体高阶函数(1) 由于函数是Scala...
2018-11-19 12:29:59
192
原创 [笔记迁移][Spark开发语言][Scala][11]模式匹配
一、概述模式匹配,类似Java的switch-case语句。但Scala的模式匹配除了可以对值进行匹配之外,还可以对类型进行匹配,对Array和List的元素进行匹配,对case class(即样例类)进行匹配,甚至对有无值(Option)进行匹配二、基础语法定义方式:四个要素变量 match {case 值 =&gt; …}如果值为下划线_,则代表不满足以上所有情况的默认...
2018-11-19 10:47:56
172
原创 [笔记迁移][Spark开发语言][Scala][10]面向对象——类型参数
Scala类型参数与Java的泛型参数的概念一致泛型类(1) 定义:在类名的后面跟上类型参数列表,用[]包裹(2) 案例(3) Scala可以根据第一字段类型自动推断泛型类型泛型参数(1) 定义:在方法名后跟上类型参数列表,用[]包裹(2) 案例(3) 泛型函数一样可以自动推断类型上边界Bounds(1) 类似Java的&lt;T extends xxx&g...
2018-11-16 11:52:29
154
原创 [笔记迁移][Spark开发语言][Scala][9]隐式转换与隐式参数
一、概述其功效类似于SpringMVC中DataBind中调用的ConversionService(Converters)最核心的任务是定义隐式转换函数(函数!!!函数!!!),即implicit conversion function定义的隐式转换函数,只要在程序内引入,就会被Scala自动使用。当程序中使用到隐式转换函数所接收的参数类型的对象时,Scala会自动将其传入隐式转换函数,...
2018-11-16 11:04:29
650
原创 [笔记迁移][Spark开发语言][Scala][7]面向对象——Trait基础
一、Trait基础将Trait作为接口使用(1) 与Java的接口Interface相似。(2) 但Scala中没有implements关键字,无论继承class还是trait,统一使用关键字extends(3) Scala不支持对class的多重继承,但支持对trait的多重继承。从第二个trait开始需要使用关键字with在Trait中定义具体方法(1) Trait中还可...
2018-11-16 09:59:34
157
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人