自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 SpringCloud实战与原理分析--第二章:SpringCloud介绍

我准备向他提出一个他不可能拒绝的条件。——《教父》 1、引言 首先,我们来看看一般的微服务架构需要的功能或使用场景: (1)我们把整个系统根据业务拆分成几个子系统。 (2)每个子系统可以部署多个应用,多个应用之间使用负载均衡。 (3)需要一个服务注册中心,所有的服务都在注册中心注册,负载均衡也...

2018-12-17 19:40:51 1012 0

原创 SpringCloud实战与原理分析--第一章:微服务架构

伟大的人不是生下来就伟大的,而是在成长过程中显示其伟大的。 ——马里奥·普佐《教父》 1、技术架构的演化 1.1 单体架构 1.1.1 简单单体模式 简单单体模式是最简单的架构风格,所有的代码全都在一个项目中。 优点 (1)项目的开发人员都可以随时修改任意的一段代码,或者增加一些新的代...

2018-12-10 20:39:25 3565 0

原创 Android中的MVP架构分解和实现

1、概述传统的Android开发架构一般是MVC模式, Model:业务逻辑和实体模型 View:对应于布局文件 Controllor:对应于Activity 单独从逻辑看起来非常好,与我们做Web开发时,开发模式类似,但在实际开发中,View对应于布局文件,实际上关于该布局文件中的数据绑定的操作...

2017-02-07 17:23:31 2149 5

原创 Tensorflow实现卷积神经网络

1.概述定义: 卷积神经网络(Convolutional Neural Network,CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。它包括卷积层(alternating convolutional layer)和池层(pooling...

2016-12-03 16:47:49 1749 0

原创 Zookeeper 介绍

1、Zookeeper 的产生来源 Apache ZooKeeper 是一个高可靠的分布式协调中间件。它是 Google Chubby 的一个开源 实现,那么它主要是解决什么问题的呢? 那就得先了解 Google Chubby,Google Chubby 是谷歌的一个用来解决分布式一致性问题的组件...

2020-08-19 22:28:10 99 0

原创 分布式系统基础

1、分布式架构的演进过程 1.1 分布式架构的发展历史 1946 年情人节(2.14) , 世界上第一台电子数字计算机诞生在美 国宾夕法尼亚大学大学,它的名字是:ENIAC; 这台计算机占地 170 平米、重达 30 吨,每秒可进行 5000 次加法运算。 ENIAC 之后,电子计算机便进入了 ...

2020-08-06 17:25:10 188 0

原创 SynchronousQueue 同步队列
原力计划

1、概述 第一次接触SynchronousQueue,是在java提供的四种线程池中,缓存线程池的源码实现中看到(缓存线程池允许的创建线程数量为 Integer.MAX_VALUE,可能会创建大量的线程,从而导致 OOM,不建议使用): public static ExecutorService ...

2020-05-25 21:12:44 151 0

原创 BlockingQueue 阻塞队列 和 LinkedBlockingQueue 分析
原力计划

1、概述 阻塞队列(BlockingQueue)被广泛使用在“生产者-消费者”问题中,其原因是 BlockingQueue 提供了可阻塞的插入和移除的方法。当队列容器已满,生产者线程会被阻塞,直到队列未满;当队列容器为空时,消费者线程会被阻塞,直至队列非空时为止。 BlockingQueue 是一...

2020-05-25 21:09:38 94 0

原创 DDD—上下文映射图

一个项目的上下文映射图(Context Map)可以用两种方式表示, (1)比较容易的一种是画一个简单的框图来表示两个或多个限界上下文之间的映射关系。该框图表示了不同的限界上下文在解决方案空间中是如何通过集成相互关联的。 (2)另一种更详细的方式通过限界上下文集成的源代码实现来表示。 1、上下文映...

2019-11-17 16:40:06 1157 0

原创 DDD案例说明

1、案例说明 整个专栏的案例来源于一个虚构的公司,公司里有一个虚构的团队,他们真实的业务章程,并且有一个真实的软件系统需要部署开发部署,而他们所面临的DDD挑战和问题也是真实存在的。 这个公司叫做SaaSOvation。正如名字所示,该公司旨在开发一系列SaaS产品,该产品作为一种服务被用户使用。...

2019-11-03 17:58:16 839 0

原创 领域、子域和限界上下文概述

1、概述 1.1 领域 广义领域:领域(Domain)即是一个组织所做的事情以及其中所包含的一切。每个组织都有它自己的业务范围和做事方式。这个业务范围以及在其中所进行的活动都有它自己的业务范围和做事方式。这个业务范围以及在其中所进行的活动便是领域。当你组织开发软件时,你所面对的便是这个组织的领域。...

2019-11-03 17:54:50 901 0

原创 DDD入门

0、概述 本文主要从宏观角度,介绍下领域驱动模型。 领域驱动设计(DDD)作为一种软件开发方法,它可以帮助我们设计高质量的软件模型。 DDD同时提供了战略上的和战术上的建模工具来帮助我们设计高质量的软件模型。 DDD并不是关于技术的,而是关于讨论、聆听、理解、发现和业务价值的,而这些都是为了将知识...

2019-10-14 08:37:29 404 0

转载 让程序员崩溃的瞬间

转自:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元...

2019-09-30 13:50:00 403 0

原创 Java设计模式——模版方法模式

1、简介 Define the skeleton of an algorithm in an operation,deferring some steps to subclasses.Template Method lets subclasses redefine certain steps o...

2019-09-05 20:04:09 190 0

原创 java8—Optional优雅的处理 null

1、概述 Optional 类是一个可以为null的容器对象。如果值存在则isPresent()方法会返回true,调用get()方法会返回该对象。 Optional 是个容器:它可以保存类型T的值,或者仅仅保存null。Optional提供很多有用的方法,这样我们就不用显式进行空值检测。 ...

2019-08-31 17:04:45 634 0

原创 mysql中的锁机制(行锁、表锁和全局锁)

文章目录1、概述2、行级锁2.1 共享锁和排他锁2.2 意向共享锁和意向排他锁2.3 间隙锁(Next-Key锁)2.4 举例2.5 死锁和死锁检测3、表级锁3.1 表锁3.2 元数据锁(meta data lock,MDL)4、全局锁5、面试题5.1 全局锁相关5.2 行锁相关 1、概述 相对其...

2019-08-27 21:58:45 1797 1

原创 Java设计模式——代理模式

1、简介 代理模式( Proxy Pattern) 是一个使用率非常高的模式, 其定义如下: Provide a surrogate or placeholder for another object to control access to it.( 为其他对象提供 一种代理以控制对这个对象的...

2019-08-22 09:16:57 564 0

原创 mysql索引

一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本 500 页的书,如果想快速找到其中的某一个知识点,在不借助目录的情况下,那估计得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。 1、索引的常见模型 索引的出现是为了提高查询效率,但是实现索引的方式却...

2019-08-18 10:33:10 2389 0

原创 Java设计模式——工厂方法模式

文章目录1、简介2、推荐实现案例3、优缺点3.1 优点4、应用场景5、注意事项6、拓展6.1 缩小为简单工厂模式6.2 升级为多个工厂类6.3 替代单例模式6.4 延迟初始化7、最佳实践 1、简介 Define an interface for creating an object,but l...

2019-07-15 22:26:11 466 0

原创 dubbo介绍与基础架构

1、背景 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访...

2019-07-11 21:14:53 392 0

原创 mysql事务隔离级别

1、概述 数据库事务(简称:事务)是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。 一个数据库事务通常包含了一个序列的对数据库的读/写操作。它的存在包含有以下两个目的: (1)为数据库操作序列提供了一个从失败中恢复到正常状态的方法,同时提供了数据库即使在异常状态下仍...

2019-07-11 19:53:46 216 0

原创 Java设计模式—单例模式

1、简介 Ensure a class has only one instance, and provide a global point of access to it.( 确保某一个类只有一个实例, 而且自行实例化并向整个系统提供这个实例。 ) 单例模式通用类图如图所示: Singlet...

2019-07-10 20:27:31 177 0

原创 一条SQL更新语句是如何执行的?(redo log 和 binlog)

1、一条SQL更新语句是如何执行 你可能听说过,MySQL 可以恢复到半个月内任意一秒的状态。那是怎样做到的呢? 我们从一条更新语句来说明这个问题: 下面是这个表的创建语句,这个表有一个主键 ID 和一 个整型字段 c: create table T(ID int primary key, c i...

2019-07-08 20:22:41 438 0

原创 Elasticsearch 地理位置查询

本文参考自Elacticsearch的中文版翻译:https://es.xiaoleilu.com/ 并对基于Es 6.6.0版本进行API的更正。 地理位置 我们拿着纸质地图漫步城市的日子一去不返了。得益于智能手机,我们现在总是可以知道自己所处的准确位置,也预料到网站会使用这些信息。我想知道从当...

2019-06-26 19:44:18 1466 0

原创 Elasticsearch索引原理

Elasticsearch索引原理 Elasticsearch最关键的就是提供强大的索引能力了。 Elasticsearch索引的精髓:一切设计都是为了提高搜索的性能。 另一层意思:为了提高搜索的性能,难免会牺牲某些其他方面,比如插入/更新,否则其他数据库不用混了。 PUT /megacorp/e...

2019-06-25 18:56:38 392 0

原创 ElasticSearch基础架构

1、概述 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时...

2019-06-25 14:24:09 270 0

原创 Java设计模式——六大设计原则

1、概述 设计原则则是设计模式所遵循的规则,设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。 2、六大设计原则 2.1 单一职责原则(Single Responsibility Principle - SRP) 单一职责原则(SRP:Single responsibility...

2019-06-24 20:30:11 546 0

原创 mysql基础架构

我明天回塔拉再去想吧。那时我就经受得住一切了。明天,我会想出一个办法把他弄回来。毕竟,明天又是崭新的一天了!——《飘》 0、概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB...

2019-06-19 01:07:21 280 0

原创 ElasticSearch分页查询四种解决方案与原理

当你拼命想完成一件事的时候,你就不再是别人的对手,或者说得更确切一些,别人就不再是你的对手了,不管是谁,只要下了这个决心,他就会立刻觉得增添了无穷的力量,而他的视野也随之开阔了。——《基督山伯爵》 1、from + size 浅分页 常用的分页查询根据from+size语句如下: GET /my...

2019-06-10 22:41:33 7101 3

原创 BeanDefinitionRegistryPostProcessor——动态注册Bean到Spring容器

我宁愿靠自己的力量,打开我的前途,而不愿求有力者垂青。——《悲惨世界》 1、理论 一般如果想将类注册到spring容器,让spring来完成实例化,常用方式如下: xml中通过bean节点来配置; 使用@Service、@Controller、@Conponent等注解。 最近在研究通过Sp...

2019-06-04 21:57:59 12349 0

原创 Elasticsearch简介与安装

读书应具有学习和求知的欲望,也就是说,要用人类的天才积累的知识财富充实自己的头脑和心灵。 ——《书话》 1、简介 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发...

2019-02-23 19:32:52 284 0

原创 2018年总结与2019年新计划

1、概述 2018年发生了很多事情。有好有坏。人也慢慢走向成熟,不再为一时的坏而黯然失色;也不再为一时的好而暗自窃喜。总体来说,2018我是幸运的。 2、2018年总结 2.1 工作 在工作方面,2018年总共做了四个项目。经过17年的磨砺,18年针对复杂的情况也能从容面对了。 2.1.1 充电桩...

2019-02-23 17:07:22 548 3

原创 mac中删除相关快捷键

自己的行为最惹人耻笑的人,却永远是最先去说别人坏话的人。 ——《伪君子》 最近在项目测试过程中,需要进行向前删除和向后删除的操作。我发现在mac上居然找不到向后删除的快捷键。因此Google一波,mac提供的删除功能还挺多: (1)第一种:按 delete 键,实现 Windows 键盘上...

2018-12-26 11:46:47 3393 0

原创 mysql采用存储过程插入大批量数据

人在年轻的时候,觉得到处都是人,别人的事就是你的事,到了中年以后,才觉得世界上除了家人已经一无所有了。——王小波《爱你就像爱生命》 1、引言 最近发现老项目中的首页加载速度较慢,发现做主要的原因由于单表数据已经超过百万了,于是考虑通过优化SQL语句和增加索引来提升加载速度。线上库当然不能随意的...

2018-12-08 18:08:12 1950 0

原创 Spring事务注解@Transactional失效和切面失效问题

人最宝贵的是生命,生命属于人只有一次。人的一生应当这样度过:当他回首往事时,不会因虚度年华而悔恨,也不会因碌碌无为而羞耻。这样,临终前他就可以自豪地说:“我已经把自己整个生命和全部精力都献给了世界上最壮丽的事业——为人类的解放而奋斗。”——《钢铁是怎样炼成的》 1、引言 最近在开发采用Spri...

2018-12-01 13:04:28 2827 3

原创 Servlet线程安全问题

当你什么都不是的时候,你就无所畏惧。——《冰与火之歌》 1、引言 最近在开发中,经常理所当然的用SpringMVC处理请求,想着SpringMVC在处理高并发请求的时候怎么去解决线程安全问题。因此先研究了SPringMVC处理请求的基础,Servlet的线程安全问题,后面再去深入SpringM...

2018-11-18 22:20:44 206 0

原创 mysql修改表结构和字段方法总结

我一贯追求的是:在人的肉体与幻想允许的范围内,获得最大限度的真诚和信任,以及对所有的一切尽可能长久的保证。《镜中微瑕》 1、引言 在开发时有时候为了前期数据库设计不合理或者名称写的有问题,需要修改名称或字段属性,因此,本文总结了在开发中常用的修改字段的mysql命令。 2、ALTER COLU...

2018-11-15 19:58:27 1243 0

原创 SpringMVC中的参数绑定注解详解及其使用场景

我认为只有深刻地研究过人,才能创造出人物,如同只有认真地学习了一种语言才能讲它一样。——《茶花女》 0、引言 最近在写一个接口的时候,采用put请求,接收参数时采用了两个@requestparam接收。前端通过application/json传来两个参数,测试时总是接收不了,最后换成appli...

2018-11-14 20:22:18 1356 0

原创 修改mybatis-generator中数据库类型和Java类型的映射关系

离你越近的地方,路途越远;最简单的音调,需要最艰苦的练习。——《泰戈尔诗选》 1、修改类型映射关系 在项目中,为了降低数据的存储空间,status状态字段一般使用tinyint, 1个tinyint型数据只占用一个字节,一个int型数据占用四个字节。这看起来似乎差别不大,但是在比较大...

2018-09-15 15:58:36 3861 0

原创 linux下各种方法查看tomcat日志以及查看文件内容指令

宽宏大量,是惟一能够照亮伟大灵魂的光芒。——《巴黎圣母院》 1、引言 本周在Linux部署springboot项目的时候,采用自动化部署,一直以来都采用jar包的部署方式,本次采用war包的方式部署到tomcat容器。虽然我在项目中配置了Logback记录日志,但是一些预启动的内容...

2018-09-15 14:11:15 2289 0

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