01 2014 档案

摘要:最近公司有个项目,需要多并发完成任务,也就是一个任务控制中心控制多个WORKER的问题,这里的核心点在于如果WORKER_A正在执行1号任务,任务中心不能让WORKER_B重复执行1号任务,即WORKER_A和WORKER_B同时来任务中心需要互斥。咱们的解决方案是使用MYSQL的INNODB行锁机制完成这项工作,即使用MYSQL来充当任务中心的角色。相关参考:SELECT FOR UPDATE原理。一、创建数据表: testCREATE TABLE `test` ( `unit_id` int(11) NOT NULL AUTO_INCREMENT, `style` int(11) NO.. 阅读全文
posted @ 2014-01-24 11:46 李秋 阅读(801) 评论(0) 推荐(0) 编辑
摘要:一、现象最近做JAVA项目,需要依赖一个外部的JAR包,但是依赖之后,发现eclipse一直workspace,估计是包重复加载的问题二、问题使用查看包依赖的命令:mvn dependency:tree 81 [INFO] +- com.taobao.promotioncenter:promotion-common-client:jar:3.6.1:compile 96 [INFO] | +- com.taobao.biz.traderule:traderule:jar:1.5.5-SNAPSHOT:compile 97 [INFO] | | +- com.taobao.co... 阅读全文
posted @ 2014-01-20 17:23 李秋 阅读(2178) 评论(0) 推荐(0) 编辑
摘要:公司需要使用JAVA的WebServer完成简单的定时跑任务的工作。其他例如:每隔30分钟执行锁定用户解锁任务。 Quartz 在开源任务调度框架中的翘首,它提供了强大任务调度机制,难能可贵的是它同时保持了使用的简单性。Quartz 允许开发人员灵活地定义触发器的调度时间表,并可以对触发器和任务进行关联映射。Spring为创建Quartz的Scheduler、Trigger和JobDetail提供了便利的FactoryBean类,以便能够在Spring 容器中享受注入的好处。此外Spring还提供了一些便利工具类直接将Spring中的Bean包装成合法的任务。Spring进一步降低了使用Qu. 阅读全文
posted @ 2014-01-15 15:48 李秋 阅读(645) 评论(0) 推荐(0) 编辑
摘要:问题说明:最近遇到一个问题,多个WORKER同时向MYSQL数据库请求任务,如何实现互斥?例如:SELECT * FROM student WHERE id > 10 LIMIT 100;UPDATE student SET status = 1 WHERE id > 10 LIMIT 100;当有多个WORKER执行上面两条语句,那么很可能都执行同样的数据,造成线上问题,比如WORDER1执行SELECT之后,还没有执行UPDATE之前,WORDER2也执行了SELECT语句,造成问题。那么这种情况可以使用SELECT ... FOR UPDATE,解决问题,当我读出数据的时候, 阅读全文
posted @ 2014-01-15 11:24 李秋 阅读(3726) 评论(0) 推荐(0) 编辑
摘要:linux图形界面框架linux图形界面又称x系统,其主要包含如下几个部分:1) XServer2) 显示管理器 (Display Manager) 例如(gdm kdm xdm等)3) 窗口管理器 (Window Manager) 例如(metacity ,fluxbox等)4) DM 和 WM之上的一些图形应用程序在使用中一般都是2,3,4三者集合起来构成一个完整的集成工作环境,例如KDE ,GNOME等,这就是我们平时所说的广义上的xclient。1 XServer 主要提供基本的显示接口共xclient使用,并将用户的操作等也反映给xclient,是xclient与硬件的一个中间层。. 阅读全文
posted @ 2014-01-08 16:26 李秋 阅读(779) 评论(0) 推荐(0) 编辑
摘要:前两天发现一个问题,当使用proxy_pass的时候,发现域名对应IP是缓存的,这样一旦VIP变化之后,就会报错,下面就来详细分析一下这个问题。一、问题说明 location = /test { internal; no_error_pages; proxy_pass_request_headers off; proxy_pass 'http://www.taobao.com/test/router/rest'; } 大家应该知道,这是向http://www.taobao.com/test/router/rest发送请求,其实是向202.108.250.25... 阅读全文
posted @ 2014-01-03 23:31 李秋 阅读(7897) 评论(0) 推荐(0) 编辑
摘要:一、概况 Nginx可以开启多个进程,每个进程拥有最大上限128个子线程以及一定的可用连接数。最大客户端连接数等于进程数与连接数的乘积,连接是在主进程中初始化的,一开始所有连接处于空闲状态。每一个客户端请求进来以后会通过事件处理机制,在Linux是Epoll,在FreeBSD下是KQueue放到空闲的连接里。如果设置了线程数,那么被填充的连接会在子线程中处理,否则会在主线程中依次处理。如果解析出是动态脚本请求,会根据fast-cgi的设置访问php-cgi进程,php进程数量的多少依据php-fpm.conf中max_children的设置。因此Nginx的动态请求能力不仅仅依靠Nginx本. 阅读全文
posted @ 2014-01-02 20:44 李秋 阅读(5787) 评论(0) 推荐(1) 编辑
摘要:查看源代码入门 这是一篇关于NGINX的MAIN()函数入门说明文章,相比其他这篇十分枯燥,其实写的时候更是无聊,不过学了这么长时间的WEB开发,连NGINX源代码都没有读下来,总是觉得有些缺憾,希望这一次可以弥补一下。一、下载NGINX下载地址:http://nginx.org/en/download.htmltar -zxvf *.tar.gz && ./configure && make && sudo make install查看NGINX目录有如下文件夹:auto CHANGES CHANGES.ru conf configure co 阅读全文
posted @ 2014-01-01 08:43 李秋 阅读(5227) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示