自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (7)
  • 收藏
  • 关注

原创 啊哈!C盘又满了?快修改IntelliJ IDEA默认系统缓存cache目录路径

IDEA在第一次启动时,会在${user.home}目录下建立以.IntelliJIdea开头的文件夹,用来存放IDEA的配置信息、插件和缓存信息。随着工具使用时间越多,这个文件夹会越来越大。如果用户目录和系统盘在一个分区,那系统盘分区可用空间就会变小,系统重装时,这个目录还会被删除。需要将此目录修改到其他分区!在IDEA安装目录的bin文件夹中找到idea.properties文件,我们需要里面的几项内容:也就是将默认的idea.config.pathidea.system.path的

2020-09-30 15:01:14 5070

原创 DDD领域驱动实战(二)-限界上下文(bounded context)

通用语言定义上下文含义,限界上下文则定义领域边界,以确保每个上下文含义在它特定的边界内都具有唯一的含义,领域模型则存在于这个边界之内。你是不是感觉这么描述很抽象?没关系,接下来我会给你一一详细讲解。在这之前,我想请你先看这样两个问题,这也是今天内容的核心。1. 为什么要提出限界上下文的概念(也就是说除了解决交流障碍这个广义的原因,还有更具体的吗)?2. 限界上下文在微服务设计中的作用和意义是什么?什么是通用语言?什么是通用语言?为了更好地理解限界上下文,回答这两个问题,我们先从通用语言讲起。怎么理解通用语言

2020-09-30 01:23:37 3873 3

原创 DDD领域驱动设计实战(09)- 核心域和精炼

一些名词在你的微服务设计和开发过程中不一定都用得上,但它可以帮你理解DDD的核心设计思想和理念。而这些思想和理念,在IT战略设计、业务建模和微服务设计中都是可以借鉴的。让我们来理清它们与微服务的关系,了解它们在微服务设计中的作用。领域和子域领域用于确定边界,这也是为何DDD在设计中不断强调边界。DDD会按规则细分业务领域,细分到一定程度后,DDD会将问题范围限定在特定边界内,在该边界内建立领域模型,进而用代码实现该领域模型,解决相应业务问题。领域就是该边界内要解决的业务问题域。领域也有大小之分,其

2020-09-28 21:59:02 4223

原创 Spring-Data-Redis实战-配置及基本API

Spring-Data-Redis是Spring-Data项目的一个子项目,主要用于操作Redis,通过Spring-data-redis工具,使得操作Redis以更加面向对象的方式。Spring-data-redis配置引入依赖如下注意版本这里以2.1.16.RELEASE。Bean配置在Spring Boot 2.X中,有两种不同的使用操作,一种是使用Jedis,一种是使用Lettuce,现在主流后者。连接池的配置@Beanpublic JedisPoolConfig poolConf

2020-09-28 17:04:55 1898

原创 fastjson为何使用TypeReference?

1 核心接口及类fastJson 的泛型反序列化场景经常使用到 TypeReference,如下示例:public static void main(String[] args) { List<String> list = new ArrayList<String>(); list.add("1"); list.add("2"); JSONObject o = new JSONObject(); o.put("k",list);

2020-09-26 20:15:29 3793

原创 敏捷项目管理 - Jira

敏捷项目管理架构Release(发布,单位为月)Sprint(冲刺,单位为周)Issue(问题)类型Epic( 史诗)Story( 用户故事)Task(任务)Bug(故障)Jira创建Release(发布版本)◆Release(版本)的时间跨度通常为1-3个月◆版本包含多个Sprint (冲刺)◆Release 里会清晰定义需要完成的开发任务...

2020-09-26 19:01:55 1497

原创 软件架构分层方法论

系统从0到1阶段,为让系统快速上线,通常不考虑分层。但随业务越发复杂,会出现逻辑不清晰、各模块相互依赖、代码扩展性差、改动一处就需动全身等问题。系统分层迫在眉睫,可是要如何对架构进行分层?1 什么是架构分层?软件工程中常见的设计方式,将整体系统拆分成N个层次,每个层次有独立的职责,多个层次协同提供完整的功能。初学 JavaWeb 时一般要求设计成 MVC 架构。另外一种常见的分层方式是将整体架构分为表现层(Web)展示数据结果和接受用户指令的,是最靠近用户的一层;逻辑层(Service)复

2020-09-25 23:20:28 3548

原创 研发新人如何快速熟悉新项目和业务

进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构。如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好。但很可惜,我没有碰到这样的人,在加入新公司后,带我的人几乎没有花时间给我讲项目,也没有给我安排一些可以熟悉项目的需求。就这样的一个多月时间里,我慢慢开始靠自己的力量熟悉大概十个项目,并在过程中总结了一些方法,借此机会记录一下,并分享给大家。注意,这里的策略并非快速了解一个项目的具体业务,这个不同项目也不一样,无法总结。我的策略是大体了解整个业务线上的所有项目

2020-09-25 10:35:09 5105 7

原创 Docker在各种操作系统环境的下载、安装配置方法

1 在MAC系统上安装Docker先从官网将 dmg 文件下载到本地4 Vagrant & VirtualBox for MacMac OS 下安装 VagrantLinux 安装 DockerUbuntu访问官方安装文档https://docs.docker.com/install/linux/docker-ce/ubuntu/卸载旧版本 Docker安装所需仓库接下来开始安装CentOS 安装 Docker卸载旧版

2020-09-23 17:01:21 1492

原创 Linux根文件系统(rootfs原理详解)

linux中有一个让很多初学者都不是特别清楚的概念,叫做“根文件系统”。我接触linux前前后后也好几年了,但是对这个问题,至今也不是特别的清楚,至少没法给出一个很全面很到位的解释。于是,今天我们就来理一理这个话题。一、先交代一下文件系统在开始讨论根文件系统这个话题之前,我们必首先交代一下文件系统这个概念。毕竟,根文件系统只是文件系统中的一种比较特殊的形式而已。根据伟大的百度百科:文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;

2020-09-23 16:22:31 5088

原创 docker简介

1 Docker是什么Docker 是一个开源的应用容器引擎,开发者可以打包他们的应用以及所有依赖包到一个可移植的Docker镜像中。然后可以批量发布到任何流行的Linux或Windows机器上运行。2 Docker简史2010 - Solomon Hykes 成立 dotcloud 公司2013 - dotcloud 公司更名 Docker,同年发布 Docker-compose2014年 - Docker发布1.0版本2015年 - 提供Docker Machine,支持windows ,

2020-09-23 14:26:37 1198

原创 高并发系统设计之道(一)- 方法论

随着业务发展,带来的是洪水般流量的增加,为确保系统可靠稳定,我们也得会“大禹治水”。万变不离其宗,目前主流其实方案都可归类如下三种思想:Scale-out:分治思想,采用集群将流量分散于各服务器。像数据库一主多从、分库分表、存储分片都是其思想的实际方案体现。缓存:使用缓存来提高系统的性能,就好比水库,抵御了大部分流量冲击,尽力保证下游的平安异步:有时未处理完成之前,可以让请求先返回,在数据准备好之后再通知请求方,即可在单位时间内处理更多请求。缓存几乎所有服务都会用到缓存,可谓是现实的万金油。缓

2020-09-22 03:29:26 1594

原创 操作系统之文件管理

一、文件与文件系统1.1 文件是什么文件是对磁盘的抽象所谓文件是指一组带标识(标识即为文件名)的、在逻辑上有完整意义的信息项的序列。信息项:构成文件内容的基本单位(单个字节,或多个字节),各信息项之间具有顺序关系文件内容的意义:由文件建立者和使用者解释1.2 如何设计一个文件系统这里先看文件管理的需求:从用户角度文件系统是如何呈现在用户面前:* 一个文件的组织如何命名如何保护文件可以实施的操作从操作系统角度:怎样组织、管理文件* 文件的描述、分类

2020-09-22 03:05:15 5834 4

原创 什么是Scale Up(纵向扩展)和Scale Out(横向扩展)?

1 Scale Out即Scale horizontally,横向扩展,向外扩展 。称为集群系统。指由多个节点组成的SAP HANA系统,这种系统的扩展主要以水平扩展方式(指增加节点的方式)来进行。比如:我们向原有的web、邮件系统添加一个新机器。2 Scale Up即Scale vertically)纵向扩展,向上扩展。称为单节点系统,指系统中只包括一个有效节点(如果需要HA时,可以将两个单节点以System Replication形式构成单节点的HA架构)。这种架构的系统只具有垂直扩展能力,

2020-09-22 02:24:12 9052

原创 Kafka源码解析之日志段类LogSegment

目标源码日志(Log)、日志段(LogSegment)以及索引(Index)。探究Kafka中的消息是如何被保存和组织在一起的?Kafka底层日志文件00000000000000012345.log的类似命名?Kafka日志结构概览Kafka日志在磁盘上的组织架构Kafka日志对象由多个日志段对象组成每个日志段对象会在磁盘上创建一组文件,包括消息日志文件(.log)位移索引文件(.index)时间戳索引文件(.timeindex)已中止(Aborted)事务的索引文件(.tx

2020-09-21 05:10:29 1231

原创 MySQL的各种键都废了吗?

点击上方“JavaEdge”,关注公众号设为“星标”,好文章不错过!主键(primary key)一列 (或一组列),其值能够唯一区分表中的每个行。唯一标识表中每行的...

2020-09-20 23:06:49 1070

原创 彻底讲清Spring Bean

点击上方“JavaEdge”,关注公众号设为“星标”,好文章不错过!Spring管理的这些bean藉由配置元数据创建,例如被@Bean注解。那么在 Spring 内部...

2020-09-19 22:24:38 1145

原创 Spring Bean基础

IoC容器管理一个或者多个 bean。这些bean藉由配置元数据创建,例如通过@Bean注解定义的。BeanDefinition域在容器内,这些bean定义被表示为BeanDefinition对象,它包含如下元数据:包限定类名被定义bean的实际实现类bean行为这些状态指示bean在容器中的行为(作用域、生命周期回调等)。如下即为作用域:默认的作用域也就是singletonbean工作时需要的其它bean引用这些引用也就是常见的协作或依赖对象。例如对于如下类:要

2020-09-19 22:22:16 1219

原创 敏捷/持续集成/持续交付/DevOps基本理论全面解析

1 辨析敏捷/持续集成/持续交付/DevOps2 持续集成2.1 为何会有持续集成?敏捷开发解决了单体应用的开发和每日构建的问题。而单体应用拆分成微服务,就需要有一套方案来组装这些微服务,使其成为可协作运行的微服务架构。该方案就是持续集成。持续集成强调开发人员提交新代码后,立刻进行构建、(单元)测试。根据测试结果,可确定新代码和原有代码是否正确集成在一起。2.2 持续集成的定义持续交付的鼻祖Martin Fowler提出:持续集成(Continous Integration)是一种软件

2020-09-19 02:34:28 3088

原创 Spring干货集|Bean依赖你又觉得行了?

点击上方“JavaEdge”,关注公众号设为“星标”,好文章不错过!实际的系统几乎不可能仅有单一的bean,都是很多个bean协作提供服务。本文目标也就是讨论如何冲破...

2020-09-18 21:51:14 1239

原创 Scala基础教程 - 单例对象、伴生类是什么?

单例对象是一种特殊的类,有且只有一个实例。和惰性变量一样,单例对象是延迟创建的,当它第一次被使用时才创建。当对象定义于顶层时(即未包含在其他类中),单例对象只有一个实例。当对象定义在一个类或方法中时,单例对象表现得和惰性变量一样。定义一个单例对象一个单例对象是就是一个值。单例对象的定义方式很像类,但是使用关键字 object:object Box下面例子中的单例对象包含一个方法:package loggingobject Logger { def info(message: Stri

2020-09-18 04:19:18 1741

原创 RocketMQ干货集|彻底看懂RocketMQ事务实现原理

点击上方“JavaEdge”,关注公众号设为“星标”,好文章不错过!面试中经常会问到比如RocketMQ的事务是如何实现的呢?学习框架,我们不仅要熟练使用,更要掌握设...

2020-09-17 00:03:12 1569

原创 ZooKeeper到底为Kafka的做了什么牺牲?

Kafka使用zk实现和RocketMQ的NameServer相似的功能。1 Kafka的zk有什么作用?首先我们来看一下Kafka在ZooKeeper都保存了哪些信息:0.8.x的旧版本的情况,最新版本的Kafka已经将消费位置管理等一些原本依赖ZooKeeper实现的功能,替换成了其他的实现方式。绿色框形是临时节点,其它是持久节点。1.1 ids 子树(临时节点)保存的是Kafka的Broker信息,/brokers/ids/[0…N],每个临时节点对应一个在线Broker,Broker

2020-09-15 05:46:46 1276

原创 Kafka消费过程关键源码解析

Kafka消费模型的几个要点:Kafka的每个Consumer(消费者)实例属于一个ConsumerGroup(消费组);在消费时,ConsumerGroup中的每个Consumer独占一个或多个Partition(分区);对于每个ConsumerGroup,在任意时刻,每个Partition至多有1个Consumer在消费;每个ConsumerGroup都有一个Coordinator(协调者)负责分配Consumer和Partition的对应关系,当Partition或是Consumer发生变更

2020-09-13 00:21:16 1638

原创 MySQL普通索引和唯一索引到底什么区别?

不同业务场景,如何抉择普通索引,还是唯一索引?示例一个市民系统,每个人都有个唯一身份证号;业务代码已保证不会写入两个重复的身份证号;如果市民系统需要按照身份证号查姓名,就会执行类似SQL:select name from CUser where id_card = 'xxxxxxxyyyyyyzzzzz';相信你一定会在id_card字段上建索引。由于身份证号字段比较大,我不建议你把身份证号当做主键,那么现在你有两个选择,要么给id_card字段创建唯一索引,要么创建一个普通索引。如果业务代

2020-09-11 02:44:39 2378

原创 Redis常用命令详解

#基础命令info以一种易于理解和阅读的格式,返回关于Redis服务器的各种信息和统计数值select选择一个数据库,下标值从0开始,一个新连接默认连接的数据库是DB0##flushdb删除当前数据库里面的所有数据这个命令永远不会出现失败这个操作的时间复杂度是O(N),N是当前数据库的keys数量flushall删除所有数据库里面的所有数据,注意不是当前数据库,而是所有数据库这个命令永远不会出现失败这个操作的时间复杂度是O(N),N是数据库的数量ping如果后面没有参数时返回

2020-09-05 21:27:00 1464

原创 Redis 客户端与服务器连接流程实例

Redis 客户端连接服务器完整的流程redis sever 启动时,会把 AE_READABLE 事件关联至 acceptTcpHandler 方法,向eventLoop注册。当client连接server时,会触发redis sever的AE_READABLE事件为就绪状态。当AE_READABLE事件为就绪态时,会在aeMain中对其进行处理,并执行绑定的acceptTcpHandler方法。在acceptTcpHandler方法中,会创建client实例,并将client的.

2020-09-05 20:23:23 1723

原创 Redis事件处理机制详解

Redis 服务器的事件主要处理两方面:处理文件事件:在多个客户端中实现多路复用,接受它们发来的命令请求,并将命令的执行结果返回给客户端时间事件:实现服务器常规操作1 文件事件Redis server通过在多个客户端间多路复用, 实现了高效的命令请求处理: 多个客户端通过socket连接到 Redis server, 但只有在socket可无阻塞读/写时, server才会和这些客户端交互。Redis 将这类因为对socket进行多路复用而产生的事件称为文件事件, 文件事件可分类如下:1.1

2020-09-02 22:13:19 4775 2

原创 深度解析Redis线程模型设计原理

1 面试题redis和memcached有什么区别?redis的线程模型是什么?为什么单线程的redis比多线程的memcached效率要高得多(为什么redis是单线程的但是还可以支撑高并发)?2 考点分析这个是问redis的时候,最基本的问题,redis最基本的一个内部原理和特点,就是redis实际上是个单线程工作模型,你要是这个都不知道,那后面玩儿redis的时候,出了问题岂不是什么都...

2020-09-01 18:15:24 2002 4

原创 什么,你还不懂Redis二进制安全吗?

二进制安全二进制安全是一种主要用于字符串操作函数相关的计算机编程术语。一个二进制安全函数,其本质是将操作输入作为原始的、无任何特殊字符意义的数据流。其在操作上应包含一个字符所能有的256种可能的值(假设为8比特字符)那什么是特殊字符?标记字符,如转义码,\0结尾的字符串(如C语言中的字符串),不是二进制安全的。场景在处理未知格式的数据,例如随意的文件、加密数据及类似情况时,二进制安全功能是必须的。函数必须知道数据长度,以便函数操作整体数据。Redis二进制安全原理struct sd

2020-09-01 04:02:07 1760

Spring基础讲义-java 入门必备

Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-java 入门必备Spring基础讲义-j

2022-11-05

spring-boot-actuator-web-api.pdf

Spring Boot Actuator Api

2021-10-02

EvgenyMandrikov_Marc_Hoffmann_Java_Coverage_mechanics.pdf

jacoco 官方原理解析文档,由领导者亲自执笔编写!

2020-04-03

人工智能蔡自兴课件 PPT

人工智能及其应用第四版,最新版本课程使用课件,适合期末复习

2019-01-06

Spartk 电影PPT资料

Spartk 电影的PPT资料,这是一个很好的视频教程哦,由于原文件太大,想要可以联系我哦

2019-01-06

南邮微机原理课件

南邮微机原理课件.....................................................................

2018-01-08

南邮Windows编程课件

南京邮电大学Windows编程课件1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

2017-11-26

微机原理课件-南邮

南邮的微机原理课件

2017-11-15

空空如也

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

TA关注的人

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