-
SpringCloud
SpringCloud:是一个服务治理平台,提供了一些服务框架。包含了:服务注册与发现、配置中心、消息中心 、负载均衡、数据监控等等。
Spring Cloud 是一个微服务框架,相比 Dubbo 等 RPC 框架, Spring Cloud 提供的全套的分布式系统解决方案。
Spring Cloud 对微服务基础框架 Netflix 的多个开源组件进行了封装,同时又实现了和云端平台以及和 Spring Boot 开发框架的集成。
Spring Cloud 为微服务架构开发涉及的 配置管理, , 服务治理, , 熔断机制, , 智能路由 ,微代理 , 控制总线 ,性 一次性 token, , 全局一致性锁 ,leader 选举 ,式 分布式 session , 集群状态管理等操作提供了一种简单的开发方式。
Spring Cloud 为开发者提供了快速构建 分布式系统的工具,开发者可以快速的启动服务或构建应用、同时能够快速和云平台资源进行对接。
Spring Cloud Netflix :
Netflix Eureka :一个基于 rest 服务的服务治理组件,包括服务注册中心 、 服务注册与服务发现机制的实现 , 实现了云端负载均衡和中间层服务器的故障转移。
Netflix Hystrix: : 容错管理工具, , 实现断路器模式, , 通过控制服务的节点,从而对延迟和故障提供更强大的容错能力。
Netflix Ribbon :客户端负载均衡的服务调用组件。
Netflix Feign :基于 Ribbon 和 和 Hystrix 的声明式服务调用组件。
Netflix Zuul :微服务网关,提供动态路由,访问过滤等服务。
Netflix Archaius :配置管理 API ,包含一系列配置管理 API ,提供动态类型化属性、线程安全配置操作、轮询框架、回调机制等功能。
Spring Cloud for Cloud Foundry : 通 过 Oauth2 协 议 绑 定 服 务 到CloudFoundry ,CloudFoundry 是 是 VMware 推出的开源 PaaS 云平台。
Spring Cloud Sleuth: 日志收集工具包, ,了 封装了 Dapper,Zipkin 和 和 HTrace
操作。
Spring Cloud Data Flow : 大数据操作工具,通过命令行方式操作数据流。
Spring Cloud Security : 安全工具包,为你的应用程序添加安全控制,主要指 是指 OAuth2。
Spring Cloud Consul : 封装了 Consul 操作,consul 是一个服务发现与配与 置工具,与 Docker 。
Spring Cloud Zookeeper : 操 作 Zookeeper 的 工 具 包 , 用 于 使 用zookeeper 方式的服务注册和发现。
Spring Cloud Stream : 数据流操作开发包,封装了与 Redis,Rabbit 、Kafka 等发送接收消息。
Spring Cloud CLI: 基于 Spring Boot CLI ,可以让你以命令行方式快速建立云组件。
- 全局配置文件application.properties
server.port=${random.int[1024,9999]}
hello=bjsxt
num=${random.int}
msg=Hello World ${hello} ${num}
=====================测试=========================
@Value("${msg}")
private String msg;
- logback.xml
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
<property name="LOG_HOME" value="${catalina.base}/logs/" />
<!-- 控制台输出 -->
<appender name="Stdout" class="ch.qos.logback.core.ConsoleAppender">
<!-- 日志输出编码 -->
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
</appender>
<!-- 按照每天生成日志文件 -->
<appender name="RollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${LOG_HOME}/server.%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
</pattern>
</layout>
<!--日志文件最大的大小-->
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<MaxFileSize>10MB</MaxFileSize>
</triggeringPolicy>
</appender>
<!-- 日志输出级别 -->
<root level="info">
<appender-ref ref="Stdout" />
<appender-ref ref="RollingFile" />
</root>
<!--日志异步到数据库 -->
<!-- <appender name="DB" class="ch.qos.logback.classic.db.DBAppender">
日志异步到数据库
<connectionSource class="ch.qos.logback.core.db.DriverManagerConnectionSource">
连接池
<dataSource class="com.mchange.v2.c3p0.ComboPooledDataSource">
<driverClass>com.mysql.jdbc.Driver</driverClass>
<url>jdbc:mysql://127.0.0.1:3306/databaseName</url>
<user>root</user>
<password>root</password>
</dataSource>
</connectionSource>
</appender> -->
</configuration>
- Spring Boot 件 的配置文件 - 多环境配置
profile:代表的就是一个环境变量
语法结构:application-{profile}.properties
application-dev.properties 开发环境
application-test.properteis 测试环境
application-prod.properteis 生产环境
住配置文件中
spring.profiles.active={profile} 启用哪个配置文件