区块链技术学习笔记

区块链技术学习笔记

1、区块链技术是一个解决了拜占庭将军(百度百科拜占庭将军问题)节点的分布式数据系统!这是它最大的不同,也导致了这个技术存在诸多限制。

为了方便理解,先插个话题。做服务器端开发的程序员,都对zookeeper不陌生,我们解决分布式ACP问题时,寻找一致性解决方案时都会想到它。zookeeper实际使用了paxos的简化版算法(本文不展开,请参考我之前写过的两篇文章:paxos分布式一致性算法–讲述诸葛亮的反穿越 以及paxos算法如何容错的–讲述五虎将的实践)。想搞明白比特币(成于区块链技术)的算法,应先弄明白paxos算法(便于对比),目前商用的方案中,我们都假定服务器内网是不能被攻破的[……]

阅读全文

API的接口变迁

API的接口变迁

最近前端团队越发觉得目前API接口有些不好用,所以我也借此重新理一下我们的API接口。
API没有什么完美的设计理念和原则,只有最适合当下的设计。这个最适合包括:当前使用的技术架构、团队规模、团队成员技术特点、开发时间、人力成本、未来业务与技术的预期等。我先来回顾下我们产品的API变迁过程。

[……]

阅读全文

基于websocket接口的jmeter自动化测试实践(2)

基于websocket接口的jmeter自动化测试实践(2)

1、通常我们会使用用户自定义变量,把每个用例共用的东西提取出来。然而,当测试环境多起来时,这些写死在jmx脚本里的变量就不那么好用了。例如,对多个环境测试时,难道要复制多个脚本、单独改变量值?

此时,我们可以使用jmeter属性。因为属性是可以通过命令行传递的,例如:

-Jtestproperty=202

而在需要使用变量的地方直接用${__P(testproperty,)}使用命令行传递的值。

当然,如果脚本已经大量使用了user defined variable,且可能会有一个默认环境一批默认值,那么,在user defined variable里把变量的值设为${__P(testpr[……]

阅读全文

基于websocket接口的jmeter自动化测试实践(1)

基于websocket接口的jmeter自动化测试实践(1)

自动化测试对于小团队来说非常重要,特别是技术负责人更偏向于用技术解决问题时(习惯用管理解决问题时,可能会用手动+人海方式)。

而在接口测试中,jmeter无疑是一个低成本方案的自动化测试工具。

为什么呢?因为它在整体设计上把业务逻辑、测试框架、测试数据三者分离了。jmeter进程就是测试框架,而通过如csv等文件提供测试数据,jmx提供包含业务逻辑的测试用例。而jmx脚本,则是以可视化的配置方式来编写(且配置时,可以利用内置函数提供多种功能)。这样的方案,无疑是维护成本最低的。

同时,jmeter有大量的第三方插件,得以支持大部分协议。在性能测试方面,jmeter还支持多台机器组成集群对[……]

阅读全文

在阿里云ECS上进行vpn ipsec网络对接

在阿里云ECS上进行vpn ipsec网络对接

当我们需要与一些安全级别要求很高的服务对接时,服务提供商的网络提供方式可能是使用ipsec点对点对接网络。如果我们不是使用公有云,而是有自己的机房和路由器,这些就只是按照服务方的参数要求配置下路由器的小事情。但对公有云来说(例如阿里云),我们没有自己的路由器,当对接方要求我们使用预共享密匙进行ipsec点对点对接,第一反应什么鬼(之前没接触过的朋友可以看下这篇文章http://www.ibm.com/developerworks/cn/Linux/l-ipsec/,对该概念讲得蛮清楚)?而接下来拥有私有云独立机房的服务提供方则可能要求最简单直接的解决方案:拉条专线接入服务提供者机房(这个开发成[……]

阅读全文

深圳《运维世界大会》中《从代码看Nginx运维本质》演讲PPT分享

深圳《运维世界大会》中《从代码看Nginx运维本质》演讲PPT分享

2016年12月3日赴深圳参加OpsWorld运维世界大会,作为嘉宾讲师向中国的一线运维研发工程师分享Nginx的使用技巧,大会由运维帮、云技术、Linux中国联合举办,三大社区汇聚了大量的技术精英和行业领袖,微信订阅号粉丝达到20多万人,技术内容覆盖整个互联网技术圈。特将PPT放在这里,希望能够帮助到大家!

从代码看Nginx运维

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

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

搭建cms内容站点时,wordpress是一个很好的选择,不用做任何开发就可以通过配置、插件获得丰富的功能。用Docker容器技术部署运维都非常简单,特别是对于wordpress这种我们无需做任何开发的组件。而出于低成本考虑,公有云都是一个最佳选择,这里我选择阿里云。为了提速,wordpress前会有一个nginx作为负载均衡和web加速服务器,将静态内容都由nginx处理。出于高可靠性,我选用阿里云的容器服务(目前免费),由它来管理所有容器。而多容器间的磁盘目录共享,阿里云提供了oss映射和nas盘,oss盘的速度太慢,而nas盘IO与云盘相当,可以作为第一选择。数据库为了可靠性,如果没[……]

阅读全文

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

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

http://www.csdn.net/article/2014-06-27/2820432

摘要:先后就职于在国内知名的互联网公司,目前在阿里云弹性计算部门做架构设计与核心模块代码的编写,主要负责云服务器管理系统和存储系统的优化。陶辉就大规模分布式系统、高性能服务器设计分享了自己的看法。

关注陶辉很长时间,初次对陶辉的了解还是在我们CSDN的博客上,从2007年开始写博客,一直到现在,如果不是对技术的追求和热爱,以及热爱分享的精神,我想不是很多人能坚持下来,拥有多年大型互联网公司的从业经验,对Linux下的高性能服务器开发、大规模分布式系统的设计有着丰富经验,对企业的Nginx\开发Ng[……]

阅读全文

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

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

django是Python语言快速实现web服务的大杀器,其开发效率可以非常的高!但因为秉承了语言的灵活性,django框架又太灵活,以至于想实现任何功能都有种“条条大路通罗马”的感觉。这么多种选择放在一起,如何分出高下?我想此时的场景下就两个标准:

1、相同的功能用最少的代码实现(代码少BUG也会少);

2、相对最易于理解,从而易于维护和扩展。

书归正传,web服务允许用户输入,基本上要靠表单。而django对表单的支持力度非常大,我们用不着在浏览器端的html文件里写大量<form>代码,再到web端去匹配form里的id/name/value、验证规则,再与持久层数据库[……]

阅读全文

浙公网安备 33010802009076号