一、springCloud概念
-
SpringCloud,基于springboot提供了一套微服务解决方案,包括服务注册,配置中心,全链路监控,服务网关,负载均衡,熔断器等组件,除了基于NetFlix的开源组件做高度抽象封装之外,还有一些选型中立的开源组件。
-
SpringCloud利用springboot的开发便利性巧妙的简化了分布式系统基础设施的开发,springcloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理、服务发现、断路器、路由、为代理、事件总线、全局锁、决策竞选、分布式会话等等,它们都可以利用springboot的开发风格做到一键启动和部署。
-
SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud关注全局的服务治理框架。
二、SpingCloud与Dubbo的区别
-
RPC:客户端向服务器端发送请求,由服务器相应处理传回结果的方法被称为RPC(远程调用),编程人员在编写页面的代码时需要透彻的理解各个函数的调用方法,以及相互之间的逻辑关系,这一系列的函数的理解都给编程增添了复杂度.
REST:下载服务器端的当前状态,修改之后将最终用户所期待的状态发送给服务器,服务器按照客户的期待进行修改。而不同于RPC的也就是响应函数没有那么多的,复杂的逻辑关系,函数也减少了很多,只是get和post两个。从而给服务器减少了工作量而且在逻辑上也是符合的。表面上看来REST比RPC是要先进的,但是REST的缺点在于,这种只有get和post的逻辑并不是永远有效的,并不是对一切问题都是万能的。 -
最大的区别:SpringCloud抛弃了Dubbo的RPC通信,采用的是基于HTTP的REST方式。严格来说两种方式各有优劣。虽然从一定程度上来说,后者牺牲了服务调用的性能,但是也避免了上面提到的原声RPC带来的问题。而且REST相比RPC更为灵活,服务提供方和调用方的依赖只靠一纸契约,不存在代码级别的强依赖,这在强调快速演化的微服务环境下,显得更加合适。
三、Eureka
eureka服务jar包
<!--eureka-server服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
@EnableEurekaServer
微服务jar包
<!-- 将微服务provider侧注册进eureka -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
启动类需要注解
@EnableEurekaClient //本服务启动后会自动注册进eureka服务中
<