- 博客(24)
- 收藏
- 关注
原创 设计模式之常用法则
设计模式软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式的本质:面向对象设计原则的实际运用,是对类的封装,继承,多态以及类的关联关系和组合关系的充分理解。...
2020-10-18 09:51:57 1075
原创 实现数据的离线分析
基础设施:链接:基础项目的搭建修改log4j.properties文件log4j.rootLogger = info,stdout,flume#log4j.rootLogger = info,stdout,flumelog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.Target = System.outlog4j.appender.stdout.layout = org.apache.l
2020-09-24 17:11:10 974 1
原创 大数据学习之Hive学习
hiveHadoop的MapReduce在海量数据离线处理中遇到的问题MR程序代码量较大,开发调试复杂,不适合要求快速得出结果的工作场景.Hadoop是用Java开发,MR天生对Java支持最好的,对于其他语言的使用者,不够友好.想要编写一个优秀的MR程序,必须掌握Hadoop的一些底层原理.API冗长繁琐不好记忆.概念:Hive是一个基于Hadoop的数据仓库工具(本质是Hadoop的一个客户端),他的出现避免了传统MR开发的弊病,允许开发者使用简单的SQL来实现海量数据的离线处理,并且内
2020-09-24 11:47:01 481
原创 大数据学习之Flume
flume简介概念: Flume是一种分布式,可靠且可用的服务,用于有效地收集,聚合和移动大量日志数据。它具有基于流数据流的简单灵活的体系结构。它具有可调整的可靠性机制以及许多故障转移和恢复机制,具有强大的功能和容错能力。它使用一个简单的可扩展数据模型,允许在线分析应用程序。概念总结:分布式的高可靠高可用的用来收集,聚合移动日志数据的框架、具有简单的流式数据处理特点(数据源为流式数据,但是不需要计算)学习重点event:事件,flume在接收到日志数据之后会以一比一的比例对日志进行封装,一条数据
2020-09-22 14:57:43 326
原创 大数据学习之Hadoop.
了解HadoopHadoop定义:Hadoop是大数据领域中非常重要的基础技术,他是一个海量数据存储、处理系统,也是一个生态圈(HDFS,MapReduce,Hive,Hbase等)Hadoop作用Hadoop最初用作Nutch底层的海量数据存储和处理,后来人们发现他也非常适合大数据场景下的数据存储和处理,主要用作海量离线数据的存储和离线数据的计算。hadoop安装Hadoop 的安装有三种方式单机模式:解压就能运行,但是只支持MapReduce的测试,不支持HDFS,一般不用。(测试,几乎不
2020-09-21 15:20:03 229
原创 初始大数据之项目搭建
什么是大数据海量数据及其处理指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。项目搭建...
2020-09-21 09:21:40 373
原创 微服务学习之rockectmq
rocketmq的安装安装配置 jdk8上传jdk压缩文件将文件jdk-8u212-linux-x64.tar.gz上传到 /root 目录2. 解压缩执行解压命令#将jdk解压到 /usr/local/ 目录tar -xf jdk-8u212-linux-x64.tar.gz -C /usr/local/#切换到 /usr/local/ 目录, 显示列表, 查看解压缩的jdk目录cd /usr/local配置环境变量修改 /etc/profile 配置文件, 配置环境变量
2020-09-15 15:55:10 1208
原创 微服务学习之seata-tcc学习
TCC介绍TCC 基本原理TCC 与 Seata AT 事务一样都是两阶段事务,它与 AT 事务的主要区别为:TCC 对业务代码侵入严重每个阶段的数据操作都要自己进行编码来实现,事务框架无法自动处理。TCC 效率更高不必对数据加全局锁,允许多个事务同时操作数据。a第一阶段 Try以账户服务为例,当下订单时要扣减用户账户金额:假如用户购买 100 元商品,要扣减 100 元。TCC 事务首先对这100元的扣减金额进行预留,或者说是先冻结这100元:第二阶段 Confirm如果第
2020-09-09 15:03:22 462
原创 微服务学习之docker的学习
Docker定义:Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是一个开发运维一体化的主要的软件和配置文件docker安装:官方安装手册https://docs.docker.com/install/linux/docker-ce/centos/卸载旧版本sudo yum remove docker-ce \
2020-09-08 16:40:34 223
原创 微服务学习之seata-at事务
seate-at案例学习导入数据库创建项目(略)导入依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency>
2020-09-07 14:41:52 426 1
原创 redis学习之集群的搭建
1 redis集群什么是redis集群(为什么要搭建redis集群):通常,为了提高网站响应速度,总是把热点数据保存在内存中而不是直接从后端数据库中读取。Redis是一个很好的Cache工具。大型网站应用,热点数据量往往巨大,几十G上百G是很正常的事儿。由于内存大小的限制,使用一台 Redis 实例显然无法满足需求,这时就需要使用多台 Redis作为缓存数据库。但是如何保证数据存储的一致性呢,这时就需要搭建redis集群.采用合理的机制,保证用户的正常的访问需求.采用redis集群,可以保证数据分
2020-09-03 15:47:30 197
原创 Java学习之ThreadLocal
什么是ThreadLocal:概念:ThreadLocal是Thread的局部变量,用于编多线程程序,对解决多线程程序的并发问题有一定的启示作用。ThreadLocal使用实战:为共享变量在每个线程中创建一个副本,每个线程可以访问自己内部的副本变量作用:每个线程之间相互不影响保证线程的一个安全性:代码示例:package com.thread;public class ThreadLocalDemo { private static Integer num = 0; pr
2020-09-03 14:52:14 158
原创 Java有关锁的面试题
什么是自旋锁?它可能引起什么问题?使用方面有哪些主页实现自旋锁(SpinLock): 当一个线程在获取锁的时候,如果锁已经被其他的线程获取,那么该线程就会进入循环等待的状态,然后在不停的询问是否成功的获取锁的资源,一直到获取锁的才会退出循环。通常在CAS(Compare and swap)算法中会使用到自旋锁。适应性自旋锁: JDK1.6之后对自旋锁进行了改进,引入了自适应自旋锁,随着程序的运行和性能的监控,JVM会对锁的情况进行预测,从而给出合适的自旋时间和更加智能.它可能引起什么问题:1、如果某个
2020-08-31 21:02:05 1766 1
原创 高并发学习之RestFul风格
什么是RESTful定义:RESTFUL是一种网络应用程序的设计风格和开发方式,基于HTTP,可以使用XML格式定义或JSON格式定义。RESTFUL适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。REST介绍REST即表述性状态传递(英文:Resource Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针
2020-08-27 17:50:24 695
原创 java优化之GC垃圾回收
1、什么是GC算法GC算法的概念:垃圾收集 Garbage Collection 通常被称为“GC”,它诞生于1960年 MIT 的 Lisp 语言,经过半个多世纪,目前已经十分成熟了。jvm 中,程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭,栈帧随着方法的进入和退出做入栈和出栈操作,实现了自动的内存清理,因此,我们的内存垃圾回收主要集中于 java 堆和方法区中,在程序运行期间,这部分内存的分配和使用都是动态的.2、 关于GC算法的代码分析代码import java.util.Ar
2020-08-26 19:42:52 300
原创 分布式学习之springboot实现图片文件的上传
1. 利用springboot实现图片文件的上传1.1利用springMVC实现文件上传的步骤:利用SpringMVC中提供的工具API,实现文件上传的简化. 记住类型:MultipartFile实现步骤: 1.接收资源文件 2.准备文件上传目录 3.准备文件上传的全路径 目录/文件名称1.2前端代码的编写jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEn
2020-08-25 16:21:34 394
原创 利用aop实现redis的缓存处理
1.利用aop实现redis的缓存处理1.1 业务说明由于将代码直接写道service业务层中,会导致代码的耦合性高不便于扩展,为了实现代码松耦合可以利用奥胖机制实现缓存处理2. AOP的知识回顾2.1 什么是AOPAOP = 通知方法 + 切入点表达式说明:当程序的执行曼珠了切尔u点表达式,代码执行的过程会发生变化,会执行通知方法AOP用途:将代码中不得不做的事情,放在切面中完成AOP作用:对原有的方法进行扩展业务中常用的aop的场景1.日志的记录2.监控执行时间3.实现事务控制
2020-08-25 16:21:12 1916
原创 分布式学习之ZooKeeper
Zookeeper的下载和安装1.1 ZooKeeper的下载⦁ Zookeeper下载网址: http://zookeeper.apache.org/releases.html.选择下载的版本选择下载或者下载Zookeeper地址.http://mirrors.hust.edu.cn/apache/zookeeper/ 选择版本可进行下载,点击进去之后选择第一个1.2 Zookeeper的安装利用linux辅助工具将下载好的安装包拖进Linux系统中并且进行解压在zk根目录
2020-08-25 16:20:54 171
原创 分布式学习之Dubbo框架的学习
1 dubbo框架Dubbo(读音[ˈdʌbəʊ])是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。1.1 dubbo框架的介绍https://dubbo.apache.org/zh-cn/Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Jav
2020-08-25 16:20:17 233
原创 分布式学习之redis学习
1.什么是redis缓存答:Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱
2020-08-14 09:27:50 247
原创 学习分布式第四天-练习分布式
1 关于项目的打包问题说明:1.1 项目打包1.2 项目发布验证第一步:找到项目打包的位置:java -jar xxxx.jar/java -jar xxxx.war //这里的是jar包还是war包视自己情况而定2 网页分页的实现:2.1 mybatis实现分页2.1.1 创建分页的工具类package com.guofei.com.dongba.utils.pojo;import lombok.Data;import java.io.Serializable;impor
2020-08-03 10:38:11 215
原创 分布式学习第三天-初始分布式
1 创建maven项目并导入springboot的jar包1.1 创建maven项目:1.2 springboot项目的创建项目包中找到pom文件,输入以下代码: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.2.RELEAS
2020-07-30 18:33:00 229
原创 分布式学习第二天
1.springBoot加强:1.1 属性赋值问题1.1.1业务需求:说明:如果将配置信息通过代码的形式写死到代码中,这样的化程序的耦合性高,不便扩展需求:能否为对象的属性动态赋值1.1.2@value方式赋值:@RestControllerpublic class JDBCController { //value的作用:从spring容器中找到具体的key,为属性赋值 @Value("${jdbc.username}") private String username; @Value
2020-07-29 09:35:35 176
原创 学习分布式的第一天
1.京淘系统的架构图京淘项目整体流程图设计。在Linux系统实现运行,上线运行。2.数据库物理模型图的使用2.1安装数据库的连接工具(sqlyog倒入sql语句)2.2为什么需要物理模型图原因说明:通过数据库工具虽然可以展现相关信息,单数无法直观的检查表与表之间的关联该安息是什么,例如主外键关联等,所以需要一种能够直观展现表与表之间关系的工具,并且该工具具有扩展性,2.4PowerDesigner的介绍和使用在网上搜索(powerDesigner)会出现相应的流程介绍2.5 新建第一个物
2020-07-28 12:04:08 156
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人