Spring Cloud如何可用于微服务架构

简介

微服务的发展史

微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比较著名的有Dubbo、SpringCloud、thrift 、grpc等。

微服务架构简介

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。
系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。
每个微服务内聚不同的业务模块。

Spring Cloud如何可用于微服务架构_第1张图片

讲师介绍

花名:诸葛老师
Spring Cloud如何可用于微服务架构_第2张图片
诸葛老师
诸葛老师互联网工作近十年,曾就职于唯品会、京东电商等多家互联网公司,历任Java架构师、研发经理等职位。
参与并主导过千万级并发电商网站研发,多次参与电商大促活动技术保障,在分布式与高并发以及微服务相关技术领域有相当丰富经验。
以下内容根据诸葛老师公开课“Spring Cloud高可用微服务架构实战”视屏编写而成。附图一张以此为证。
Spring Cloud如何可用于微服务架构_第3张图片

接下来进入文章正题

基于Eureka的微服务项目实战

首先附图一张一般大型电商网站的架构模型图,大家自行查看,不懂之处直接百度,或者私信。
Spring Cloud如何可用于微服务架构_第4张图片
Eureka

是Netflix开源的服务注册组件,本身是一个基于REST的服务。它包含Server和Client两部分。Spring Cloud将它集成在子项目Spring Cloud Netflix中,从而实现微服务的注册与发现

为什么需要Eureka

在AWS Cloud,由于其天生的特性,服务器经常变换。我们知道每个EC2挂掉后,重启又是一个新的。不像传统的固定IP,AWS的服务器是变化的。因此需要更复杂的负载均衡方案来动态注册和注销。由于AWS并没有提供中间层负载均衡解决方案,Eureka填补了这个领域的巨大空白。

简单来说就是:Eureka负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eureka之间通过“心跳”机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。这就实现了服务的自动注册、发现、状态监控。
附图一张
Spring Cloud如何可用于微服务架构_第5张图片

Eureka与Zookeeper区别

  • CAP理论

  • 开发大规模的分布式系统时会遇到三个特性:一致性(Consistency)、可用性(Availability)、分区容错(Partition-tolerance),而一个分布式系统最多只能满足其中的两项。

  • Eureka?AP

  • Zookeeper?CP

关于Zookeeper

简单概括一下
ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。
使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了。
Spring Cloud如何可用于微服务架构_第6张图片
微服务路线图仅供学习用途

如何去学习

文章到此就要结束了,最后给各位需要学习的朋友送个福利。(该怎么去学习掌握各个技能)
并发

性能调优

分布式
Spring Cloud如何可用于微服务架构_第7张图片

以上资料关注公众号:L谈JAVA 免费领取 已领取的记得回来给作者点个赞哦

你可能感兴趣的:(java)