由于高可用架构群每天有大量技术讨论,同时在架构领域也不断有新的技术及思想产生,因此架构君摘取部分值得一读的讨论及资源,供关心架构领域的同行参考。
有关插件化的讨论
昨天发布了之前群友分享的文章,解耦的艺术—大型互联网业务系统的插件化改造。今天一些补充讨论观点
和nginx内核很像,nginx内核外围的安全模块,https模块,gzip模块等都是以插件的形式注入到内核中,每个插件都实现3固定接口,再加一个插件字典类就完成了整个插件式编程 高扩展性的程序就应该这么搞!
Java里的一个XMPP的client叫spark,也是这种思想
有关看板
想搭个看板工具,什么软件最简单?
白板派
用过各种看板,白板墙最有现场感,最持久
也更直观,直接拍照片留存也可以
挂个白板,上面用便利贴写上任务信息。不同color不同的类型
快速,用了工具,就得有录入和维护等功能,适合流程严谨的,开发周期宽松的
team足够小,白板就很爽。一旦人一多,还是老实点用工具吧。。
还是白板吧,大团队用白板墙,很壮观的说。。。
工具派
trello
国内可以用teambition
微软的project
有用project server版的吗?
有关定时任务调度
有没有用过类似这种:独立部署的一个服务,可以人工或者通过api添加维护里面的定时任务,支持各种定时设置;时刻到达后可以触发邮件或者短信发送或者可以触发消息队列发送消息;不像quartz这种定时任务开发框架,而是已经可以直接使用的的定时服务。
自己开发确实可以;但是如果有现成的就可以直接用,最好还有一个任务监控调度界面。
基于quartz的方案
我们以前基于quartz自己做了一套
我们以前在Quartz上改了一套,可以往数据库里写或者redis中写任务,也可以随时停止任务,还有任务出错监控,重试等
Quartz自带数据库存储任务的
我们自己简单封装了一下,可以创建和调度quartz的job
其他方案
淘宝的tbschedule
定时服务我用Jenkins, 定时触发web service 或者脚本
代替quartz 做些事情,配置也挺方便
结论:快速了解了一下tbschedule,貌似可以满足需求
有关单表60亿记录
昨天美团高级DBA在群中分享了MySQL选择之道,可以参看他以前的演讲稿 http://pan.baidu.com/s/1eQjh5dS
因此有对60亿的现状提出顾虑,认为存在瓶颈
疑虑派
B+tree 节点 m阶是多少…横向扩充多少… 如何不影响效率…感觉就算平衡术牛逼,也不能这样啊
查找不就按照比例进行左右切换吗
横向…感觉多了依然存在… 遍历层次会多
是不是使用了SSD造成问题不明显
放任一直不拆,是否能说正一点点把公司逼向险境?
支持派
InnoDB会控制层数 ,不会太深
当时用InnoDB 在SAS机械硬盘没问题
不过后来换成Tokudb之后,IO压力大了很多
当时用机械硬盘也没什么压力的
自增id的讨论
我们的架构就是非自增id 分布式 分区
生成全局唯一id的服务
猎豹的浪客用go写了个
通过kv生成过去id… 原子锁保证唯一
弱弱问一句,java里面生成uuid和你们提到的这个生成id相比,弱在哪里啊?
uuid太长了;不适合做主键;uuid太长不好索引
逐位扫描时间复杂度会很高,尤其是数据量大的时候
尤其是innodb,创建的每个非簇索引,都会带上主键的,这样占用存储空间更大,需要消耗更多内存和IO
主键确实短一些好,长了,查询不变,存储类型也有影响
我们之前有些场景开始设计时候主键搞的字段多,后来再想优化新SQL加索引都不敢搞了 ,容量增加多
另外分享两个业界的动态:
如果你有10TB内存可利用,你会怎么编程?
http://highscalability.com/blog/2015/8/5/how-do-you-program-a-computer-with-10-terabytes-of-ram.html
微软开源了WinObjC,为Visual Studio/Windows提供Objective-C的开发环境
http://www.reddit.com/r/programming/comments/3g1gwu/microsofts_objectivec_implementation_is_now_on/
想进一步同群专家进一步交流高可用架构,可回复arch申请进群。由于主群人员长期处于满员状态,为了让更多同行可以参与架构交流,昨天开放了一个新的高可用架构群(待冠名),很多排队的朋友喜大普奔,目前已经半满,不过依然还可以申请加入。
本文编辑TimYang。想阅读更多架构方面内容,可以通过搜索“ArchNotes”或长按下面图片,关注“高可用架构”公众号,获取通往架构师之路的宝贵经验。 转载请注明来自“高可用架构(ArchNotes)”微信公众号。