- 博客(77)
- 资源 (18)
- 收藏
- 关注
原创 切面和OGNL简单使用记录备忘
*** 顾问类型* @return 顾问类型*//*** 访问类型* @return 访问类型*//*** 字段位置* @return 字段位置*//*** 字段位置* @return 字段位置*/
2024-10-09 11:54:37 194
原创 通过注解将接口代理到具体实现类调用
然后在初始化时我们需要通过注解扫描的方式将对应注解扫描到,并注入到Spring容器中,这样在业务方使用时就可以通过@Autowired注解将其声明的注解注入到对应的位置。但是我们不想业务在调用的时候去填写任务模版Template,而是希望其在接口上声明,我们通过注解扫描将其扫描进来并进行注册,然后帮助业务进行调用时动态加入模板信息。为此,我们定义了一个PublishService,希望业务方通过继承该接口,然后业务方只需要声明一个接口继承PublishService接口即可。
2023-12-26 15:43:04 470
原创 使用BeanDefinition来构建Spring Bean并注入Spring上下文中
在做中间件产品的时候,为了给业务方一个好用的客户端,我们一般会提供一个自定义的xxx-spring-boot-starter,那么我们就可能涉及到将自己的客户端中的某个类初始化并注入到Spring上下文中去。为了更标准化去初始化这个类,让Spring来管理我们这个对象的生命周期,那么我们经常会使用BeanDefinition来定义并通过自定义的xxxFactoryBean来真正初始化我们的对象。
2023-12-26 14:32:36 512
原创 将Spring的environment的配置动态绑定到配置类
在Spring中,我们有很多配置,如果一个个设置的话比较繁琐,参考Spring Boot的@ConfigurationProperties(prefix = "spring.nbp")的方式类动态将spring.nbp前缀的配置全部绑定到我们的配置类就比较方便了。一行代码就搞定,那么这个类是如何帮我们来实现配置动态绑定的呢?
2023-12-26 10:17:46 558
原创 压缩与解压缩
DecompressorAbstractCompressorCompressorFactoryZstdDecompressorSnappyFramedDecompressorReversedDecompressorPack200DecompressorLz4FramedDecompressorLz4BlockDecompressorgzipGzipCompres
2023-11-24 11:46:30 466
原创 一种退避序列实现
你有一个苹果,我有一个苹果,交换一下我们还是只有一个苹果;你有一本书,我有一本书,交换一下我们就有两本书了。每个程序员都有自己的工具集和代码私库,如果大家一起贡献出来,我们就会有一套较完整的工具集,相信可以解决大部分问题。作为一个程序员,一个工科生,现实中的理想就是有一套趁手的完整的工具套件,家里有点什么事情,只要拿出我的工具套件就能自己轻松搞定。跟现实中一样,我们中间件团队也在默默的打造自己的软件工具套件,也希望更多的同学一起来打造这一套称心的软件工具套件。
2023-10-20 01:13:19 258
原创 码农拾遗之Java代码转PHP代码
背景: tesla(特斯拉)服务化框架?一听就很高大上,有木有? tesla是啥?简单来说,tesla之于蘑菇街就好比dubbo之于阿里,当然tesla和dubbo很相似,比如解决的问题域等,但是差异也有不少,比如支持异构系统等。不然我们也就直接借用dubbo,没必要耗费这么多人力物力来重复造轮子。 为啥要tesla服务化框架呢?蘑菇街主站的代码是基于
2014-09-13 01:15:11 13847 2
转载 100万并发连接服务器笔记之Erlang完成1M并发连接目标
前言使用Erlang语言也写一个测试和前面大同小异的测试,在100万个并发连接用户情况下,就是想观察一下极显情况下的表现。这个测试使用了优秀的Erlang界的明星框架cowboy,加单易用的接口,避免了我们对HTTP栈再次进行闭门造车。测试Erlang服务器运行在VMWare Workstation 9中,64位Centos 6.4系统,分配14.9G内存左右,双核4个
2014-02-26 17:18:18 2086
转载 关于erlang的binary
转自:http://cryolite.iteye.com/blog/15472521. binary数据是可以在不同进程间共享的 当然这些进程都在同一Erlang节点上。 这与普通term不同,后者作为消息在进程间传递时是要在接收进程中做拷贝的(当然atom数据例外,它们也不会做拷贝)。摘一段原文在这里: All data in messages between E
2013-10-24 13:59:34 1219
原创 OpenSSH浅析
背景在分布式系统集群中,需要设置集群中个机子之间能够通过SSH无密码访问,这几乎是每个分布式系统环境搭建初期的必备操作。那么如何来配置集群中机子进行无密码访问的呢?SSH又是如何处理无密码访问的呢?经过半年的努力,笔者的项目小组终于完成了新的作业调度,资源管理监控模块,并集成进了skyfs-mapreduce框架中。每一个程序员都知道,新开发一个模块,无论大小,集成时总难免会有Bug,而笔
2013-10-09 17:26:51 1981
原创 skyFS-mapreduce0.5版作业调度分析
skyFS-mapreduce 设计文档-Mapreduce Job SchedulerStaff Date Content versionsai 12/11/12 Create 0.51.概要 本文主要论述skyFS-mapreduce下面mapreduce部分job调度的问题。简单介绍了mapreduce部分job正常调度时是如何分配,何时分配及何时执行的,比如g
2013-10-09 16:10:05 1089
转载 linux下bash高级变量整理
高级变量基本形式 [1].变量扩展 格式 ${变量名称} [2].命令扩展 格式 $(命令) [3].算术扩展 格式 $((算术式))1.变量扩展 基本形式:${变量名称} 变量扩展含义:一种简易的条件判断,对不同的条件赋予变量不同的值替换.它和变量存在与否的关系很大. 1.1 测试变量是否存在的基本用法 语法: ${
2013-10-08 11:12:32 3108
原创 linux 下bash条件判断属性整理
condition1 -a condition2 如果条件1和条件2均成立condition1 -o condition2 如果条件1或条件2均成立condition && run1 || run2 如果条件成立执行run1,不成立执行run2文件属性判断-a file 如果文件存在-b file 如果文件存在,且该文件是区域设备文件-c file 如果文件存在,且
2013-10-08 11:03:03 1394
原创 vim操作整理(快捷键+配置文件)
vim整理1)文件的打开与关闭vi filename : 打开或新建文件,并将光标置于第一行首 vi +n filename : 打开文件,并将光标置于第n行首 vi + filename : 打开文件,并将光标置于最后一行首 vi +/pattern filename: 打开文件,并将光标置于第一个与pattern匹
2013-08-15 05:43:30 6340 2
原创 看我怎么搞垮erlang
最近在做mapreduce系统的资源监控模块(项目全部基于erlang).概要:监控各个map或者reduce的任务进程,每个进程都有各自的内存上限.该监控系统提供进程监控注册,注册监控的进程在其内存超出其内存上限,该监控系统则将告知mapreduce系统杀死进程. 在测试时,需要模拟进程不断消耗内存,于是根据如何搞垮erlang的文章(见前一篇转载文章)的原理,
2013-06-07 14:10:59 1008 1
转载 如何搞垮Erlang
原文:How to Crash Erlang1. 耗尽atom因为atom是不会被垃圾回收的,所以如何程序运行时生成太多的atom,(例如在无穷循环里,每次循环都调用几下list_to_atom),atom table会被塞满,然后erlang就当掉了2。进程的耗尽如果你spawn了太多unlink的不会终止的进程,而且这些进程你都不保存它们的Pid,这样你就失去了
2013-06-07 11:27:39 779
原创 Linux下基于erlang的内存监控
get_memory_info() -> get_memory_info(os:type()).get_memory_info({unix, linux}) -> File = read_proc_file("/proc/meminfo"), Lines = string:tokens(File, "\n"), Dict = dict:from_list(lists:m
2013-05-23 13:13:49 1161
原创 自定义实现远程登入某台未设置无密码访问的机子
有时候集群外的机子需要临时登入测试集群查看某台机子的状况,又不想频繁输入用户名密码,则可以参考以下例子.使用expect实现.用法示例1: ./login.sh (登入default_host的test用户)用法示例2: ./login.sh 192.168.3.38
2013-03-21 10:40:19 1150
转载 vi快捷键大全
经常要用到,自家留一份光标控制命令 命令 光标移动 h或^h 向左移一个字符 j或^j或^n 向下移一行 k或^p 向上移一行 l或空格 向右移一个字符 G 移到文件的最后一行 nG 移到文件的第n行 w 移到下一个字的开头 W 移到下一个字的开头,忽略标点符号 b 移到前一个字的开头
2013-03-15 14:57:02 742
原创 基于erlang的mapreduce排序之一
跟师傅xugg经过一个多月的努力,在基于erlang的mapreduce框架下面排序终于有了点小成果.先上结果: 10M数据排序6s 200M数据排序111s.注:以耗时(从SDFS上读取数据,排完序,写回SDFS).测试环境:master:centos 6 / 2G内存 /Pentium(R) Dual-Core CPU E6600 @ 3.
2013-02-01 17:46:49 1159
原创 LibreOffice中文输入疑难杂症
环境:Fedora 17arch: 64位(x86_64)中文输入法:ibus (IBus 1.4.99.20121214)已安装:libreoffice-calc.x86_64 1:3.5.7.2-7.fc17
2013-01-14 16:48:12 5849
原创 erlang生成N个不重复的随机数_方案比较
生成N个不成重复的随机数方案一:最简单,用tuple来组织,将一个有序的整数列表通过shuffle方法打乱即可,比如生成100个无重复随机数, 用四进制8位表示,可以组织0~99,然后打乱即可。{RandNo, 99}, {RandNo,98}, {RandNo,97}, ......, {RandNo, 3}, {RandNo, 2}, {RandNo,1}, {RandNo, 0
2013-01-14 13:05:05 3685
原创 erlang字符串分割
先上代码:split(L, Splitters) -> string:tokens(L, Splitters).split2(L, Splitters) -> case lists:any(fun(A) -> string:str(L,[A]) > 0 end, Splitters) of true -> [H|_] = split(L, Splitters
2012-12-21 10:50:06 3751 1
原创 erlang生成不重复字符串
借助早上写的生成随机数的代码,修修改改完成了,生成不重复字符串的小程序。功能:给定Seed ,Count,WidthSeed : "abcd^kj" 任意不同字符列表,小于36个,如果可以重复,则可以选择重复字符Count :要生成的字符个数Width:字符占用位数,不足之处以Seed第一位填充代码实现如下:-module(ct).-define(SYSTE
2012-12-19 17:28:04 2031
原创 erlang生成N个不重复的随机数
生成N个不重复的随机数,比如给定四位数字做种子"0123",用这个种子的四位数字来表示需要生成的随机数,即相当于用四进制来表示。要求生成的数据无重复,乱序,且按格式输出。示例如下:["0023","0000","0012","0100","0103","0002","0001","0032","0102", "0003","0013","0121","
2012-12-19 11:04:42 1872
转载 windows上硬盘安装fedora
每次安装双系统时,都间隔好久,有些容易忘却,今天又碰到,做个记录在grub的启动菜单文件menu.lst文件中加入以下代码:示例:正式版安装:title install fedora 17root (hd0,X)kernel /vmlinuz linux askmethod root=/dev/sdaYinitrd /initrd.img
2012-12-14 22:49:26 576
转载 erlang快排
-module(sort). -export([sort/1]). sort([]) -> []; sort([Pivot|Rest]) -> {Smaller, Bigger} = split(Pivot, Rest), lists:append(sort(Smaller), [Pivot|sort(Bigger)]). split(Pivot, L) -> split(Piv
2012-12-04 16:57:43 865
原创 ibus中文输入法相关
安装ibus后有些程序无法启动ibus输入法,比如wine安装的程序如qq2012,还有KDE下的一些程序比如编程利器kate。解决方法如下:1,安装:ibus-qt,需要它,才能够启用用qt开发的程序2,设置环境变量:在.bash_profile中加入如下三行:export XMODIFIERS=@im=ibusexport GTK_IM_MODULE=ibus
2012-12-03 12:47:16 1252
原创 erlang 用分号分割字符串
-module(split_test).-export([split/0]).%%split string testsplit() -> split_string("name;info1;info2"). %%split string with semicolon(; semicolon's ascii is 59)split_string(L) -> L1=l
2012-11-30 17:01:41 2960
转载 fedora 安装mp3播放器插件
rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpmrpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpmrp
2012-11-09 14:51:36 859
原创 git 关联远程branch到本地
git remote show origin查看远程origin信息git branch --set-upstream cheng origin/transcode关联远程transcode branch 到本地cheng branchgit branch b_order remotes/origin/b_ordergit branch --se
2012-10-30 17:27:12 1835
原创 新的开始
跳槽后第一次写博客。 9.22号入职,一入职就是双节,休息的够爽啊。到现在工作才刚满两周。经过这两周,逐渐适应了新的公司,新的工作,新的同事,新的开发语言及环境。 接下来要开始erlang的开发历程了,在此留个记录,仅作个见证。以后开始用erlang开发mapreduce,但是原先的兴趣不能忘啊。所以接下来的日子还是要抽时间把hadoop捡起来,还要把m
2012-10-11 16:08:43 606
转载 HDFS的JAVA接口API操作实例
20:55 2010-6-2运行环境:Hadoop.0.20.2CentOS 5.4 java version "1.6.0_20-ea"配置的是单机Hadoop环境先看下我的运行截图主要参考这篇文章http://myjavanotebook.blogspot.com/2008/05/hadoop-fi
2012-09-03 23:12:04 1685
原创 fedora下挂载USB
好几年没用了,懒得输入,做个记录mount -t vfat -o iocharset=utf8 /dev/sdb1 /mnt/usbmount -t vfat -o iocharset=utf8,codepage=936 /dev/sdb1 /mnt/usb
2012-08-17 14:01:00 1011
原创 变
这一周的闹剧终于结束了。 做了个不知道是否对还是错的决定,但是至少在内心上应该是坦然的,现在心情一片舒畅,不必再纠结于合同的限制,感觉像脱缰的野马一样,未来会美好的,继续前行吧,行者! 以后继续从事云计算/云存储的研发。在不影响公司机密的情况下,有时间继续分享自己的所学所得。
2012-08-17 13:26:25 562
Linux GNU shell 源码包
2012-08-11
Hadoop之MapReduce编程实例完整源码
2012-08-01
在VMWare中增加Linux文件系统空间
2012-07-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人