摘要: 公平锁:是指多个线程按照申请锁的顺序来获取锁,有点先来后到的意思。在并发环境中,每个线程在获取锁时会先查看此锁维护的队列,如果为空,或者当前线程是等待队列的第一个,就占有锁,否则就会加入到等待队列中,以后会按照 FIFO 的规则从队列中取到自己。非公平锁:指多个线程获取锁的顺序并不是按照申请锁的顺序 阅读全文
posted @ 2020-11-21 17:06 Java程序员进阶 阅读(61) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往个人博客 一、Tomcat 顶层架构 ​ Tomcat 中最顶层的容器是 Server,代表着整个服务器,从上图中可以看出,一个 Server可以包含至少一个 Service,用于具体提供服务。Service 主要包含两个部分:Connector 和 Container。从上图中可以看 阅读全文
posted @ 2020-11-21 17:05 Java程序员进阶 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 如今,几乎每家企业都在大谈数据化,推动数字化创新。其实,在整个变革过程中,数据才是最重要的一环。所以“数据变成现代企业竞争的新资源”,这种说法一点都不夸张,大家都在试图枪占更多数据,但实际上,到今天为止,从大量收集数据到转化为实际的数据价值,还有一定的挑战。只有那些能够解决大数据挑战的企业,才能真正 阅读全文
posted @ 2020-11-21 17:04 Java程序员进阶 阅读(271) 评论(0) 推荐(0) 编辑
摘要: Java 提供的对象输入流(ObjectInputStream)和输出流(ObjectOutputStream),可以直接把 Java 对象作为可存储的字节数据写入文件,也可以传输到网络上。对于程序员来说,基于 JDK 默认的序列化机制可以避免操作底层的字节数组,从而提高开发效率。Java 序列化的 阅读全文
posted @ 2020-11-21 17:03 Java程序员进阶 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、Elasticsearch了解多少 ElasticSearch 是一个基于 Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful web接口。Elasticsearch 是用 Java开发的,并作为 Apache许可条款下的开 阅读全文
posted @ 2020-11-21 17:00 Java程序员进阶 阅读(65) 评论(0) 推荐(0) 编辑
摘要: Spring Data Solr 就是为了方便 solr 的开发研制的一个框架,其底层是对 SolrJ(官方 API)的封装 一、环境搭建 第一步:创建 Maven 项目(springdatasolrDemo 打包方式为 jar 类型)第二步:pom.xml 文件中引入项目相关的依赖: 1 <dep 阅读全文
posted @ 2020-11-21 16:59 Java程序员进阶 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 如今随着互联网的发展,数据的量级也是呈指数的增长,从 GB 到 TB 到 PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候 NoSQL 的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂 阅读全文
posted @ 2020-11-21 16:55 Java程序员进阶 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 现实世界中,所有的数据都是以流式的形态产生的,不管是哪里产生的数据,在产生的过程中都是一条条地生成,最后经过了存储和转换处理,形成了各种类型的数据集。如下图所示,根据现实的数据产生方式和数据产生是否含有边界(具有起始点和终止点)角度,将数据分为两种类型的数据集,一种是有界数据集,另外一种是无界数据集 阅读全文
posted @ 2020-11-20 17:46 Java程序员进阶 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 一、运行环境介绍 Flink执行环境主要分为本地环境和集群环境,本地环境主要为了方便用户编写和调试代码使用,而集群环境则被用于正式环境中,可以借助Hadoop Yarn、k8s 或 Mesos等不同的资源管理器部署自己的应用。环境依赖:【1】JDK环境:Flink核心模块均使用 Java开发,所以运 阅读全文
posted @ 2020-11-20 17:44 Java程序员进阶 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 一、什么是状态 无状态计算的例子:例如一个加法算子,第一次输入 2+3=5 那么以后我多次数据 2+3 的时候得到的结果都是5。得出的结论就是,相同的输入都会得到相同的结果,与次数无关。有状态计算的例子:访问量的统计,我们都知道 Nginx 的访问日志一个请求一条日志,基于此我们就可以统计访问量。如 阅读全文
posted @ 2020-11-20 17:41 Java程序员进阶 阅读(18) 评论(0) 推荐(0) 编辑
摘要: Flink API 总共分为4层链接这里主要整理 Table API 的使用 Table API是流处理和批处理通用的关系型 API,Table API可以基于流输入或者批输入来运行而不需要进行任何修改。Table API 是 SQL语言的超集并专门为 Apache Flink设计的,Table A 阅读全文
posted @ 2020-11-20 17:25 Java程序员进阶 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 一、基本组件栈 在Flink整个软件架构体系中,同样遵循着分层的架构设计理念,在降低系统耦合度的同时,也为上层用户构建 Flink应用提供了丰富且友好的接口。从下图中可以看出整个 Flink的架构体系基本上可以分为三层,由上往下依次是 API & Libraries层、Runtime核心层以及物理部 阅读全文
posted @ 2020-11-20 17:15 Java程序员进阶 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】: Could not build the program from JAR file. Use the help option (-h or --help) to get help on the command. 【产生原因】:之前 per-job启动的时候,它们都用 flink1.8 阅读全文
posted @ 2020-11-20 17:12 Java程序员进阶 阅读(91) 评论(0) 推荐(0) 编辑
摘要: Flink 提供了丰富的客户端操作来提交任务和与任务进行交互。下面主要从Flink命令行、Scala Shell、SQL Client、Restful API 和 Web 五个方面进行整理。 在 Flink 安装目录的 bin目录下可以看到 flink,start-scala-shell.sh 和 阅读全文
posted @ 2020-11-20 17:07 Java程序员进阶 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 在介绍 Checkpoint 的执行机制前,我们需要了解一下 state 的存储,因为 state 是 Checkpoint 进行持久化备份的主要角色。Checkpoint 作为 Flink 最基础也是最关键的容错机制,Checkpoint 快照机制很好地保证了 Flink 应用从异常状态恢复后的数 阅读全文
posted @ 2020-11-20 17:02 Java程序员进阶 阅读(44) 评论(0) 推荐(0) 编辑
摘要: Flink 的 API 大体上可以划分为三个层次:处于最底层的 ProcessFunction、中间一层的 DataStream API 和最上层的 SQL/Table API,这三层中的每一层都非常依赖于时间属性。时间在 Flink 中的地位如下图所示:​时间属性是流处理中最重要的一个方面,是流处 阅读全文
posted @ 2020-11-20 16:55 Java程序员进阶 阅读(11) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 负载均衡(Load Balance): 意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其他任务服务器等,从而共同完成工作任务。负载均衡建立在现有的网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的宽带、增加吞 阅读全文
posted @ 2020-11-20 16:50 Java程序员进阶 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、为什么 Nginx可以采用异步非阻塞的方式来处理 看看一个请求的完整过程:请求过来,要建立连接,然后再接收数据,接收数据后,再发送数据。 具体到系统底层,就是读写事件,而当读写事件没有准备好时,必然不可操作,如果不用非阻塞的方式来调用,那就得阻塞调用了,事件没有准 阅读全文
posted @ 2020-11-20 16:45 Java程序员进阶 阅读(446) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、目前常见的Web服务器 【1】 Apache(http://httpd.apache.otg):仍是世界上用的最多的web服务器,市场占有率60%左右,模块非常丰富,系统非常稳点,可移植性好,但比较消耗内存。并发能力比较差。最多支持到3千到5千。 【2】 Ligh 阅读全文
posted @ 2020-11-20 16:32 Java程序员进阶 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 优质博文 IT-BLOG-CN 虚拟主机使用的是特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台 “虚拟” 的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完成的Intemet服务器功能(WWW、FTP、Email等),同一台主机上的虚拟主机之间是完全独立的。从网站访 阅读全文
posted @ 2020-11-20 16:19 Java程序员进阶 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 一、RPC 服务的原理 【1】Socket 套接字:网络上的两个程序通过一个双向的通信连接实现数据的交换,这个链接的一端称为 Socket。可以实现不同计算机之间的通信,是网络编程接口的具体实现。Socket 套接字是客户端/服务端网络结构程序的基本组成部分。【2】RPC 的调用过程:实现透明的远程 阅读全文
posted @ 2020-11-20 14:59 Java程序员进阶 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、是什么 Docker 的理念:将运行的环境打包形成容器运行,运行可以伴随着容器,但是我们希望对数据做持久化,同时希望容器之间能够共享数据。Docker 产生的数据,如果不通过 docker commit 生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删 阅读全文
posted @ 2020-11-20 14:23 Java程序员进阶 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG-CN 一、Dockerfile 是什么? DockerFile 是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本 构建三步骤: 编写 Dockerfile 文件——>docker build——>docker run例如:centos 构建文件: 阅读全文
posted @ 2020-11-20 14:21 Java程序员进阶 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 目录 一、简介 二、Docker的基本组成 三、Docker的安装 四、配置国内阿里云镜像加速 五、Hello World 上手实践 六、Docker底层原理 更多内容,前往 IT-BLOG 一、简介 Docker 是基于 Go 语言实现的云开源项目。主要目标是 “Build,Ship and Ru 阅读全文
posted @ 2020-11-20 14:18 Java程序员进阶 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 一、帮组命令 ● docker version :验证Docker安装的信息 ● docker info:比version更详细的Docker信息 ● docker --help:Docker帮助文档 二、Docker启动、停止、重启命令 ● service docker start:启动 ● se 阅读全文
posted @ 2020-11-20 14:13 Java程序员进阶 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 一、Redis 持久化方式(RDB) 【1】RDB(Redis DataBase): 在指定的时间间隔内将内存中的数据集以快照的形式写入磁盘,也就是行话讲的 Snapshot (快照),它恢复时是将快照文件直接读到内存里。Redis 会单独创建(Fork)一个子进程来进行持久化,会先将数据写入到一个 阅读全文
posted @ 2020-11-20 13:43 Java程序员进阶 阅读(31) 评论(0) 推荐(0) 编辑
摘要: Redis 事务:可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序串行化执行而不会被其它命令插入,一次性、顺序性、排他性的执行一系列命令。 一、常用命令 【1】:开启一个事务【2】 :执行事务中的命令。可以看到 开始到 之间,所有的命令都会被加入到一个命令队列中。当 阅读全文
posted @ 2020-11-20 13:19 Java程序员进阶 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 在软件开发中,会遇到有些问题多次重复出现,而且有一定的相似性和规律性。如果将它们归纳成一种简单的表达式(例如:正则表达式等),那么这些问题实例将是该表达式的一些句子,这样就可以用 “编译原理” 中的解释器模式来实现。 一、解释器模式基本介绍 【1】解释器模式(Inte 阅读全文
posted @ 2020-11-20 13:07 Java程序员进阶 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 一、Linux 操作系统 【1】ulimit 与 TCP backlog:1)、修改 ulimit:通过 ulimit 修改 open files 参数,redis 建议把 open files 至少设置成 10032,因为 maxclients 是10000 [客户端的数据是以文件的形式进行保存的 阅读全文
posted @ 2020-11-20 11:33 Java程序员进阶 阅读(638) 评论(0) 推荐(0) 编辑
摘要: 系统性学习,移步IT-BLOG 一、简介 对于类似于首页这种每天都有大量的人访问,对数据库造成很大的压力,严重时可能导致瘫痪。解决方法:一种是数据缓存、一种是网页静态化。今天就讨论数据缓存的实现 Redis:是一种开源的 Key-Value 数据库,运行在内存中,企业开发通常采用 Redis 来实现 阅读全文
posted @ 2020-11-20 11:27 Java程序员进阶 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 一、Redis-Cluster 简介 【1】Redis 集群(Redis-Cluster)提供了在多个 Redis 节点间共享数据的功能。【2】Redis 集群通过分区来提高可用性。可自动分割数据到不同的节点上,集群的部分节点失败或者不可达时能够继续处理请求。【3】Redis Cluster 集群模 阅读全文
posted @ 2020-11-20 11:20 Java程序员进阶 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 一、什么是缓存 【1】缓存就是数据交换的缓冲区(称作:Cache),当某一硬件要读取数据时,会首先从缓存中查询数据,有则直接执行,不存在时从磁盘中获取。由于缓存的数据比磁盘快的多,所以缓存的作用就是帮助硬件更快的运行。【2】缓存往往使用的是RAM(断电既掉的非永久存储),所以在用完后还是会把文件送到 阅读全文
posted @ 2020-11-20 11:19 Java程序员进阶 阅读(555) 评论(0) 推荐(1) 编辑
摘要: 分布式应用进行逻辑处理时经常会遇到并发问题,我们首先肯定会想到锁。关于锁大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常我们使用 synchronized 、Lock 来加锁。但是 Java中的锁,只能保证在同一个 JVM进程内中执行。如果在分布式集群环境下呢? 一 阅读全文
posted @ 2020-11-20 11:18 Java程序员进阶 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 一、字符控制函数 函数 结果 CONCAT('Hello','World') HelloWorld SUBSTR('HelloWorld',1,5) Hello LENGTH('HelloWorld') 10 INSTR('HelloWorld','W') 6 LPAD(salary,10,'*') 阅读全文
posted @ 2020-11-20 09:56 Java程序员进阶 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 一、视图 从表中抽出的逻辑上相关的数据集合,视图是一种虚表,视图是建立在已有表的基础之上,视图赖以建立的这些表称为基表。向视图提供数据的是 SELECT 语句,可以将视图理解为存储起来的 SELECT 语句。视图中的数据会随着基表的变化而变化。 那为什么要使用视图呢? 1)、控制数据访问 2)、简化 阅读全文
posted @ 2020-11-20 09:46 Java程序员进阶 阅读(6) 评论(0) 推荐(0) 编辑
摘要: Oracle 公司是世界上最大的信息管理软件及服务提供商,因其复杂的关系数据库产品而闻名。Oracle 的关系数据库是世界上第一个支持 SQL 语言的数据库。支持服务器/客户机等部署。Oracle 数据库管理系统是目前世界上最流行的一款关系型数据库管理系统。 一、Oracle 数据库体系结构简介 平 阅读全文
posted @ 2020-11-20 09:45 Java程序员进阶 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、行转列问题 现有表格A,按照以下格式排列; 姓名 收入类型 收入金额 Tom 年奖金 5w Tom 月工资 10k Jack 年奖金 8w Jack 月工资 12k 先需要将表格转化为: 姓名 月工资 年奖金 Tom 10k 50k Jack 12k 80k 方法 阅读全文
posted @ 2020-11-20 09:41 Java程序员进阶 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 更多内容,移步 IT-BLOG 一、什么是微服务 就目前而言,对于微服务业界并没有一个统一的,标准的定义。但通常而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分一组小的服务,每个服务运行在其独立的自己的进程中,服务之间相互协调、互相配合,为用户提供最终价值。服务之间采用轻 阅读全文
posted @ 2020-11-20 09:40 Java程序员进阶 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、数据库隔离级别 【1】Read Uncommitted(读取未提交内容):出现脏读,也就是可能读取到其他会话中未提交事务修改的数据。【2】Read Committed(读取已提交内容):不可重复读,只能读取到已经提交的数据。Oracle 等数据库默认的隔离级别。【 阅读全文
posted @ 2020-11-20 09:36 Java程序员进阶 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 慢日志分析流程如下:【1】观察(至少跑一天),看看生产慢 SQL 情况。【2】开启慢查询日志,设置阈值,比如对超过5秒的 SQL 语句进行抓取。【3】explain+慢 SQL 分析。【4】show profile 查询慢 SQL 在 MySQL 中的执行细节和生命周期情况。【5】运维经理 or D 阅读全文
posted @ 2020-11-20 09:34 Java程序员进阶 阅读(149) 评论(0) 推荐(0) 编辑