(Andrew)的专栏

碧海蓝天的IT经历

SpringBoot之使用Hibernate Validator验证参数

开发 WEB 应用时参数校验必不可少。前端通过 js 校验参数合法性,后端也需要对参数进行校验。常见的做法是在 Controller 或者 Service 中通过 if 或者 assert 判断参数是否合法。这样的方式虽然简单,但是代码冗余、耦合度高。其实可以通过 Hibernate Valida...

2019-01-16 15:31:22

阅读数 68

评论数 0

spring boot restful参数@RequestParam vs @PathVariable

@RequestParam和@PathVariable都能够完成类似的功能——因为本质上,它们都是用户的输入,只不过输入的部分不同,一个在URL路径部分,另一个在参数部分。要访问一篇博客文章,这两种URL设计都是可以的: 通过@PathVariable,例如/blogs/1 通过@Reques...

2019-01-15 17:31:43

阅读数 214

评论数 0

Installing Checklists plugin on Linux

Our plugins are easy to install and do not change Redmine database data, but we recommend a full backup before installation. What is commonly done is...

2018-07-30 11:12:21

阅读数 87

评论数 0

Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore

在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。以下是本文目录大纲:一.CountDownLatch用法二.CyclicBarrier用法三.Semap...

2018-05-08 19:05:16

阅读数 70

评论数 0

docker容器工具nsenter

对于运行在后台的docker容器,我们经常需要做的事情是进入到容器中,docker为我们提供了docker exec 、docker attach 命令,并且还提供了nsenter工具,外部工具供我们使用。docker attach存在的问题是:当多个窗口同时attach到同一个容器时,所有的窗口...

2018-05-08 14:45:45

阅读数 199

评论数 0

深入理解Java的接口和抽象类

  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:  一...

2018-04-28 12:36:58

阅读数 64

评论数 0

数据库多表更新

oracle:update emp a set a.deptno=( select c.deptno from dept c where c.dname='RESEARCH') where exists (select 1 from dept b where a.deptno=b.deptno a...

2018-04-26 16:43:05

阅读数 586

评论数 0

oracle keep分析函数

一、keep函数介绍keep是Oracle下的另一个分析函数,他的用法不同于通过over关键字指定的分析函数,可以用于这样一种场合下:取同一个分组下以某个字段排序后,对指定字段取最小或最大的那个值。从这个前提出发,我们可以看到其实这个目标通过一般的row_number分析函数也可以实现,即指定rn...

2018-04-26 16:07:41

阅读数 119

评论数 0

InnoDB的关键特性-插入缓存,两次写,自适应hash索引详解

InnoDB存储引擎的关键特性包括插入缓冲、两次写(double write)、自适应哈希索引(adaptive hash index)。这些特性为InnoDB存储引擎带来了更好的性能和更高的可靠性。插入缓冲插入缓冲是InnoDB存储引擎关键特性中最令人激动的。不过,这个名字可能会让人认为插入缓冲...

2018-04-20 22:12:15

阅读数 231

评论数 0

谈谈MySQL水平扩展

问题背景工作中遇到数据库数据增长过快,单表一年之后预计到达35M行数据,可以预见MySQL性能将下降厉害,并且随着业务的规模化,担心单表将很难抗住并发压力,出现故障后恢复时间变长对业务影响也会变大,因此需要考虑数据水平扩展,目前项目采用Golang开发,一个Google开发的以简洁的语法,内建高并...

2018-03-13 22:11:16

阅读数 115

评论数 0

MARIADB安装、初始化及常用操作

1.Linux下安装与初始化#安装   yum install mariadb-server#设置编码 vim /etc/my.cnf[mysqld]character-set-server=utf8  #启动   systemctl start mariadb#自启动  systemctl en...

2018-03-04 11:40:24

阅读数 830

评论数 0

mongodb3.6集群搭建:分片集群认证

上篇集群已经创建,现在加入认证。1. 生成密钥文件每个服务器上创建路径: mkdir -p /var/lib/mongo/auth生成64字节的密钥文件openssl rand -base64 64 > /var/lib/mongo/auth/keyfile.key把密钥文件...

2018-02-20 22:15:38

阅读数 1391

评论数 0

mongodb3.6集群搭建:分片+副本集

mongodb是最常用的noSql数据库,在数据库排名中已经上升到了前五。这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群。在搭建集群之前,需要首先了解几个概念:路由,分片、副本集、配置服务器等。相关概念mongodb集群架构图:从图中可以看到有四个组件:mongos、config s...

2018-02-19 13:43:15

阅读数 4941

评论数 0

MongoDB 聚合

    MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后的数据结果。有点类似sql语句中的 count(*)。aggregate() 方法MongoDB中聚合的方法使用aggregate()。语法aggregate() 方法的基本语法格式如下所示:...

2018-02-18 18:46:05

阅读数 210

评论数 0

分布式ID方案

背景在分布式系统中,经常需要对大量的数据、消息、http请求等进行唯一标识,例如:在分布式系统之间http请求需要唯一标识,调用链路分析的时候需要使用这个唯一标识。这个时候数据库自增主键已经不能满足需求,需要一个能够生成全局唯一ID的系统,这个系统需要满足以下需求:全局唯一:不能出现重复ID。高可...

2018-02-08 15:10:11

阅读数 93

评论数 0

什么是分布式系统中的幂等性

现如今我们的系统大多拆分为分布式SOA,或者微服务,一套系统中包含了多个子系统服务,而一个子系统服务往往会去调用另一个服务,而服务调用服务无非就是使用RPC通信或者restful,既然是通信,那么就有可能再服务器处理完毕后返回结果的时候挂掉,这个时候用户端发现很久没有反应,那么就会多次点击按钮,这...

2018-01-30 13:29:44

阅读数 704

评论数 0

使用Systemd来管理服务

在centos7 redhat7使用 Systemd 来管理服务,以及各项的含义; 一、开机启动 对于那些支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件,如果你想让该软件开机启动,就执行下面的命令(以httpd.se...

2018-01-28 19:58:06

阅读数 678

评论数 0

Redis 发布订阅

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 Redis 客户端可以订阅任意数量的频道。 下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 ...

2018-01-28 08:48:16

阅读数 246

评论数 0

基于MHA和Galera Cluster实现MySQL高可用

MHA:Master HA;是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating  master  failover功能。MHA在监控到master节点故障时,会将拥有最新数据的slave节点升为新的master节点,在此期间,MHA会通过于slave节点获取额...

2018-01-22 10:09:40

阅读数 165

评论数 0

mangoBD地理位置索引JAVA实战

在现在的移动互联网应用中,LBS功能几乎是每个APP的标配。LBS功能的实现方式也有很多种,Mysql有相应的计算函数,但是Mysql实现此功能需要经过较多的计算,如果数量很大,对于查询性能是个极大的考验。不过对于一开始就使用Mysql的项目来说,需要增加LBS功能就能平和地过渡。  mongo...

2018-01-21 17:21:15

阅读数 148

评论数 0

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