区块链技术学习笔记

上周末参加了一个区块链技术培训班,大致搞明白了以下问题:1、比特币为什么会衍生出挖矿、矿机这套产业链?为什么那么多人炒币?2、公有链、联盟莲、私有链的区别在此做个简单分享。1、比特币这种公有区块链的技术支撑实际上大量做服务器端开发的程序员,都对zookeeper有些熟悉,当我们为一个分布式集群寻找一致性解决方案时都会想到它。zookeeper实际使用了paxos的简化版算法(如果试图说清楚这个算法...
阅读(166) 评论(0)

API的接口变迁

最近前端团队对于目前API接口的不满开始增多,所以我也借此重新理一下我们的API接口。API没有什么完美的设计理念和原则,只有最适合当下的设计。这个最适合包括:当前使用的技术架构、团队规模、团队成员技术特点、开发时间、人力成本、未来业务与技术的预期等。我先来回顾下我们产品的API变迁过程。作为从0到1的创业公司,客户、CEO提出的需求是全新没有产品先例可以参考的,故首先要验证产品原型,而最初只有我...
阅读(444) 评论(0)

阿里云搭建wordpress生产级CMS网站实践

搭建cms内容站点时,wordpress是一个很好的选择,不用做任何开发就可以通过配置、插件获得丰富的功能。用docker容器技术部署运维都非常简单,特别是对于wordpress这种我们无需做任何开发的组件。而出于低成本考虑,公有云都是一个最佳选择,这里我选择的是阿里云。为了提速,wordpress前会有一个nginx作为负载均衡和web加速服务器,将静态内容都由nginx处理。出于高可靠性,我选...
阅读(821) 评论(0)

django中ModelForm多表单组合的解决方案

django是python语言快速实现web服务的大杀器,其开发效率可以非常的高!但因为秉承了语言的灵活性,django框架又太灵活,以至于想实现任何功能都有种“条条大路通罗马”的感觉。这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准:1、相同的功能用最少的代码实现(代码少BUG也会少);2、相对最易于理解,从而易于维护和扩展。书归正传,web服务允许用户输入,基本上要靠表单。而dj...
阅读(3670) 评论(1)

专访阿里陶辉:大规模分布式系统、高性能服务器设计经验分享

http://www.csdn.net/article/2014-06-27/2820432...
阅读(6545) 评论(2)

信号处理方法的问题

这周有位新同事请我帮忙看一个关于信号处理的问题,程序希望在收到一个信号后退出,而他在信号处理方法里却做了许多事,包括释放一些全局内存等。这样问题就产生了,程序不定时的就挂死了,用gdb一看,所有的线程都挂在了pthread_once方法里,而似乎每个线程都在处理信号,其中产生问题的线程堆栈如下:Thread 1 (Thread 0x7f41252f3720 (LWP 31542)):#0 0x00...
阅读(6937) 评论(3)

taohui.org.cn建站历程

用云服务器+linux+nginx+python+django+mysql+memcached搭了个人网站,用万网域名加阿里云备案完成,使用多说作为评论系统,以RST作为博客录入格式。欢迎大家光临。...
阅读(7302) 评论(7)

高性能网络编程7--tcp连接的内存使用

当服务器的并发TCP连接数以十万计时,我们就会对一个TCP连接在操作系统内核上消耗的内存多少感兴趣。操作系统里可配置的、貌似跟TCP内存相关的设置项却很让人疑惑,例如,tcp_rmem[2]和rmem_max似乎都跟接收缓存最大值有关,但它们却可以不一致,究竟有什么区别?或者tcp_wmem[1]和wmem_default似乎都表示发送缓存的默认值,冲突了怎么办?在用抓包软件抓到的syn握手包里,为什么TCP接收窗口大小似乎与这些配置完全没关系?这篇文章将为应用程序开发者系统描述TCP的内存。...
阅读(26554) 评论(23)

高性能网络编程6--reactor反应堆与定时器管理

在大数据和云计算时代,我们对服务器的处理能力要求越来越高,需要它处理几十万并发连接下,还能维持非常高的TPS。此时就必须用到epoll这样的IO复用,但直接基于它编程在软件工程层面效率是非常差的,我们需要一个网络模型、设计模式,来简化应用编码,反应堆就是这么一个东东。...
阅读(16934) 评论(7)

《深入理解Nginx》第2版修订前读者意见征求帖

最近编辑lisa和我讨论《深入理解Nginx》这本书第2版的出版事宜,我想还是以读者的需求为主,请读者朋友们在这里回复你们觉得:有哪些第1版书中内容有些啰嗦,可以精简的?有哪些内容说得不够详尽,需要增加篇幅的?有哪些Nginx的新变化,在第1版中没有相关内容的出现,需要在第2版中涉及的?有哪些章节的顺序不太合理,有些应该放在前面更容易理解?或者其他意见,尽请提出。谢谢大家...
阅读(5355) 评论(19)

高性能网络编程5--IO复用与并发编程

开发基于TCP协议的高性能服务器时,能够处理的并发连接数是一个重要指标。为了实现高并发,前辈们在开发效率与执行效率上的不同权衡下,提供了多种实现方式。IO多路复用,这是最纯正、本质的方法,它也是追求执行效率最大化时的最佳选择。本篇简要描述了IO复用与并发编程间的关系,希望对做应用程序开发的同学们有所帮助。...
阅读(21538) 评论(7)

高性能网络编程4--TCP连接的关闭

TCP连接的关闭有两个方法close和shutdown,这篇文章将尽量精简的说明它们分别做了些什么。为方便阅读,我们可以带着以下5个问题来阅读本文:1、当socket被多进程或者多线程共享时,关闭连接时有何区别?2、关连接时,若连接上有来自对端的还未处理的消息,会怎么处理?3、关连接时,若连接上有本进程待发送却未来得及发送出的消息,又会怎么处理?4、so_linger这个功能的用处在哪?5、对于监...
阅读(14581) 评论(3)

高性能网络编程3----TCP消息的接收

1、应用程序调用read、recv等方法时,socket套接字可以设置为阻塞或者非阻塞,这两种方式是如何工作的? 2、若socket为默认的阻塞套接字,此时recv方法传入的len参数,是表示必须超时(SO_RCVTIMEO)或者接收到len长度的消息,recv方法才会返回吗?而且,socket上可以设置一个属性叫做SO_RCVLOWAT,它会与len产生什么样的交集,又是决定recv等接收方法什么时候返回? 3、应用程序开始收取TCP消息,与程序所在的机器网卡上接收到网络里发来的TCP消息,这是两个独立的...
阅读(27318) 评论(33)

高性能网络编程2----TCP消息的发送

在上一篇中,我们已经建立好的TCP连接,对应着操作系统分配的1个套接字。操作TCP协议发送数据时,面对的是数据流。通常调用诸如send或者write方法来发送数据到另一台主机,那么,调用这样的方法时,在操作系统内核中发生了什么事情呢?我们带着以下3个问题来细细分析:发送方法成功返回时,能保证TCP另一端的主机接收到吗?能保证数据已经发送到网络上了吗?套接字为阻塞或者非阻塞时,发送方法做的事情有何不...
阅读(24376) 评论(37)

一个低级Illegal instruction错误的定位--忽略编译期警告就得加倍偿还

这个问题是我在开发心跳服务器时的一个笔误,其实错误非常的低级浅显,特别写篇文章是想告诉大家,编译期的警告是非常重要的!由于项目代码量大,编译期信息很多,我在忙于联调时就悲催的忽视了一条编译期警告信息,实际上这个警告解决问题实在是方便,我忽略了它直接从core上啃哧啃哧定位问题花的时间比之多了去了。这篇文章的目的就是以这个很天真又很容易犯的笔误错误,来提醒大家:请不要忽略任何编译期的警告,磨刀不误砍...
阅读(26517) 评论(11)
65条 共5页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:737100次
    • 积分:7350
    • 等级:
    • 排名:第2872名
    • 原创:63篇
    • 转载:1篇
    • 译文:0篇
    • 评论:471条
    博客专栏
    文章分类
    最新评论