我爱编程

微服务框架

2018-04-13  本文已影响0人  EddieZhang

1:Spring Cloud

2:Spring Cloud的构建是基于Spring Boot实现。

3:问题,Spring Boot 打包成jar来部署,通过 java -jar的命令来直接启动一个标准的Web应用,为什么可以这样呢?

4:多环境配置

在SpringBoot中,多环境配置的文件名需满足application-{profile}.properties的格式,其中{profile}对应你的环境标识

至于哪个配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应配置文件中的{profile}的值。如spring.profiles.active=test就会加载application-test.properties配置文件的内容

上面的配置方式,是基于开发人员来配置的,但是到后期如果运维人员要来修改这个properties文件就显得复杂了,运维人员需要获取这个代码里面的properties文件来修改,显然这是不合理的。所以,就出现了很多将配置内容外部化的框架和工具,比如 Spring Cloud Config,百度的disconf等

4:监控与管理

Spring Boot 提供了一个特殊的依赖, spring-boot-starter-actuator,引入该模块能够自动为Spring Boot构建的应用提供一系列用于监控的端点。

引入actuator之后,模块中已经实现的原生端点,可以分为三大类

上面这些信息需要用到的时候再去查询,可以说这些是生成的一个静态报告,系统一旦启动这些信息就基本决定了。接下来,我们讨论另外一个度量标准

度量指标提供的是一些动态信息,比如内存使用情况,Http请求统计,外部资源指标等,这些信息对于我们监控微服务架构监控非常有意义。

http://localhost:8080/metrics : 该端点用来返回当前应用的各类重要度量指标, 比如内存信息,  线程信息,垃圾回收信息等。
http://localhost:8080/health

5:服务治理

服务治理 包括 服务注册 和 服务发现

注册中心
需要维护类似下面的一个服务清单。服务中心还需要以心跳的方式去监测清单中的服务是否可用,若不可用需要从服务中心剔除,达到排出故障服务的效果。


image.png

服务发现
由于在服务治理框架下运作,服务间的调用不再通过指定具体的示例地址来调用,而是通过服务名发起请求调用实现。服务调用方向注册中心请求,注册中心返回实例给调用方。

Spring Cloud Eureka,使用Netflix Eureka来实现服务注册于发现。包含了服务端和客户端。服务端和客户端都用java来写的。如果是其他语言,需要自己实现响应语言的客户端,比如我们项目中的golang。

Eureka 服务端,我们也称为服务注册中心。
Eureka客户端,主要处理服务的注册于发现。客户端通过注解和参数配置的方式,嵌入在客户端应用程序的代码中,在应用程序运行时,Eureka客户端向注册中心注册自身提供的服务并周期性的发送心跳来更新它的服务租约。同时,它也能从服务端查询当前注册的服务信息并把它们缓存到本地周期性的刷新服务状态。
上一篇 下一篇

猜你喜欢

热点阅读