一:什么是spring Cloud
Spring Cloud是一系列框架的有序集合。由一些列组件(框架)组成,如服务发现注册配置中心Eureka、消息总线springCloudBus、断路器Hystrix、路由网关zuul、分布式配置中心springCloudConfig等。Spring Cloud是基于spring Boot,所以在学习Spring Cloud之前要先掌握Spring Boot。
二:什么是微服务
微服务最早由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中。顾名思义“微”就是小,微服务也就是小的服务,较传统项目不同,传统项目往往是一个大的系统或者多个模块在一个服务中,任何一个模块更新都会影响其他模块,微服务不同,每个模块使用一个微服务,任何模块改动不会影响其他业务。较soa项目相比,微服务扩展性能高,维护成本更低,所以微服务更适合中小型公司。
三:认识服务注册中心Eureka
Eureka服务注册和发现,Eureka是基于REST(Representational State Transfer,代表性状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。Register:服务注册 ,Renew:服务续约 ,Fetch Registries:获取注册列表信息 ,Cancel:服务下线 ,Eviction 服务剔除
用过Zookeeperd的人再回来学习Eureka的时候,会发现Eureka和Zookeeper很像。那为什么我们会放弃Zookeeper选择Eureka呢?CAP是Consistency一致性、Availablity可用性和Partition Tolerance分区容错性的缩写。一般的分布式系统最多满足其中两条。Zookeeper满足的事CP,Eureka满足的是AP,当ZK有一个Leader(领导者),当这个领导者挂了的时候会通过Paxos(ZAB)算法选举出一个新的Leader,但是当出现网络或者硬件等因素的时候,选举速度会变慢,如果此时客户端请求过来,会一直等到选举出新的Leader并且同步信息到Followers后才会响应信息给客户端,这虽然保证了数据的一致性,但是可用性极差,而Eureka没有Leader的概念,每个服务单独运行的,虽然当网络出现问题时,当宕机的服务器重新恢复后,Eureka会再次将其纳入到服务器集群管理之中,虽然不能保证数据的一致性,但是可用性极高,相对现在大数据时代,在高并发下,可用性显然比一致性更重要。
四:创建Eureka Server项目
1 首先创建一个maven工程。
pom.xml
Instances currently registered with Eureka下显示注册实例
五创建服务提供者
1 创建maven项目
pom.xml
2 创建一个Eureka client 需要使用@EnableEurekaClient注解。
3 在配置文件中配置Eureka server 地址等信息
4 启动后,会在Eureka server 页面看到 service-hi信息