自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木子陈的博客

希望大家多提意见。

  • 博客(28)
  • 收藏
  • 关注

原创 hive与hbase之间数据的同步

一、前言数据同步是很多公司在做数据迁移时的一个痛点,当然互联网公司有自己的同步机制或者工具,但是困惑了我这几天的需求,还是没有得到解决,事已至此,来写这篇博客记录一下自己最近的研究成果。二、如何同步hive如何与Hbase直接实现数据同步呢,目前有两种方案:(一)hive关联hbase表的方式1.适用场景数据量不大4T以下(因为需要走hbase的api导入数据);2.连接方式从hbase页面获取zk连接地址(http://hadoop102:16010),并用下述方式启动h.

2020-11-13 15:14:57 3500

原创 Redis的雪崩与穿透解决方案

1.Redis的穿透、雪崩与击穿1.1出现穿透的原因及解决方案(一)原因:缓存穿透是指用户访问一个数据库和Redis中不存在的key,如果不对这类请求进行过滤拦截的话,请求每次都会穿过Redis直接打到数据库上,并且我们一般是缓存中没数据的时候去数据库中取,取出来之后再放到缓存中,但这类请求所需要的数据在数据库中也不存在,所以即使请求打到数据库上,最终缓存中还是没有数据,在这类请求高并发的情况下,数据库很快就会被拖垮,引起服务异常。(二)解决方法:1.API网关2.限定ip的访问次数.3.缓存空

2020-08-19 15:24:26 576

原创 Java并发之Master-Worker设计模式(二)

Master-Worker设计模式是常用的并行的计算模式,它的核心思想是系统由两类进程协作工作:Master进程和Worker进程,Master负责接口和分配任务,Worker负责处理子任务,当各个Worker子进程处理完成后,会将结果返回给Master,由Master做归纳和汇总,其好处是将一个大任务分解成若干小任务,并行执行,从而提高了系统的吞吐量。设计思路:代码实现:...

2019-11-28 14:44:10 202

原创 Java并发之Future设计模式(一)

并行设计模式属于设计优化的一部分,它是对一些常用的多线程结构的总结和抽象,与串行程序相比,并行程序的结构通常更为复杂,因此合理的使用并行模式在多线程开发中更具意义,在这里主要讲解Future、Master-Worker和生产者-消费者模糊。一、Future设计模式Future模式类似于商品订单,只要付完款等着商品到货即可。比如在网购时,当看到某一件商品时,就可以提交订单,当订单处理完成之后...

2019-11-27 15:23:55 235

原创 Java设计模式之动态代理模式和责任链模式(一)

动态代理和责任链模式无论在Spring还是Mybatis中都有重要的应用,只要随着本篇文章的例子多写代码,反复的体检,就能够掌握。动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问。先来说说什么是代理模式。假设这样一个场景,你的公司是一家软件公司,你是一位软件工程师。客户带着需求去找公司显然不会直接和你谈,而是去找需求的同事谈,此时客户会认为需求就代表公...

2019-05-27 22:35:22 762

原创 电视剧《人世间》观后感

苦了大半辈子的周家人,总算是彻底走出了破烂不堪的光子片,过上了幸福美满的好日子,在他们犯过的错误、走过的弯路和经历的沧桑中,隐藏了五个人生的真相。一、关于生活家家都有难念的经,个个都有自己的苦,光子片的人都羡慕周家,大儿子周秉义是高官厚禄、乘龙快婿,却不知他一生无儿无女,饱受质疑,二女儿周蓉是个博士,虽然学富五车,却婚姻家庭一团糟,小儿子周秉昆在大家看来孝顺、谦厚却时运不济,先后经历了丧子之痛和牢狱之灾,佛家有云;众生皆苦,唯有自渡,每个人都活得很累,抱怨没有用,不如向周秉昆说的嚼嚼咽吧!二、关

2022-03-21 10:43:43 676

原创 Jmeter使用教程

一、Jmeter介绍二、Jmeter安装教程1、下载地址(安装之前首先配置Java环境变量)Apache JMeter - Download Apache JMeter2、环境变量配置3、启动三、Jmeter接口测试

2022-03-18 10:29:31 31629 5

原创 Java线程池面试实战

面试官:我们使用线程池创建线程,说说为什么使用线程池创建?不用线程池创建可以吗?创建四个线程处理可不可以呢?我:当然可以呀,但是使用线程池更合适,这样方便管理资源的创建与释放,阿里巴巴开发规范第一条规定:【强制】线程资源必须通过线程池提供,不允许在应用中自行显示的创建;说明:使用线程池的好处是减少在创建和销毁线程上所消耗的时间以及系统资源的开销,解决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或者"过度切换"的问题。

2022-03-15 19:01:25 829

原创 Netty粘包与拆包解决方案(三)

这里LengthFieldBasedFrameDecoder 与 LengthFieldPrepender 需要配合使用,其实本质上来讲,一个是解码,一个是编码。它们处理粘包的主要思想是在生成的数据包中添加一个长度字段,用户记录当前数据包的长度。LengthFieldBaedFrameDecoder会按照参数指定的包长度偏移量数据对接收的数据进行解码,从而得到目标消息体的数据,而LengthFieldPrepender则会在响应的数据前面添加指定的字节数据,这个字节数据中保存了当前消息的整体字节数据长度;

2022-03-15 09:38:24 722

原创 Netty粘包与拆包解决方案(二)

对于通过分隔符进行粘包与拆包问题的处理,Netty提供了两个编码类,LineBasedFrameDecoder和DelimiterBasedFrameDecoder,这里LineBasedFrameDecoder的作用主要是通过换行符,即"\n" 或者 "\r\n"对数据进行处理,而DelimiterBasedFrameDecoder的作用主要是通过用户指定的分隔符进行粘包与拆包处理,同样的,这两个类都是解码器,而对于数据的编码,也即在每个数据包最后添加换行或者指定分隔符的部分需要用户自行出里,代码如下:

2022-03-14 10:33:28 784

原创 三种方式实现Java生产者与消费者

一、什么是生产者与消费者生产者与消费者是java并发环境下常见的设计模式,一个线程负责生产数据,一个线程负责消费数据,两个线程同时去操作这个变量,但是这是两个相互互斥的操作。二、代码演示1、使用synchronized来实现,必须结合wait()与notify()方法来互斥,代码如下:/** * synchronized 版本生产者与消费者 */public class SynchronizedConsumerAndProducer { /** * 队列长度

2022-03-10 14:48:23 6559 1

原创 Netty粘包与拆包解决方案(一)

在RPC框架中,粘包与拆包问题是必须解决的一个问题,因为RPC框架中,各个微服务相互之间都是维护一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送消息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题,就会出现丢包的情况,Netty提供了更好的解决方案。1、粘包和拆包产生粘包和拆包的主要原因是:操作系统在发送TCP数据包的时候,底层会有一个缓冲区,例如1024字节大小,如果一次请求发送的数据量比较小,没达到缓存区大小,TCP则会将多个请求合并为同一个请求进

2022-03-07 16:44:28 3870

原创 五种Java多线程轮询方式

代码可以直接拿去运行的哦!测试主程序:/** * 线程轮询的五种方法 * @author chenbin78 * @version 1.0 * @create_date 2021/4/19 10:03 */public class ThreadPolling { public static void main(String[] args) { //SynchronizedTest synchronizedTest = new SynchronizedTes

2021-04-19 19:18:42 7763 1

原创 python学习之流程控制

python流程控制跟其他语言一样,主要有if else elif,语法相当简单。一、if else 学习:_username = "chenbin"_password = "chenbin"username = input("username:")password = input("password:")if _username == username and _pas...

2019-12-10 10:08:46 117

原创 关于成长,我想说

1、成长中必要的是,形成自我,有内核。这个自我和内核有价值观、世界观,且稳定,稳定到能够自愈自保自我激励和自我实现。比如这个自我和内核能够在一些类似于崩塌型、冲击性的事件中,持有中正的价值观、世界观,让自己能够不因此崩塌、冲击,从而动摇、而有大转折(但可有新提升、新境界),尤其是,这个内我和内核能够让我们不至于自毁,避开自我伤害。这个自我和内核,是在很多关键时候,真正在第一现场和一念之间,陪伴...

2019-09-25 17:04:28 251

原创 Java设计模式之责任链模式

上一篇文章讨论到设计者往往会用拦截器去代替动态代理,然后将拦截器的接口提供给开发者,从而简化开发者的开发难度,但是拦截器可能有多个。举个例子,一个程序员需要请假一周,如果把请假申请单看成一个对象,那么它需要经过项目经理、部门经理、人事等多个角色的审批,每个角色都有机会通过拦截这个申请单进行审批或者修改,这个时候就要考虑提供项目经理、部门经理和人事的处理逻辑,所以需要提供3个拦截器,而传递的则是请假...

2019-07-14 16:53:55 141

原创 Linux下Nginx的安装教程

一、什么是Nginxnginx是一款高性能的http服务器/反向代理服务器。(一)应用场景(1)http服务器,nginx是一个http服务可以独立提供http服务,可以做静态服务器,(2)虚拟主机,可以实现在一台服务器虚拟多个网站,(3)反向代理、负载均衡(二)反向代理反向代理应该是Nginx做的最多的一件事了,什么是反向代理呢,以下是百度百科的说法:反向代理(Rev...

2019-07-12 09:01:54 123

转载 Oracle执行计划

一、什么是Oracle执行计划?执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述二、怎样查看Oracle执行计划?因为我一直用的PLSQL远程连接的公司数据库,所以这里以PLSQL为例:①:配置执行计划需要显示的项:工具 —> 首选项 —> 窗口类型 —> 计划窗口 —> 根据需要配置要显示在执行计划中的列执行计划的常...

2019-07-08 11:07:55 106

原创 SpringBoot+Mybatis实现数据库读写分离

application.yml配置文件配置数据源:spring.datasource.master.jdbc-url: jdbc:mysql://127.0.0.1:3306/write?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_N...

2019-06-28 21:49:54 314

原创 Java反射学习

Java的反射技术应用广泛,它能够配置:类的权限定名、方法和参数,完成对象的初始化,甚至是反射某些方法。这样就可以大大增强Java的可配置性,Spring IoC的基本原理也是如此,当然Spring IoC的代码要复杂的多。Java的发射内容繁多,包括对象的构造、反射方法、注释、参数、接口等。本人最近学习了对象构建和方法的反射调用,主要从这两方面来撰写该文章。在Java中,反射是通过包java...

2019-05-22 12:17:28 145

原创 人生最值得珍惜的三样东西

有人说:我们很少去想我们拥有的,却总是想着自己缺失的,这种倾向实在是世上最令人不快的事之一。  其实,只要把眼光放在当下就会发现,那些最好最珍贵的东西,其实一直都在身边。要想过好这一生,就要先学会珍惜这三样东西。  第一,珍惜时间。  有位朋友说,自己现在最大的烦恼就是时间太多。一问才知道,原来她刚毕业工作不久,除了上班,还有大把的业余时间,又找不到喜欢的事情做,只能每天宅在家里追剧、...

2019-05-15 16:06:26 315

原创 MySQL索引优化

一、单表优化建表:CREATE TABLE `rc_puchase_catalog` ( `SEQ_ID` char(30) DEFAULT NULL COMMENT '数据库主键 无实际业务含义', `PROVINCE_CODE` char(2) NOT NULL COMMENT '省份', `pur_po_number` varchar(30) DEFAULT NULL ...

2019-04-14 21:24:57 137

原创 MySQL之explain关键字介绍和使用

前言上篇文章主要介绍了MySQL索引的原理和结构,其实MySQL的索引就是一颗B+Tree的数据结构,其本质就是通过不断缩小想要获取数据的范围来筛选出想要获取的结果,同时把随机事件变成了有序事件,这篇文章主要介绍explain关键字的使用和MySQL索引优化。EXPLAIN关键字的介绍1.MySQL中有专门负责优化SELECT语句的优化器模块,主要功能,通过计算分析系统中收集到统计信息...

2019-03-20 09:58:38 2082

原创 MySQL索引原理和结构介绍

前言上篇文章主要介绍了MySQL的索引概念和分类、创建索引的基本语句和命令;还介绍了MySQL的七种JOIN连接查询语句;还介绍了索引的优势和弊端以及适合建立索引、不适合建立索引的场景;还介绍了SQL性能下降的原因,本篇文章主要从MySQL索引的结构和基本原理、EXPLAIN关键字的使用结构。MySQL索引的结构和基本原理(一)索引的原理索引的目的在于提高查询效率,和我们查阅图书目...

2019-03-15 11:41:05 312

原创 MySQL索引概念及分类介绍

前言上篇文章介绍了MySQL的结构和几种常用存储引擎,在平时学习和工作中,InnoDB和MyISAM用的比较多,InnoDB支持事务,支持行级锁,而MyISAM不支持事务,支持表级锁。在后续锁讲解中,可以了解到InnoDB存储引擎偏向于行级锁,开销大,加锁慢,并且会出现死锁的情况,锁定粒度最小,发生锁冲突的概率最低,并发最高;MyISAM存储引擎偏向于表锁,开销小,加锁快,不会出现死锁的情况,...

2019-03-13 16:18:39 674

原创 MySQL架构及存储引擎介绍

目录一、MySQL介绍(一)MySQL架构图(1)连接层(2)服务层(3)引擎层(4)存储层功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程...

2019-03-08 21:25:54 458

原创 Python变量学习

一、 变量的使用变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。因此,变量可以指定不同的数据类型,这些变量可以存储整数,小数或字符。(1)单个变量的赋值python中变量赋值不需要声明变量的类型,这就比其他语言定义要简单,但是在做一些变量运算时要考虑强转。每个变量都在计算机内存中被创建,包括变...

2019-03-02 22:26:13 230

原创 PyCharm的配置和使用

一、PyCharm的配置配置PyCharm的头信息:点击File--->选择Setting...选择Editor--->File and Code Templates--->Files--->选择Python Script,之后可以编辑自己喜欢的模板,例如:#!/usr/bin/env python#-*- coding:utf-8 -*-#Aut...

2019-03-02 08:59:27 609

空空如也

空空如也

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

TA关注的人

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