自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 资源 (9)
  • 收藏
  • 关注

原创 spark

安装1、下载软件解压缩,移动到指定位置cd /opt/software/tar zxvf spark-2.4.5-bin-without-hadoop-scala-2.12.tgzmv spark-2.4.5-bin-without-hadoop-scala-2.12/ ../servers/spark-2.4.5/2、设置环境变量,并使之生效vi /etc/profileexport SPARK_HOME=/opt/servers/spark-2.4.5 export P

2021-10-25 07:59:19 172

原创 DDD 领域建模

在 DDD 领域建模和系统建设过程中,有很多的参与者,包括领域专家、产品经理、项目经理、架构师、开发经理和测试经理等。对同样的领域知识,不同的参与角色可能会有不同的理解,那大家交流起来就会有障碍,怎么办呢?因此,在 DDD 中就出现了“通用语言”和“限界上下文”这两个重要的概念通用语言在事件风暴过程中,通过团队交流达成共识的,能够简单、清晰、准确描述业务涵义和规则的语言就是通用语言。限界上下文我们知道语言都有它的语义环境,同样,通用语言也有它的上下文环境。为了避免同样的概念或语义在不同的上下

2021-09-13 15:03:39 415

原创 实体和值对象

实体是什么在 DDD 中有这样一类对象,它们拥有唯一标识符,且标识符在历经各种状态变更后仍能保持一致。对这些对象而言,重要的不是其属性,而是其延续性和标识,对象的延续性和标识会跨越甚至超出软件的生命周期。我们把这样的对象称为实体。在 DDD 不同的设计过程中,实体的形态是不同的1,实体的业务形态在战略设计时,实体是领域模型的一个重要对象。领域模型中的实体是多个属性、操作或行为的载体,在事件风暴中,我们可以根据命令、操作或者事件,找出产生这些行为的业务实体对象;2,实体的代码形态在

2021-09-08 16:28:16 4050

原创 限界上下文

请先思考两个问题:1,为什么要提出限界上下文的概念(也就是说除了解决交流障碍这个广义的原因,还有更具体的吗)?2,限界上下文在微服务设计中的作用和意义是什么?为了更好地理解限界上下文,回答这两个问题,我们先从通用语言讲起。怎么理解通用语言这个概念呢?在事件风暴过程中,通过团队交流达成共识的,能够简单、清晰、准确描述业务涵义和规则的语言就是通用语言。也就是说,通用语言是团队统一的语言,不管你在团队中承担什么角色,在同一个领域的软件生命周期里都使用统一的语言进行交流。那么,通用语言

2021-09-06 16:45:24 728

原创 “子域”和“限界上下文”

在DDD中包括问题域和解决方案域两个不同的维度。问题域主要从业务视角来考虑,完成从领域到子域的分解,而解决方案域则主要从技术实现的角度,通过划分限界上下文和采用DDD战术设计完成微服务拆分和落地。“子域”和“限界上下文”这两个概念分别从不同的视角,构建起了DDD 处理业务复杂度的根基。个人认为“子域”和“限界上下文”在大多数情况下是一对一或者一对多的映射关系。从实践角度,我们可以这样理解,我们不妨将业务领域的分解拆分为两个阶段:从领域到子域的粗粒度的分解和从子域到限界上下文的技术实现级的分解。有时候企

2021-09-06 15:35:36 1336

原创 DDD 的领域、子域、核心域、通用域和支撑域等重要概念

领域就是用来确定范围的,范围即边界,这也是 DDD 在设计中不断强调边界的原因。在研究和解决业务问题时,DDD 会按照一定的规则将业务领域进行细分,当领域细分到一定的程度后,DDD 会将问题范围限定在特定的边界内,在这个边界内建立领域模型,进而用代码实现该领域模型,解决相应的业务问题。简言之,DDD 的领域就是这个边界内要解决的业务问题域。...

2021-09-06 15:02:08 1372

原创 HBase(2)——hbase数据模型和命令行使用

介绍列式存储格式(对比mysql)HBase 基于 Google的BigTable论⽂⽽来,是⼀个分布式海量列式⾮关系型数据库系统,可以提供超⼤规模数据集的实时随机读写。列存储的优点1)减少存储空间占⽤。 2)⽀持好多列HBase的特点海量存储: 底层基于HDFS存储海量数据 列式存储:HBase表的数据是基于列族进⾏存储的,⼀个列族包含若⼲列 极易扩展:底层依赖HDFS,当磁盘空间不⾜的时候,只需要动态增加DataNode服务节点...

2021-08-16 21:30:54 232

原创 Hive调优策略

Hive作为大数据领域常用的数据仓库组件,在设计和开发阶段需要注意效率。影响Hive效率的不仅仅是数据量过大;数据倾斜、数据冗余、job或I/O过多、MapReduce分配不合理等因素都对Hive的效率有影响。对Hive的调优既包含对HiveQL语句本身的优化,也包含Hive配置项和MR方面的调整。从以下三个方面展开:架构优化参数优化SQL优化一、架构优化1.1执行引擎Hive支持多种执行引擎,分别是 MapReduce、Tez、Spark、Flink。可以通过hive..

2021-08-14 20:20:56 719

原创 安装私有镜像仓库

最近又发现了一款好用的Maven插件,fabric8io出品的docker-maven-plugin,可以把SpringBoot应用方便的部署到Docker容器中去。该插件可以实现打包镜像、推送到镜像仓库、运行应用等一系列操作,本文将对其用法进行详细介绍,希望对大家有所帮助!安装私有镜像仓库由于之后我们需要推送到私有镜像仓库,我们预先安装好,使用的是Docker公司开发的私有镜像仓库Registry。 下载Registry的Docker镜像; docker pull regis..

2021-08-02 09:19:14 507

原创 我常用的IDEA插件大公开,个个是精品!

总结了平时工作中常用的几款IDEA插件,后端和前端的都有了,附上我的使用技巧,看完之后开发效率杠杠的!LombokLombok为Java项目提供了非常有趣的附加功能,使用它的注解可以有效的地解决那些繁琐又重复的代码,例如 Setter、Getter、toString、equals、hashCode 以及非空判断等。Free MyBatis PluginMyBatis扩展插件,可以在Mapper接口的方法和xml实现之间自由跳转,也可以用来一键生成某些xml实现。...

2021-08-01 16:59:42 198

原创 IDEA同款数据库管理工具,提示太全了,用起来贼香!

最近体验了一把Jetbrains出品的数据库管理工具DataGrip,发现SQL提示真的很全,写起SQL来特别顺手,各种数据库支持也很全。整理了下其用法和使用技巧,助大家码出更高质量的SQL。下载https://www.jetbrains.com/datagrip/理解数据库选中表右键->修改表即可查看数据库表的相关信息;新建时可以添加表中的列,并且可以预览对应的SQL脚本;编写SELECT *语句并不是好习惯,可以通过选中*再使用Alt+Enter...

2021-08-01 16:17:31 2132

原创 Swagger界面丑、功能弱怎么破?用Postman增强下就给力了!

在使用Swagger的时候,你是否会有这种感觉:提交参数为JSON没法格式化,参数错了查找麻烦,返回结果没法折叠,太长了没法看!Swagger结合Postman使用后这一情况有很大改变,今天我们来讲下如何使用Postman增强Swagger的功能,希望对大家有所帮助!Postman使用Postman是一款API接口调试工具,使用它可以很方便的对接口进行测试,并且后端人员可以将自己的调试结果导出,方便前端人员调试。安装 下载地址:https://www.getpostman.com/.

2021-08-01 15:34:02 197

原创 Sqoop

Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、 postgresql等)间进行数据的传递。可以将关系型数据库(MySQL ,Oracle ,Postgres等)中的数据导入到HDFS中,也可以将HDFS的数据导进到关系型数据库 中。...

2021-07-20 08:05:18 150

原创 Flume-实战

Flume由Cloudera公司开发,是一个分布式、高可靠、高可用的海量日志采集、聚 合、传输的系统。Flume支持在日志系统中定制各类数据发送方,用于采集数据; Flume提供对数据进行简单处理,并写到各种数据接收方的能力。 简单的说,Flume是实时采集日志的数据采集引擎。 Flume有3个重要组件:Source、Channel、Sink 特点: 分布式:flume分布式集群部署,扩展性好 可靠性好: 当节点出现故障时,日志能够被传送到其...

2021-07-13 08:24:36 367

原创 MapReduce(2)——编程实战

MapReduce编程须知map()方法是对输入的一个KV对调用一次!!Reduce()方法是对相同K的一组KV对 调用执行一次一、WordCount统计功能1.1 需求1.2 思路梳理Map阶段:1. map()方法中把传入的数据转为String类型 2. 根据空格切分出单词 3. 输出<单词,1>Reduce阶段:1. 汇总各个key(单词)的个数,遍历value数据进行累加 2. 输出key的总数...

2021-07-04 17:42:53 491 2

原创 HDFS(1)(2)——解读上传、下载(读写)、元数据管理原理

一、HDFS上传和下载流程图讲解1.1 HDFS读数据流程1. 客户端通过Distributed FileSystem向NameNode请求下载文件,NameNode通过查询元数据,找到文件块所在的DataNode地址(块信息和块存储的节点信息)。 2. 向DataNode(就近原则,然后随机)服务器发送请求读取数据。 3. DataNode开始传输数据给客户端(从磁盘里面读取数据输入流,以Packet为单位来做校验)。 4. 客户端以Packet为单位接收,先在本地缓存,然后写入目标文

2021-06-27 20:08:34 463

原创 HDFS(1)(3)——编码实战

一、客户端环境准备(1)将Hadoop-2.9.2安装包解压到非中文路径(例如:E:\hadoop-2.9.2)(2)配置HADOOP_HOME环境变量(3)创建一个Maven工程,添加依赖<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifac

2021-06-27 15:03:31 187

原创 redis(1)(2)——数据类型和应用场景、命令行操作

一、连接启动服务./redis-server redis.conf连接./redis-cli -h 127.0.0.1 -p 6379或者./redis-cli二、Redis数据类型和应用场景Redis是一个Key-Value的存储系统,使用ANSI C语言编写。注意:Redis中命令是忽略大小写,(set SET),key是不忽略大小写的 (NAME name)2.1 Key的设计key的类型是字符串。1. 用:分割2. 把表名转换为key前缀,.

2021-06-25 07:41:50 179

原创 redis(1)(3)——底层数据结构

Redis作为Key-Value存储系统RedisDB结构Redis中存在“数据库”的概念,该结构由redis.h中的redisDb定义。 当redis 服务器初始化时,会预先分配 16 个数据库 所有数据库保存到结构 redisServer 的一个成员 redisServer.db 数组中 redisClient中存在一个名叫db的指针指向当前使用的数据库...

2021-06-24 07:25:39 107

原创 redis(4)(1)——(总结)缓存、分布式锁

缓存问题缓存穿透缓存穿透是指在高并发下查询key不存在的数据,会穿过缓存查询数据库。导致数据库压力过大而宕机 解决方案: 对查询结果为空的情况也进行缓存,缓存时间(ttl)设置短一点,或者该key对应的数据insert了 之后清理缓存。 问题:缓存太多空值占用了更多的空间 使用布隆过滤器。在缓存之前在加一层布隆过滤器,在查询的时候先去布隆过滤器查询 key 是否 存在,如果不存在就直接返回,存在再查缓存和DB。...

2021-06-20 22:25:15 122

原创 redis(3)(2)——Cluster分区与集群

分区分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据分区的意义

2021-06-20 20:52:54 345

原创 redis(1)(1)——缓存原理&设计

缓存基本思想什么是缓存?缓存原指CPU上的一种高速存储器,它先于内存与CPU交换数据,速度很快。现在泛指存储在计算机上的原始数据的复制集,便于快速访问。 在互联网技术中,缓存是系统快速响应的关键技术之一 ,以空间换时间的一种技术(艺术) 缓存的使用场景 DB缓存,减轻DB服务器压力一般情况下数据存在数据库中,应用程序直接操作数据库。 当访问量上万,数据库压力增大,可以采取的方案有: 读写分离,分库分表 当访问量达到10万、百万,需要引入缓存。 ...

2021-06-20 08:35:06 103

原创 redis(3)(1)——哨兵模式

哨兵(sentinel)是Redis的高可用性(High Availability)的解决方案: 由一个或多个sentinel实例组成sentinel集群可以监视一个或多个主服务器和多个从服务器。 当主服务器进入下线状态时,sentinel可以将该主服务器下的某一从服务器升级为主服务器继续提供服 务,从而保证redis的高可用性。...

2021-06-20 08:26:16 113

原创 redis(2)——主从复制

主从复制Redis支持主从复制功能,可以通过执行slaveof(Redis5以后改成replicaof)或者在配置文件中设置 slaveof(Redis5以后改成replicaof)来开启复制功能。一、特点主对外从对内,主可写从不可写 主挂了,从不可为主二、作用2.1 读写分离一主多从,主从同步 主负责写,从负责读 提升Redis的性能和吞吐量 需要注意点:主从的数据一致性问题2.2 数据容灾从机是主机的备份 需要注意点...

2021-06-17 07:56:29 200

原创 HDFS(1)(1.2)——集群安装(HA)

概述 1. 所谓HA(High Available),即高可用(7*24小时不中断服务)。 2. 实现高可用最关键的策略是消除单点故障。Hadoop-HA严格来说应该分成各个组件的HA机制: HDFS的HA和YARN的HA3. Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF)。 4. NameNode主要在以下两个方面影响HDFS集群 NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 Na...

2021-05-21 08:33:20 78

原创 Zookeeper(3)——命令行使用,编程实践总结(对监听,分布式锁)

命令行使用编程实践之监听编程实践之分布式锁

2021-05-21 08:24:51 129

原创 Zookeeper(2)——数据结构,监听,选举,zab协议介绍

前面Zookeeper(1),我们介绍了下zookeeper和如何安装zookeeper集群,本篇文章我们主要详细介绍zookeeper的数据结构,突出特征(监听机制),选举原理等。Zookeeper数据结构数据结构Znode特征在ZooKeeper中,数据信息被保存在一个个数据节点上,这些节点被称为znode。ZNode 是 Zookeeper 中最小数据单位,在 ZNode 下面又可以再挂 ZNode,这样一层层下去就形成了一个层次化 命名空间 ZNode 树,我们称为 ZNode

2021-05-20 07:09:14 107

原创 Zookeeper(1)——集群安装

介绍Zookeeper 是一个分布式协调服务的开源框架。 主要用来解决分布式集群中应用系统的一致性问题, 例如怎样避免同时操作同一数据造成脏读的问题。分布式系统中数据存在一致性的问题!!ZooKeeper 本质上是一个分布式的小文件存储系统。 提供基于类似于文件系统的目录树方式的数 据存储,并且可以对树中的节点进行有效管理。 ZooKeeper 提供给客户端监控存储在zk内部数据的功能,从而可以达到基于数据的集群管理。 诸 如: 统一命名服务(dubbo)、分布式配置管理..

2021-05-19 08:40:39 168

原创 impala(2)——使用总结

使⽤Yum⽅式安装Impala后,impala-shell可以全局使⽤;进⼊impala-shell命令⾏ impala-shell进⼊到impala的交互窗⼝impala-shellmkdir -p /home/impala/datavim user.csv392456197008193000,张三,20,0267456198006210000,李四,25,1892456199007203000,王五,24,1492456198712198000,赵六,26,23924

2021-05-15 20:59:27 458

原创 impala(1)——安装

概述Impala是Cloudera提供的⼀款开源的针对HDFS和HBASE中的PB级别数据进⾏交互式实时查询(Impala 速度快)Impala是参照⾕歌的新三篇论⽂当中的Dremel实现⽽来,其中旧三篇论⽂分别是 (BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。 Impala最⼤卖点和最⼤特点就是快速,Impala中⽂翻译是⾼⻆羚⽺Impala的诞⽣之前学习的Hive以及MR适合离线批处理,但是对交..

2021-05-15 07:40:06 262

原创 hive(3)——高级-sql业务案例汇总

1、连续7天登录的用户创建表和加载数据vim /home/hadoop/data/ulogin.dat1 2019-07-11 11 2019-07-12 11 2019-07-13 11 2019-07-14 11 2019-07-15 11 2019-07-16 11 2019-07-17 11 2019-07-18 12 2019-07-11 12 2019-07-12 12 2019-07-13 02 2019-07-14 12 2019-07-15 12 20

2021-05-09 18:02:59 280

原创 Hive(2)——使用总结

一、入门须知1.1 hive命令linux查看hive -help;查询hive -e "select * from users";使用hive命令sql语句编写:select '1.0' + 2;select '111' >1;select cast('111' as int );select arr[0] from ( select array(1,2) arr) tmp;执行脚本中sql语句-f:执行脚本中sql语句# 创建文件h

2021-05-08 08:15:44 728

原创 Hive(1)——安装

概念基于Hadoop的一个数据仓库工具,可以将 结构化的数据文件 映射为一张表(类似于RDBMS中的表),并提供类SQL查询功能Hive是由Facebook开源,用于解决海量结构化日志的数据统计。Hive本质是:将 SQL 转换为 MapReduce 的任务进行运算,底层由HDFS来提供数据存储可以将Hive理解为一个:将 SQL 转换为 MapReduce 任务的工具;Hive的优缺点优点 学习成本低。Hive提供了类似SQL的查询语言,开发人员能快速上手;处理海量数据。.

2021-05-08 06:47:17 158 2

原创 DDL,DML,DCL举例

一、DDL is Data Definition Language statements.数据定义语言,用于定义和管理 SQL 数据库中的所有对象的语言。1、CREATE - to create objects in the database 创建。2、ALTER - alters the structure of the database 修改。3、DROP - delete objects from the database 删除。4、TRUNCATE - remove a...

2021-05-07 08:01:00 170

原创 MapReduce(1)——原理讲解

一、MapTask运行机制详解对输入目录中文件进行逻辑切片:splits,有多少个split就对应启动多少个MapTask 分区(按key.hashcode%reduceTask进行分区,默认100M)——>溢写到磁盘临时文件(对分区80%的空间数据进行溢写,按key排序,快排)——>分区合并(归并排序,记录一个索引文件,即每个reduce对应数据的偏移量)MapTask 并行度有多少个MapTask就对应多少个split,一个分片大小默认等于block的大小=128...

2021-04-08 14:05:56 166

原创 带你一步一步从容理解事务级别

一.脏读1. 一个事务,读取了另一个事务中没有提交的数据,会在本事务中产生的数据不一致的问题解决方式:@Transactional(isolation = Isolation.READ_COMMITTED)读已提交:READ COMMITTED要求Transaction01只能读取Transaction02已提交的修改。二、不可重复读一个事务中,多次读取相同的数据, 但是读取的结果不一样, 会在本事务中产生数据不一致的问题。解决方式:@Transac...

2021-04-06 11:34:33 160

原创 栈内存和队列的底层演示

栈内存和队列的底层原理演示

2021-04-06 11:22:18 1911

原创 mysq之使用锁

锁分类从性能上分为乐观锁(用版本对比来实现)和悲观锁 从对数据库操作的类型分,分为读锁和写锁(都属于悲观锁) 读锁(共享锁,S锁(Shared)):针对同一份数据,多个读操作可以同时进行而不会互相影响 写锁(排它锁,X锁(eXclusive)):当前写操作没有完成前,它会阻断其他写锁和读锁 从对数据操作的粒度分,分为表锁和行锁表锁每次操作锁住整张表。开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低;一般用在整表数据迁移的场景。#手动增加表..

2021-04-06 11:18:41 64

原创 mysql底层原理(索引)

注:数据库引擎包括innodb,myisam,本篇主要针对innodbinnodb数据库底层数据结构为B+Tree查看数据文件存储位置#登录数据库,进行查询SHOW VARIABLES LIKE '%datadir%'例如:我的mybatis_example库t_user表文件结构(只有一个文件:t_user.frm)特点非叶子节点不存储data,只存储索引(冗余),可以放更多的索引 叶子节点包含所有索引字段 叶子节点之间用双向指针连接,提高区间访问的性能下图

2021-04-06 10:40:34 98

原创 zookeeper选举原理和zab协议

一、选举原理首先每一个节点都有一个myid,节点一启动,就会进行查找leader,如果没有找到,就会进行投票,它会接受到其它节点的投票信息,然后拿自己的和收到的投票格式进行对比(先比较zxid,谁的大,谁(节点)的zxid大,并且超过半数,谁就是leader)投票格式为(myId,zxid),即选举机制保证了leader为所有机器的最大事务一、zab协议Zookeeper 的核心是原子广播机制,这个机制保证了各个 server 之间的同步,保证了多节点数据的一致性。实现这个机制.

2021-04-05 21:43:45 341

Docker.docx

此文档为自己工作使用docker的总结,语言比较干练,都是命令操作,从启动到查看,到拉取,安装,循序渐进,可以作为docker操作速查的最佳文档

2020-11-07

SpringBoot.docx

此文档为springboot项目搭建的实战篇,如果有使用springboot的同学,相信都在走springcloud微服务路线,所以这篇算是入门,希望可以帮助一些朋友

2020-11-07

maven.docx

maven是java开发人员必须要懂和精通的东西,这里是自己工作总结出来的,对maven管理和私服搭建的总结,希望可以帮到一些人

2020-11-07

mysql高级.docx

这篇msql高级是完全的干货,自己工作中经常用到的总结,总结mysql较深入的知识,比如库参数性能优化、索引优化,查看执行计划等,还有一篇mysql基础,建议mysql基础和mysql高级一起下载下来

2020-11-07

mysql基础.docx

这篇msql基础入门是完全的干货,自己工作中经常用到的语句总结,适合mysql入门人员和语句速查,简洁,干练,不废话。还有一篇msql高级,总结的mysql较深入的知识,比如库参数性能优化、索引优化,查看执行计划等,建议mysql基础和mysql高级一起下载下来

2020-11-07

weblogic安装_linux.docx

Linux下Weblogic10.3安装配置手册,无界面安装,本人已成功安装

2019-08-22

javaSE题目优化,与连接数据库

这里总共有201道题,是自己亲手做完了的,希望有机会帮助更多的人,愿意跟大家分享也是觉得Java有开源的的特点,所以希望大家下载下来,能有所帮助!很不错的题,难度中偏上,希望大家还可以分享给别的小伙伴

2016-12-02

javaSE所有经典题目

此套资源是总结出来的,适合Java初学者用来练习,检验自己掌握基础知识,灵活写代码的能力,其中大多数是有点难度,如果你下载后能轻松做出,说明你的能力相对于广大初中级编程人员来说,是处于中上流的!!

2016-11-27

23种设计模式.chm

熟悉各种设计模式,会灵活运用很关键,希望分享给大家

2016-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除