- 博客(31)
- 资源 (1)
- 收藏
- 关注
原创 搭建codis
为了测试写的组件,需要搭建一个codis服务。 搭建环境:阿里云单核服务器,Ubuntu系统。需要:1.搭建go的运行环境。2.配置godep。3.安装codis。codis版本:3.0 3.1版本的codis我个人部署起来使用遇到问题,在lib下没有dashboard,proxy等编译好的脚本。go版本: 1.5.3. 官方文档上1.5.2版本从google拉下来的代码解时始终会报不是
2017-04-04 00:57:27
763
原创 Motan
motan是新浪开源的一个RPC框架,可以看做是Dubbo的量身裁剪版。Motan属于服务治理型框架。 RPC框架目前可以划分为两类,一类以Thrift,gRPC为代表的跨语言型,其特点是支持跨语言的RPC调用,通过加一层装换为中间语言,实现跨语言调用,另一类是服务治理型。相比于Dubbo,Motan在支持相同功能的同时,减少了部分扩展特性.在序列化方式上,Motan只支持Heesian和fas
2017-03-13 00:23:27
9583
原创 jodis
今天读了下jodis的代码。 配合codis使用的。 其主要着眼点是数据源,对jedispool做了封装。 通过zookeeper上注册的codis proxy个数创建相应个数的jedispool封装为RoundRobinJedisPool,并监听节点的变化,proxy的地址会传回来,可以及时增删配置的jedispool。 但不能根据proxy自定义的配置除host,port之外的其他jed
2017-03-12 23:43:35
4207
原创 个人思考:做了hash是否还需要读写分离
之前写了一个redis的组件。出发点么: 1.做数据源组件的一个重要的目的是负责回收连接。 2.基于@Bean注解可以做到对jedispool,jedis操作的自动装配,暴露出一个客户端。所以最终的效果是: 1.提供了两个客户端,一个redis,一个codis。 2.支持基于zookeeper的配置管理,可以在properties中使用占位符,spring只
2017-03-12 23:28:20
716
原创 dubbo拆分笔记
1.rpc 核心:jdk代理,reactor consumer:接口进行jdk代理,在InvocationHandler构造代理对象,写入方法名,请求参数,参数类型。 provider:获得消息,反射调用实现类,返回结果。reactor使用netty。 中间层使用zookeeper或redis作为注册中心,涉及发布订阅,本地缓存提供者信息,通过路由规则筛选->负载均衡选择合适地址调用。
2016-10-27 00:37:50
2699
原创 基于JMS代理的支持注解的远程方法调用
项目地址:jms-support执行流程:对调用的方法进行代理,将代理对象在mq中传输,监听到来的消息并调用真实对象的方法。理解前提:需要有JDK代理的使用经验。整个流程的思想和Dubbo实现远程调用是一样的,dubbo的核心读在于proxy的使用,所有的操作都尽量向proxy上靠拢,从表面上看dubbo配置完成后可以让远程的服务实现成为本地的一个bean被使用,事实上是本地对接口进行代理,通过网络
2016-09-26 00:52:05
1122
原创 SDK的设计
代码仅提供参考,已去掉业务内容,下载地址:http://download.youkuaiyun.com/detail/hel_wor/9596946考虑:1.请求方式2.请求函数简洁直观3.合理利用java/C#的类型推导4.request,response对象的设计,考虑接口,抽象类带来的隐式多继承5.服务异常,网络异常的封装解决:1:一般采用http请求的方式。请求url,请求体,请求头的构造,c
2016-08-04 23:36:28
822
原创 选application/x-www-form-urlencoded还是application/json?
转载是对我的肯定,欢迎转载,转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/52123712http请求 场景: 前端:SDK通过http发送请求/页面Ajax提交。 后台:Springboot服务,Rest风格,需在controller层之前拦截请求。Springboot支持Rest风格给编码带来了很好的便捷性,@RequestBody
2016-08-04 22:13:17
34346
原创 如何实现分布式锁?
转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/51661591有一个计算流量的逻辑,需要每隔一段时间将单机中的流量缓存同步到Redis库中,现在就出现了这个问题,一个服务被部署到多服务器上,当需要同时写同一台redis数据库,就需要使用分布式锁。这里使用了Redis来实现分布式锁,实现的逻辑类似单机中使用的Lock或者synchronized
2016-06-14 00:26:21
1853
原创 开放平台中的鉴权的实现
转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/51660979在描述鉴权和流控之前,可能需要先描述为什么需要搭建开放平台。 开放平台最先由FB推出,而后在2012年左右,国内比较大型的互联网公司都开始搭建自己的开放平台。搭建属于自己的开放平台的原因,一般是以下几点:1.借助第三方满足用户的零碎需求2.借助第三方提升自己的影响力3.作为渠
2016-06-14 00:15:14
26402
原创 理解类加载器
转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/512877865个月前写了第一篇博客就是类加载器,这两天在common-pool2中的驱逐逻辑里遇到了对上下文类加载器的使用,觉得需要重写写一次类记载器通俗来理解就是用来加载class文件,当需要创建一个对象时,都会使用到类加载器,对于继承自ClassLoader抽闲类的子类加载器实现加载功能都
2016-05-01 02:22:35
4784
原创 对应对高并发的一些思考
这个话题很大,以我目前的经验写得可能比较呛,会持续更新,如果您有好的提议,意见,场景,请留言告知,先谢过。 转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/51246655请求量的增加,导致服务器CPU消耗上升,直至满负荷运转,当请求量继续上升,如果不提升硬件性能,结果就是请求被处理的速度跟不上请求到达的速度,CPU过热,用户发出的请求丢失
2016-04-25 23:12:22
1201
原创 从commons pool2到池
转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/51224388池该如何理解?我们经常提到的数据库连接池,线程池,对象池。池这个概念,在计算机里,应该如何用代码来描述? 在网页上可以找到很多关于数据库连接池的描述,实现DataSource接口,用一个链表或者只要能保存数据的容器将事先创建好的连接保存起来,一个连接池就成型了,在需要使用的时候去
2016-04-23 01:48:10
2365
原创 条件队列
这一个月,从C#转到java了,去年9月开始自学Java,还好,转成了,离想做的又近了一步,该继续写博客了 转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/51195204条件队列装入的数据项是等待先验条件成立而被挂起的线程。 我们想在得到的消息到来时,这个消息能立即得到处理,在大多数时候,我们的处理方式是在条件不满足时,让这个线程做自旋
2016-04-20 00:02:40
2541
原创 Java并发
转载请注明:http://blog.youkuaiyun.com/hel_wor/article/details/50841032这边博客是基于前几天读的《Java并发编程的艺术》一书,但内容不限于此书,自己做了一些扩展和源码阅读,以求能尽可能理解java并发的相关类从CountDownLatch,CyclicBarrier,Semaphore,Exchanger展开 CountDownLatch和Cycl
2016-03-10 00:53:43
865
原创 读《松本行弘的程序世界》
边读边记录,文章会很长,所以一次没办法写完面向对象: 该如何考虑在2.3.8提到的:只有包含继承关系的类才会具有多态性? 在编程时往往要求到的扩展性,实现扩展性的一个重要方法是抽象化,对数据及其要做的处理都封装起来,当做一个黑盒子,不用在乎其内部怎么实现,我只需要一个输入,你给我一个我想要的输出,相比于C语言等面向过程的语言中对数据封装的结构体,面向对象语言的使用类对数据及其操作
2016-02-29 20:38:00
1071
原创 ARP扫描攻击(JAVA实现)
转载请注明: http://blog.youkuaiyun.com/HEL_WOR/article/details/50650465前段时间翻看了点计算机网络方面的书,从DNS跳到了ARP协议后,就打算试试写一个ARP的扫描攻击程序出来,于是就有了这篇博客现在想想大学的时候我们寝室应该受到ARP扫描攻击了,因为我们寝室的一夜之间连上WIFI后都不能上网了,当时不知道对路由器做静态绑定,于是后面的时间我都是蹭的
2016-02-10 23:29:07
9182
2
原创 DNS,ARP,秘钥和数字签名.
计算机网络的基础知识1.DNS。之前使用360浏览器时,在某次弹出询问框后没有细看直接点了确认,后续就在浏览网页时就开始出现问题,以往很多能够浏览的正常网站网页都显示无法连接。 要解决这个问题就要扯到DNS上了。 我们访问京东,淘宝等网站时,并没有再地址栏中输入183.230.67.1或者218.201.46.124。只需要输入www.jd.com和www.taobao.com,以www.jd.
2016-02-07 02:04:41
1386
原创 Kmeans算法(Jfreechart展示+Spring注入)
一直想找个方法把分类的数据直观的展示出来,最近在Java上发现了类似Pyhton的MatPlotLib库的jar包,上周末在屋里把代码折腾出来了。Kmeans算属于非监督的聚类算法。 监督学习的定义是通过对算法进行有正面影响和负面影响的训练,算法能够学习出一种模型,这个时候我们将测试数据输入这个模型后,模型能得出我们想要的结果,例如分类。举个例子,我们怎样训练自己家的狗狗要听话,我们通过狗狗做对的
2016-01-26 00:13:07
1083
原创 从Logistic到SVM
希望这几个月花的时间,可以让我重新拿起这些内容了。从logistic回归到SVM。 logistic回归的目的是从特征学习出一个0/1分类的模型,而这个模型是将特征的线性组合作为自变量,由于自变量的取值是从负无穷到正无穷,因此,使用logistic函数(也称sigmoid函数)将自变量映射到(0,1)上。对于用于分类的SVM,它是一个二分类的分类模型,也即,给定一个包含正例和反例(正样本点和负样本
2016-01-19 00:17:48
1438
原创 开始在LeetCode上刷题(1-9)
因为两周前,对继续读理论书有点抗拒,所以想找点可以直接动手做的事,后来就找到了LeetCode。 到目前在LeetCode上完成了前9道题。 比较考脑子,就算把功能完成了,但随后LeetCode显示的排名也会让你想继续想如何优化已经写好的代码,往往优化的结果就是把代码又重新实现了一次,比较费时间,但还好比较有意思。 LeetCode的题有些我是用JAVA实现,有些是用C#实现的。 1.Two
2016-01-18 00:30:40
1511
原创 MarkSweep算法
MarkSweep是Hot Spot用于收集老年代的算法 在Hot Spot里,新生代用copy算法来收集,cheney算法是copy算法的一种,老年代用MarkSweep算法收集垃圾,这两种算法都属于跟踪收集器,即通过目标对象是否可达来判断是否是需要收集的垃圾。关于这两种算法的大致描述,在 JVM的垃圾回收有描述。对于MarSweep的大致实现原理和代码,在Baby’s First Garbag
2016-01-04 22:46:58
1513
原创 从Cheney算法->广度优先搜索->倒酒问题(JAVA实现)
转载请注明: http://blog.youkuaiyun.com/HEL_WOR/article/details/50446567写JVM的垃圾回收的时候,提到了Minor GC时用到的Cheney算法。在莫枢的回答里有一份他写的Chenny算法的实现,有兴趣的话可以直接进去看,不过他把算法放在了Gist上。Chenny算法和BFS很相似。如果先去读读《算法(第四版)》上BFS算法实现那节,就很容易看出Ch
2016-01-02 02:13:02
3308
原创 JVM的垃圾回收
转载请注明:http://blog.youkuaiyun.com/HEL_WOR/article/details/50422622有一周没写博客了,网上关于JVM垃圾回收的博客资料很多,有概述的,也有描述代码的,或许我看了点书,看了点博客,对垃圾回收的原理可能理解了,晓得它是怎么完成任务的,但我想要一个个的试着实现才能真正理解吧,希望在足够深入后能够触内旁通。如果有读者发现内容中有错误,欢迎指出,我会吸收改正
2015-12-29 00:23:18
1105
原创 反射和类加载器
转载请注明:http://blog.youkuaiyun.com/hel_wor/article/details/50375054当初看了几本书后因为觉得反射,多态,动态链接有共同的地方,所以对底层有了好奇。终于能动手写这篇博客了,前前后后的逻辑感觉能走通了。 反射和类加载器的关系,即是我们在反射调用某个类时,这个类会被类加载器加载一次,第一个问题,如何去加载这个类,第二个问题,谁来加载这个类。加载的这个类
2015-12-21 22:33:16
1266
原创 重写Redis字典
转载请注明:http://blog.youkuaiyun.com/hel_wor/article/details/50358539关于Redis的博客和教程网上都很多,比较全面的是黄建宏的Redis设计与实现看了书,作者是怎么思考的似乎明白了。但抽象出来的结论又好像和实现的方式不同,所以在看了Redis字典的源代码后,我觉得可以试试用Java或者C#来写一写。看懂了书中表达的,但又像实际没看懂,所以决定自己实
2015-12-19 15:30:32
1019
原创 Excel本地导出并通过邮件自动推送
如果加上这篇补充博客,那么工作回顾那边博客里,第二个程序就完整的完成了,本来Excel通过邮件自动推送功能在这个项目后期被去掉了,但昨天看到邮箱里测试同学到点手动发送程序生成的EXCEL文件,我想我可以试试把推送功能写出来,花了一上午,程序跑起来后EXCEL被自动推送了,感觉还不错。MSDN真是个神器,看别人的博客你可能知道代码是怎么写的,看MSDN你能知道为什么要这么写,不过我仍只是写表没写本,如
2015-12-12 20:42:10
2956
原创 最近的工作
这篇博客只是对我之前几个月学习的回顾,浅显之处望包涵,如果正在读这篇博客的读者有更好的解决方法,请留言,有用的地方我会吸收消化最近一段时间做了两个还算全面的程序,一个是携程抓最低价,另一个是把我们的这边的数据按淘宝的要求解析完后以EXCEL的格式发给他们。 完成第二个程序后我觉得有必要写下来,希望一年后再回来看自己现在写的东西时会觉得现在写的东西都太简单,LOL。携程抓最低价那个程序是一个WCF程
2015-12-09 00:27:46
1090
原创 JVM注解@CallSensitive
转载请注明 http://blog.youkuaiyun.com/HEL_WOR/article/details/50199797@CallSensitive是JVM中专用的注解,在类加载过过程中是可以常常看到这个注解的身影的。 这是在Sun.reflect中的定义:@Retention(RetentionPolicy.RUNTIME)@Target({ java.lang.annotation.Elem
2015-12-06 23:28:57
15225
3
原创 类加载器
这是第一篇博客,如果您在阅读中发现错误,欢迎指出,我会吸收改正。 转载请注明http://blog.youkuaiyun.com/HEL_WOR/article/details/50103363—————————————————————————————————— Update:类加载器内容已重写,这篇写的不好,建议移步至新博客:理解类加载器 ——————————————————————————————
2015-11-29 23:59:33
880
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人