- 博客(81)
- 资源 (2)
- 收藏
- 关注
原创 皮皮的森林超市
冬天到了,森林里的动物们都在为寒冷的季节做准备。超市里摆满了各种食物和温暖的物品,有坚果、蜂蜜、毛线球和各种小动物们需要的过冬用品。一天,一只小兔子急匆匆地跑进了森林超市,它冻得瑟瑟发抖,皮皮啄木鸟立刻给它拿了一顶温暖的帽子和一条围巾。随着冬天的深入,越来越多的动物们来到森林超市,它们都得到了皮皮的帮助。皮皮啄木鸟的善良和勤劳在森林里传开了,所有的动物都喜欢上了这个小小的森林超市。皮皮啄木鸟用它的爱心和努力,让整个森林的冬天都变得不再寒冷。在一个遥远的森林里,有一家神奇的森林超市,它只在冬天开放。
2024-10-07 12:25:38
311
原创 goland 设置注释模板
网上找了一些办法 都没有说到关键点:梳理一下设置步骤如下,以及避免的坑。新建文件自动加注释:Preferences | Editor | File and Code Templates 打开go File 在右侧输入模板,然后点击Apply;对已有的方法或者文件添加注释:1、Preferences | Editor | Live Templates 打开LiveTempl...
2020-04-30 13:47:09
13506
8
原创 godoc使用详解
例子:我想要生成某个文件夹下的go文档,假设你的gopath是D:/code你项目目录是D:\code\src\下的test,你想生成test 项目中的testcode文件夹下的所有go的doc;那么需要执行如下步骤。第1步、那么在命令行中进入到该文件夹下 D:\code\src\test,执行 godoc -http=:6060第2步、打开浏览器输入http://127.0.0.1:...
2019-05-24 17:17:25
4437
原创 安装数据库MySQL,启动时报错 服务没有响应控制功能 的解决办法
管理员cmd窗口 进入mysql bin 目录执行:sc delete mysql执行:mysqld --install执行:net start mysql
2019-05-22 19:59:27
19098
6
转载 数据库分库分表,何时分?怎样分?
一. 数据切分关系型数据库本身比较容易成为系统瓶颈,单机存储容量、连接数、处理能力都有限。当单表的数据量达到1000W或100G以后,由于查询维度较多,即使添加从库、优化索引,做很多操作时性能仍下降严重。此时就要考虑对其进行切分了,切分的目的就在于减少数据库的负担,缩短查询时间。数据库分布式核心内容无非就是数据切分(Sharding),以及切分后对数据的定位、整合。数据切分就是将数据分散存...
2018-12-28 23:20:57
5434
原创 Innodb锁机制:gop lock、 Next-Key Lock
数据库使用锁是为了支持更好的并发,提供数据的完整性和一致性。InnoDB是一个支持行锁的存储引擎,锁的类型有:共享锁(S)、排他锁(X)、意向共享(IS)、意向排他(IX)。为了提供更好的并发,InnoDB提供了非锁定读:不需要等待访问行上的锁释放,读取行的一个快照。该方法是通过InnoDB的一个特性:MVCC来实现的。InnoDB有三种行锁的算法:1,Record Lock:单个行记录上...
2018-12-21 21:24:47
267
转载 Bison version 2.5 or higher must be installed on the system
安装thrift时,报错:Bison version 2.5 or higher must be installed on the system!使用brew install bison 安装新版的bison$ brew list bison/usr/local/Cellar/bison/3.0.4/bin/bison/usr/local/Cellar/bison/3.0.4/bin...
2018-12-14 20:49:35
2896
转载 深入Spring Boot (四):YAML属性配置文件使用详解
转自 https://juejin.im/entry/5a9fe3b8f265da23884c9c73Spring Boot弱化配置的特性让属性配置文件的使用也更加便捷,它默认支持对application.properties或application.yml属性配置文件处理,即在application.properties或application.yml文件中添加属性配置,可以使用@Value...
2018-12-07 19:13:21
2385
原创 微支付通道
前面写了闪电网络,了解闪电网络之前需要先了解微支付通道,之前没有写,现在补充一下。 微支付通道建立过程考虑如下场景:A是用户,B是一个数据提供商,B需要把1个100G的大数据文件发给A,价值是100元。 为了降低风险,A不想1次性把100元给B,而是每接收到1G的数据,给B支付1元。 那就需要100次的交易。现在看一下,微支付通道如何解决这个问题: Step1:...
2018-11-28 17:45:11
1769
原创 闪电网络系列——HTLC
闪电网络的基本思路如下图所示,Alice和Eric之前想进行交易,但没有支付通道。Alice和Bob之间,Bob和Carol之间、Carol和Diana之间、Diana和Eric之间,已经有了支付通道,那把这些通道串联起来,就相当于建立了Alice和Eric之间的支付通道。 这个过程怎么达成呢? 假设Alice需要付给Eric 1个比特币:首先,由最终的收款方Eric构建...
2018-11-21 20:24:32
701
原创 闪电网络系列——RSMC
今天深入分析闪电网络的第1个部分:RSMC。RSMCRSMC,全称Revocable Sequence Maturity Contract。 Revocable,就是可撤销的意思; Sequence就是指第12课 nLockTime(CLTV)与Sequence number(CSV) 讲述的Sequence Number。 Sequence Maturity,通俗点讲,就是等到Sequen...
2018-11-14 12:58:03
1119
原创 闪电网络系列——什么是闪电网络?
什么是闪电网络 大家都知道 比特币的交易速度是每秒7笔左右,远低于实际的需求,同时需要等待6个区块才能确认最终交易;如果赶上网络拥堵,可能很长时间才能完成交易,再就是每次支付都要经过主链,成本高。闪电网络就是为了解决这种交易慢、交易贵的问题;闪电网络的主要思路十分简单——将大量交易放到比特币区块链之外进行,只把关键环节放到链上进行确认。该设计最早于 2015 年 2 月在论文...
2018-11-07 20:19:47
1166
转载 美团在Redis上踩过的一些坑
转自:http://carlosfu.iteye.com/blog/2254154上上周和同事(龙哥)参加了360组织的互联网技术训练营第三期,美团网的DBA负责人侯军伟给大家介绍了美团网在redis上踩得一些坑,讲的都是干货和坑。 分为5个部分: 一、周期性出现connect timeout 二、redis bgrewriteaof问题 三、redis内存占...
2018-10-20 09:45:10
663
转载 布隆过滤器
https://www.jianshu.com/p/88c6ac4b38c8布隆过滤器使用场景之前在《数学之美》里面看到过布隆过滤器的介绍。那么什么场景下面需要使用布隆过滤器呢?看下下面几个问题字处理软件中,需要检查一个英语单词是否拼写正确 在 FBI,一个嫌疑人的名字是否已经在嫌疑名单上 在网络爬虫里,一个网址是否被访问过 yahoo, gmail等邮箱垃圾邮件过滤功...
2018-10-12 17:19:38
193
翻译 Redis数据结构:位图
原文:https://scalegrid.io/blog/introduction-to-redis-data-structure-bitmaps/位图(也称为位数组,位向量等)是紧凑存储位的数组数据结构。它可以用来实现一个简单的集数据结构。位数组可以有效地利用硬件中的位级并行性来快速执行操作。 Redis是一种内存数据结构服务器,它为位操作操作提供支持。但是,Redis中的位图没有特...
2018-10-07 18:30:20
1689
原创 Redis 异步消息队列与延时队列
消息中间件,大家都会想到 Rabbitmq 和 Kafka 作为消息队列中间件,来给应用程序之间增加异步消息传递功能。这两个中间件都是专业的消息队列中间件,特性之多超出了大多数人的理解能力。但是这种属于重量级的应用,使用比较麻烦点。如果是轻量级的,使用 Redis就可以。比如对于那些只有一组消费者的消息队列,使用 Redis 就可以非常轻松的搞定。Redis 的消息队列不是专业的...
2018-09-28 10:45:08
14944
5
原创 Redis 分布式锁(二)
续上篇 Redis 分布式锁超时问题Redis 的分布式锁不能解决超时问题,如果在加锁和释放锁之间的逻辑执行的太长,以至于超出了锁的超时限制,就会出现问题。因为这时候锁A过期了,第二个线程重新持有了这把锁A,但是紧接着第一个线程执行完了业务逻辑,就把锁A给释放了,问题是第二个线程还没执行完,锁A就被第一个释放了,第三个线程就会在第二个线程逻辑执行完之之前拿到了锁。为了避免这个问题,R...
2018-09-27 17:41:44
289
原创 Redis 分布式锁
分布式应用进行逻辑处理时经常会遇到并发问题。比如一个操作要修改用户的状态,修改状态需要先读出用户的状态,在内存里进行修改,改完了再存回去。如果这样的操作同时进行了,就会出现并发问题,因为读取和保存状态这两个操作不是原子的。(Wiki 解释:所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何 context switch 线程切换。)这个时候就要使用...
2018-09-21 18:31:27
354
翻译 Java 8 中的 新特性Streams
Stream 作为 Java 8 的一大亮点,它与 java.io 包里的 InputStream 和 OutputStream 是完全不同的概念。 使用 Stream API 无需编写一行多线程的代码,就可以很方便地写出高性能的并发程序。所以说,Java 8 中首次出现的 java.util.stream 是一个函数式语言+多核时代综合影响的产物.java.util.stream 类以支持元...
2018-09-14 21:17:55
203
翻译 try catch 资源自动释放: AutoCloseable
我们在使用try catch 资源的的时候 常常忘记释放资源,比如JDBC连接,那么下边讲的AutoCloseable 就是解决这个问题:资源自动释放。The try-with-resources statement is a try statement that declares one or more resources. A resource is an object that mu...
2018-09-01 10:32:32
6035
1
原创 Java 常见的垃圾收集器有哪些
实际上,垃圾收集器(GC,Garbage Collector)是和具体 JVM 实现紧密相关的,不同厂商(IBM、Oracle),不同版本的 JVM,提供的选择也不同。接下来,我来谈谈最主流的 Oracle JDK。Serial GC,它是最古老的垃圾收集器,“Serial”体现在其收集工作是单线程的,并且在进行垃圾收集过程中,会进入臭名昭著的“Stop-The-World”状态。当然,其单线...
2018-07-21 22:49:10
4197
原创 java 内存模型中的happen-before 是什么?
happen-before 关系,是Java内存模型中保证多线程可见性的机制,也是对早期语言规范中含糊的可见性概念的一个精确定义。它的具体表现形式,包括但远不止测试我们直觉中的 synchronized、volatile、lock 操作顺序等方面,例如: 线程内存执行的每个操作,都保证happen-before后边的操作,这就保证了基本程序顺序规则,这是开发者再书写程序时的基本约定。对于volat...
2018-07-14 21:51:32
1743
原创 linux 常用命令
整理工作中常用的命令:1、本地拷贝文件:cp -r 文件夹A 文件夹B 拷贝文件夹A 到B路径cp 文件 文件 拷贝文件A 到B路径2、远程拷贝文件scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file 或者 scp local...
2018-07-07 20:24:32
181
原创 一个枚举类的set方法引发的血案
事故回顾: 线上集群环境,其中一台机器出现了诡异的现象:明明rpc接口响应的结果是成功,但是调用方判断的时候走的是失败的判断逻辑,导致持续的报警,并且只有一台机器有着个现象,先用重启大法解决了,具体原因是什么?一堆工程师开始分析。分析原因: 查日志,在某个时间点之后开始大量报错,大家开始围在一起讨论: 这个时间有没有新上线?没有。 有没有可能jar包不正确?不可能,代码已经有几天没...
2018-06-28 08:51:57
7906
3
原创 REST 编程风格是什么
首先,REST规范:强调HTTP应当以资源为中心,并且规范了资源URI的风格;规范了HTTP请求动作(PUT,POST等)的使用,具有对应的语义;遵循REST规范的Web应用将会获得下面好处:URL具有很强可读性的,具有自描述性;资源描述与视图的松耦合;可提供OpenAPI,便于第三方系统集成,提高互操作性;如果提供无状态的服务接口,可提高应用的水平扩展性;下面再详细说明一下REST。了解事物,分...
2018-06-21 19:28:21
8275
原创 对孩子不做物质奖励
以下内容是读了一篇公众号文章后,从文章中整理的,作为记录对孩子不要物质奖励:从心理学来讲,每个人做一件事都需要驱动力,驱动力分为内在驱动力和外在驱动力。一个孩子自发的想要学习,就是内在驱动力,然而物质奖励对孩子来说,是外在驱动力。 如果建立的链接是外在驱动力,那么只要外在驱动力撤销,事件就不会发生。也就是说,习惯于物质奖励的孩子,一旦没有物质奖励,好习惯或好行为就会消失。当一个人进行一项愉快得活动...
2018-06-08 15:18:03
250
原创 ping 是怎么工作的
网络好不好,ping 一下就知道。以下记录一下ping的过程是如何做的。ping是基于ICMP协议工作的,ICMP全称Internet Control Message Protocol 就是互联网控制报文协议。这里面的关键词是“控制”,那具体是怎么控制的呢?ICMP报文是封装再IP包里面的,因为传输指令的时候,肯定需要源地址和目标地址。它本身非常简单,因为作为侦察兵,要轻装上阵,不能携带大量的包...
2018-06-07 17:15:51
1764
原创 解决哈希冲突的常用方法
解决哈希冲突的常用方法有:1、开放定址法基本思想是:当关键字key的哈希地址p=H(key)出现冲突时,以p为基础,产生另一个哈希地址p1,如果p1仍然冲突,再以p为基础,产生另一个哈希地址p2,…,直到找出一个不冲突的哈希地址pi ,将相应元素存入其中。2、再哈希法这种方法是同时构造多个不同的哈希函数:Hi=RH1(key) i=1,2,…,k当哈希地址Hi=RH1(key)发生冲突时,再计算...
2018-05-28 17:33:08
1706
原创 谈谈动态代理
动态代理是基于什么原理?反射机制是Java语言提供的一种基础功能,赋予程序在运行是自省的梦里,通过反射我们可以直接操作类或者对象,比如获取某个对象的类定义,获取类声明的属性和方法,调用方法或者构造对象,甚至可以运行时修改类的定义,动态代理是一种方便运行时动态构建代理、动态处理代理方法调用的机制,很多场景都是利用类似机制做到的,比如用来包装RPC调用、面向切面的编程(AOP)。实现动态代理的方式很多...
2018-05-21 18:08:07
225
原创 Exception和Error区别
首先看Exception 和 Error,运行时异常与一般异常有什么区别?Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行...
2018-05-14 17:47:39
223
原创 大话Java之-Java锁机制(2)
今天聊一下什么是死锁。顾名思义,某个东西被锁死 打不开,还是拿老张老王买票的例子说明:车票只剩一张,老张买到了 ,但是有事情要退票,老王需要买一个票,但是小地方的售票和退票窗口都是同一个,并且只有这一个,不巧的时候老王排队在前,所以先占用了窗口,并且很无理的提出要求,没有票就一直在窗口等,老张干着急,不知道前面老王什么情况,又不能插队,导致情况一直僵住。可能你会想,这两个人不会商量一下吗?现实中当...
2018-05-07 12:39:18
309
原创 别让情绪阻挡你的工作和生活
今天开会谈到负面情绪的事情,我也自己做了一些反思,最近负面情绪比较严重,主要来自两个方面,第一是家庭孩子的作息问题。第二个是供应商对接工作推进缓慢,中间遇到各种奇葩问题。这两个方面给我的压力很大,导致负面情绪很严重,以至于自己常常说出一些不该说的话。负面情绪不但不能解决当前的困境,反而会扩大问题,听过一句话说:我们自己是个小宇宙,只有这个小宇宙足够阳光,周围的人才能被你的正面情绪影响。坏的情绪会影...
2018-04-25 22:33:57
238
原创 TCP 缓冲区 buffer 溢出导致丢包问题
最近做项目中发现请求会有丢包现象。所以学习一下TCP相关的知识,记录一下作为备忘,也是练习一下写作。以下是TCP的一点基础知识:每个TCP套接字有一个发送缓冲区,我们可以用SO_SNDBUF套接字选项来更改该缓冲区的大小。当某个应用进程调用write时,内核从该应用进程的缓冲区复制所有数据到缩写套接字的发送缓冲区。如果该套接字的发送缓冲区容不下该应用进程的所有数据(或是应用进程的缓冲区大于套接字的...
2018-04-20 21:56:15
11714
1
原创 spring boot 配置文件总结
最近在用spring的配置文件 做一下简单的实现总结: Spring Java based bean definition file (@Configuration): 01package root;02 03...04 05@Configuration06@PropertySource("classpath:root/test.props")07public class SampleConfig...
2018-04-14 23:44:26
302
原创 工作问题持续积累(1)
常见问题(1):mysql中的varchar 类型但是Java中的ResultSet的方法getString()无法获取该列的值,而getLong可以获取:实际错误场景:eclipse的编译和运行的jdk版本是jdk5.0mysql 数据库(5.5.27)中有表test,test中的第3列是varchar类型,存储的是1,第4列也是varchar类型 存储的是"测试"。在java工程中创建mysq...
2018-04-07 18:09:46
195
原创 大话Java之-Java锁机制(1)
今天先聊一下什么背景下会用到锁?什么是锁? 老张和老王分别是北京的两个民工,为了过年回家,都去网上买票,都到同一个地方,但是回家的票只有一张了,由于他俩都看到有一张票,于是都去抢,不巧的是老张在买的过程中,还没付完钱,老王也点了,所以他们都抢到一张票,但是实际只有一个座位,于是出现了两个人的票的一样的,列车员发现这个问题后经过层层上报,到了程序员码农的手里,这么严重的问题一定要赶紧解...
2018-03-28 18:38:44
368
转载 服务熔断、降级、限流、异步RPC -- HyStrix
转载自:http://blog.youkuaiyun.com/chunlongyu/article/details/53259014在今天,基于SOA的架构已经大行其道。伴随着架构的SOA化,相关联的服务熔断、降级、限流等思想,也在各种技术讲座中频繁出现。本文将结合Netflix开源的Hystrix框架,对这些思想做一个梳理。背景伴随着业务复杂性的提高,系统的不断拆分,一个面向用户端的API,其内部的RPC...
2018-03-22 16:52:35
372
原创 函数式编程
今天研究函数编程,拜读了一位大神的文章,函数式编程,做一下总结。首先什么是函数式编程? 函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。再看看 Currying是什么? 在计算机科学中,柯里化(英语:Currying),又译为卡瑞化或加里化,是把接受多个参数的函...
2018-03-21 19:50:39
207
原创 Java 多线程常见问题
这两天忙于工作交接和面试,其中面试最常问的问题就是多线程,那么今天就聊聊多线程。1、在java开发中,有几种方法可以实现一个线程?2、Callable接口和Runnable接口的有什么区别?3、如何停止一个正在运行的java线程?4、volatile关键字是如何保证内存可见性?5、线程的状态有哪些?6、死锁产生的条件,如何避免死锁?问题1:主要有使用Runnable,Callable,Thread...
2018-03-14 18:09:26
426
转载 oracle 与Access的区别
函数名称的不同功能OracleAccess字符函数: 返回字符的ASCII码ASCII(x)ASC(x) 返回ASCII为X的字符CHR(x)CHR(x) 格式化字
2014-09-12 15:44:46
1334
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人