一、微服务构建:Spring Boot
多环境配置
对于多环境的配置,各种工具或框架的基本思路是一致的,通过配置多份不同环境的配置文件,再通过打包命令指定需要打包的内容之后进行区分打包,Spring Boot也不例外,或者说更加简单。
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:
application-dev.properties:开发环境
application-test.properties:测试环境
application-prod.properties:生产环境
至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
如:spring.profiles.active=test 就会加载application-test.properties配置文件内容
放码过来
参数注入及加载顺序
自定义参数可以放在application.properties中,Spring Bean中通过@Value("${参数名}")注解 给参数注入赋值
application.properties中支持参数拼接及引用
testparam=aabc
combineparam=comb${testparam}
Spring Bean获取的combineparam=combaabc
参数加载优先级(从高到低)
1.命令行
2.环境变量
3.Jar包外类路径上application_*.properties
4.Jar包内application_*.properties
监控与管理
分布式系统下的监控难题?传统运维方式的瓶颈?(应用增大,监控指标及规则繁琐)
初识actuator
加入spring-boot-starter-actuator支持,会自动为SpringBoot应用提供一系列用于监控的端点。(同时当应用服务于spring cloud架构下时,进一步做了很多扩展)
actuator端点
Endpoint二、Spring Cloud版本说明
Spring Boot版本分布 Spring Cloud版本分布三、服务治理
服务治理框架:阿里巴巴Dubbo, Apache Zookeeper, Apache Consul, Netflix Eureka [jʊˈrikə]
组件:服务注册中心、服务注册与发现。
why netflix ?搭建服务注册中心
starter: spring-cloud-starter-eureka-server
@EnableEurekaServer开启注册服务
spring.application.name=eureka-server
server.port=1001
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
eureka.instance.preferIpAddress=true
注册服务提供者
starter : spring-cloud-starter-eureka
@EnableDiscoveryClient开启服务发现
服务注册及发现
彩蛋。 直接代码
高可用注册中心
eureka server相互注册即可实现高可用。
eureka.client.serviceUrl.defaultZone=http://localhost:1012/eureka/
网友评论