摘要: 首先说一下背景,在双十一的时候,我们系统接受X宝的订单推送,同事原先的实现方式是使用redis的List作为推送数据的承载,在非大促的场景下, 一切运行正常,内存占用大概3-4G,机器是16G内存。由于提前预计不足,在双十一来临的时候,订单瞬时量达到了平时的10X倍,内存非常吃紧,情况算 是非常紧急阅读全文
posted @ 2017-12-02 20:26 一线码农 阅读(1890) 评论(10) 编辑
摘要: 在我们开发项目的时候,经常会遇到大块数据的问题(2M-100M),比如说保存报表中1w个人的ID号,他就像一个肿瘤一样,存储在服务器哪里都 觉得恶心,放在redis,mongodb中吧,一下子你就会收到报警,因为内存满了。。。放在mysql吧???你还得建立一个text字段,和一些小字段混在一起, 阅读全文
posted @ 2017-11-30 12:24 一线码农 阅读(1117) 评论(6) 编辑
摘要: 在项目初期的时候,大家都是赶着上线,一般来说对日志没有过多的考虑,当然日志量也不大,所以用log4net就够了,随着应用的越来越多,日志散 落在各个服务器的logs文件夹下,确实有点不大方便,这个时候就想到了,在log4net中配置 mysql的数据源,不过这里面有一个坑,熟悉log4net的同学知阅读全文
posted @ 2017-11-29 09:57 一线码农 阅读(1157) 评论(4) 编辑
摘要: 最近有个需求,需要整合所有店铺的数据做一个离线式分析系统,曾经都是按照店铺分库分表来给各自商家通过highchart多维度展示自家的店铺经营 状况,我们知道这是一个以店铺为维度的切分,非常适合目前的在线业务,这回老板提需求了,曾经也是一位数据分析师,sql自然就溜溜的,所以就来了 一个以买家维度展示阅读全文
posted @ 2017-11-25 12:54 一线码农 阅读(678) 评论(0) 编辑
摘要: 很多情况下基于wcf的复杂均衡都首选zookeeper,这样可以拥有更好的控制粒度,但zk对C# 不大友好,实现起来相对来说比较麻烦,实际情况下,如果 你的负载机制粒度很粗糙的话,优先使用nginx就可以搞定,既可以实现复杂均衡,又可以实现双机热备,以最小的代码量实现我们的业务,下面具体分享下。 一阅读全文
posted @ 2017-10-22 09:26 一线码农 阅读(3233) 评论(22) 编辑
摘要: 在一个项目还是单体架构的时候,所有的js,css,image都会在一个web网站上,看起来并没有什么问题,比如下面这样: 但是当web网站流量起来的时候,这个单体架构必须要进行横向扩展,而在原来的架构中静态资源这羊毛是出在单体架构这头羊身上,所以横向多少 个单体,就有多少个静态资源文件夹,比如下面这阅读全文
posted @ 2017-09-03 12:41 一线码农 阅读(4044) 评论(19) 编辑
摘要: 当你的项目数据量上去了之后,通常会遇到两种情况,第一种情况应是最大可能的使用cache来对抗上层的高并发,第二种情况同样也是需要使用分库 分表对抗上层的高并发。。。逼逼逼起来容易,做起来并不那么乐观,由此引入的问题,不见得你有好的解决方案,下面就具体分享下。 一:尽可能的使用Cache 比如在我们的阅读全文
posted @ 2017-08-31 08:16 一线码农 阅读(4302) 评论(31) 编辑
摘要: Gearman是当年LiveJournal用来做图片resize的,大家也明白图片resize是一个高CPU的操作,如果让web网站去做这个高CPU的功能,有可能会拖垮你的 web应用,那本篇我们来看看gearman是如何解决这个问题的,它的架构图类似下面这样: 从上面这张图,你应该会看到,Gear阅读全文
posted @ 2017-08-29 18:24 一线码农 阅读(939) 评论(7) 编辑
摘要: 在上一篇的环境配置中,你还只能基于maven开发一个javase的项目,如果要开发一个web项目,还得配置一下tomcat和spring mvc,集成一览表如下。 一:Tomcat安装 在.net web开发中,微软再一次向你展示了一站式马赛克配置,你只需要轻轻一点按钮,发射。。。一个带有boots阅读全文
posted @ 2017-08-27 19:24 一线码农 阅读(996) 评论(6) 编辑
摘要: 最近公司做了一个项目,需要嵌套在千牛的客户端上,项目代码必须上阿里的聚石塔,全程采用基于docker的自动化部署,我们的项目是基于.net架构。很遗憾 的是基于windows的docker上部署在访问淘宝自身的api接口,总是会时不时的各种超时,阿里小二也整个一个星期没解决,给出的理由很简单,基于w阅读全文
posted @ 2017-08-26 10:23 一线码农 阅读(2187) 评论(17) 编辑
摘要: 前些天和我们的一个邮件服务商对接,双方需要进行一些通讯,对方是java团队,而作为.net团队的我们,只能公布出去的是一个wcf的basicbinding,想不 到问题来了,对方不知道怎么去调用这个basic,可能他们水平有点菜,有点尴尬,不得已我来研究研究,其实只要知道公布的wsdl,对什么语言都阅读全文
posted @ 2017-08-09 23:14 一线码农 阅读(1839) 评论(12) 编辑
摘要: 我们都知道默认的Quartz底层采用的是RAMJobStore,所有的Job,Trigger,Calendar都是用Dictionary,SortSet等等这样的数据结构进行储存,相对来说性 能肯定快的没法说,但是面对灾难重启的时候还是很拿不出手的,而且都是全内存的,也没法实现多机器搭建Quartz阅读全文
posted @ 2017-06-26 08:16 一线码农 阅读(2427) 评论(3) 编辑
摘要: 一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的集群机制,可以采用基于 sqlserver,mysql的集群方案,当然还可以在第三方插件的基础上实现quartz序列化到热炒的mongodb,redis,震撼力可想而知阅读全文
posted @ 2017-05-28 18:03 一线码农 阅读(3043) 评论(12) 编辑
摘要: 经常在项目中遇到定时任务的时候,通常第一个想到的是Timer定时器,但是这玩意功能太弱鸡,实际上通常采用的是专业化的第三方调度框架,比如说 Quartz,它具有功能强大和应用的灵活性,我想使用过的人都非常了解,那么本篇就来说说如何通过代码和配置文件来进行job和trigger的配置。 一:常规的jo阅读全文
posted @ 2017-05-16 09:03 一线码农 阅读(2119) 评论(7) 编辑
摘要: 平时我们在用多线程开发的时候少不了Task,确实task给我们带来了巨大的编程效率,在Task底层有一个TaskScheduler,它决定了task该如何被调度,而 在.net framework中有两种系统定义Scheduler,第一个是Task默认的ThreadPoolTaskScheduler阅读全文
posted @ 2017-04-28 14:46 一线码农 阅读(3910) 评论(9) 编辑