本篇文章为大家展示了微服务及Spring Cloud的示例分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
微服务近两年非常火,虽然微服务应用架构及技术的探索和实践早在2010年以前就开始,但是真正落地并得到有效推广也就在最近两年,其中主要得益于以docker等容器技术及PaaS平台技术的成熟和商业应用。
什么是微服务架构
微服务一词来源于Martin Fowler的一篇博文,简单的说,微服务是系统架构上的一种设计风格,它的核心是将一个独立的系统拆分为多个细分的小型服务,同时这些服务独立的运行在各自独立的进程或者容器中,服务之间通过RESTful风格的API进行数据的交互通信。被拆分的服务都围绕着系统同某个模块或者功能集合进行构建,并维护着自身的数据存储、业务开发、持续集成与交付。
传统的应用系统架构中,一般出于企业组织架构的限制,架构师往往会根据业务部门的业务条线构建单独的项目。那么随着业务的发展,业务需求不断增加,项目的体量慢慢变得臃肿。同时近年移动互联网快速发展,单体项目对多终端的服务支持慢慢变得力不从心。从持续集成与交付的角度看,随着单体项目的臃肿,一些微小的程序调整,对整体项目构建和部署来说将是一场灾难。也正是基于此,微服务架构诞生了并被大家关注和推崇,甚至一些人达到狂热的地步,非“微”不欢。
架构以及技术最终还是要回归到实际价值本身,一味的追求热点架构技术并不意味着项目各项成本的降低,适用才是架构的出发点。如何选择需要首先从架构技术本身的优缺点来判断。
优点:
1. 拆解了单体服务的复杂度,易于业务的理解、开发及持续交付。
2. 每个服务独立部署,非常适合灰度发布及弹性扩容。
3. 没有技术局限,服务的实现技术可根据实际情况选择最优。
4. 统一的服务API管理,服务开箱即用,有利于新产品的快速迭代。
5. 结合PaaS平台完美的实现DevOps。
不足:
1. 大量的独立服务进程,增加了测试、运维和管理的难度。
2. 分布式架构固有复杂度,系统容错、网络延迟、分布式事务、异步消息等。
3. 基础建设成本较高,PaaS平台的建设、持续交付及服务监控等建设成本高。
尽管微服务架构有很多缺点和问题,但是其实现的敏捷开发和自动化部署等优点依然被广泛推崇,所以解决这些缺点也成为大拿们的努力的目标。
基础要素
服务网关:通过路由配置及注册中心向外统一通过API服务,同时提供服务负载。
服务注册中心:主要管理服务的发布与订阅。
服务提供者:API服务的具体实现及提供者。
Spring Cloud是微服务架构的一组生态化实现,是基于Spring Boot实现的微服务架构开发工具,它为微服务架构中涉及的配置管理、服务治理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等操作提供了一套简单的开发方式。
Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,可以使用它实现应用配置的外部化存储,并支持客户端配置信息刷新、加密/解密配置内容等。
Spring Cloud Netflix:核心组件,对多个Netflix OSS开源套件进行整合。
1、Eureka:服务治理组件,包含服务注册中心、服务注册于发现机制的实现。
2、Hystrix:容错管理组件,实现断路器模式,帮助服务依赖中出现的延迟和为故 障提供强大的容错能力。
3、Ribbon:客户端负载策略的服务调用组件。
4、Feign: 基于Ribbon和Hystrix的声明式服务调用组件。
5、Zuul: 网关组件,提供智能路由、访问过滤等功能。
6、Archaius:外部化配置组件。
Spring Cloud Bus:事件、消息总线,用于传播集群中的状态变化或事件、以出发后须的处理,比如用来动态刷新配置等。
Spring Cloud Cli:用于在Groovy中快速创建Spring Cloud应用的Spring Boot CLI插件。
...
上述内容就是微服务及Spring Cloud的示例分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。