SpringCloud入门——(一)目录篇

目前是微服务的天下,我们来搭建自己的微服务系统从而学习及应用。

Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代理,控制总线)。分布式系统的协调导致了样板模式, 使用Spring Cloud开发人员可以快速地支持实现这些模式的服务和应用程序。他们将在任何分布式环境中运行良好,包括开发人员自己的笔记本电脑,裸机数据中心,以及Cloud Foundry等托管平台。

官网

我们将从:
Eureka (服务注册与发现)
Spring Cloud Config+Spring Cloud Bus (微服务配置中心+消息总线,实现配置热更新)
Hystrix (熔断,服务降级)
Zuul (路由)

Spring Cloud Admin (微服务监控)
进阶:
Spring Cloud Stream (数据流操作开发包,封装了与Redis,Rabbit、Kafka等发送接收消息。)
Spring Cloud Data Flow (大数据操作工具,作为Spring XD的替代产品,它是一个混合计算模型,结合了流数据与批量数据的处理方式。)
原理及面试题总结。

在进入微服务世界之前我们要明白,传统架构与微服务的区别。
单体服务
单体服务通常由展示层+业务层+持久层组成
优点:
资源共享方便,运行部署测试相对简单(一个应用肯定比多个应用简单)
缺点:
业务臃肿,扩展性差。
维护成本高 (代码维护成本)
需求变更困难

解决对策:1、拆分 2、解耦 3、透明 4、独立 5、分层。

拆分:对应用进行水平和垂直拆分,例如商品中心、计费中心、订单中心等。
解耦:通过服务化和订阅、发布机制对应用调用关系解耦,支持服务的自动注册和发现
透明:通过服务注册中心管理服务的发布和消费、调用关系
独立:服务可以独立打包、发布、部署、启停、扩容和升级,核心服务独立集群部署
分层:梳理和抽取核心应用、公共应用,作为独立的服务下沉到核心和公共能力层,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求

微服务
优点:
1 易于开发和维护:一个微服务只会关注一个特定的业务功能,所以业务清晰、代码量较少。开发和维护单个微服务相对简单。
2 单个微服务启动较快
3 局部修改容易部署:单体应用只要有修改,就得重新部署整个应用。微服务解决了这样的问题。一般来说,对某个微服务进行修改,只需要重新部署这个服务即可。
4 技术栈不受限制:在微服务架构中,可以结合项目业务及团队的特点,合理的选择技术栈。
5 按需伸缩:可根据需求,实现细粒度的扩展。
缺点:
1 运维要求高:更多的服务意味着要投入更多的运维。
2 分布式固有的复杂性:使用微服务构建的是分布式系统。对于一个分布式系统,系统容错、网络延迟、分布式事务等都会带来巨大的问题。
3 接口调整成本高:微服务之间通过接口进行通信。如果修改某一个微服务的API,可能所有用到这个接口的微服务都需要进行调整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章