阿里巴巴开源服务框架 Dubbo 2.0.9 发布

openkk 12年前
     <div>     Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。    </div>    <div>     主要核心部件:    </div>    <div>     <span style="line-height:20px;font-family:Verdana,Simsun,sans-serif;color:#333333;">      <ul>       <li><strong>Remoting:</strong> 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.</li>       <li><strong>RPC:</strong> 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能</li>       <li><strong>Registry:</strong> 服务目录框架用于服务的注册和服务事件发布和订阅</li>      </ul> </span>    </div>    <p></p>    <h3>Dubbo工作原理</h3>    <p><span><img style="cursor:pointer;" alt="阿里巴巴开源服务框架 Dubbo 2.0.9 发布" src="https://simg.open-open.com/show/167c85beda153a33150adf93e8c830b1.jpg" width="500" height="300" /></span></p>    <ul>     <li><strong>Provider</strong>      <ul>       <li>暴露服务方称之为“服务提供者”。</li>      </ul> </li>     <li><strong>Consumer</strong>      <ul>       <li>调用远程服务方称之为“服务消费者”。</li>      </ul> </li>     <li><strong>Registry</strong>      <ul>       <li>服务注册与发现的中心目录服务称之为“服务注册中心”。</li>      </ul> </li>     <li><strong>Monitor</strong>      <ul>       <li>统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”。</li>      </ul> </li>    </ul>    <p>(1) 连通性:</p>    <ul>     <li>注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小</li>     <li>监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心服务器,并以报表展示</li>     <li>服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此时间不包含网络开销</li>     <li>服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销</li>     <li>注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外</li>     <li>注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者</li>     <li>注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表</li>     <li>注册中心和监控中心都是可选的,服务消费者可以直连服务提供者</li>    </ul>    <p>(2) 健状性:</p>    <ul>     <li>监控中心宕掉不影响使用,只是丢失部分采样数据</li>     <li>数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务</li>     <li>注册中心对等集群,任意一台宕掉后,将自动切换到另一台</li>     <li>注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通讯</li>     <li>服务提供者无状态,任意一台宕掉后,不影响使用</li>     <li>服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复</li>    </ul>    <p>(3) 伸缩性:</p>    <ul>     <li>注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心</li>     <li>服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者</li>    </ul>    <p> </p>    <p style="font-weight:bold;">阿里巴巴开源服务框架Dubbo2.0.9版本发布了,该版本增加了简易监控中心界面,以及修复了一些BUG。</p>    <p>Dubbo首页:<a href="/misc/goto?guid=4958194870569857245" target="_blank">http://code.alibabatech.com/wiki/display/dubbo/Home</a> <br /> 下载地址:<a href="/misc/goto?guid=4958318538223461365" target="_blank">http://code.alibabatech.com/wiki/display/dubbo/Download#Download-Releases</a> <br /> 发行说明:<a href="/misc/goto?guid=4958318539017389310" target="_blank">http://code.alibabatech.com/wiki/display/dubbo/Release+Notes#ReleaseNotes-ReleaseNotes2.0.9</a> <br /> <br /> <strong>新特性:</strong> <br /> <br /> [DUBBO-91] - dubbo-monitor-simple增加服务提供者和消费者列表及JFreeChart统计报表查看 <br /> <br /> <strong>Bug修复:</strong> <br /> <br /> [DUBBO-58] - 解决dubbo spring配置文件初始化时死锁,导致线程池占满 <br /> [DUBBO-63] - Serialization对final字段的处理出错 <br /> [DUBBO-72] - RMI protocol 中调用了javassist高版本中方法 导致在低版本环境中出现的NoSuchMethodError错误 <br /> [DUBBO-73] - ExecutorUtil类关闭线程池问题 <br /> [DUBBO-76] - 注册中心使用vip(域名)的情况下,不能正常切换到注册中心的实际地址 <br /> [DUBBO-77] - ExceptionFilter在抛出RpcException时应在服务提供方打印出错日志 <br /> [DUBBO-78] - JVM之间共享长连接(Provider和Consumer的连接策略与Dubbo1不一样) <br /> [DUBBO-82] - http协议的server缺省值与旧版本不兼容 <br /> [DUBBO-83] - JettyContainer扩展点配置错误 <br /> [DUBBO-84] - 调整ConfigUtils的mergeValue使得自定义value在默认value之后加载 <br /> [DUBBO-86] - ReferenceBean导致autowire失效,还原ReferenceBean的afterPropertiesSet <br /> [DUBBO-89] - Log4jContainer没有修改所有Appender的路径,并错误的将日志输出到了user.home目录 <br /> [DUBBO-90] - RMI的连接失败重建Stub <br /> [DUBBO-94] - ReferenceBean的getObjectType()依赖于getObject()初始化,而AOP&autowire会先调getObjectType(),导致类型不匹配 <br /> [DUBBO-95] - spring bean 加载getBeanByType 与webx 出现循环依赖问题 <br /> [DUBBO-96] - 服务端与客户端的线程池参数设置没有区分开 <br /> [DUBBO-97] - 事件(例如heartbeat)运行在业务线程池 <br /> [DUBBO-100] - method oninvoke在spring解析器中没有做解析,此功能失效 <br /> [DUBBO-102] - Classpath有多个dubbo.properties文件(加载到不期望的dubbo.properties则会出各种提示不清楚的错误) <br /> [DUBBO-105] - fix ReflectUtils cache 失效 <br /> [DUBBO-112] - Hession反序列化没有传入返回值类型导致类型转换失败 <br /> [DUBBO-114] - 服务容器的status页面没有返回OK,导致服务容器启动时一直不OK <br /> [DUBBO-115] - SimpleRegistry在服务提供者重启时,注册不上 <br /> [DUBBO-127] - 注册中心ondisconnect回调事件在某些情况下没有被正确回调 <br /> [DUBBO-128] - consumer通过配置成域名方式访问注册中心订阅时抛出异常 <br /> <br /> <strong>改进:</strong> <br /> <br /> [DUBBO-10] - hession反序列化 没有传入返回值类型 导致 类型转换失败。 <br /> [DUBBO-71] - Graceful shutdown-半关闭状态 <br /> [DUBBO-79] - RMI的配置方式便利性加强(如果Java启动参数已设RMI超时参数就不再使用dubbo的timeout配置) <br /> [DUBBO-88] - Remoting模块中Client重连失败抛出的异常不能判定关联的服务 <br /> [DUBBO-98] - dubbo-registry-zookeeper增加consumers的存储 <br /> [DUBBO-99] - 所有container参数都加上dubbo.前缀 <br /> [DUBBO-103] - Remoting异常转换成RpcException异常时没有附加上Service信息(抛出异常后不便于排错) <br /> [DUBBO-104] - RmiInvoker的doInvoke方法出java.rmi.RemoteException异常时,会Wrap两次RpcException <br /> [DUBBO-106] - Container加载properties统一使用ConfigUtils <br /> [DUBBO-107] - 将RpcContext.isClientSide和isServerSide改成isConsumerSide和isProviderSide <br /> [DUBBO-109] - demo放到trunk管理,与trunk同发布 <br /> [DUBBO-110] - 统一startup和shutdown脚本 <br /> [DUBBO-111] - MonitorService的cluster改为failsafe <br /> [DUBBO-117] - registry notify 防御性容错 <br /> [DUBBO-118] - client reconnect 发布过程中reconnect会报太多的错误,导致生产环境报警。 <br /> [DUBBO-121] -     <!--?xml:namespace prefix = dubbo /-->     <dubbo:service>      和      <dubbo:provider>       的filter和listener属性,进行合并,而不是覆盖       <br /> [DUBBO-129] -       <dubbo:protocol>        增加heartbeat属性设置心跳间隔       </dubbo:protocol>      </dubbo:provider>     </dubbo:service></p>    <p><span><br /> 资讯来源:<a href="/misc/goto?guid=4958194870569857245" target="_blank">http://code.alibabatech.com</a></span></p>