spring cloud 与 微服务
微服务与单体应用:
单体应用 一个归档包(war包)包含所有功能。 将前后端包装在一起,不适合解耦 扩展,难于部署;微服务架构风格是一个单一程序开发为一组小型服务的方法,单个服务独立开发,部署,运维,服务之间使用http等轻量级通信机制调用,易于扩展开发,部署,方便启动等。
spring cloud:
包含配置管理,服务治理、断路器、智能路由,微代理,控制总线,全局锁,决策选择,分布式回话,集群状态管理对等。
eureka做服务注册与发现
eureka可以用于做服务注册中心,可以做服务注册,服务发现
服务注册:将各个服务的信息注册到服务服务注册中心,包括服务id,主机,端口号,通信协议等信息,不再依赖静态配置,注册中心按照服务名分类组织服务清单。注册中心会根据心跳的方式去检测清单中的服务是否可用,并更新服务信息,剔除不可用的服务,排除故障服务等。
服务发现:各个服务之间进行服务调用时候,会根据服务名,而不是具体的实例地址信息,去服务注册中心的服务清单中获取所有服务实例位置,实现对具体服务的访问。
服务注册中心搭建
maven依赖
<dependencies>
<!--添加Eureka服务器端依赖-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
</dependencies>
@EnableEurekaServer
@SpringBootApplication
public class Application{
main()...
}
启动服务,java -jar --server.port=9991,访问localhost/9991 可以查看服务清单
注册服务提供者
maven配置同上,启动类如下
@EnableDiscoveryClient
@SpringBootApplication
public class Hellp-server{
main()...
}
配置application.properties
application.name=hello-server
# 指定配置中心
application.client.serviceurl.defaultZone=http://locahost:9991/eureka
启动 java -jar hello-server.jar
刷新前面eureka配置中心服务清单: 会增加hello-server服务。
服务注册中心高可用代建:
application.properties配置,两个服务注册中心相互配置指定对方为配置中心。
---------------------
Ribbon实现客户端负载均衡
Feign声明式rest调用
Hystrix微服务容错机制
Zuul微服务网关
Spring cloud config 统一管理微服务配置
https://blog.csdn.net/lileLife/article/details/84871773
spring cloud bus 消息总线
https://blog.csdn.net/lileLife/article/details/84877300
Spring cloud sleuth 微服务跟踪