随笔分类 - Web Service
摘要:在前面的一篇文章《图形数据库Neo4J简介》中,我们已经对其内部所使用的各种机制进行了简单地介绍。而在我们尝试对Neo4J进行大版本升级时,我发现网络上并没有任何成型的样例代码以及简介,而其自身的文档也对如何使用Spring Data Neo4J介绍得语焉不详。因此在本文中,我们就将简单地介绍如何使
阅读全文
摘要:相信大家都听说过Amazon的AWS。作为业内最为成熟的云服务提供商,其运行规模,稳定性,安全性都已经经过了市场的考验。时至今日,越来越多的应用被部署在了AWS之上。这其中不乏Zynga及Netflix这样著名的服务。 然而这一切并没有停滞不前:AWS根据市场的变化提供了越来越多的内建服务,在降低了
阅读全文
摘要:在最近的一次Microservices Practitioner Summit中,原Netflix工程师介绍了一种越来越常见的对Microservice的误用。简单地说,大家在搭建一个基于Microservice的服务时常常依赖同一套类库,进而使得Microservice中的各个子服务无法选择最适合
阅读全文
摘要:在前面的一篇文章《图形数据库Neo4J简介》中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法。而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介绍。 接触Cassandra的原因与接触Neo4J的原因相同:我们的产品需要能够记录一系列关系型数据库所无法快速
阅读全文
摘要:最近我在用图形数据库来完成对一个初创项目的支持。在使用过程中觉得这种图形数据库实际上挺有意思的。因此在这里给大家做一个简单的介绍。 NoSQL数据库相信大家都听说过。它们常常可以用来处理传统的关系型数据库所难以解决的一系列问题。通常情况下,这些NoSQL数据库分为Graph,Document,Col
阅读全文
摘要:本文中,我们将对ZooKeeper进行介绍。简单地说,ZooKeeper是一个用来在构成应用的各个子服务之间进行协调的一个服务。 由于其本身并没有特别复杂的机制,因此我们将会把更多的笔墨集中在如何对ZooKeeper进行使用方面。当然,这也是和其它博文所略有不同的地方,否则我也不会花费时间去写这这篇
阅读全文
摘要:本来不想起一个英文名,但是想来想去都没能想出一个简洁地表述该意思的中文释义,所以就用了一个英文名称,望见谅。 Cloud Native是一个刚刚由VMware所提出一年左右的名词。其表示在设计并实现一个应用时,软件开发人员需要尽量使用云所提供的一系列较为先进的特性来提高应用的开发及部署效率,并使得应
阅读全文
摘要:在前一篇文章中,我们已经对Enterprise Integration Pattern中所包含的各个组成进行了简单地介绍。限于篇幅(20页Word以内),我并没有深入地讨论各个组成。但是如果要真正地按照Enterprise Integration Pattern搭建一个系统,仅仅是了解它们实际上还差
阅读全文
摘要:近些年来,越来越多的Web应用正在逐渐向大型化的方向发展。它们通常都会包含一系列相互协作的子服务。在开发过程中,如何让这些子服务协同工作常常是软件开发人员所最为头疼的问题,如各个子服务之间的数据表示不一致,处理并发的能力不同,进行沟通的网络不稳定等。为了解决这些问题,世界各地的优秀程序员提出了一系列
阅读全文
摘要:在编写一个应用时,我们常常考虑的是该应用应该如何实现特定的业务逻辑。但是在逐渐发展出越来越多的用户后,这些应用常常会暴露出一系列问题,如不容易增大容量,容错性差等等。这常常会导致这些应用在市场的拓展过程中无法快速地响应用户的需求,并最终失去商业上的先机。 通常情况下,我们将应用所具有的用来避免...
阅读全文
摘要:在Web服务开发中,服务端缓存是服务实现中所常常采用的一种提高服务性能的方法。其通过记录某部分计算结果来尝试避免再次执行得到该结果所需要的复杂计算,从而提高了服务的运行效率。 除了能够提高服务的运行效率之外,服务端缓存还常常用来提高服务的扩展性。因此一些大规模的Web应用,如Facebook,...
阅读全文
摘要:一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则。 在您将看到的这一篇文章中,我们将对REST,尤其是基于HTTP的REST服务进行详细地介绍。...
阅读全文
摘要:在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书《Building Microservices》。该书描述了如何按照Microservice架构模式设计及搭建一个具有良好扩展性并可持续开发的系统。除此之外,该书还将基于该模式的系统...
阅读全文
摘要:现在请跟我做:在您的浏览器的地址栏中输入www.yhd.com并敲击回车。在网站内容全部加载完毕后,按F12打开浏览器的调试窗口。当切换到Sources页时,您会发现您当前所看到的一号店的页面是从多个不同的域中得到的: 或许有些读者会感到奇怪:在之前自己 写网页的时候就曾经尝试访问非当前域中的...
阅读全文
摘要:在之前的一篇文章《放好你的密码 - 从芝麻金融被攻破说起》中,一位读者在评论中提出了“如果整个过程速度比较慢登陆会有问题”这样一条评论。虽然说我对文章的正确性很有把握,但也仍需要仔细思考是否自己哪里没有说清楚。在这个思考过程中,我想起了一个非常值得一说的话题,那就是负载平衡。 在那篇文章中我们...
阅读全文
摘要:在之前的一篇文章中,我们已经介绍了如何为一个应用添加对CAS协议的支持,进而使得我们的应用可以与所有基于CAS协议的单点登陆服务通讯。但是现在的单点登陆服务实际上并不全是通过实现CAS协议来完成的。例如Google就使用OAuth协议来管理它的帐户。 相较于CAS协议,OAuth协议不仅仅可以...
阅读全文
摘要:相信大家对单点登陆(SSO,Single Sign On)这个名词并不感到陌生吧?简单地说,单点登陆允许多个应用使用同一个登陆服务。一旦一个用户登陆了一个支持单点登陆的应用,那么在进入其它使用同一单点登陆服务的应用时就不再需要重新登陆了。而CAS协议则正是各单点登陆产品所需要实现的协议,其全称为...
阅读全文
摘要:在一个Web服务的实现中,我们常常需要访问数据库,并将从数据库中所取得的数据显示在用户页面中。这样做的一个问题是:用于在用户页面上展示的数据和从数据库中取得的数据常常具有较大区别。在这种情况下,我们常常需要向服务端发送多个请求才能将用于在页面中展示的数据凑齐。 一个解决该问题的方法就是根据不同...
阅读全文
摘要:昨天午休时,新浪上的一条新闻引起了我的注意。新闻中说,一家叫芝麻金融的P2P网站数据库泄露,并且数据库中所记录的密码仅经过一次哈希。虽然说我不是攻破它的白帽,更没有仔细地研究这些泄露的数据,但如果报告所言不虚,其中所提及的各个问题实际上非常严重。因此我觉得有必要对如何在系统中保存密码以及为什么要...
阅读全文