实践+理论+反复:思考自己是怎么用的
现在写的东西之前都总结过,也用过、但是……这样历史没什么好致敬的、干活
官网本尊:http://dubbo.apache.org/zh-cn/docs/user/quick-start.html
两者基本无关联
1、通信方式不同:dubbo使用RPC通信,cloud是http restful方式
2、组成部分不同,cloud是一个全家桶目前还在不断膨胀
https://segmentfault.com/a/1190000019896723 主源自,侵删
dubbo://192.168.234.1:20880/com.sihai.dubbo.provider.service.ProviderService?anyhost=true&application=provider&bean.name=com.sihai.dubbo.provider.service.ProviderService&bind.ip=192.168.234.1&bind.port=20880&dubbo=2.0.2&generic=false&interface=com.sihai.dubbo.provider.service.ProviderService&methods=SayHello&owner=sihai&pid=8412&qos.accept.foreign.ip=false&qos.enable=true&qos.port=55555&side=provider×tamp=1562077289380
几乎是熟悉的配方了,如果你尝这个味道有些新鲜,亲、这边建议去找基础打一架
首先映入眼帘的是我们“dubbo”协议,当然也可以dubbo支持的其他协议
7、8个协议是不是很烦,一方面说明他灵活另一方面还是有迹可循的、总接一下发现共同点还不少
如此灵活多协议轻松支持,不同服务支持不同协议,同一服务支持不同协议,下方集群容错有实例
hessian2:跨语言高效二进制序列化方式
json:文本序列化 1采用阿里fastjson库,2dubbo自己实现的简单json库,性能较低
java序列化:jdk自带java序列化实现,性能不理想
其他的平平无奇,qos成功了引起了偶滴注意:
QosProtocolWrapper.startQosServer()首先从url解析qos.enable,默认启动
Qos:Quality of Service,服务质量,这个名字似不似有中肃然起敬的赶脚,hh此处用处不大,转身送您一套禁用命令:
dubbo.application.qos-port=2222
dubbo.application.qos-enable=true
dubbo.application.qos-accept-foreign-ip=false
以下多为xml配置方式,注解方式较为简单在下面有提及,具体还需要实践
1是zk做注册中心:提供者和消费者同样的配方,拿走不谢
//register="false"(只订阅,不注册) sbuscribe=false(只注册,不订阅)
2是无注册中心直连
2.1通过配置文件
//但是消费者调用谁呐?消费者需要指定url
//或 酱紫,用id让url省点心
2.2JVM通过-D参数指定,key为服务全类名 value为服务提供的url优先级最高,1.0.15版本及其以上支持
java -Dcom.alibaba.xxx.XxxService=dubbo://localhost:20890
2.3文件映射:这个我不想提他,自行搜索吧
2,4亲爱的注解:
@Reference(version = "1.0",url="
dubbo://localhost:20890
")
3是广播 ;我是因为2才写的这块,现在想想有些后悔,不过已经到这了 hh
注意组播地址段: 224.0.0.0 - 239.255.255.255
4分组,版本号也可以实现类似功能
//插一句:check启动时检查服务是否可用,false关闭检查,不可用时不报错
当然最近比较流行 注解,我相信以后也是这个趋势,注解里面有很多熟悉的宝贝,题外加一句 下面添加了版本号,不同服务可有不同版本,需要注意的是不同版本间不可调用(这句话并没有看起来这么云淡风轻)
import com.alibaba.dubbo.config.annotation.Reference;
@Reference(timeout = 10000, retries = -1, version = "1.0.1")
private IActivePageModule activePageModule;
注解这里有个小小的问题,需要注意一哈:
dubbo版本2.7.3修改了一个bug,是什么呐?@Reference(retires=0)retries值会被忽视,注入时走dubbo内部方法,nullSafeEquals方法传入当前属性值和默认值,如果等于默认值0则忽略该值,具体请看
众所周知,有spring、jetty、log4j
provider可配置consumer的:
timeout调用超时 ; retries失败重试次数、默认2次
loadbalance负载均衡算法,默认随机 ; actives消费端最大并发调用限制
accesslog输出到log4j
2、输出到文件,看完会觉得配置大同小异,这算不算dubbo一个特点,太灵活了
默认同步等待结果阻塞的;支持异步调用:基NIO非阻塞实现并行调用
https://segmentfault.com/a/1190000019896723 dubbo入门到实践
https://blog.csdn.net/xiaojin21cen/article/details/79834222协议
https://blog.csdn.net/ttxs99989/article/details/81294958 http与soap区别
http一系列http请求头及其他信息,http纯文本格式
soap简单对象访问协议,轻量、基于xml在web上交换结构化和固化信息
https://blog.csdn.net/chang_li/article/details/52671489/ 连接方式介绍