7 击水三千里

尚未进行身份认证

没人会把我们变的越来越好,时间也只是陪衬。支撑我们变的越来越好的是我们自己不断进阶的才华,修养,品行以及不断的反思和修正

等级
TA的排名 3w+

大型定时任务数据结构HashedWheelTimer

一、缘起很多时候,业务有定时任务或者定时超时的需求,当任务量很大时,可能需要维护大量的timer,或者进行低效的扫描。例如:58到家APP实时消息通道系统,对每个用户会维护一个APP到服务器的TCP连接,用来实时收发消息,对这个TCP连接,有这样一个需求:“如果连续30s没有请求包(例如登录,消息,keepalive包),服务端就要将这个用户的状态置为离线”。其中,单机TC...

2019-10-15 21:21:41

Elastic-Job

什么是Elastic-JobElastic-Job是当当网大牛基于Zookepper,Quartz开发并且开源的Java分布式定时任务,解决Quartz不支持分布式的弊端。它由两个相互独立的子项目Elastic-Job-Lite和Elastic-Job-Cloud组成。基本概念分片概念:任务分布式的执行,需要将一个任务拆分成多个独立的任务项,然后由分布式的服务器分别执行某一个或几个分片...

2019-09-10 07:50:15

HBase开启Snappy压缩

背景HBase是目前主流的Nosql数据库之一,由于其优秀的水平扩展能力,业界常将其用来存储海量级的数据。在我们使用HBase的时候,为了节省服务器的存储成本,建议开启HBase的数据压缩特性。主流的HBase压缩方式有LZO和Snappy,Snappy的压缩比会稍微优于LZO。需要注意的是,Snappy是需要单独下载并编译安装的,此过程不在本文讨论范文之内,本文主要介绍如何通过HBases...

2019-09-27 21:05:38

Elasticsearch生产集群部署之各个节点以daemon模式运行以及优雅关闭

1、以daemon模式运行在生产环境中,会使用daemon进程的方式来启动es,而不是直接采用前台进程的方式来启动es,具体命令如下./bin/elasticsearch-d-ppid上面命令中的-doption用来指定es以daemon进程方式启动,并且-poption指定将进程id记录在指定文件中es启动后,日志信息可以在ES_HOME/logs目录中查看此外,...

2019-09-19 12:44:45

Elasticsearch聚合后分页深入详解

1、Elasticsearch支持聚合后分页吗,为什么?不支持,看看Elasticsearch员工如何解读。这个问题,2014年在github上有很长的讨论。究其为什么ES不支持聚合后分页?可概括如下:1)性能角度——聚合分页会在大量的记录中产生性能问题。2)正确性角度——聚合的文档计数不准确。所以奇怪的事情可能会发生,如第二页的第一项具有比第一页的最后一个元...

2019-09-19 11:32:21

Elasticsearch之深入聚合数据分析的实战

目录两个核心概念:bucket和metric家电卖场案例以及统计哪种颜色电视销量最高统计每种颜色电视平均价格bucket嵌套实现颜色+品牌的多层下钻分析统计每种颜色电视最大最小价格hitogram按价格区间统计电视销量和销售额搜索+聚合:统计指定品牌下每个颜色的销量cardinality去重算法以及每月销售品牌数量统计percentiles百分比算法以及...

2019-09-16 06:45:02

基于Elasticsearch+Logstash+Kibana的小型流量分析系统

目录总体流程虚拟机环境搭建1、在虚拟机中安装CentOS2、在每个CentOS中都安装Javalogstash部署以及上手使用安装mysql以及手动导入样例数据使用logstash将mysql数据导入elasticsearch安装和部署kibana基于kibana制作网站流量分析报表总体流程小型的流量分析系统,怎么来做,就讲解其中的一个做法和场景1...

2019-09-15 15:36:42

Elasticsearch之IK分词器配置

IK分词器配置文件讲解以及自定义词库实战1、ik配置文件ik配置文件地址:es/plugins/ik/config目录IKAnalyzer.cfg.xml:用来配置自定义词库main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起quantifier.dic:放了一些单位相关的词suffix.dic:放了一些后缀surname.dic:中国的姓...

2019-09-12 08:53:29

Elasticsearch之数据建模实战通过应用层join实现用户与博客的关联

1、构造用户与博客数据在构造数据模型的时候,还是将有关联关系的数据,然后分割为不同的实体,类似于关系型数据库中的模型案例背景:博客网站,我们会模拟各种用户发表各种博客,然后针对用户和博客之间的关系进行数据建模,同时针对建模好的数据执行各种搜索/聚合的操作PUT/website/users/1{"name":"小鱼儿","email":"xiaoy...

2019-09-12 08:49:53

Elasticsearch之实战掌握误拼写时的fuzzy模糊搜索技术

搜索的时候,可能输入的搜索文本会出现误拼写的情况doc1:helloworlddoc2:hellojava搜索:halloworldfuzzy搜索技术-->自动将拼写错误的搜索文本,进行纠正,纠正以后去尝试匹配索引中的数据POST/my_index/my_type/_bulk{"index":{"_id":1}}{"text":"Surp...

2019-09-12 08:22:06

Nginx+Keepalived高可用集群部署详细文档

系统两台Nginx:CentOS6.5x86_64两台tomcat:CentOS6.5x86_64拓扑 机器IP 安装软件 角色 虚拟ip 描述 192.168.15.132 Nginx、keepalived N...

2019-08-23 15:41:42

Spring_Cloud_Finchley.SR1文档对SpringCloud配置文件优先级的描述

不同位置配置文件的优先级相同位置配置文件执行顺序bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等application.yml(application.properties)应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。...

2019-08-20 07:24:55

电商大数据分析模块设计涉及的概念

电商模块核心关注点a.购买率b.订单数量c.会员数量d.用户数量用户:访问网站的非登录客户区分用户方式PC端/web移动端:1)、采用IP地址来区分用户问题:由于会由于一些技术代理等问题导致多个用户共用一个IP地址?2)、采用客户端种植cookie方式...

2019-08-18 21:27:14

Nginx的原理、常用配置和生产案例应用

目录Nginx的概念Nginx的系统架构Nginx的服务过程Nginx.conf配置讲解自定义日志格式Location语法Nginx的具体应用一、Nginx+Lua实现动态黑名单二、基于Nginx的静态缓存三、基于Nginx图片防盗链四、子域名展示五、多个config配置附录1:Nginx日志格式变量说明附录2:Nginx的安...

2019-08-18 09:52:14

Elasticsearch 基本查询语法

基本操作操作索引1.新建索引curl-XPUTlocalhost:9200/index012.查看索引curl-XGEThttp://192.168.168.101:9200/index01/_settingscurl-XGEThttp://192.168.168.101:9200/index01,blog/_settings3.删除索引curl-XDELET...

2019-08-16 16:35:35

对于mybatis if标签对 byte int 等非字符串和字符串判断的问题

1.对于byteint等pojo中属性判断的时候注意不可以是这种情况,newsNature如果是0就会导致无法更新<iftest="newsNature!=nullandnewsNature!=''">andnews_nature=#{newsNature}</if>必须修改成以下判断<iftest="...

2019-08-15 15:52:28

Python版飞机大战游戏的设计(五)-----英雄登场

英雄登场目标设计英雄和子弹类 使用pygame.key.get_pressed()移动英雄 发射子弹01.设计英雄和子弹类英雄需求游戏启动后,英雄出现在屏幕的水平中间位置,距离屏幕底部120像素 英雄每隔0.5秒发射一次子弹,每次连发三枚子弹 英雄默认不会移动,需要通过左/右方向键,控制英雄在水平方向移动子弹需...

2019-08-14 13:15:52

Python版飞机大战游戏的设计(四)-----碰撞检测

碰撞检测目标了解碰撞检测方法 碰撞实现01.了解碰撞检测方法pygame提供了两个非常方便的方法可以实现碰撞检测:pygame.sprite.groupcollide()两个精灵组中所有的精灵的碰撞检测groupcollide(group1,group2,dokill1,dokill2,collided=None)->Sprite_di...

2019-08-14 09:26:15

Python版飞机大战游戏的设计(三)-----游戏背景

游戏背景目标背景交替滚动的思路确定 显示游戏背景01.背景交替滚动的思路确定运行备课代码,观察背景图像的显示效果:游戏启动后,背景图像会连续不断地向下方移动 在视觉上产生英雄的飞机不断向上方飞行的错觉——在很多跑酷类游戏中常用的套路 游戏的背景不断变化 游戏的主角位置保持不变 1.1实现思路分析解决办法创建两张背景图像...

2019-08-14 09:18:41

Python版飞机大战游戏的设计(二)-----游戏框架搭建

敌机出场目标使用定时器添加敌机 设计Enemy类01.使用定时器添加敌机运行备课代码,观察敌机的出现规律:游戏启动后,每隔1秒会出现一架敌机 每架敌机向屏幕下方飞行,飞行速度各不相同 每架敌机出现的水平位置也不尽相同 当敌机从屏幕下方飞出,不会再飞回到屏幕中1.1定时器在pygame中可以使用pygame.time.set_...

2019-08-14 08:02:09

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。