谈谈京东的微服务框架
最近由于在实习期间接触到了京东的自研服务框架JSF,目前我写的一些新功能里面调用的下游接口就是JSF提供的。现有有很多高效的服务框架,如阿里巴巴的Dubbo配合Apache的ZooKeeper,那么为什么京东却自研了JSF服务框架呢?于是看了看京东的JSF的演化历史,不得不感叹好的架构果然不是一朝一夕就能实现的,都是逐步演变而来的。
最近由于在实习期间接触到了京东的自研服务框架JSF,目前我写的一些新功能里面调用的下游接口就是JSF提供的。现有有很多高效的服务框架,如阿里巴巴的Dubbo配合Apache的ZooKeeper,那么为什么京东却自研了JSF服务框架呢?于是看了看京东的JSF的演化历史,不得不感叹好的架构果然不是一朝一夕就能实现的,都是逐步演变而来的。
本篇文章主要介绍了RabbitMQ这种消息队列,从消息队列的概念、应用场景、安装方式到它的核心概念、五种工作模式。在安装的时候推荐使用Docker方式进行安装。重点需要理解的就是消息队列的应用场景、核心概念和RabbitMQ的五种工作模式,其中用的比较多的就是发布订阅模式、主题模式。
在之前的文章中,我讲述了统一配置中心(服务端和客户端)的基本使用,并且演示了从配置Git仓库到拉取配置的整个流程,请见 《统一配置中心》 这篇博客。在该博客中我们说到了,统一配置中心还有个好处就是动态更新配置文件,而无需手动重启服务,但是并没有演示或者实现。本文将记述如何通过Spring Cloud Bus自动刷新配置,以及自动刷新的原理。
我们之前做单体应用的时候是直接把配置写在application.yml中,但是如果是采用微服务架构的模式进行开发,这样的方式会存在哪些问题呢?首先维护困难、安全因素、更新配置时项目需要重启等等。针对这些问题,本文主要讲述的就是Spring cloud config这个组件,使用该组件可以很好的处理如下问题。
本篇文章主要是记录了Feign的使用方式,并且重点讲述了使用Maven构建多模块项目,从而更好地适应微服务架构的软件开发模式。在服务调用的场景中,我们经常调用基于HTTP协议的服务,Feign封装了Http调用流程,更适合面向接口化的变成习惯。Feign底层使用了Ribbon作为负载均衡的客户端,而有关Ribbon的负载均衡的实现请见 《RestTemplate与负载均衡器》 。
本文主要是介绍SpringCloud构建微服务系统的Ribbon负载均衡器和网络请求框架RestTemplate,另外将会分析负载均衡器的源码,通过实例证明如何通过Ribbon和RestTemplate相结合实现负载均衡。现在假设有一个分布式系统,该系统由在不同计算机上运行的许多服务组成。当用户数量很大时,通常会为服务创建多个副本。每个副本都在另一台计算机上运行,此时有助于在服务器之间平均分配传入流量。
微服务是当下非常热门的话题,微服务发展到现在,已经不再单单局限于微服务架构本身,还与容器化、DevOps等新的理念相结合,成为当前移动互联网时代最先进的业务架构解决方案,能更好地迎合移动互联网业务快速迭代的要求。 本篇文章中我主要探讨的是什么时候适合微服务改造,如何做服务拆分等问题。
我们经常看到DevOps这个词,那么DevOps究竟是什么呢?DevOps 是一种软件开发方法。它将持续开发、持续测试、持续集成、持续部署和持续监控贯穿于软件开发的整个生命周期。当前几乎所有的顶尖公司均采用了该方法,用以提高软件开发质量,并缩短软件开发生命周期。从而以达到每个公司对软件产品的期望,交付出客户最满意的产品。