tianyaleixiaowu的专栏

世界上有10种人,一种懂2进制,一种不懂2进制

使用DaoCloud持续构建docker镜像,自动化部署

我们学会了在主机上安装部署docker,也学会了构建自己的docker镜像和容器,启停也都会用了,下一步就需要持续构建发布docker的技能了。我们希望能在代码提交后,有个远程服务能自动开始构建项目、拉取相应的镜像,执行对应的Dockerfile命令,最终给我们生成一个可以直接启动的contrai...

2017-07-31 14:47:38

阅读数:2319

评论数:0

使用ElasticSearch完成百万级数据查询附近的人功能

上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能。这一篇我们来看一下使用ElasticSearch完成大数据量查询附近的人功能,搜索N米范围的内的数据。准备环境...

2017-07-27 11:41:19

阅读数:7391

评论数:10

ElasticSearchRepository和ElasticSearchTemplate的使用

Spring-data-elasticsearch,ElasticSearchTemplate使用,ElasticSearchRepository使用,ES的用法

2017-07-26 17:28:29

阅读数:11652

评论数:5

Springboot yml获取系统环境变量的值

注意,这里说的是获取系统环境变量的值,譬如Windows里配置的JAVA_HOME之类的,可以直接在Springboot的配置文件中获取。我们经常使用一些docker管理平台,如DaoCloud、rancher之类的,里面都可以配置环境变量,目的当然也就是供程序获取。使用环境变量的话,可以避免在a...

2017-07-24 14:00:02

阅读数:5936

评论数:4

Java中关于内存泄漏出现的原因以及如何避免内存泄漏

转账自:http://blog.csdn.net/wtt945482445/article/details/52483944Java 内存分配策略Java 程序运行时的内存分配策略有三种,分别是静态分配,栈式分配,和堆式分配,对应的,三种存储策略使用的内存空间主要分别是静态存储区(也称方法区)、栈...

2017-07-24 10:06:52

阅读数:679

评论数:0

看一遍就懂,详解java多线程——volatile

多线程一直以来都是面试必考点,而volatile、synchronized也是必问点,这里我试图用容易理解的方式来解释一下volatile。了解volatile之前,先来看一下它的最大特点和作用:1

2017-07-21 13:33:56

阅读数:430

评论数:0

贫血,充血模型的解释以及一些经验

关于在项目中的分层问题争论已久,过大的domain object或者过大的Service都存在较大的不可避免的问题,尤其是Service层在协调多个不同的domain object的持久化时代码更是丑陋,那么引入怎样的模式来改善现状?网上找到了这篇还是不错的。转载自:http://kb.cnblo...

2017-07-19 16:51:57

阅读数:602

评论数:0

Java并发编程之CountDownLatch,CyclicBarrier实现一组线程相互等待、唤醒

java多线程应用场景不少,有时自己编写代码又不太容易实现,好在concurrent包提供了不少实现类,还有google的guava包更是提供了一些最佳实践。 Java并发编程之CountDownLatch,CyclicBarrier

2017-07-18 17:19:55

阅读数:1057

评论数:2

mac和linux下使用Docker,部署SpringBoot项目到docker

主要是看一下如何在linux及mac上安装docker,创建docker镜像,部署SpringBoot项目到docker,并借助于DaoCloud进行docker镜像下载加速等。我用的电脑是mac,本身并不支持docker,需要安装Docker ToolBox才能使用Docker。由于大部分情况下...

2017-07-14 15:38:35

阅读数:4260

评论数:0

使用RateLimiter完成简单的大流量限流,抢购秒杀限流

RateLimiter是guava提供的基于令牌桶算法的实现类,可以非常简单的完成限流特技,并且根据系统的实际情况来调整生成token的速率。 通常可应用于抢购限流防止冲垮系统;限制某接口、服务单位时间内的访问量,譬如一些第三方服务会对用户访问量进行限制;限制网速,单位时间内只允许上传下载多少字节...

2017-07-11 17:54:39

阅读数:1592

评论数:0

限流算法之漏桶算法、令牌桶算法

昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类. RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类. 1.限流 每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,...

2017-07-11 11:03:59

阅读数:6279

评论数:0

限流之令牌桶算法——RateLimiter官方文档

昨天CodeReview的时候看到同时使用RateLimiter这个类用作QPS访问限制.学习一下这个类. RateLimiter是Guava的concurrent包下的一个用于限制访问频率的类. 1.限流 每个API接口都是有访问上限的,当访问频率或者并发量超过其承受范围时候,我们就必须考...

2017-07-11 11:01:06

阅读数:1464

评论数:0

BloomFilter布隆过滤器使用

从上一篇可以得知,BloomFilter的关键在于hash算法的设定和bit数组的大小确定,通过权衡得到一个错误概率可以接受的结果。 算法比较复杂,也不是我们研究的范畴,我们直接使用已有的实现。 google的guava包中提供了BloomFilter类,我们直接使用它来进行一下简单的测试。 ...

2017-07-07 17:49:57

阅读数:5172

评论数:0

使用BloomFilter布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重

Bloom Filter是一个占用空间很小、效率很高的随机数据结构,它由一个bit数组和一组Hash算法构成。可用于判断一个元素是否在一个集合中,查询效率很高(1-N,最优能逼近于1)。 在很多场景下,我们都需要一个能迅速判断一个元素是否在一个集合中。譬如: 网页爬虫对URL的去重,避免爬取相...

2017-07-07 16:23:03

阅读数:2846

评论数:1

使用redis计数来控制单位时间内对某接口的访问量,防止刷验证码接口之类的

使用自定义注解的方式,在需要被限制访问频率的方法上加注解即可控制。 看实现方式,基于springboot,aop,redis。 新建Springboot工程,引入redis,aop。 创建注解 package com.tianyalei.annotation; import org.sp...

2017-07-06 15:01:09

阅读数:2727

评论数:2

2 秒杀系统模拟基础实现,使用Redis实现

这一篇,我们来使用redis进行数据存储。 新建一个redis的service实现类 package com.tianyalei.service; import com.tianyalei.model.GoodInfo; import org.springframework.beans.fa...

2017-07-06 11:37:32

阅读数:1249

评论数:0

1 秒杀系统模拟基础实现,使用DB实现

本文根据动脑学院的一节类似的课程,改编实现。分别使用DB和redis来完成。 隔离的解释 业务隔离:将秒杀业务独立出来,尽量不与其他业务关联,以减少对其他业务的依赖性。譬如秒杀业务只保留用户id,商品id,数量等重要属性,通过中间件发送给业务系统,完成后续的处理。 系统隔离:...

2017-07-06 11:27:20

阅读数:1244

评论数:1

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