无      2017-07-19
无      2021-12-21
参考docker安装Elasticsearch官方文档 https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html # 获取镜像 ``` docker pull docker.elastic.co/kibana/kibana:7.16.0 ``` # docker-compose启动 ## 新建do
无      2020-11-06
# Dubbo Server export Dubbo服务端的服务暴露及初始化 1. org.apache.dubbo.config.spring.ServiceBean#afterPropertiesSet 开始spring 容器初始化好属性后,回调这个方法开始初始化Provider 2. 前面一堆是初始化ApplicationConfig、Module、Registry(注册中心)、Con
无      2020-11-03
1. 一般现在时(do) 表示经常发生的动作,或者表示客观事实 > Ligit travels more quickly than sound. 光的传播速度比声音快(客观事实) 2. 一般过去时(did),强调已经发生的动作 一般过去时表示某个过去时间点已经发生的动作。 > I used the pen before. 我之前用过这支笔(站在现在时间点来看已经发生的事情) ![](http
无      2020-04-28
> 前言:软件开发方法是软件开发的方法学,旨在提供软件的质量,降低开发成本 # 6.1 软件生命周期 1. 可行性研究和规划:通过可行性分析确认原件的必要性,价值点,初步确认软件的目标、范围、风险和开发成本等内容。 2. 需求分析:需求分析是开发过程的重要阶段,初步确认软件开发的目标和范围,之后则要对软件的需求进行细致分析,确认最终要做成什么样子。这个过程极其重要,如果这个阶段出现分析错
无      2020-04-17
# 信息系统工程 以结构、元素、信息及反馈等进行分析,以达到最优设计、最优规划、最优管理和最优控制的目的。 系统工程的方法,霍尔提出的三维结构体系,以时间维、空间维、知识维组成的立体结构概括性表示出系统工程的各个阶段、各个步骤及所涉及到的知识范围。 时间维———是指工作的进度,而于一个具体的工作项目,从制定规划起到一直更新为止,全部过程可分为七个阶段: - 规划阶段——调研、程序设计阶段,
无      2020-02-07
无      2019-11-06
# 1. List转Map ``` /** * List -> Map * 需要注意的是: * toMap 如果集合对象有重复的key,会报错Duplicate key .... * apple1,apple12的id都为1。 * 可以用 (k1,k2)->k1 来设置,如果有重复的key,则保留key1,舍弃key2 */ Map appleMap = appleList.
无      2019-10-11
# processOn 体验地址:https://www.processon.com/i/56a24149e4b0bd5c5c250154
无      2019-10-10
MySQL Connector 版本升级 ``` mysql mysql-connector-java 8.0.11 ``` Druid依赖升级 ``` com.alibaba druid 1.1.10 ``` 链接jdbc url改成 ``` jdbc:mysql:
无      2019-06-01
# 前言 在大流量场景,秒杀、抢购场景,一般会对网站做一些流量控制,牺牲一部分流量而保护系统而不至于系统直接down机。 # 常见限流算法 ## 固定计算限流 就是统计固定时间内的流量数量,如果超过了就限制。这种很容易实现,利用AutomicLong统计,下一个统计周期后又清零重新计算。 这样会有以下问题: 1. 1s之内的前100ms就已经达到了,那么后900ms就是空闲的。 2. 如果1s
无      2019-02-11
# 问题的提出 我们知道,当我们的数据量达到一定数量时,需要将数据表进行水平拆分,从而满足大量数据的存储和查询,保证系统的可用性,但同时会出现另外一个问题就是,如果业务要查询“最近注册的第3页用户”,该如何实现呢?单库上,可以通过简单的sql实现分页查询 ``` select * from t_user order by time limit 200,100 ``` 分库分表后变成两个库后
无      2018-03-16
> Redis中有指定多个key批量删除的命令,却没有指定模糊key批量删除命令 批量删除多个key ``` del key1 key2 ``` 通过通配符"*"模糊匹配删除的lua脚本命令 ``` # 模糊删除 eval "local keys = redis.call('keys', ARGV[1]) for i=1,#keys,5000 do redis.call('del', unp
无      2017-12-08
最近看开开源框架的源码,发现涉及到网络传输的基本都是居于NIO实现的,尽管之前也或多或少接触过一点NIO的知识,毕竟还是在工作中使用接触的比较少,总觉得不够深入,特此写一遍博客来梳理下,自己对NIO的认识。 # 同步,异步,阻塞,非阻塞 ## 同步 与 异步 同步与异步关注的是消息通讯机制,所谓同步就是主动发出调用,在结果返回之前改调用不会结束,换句话说就是程序主动待定调用结果的返回。 而异
无      2017-12-08
任何学习都要有目标有规划,这是整个Java知识体系大纲,根据自己的知识体系认知画出来的,有很多还没有细化,也还有很多没有涉猎,比如大数据,列出这些好让自己学的有目标一些吧,也算是一个总结。 在线预览地址:[http://naotu.baidu.com/file/a94181bfafe64d39874b524ce8df18c1?token=a8efb35e029a526f](http://nao
无      2017-12-06
这是我年初在公司内部技术分享讲Disruptor的PPT,整理下放到博客里面。 # 什么是Disruptor Disruptor 是一个用于在线程间通信的高效低延时的消息组件,它像个增强的队列,能够在无锁的情况下实现异步并发操作,它是纯内存组件。 它的特点如下: - 高性能、无锁,实现每秒千万级别的异步业务处理能力 - 它除了能实现队列基本功能,还能实现顺序消费,或者复杂的并行和依赖结合的
无      2017-09-07
# 最近学习NIO文件读写的时候,就生成了一个疑问,程序怎么知道文件使用了什么编码,因为底层程序看到的都是二进制的字节码如: ``` 中文 | utf-8二进制编码 人 | 11100100 10111010 10111010 ``` 程序怎么知道通过这是一个通过3个字节编码的`人`字呢,于是查询了相关资料: 要解释这个问题,我们先来了解下ASCII码、GB2312、GBK、Unico
无      2017-11-17
# HTTP HTTP全称叫超文本传输协议(HyperText Transfer Protocol),是用于WWW(万网)服务器与浏览器客户端的一种通讯协议 ## TCP/IP 关于计算机通讯,需要了解的一些背景知识,TCP/IP. 我们经常说TCP/IP,为什么要一起说,因为这两者有着密切的关系,其实它包含两个协议: - TCP: TCP 负责将数据包在数据传送之前将它们分割为 IP 包,然
无      2017-03-01
1.下载redis安装包 ``` cd /root/software wget http://download.redis.io/releases/redis-3.2.4.tar.gz tar -zxvf redis-3.2.4.tar.gz  ``` 2.编译安装 ``` #先确保安装了make命令 #make是gcc的编译器,VPS买来必定要安装 #安装: yum -y install