简介
微服务的发展史
微服务倡导将复杂的单体应用拆分为若干个功能简单、松耦合的服务,这样可以降低开发难度、增强扩展性、便于敏捷开发。当前被越来越多的开发者推崇,很多互联网行业巨头、开源社区等都开始了微服务的讨论和实践。Hailo有160个不同服务构成,NetFlix有大约600个服务。国内方面,阿里巴巴、腾讯、360、京东、58同城等很多互联网公司都进行了微服务化实践。当前微服务的开发框架也非常多,比较著名的有Dubbo、SpringCloud、thrift 、grpc等。
微服务架构简介
微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。
系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。
每个微服务内聚不同的业务模块。
讲师介绍
花名:诸葛老师
诸葛老师
诸葛老师互联网工作近十年,曾就职于唯品会、京东电商等多家互联网公司,历任Java架构师、研发经理等职位。
参与并主导过千万级并发电商网站研发,多次参与电商大促活动技术保障,在分布式与高并发以及微服务相关技术领域有相当丰富经验。
以下内容根据诸葛老师公开课“Spring Cloud高可用微服务架构实战”视屏编写而成。附图一张以此为证。
接下来进入文章正题
基于Eureka的微服务项目实战
首先附图一张一般大型电商网站的架构模型图,大家自行查看,不懂之处直接百度,或者私信。
Eureka
是Netflix开源的服务注册组件,本身是一个基于REST的服务。它包含Server和Client两部分。Spring Cloud将它集成在子项目Spring Cloud Netflix中,从而实现微服务的注册与发现
为什么需要Eureka
在AWS Cloud,由于其天生的特性,服务器经常变换。我们知道每个EC2挂掉后,重启又是一个新的。不像传统的固定IP,AWS的服务器是变化的。因此需要更复杂的负载均衡方案来动态注册和注销。由于AWS并没有提供中间层负载均衡解决方案,Eureka填补了这个领域的巨大空白。
简单来说就是:Eureka负责管理、记录服务提供者的信息。服务调用者无需自己寻找服务,而是把自己的需求告诉Eureka,然后Eureka会把符合你需求的服务告诉你。同时,服务提供方与Eureka之间通过“心跳”机制进行监控,当某个服务提供方出现问题,Eureka自然会把它从服务列表中剔除。这就实现了服务的自动注册、发现、状态监控。
附图一张
Eureka与Zookeeper区别
-
CAP理论
-
开发大规模的分布式系统时会遇到三个特性:一致性(Consistency)、可用性(Availability)、分区容错(Partition-tolerance),而一个分布式系统最多只能满足其中的两项。
-
Eureka?AP
-
Zookeeper?CP
关于Zookeeper
简单概括一下
ZooKeeper主要服务于分布式系统,可以用ZooKeeper来做:统一配置管理、统一命名服务、分布式锁、集群管理。
使用分布式系统就无法避免对节点管理的问题(需要实时感知节点的状态、对节点进行统一管理等等),而由于这些问题处理起来可能相对麻烦和提高了系统的复杂性,ZooKeeper作为一个能够通用解决这些问题的中间件就应运而生了。
微服务路线图仅供学习用途
如何去学习
文章到此就要结束了,最后给各位需要学习的朋友送个福利。(该怎么去学习掌握各个技能)
并发
性能调优
分布式
以上资料关注公众号:L谈JAVA 免费领取 已领取的记得回来给作者点个赞哦