spring-cloud源码使⽤(⼀)
spring-cloud 基本⽤法
1 分布式微服务架构
spring-cloud 是⼀个分布式微服务架构,类似这样的架构还有阿⾥的dubbo。在分析eureka之前,先了解⼀下分布式微服务架构。⼤型系统架构中,会拆分多个⼦系统。简单来说,这些⼦系统有两个功能:提供接⼝、调⽤接⼝,在微服务架构中,将每⼀个这样的⼦系统称为⼀个“微服务”;每⼀个服务会部署多个实例(就是多台机器,且会动态扩容,IP不固定);这种情况下,应需要对服务进⾏管理,那么就需要似类eureka这样的注册中⼼对服务进⾏管理。
2 注册中⼼服务的依赖和配置信息
erureka 依赖
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-parent</artifactId>
<version>Dalston.SR1</version>
<relativePath />
</parent>
<groupId>com.dongnaoedu.springcloud</groupId>
<artifactId>eureka-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- spring-boot-starter-actuator 管理⼯具/web 查看堆栈,动态刷新配置 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- cloud eureka组件注册中⼼(已集成了web容器,eureka-client) -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>
<!-- ⽇志格式化组件 -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
springcloud难学吗eureka 配置
# 上下⽂初始化加载
info:
name: Eureka server
contact: 注册中⼼
management:
security:
enabled: false
spring:
profiles:
active: dev
#profile数组 ---
---
spring:
profiles: dev
server:
port: 8761
eureka:
#作为客户端(相当于⼀个普通服务端),⽤于注册到注册中⼼的客户端
client:
# 是否注册到eurekaserver
registerWithEureka: false
# 是否拉注册取信息
fetchRegistry: false
# eureka server地址
serviceUrl:
# 指定连接到的注册中⼼
defaultZone: 127.0.0.1:8761/eureka/
#这⾥的服务指的是作为注册中⼼服务,⽤于接收其它普通服务注册进来的
#上⾯的client 就是⽤于作为⼀个普通服务连接注册中的客户端
server:
waitTimeInMsWhenSyncEmpty: 0
# false 关闭⾃我保护,不管如何都要剔除⼼跳检测异常的服务
enableSelfPreservation: false
#服务踢除时间(默认60000ms)
eviction-interval-timer-in-ms: 60000
#eureka 集刷新间隔
peer-eureka-nodes-update-interval-ms: 10000
#当前服务实例信息(这⾥相于看作⼀个普通服务)
instance:
hostname: eureka1
#实例⼼跳时间(默认30s)
lease-renewal-interval-in-seconds: 30
#超过上次⼼跳30s 认为宕机(默认90s)
lease-expiration-duration-in-seconds: 30
---
spring:
profiles: prod2
server:
port: 8763
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: ${eureka_serviceUrl:127.0.0.1:8761/eureka/}
server:
waitTimeInMsWhenSyncEmpty: 0
# false 关闭⾃我保护,不管如何都要剔除⼼跳检测异常的服务
enableSelfPreservation: false
# 服务剔除任务执⾏周期
evictionIntervalTimerInMs: 60000
# 服务端缓存最长时间
responseCacheUpdateIntervalMs: 30000
instance:
hostname: eureka2
普通服务配置信息
server:
port: 9004
eureka:
#配置连接eureka注册中⼼的客户端,⽤于注册当前服务,拉取服务列表,发布服务⼼跳请求到eureka注册中⼼
client:
# 是否
registerWithEureka: true
fetchRegistry: true
# 服务列表缓存更新时间
registryFetchIntervalSeconds: 10
serviceUrl:
defaultZone: ${eureka_serviceUrl:127.0.0.1:8761/eureka/}
#普通服务实例信息配置
instance:
# ⼼跳间隔
leaseRenewalIntervalInSeconds: 10
hostname: ${HOSTNAME:localhost}
spring:
application:
name: uaa-interface
cloud:
client:
hostname: ${HOSTNAME:localhost}
#访问配置中⼼的配置信息
config:
discovery:
# 使⽤eureka发现配置中⼼服务
enabled: true
# 配置中⼼服务名称
serviceId: config-server
# 登录⽤户名和密码
username: ${config_server_security_name:tony}
password: ${configserver_security_password:12345678}
# 覆盖本地配置
overrideNone: false
failFast: true
启动代码
@SpringBootApplication
@EnableEurekaServer//开启eureka服务
public class EurekaApp {
final static Logger logger = Logger(EurekaApp.class);
public static void main(String[] args) {
ConfigurableApplicationContext applicationContext = new SpringApplicationBuilder(EurekaApp.class).web(true)                .run(args);
logger.debug("eureka已经启动,当前host:{}", Environment().getProperty("HOSTNAME"));
}
}
启动结页⾯信息
3 普通服务的依赖配置信息
这⾥⽤⼀个服务中⼼demo来分析 依赖

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。