1.服务治理
SOA:面向服务编程 注册中心 治理中心 监控中心 调度中心
2.远程调用方式
1.RPC:远程过程调用 RMI远程方法调用
2.http:网络传输协议,基于TCP
相同点:底层通讯都是基于socket,都可以实现远程调用,都可以实现服务调用服务
各自优点:RPC方式更加透明,对用户更方便。http方式更加灵活,没有规定API和语言,跨语言,跨平台,通过浏览器访问 网站,就是通过http协议。只不过浏览器把请求封装了,发起请求以及响应请求的事情都帮我们做了。
3.springcloud
1.eureka注册中心
服务注册中心,服务提供者,服务消费者
服务续约:服务提供者会维持一个心跳,定时想eureka发起rst请求
失效剔除和自我保护:
每隔60秒是对所有的失效服务进行剔除
但是eureka会触发自我保护机制,不给于剔除,需要关闭自我保护
2.负债均衡Ribbon:
eureka帮我集成了负债均衡组件:Ribbon
在resttemplate上加上@LoadBalanced注解即可
重试机制:
cap定理:eureka使用了ap,zookeeper使用了cp,强调一致性
3.hystrix:熔断器
启动器加上注解@EnableHystrix开启熔断器
声明一个失败时的回滚处理函数@HystrixCOmmand(fallbackMethod="")
熔断时间要比重试时间长,不然重试机制没有生效
4.Feign:可以把Rest的请求进行隐藏,伪装成springmvc 的controler一样
启动器加上注解@EnableFeignClients开启feign功能
Feign默认也有对Hystix的集成:在接口上写:@FeignClient(value = "user-service", fallback = UserFeignClientFallback.class)
5.Zuul网关:
@EnalbeZuulProxy开启Zuul
ZuulFilter:
shouldFilter:返回一个Boolean值,判断该过滤器是否需要执行。返回true执行,返回false不执行。
run:过滤器的具体业务逻辑。
filterType:返回字符串,代表过滤器的类型。包含以下4种:
pre:请求在被路由之前执行
routing:在路由请求时调用
post:在routing和errror过滤器之后调用
error:处理请求时发生错误调用
filterOrder:通过返回的int值来定义过滤器的执行顺序,数字越小优先级越高。
Zuul中默认就已经集成了Ribbon负载均衡和Hystix熔断机制。
认识微服务
最新推荐文章于 2023-12-11 10:24:46 发布