霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

SOAP Vs. REST: Difference between Web API Services

The earlier tutorials have given a lot of details on 2 key types of web service designs. One is SOAP protocol (Simple Object Access Protocol) and the other being REST for Representational State Transfer.

Each technique has its own advantages and disadvantages. Hence, it’s always good to understand in which situations each design should be used. This tutorial will go into some of the key differences between these techniques as well as what challenges you might encounter while using them. Read more ›

58到家MySQL军规升级版

58到家MySQL军规升级版

一、基础规范

● 表存储引擎必须使用InnoDB

● 表字符集默认使用utf8,必要时候使用utf8mb4

解读:
(1)通用,无乱码风险,汉字3字节,英文1字节

(2)utf8mb4是utf8的超集,有存储4字节例如表情符号时,使用它

● 禁止使用存储过程,视图,触发器,Event

解读:

(1)对数据库性能影响较大,互联网业务,能让站点层和服务层干的事情,不要交到数据库层

(2)调试,排错,迁移都比较困难,扩展性较差

● 禁止在数据库中存储大文件,例如照片,可以将大文件存储在对象存储系统,数据库中存储路径

● 禁止在线上环境做数据库压力测试

● 测试,开发,线上数据库环境必须隔离 Read more ›

1分钟了解比特币,PM都懂了

理解本文不需要任何技术背景。
一句话,比特币BTC(BitCoin)是,基于区块链的,能抵抗通货膨胀的,电子货币。这里有三个关键词:电子货币,抵抗通胀,基于区块链。

一、比特币有没有价值?

很早以前,没有货币,物品换物品。我手里有牛,我需要盐,但买盐的人不需要牛,他需要布,于是我想办法用牛先换取布,再换取我想要的盐,整个过程效率很低。人很聪明,于是发明了一种等价物,大家都认可其价值,用来提高交易的效率。这个等价物就是货币。货币需要具备方便,稀少,易分割,易衡量等特性。历史上曾经用来作为货币的等价物有:贝壳,铜币,金银,钞票。
首先,比特币的本质是货币。

Read more ›

刚开始学编程?这几款小工具能让你事半功倍

科技行业里,可供人们使用的工具成百上千,你要怎么知道用哪一种上手最合适呢?
拿最近刚进入编程这行的人来说吧,大量的工具信息堆砌过来其实毫无益处,反而会无从下手。我发现在自己的开发过程中,很多安装的扩展工具不仅没有真正起到助益作用,反而常常妨碍了正常的开发工作。
我不是专家,不过随着时间的推移,我还是编制了一份工具清单,这些工具已经证明对我非常有用。如果你刚刚开始学习怎么编程的话,这个清单能给你提供一些指导。如果你是个经验丰富的开发人员,也希望你能从中学到一些新的东西。
我将把这篇文章分为Chrome扩展程序和VS代码扩展扩展程序两部分。我知道还有其他的浏览器和文本编辑器,但是我想你当然只能在你能找到的工具里选择,所以还是别因为个人喜好而引起一场宗教般的争论。

Read more ›

PHP开发人员是如何高效使用17个 Composer 实践

尽管大多数 PHP 开发人员都知道如何使用 Composer,但并不是所有的人都在有效地或以最好的方式使用它。 所以我决定总结一些对我日常工作流程很重要的东西。大部分技巧的理念是「 Play it safe 」,这意味着如果有更多的方法来处理某些事情,我会使用最不容易出错的方法。
Tip #1: 阅读文档
我是认真的。 官方的文档 写得非常棒,现在只需几个小时的阅读,会给你未来节省很多时间。你会惊讶于 Composer 如此之多能。
Tip #2: 认识 “项目” 和 “库” 间的不同
创建的是“项目”还是“库”,意识到这点非常重要。这两者在使用过程中,都存在非常巨大的差异。
库是一个可重用的包,需要作为一个依赖项进行添加 – 比如 symfony/symfony, doctrine/orm 或 elasticsearch/elasticsearch.
而典型的项目是一个应用程序,要依赖于多个库。它通常不可重用(其他项目不需要它成为一个依赖项)。像电子商务网站、客户服务系统等类型的应用就是典型的例子。
在下面的 Tip 中,我会更仔细地讲解库和项目两者的区别。

Read more ›

浅谈服务治理与微服务

本篇文章先简单介绍了互联网架构的演变,进而介绍了服务化,最后再介绍微服务,微服务是服务治理的升级也是互联网架构的进一步延伸。

互联网架构演变

一体架构

在计算机软件发展早期,一般桌面软件都是采用这种架构,不管是界面还是业务处理还是数据处理都放到一个包中。这种其实谈不上架构,但也可以说是很好的架构,因为它足够简单。

这里写图片描述

mvc架构

但随着浏览器的出现便产生了web应用,web应用的特点是界面部分是显示在浏览器中,服务处理是在服务容器中的,页面显示一般用css+js+html技术来处理,而后端可以用java、php等语言,这就产生了前后端分离。对于web系统,一体架构难以满足前后端分离的开发需求,因而便产生了MVC架构。

这里写图片描述

 

MVC才算的上真正意义上的架构,因为它除了解决了前后端分离问题,还引入了一种全新的开发模式,用一种业务逻辑、数据、界面显示分离的方法组织代码,使得整个应用层次更加分明,而且各个层次之间不但减低了耦合性,还提高了各个层次的可重用性。

但随着应用规模的不断扩大,应用模块不断增加,整个应用也显得越来越臃肿,维护起来也更加困难,因此便又产生了多应用架构。

Read more ›