﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-DUBBO</title><link>http://www.blogjava.net/paulwong/category/55020.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 20 Apr 2016 22:44:04 GMT</lastBuildDate><pubDate>Wed, 20 Apr 2016 22:44:04 GMT</pubDate><ttl>60</ttl><item><title>dubboss</title><link>http://www.blogjava.net/paulwong/archive/2016/04/20/430162.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 20 Apr 2016 05:04:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2016/04/20/430162.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/430162.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2016/04/20/430162.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/430162.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/430162.html</trackback:ping><description><![CDATA[HTTPCLIENT请求基于NETTY的HTTP服务器，NETTY生成相关的HTTPREQUEST、HTTPRESPONSE，调用SPRING 的DISPATCHSERVLET.SERVICE，将HTTPRESPONSE生成二进制字节，返回HTTPCLIENT。DISPATCHSERVLET同时会调用SPRING的CONTROLLER干活，即以前的SPRING MVC那套可以保留。<br /><br />缺点：<br />nginx+tomcat与netty优缺点<br /><a href="http://www.oschina.net/question/1765708_158026" target="_blank">http://www.oschina.net/question/1765708_158026</a><br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->我的架构最开始是&nbsp;nginx&nbsp;+&nbsp;<span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">netty&nbsp;(tcp)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #800000; font-weight: bold; ">]</span>&nbsp;用nginx做负载均衡。后来分布式接口变成了http&nbsp;restful&nbsp;-&gt;&nbsp;nginx&nbsp;+&nbsp;<span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">netty(http)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #800000; font-weight: bold; ">]</span><br /><br />于是参考了netty的官方http例子，开始移植代码，其实移植量不大，只需要把原来的tpc&nbsp;handler里面的逻辑放到http&nbsp;handler里面就可以了。本以为ok了，测试才发现了大量的问题，其实问题本身是由于对http基础掌握的还不够透彻，比如keep-alive属性，这个平时基本不用的东西，当你要自己开发http&nbsp;server时，变的很有用，你不能每次都close&nbsp;channel.你要化很多时间了解header里面每个字段的意思，然后去实现它。再比如一个post请求，你要自己写代码从body里面读数据，解码等。<br /><br />最终我放弃了netty,回到了tomcat.应为tomcat把http的一切都帮你搞定了。<br /><br />最终的架构是&nbsp;nginx&nbsp;+&nbsp;<span style="color: #800000; font-weight: bold; ">[</span><span style="color: #800000; ">tomcat(http)&nbsp;<img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span style="color: #800000; font-weight: bold; ">]</span><br /><br />tomcat就是针对http层的，所以我建议http还是选择tomcat(或者其他成熟的http-server)，并不是说netty不好，而是你的选择问题，netty是一个网络组件，tcp,udp,http都可以弄，但是官方文档都是些hello&nbsp;wolrd级别的。如果你非常了解http结构，完全可以基于netty搞出一个比tomcat牛的http&nbsp;server.<br /><br />如果做tcp开发，netty不二之选！</div><br /><p style="box-sizing: border-box; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px;">dubboss是一个分布式REST服务的框架,实现了如下功能:</p><ul style="box-sizing: border-box; padding-left: 2em; margin-top: 0px; margin-bottom: 16px; color: #333333; font-family: 'Helvetica Neue', Helvetica, 'Segoe UI', Arial, freesans, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; font-size: 16px; line-height: 25.6px;"><li style="box-sizing: border-box;">基于dubbo的RPC</li><li style="box-sizing: border-box;">基于netty的应用服务器</li><li style="box-sizing: border-box;">基于springmvc的REST调用</li><li style="box-sizing: border-box;">基于ngnix的负载均衡</li></ul><br /><a href="https://github.com/leiguorui/dubboss" target="_blank">https://github.com/leiguorui/dubboss</a><img src ="http://www.blogjava.net/paulwong/aggbug/430162.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2016-04-20 13:04 <a href="http://www.blogjava.net/paulwong/archive/2016/04/20/430162.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DUBBO简介</title><link>http://www.blogjava.net/paulwong/archive/2016/04/15/430103.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 15 Apr 2016 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2016/04/15/430103.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/430103.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2016/04/15/430103.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/430103.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/430103.html</trackback:ping><description><![CDATA[<p style="font-size: 13.3333px; line-height: 17.3333px; margin: 10px 0px; padding: 0px; font-family: Arial, Helvetica, FreeSans, sans-serif; background-color: #ffffff;"><a href="http://dubbo.io/User+Guide-zh.htm" target="_blank">http://dubbo.io/User+Guide-zh.htm</a><br /><br />随着互联网的发展，网站应用的规模不断扩大，常规的垂直应用架构已无法应对，分布式服务架构以及流动计算架构势在必行，亟需一个治理系统确保架构有条不紊的演进。</p><p style="font-size: 13.3333px; line-height: 17.3333px; margin: 10px 0px; padding: 0px; font-family: Arial, Helvetica, FreeSans, sans-serif; background-color: #ffffff;"><img src="http://dubbo.io/dubbo-architecture-roadmap.jpg-version=1&amp;modificationDate=1331143666000.jpg" tppabs="http://10.20.160.198/wiki/download/attachments/6947616/dubbo-architecture-roadmap.jpg?version=1&amp;modificationDate=1331143666000" style="border: 0px solid black;"  alt="" /></p><ul style="font-size: 13.3333px; line-height: 17.3333px; font-family: Arial, Helvetica, FreeSans, sans-serif; background-color: #ffffff;"><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;"><strong>单一应用架构</strong><ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc;"><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">当网站流量很小时，只需一个应用，将所有功能都部署在一起，以减少部署节点和成本。</li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">此时，用于简化增删改查工作量的&nbsp;<strong>数据访问框架(ORM)</strong>&nbsp;是关键。</li></ul></li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;"><strong>垂直应用架构</strong><ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc;"><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">当访问量逐渐增大，单一应用增加机器带来的加速度越来越小，将应用拆成互不相干的几个应用，以提升效率。</li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">此时，用于加速前端页面开发的&nbsp;<strong>Web框架(MVC)</strong>&nbsp;是关键。</li></ul></li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;"><strong>分布式服务架构</strong><ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc;"><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">当垂直应用越来越多，应用之间交互不可避免，将核心业务抽取出来，作为独立的服务，逐渐形成稳定的服务中心，使前端应用能更快速的响应多变的市场需求。</li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">此时，用于提高业务复用及整合的&nbsp;<strong>分布式服务框架(RPC)</strong>&nbsp;是关键。</li></ul></li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;"><strong>流动计算架构</strong><ul style="font-size: 10pt; line-height: 13pt; list-style-type: disc;"><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">当服务越来越多，容量的评估，小服务资源的浪费等问题逐渐显现，此时需增加一个调度中心基于访问压力实时管理集群容量，提高集群利用率。</li><li style="font-size: 10pt; line-height: 13pt; margin: 0px; padding: 0px;">此时，用于提高机器利用率的&nbsp;<strong>资源调度和治理中心(SOA)</strong>&nbsp;是关键。</li></ul></li></ul><img src ="http://www.blogjava.net/paulwong/aggbug/430103.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2016-04-15 11:28 <a href="http://www.blogjava.net/paulwong/archive/2016/04/15/430103.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>