自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Coder_Joker的博客 joke a joker

github地址:https://github.com/ItsFunny 我是张三也是李四

原创 近期计划-TODO

TODOJava手写MybatisMySQL分库分表后的插件starter手写Spring手写SpringCloud LBGodocker以及K8S源码区块链RAFT实现其他大文件上传整个前后端,现在只完成了部分后端

2020-08-07 11:01:25 2

原创 Hyperledger Fabric 源码 浅谈

更新日志2020-07-22添加创建channel时候的相关debugOrderer创建channel:路口处理方法为:// Handle reads requests from a Broadcast stream, processes them, and returns the responses to the streamfunc (bh *Handler) Handle(srv ab.AtomicBroadcast_BroadcastServer) error {

2020-07-22 21:27:04 54

原创 TCP/IP相关

HTTPMIMEMIME(Multipurpose Internet Mail Extensions): 多用途互联网邮件扩展类型.用途在于设定某种扩展名的文件用一种特殊的应用程序所打开特地的文件对应的MIME类型RTF文本rtfappliation/rtf普通文本txttxt/plaingif图形image/gitau声音文件audio/basicavi文件video/x-msvideohttp协议的特点灵活: 允许客户端和服务端

2020-06-06 20:43:55 43

原创 大文件上传解决方案与实例代码

核心:分段接收,分段解析,分段写文件问题Q:不同用户上传同一文件:A: 通过token加文件md5码解决,并且后期如果发现为同一文件甚至不需要上传,直接服务器cp一份Q:同一个用户刷新上传(重复上传)A:通过会话id (processId: 通过token+md5 生成,防止上传重复上传同一文件) & 碎片状态化: 杜绝重复上传碎片,同时实现断点续传Q: 碎片有哪些状态:A: 传输失败 | 正在传输(因为是分段解析,所以会有中间状态) | 传输成功

2020-05-28 13:54:39 77

原创 数据结构-算法-源码-复习

最近并不是很忙,基础不能落下,不定期更新复习,会涉及Java,Python,GoLang:线性表:什么是线性表:线性表指的是线性存储结构,可以理解为数组,所有数据一根线串一起,再存储到物理空间中具体实现:Java参考实现:ArrayList:解析:ArrayList内部有EMPTY_ELEMENTDATA 和DEFAULTCAPACITY_EMPTY...

2019-09-16 18:17:48 58

原创 Hyperledger Fabric网络环境搭建 CA,RAFT,SOLO 单机 多机

区块链就是分布式的kv数据库peer挂在在channel上,而chaincode又是挂在peer上的账本ledgel通过通道channel进行隔离交易与智能合约: 智能合约是函数的声明,而交易是函数的调用过程什么是背书结果: 既背书节点endorser节点对业务逻辑处理后的数据结果世界状态: 指的是交易执行后的所有键的最新值历史溯源(历史读取): 历史数据索引+ 区块读取某键在...

2019-06-16 12:43:46 183

原创 小技巧 && 算法 浅谈

位运算位运算符的分类及其定义与运算符&: 既二进制情况下,2者都为1才都为1 1101 & 0011=0001(按位与)或运算符|: 既二进制情况下,2者有一个为1就是1 如 1011| 0010=1011 (按位或)异或运算符^: 既二进制个情况下,相同则为0,否则为1,如1111 ^ 0010=1101 (按位异或)作用:因为计算机都是二进制数据,而通常位运算...

2019-03-10 18:13:53 61

原创 Spring浅谈

Spring因为最近要重回业务的怀抱,因而重新看一遍Spring的内容刻不容缓目标对于一些Spring关键点源码分析对Spring设计上的一些分析BeanFactory 和ApplicationContext区别:ApplicationContext是BeanFactory的一个子类(wip)BeanFactory加载bean的时候,是只有get 的时候才会触发加载,...

2019-02-23 16:58:45 108

原创 Redis浅谈

REDISTODOGithub上更新的较这里勤客户端命令待补事件待补事务待补慢慢更新…-.-数据结构和对象数据结构简单动态字符串(SDS):与c的string不同,Redis中的SDS多了以下几点属性free属性: 作用如下扩容:空间预分配(减少重分配次数): 当对sds进行修改的时候,为了防止频繁的申请内存,提供了预留空间,并且有阈值,阈值为1m如:当对...

2019-02-16 23:42:41 873

原创 数据结构源码分析目录

说明会包括常见的数据结构,这里应该只会说明一个大概,具体的源码一步一步会单独的抽出一篇文章来写的,不过最近没啥时间,可能会慢点,不过之前的时候写过一些源码解析之类的现在还是浅层的,要深层的话必须详细的看源码一步一步来,但是现在时间不是很充裕,暂且如此HashMap源码剖析HashMap源码hashMap实现了Map,Cloneable,Serializable接口,继承了抽象M...

2019-02-15 13:08:16 141

原创 MySQL浅谈

MySQLTODO索引什么是索引:索引是指数据库管理系统中的一个排序的数据结构,索引的两大类型有b tree,hash,lsm树hash索引: 基于hash的特性,检索效率非常的高,一次定位,不需要像b tree一样多次io缺点:仅仅只能满足"=",“IN”,和&amp

2019-02-15 12:17:22 157

原创 RabbitMQ 学习兼实战

RabbitMQ 学习兼实战在之前已经有写过部分RMQ的代码了,这段时间重新学更新日志2019-01-2323:16重新看了文档的内容,帮助真的大啊明天将exchange的相关内容加上,都写在草稿本上了demo会重新写,结合Spring的,题材会跟官网上的log分级相同,会有变化这是肯定的,但是需求还没想好基本角色producer: 生产者: 既发送消息的对...

2019-01-27 23:18:18 84

原创 Java-基于redis 分布式锁形式和队列形式实现秒杀架构(配合消息队列)

代码在这https://github.com/ItsFunny/spring-test/tree/master/spring-test-order-and-stock基本的流程图为:关于可能发生的几个问题:1.重复下单问题:1):用户不小心点多了,点击立即购买多次2):网络延迟,用户刷新重复提交多次3):用户恶意请求解决方法:a:前端按钮当点击完毕之后立马将其按钮变灰,防止无意请...

2018-10-16 20:16:24 4482 4

原创 常见的排序,查找算法,以及常见的数据结构如链表,二叉树等的实现

假设所有数组要求的结果都要为升序1.直接插入排序:核心:长度为n的数组,假设n-1都是有序的,则只需要插入即可 public static void simpleInsert(Integer[] arr) { for (int i = 0; i < arr.length; i++) { int temp = arr[i]; int j = i - 1; fo...

2018-10-04 14:45:04 297

原创 数据库水平分库分表后的数据分页查询解决方案

为什么要分库分表,水平与竖直的区别,这里就不讲述了,想了解的自行google开门见山直接说解决方案:分库分表的策略,依项目需求而定,这里采用的是常规的做法:根据取模的方式,假设我们水平分库2个,每个库又水平拆表2个 既总共有4个表,查询的时候默认没有按照其他的条件进行排序,假设我们要查询第41页的数据,每页显示10条数据第一种:也是最简单的一种:通过额外的添加一张关联表,属性中必有id...

2018-09-14 08:08:51 21116 12

原创 通过rabbitMQ消息队列实现分布式环境下的最终一致性

话不多说,直接切入正题: 2018-09-07 20:30 更 基础流程图: 上游服务接收到信息,先保存在本地消息表中,保存失败直接返回退出,保存成功则通知消息服务器new一个新的消息对象,状态为NEW,表示这个可能要发送,,通知成功(注意这里的通知这一步需要为同步模式,不然会出现这种情况,本地已经消费了,但是却没通知到,这样消息就丢失了)通知成功之后则开...

2018-09-07 20:30:57 7421 4

原创 SpringCloud feign服务熔断下的异常处理

2019-01-18 10:21 在此推荐下自个的一个基础复习库,囊括常见的数据结构和算法以及一些解决方案,还处于更新状态---------------------------------------------------------------------------------------------------------------------------------------...

2018-08-18 21:01:17 12438 3

原创 Every Day Music Recommend

网易云ID: jokerLvC2018-06-12 Done For Me 断眉的歌 Charlie Puth2018-06-13 Love in This Club,Pt ll2018-06-19 Attention 断眉X22018-06-28 All Rise Blue Your honour please20...

2018-06-12 21:56:20 286

原创 SSO基于全局Session和局部Session的实现

推荐一下自己的一个数据结构与算法整合的库,还处于更新状态2019-01-12 18:23 更: demo明天给出 .   emmmmm我记得这个demo应该是18年的啊,怎么19是上个月给的?蛤?---2019-01-13 18:51 更: https://github.com/ItsFunny/examples/tree/master/sso_demo什么是sso:single si...

2018-05-24 12:50:04 3615 9

原创 SpringBoot 整合mybatis 和mybatis-plus

起由之前使用的是mybatis,后面为了再简化开发,引入plus ,期间发现相关问题依赖:引入mybatis-spring-boot-starter 的原因在于 ,原先是基于mybatis开发,内部使用到了 MybatisAutoconfiguration ,后面要基于plus ,因此 exclude 原先的依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId>

2020-07-25 07:02:04 28

原创 LeetCode刷题记录

每天两道LeetCode题第一遍: array刷起,每种easy类型20道题Array2020-02-122 Two Sum Num26 Remove Duplicates Num2020-02-1327 Remove Element35 Search Insert Position Num2020-02-1453 Maximum Sub Array N...

2020-02-25 12:31:46 168

原创 操作系统-review

操作系统shell 又称作外壳,如gui 等,提供给外部服务,操作系统提供的对外可见的服务kernel 内核操作系统管理三大资源cpucpu调度进程线程管理内存物理内存管理虚拟内存管理磁盘文件系统的形式进行管理中断处理与设备驱动管理中断与异常处理中断的处理过程, 软硬件的结合硬件:标记中断状态生成一个keyId软件...

2019-10-28 21:55:12 70

原创 Hyperledger-Fabric 源码浅谈

TODO 系列

2019-10-28 16:35:39 74

原创 服务器

Ubuntu无法复制粘贴:ssh提示Connection refused:设置静态IPvi /etc/network/interfacesauto eth0iface eth0 inet staticaddress 192.168.8.100 netmask 255.255.255.0gateway 192.168.8.2dns-nameserver 8.8...

2019-10-15 13:57:33 48

原创 文本-图片-视频-相似度算法-demo

D:[] 视频相似度关键帧获取[] 音频相似度计算源语言: GoLang文本相似度:小文本采用的方式为php自带的文本比较即可:// 简单字符串匹配,适用于当长度小的情况func SimpleCompareTextSimilarity(prev, newUpload string) (float64, int) { per := 0.0 i := php2g...

2019-09-18 10:42:16 304

原创 环境搭建

GoLangwget https://dl.google.com/go/go1.12.9.linux-amd64.tar.gz && \tar -zxvf go1.12.9.linux-amd64.tar.gz && \mkdir -p /usr/local/go/ && \cd /usr/local/go && \mkdi...

2019-09-03 15:08:12 38

原创 Golang库浅析

GolangGoalTODOContext 浅析库ContextGopacket作用:底层流量抓包库demo及其讲解链接

2019-03-08 18:16:55 69

原创 linux命令记录

2019-01-29ls命令:查看当前目录下的文件ls -a 列出所有文件ls -al 列出所有文件,及其相关权限

2019-01-29 16:48:15 84

原创 设计模式总览

代码统一在github上,github上更新的更为勤快额外推荐一个自己的数据结构与算法的总览设计模式那本书,本人看了2遍,因为设计模式爱上造轮子

2019-01-29 08:14:06 75

原创 线程池的实现

Golang 线程池线程其实就是协程,但是还是说线程吧,习惯了线程池最经典的demo感觉莫过于Java 的ThreadLocal了,写得真的非常棒,过段时间要回顾下了,借鉴下核心就是以下几点(暂时想到的):有一个统一的分发类,也可以认为是池主体池具体的对象用Go来演示就是这样:type Worker interface { io.Closer Consume(interfa...

2019-01-05 22:33:21 58

转载 Bps,bps,pps 等的计算

尊重原创,尊重原创,尊重原创Bps: Byte per second 每秒传输多少字节,下载速度通常用这个表示bps: bits per second 每秒传输多少位 ,这个也叫做端口速率pps:packet per second 每秒传输多少个packet计算机中1个字节占8位,所以Bps到bps的转换可以为:bps=8*Bps而pps又该怎么计算呢:包转发率肯定得从捕...

2019-01-02 15:02:43 2733

原创 年度总结

2018遗憾的事:为春招付出了太多精力,还没真正尝试就结束了放弃幸福的事虽然努力的样子很狼狈,但是这1年养成的习惯确是无与伦比的nice to know you下一年的期望:努力学习努力工作不做自己...

2018-12-31 09:46:57 164

原创 gopacket的使用

链接在我github上,写的挺详细的

2018-12-29 16:26:04 307

原创 无聊的BUG库¥

Title:高并发情况下的nil异常Background优化线段树,原先为每次都采用的是新生成的方式,既new的方式,高并发情况下不可取辅助类:一个LinkedList 充当队列,BFS遍历这颗二叉树,从而达到构建树的功能Expected To See优化之后内存占用减少benchmark测试通过Instead内存占用的确减少,但是会出现nil异常Trydebug调...

2018-12-21 19:03:57 107

原创 influxdb的使用

influxdb的使用:2018-12-03 更:1.安装:mac:brew install influxdb 即可并且类似于Mysql,没有可视化界面咋行,time serial database的可视化利器是:grafana安装: brew install grafana2.快捷启动:export INFLUX_DB_CONFIG_PATH=/usr/local/etc/infl...

2018-12-04 08:03:18 119

原创 go 命令行debug

GoLang调试工具Delve1.先获取呗:go get -u github.com/derekparker/delve/cmd/dlv2.编写测试代码呗:func main(){ http.HandleFunc("/test",func(writer http.ResponseWriter,req *http.Request){ //TODO }) log.Fatal(htt...

2018-11-25 17:43:57 693

原创 ZeroMQ的安装和使用

安装简单的通过brew 安装:  通过brew install zeromq 直接安装使用之前先比较下各个MQ:Kafka暂不考虑  TPS:  ZeroMQ 性能最好,RabbitMQ次之,而ActiveMQ最差持久化 ZeroMQ不支持持久化,RabbitMQ,ActiveMQ都支持技术性  RabbitMQ功能更全,ActiveMQ次之,ZeroMQ最差RabbitMQ都...

2018-11-12 20:31:40 289

原创 beego学习

2018-11-0814:37更:beego的安装:采用go get 安装go get -u github.com/astaxie/beegobee的相关命令:bee new:新建项目结构bee run:自动编译部署bee generate:自动生成代码1. beego的路由:通过beego.Router(“url”,handler)来实现的:而这个controller的结构为...

2018-11-08 17:22:32 135

原创 gRPC和protobuf学习

部分总结:2018-11-08.proto的编写与Go类似也与Java类似,与Go类似在于 简单的通过message 类名{} 即可,与Java类似在于定义成员变量的方式:string age =1; 而不像Go一样省略分号,类型放后面.proto中枚举变量20018-11-0810:09什么是gRPC:  gRPC:高性能,开源的RPC框架,基于HTTP2.0,gRPC目前仅支持p...

2018-11-08 14:20:34 402

转载 Mac安装protobuf

原贴:https://blog.csdn.net/qq_21383435/article/details/81035852直接brew 安装,省时省力:brew install protobuf

2018-11-07 18:52:01 162

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