• 由Spring引发的小总结

    本文出自:【InTheWorld的博客】

    aa6f195de38c385d9e66185d2f9e9d48

    最近两年,微服务成为了后端最火的概念。Spring boot和Spring cloud也成为了微服务浪潮的有力推动者。以至于,多年来裹足不前的Java EE也将在今年推出新版本。个人拙见,微服务其实就是分布式服务端系统的一种实践方式。微服务的火爆也体现了后端技术的不断发展,开发者开始着眼于系统的扩展性、稳定性、可用性等等的多重指标,而不仅仅是为了实现目前的需求。

    后端技术博大精深,以我现在的水平很难全面地给出总结。所以在此,我从自己的一些实践感受出发,谈一些理解。当然,我会以Spring全家桶作为参考对象,因为Spring的生态圈相对比较全面。

    1. 重量级 VS 轻量级

    首先明确一下,这里的“重量”和“轻量”指的是对“细节标准”的实现程度。“细节标准”是区别于“标准的细节”。“细节标准”常常作用于“大标准”的子空间里。如果过度地支持这些细节标准,一方面有… 【查看更多】

  • ZooKeeper事务流程源码分析<1>

    本文出自:【InTheWorld的博客】

    ZooKeeper

    利用过年这几天的一些空余时间,把《从PAXOS到ZOOKEEPER分布式一致性原理与实践》看了一遍。对ZooKeeper有了一个大致的了解。ZooKeeper作为Chubby的开源实现,在当前的分布式生产环境中有着广泛的应用。使用ZooKeeper可以方便的实现Dynamic DNS、微服务架构中的服务路由以及为其他分布式系统提供支撑(如Kafka, HBase)。

    作为个人关于ZooKeeper的第一篇blog,我准备分析一下ZooKeeper的事务流程。事务处理是ZooKeeper的一大重要功能。在ZooKeeper事务流程实现中,所有的事务请求都需要从Leader Server协调完成。因此,从ZooKeeper的Leader Sever来分析事务流程更为简单。

    首先分析LeaderZooKeeperServer类,它是ZooKeeperServer的子类,一个该类型的实… 【查看更多】

  • SSL/TLS的理解与使用

    本文出自:【InTheWorld的博客】

    随着网络安全技术的发展,SSL(Secure Socket Layer)逐渐成为了一种广泛应用的技术。甚至我个人认为,SSL已经成为软件从业人员必须要理解的技术。回想起来,我为了学习SSL技术还是花了不少的时间。可惜应用的少,所以很多知识点都开始淡忘了。前几天,同事们在讨论SSL的问题,我没忍住就参合了进去,大致的讲了一下自己对SSL的一些理解,也讨论了一些相关问题。这些交流也算是简单复习了一下SSL方面的知识吧!期间也发现了自己对相关知识点有些生疏了,所以就准备写点关于SSL的问题。这篇算是个人第一篇关于网络安全的blog了。image

    关于历史发展的内容,我就不赘述了。还是直接上SSL的通信流程图了,上图展示了完整的SSL通信过程。下面结合上图解释一下SSL的整个流程。

    1. 发送的第一条消息为 ClientHello,其中包含了客户端所推荐的加密参数,
    【查看更多】
  • Varnish缓存服务器的使用

    本文出自:【InTheWorld的博客】varnishcache (1)

    我最早接触CDN的概念是看阿里“叔度”的分享,当时觉得CDN很有趣的。后来也看过一本移动研究院出的CDN书,但还是对CDN缺乏细致的了解。双十一的时候,趁着减价的时机,入手了一台阿里云的ECS服务器。这个blog的速度确实不敢恭维,所以昨天晚上开始着手给网站提提速。

    刚开始我打算用LuManager来实现,后来又觉得LuManager这种面板操作确实有悖于自己学习的目的。而且,阿里上的这台ECS内存有两个G,感觉做一个内存层面的cache还是可以的。所以最终还是决定使用先玩一玩Varnish。Varnish这个软件其实挺出名的。

    如果要说Varnish的原理,其实就是反向代理 + 内存缓存。大致的架构图如下图所示:

    5243fbf2b2119313f8f3d19667380cd791238d67

    我的web服务器是在西雅图,是一台相当低配的VPS,而反向代理服务器(即Varnish)【查看更多】