SpringCloud微服务学习笔记HyStrix,DashBoard,Turbine,APIGetWay,Zuul

51 篇文章 0 订阅
7 篇文章 0 订阅

HyStrix

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>

启动了需要启动熔断

@SpringBootApplication
@EnableCircuitBreaker //启动熔断
public class HystrixApp {

	
	public static void main(String[] args) {
		SpringApplication.run(HystrixApp.class, args);
	}

}

feign和hystrix一起使用

启动类

@SpringBootApplication
@EnableEurekaClient
@EnableFeignClients
@EnableCircuitBreaker//启动熔断
public class FeignHystrixApp {

	public static void main(String[] args) {
		SpringApplication.run(FeignHystrixApp.class, args);
	}

}

Hystrix-DashBoard监控单个应用

<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>

启动类

@SpringBootApplication
@EnableHystrixDashboard
public class Dashboard {

	public static void main(String[] args) {
		SpringApplication.run(Dashboard.class, args);
	}

}

访问地址

http://192.168.1.102:8900/hystrix.stream

 

监控集群Turbine

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>

application.properties配置文件

server.port=8300

spring.application.name=09springcloud-hystrix-turbine


eureka.client.serviceUrl.defaultZone=http://user:123@localhost:10000/eureka
eureka.instance.prefer-ip-address=true


#监控单个应用下的所有机器
turbine.aggregator.clusterConfig=HYSTRIS01
trubine.appConfig=hystris01

启动类

@SpringBootApplication
@EnableEurekaClient
@EnableTurbine
public class HystrixTurbineApp {

	public static void main(String[] args) {
		SpringApplication.run(HystrixTurbineApp.class, args);
	}

}

#监控单个应用下的所有机器
turbine.aggregator.clusterConfig=HYSTRIS01
trubine.appConfig=hystris01
http://192.168.1.102:8300/turbine.stream?cluster=HYSTRIS01
监控HYSTRIS01应用下面的所有机器,相当于监控多个
http://192.168.1.102:8901/hystrix.stream
http://192.168.1.102:8902/hystrix.stream
http://192.168.1.102:8903/hystrix.stream

Turbine监控多个应用
#监控多个应用下的所有机器
 

turbine.aggregator.clusterConfig=defualt
trubine.appConfig=hystris01,hystris02
trubine.cluster-name-expression='defualt'


Turbine监控地址变动context-path项目
注册项目配置server.context-path=/hystrix01
就得添加如下配置
eureka.instance.prefer-ip-address=true
eureka.instance.home-page-url-path=/hystrix01
访问地址
http://192.168.1.102:8903/hystrix01/hystrix.stream

那么在监控项目的配置文件修改
注释掉这配置trubine.cluster-name-expression='defualt'
在application.properties文件添加这个配置

trubine.instanceUrlSuffix.HYSTRIS01=/hystrix01/hystrix.stream
这样就可以实时监控了

 

turbine Management Port

微服务之APIGetWay(网关)
一次性请求太多的微服务太麻烦,任何一个地方出现问题都不好

提供统一对外接口
统一鉴权
服务注册与授权
服务限流
全局网络跟踪

微服务之Zuul
服务端的负载均衡

<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-zuul</artifactId>
			<version>1.4.5.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.springframework.cloud</groupId>
			<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
			<version>1.4.3.RELEASE</version>
		</dependency>
		<!-- 不添加的华,zuul的路由页面无法访问 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>

提供者

注册:provider-user

访问地址,多台机器
http://192.168.1.102:7900/user/1

http://192.168.1.102:7901/user/1

http://192.168.1.103:7901/user/1
Zuul访问地址,代理(自动匹配地址)
http://192.168.1.102:10900/provider-user/user/1

 

自定义服务映射地址
#给指定的服务做映射,当前是给provider-user添加映射地址为/abc

zuul.routes.provider-user=/abc/**

zuul取消代理某服务

#取消代理某服务
zuul.routes.ignored-services=provider-user1

zull之path映射

#path配置,abcdef随便写但是必须保证是唯一的,path映射路径,serviceId给哪个服务做映射
zuul.routes.abcdef.path=/abc/**
zuul.routes.abcdef.serviceId=provider-user1

zuul之URL方式映射

#url映射
zuul.routes.abcdef.path=/abc/**
zuul.routes.abcdef.serviceId=provider-user1
#在eureka中禁用ribbon的负载均衡
ribbon.eureka.enabled=false
#给上面的serviceId对应的服务名字制定一个ribbon的负载均衡,从listOfServers配置的地址中选择
provider-user1.ribbon.listOfServers=http://192.168.1.102:8901/,http://192.168.1.102:8902/

zuul表达式映射
启动类添加如下代码

@Bean
public PatternServiceRouteMapper serviceRouteMapper() {
    return new PatternServiceRouteMapper(
        "(?<name>^.+)-(?<version>v.+$)",
        "${version}/${name}");
}


注册eureka的项目修改配置文件
 

spring.application.name=provider-user-v1

访问地址
http://192.168.1.102:10900/v1/provider-user/user/1

Zuul之前缀映射方式
zuul.prefix=/suibia
在所有访问地址前面都加前缀,访问地址
http://192.168.1.102:10900/suibia/provider-user/user/1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值