自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lcy

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

转载 java线程模型-【转载】

原文链接:版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/BeiKeJieDeLiuLangMao/article/details/115268692————————————————版权声明:本文为CSDN博主「贝克街的流浪猫」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/BeiKeJieDeLiuL

2022-01-17 15:37:23 186

原创 Dubbo3学习笔记-(一)服务双方如何向【注册中心】进行注册与订阅

1)注册中心一)注册中心是什么//todo二)提供注册中心的好处//todo三)dubbo+ZK 下的注册中心是如何维护数据的3.1 zookeeper3.1.1 zk特性以及作为分布式中心的优势//todo3.1.2 zk的watch机制//todo3.2 zookeeper 存储的dubbo数据基于本次案例,本地自启一台zk作为注册中心。依次从dubbo-admin、zk节点信息进行观察、dubbo代码作为窥点,填疑相关理解;结论如下:/dubbo 路径下是

2021-10-07 18:44:01 1025

原创 Dubbo3学习笔记

Dubbo3学习笔记(目录)这里写我为什么学习Netty的学习笔记//todo这里写后续文章归类//todo这里写最后学习完了的感受与体悟//todo

2021-10-04 01:35:51 140

原创 RocketMq学习记录 (二) ----源码阅读梳理(标注学习对象与环境构建)

目的:罗列希望阅读源码可以解惑的点并且搭建相关本地环境文章目录1) 环境构建2) 核心类标注2.1 ) store文件相关2.2 )消息生产相关类2.3 )消息消费者1) 环境构建git 获取相关源代码,版本支持Dledger即可。调整相关的配置文件设置环境变量初次学习一切从简,不做什么额外的特性使用。我们简单从 rocketmq/distribution 盘符下 cp 出 broker.conf 至 rocketmq/conf 内。broker.conf 默认内容不做改动,追加以

2021-07-20 10:59:44 223

原创 RocketMq学习记录 (一) ----基础知识梳理

文章目录引言一)RocketMq架构概述二)RocketMq中的NameServer、BrokerServer说明:1) NameServer2) BrokerServer3) MessageQueue-基础知识:4)CommitLog与ConsumerQueue:Producer to Broker1. 从``方式``而言2. 从consumerLog而言5 ) 网络构建引言之前对Kafka有了一轮浅尝辄止的学习,但是Kafka相对薄弱的业务功能在业务开发中较为暗淡,更大的使用场景在于需要高吞吐的场景

2021-07-18 18:21:13 975 1

原创 技术tips-1)java steam的一些好用方法的总结,如分组后自定义排序等。

文章目录背景场景1.数据表相关2.代码程序相关背景越来越多的场景下,从数据库获取数据被要求简单、不得包含更多的业务逻辑,而是建议单纯的打中【索引】取【合理数量】的数据至内存中,再通过代码进行二次处理。在这一样的背景下,通过steam相关方法进行二次数据处理感觉是一个较为方便的方式。场景我们构建相关场景,并建立相关表进行后续案列表述。相关项目地址: github(含sql语句)1.数据表相关班级表CREATE TABLE `t_test_class`( `id`

2021-04-06 21:02:45 1040

原创 Mysql-(五)-mysql的数据加载以及BufferPool对于数据的维护

文章目录背景:引言一)数据加载至BufferPool二)BufferPool中的数据如何处理2.1)缓冲池内存不足触发脏页刷盘2.2)mysql预读机制带来的问题背景:通过前四章的学习,对于mysql有了初步的认识,我们在此基础上,在较之前稍微更细致的了解下mysql的执行流程。此外需要说明的是,相关学习资料借鉴于中华石杉老师,感谢共享。引言    ~~~~    对于mysql存放的数据,逻辑概念上我们称之为表,

2021-03-29 17:20:02 483 1

原创 第二章:Spring Framework是什么

文章目录1)SpringFramework是什么?为什么会有?2)SpringFramework功能概述2.1)IOC 入门1) ``IOC的定义:``2) ``IOC举例说明:``2.2)AOP 入门1) ``AOP的定义:``2) ``AOP的举例:``3)总结1)SpringFramework是什么?为什么会有?The Spring Framework provides a comprehensive programming and configuration model for modern

2021-02-24 17:44:50 2519

原创 第一章:Spring5的下载与idea编译

文章目录第一步:gradle的下载与安装1) 访问: [gradle官网](https://gradle.org/releases)2)配置环境变量第二步:Spring源代码的下载第三步:idea的配置与项目导入第四步:对编译后的代码进行验证第一步:gradle的下载与安装1) 访问: gradle官网点击binary-only进行下载并解压记录盘符路径(gradle-6.8.2 下一层能看到bin文件夹)2)配置环境变量编辑bash_profile文件:vi ~/.bash_profi

2021-02-23 22:08:23 120

原创 Spring framework5 的学习笔记-归档目录

Spring学习笔记一):Spring下载与编译

2021-02-22 21:18:52 237

原创 MyBatis学习笔记 ---- Mybatis配置文件解析、mapper动态代理加载、注解映射

如果让我们自己解析这样的一个接口签名,当调用时,生成对应的sql指令,我们会怎么做?我们可以分为解析与编译至sql 两个大过程;第一步:生成对象的动态代理类,这样可以获取到对应的参数列表以及被修饰的注释。第二步:将解析出来的参数以及参数列表形成对应关系2.1形成子方法,用于获取 {id} 这样的占位符;思路识别#后,截取{,} 之间的内容。2.2直至解析到},视为当前参数解析完毕;2.3获取mapper.java 的返回值 , 该步骤也是在代理mapper

2020-11-29 21:23:39 560

原创 Kafka学习记录 (五)----基础概念总结

Kafka 阶段性总结文章目录Kafka 阶段性总结@[toc]一)业务场景中,我们会碰到哪些模型?1.1 场景一 :我就注销了一个商户1.2 场景二 :xxx , 我这是主库 ,你们怎么还在轮询 ?1.3 场景三 :消除峰值二)我们脑海中的Kafka2.1 消息队列的出现解决了什么?2.2 呢为什么是kafka?三)Kafka入门介绍最最最最基础的概念:我用什么方法把消息传输出去?四)Kafka的HA与Scalability4.1 HA``Broker分散部署``:``备份机制``:副本的数据流向

2020-09-21 23:51:50 481

原创 Kafka学习记录 (四) ----尝试分析Producer发送消息的学习笔记(二)。

文章目录引言一)BufferPool:1.1 ByteBuff 的内存申请1.2 ByteBuff 的内存归还二)Sender线程的run方法解析:2.1 流程概述:2.2 具体流程解析:步骤2的分析:引言内容说明:BufferPool代码分析网络连接池说明一)BufferPool:池化并复用ByteBuff,而不是用时即创、用后即毁;ByteBuff的相关交互是用于封装RecordBatch ,入口见下。org.apache.kafka.clients.producer#d.

2020-09-13 15:41:20 389

原创 Kafka学习记录 (三) ----基于Kafka学习记录1、2 ,尝试分析Producer发送消息的学习笔记(一)。

kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创文章目录kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创一)消费者位移一)消费者位移

2020-08-31 23:22:01 486

原创 Kafka学习记录 (二) ----基础知识梳理2

kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创文章目录kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创一)消费者位移1 . 对不不同版本的kafka维护offset方式1.1 老版本:1.2 新版本:1.2.1 __consumer_offsets :位移主题1.2.1.1 __consumer_offsets 什么时候创建的?1.2.1.2 __consumer_offsets 分区数怎么设置?1.2.1.3 __consumer_offsets 副本数或备份因子

2020-08-17 09:48:16 267

原创 Kafka学习记录 (一) ----基础知识梳理1

kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创文章目录kafka博客内容东拼西凑,以下全文内容整理自极客时间专栏,非原创一)高可用介绍:1) broker 分属在不同的机子上:2 )备份机制(Replication):二)Scalability -- 伸缩性三)Kafka三层架构总结四)Broker五)MessageGroup六)都有哪些分区策略?1) 轮询策略也称 Round-robin 策略,即顺序分配。2) 随机策略也称 Randomness 策略。所谓随机就是我们随意地将消息

2020-08-12 20:58:41 277

原创 ElasticSearch 7 学习记录(一) ----安装es与kibana及基础概念简介 --搁置

ElasticSearch 7 学习记录(一) ----安装es与kibana及基础概念简介文章目录ElasticSearch 7 学习记录(一) ----安装es与kibana及基础概念简介1. 安装1. 安装步骤1. 镜像下载2. es单节点启动3. kibana启动4. es启动验证1. es启动验证2. kibana启动验证5. 分词器安装1. ik分词器未安装之前:2. 安装IK分词器:2. ElasticeSearch 基本概念介绍引言相关名词解释``索引(index)````类型(typ

2020-07-19 17:25:36 304

原创 JVM 相关知识梳理(三) ----从重排序与可见性看看JMM

引言在并发编程中,需要处理两个关键问题:线程直接如何通信。线程之间如何同步。通信是指线程之前以何种机制交换信息,线程之间的通信机制有两种:共享内存与消息传递。线程间如何通信:在共享内存的并发模型中,线程之间共享程序的公共状态,通过写-读内存中的公共状态进行隐式通信(JAVA采用该方式)。在消息传递的并发模型中,线程之间没有公共状态,线程之间通过发送消息来显示通信(Go–channel)。线程间如何同步:同步是指程序中用于控制不同线程间操作发生相对顺序的机制。在

2020-07-05 01:31:57 197

原创 JVM 相关知识梳理(二) ----运行时数据区、Java内存模型、GC

运行时数据区这个名词听起来陌生也不陌生…但是它的定义到底是什么呢?The Java Virtual Machine defines various run-time data areas that are used during execution of a program. Some of these data areas are created on Java Virtual Machine start-up and are destroyed only when the Java Virtual

2020-05-31 18:47:37 260

原创 JVM 相关知识梳理(一) ----类加载 及 对象创建、分配、寻址

一)类加载过程:虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制行为步骤如下:1:装载入口有一下几种:通过一个类的全限定名定义此类的二进制流 ,比如load 一个class文件、jar包、网络读取、或者实时计算生成的一个二进制流(如proxy代理,dubbo呢种写bean 完后load的方式)将这个字节流所代表的静态存储结构转换为方法去的运行时数据结构,如Spring Bean 进行标签引

2020-05-30 20:13:51 409 2

原创 基于GO语言实现分布式定时任务学习(五)---- worker 代码开发与实现

worker 功能点获取ETCD中,被master写入的cmd任务;根据corn表达式,确定任务调度列表;根据任务列表,进行任务执行;对Job做分布式锁,防止集群并发调用。执行日志存储;worker 启动同master ( init args(flags解析) -> init config -> init job(etcd) ) //todo master 连接worker 功能实现解释:worker中的JobMgr负责向etcd进行任务监听,当其监听到任务后,根据

2020-05-26 23:42:19 1542

原创 Go语言orm逆向工程 基于mysql生成struct并添加sql/gorm tag、json tag

GO 如何像mybatisGenerator一样通过数据库表生成对应的实体呢?背景:学习gorm的过程中,struct的tag注解偏多,实体模型多的情况下,一个个写tag太慢。思考:寻思着有没有类似mybatisGenerator呢样的逆向工程,生成相关的bean模型,并通过tag做好orm映射。行动: github 进行搜索相关项目1. 一款叫做 fuckDB 的开源项目可以通过Web页面,进行点点,进行配置。但是无论尝试直接go get ,还是基于docker都无法正确使用,前者是因为拉

2020-05-19 22:07:14 3631 2

原创 基于GO语言实现分布式定时任务学习(四)---- master 代码开发与实现

master 功能点提供http接口供 任务录入、任务查看、任务强制杀死 等基础功能;提供服务端启动等参数化设置;master 启动master启动需要做到解析配置文件、创建etcd连接交互、创建socket监听形成web服务。配置文件解析:配置文件解析主要包括录入etcd信息、mysql信息、以及服务器端口等,我们把这些信息形成json文件。master.json { "API接口服务端口": "提供任务增删改查服务", "apiPort": 8070,

2020-05-17 20:39:23 1332

原创 基于GO语言实现分布式定时任务学习(二)---- etcd学习笔记并完成分布式乐观锁case

etcd 基础入门:一)etcd 功能介绍数据存储在集群中的高可用K-V存储。允许应用实时监听存储中的K-V变化。可以容忍单点故障,并支持网络分区。在传统的存储模型中:如果存储节点是单点存储,呢么遇到宕机,即刻不可用;如果是主从架构,当主库不可用的使用,虽然可以继续基于从库来读,单主从同步时延容忍度又是新的问题。etcd 基于抽屉理论来解决该点,所谓的抽屉理论指:假如我们有一个30人的班级,我将一个秘密告诉其中的16位同学,呢么随便挑选16个同学中,必然有一个是知道我秘密的

2020-05-12 21:51:33 1303

原创 基于GO语言实现分布式定时任务学习(一)----cmd 指令、cron表达式

基于GO语言实现分布式定时任务学习(一)----cmd 指令import ( "fmt" "os/exec")func main() { var ( command *exec.Cmd combinedOutput []byte err error ) command = exec.Command("/bin/bash", "-c", "echo 1 ; echo 2;") if combinedOutput, err = comma

2020-05-10 23:37:37 2031

原创 Netty学习(八)----实现RPC-demo (能通就行版)

一: 交互流程说明:client stub 接收到方法调用后 对参数、方法签名封装成易网络传输的消息体client stub 将消息进行编码,并发送至服务端server stub 接收消息并进行解码server stub 根据解码结果调用本地的服务server本地服务应答server stubservier stub 将执行结果进行封装编码至消费方消费方进行解码,告知clie...

2020-05-04 20:21:23 179

原创 Netty学习(七)----参考闪电侠掘进小册 实现Netty群聊(自定义协议、心跳、拆包、黏包 demo)

Netty学习(七)----Netty群聊-渐进–1)自定义协议什么是服务端与客户端的通信协议无论是使用 Netty 还是原始的 Socket 编程,基于 TCP 通信的数据包格式均为二进制,协议指的就是客户端与服务端事先商量好的,每一个二进制数据包中每一段字节分别代表什么含义的规则。该demo中使用如下的协议方式:魔数版本号序列化算法指令数据长度数据4字节...

2020-04-25 18:42:12 671

原创 Netty学习(六)----Netty基础组件入场介绍

Bootstrap 、ServerBootStrapBootstrap 意思是引导,一个netty应用通常由一个Bootstrap开始,它主要作用是配置整个Netty程序,串联各个组件。Bootstrap、ServerBootStrap 分别对应客户端启动引导类与服务启动引导类客户端声明: Bootstrap bootstrap = new Bootstrap(); ...

2020-04-20 19:45:36 338

原创 Netty学习(五)----异步模型简述

异步模型基本介绍:异步的概念与同步相对。当一个异步过程调用发出后,调用者不会立刻得到结果,实际处理这个调用的组件在完成后,通过状态、通知和回调来通知调用者;Netty中的 I/O 操作是异步的,包括 Bind 、 Write 、Connect 的等操作会简单的返回一个ChannelFuture。当调用者并不能立刻得到记过,而是通过Future-Listener机制,用户可以方便的主动获...

2020-04-19 22:16:53 209

原创 Mysql-(四)-mysql中的锁概述

MySQL InnoDB 锁的基本类型释放锁有两种方式,只要事务结束,锁就会自动事务,包括提交事务和结束事务。共享锁Shared Locks (共享锁),我们获取了一行数据的读锁以后,可以用来读取数据, 所以它也叫做读锁。用 select … lock in share mode 的方式手工加上一把读锁。排它锁Exclusive Locks(排它锁),它是用来操作数据的,所以又叫做写锁...

2020-04-19 20:31:31 198

原创 Mysql-(三)-mysql中的事务与MVCC介绍

事务的定义 以及 具备的四大特性概述:事务是数据库管理系统(DBMS)执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。事务的四大特性第一个,原子性,Atomicity,要么都是成功,要么都是失败。原子性,在 InnoDB 里面是通过 undo log 来实现的,它记录了数据修改之前的值(逻辑日志),一旦发生异常,就可以用 undo log 来实现回滚操作。第二个,一...

2020-04-17 20:39:06 213

原创 Mysql-(二)-mysql中的索引

1. 索引的一句话解释数据库索引,是数据库管理系统(DBMS)中一个排序的数据结构,以协助快速查询、 更新数据库表中数据。「索引就像书的目录, 通过书的目录就准确的定位到了书籍具体的内容」。数据是以文件的形式存放在磁盘上面的,每一行数据都有它的磁盘地址。如果没有索引的话,我们要从全量数据里面检索一条数据,只能依次遍历这张表的全部数据 (循环调用存储引擎的读取下一行数据的接口),直到找到...

2020-04-17 20:04:02 299

原创 Mysql-(一)-执行流程、页、Binlog、redo、undo 名词解释

问题 :一条简单的Select 是如何执行的?在InnoDB中独有的Buffer Pool以及相应的redo:InnnoDB 的数据都是放在磁盘上的,InnoDB 操作数据有一个最小的逻辑单位,叫做页(索引页和数据页)。我们对于数据的操作,不是每次都直接操作磁盘,因为磁盘的速度太慢了。InnoDB 使用了一种缓冲池的技术,也就是把磁盘读到的页放到一块内存区域里面。这个内存区域就叫 Bu...

2020-04-12 00:36:58 796

原创 Netty学习(四)----Netty概述以及线程模型

原生NIO存在的问题NIO的类库和API繁杂,使用恶心;需要周边能力:要熟悉JAVA多线程编程,因为NIO编辑涉及到Reactor模式;工作复杂:包含客户端面临的断连、网络闪断、半包、黏包、自定义协议等;JDK NIO 的BUG:Epoll 空轮等。Netty的优点:使用 JDK 自带的NIO需要了解太多的概念,编程复杂,一不小心 bug 横飞Netty 底层 IO 模型随意...

2020-04-08 19:53:14 219

原创 Netty学习(二)----JAVA NIO 以及NIO简易广播群聊

JAVA NIO - Buffer在之前提到JAVA NIO中,引入了Buffer、Channel 、Selectors.Buffer:定义:Java NIO Buffers用于和NIO Channel交互。 我们从Channel中读取数据到buffers里,从Buffer把数据写入到Channels. Buffer本质上就是一块内存区,可以用来写入数据,并在稍后读取出来。 这块内存被...

2020-03-29 05:31:01 681

原创 Netty学习(一)----对JDK中IO的复习

编写目的:Netty 是一个利用 Java 的高级网络的能力,隐藏其背后的复杂性而提供一个易于使用的 API 的客户端/服务器框架。是对jdk中的IO进行了很多封装与优化,要想全盘理解基于JDK构建出来的Netty,是有必要回忆下jdk中IO的相关知识;在thing in java I/O章节中,是以 " 对程序语言的设计者来说,创建一个好的输入/输出(I/O)系统是一项艰难的任务" 这样...

2020-03-29 03:55:31 169

原创 Netty学习笔记(目录)

背景:网络 I/O相关知识薄弱,在补足了tcp相关内容后,进一步沉淀知识体系;思考:目前对JAVA较为熟悉,netty曾经也有使用层面的学习,不如趁此机会,进行闭环整理,并产出相应文档方便今后查询; 此外对于GO语言也有较为简单的学习,如果能旁敲侧击到go 与 mqtt 相关知识,对于当下IOT业务会有更扎实的对喷资本;行动:jdk中I/O复习->netty学习demo的整...

2020-03-29 03:23:06 159

原创 EasyUI简单实现 Ztree联动选项卡栏,并且对选项卡实现右键功能附加

(一):环境引用当引入的easyui.min 的 时候,等于引入了所有组件,在页面通过引入以下东西 (二):最终界面  (三) 逐步实现: 总体布局   north 区域

2017-07-21 17:41:47 419

原创 学习笔记Maven:项目拆分

使用IJ idea,基于Action,Service,Dao分层,搭建SSh环境 ,学习maven的简单案例;一共需要建立4个子模块erp_domain   存放实体包erp_dao      存放数据访问接口及实现类erp_service   存放业务逻辑层接口及实现类erp_web     存放action类代码和前端代码  (注意:此模块的packaging选

2017-07-19 21:41:16 1431

空空如也

空空如也

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

TA关注的人

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