自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (4)
  • 收藏
  • 关注

原创 MySQL容器中文乱码问题

MySQL容器中文乱码问题1.创建文件utf8mb4.cnf,内容如下,这个就是sql的配置文件,作用是把默认字符集改为utf8mb4[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSE...

2018-11-29 14:37:41 529

原创 Maven 插件构建 Docker镜像

插件名称:docker-maven-plugin官网地址:https://github.com/spotify/docker-maven-plugin由Spotify公司开发的Maven 插件1. 在pom文件中添加Maven的Docker插件```<plugin> <groupId>com.spotify</groupId&a

2018-11-28 15:18:12 339

原创 Docker整合JavaWeb(极简的方式)

一、环境CentOS7 及以上(我是阿里云服务器)Java8SpringBoot Mysql5.0 及以上二、准备工作docker pull mysql:5.7 下载mysql5.7版本镜像启动mysql容器docker run --name simple-mysql -e MYSQL_ROOT_PASSWORD=my_sql_521 -p 3306:3306 -d my...

2018-11-27 15:24:14 364

原创 Docker 虚拟机管理命令

docker 虚拟机管理命令如下图:DockerFile 文件定义了镜像要安装的程序和配置的环境。通过build指令可以创建出镜像。指令: docker build DockerFile文件名将Docker 镜像分发给其它 docker主机:第一种:通过push指令将本地镜像上传到到仓库,其他docker主机通过search指令去仓库中查找镜像,然后利用pull指令从仓库...

2018-11-24 14:48:29 519

原创 关于缓存行填充的一点思考

关于缓存行填充的一点思考Java6的处理方式Java7的处理方式Java8的处理方式,采用注解最后在看看Disruptor中防止伪共享的方式。1.此文是记录我学习缓存行填充的一点思考,之前对缓存行填充只是有浅显的了解。2.我不会从很基本的地方说起,这不是入门缓存行填充的文章。3.看了很多关于缓存行的文章,但是很少去提及对象头是怎么缓存的,很疑惑。我们要明白,缓存行填充主要解决的是伪共享...

2018-11-23 20:48:08 860

原创 公共组件开发流程

公共组件开发流程:1. 创建SpringBoot的web项目,然后根据业务需求开发。只需开发业务逻辑层和数据访问层。2. 开发完成并且通过测试用例以后,删除多余的依赖,再将项目打成jar包,供其他服务引用。3. 公共组件被引用到其他服务,需要注意一下几点:公共组件的resource目录下所有配置都不会被调用到。服务会默认调用自己的resource下的配置文件。公共组件中resource...

2018-11-08 14:35:10 2436

转载 SpringCloud 创建 ConfigurableEnvironment Bean异常

文章转载来源:https://blog.csdn.net/qq_16513911/article/details/81115901SpringCloud 创建 ConfigurableEnvironment Bean异常org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean ...

2018-09-28 10:28:48 8492 3

原创 Redis 缓存穿透、缓存并发、缓存雪崩

缓存穿透、缓存并发、缓存雪崩是常见的由于高并发而导致的缓存问题。下面讲解其产生原因和解决方案。缓存穿透通常是由于恶意攻击或无意造成的;缓存并发是由于设计不足造成的;缓存雪崩是由于大量缓存同时失效造成的。三种问题都比较典型,是难以防范和解决的。下面讲解其解决方案,以便在缓存设计中进行参考。1、缓存穿透缓存穿透是指用户使用不存在的key进行大量的高并发查询,这种请求不能命中缓存,每次请...

2018-08-30 13:34:28 269

原创 无重叠区间

无重叠区间算法描述:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区间互不重叠。注意:可以认为区间的终点总是大于它的起点。区间 [1,2] 和 [2,3] 的边界相互“接触”,但没有相互重叠。示例如下:示例 1:输入: [ [1,2], [2,3], [3,4], [1,3] ]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。示例 2:...

2018-08-10 11:41:03 834

原创 fastjson 中 JSONArray 与 List 相互的转换

一、模拟业务场景REST 开发中,前后台传输的是JSON数据,因此在后台写好接口后,需要进行Mock测试,这其中难免会遇到解析JSON数据。 假设后台返回数据如下所示:{"code":200, "result":{ "create_time":1533802750000, "teaching_case":[ {&am

2018-08-09 17:00:37 12208 3

原创 三角形最小路径和

三角形最小路径和问题给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形:[ [2], [3,4], [6,5,7], [4,1,8,3]]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。 说明:如果你可以只使用 O(n) 的额外空间(n 为三角形的总行数)来解决这个问题,那...

2018-08-08 22:07:43 1218

原创 N皇后问题II

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。求解:给定一个整数 n,返回 n 皇后不同的解决方案的数量。前面我写过 n皇后问题算法,链接如下: n皇后问题:https://blog.csdn.net/annotation_yang/article/details/81462959n皇后问题II 的算法思想和n皇后问题是类似的...

2018-08-07 21:14:19 423

原创 PXC 集群搭建

一、PXC 集群的安装PXC集群比较特殊,需要安装在 linux 或 Docker 之上。这里使用 Docker进行安装!Docker的镜像仓库中包含了 PXC数据库的官方镜像,地址:https://hub.docker.com/r/percona/percona-xtradb-cluster/如下图所示:图安装该镜像有两种方式: - docker pul...

2018-08-07 18:34:39 1859

原创 mybatis 中 #{} 和 ${} 的区别及应用场景

<!-- 条件查询 --> <select id="getList" resultType="com.ccyang.UserDao"> select u.user_id , u.user_name ,

2018-08-07 18:32:44 7712

原创 N 皇后问题

n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给定一个整数 n,返回所有不同的 n 皇后问题的解决方案。 每一种解法包含一个明确的 n 皇后问题的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例如下:输入: 4输出: [ [".Q..", // 解法 1 "...Q", "Q...", ".....

2018-08-06 22:54:41 392

原创 LeetCode 单词搜索

要求: 给定一个二维网格和一个单词,找出该单词是否存在于网格中。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。示例:board =[ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E']]给定 word = "...

2018-08-05 22:29:35 553

原创 Redis脚本Lua实现访问控制频率

Redis 脚本功能可以自定义新的命令,并且也是原子执行。 本篇和上一篇是相对应的。一、简单介绍下脚本:redis2.6推出脚本功能,允许开发者使用 Lua语言编写脚本传到Redis中执行,在Lua脚本中可以调用大部分redis命令。使用脚本优点: 减少网络开销:执行一次脚本只需要发送一次请求,减少网络往返时延。如果不使用脚本,可能多个命令要发送多个请求,还会出现竞态...

2018-08-05 13:37:30 1174

原创 Redis实现访问控制频率

Redis实现访问控制频率 假定要限制每分钟每个用户最多只能访问10个页面。方案一: 通过为用户使用一个名为 rate.limiting:userId 的字符串类型键,每次访问都使用 INCR命令递增该键的键值。 如果递增后的值为 1(第一次访问),则要为键设置过期时间 60秒。 这样每次用户访问都读取该键值,当键值超过100时,说明访问频率超过了限制,需要稍后访问。 该键...

2018-08-05 12:43:04 2688

原创 RabbitMQ 基本使用(注解的方式)

RabbitMQ 可以采用基于注解的方式来创建队列,如下:1. 手动在 RabbitMQ 管理界面创建 myQueue队列 1. 发送者代码: @Autowired private AmqpTemplate amqpTemplate; public void send(){ String msg = "mqsender send ......

2018-08-05 10:06:50 18640 2

原创 RabbitMQ 使用之 四种交换机模式

一、集成RabbitMQ. 添加依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp&lt

2018-08-05 10:06:25 4069 2

原创 SpringCloud微服务之动态自动更新配置(三)

先看一张动态自动更新原理图: SpringCloud Bus 负责管理消息队列,实现配置传输给各个服务 WebHook 实现更新配置时自动发送 /bus-refresh 请求上面两种配置的结合,将实现动态自动更新配置。一、SpringCloud Bus使用详解在config server中添加依赖和配置: <!-- spring cloud...

2018-08-04 20:05:00 2163

原创 SpringCloud 微服务统一注册中心 Config Client( 二 )

一、环境配置给项目添加依赖这里写代码片编写配置文件因为配置文件已经放到 远程仓库,因此这里只需要进行一些config配置即可spring.application.name=orderspring.cloud.discovery.enable=truespring.cloud.discovery.service-id=config : # 这是 configS...

2018-08-04 20:04:43 869 7

原创 SpringCloud 微服务统一配置中心 Config Server ( 一 )

一、创建Config Server项目 config server 本身就是一个微服务项目二、启动类添加注册 @EnableDiscoveryClient : 向注册中心注册的功能 @EnableConfigServer : 配置中心的功能三、添加配置需要添加一个远程 github仓库地址存放配置文件。 远程 git 中存放配...

2018-08-04 20:04:23 681

原创 fastjson下 Java 集合和 JSONArray 的相互转换

fastjson下 Java 数组和 JSONArray 的相互转换import java.util.ArrayList;import java.util.Arrays;import java.util.List;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alib...

2018-07-31 18:30:42 5824

原创 微服务之 antlr/RecognitionException 异常解决方案

问题概述: 在微服务调用中涉及到spring-cloud-data-jpa操作,这时候在服务端会出现这种异常如下org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: antlr/R...

2018-07-04 11:08:02 1789

原创 springCloud 服务间的两种通信方式

一、springCloud 服务间的通信方式有两种RestTemplate 方式Feign 的方式二、RestTemplate 方式 RestTemplate 中也分为三种方式 简单来演示一下吧第一种方式 直接使用 RestTemplate ,url 写死服务端编写/** * 用来测试与 order 服务的连接 * @author ccyan...

2018-07-01 19:56:41 28453 11

转载 SpringCloud Eureka详解

Spring Cloud Eureka详解一 Eureka服务治理体系1.1 服务治理服务治理是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。Spring Cloud Eureka是Spring Cloud Netflix微服务套件中的一部分,它基于...

2018-06-30 11:40:40 217

原创 MySQL常用集群方案

了解 MySQL 集群之前,先看看单节点数据库的弊病:大型互联网程序用户群体庞大,所以架构需要特殊设计。单节点数据库无法满足大并发时性能上的要求。单节点的数据库没有冗余设计,无法满足高可用。单节点 MySQL无法承载巨大的业务量,数据库负载巨大。一、常见 MySQL 集群方案Repliaction 集群方案PXC 集群方案( Percona XtraDB Cluste...

2018-06-30 11:15:37 32350

原创 Docker 入门 (二)

上一节从架构方面认识了 Docker 以及如何安装 Docker,下面就来看一看 Docker 镜像的使用吧!国外的镜像仓库下载速度贼慢,我们就使用国内镜像仓库吧,就选 DaoCloud吧,最近在学SpringCloud,看着比较亲切,哈哈!一、配置DaoCloud加速器进入到 daoCloud官网,首先需要注册登录,然后才能使用daoCloud提供的加速器。更多 -&g...

2018-06-29 17:02:20 203

原创 Docker 入门 (一)

一、了解Docker Docker是一个轻量级的容器技术,类似于虚拟机技术(vmvare、virtualbox),但vmvare虚拟机技术是一个重量级的虚拟机。原因后面会解释。 Docker主要解决的是隔离性问题。Docker因此的优点是实现了虚拟机技术的资源隔离,它的性能远高于虚拟机技术。 Docker的运行原理是基于Linux的,所以Docker只能在Linux下运行。 ...

2018-06-29 11:49:08 321

原创 CentOS7 防火墙

CentOS7 默认安装了 firewalld 防火墙利用防火墙,我们可以利用或者限制传输数据的通过。 管理防火墙:查看、启动、关闭、重启firewall-cmd –statefirewall-cmd –startfirewall-cmd –stopfirewall-cmd –restart防火墙端口管理开放端口:firewall-cmd –permanent –...

2018-06-29 10:46:00 131

原创 文章标题

状态模式状态模式定义:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。状态模式主要解决的问题是:当控制一个对象状态转换的条件表达式过于复杂时的情况。此时把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。状态模式结构图为: 状态模式结构图代码解析://抽象状态类abstract class State{ public abstract voi

2017-11-22 00:01:17 168

原创 建造者模式

建造者模式             如果你需要将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示的意图时,可以选择使用建造者模式。比如,你要画一个人,你需要先画头、身体、两手、两脚。这些是固定的流程,而具体的胖人、瘦人,这些就是不同的表示意图。这是就可以使用建造者模式固定建造流程,具体实现交由子类去实现。如果我们使用了建造模式,用户就只需指定需要建造的类型就可以得到它们,而

2017-11-20 23:59:48 157

原创 外观模式

外观模式外观模式:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式结构图: 外观模式结构图代码解析://四个子系统的类class SubSystemOne{ public void methodOne(){ print("子系统方法一"); }}class SubSystemTwo{ publ

2017-11-19 09:42:24 184

原创 模板方法模式

模板方法模式模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟的到子类中。模板方法可以使得子类不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法结构图如下: 模板方法结构图代码解析:public abstract class AbstractClass{ //需要由特定子类实现的方法 public abstract void primitiveOperation1()

2017-11-18 23:52:13 171

原创 原型模式

原型模式原型模式结构图: 原型模式结构图代码解析:/** * Created by 杨Sir on 2017/11/17. * 原型模式接口,,如果单纯是行为,使用接口最好 * 如果涉及到共性的属性,则使用抽象类最好。 需要自己权衡。 */public interface Prototype extends Cloneable { public Prototype clone()

2017-11-17 22:24:07 171

原创 本地代码上传到GitHub远程仓库

本地代码上传到GitHub远程仓库在项目的当前目录下打卡 git Bash Here命令行窗口1.执行初始化命令:       git init2.将项目文件添加到仓库:       git add . 注意:”.”代表当前目录下所有文件。3.将添加的文件提交到仓库:       git commit -m "注释"4.在github中创建自己的 Repository,如下图所示:

2017-11-17 20:37:39 333

原创 Java 深复制与浅复制

Java 深复制与浅复制Java里Object类有个方法clone(),访问类型是protected。该方法用于对对象的克隆。注意克隆不包含静态资源。       浅克隆(复制):浅复制只复制对象本身的8种基本数据类型及其他们的包装类型,不复制它所引用的对象本身。       深克隆(复制):复制对象的所有类型数据,相当于将对象本身数据及其对象中引用到的对象,在堆内存中重新写了一份。 从内存角

2017-11-17 18:21:49 273

原创 工厂方法模式

工厂方法模式工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。工厂方法实现了对扩展开放,对修改关闭。工厂方法模式结构图: 工厂方法模式结构图代码解析://产品类public interface Product{ public void operate();}//产品A类public class ProductA implemen

2017-11-15 23:12:43 198

原创 代理模式

代理模式代理模式:为其他对象提供一种代理以控制对这个对象的访问。代理模式结构图如下: 代理模式结构图代码解析://代理类和真实类的公共接口(接口或抽象类)public abstract class Subject{ public abstract void request();}//真实类,RealSubject类,定义 Proxy类所代表的真实实体public class R

2017-11-15 00:34:15 163

Restlet Client

亲测可用,拖至谷歌的扩展工具页面即可。Restful将是潮流,该工具必不可缺!

2018-03-06

重构-改善代码的设计

本书内容清晰,能使大家开发项目时写成更加优秀的代码!

2017-09-28

mockito-1.10.19.zip

到现在为止是 1.x最新的版本,欢迎下载,以后会上传更多资源供大家下载!

2017-09-28

空空如也

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

TA关注的人

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