上海美团司机收入情况 小编:艳芬 797阅读 2020.11.30 上海美团司机月收入:
¥13.4K / 月平均工资,数据统计来自近一年 1275 份样本,截至 2020-11-27。
上海美团司机工资待遇水平范围:
薪酬区间: 2K以下-30K ,最多人拿:10K-15K 。
工资标准范围 占比率
2K以下 4.4%
2K-3K 1.1%
3K-4.5K 0.3%
8K-10K 12.5%
10K-15K 54.4%
15K-20K 20.5%
20K-30K 6.5%
说明:上海美团司机平均工资 ¥13.4K,其中拿 10K-15K 工资的占比最多,达 54.4%,数据统计依赖于各平台发布的公开薪酬,仅供参考。
Spring Cloud
Spring Cloud 是什么
集成了多个框架工具,来解决微服务终于到的各种问题:
远程调用(RPC)
负载均衡
重试(容错)
降级
熔断
监控
配置中心
Spring Cloud 是一个框架集,微服务全家桶
Spring Cloud 不是什么
不是一个独立框架
Spring Cloud 和 Dubbo 区别
Dubbo 只解决远程调用,不能解决其他问题 如果遇到其他问题,需要自己研发,或自己集成其他工具。
Spring Cloud 是微服务全家桶,结合Spring Boot来实现“开箱即用”
eureka
Spring Cloud 支持多款注册中心工具:eureka,zookeeper,consul.......
eureka运行机制:
注册 应用启动时,会连接注册中心进行注册。 如果无法连接注册中心,它会一次一次的反复进行注册,直到成功为止。
拉取 每个服务都会从注册中心拉取注册表,每30秒会重新拉取一次注册表进行更新。
心跳 客户端会每30秒向 eureka 注册中心发送一次心跳数据,eureka 连续3次收不到心跳,认为服务已经死掉,会从注册表删除服务。
自我保护模式 是一种特殊情况 由于网络不稳定,造成 85%以上的服务器出现心跳异常,这时会进入自我保护模式,在保护模式下,所有服务都不删除,直到网络恢复,会自动退出自我保护模式。
eureka 和 zookeeper 区别
eureka
强调 AP - 可用性、分区容错性
集群 - 对等结构
zookeeper
强调 CP - 一致性、分区容错性
集群 - 主从结构
RestTemplate
Spring Cloud 使用的一个远程调用工具
(服务之间相互调用)
RestTemplate 是Springboot提供的一个远程调用工具
getForObject(url, 转换类型, 提交的参数)
postForObject(url, 协议体数据, 转换类型)
Ribbon
Ribbon 的作用,解决的问题:
负载均衡(微服务系统必须功能) 访问压力可以分散到多态服务器
重试(不是必须功能) 当第一次请求失败或等待超时,可以自动发起重试请求
Ribbon 负载均衡
ribbon依赖(在 eureka client 中已经包含)
添加 @LoadBalanced注解,用Ribbon封装 RestTemplate 对象,对 RestTemplate功能进行增强
Ribbon 重试
容错
当调用后台服务失败,可以自动重试,如果重试成功,可以向客户端正常返回结果。
添加Ribbon重试:
添加 pring-retry 依赖
设置重试参数:
MaxAutoRetries - 单台服务器的重试次数
MaxAutoRetriesNextServer - 更换服务器的次数
OkToRetryOnAllOperations - 是否对所有类型请求都重试,默认只对 get 重试,如果要对所有请求重试设置成 true
下面两个超时设置不能在 yml 中配置,需要在 java 代码中设置
connectTimeout - 建立连接超时时间
readTimeout - 已建立连接并发送了请求,等待响应的超时时间
Hyxtrix
容错工具
Hystrix提供的容错功能:
降级
熔断
降级
当调用后台服务失败,或超时,可以向客户端返回降级结果 。
快速失败:
客户端不必长时间阻塞等待后台服务结果,超时后可以快速获得反馈。
防止雪崩、防止错误传播
熔断
熔断就像家里的电箱,有一个总闸,如果访问量过大(过热),触发熔断,家里的电路会被断开。
当系统访问量过大,出现大量的失败情况时,会触发熔断,断路器打开后,所有的请求直接执行降级代码返回降级结果。
触发熔断的条件:
10秒内20次请求(必须首先满足)
50%失败,执行了降级代码
添加 Hystrix 降级
hystrix 依赖
添加主程序注解@EnalbleCircuitBreaker,启用 hystrix 断路器,触发断路器自动配置
添加降级代码 复制代码1234@HystrixCommnad(fallbackMethod=降级方法)public?void?a()?{????restTemplate.getForObject(
hystrix 的超时
默认超时时长是1秒
hystrix dashboard
hystrix仪表盘,对hystrix出现错误的情况进行监控
actuator
Springboot 提供的一个项目监控工具,可以监控项目的各种运行数据,hystrx利用actuator,可以添加hystrix的监控数据。
添加 actuator:
actuator依赖
暴露监控数据:
在.yml配置文件中输入即可知晓
复制代码1234567m.e.w.e.i=*??#?暴露所有的监控数据?m.e.w.e.i=health??#?暴露健康状态数据?m.e.w.e.i=health,beans,env,hystrix.stream?#?暴露多种监控数据?m.e.w.e.i=hystrix.stream
搭建仪表盘项目
hystrix仪表盘是一个完全独立的项目,启动后,需要在它的界面上指定监控数据的路径。
新建 hystrix-dashboard 项目
添加 hystrix dashboard 依赖
yml 配置选择端口 4001
主程序添加注解,启用 hystrix dashboard:@EnableHystrixDashboard
Feign
声明式客户端
只需要定义一个抽象的接口,就可以通过接口调用远程服务,不需要写具体调用代码。
例如调用后台商品服务,接口可以这样定义:
复制代码12345@FeignClient(name=item-service)public?interface?ItemFeignClient?{????@GetMapping(/{orderId})????JsonResult?getItems(@PathVarible?String?orderId);}
通过注解,配置以下三点:
服务id - 确定调用哪个远程服务
路径 - 调用一个服务的哪个路径
参数 - 向这个路径提交什么参数数据
集成 Ribbon
Feign集成了Ribbon,提供了Ribbon的默认配置。
默认已经启用了负载均衡和重试,0配置就可以使用Ribbon。
重试的默认配置:
MaxAutoRetries: 0
MaxAutoRetriesNextServer: 1
ReadTimeout: 1000
集成 Hystrix
Feign可以集成Hystrix,默认不启用Hystrix,Feign不推荐启用Hystrix(后面再进行分析)。
启用Hystrix,添加基础配置:
添加 Hystrix 完整依赖
yml 配置在Feign中启用hystrix:feign.hystrix.enabled=true
主程序添加 @EntalbeCircuitBreaker
添加降级代码
添加一个单独的降级类,需要实现声明式客户端接口
复制代码123@Component public?class?ItemFeignClientFB?implements?ItemFeignClient?{????实现降级方法,返回降级响应}
在接口上,还需要指定降级类:
复制代码1234@FeignClient(name=item-service,fallback=降级类)interface?ItemFeignClient?{?????}
添加Hystrix监控
actuator依赖
配置暴露 hystrix.stream 监控端点
复制代码1m.e.w.e.i=hystrix.stream
访问
访问仪表盘,访问上面的监控数据