springcloud入门 基本组件认识

注册中心:RPC框架核心,用来管控治理服务。常用Eureka,Consul,Zookeeper等。

CAP定理 

C数据一致性  A服务可用性  P服务对网络分区故障的容错性

Eureka是AP原则。Consul为AC原则。Zookeeper为CP原则

 

配置中心:作为分布式配置中心,所有全局用的值放在配置文件。可支持本地,git,svn等。引入配置中心最理想的操作,修改配置,不用重启服务。服务端跟客户端都能马上更新到最新的配置信息。类似的开源框架Smconf,Apollo.Disconf

声明式客户端:Feign。调用web服务的工具。类似于RestTemplate。原生的feign是不支持注解,springcloud集成通过注解的方式可以更加方便的调用服务。

熔断器:Hystrix。作用类似于保险丝。负载过大时自动断掉。防止雪崩整个系统挂掉。用于高并发场景。主要思想是通过资源隔离。一般采用线程池隔离机制。对不同服务开多个线程池。同时可以整合Dashboard进行资源监控。

客户端负载均衡Ribbon:类似于nginx的请求分发,简单实现客户端负载均衡。有多种负载机制。默认为轮询机制。

服务网关zuul:用来实现请求路由,拦截请求。动态限流。服务降级。

调用链路追踪Sleuth:结合Zipkin直接的可以对调用链进行查看。默认储存方式在内存中。数据量过大时可以引入Mysql数据库。调用可换成异步调用,采用消息中间件RabbitMQ等。。当收集日志信息时,可结合ELK(ElasticSrerh  , Logstash ,kibana)日志分析引擎。

监控数据展示框架spingboot Admin:Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具。他可以:在列表中浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level。

消息总线Bus

拓展:

微服务网络安全:JWT. 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密。


服务的API文档管理:Swagger. Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。

附上图两张,自行了解下

 

springcloud入门 基本组件认识

微服务整体架构 

springcloud入门 基本组件认识

 

微服务储存(Mysql,Oracle),缓存(redis,mogonDB),及任务调度(ElasticJob),事务统一(sharding JDBC