摘要: 更多内容,移步 IT-BLOG 一、JAVA中的几种基本数据类型 Java语言中一共提供了8种原始的数据类型(byte,short,int,long,float,double,char,boolean),这些数据类型不是对象,而是 Java语言中不同于类的特殊类型,这些基本类型的数据变量在声明之后就 阅读全文
posted @ 2020-11-16 18:06 Java程序员进阶 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 一、本地事务 更多内容,前往 IT-BLOG 在计算机系统中,更多的是通过计算机控制事务,这是利用数据库本身的事务特性来实现的,因此叫数据库事务,由于应用主要靠关系型数据库来控制事务,而数据库通常和应用在同一个服务器,所以基于关系型数据库的事务又被称为本地事务。 数据库事务的四大特性:数据库在实现时 阅读全文
posted @ 2020-11-16 10:21 Java程序员进阶 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一、什么是线程 线程是指程序在运行的过程中,能够执行程序代码的一个执行单元。Java语言中,线程有四种状态:运行、就绪、挂起、结束 二、线程与进程的区别 进程是指一段正在执行的程序。而线程有时也被称为轻量级进程,它是程序执行的最小单元,一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段 阅读全文
posted @ 2020-11-15 14:51 Java程序员进阶 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 一、MyBatis 简介 【1】MyBatis 是支持定制化 SQL,存储过程以及高级映射的优秀持久化框架。【2】MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取查询结果集。【3】MyBatis 可以使用简单的 XML 或者注解用于配置和原始映射,将接口和 Java 的 POJ 阅读全文
posted @ 2020-11-15 14:44 Java程序员进阶 阅读(369) 评论(0) 推荐(0) 编辑
摘要: 定义:锁是计算机协调多个进程或线程并发访问某一资源的机制。 一、表锁(偏读) MyISAM 引擎,开销小,加锁快,无死锁、锁定粒度大、发生锁冲突的粒度最高,并发度低。 【1】手动增加表锁:lock table 表名1 read(write),表名2 read(write),其他;【2】查看那些表加锁 阅读全文
posted @ 2020-11-15 14:34 Java程序员进阶 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 查询的生命周期大致可以按照顺序来看:从客户端到服务端,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端。其中 “执行” 可以认为是整个生命周期中最重要的阶段,其中包括了大量为了检索数据到存储引擎的调用以及调用后的数据处理,包括排序分组等。当希望 MySQL 能够以高性能的方式运行查询时 阅读全文
posted @ 2020-11-15 14:27 Java程序员进阶 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 一、优化器索引 【1】 隐藏索引(invisible index):在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用,但仍需要维护。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这 阅读全文
posted @ 2020-11-15 14:25 Java程序员进阶 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 【需求】:生产者发送数据至 kafka 序列化使用 Avro,消费者通过 Avro 进行反序列化,并将数据通过 MyBatisPlus 存入数据库。 一、环境介绍 【1】Apache Avro 1.8;【2】Spring Kafka 1.2;【3】Spring Boo 阅读全文
posted @ 2020-11-15 14:18 Java程序员进阶 阅读(427) 评论(0) 推荐(0) 编辑
摘要: MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具包,只做增强不做改变,为简化开发工作、提高生产效率而生。 一、Service CRUD 接口 【说明】:【1】通用 Service CRUD 封装 MP提供的 IService接口,进一步封装 CRUD 采用 get 查询单行 阅读全文
posted @ 2020-11-15 14:12 Java程序员进阶 阅读(555) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、设计原则 原则: SQL开发规范制定是基于良好的编码习惯和可读性; 目的: 消除冗余,数据简约,提高效率,提高安全; 【1】禁止在线上生产环境做数据库压力测试,全链路压测可以支持,但是一定不要在业务高峰期搞压力测试。 【2】禁止在数据库中明文存储密码和敏感信息,可 阅读全文
posted @ 2020-11-15 13:59 Java程序员进阶 阅读(62) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG MySQL 的存储单位是 page[16kb],索引使用 B+Tree,深度为3(3次 IO便能查出数据)。为了提高查询速度,存储单元中都存储的是索引的指针。MySQL 内部索引指针大小在 InnoDB源码中设置为 6个字节+例如 ID类型 bigint(long) 阅读全文
posted @ 2020-11-15 13:52 Java程序员进阶 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、前言 如何在分布式集群中生产全局唯一的 ID?【方案一】UUID:UUID是通用唯一识别码 (Universally Unique Identifier),在其他语言中也叫GUID,可以生成一个长度 32位的全局唯一识别码。UUID 虽然可以保证全局唯一,但是占3 阅读全文
posted @ 2020-11-15 13:50 Java程序员进阶 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、概述 2PC(two phase commit protocol,2PC)即两阶段提交协议,是将整个事务流程分为两个阶段,准备阶段(Prepare phase)、提交阶段(Commit phase),2指两个阶段,P指准备阶段,C指提交阶段。整个事务过程由事务管理 阅读全文
posted @ 2020-11-15 13:48 Java程序员进阶 阅读(787) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、什么是 TCC事务 TCC 是Try、Confirm、Cancel三个词语的缩写,TCC要求每个分支事务实现三个操作:预处理Try、确认Confirm、撤销Cancel。Try操作做业务检查及资源预留,Confirm做业务确认操作,Cancel实现一个与 Try或 阅读全文
posted @ 2020-11-15 13:47 Java程序员进阶 阅读(1813) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、可靠消息最终一致性事务概述 可靠消息最终一致性方案是指当事务发起方执行完成本地事务后并发出一条消息,事务参与方(消息消费者)一定能够接收消息并处理事务成功,此方案强调的是只要消息发给事务参与方最终事务要达到一致。 此方案是利用消息中间件完成,如下图:​ 事务发起方 阅读全文
posted @ 2020-11-15 13:43 Java程序员进阶 阅读(1964) 评论(1) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、概述 最大努力通知也是一种解决分布式事务的方案,下面是一个充值的例子:​交互流程:【1】账户系统调用充值系统接口;【2】充值系统完成支付处理向账户系统发起充值结果通知,若通知失败,则充值系统按策略进行重复通知;【3】账户系统接收到充值结果通知修改充值状态[实时性与 阅读全文
posted @ 2020-11-15 13:41 Java程序员进阶 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 我们已经了解了四种分布式事务解决方案,2PC【链接】、TCC【链接】、可靠消息最终一致性【链接】、最大努力通知【链接】,每种解决方案我们通过案例开发进行学习,本章节我们结合互联网金融项目中的业务场景,来进行分布式事务解决方案可行性分析。 一、系统介绍 P2P金融又叫 阅读全文
posted @ 2020-11-15 13:39 Java程序员进阶 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 一、Zookeeper概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目。Zookeeper从设计模式角度来理解:是一个基于观察者模式【链接】设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这 阅读全文
posted @ 2020-11-15 13:37 Java程序员进阶 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 枚举类:就是对象的实例个数是确定的(例如:单例模式),也就说我们在创建枚举类的时候,会对构造器进行设置 一、自定义创建枚举类 1 package com.atguigu.java1; 2 3 public class TestSeason { 4 public static void main(St 阅读全文
posted @ 2020-11-15 13:19 Java程序员进阶 阅读(119) 评论(0) 推荐(0) 编辑
摘要: AOP(动态代理):指在程序运行期间动态的将某段代码切入到指定方法指定位置进行运行的编程方式;【1】导入 aop 模块;Spring AOP:(spring-aspects);【2】定义一个业务逻辑类(MathCalculator),在业务逻辑运行的时候将日志进行打印(方法之前、方法运行结束、方法出 阅读全文
posted @ 2020-11-15 13:16 Java程序员进阶 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 更多内容,前往 IT-BLOG 选择排序是一种简单直观的排序算法,其基本原理,对于一组记录的数据,通过第一次比较得到最小的记录,然后将该记录与第一条记录的位置交换;接着对不包含第一个以外的记录进行比较,得到最小记录并与第二个记录进行位置交换;重复该过程,知道进行比较的记录只有一个时为止。 以数组 { 阅读全文
posted @ 2020-11-15 10:30 Java程序员进阶 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 对于给定的一组记录,初始时假设第一个记录自成一个有序序列,其余记录为无序序列。接着从而个记录开始,按照记录的大小依次将当前处理的记录插入到其之前的有序序列中,直至最后一条记录插入到有序序列中为止。 例如:数组 {38,65,97,76,13,27,49}第一步插入38以后:[38]65 97 76 阅读全文
posted @ 2020-11-15 10:29 Java程序员进阶 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序顾名思义就是整个过程就像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定的 n 个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换位置,进行一轮比较和换位后,n 个记录中的最大记录将位于第 n位;然后对前(n-1)个记录进行第二轮比 阅读全文
posted @ 2020-11-15 10:28 Java程序员进阶 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 【第一步】:查看系统网卡设备 : ip addr show ​​​ 【第二步】:修改网卡配置参数 1 cd /etc/sysconfig/network-scripts/ 2 vi ifcfg-ens33 修改ONBOOT参数为 yes ​ 【第三步】:重启网卡,然后 ping 检测下网络有没有通。 阅读全文
posted @ 2020-11-15 10:05 Java程序员进阶 阅读(489) 评论(0) 推荐(0) 编辑
摘要: 在pom.xml文件中加入如下代码,实现依赖注入: 1 <dependencies> 2 <dependency> 3 <groupId>javax.servlet</groupId> 4 <artifactId>servlet-api</artifactId> 5 <version>2.5</ve 阅读全文
posted @ 2020-11-15 09:53 Java程序员进阶 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 【异常】:Cause: java.sql.SQLSyntaxErrorException: Unknown column 'udf1' in 'field list'...... SQL: SELECT id,oper_id,btch_id,udf1, FROM scan_cyber Cause: 阅读全文
posted @ 2020-11-15 09:51 Java程序员进阶 阅读(761) 评论(0) 推荐(0) 编辑
摘要: 【异常】:UnsatisfiedDependencyException: Error creating bean with name 'xxx[类]': Unsatisfied dependency expressed through field 'baseMapper';......BeanCre 阅读全文
posted @ 2020-11-15 09:50 Java程序员进阶 阅读(8675) 评论(0) 推荐(0) 编辑
摘要: 【1】需求:Kafka 使用 Avero 反序列化时,同时需要对 String 类型的 JSON数据进行反序列化。AvroConfig的配置信息如下: 1 /** 2 * @author zzx 3 * @creat 2020-03-11-20:23 4 */ 5 @Configuration 6 阅读全文
posted @ 2020-11-15 09:41 Java程序员进阶 阅读(2353) 评论(0) 推荐(0) 编辑
摘要: 【问题描述】:ApplicationContextException: Failed to start bean 'org.springframework.kafka.config.internalKafkaListenerEndpointRegistry'; nested exception is 阅读全文
posted @ 2020-11-15 09:39 Java程序员进阶 阅读(2102) 评论(0) 推荐(0) 编辑
摘要: 找一个机器,作为时间服务器,所有的机器与这台集群时间进行定时的同步,比如,每隔十分钟,同步一次时间。 一、配置时间服务器具体步骤 ​【1】检查 ntp(NTP是网络时间同步协议,就是用来同步网络中各个计算机的时间的协议) 是否安装,时间服务器配置必须使用 root 用户。如果与下面展示的结果不同,则 阅读全文
posted @ 2020-11-15 08:49 Java程序员进阶 阅读(851) 评论(0) 推荐(0) 编辑
摘要: 一、数据库 表中新增“添加时间”和“修改时间”字段;​ 二、实体类 Entity 在实体类中的“添加时间”和“修改时间”的属性字段中添加 @TableField(fill = FieldFill.INSERT),其中 FieldFill 中包含默认(DEFAULT), 插入(INSERT), 修改( 阅读全文
posted @ 2020-11-15 00:40 Java程序员进阶 阅读(320) 评论(0) 推荐(0) 编辑
摘要: 一、数据库 数据库中添加逻辑删除字段:​ 二、实体类Entity 修改 实体类逻辑删除字段上加上 @TableLogic注解,字段支持所有数据类型(推荐使用 Integer,Boolean,LocalDateTime),如果使用LocalDateTime,建议逻辑未删除值设置为字符串null,逻辑删 阅读全文
posted @ 2020-11-15 00:39 Java程序员进阶 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 为了防止黑客从前台异常信息,对系统进行攻击。同时,为了提高用户体验,我们都会都抛出的异常进行拦截处理。 一、全局异常处理 编写一个异常拦截类,如下:@ControllerAdvice ,很多初学者可能都没有听说过这个注解,实际上,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller 阅读全文
posted @ 2020-11-15 00:26 Java程序员进阶 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、Yarn 概述 Yarn 是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而 mapreduce等运算程序则相当于运行于操作系统之上的应用程序。 Yarn 的重要概念:【1】Yarn并不清楚用户提交的程序的运行机制;【2】Ya 阅读全文
posted @ 2020-11-15 00:23 Java程序员进阶 阅读(0) 评论(0) 推荐(0) 编辑
摘要: 在分享此案例前,先聊聊哪些场景会导致频繁Full GC: 内存泄漏(代码有问题,对象引用没及时释放,导致对象不能及时回收)死循环大对象程序执行了System.gc() 尤其是大对象,80%以上的情况就是他。 那么大对象从哪里来的:【1】数据库(包括 Mysql和 Mongodb等 NOSql数据库) 阅读全文
posted @ 2020-11-15 00:20 Java程序员进阶 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 优质博文:IT-BLOG-CN 一、正向代理(了解) 现实生活中客户端无法直接向服务端发起请求的时候 ,我们就需要代理服务器。正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径(例如:教学环境时,同学们使用的计算机就不能访问百度,只能通过老师的计算机作为代理服务器来获取信息 阅读全文
posted @ 2020-11-15 00:12 Java程序员进阶 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 在分析案例之前,我们先了解一下MySQL INNODB。在MySQL INNODB引擎中主键是采用聚簇索引的形式,即在B树的叶子节点中既存储了索引值也存储了数据记录,即数据记录和主键索引是存在一起的。而普通索引的叶子节点存储的只是主键索引的值,一次查询找到普通索引的叶子节点后,还要根据叶子节点中的主 阅读全文
posted @ 2020-11-15 00:11 Java程序员进阶 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 项目有一段时间,不常用的应用响应变慢,每次持续几秒钟到几十秒钟就自动恢复。如果响应变慢是持续的还好办,直接用 jstack 抓线程堆栈,基本可以很快定位问题。关键持续时间只有最多几十秒钟,而且是偶发的,一天只发生一两次,有时几天才发生一次,发生时间点也不确定,人盯着然后用 jstack手工抓线程堆栈 阅读全文
posted @ 2020-11-15 00:09 Java程序员进阶 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 为 Flink 量身定制的序列化框架 大家都知道现在大数据生态非常火,大多数技术组件都是运行在 JVM 上的,Flink 也是运行在 JVM 上,基于 JVM 的数据分析引擎都需要将大量的数据存储在内存中,这就不得不面临 JVM 的一些问题,比如 Java 对象存储密度较低等。针对这些问题,最常用的 阅读全文
posted @ 2020-11-14 22:48 Java程序员进阶 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 【1】引入第三方 Bahir 提供的 Flink-redis 相关依赖包 1 <!-- https://mvnrepository.com/artifact/org.apache.bahir/flink-connector-redis --> 2 <dependency> 3 <groupId>or 阅读全文
posted @ 2020-11-14 22:45 Java程序员进阶 阅读(4) 评论(0) 推荐(0) 编辑