微服务相关知识

springcloud组件:
zuul 网关
eureka 服务注册与发现
rest+ribbon 服务消费者
feign 服务消费者
hystrix 断路器
hystrix+dashboard 断路器监控
config 分布式配置中心
bus 消息总线
stream/binder:消息驱动 针对使用多种MQ的集合(目前只支持rabbitMQ和kafka),屏蔽不同MQ的区别 ,统一方式 ,gorup分组,消除重复消费和消息持久化处理
sleuth/zipkin(transid,spanid): 服务链路跟踪
ribbon与feign的区别:
ribbon是在客户端controller端使用httpclint或者rest Template请求
feign在服务端使用API提供服务,客户端引用接口调实现类实现
ribbon_resttemplate 做负载均衡
fegin 面向接口的负载均衡

dubbo与springcloud的区别:
最大的区别:Dubbo底层是使用Netty这样的NIO框架,是基于TCP协议传输的,配合以Hession序列化完成RPC通信。而SpringCloud是基于Http协议+rest接口调用远程过程的通信。

eureka与zookeeper的区别
1.zookeeper 是CP模式,一致性/容错性,强调一致性优先,zk的master挂掉,会进行leader选举,选举期间注册服务是不能用的
2.eureka 是AP模式,可用性/容错性,不保证强一致性,只要有一台服务可用就行
CAP:一致性/可用性/容错性
3.eurake有自我保护机制,在服务变动时,不会及时删除已经不能用的服务,而是保留一定的时间,确认不能用时,在删除
zookeeper请求服务失败的处理-容错策略:
1.失败默认重试2次;2.失败记录,定时任务失败重发,注意幂等操作;并行调用多个服务的策略;3.广播式,服务集群提供者只要任何一个节点返回表明请求成功

dubbo:
1.dubbo注册中心zk挂掉,服务间还能调用吗?
可以的,启动 dubbo 时,消费者会从 zookeeper 拉取注册的生产者的地址接口等数据,缓存在本地。每次调用时,按照本地存储的地址进行调用
但是新上线的服务无法推给消费者
2.dubbo序列化问题
1.dubbo 支持 hession、Java 二进制序列化、json、SOAP 文本序列化多种序列化协议。但是 hessian 是其默认的序列化协议。
2.hessian方式,
1-参数及返回值需实现serializable接口
2-参数和返回值不能自定义实现类,只能用JDK自带的实现

webservice跨语言的多平台调用
https://www.freesion.com/article/1215961631/
例如:
1.php发布webservice
2.通过soupui工具对发布的webservice进行测试
3.没问题后,编写Java程序对php系统提供的webservice服务进行访问
soapUI主要是为测试webservice的工具
webservice: soap,wsdl的xml格式传输信息

Nacos:服务注册和配置中心 = Eurake+config+Bus

sentinel监控:配置熔断和降级服务,监控链路数据
QPS降级,关联-流控降级,异常降级,哨兵降级,热点key降级(比如商品ID,用户ID)
系统规则限流:从整个系统进行限流

@SentinelSource blockHandler方法配置定义
解决代码膨胀和耦合问题,全局统一处理方法: 自定义blockerHandlerClass+blockHandler方法
分开Java的异常处理和规则异常处理:fallback属性处理Java异常和运行时异常;
ExceptionToIgnore
sentinel: 配置规则在服务重启时会消失配置,所以需要持久化,需要把配置内容持久化到nacos的数据库中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值