forked from arccode/arccode.github.io
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
1244 lines (610 loc) · 33.5 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!doctype html>
<html class="theme-next use-motion ">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<link rel="stylesheet" type="text/css" href="/vendors/fancybox/source/jquery.fancybox.css?v=2.1.5"/>
<link rel="stylesheet" type="text/css" href="/css/main.css?v=0.4.5"/>
<meta name="description" content="积累技术, 努力工作, 坚持学习, 认真生活." />
<link rel="alternate" href="/atom.xml" title="Arccode's blog" type="application/atom+xml" />
<link rel="shorticon icon" type="image/x-icon" href="/images/favicon.ico?v=0.4.5" />
<script type="text/javascript" id="hexo.configuration">
var CONFIG = {
scheme: '',
analytics: {
google: 'UA-52770645-1'
},
sidebar: 'post'
};
</script>
<script type="text/javascript">
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "//hm.baidu.com/hm.js?cc881a935ecd2c2a0fe30651210e7117";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
<title> Arccode's blog </title>
</head>
<body>
<!--[if lte IE 8]>
<div style=' clear: both; height: 59px; padding:0 0 0 15px; position: relative;margin:0 auto;'>
<a href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home?ocid=ie6_countdown_bannercode">
<img src="http://7u2nvr.com1.z0.glb.clouddn.com/picouterie.jpg" border="0" height="42" width="820"
alt="You are using an outdated browser. For a faster, safer browsing experience, upgrade for free today or use other browser ,like chrome firefox safari."
style='margin-left:auto;margin-right:auto;display: block;'/>
</a>
</div>
<![endif]-->
<div class="container one-column
page-home
">
<div class="headband"></div>
<div id="header" class="header">
<div class="header-inner">
<h1 class="site-meta">
<span class="logo-line-before"><i></i></span>
<a href="/" class="brand">
<span class="logo">
<i class="icon-logo"></i>
</span>
<span class="site-title">Arccode's blog</span>
</a>
<span class="logo-line-after"><i></i></span>
</h1>
<div class="site-nav-toggle">
<button>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
<span class="btn-bar"></span>
</button>
</div>
<div class="site-nav">
<ul id="menu" class="menu ">
<li class="menu-item menu-item-home">
<a href="/">
<i class="menu-item-icon icon-home"></i> <br />
首页
</a>
</li>
<li class="menu-item menu-item-categories">
<a href="/categories">
<i class="menu-item-icon icon-categories"></i> <br />
分类
</a>
</li>
<li class="menu-item menu-item-archives">
<a href="/archives">
<i class="menu-item-icon icon-archives"></i> <br />
归档
</a>
</li>
<li class="menu-item menu-item-tags">
<a href="/tags">
<i class="menu-item-icon icon-tags"></i> <br />
标签
</a>
</li>
<li class="menu-item menu-item-about">
<a href="/about">
<i class="menu-item-icon icon-about"></i> <br />
关于
</a>
</li>
</ul>
</div>
</div>
</div>
<div id="main" class="main">
<div class="main-inner">
<div id="content" class="content">
<div id="posts" class="posts-expand">
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/10/27/微信扫码登录场景实现及延伸/">
微信扫码登录场景实现及延伸
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-10-27
</span>
<span class="post-category">
| 分类于
<a href="/categories/Java/">Java</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/10/27/微信扫码登录场景实现及延伸/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/10/27/微信扫码登录场景实现及延伸/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>用过微信网页版的人应该都清楚网页登陆的流程,大致描述一下这个过程: </p>
<ol>
<li>打开网页版登陆<a href="https://wx.qq.com/">链接</a></li>
<li>页面会显示一个二维码</li>
<li>用微信客户端扫描二维码,让用户确认登陆网页版</li>
<li>如果确认登陆,网页版会自动进入聊天界面</li>
</ol>
<p>这个过程的交互方式和一般的WEB应用不太一样,<code>步骤4</code>网页自动跳转,明显是由服务端主动推送了内容给网页端,网页端收到跳转确认后才触发的,这里就引出了今天要讨论的问题:<code>服务端推送技术</code>.服务端推送又称为Comet,服务端异步处理等.很早以前就出现了,但一直没有一个统一的标准,存在着不少Comet技术框架,各个Web容器也各自实现了自己的Comet支持.最近公司的产品也出现了和微信网页版登陆类似的场景,需要用到Comet技术,我简单的研究了下,写下来记录一下.</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/10/27/微信扫码登录场景实现及延伸/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/10/27/使用jconsole监控JVM运行状况/">
使用jconsole监控JVM运行状况
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-10-27
</span>
<span class="post-category">
| 分类于
<a href="/categories/Java/">Java</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/10/27/使用jconsole监控JVM运行状况/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/10/27/使用jconsole监控JVM运行状况/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>最近有个服务运行几天就会莫名其妙的无法调用, 但使用<code>jps -m|grep 服务名称</code>指令查看后发现服务进程仍然存在; 因此怀疑可能是有内存泄漏导致进程编程”僵尸”进程.</p>
<p>为此决定使用jconsole来对指定进程的JVM进行监控, 下面将详细介绍如何配置Linux JRE来监控内存.</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/10/27/使用jconsole监控JVM运行状况/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/07/07/Linux下MySQL-5-5的修改字符集编码为UTF8/">
Linux下MySQL_5.5的修改字符集编码为UTF8
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-07-07
</span>
<span class="post-category">
| 分类于
<a href="/categories/DB/">DB</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/07/07/Linux下MySQL-5-5的修改字符集编码为UTF8/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/07/07/Linux下MySQL-5-5的修改字符集编码为UTF8/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>mysql安装后, 插入的数据位乱码, 经检查为默认字符集是<code>latin1</code>, 而程序使用<code>UTF-8</code>.</p>
<h2 id="检查字符集">检查字符集</h2><p>1.使用ssh终端连接mysql</p>
<figure class="highlight cpp"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">mysql -h <span class="number">127.0</span><span class="number">.0</span><span class="number">.1</span> -u root -p</span><br></pre></td></tr></table></figure>
<p>2.查看字符集</p>
<figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="operator"><span class="keyword">show</span> <span class="keyword">variables</span> <span class="keyword">like</span> <span class="string">'character%'</span>;</span></span><br></pre></td></tr></table></figure>
<div class="post-more-link text-center">
<a class="btn" href="/2015/07/07/Linux下MySQL-5-5的修改字符集编码为UTF8/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/07/05/ngrok暴露本地Web应用映射到外网/">
ngrok暴露本地Web应用映射到外网
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-07-05
</span>
<span class="post-category">
| 分类于
<a href="/categories/代理/">代理</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/07/05/ngrok暴露本地Web应用映射到外网/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/07/05/ngrok暴露本地Web应用映射到外网/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>开发第三方支付, 需要接收第三方回调(即在外网上暴露api), 发现<a href="https://ngrok.com/">ngrok</a>可以完成该业务, 下面具体介绍其使用.</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/07/05/ngrok暴露本地Web应用映射到外网/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/07/03/SOA服务总线设计/">
SOA服务总线设计
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-07-03
</span>
<span class="post-category">
| 分类于
<a href="/categories/架构/">架构</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/07/03/SOA服务总线设计/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/07/03/SOA服务总线设计/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据).在分布式系统中,不同子系统之间需要实现相互通信和远程调用,比较直接的方式就是“点对点”的通信方式,但是这样会暴露出一些很明显的问题:系统之间紧密耦合、配置和引用混乱、服务调用关系错综复杂、难以统一管理、异构系统之间存在不兼容等.而基于总线的设计,正是为了解决上述问题.总线则作为中枢系统,提供统一的服务入口,并实现了服务统一管理、服务路由、协议转换、数据格式转换等功能.这样能够将不同系统有效地连接起来,并大大降低了连接数(每个子系统只需要和总线建立连接)和系统间连接拓扑的复杂度.<br>
<div class="post-more-link text-center">
<a class="btn" href="/2015/07/03/SOA服务总线设计/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/07/03/CAP原理和最终一致性/">
CAP原理和最终一致性
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-07-03
</span>
<span class="post-category">
| 分类于
<a href="/categories/架构/">架构</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/07/03/CAP原理和最终一致性/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/07/03/CAP原理和最终一致性/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>在足球比赛里,一个球员在一场比赛中进三个球,称之为帽子戏法(Hat-trick).在分布式数据系统中,也有一个帽子原理(CAP Theorem),不过此帽子非彼帽子.CAP原理中,有三个要素:</p>
<ul>
<li>一致性(Consistency)</li>
<li>可用性(Availability)</li>
<li>分区容忍性(Partition tolerance)</li>
</ul>
<p>CAP原理指的是,这三个要素最多只能同时实现两点,不可能三者兼顾.因此在进行分布式架构设计时,必须做出取舍.而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值.因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡.对于大多数web应用,其实并不需要强一致性,因此牺牲一致性而换取高可用性,是目前多数分布式数据库产品的方向.</p>
<p>当然,牺牲一致性,并不是完全不管数据的一致性,否则数据是混乱的,那么系统可用性再高分布式再好也没有了价值.牺牲一致性,只是不再要求关系型数据库中的强一致性,而是只要系统能达到最终一致性即可,考虑到客户体验,这个最终一致的时间窗口,要尽可能的对用户透明,也就是需要保障“用户感知到的一致性”.通常是通过数据的多份异步复制来实现系统的高可用和数据的最终一致性的,“用户感知到的一致性”的时间窗口则取决于数据复制到一致状态的时间.</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/07/03/CAP原理和最终一致性/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/07/03/SOA初探/">
SOA初探
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-07-03
</span>
<span class="post-category">
| 分类于
<a href="/categories/架构/">架构</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/07/03/SOA初探/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/07/03/SOA初探/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>曾今SOA的概念犹如今日“云计算、大数据”一样,被炒得火热,不少企业便纷纷响应,并宣称会拥抱和实施SOA.而事实上,业界出现了两种极端:一种是由于各类文章和书籍关于SOA的描述往往太过抽象,再加上各大厂商的呼吁,使得SOA往往显得“高大上”,令不少企业和架构师们望而却步.第二种恰好相反,有部分人却认为SOA无非是“新瓶装旧酒”.</p>
<p>个人理解,SOA在宏观上确实太复杂,因为它涉及到的不仅仅是技术和架构本身.而从技术的视角来看,并非难以落地.</p>
<p>SOA全称“面向服务架构”,它提供的是一种架构风格和理念,而并非是一种技术或者产品.并不是说项目中用了WebService、WCF、Hessian、RMI之类的就是SOA了.</p>
<p>通俗点来讲,SOA提倡将不同应用程序的业务功能封装成“服务”并宿主起来,通常以接口和契约的形式暴露并提供给外界应用访问(通过交换消息),达到不同系统可重用的目的.</p>
<p>流行的WebService等可以看作是实现SOA基础设施的技术方法.当然,实践SOA不仅需要解决服务调用的问题,还包括服务编排、服务治理、服务路由、服务监控等一系列的问题.在大型分布式系统中,SOA被广泛实践,但是在不同的应用场景中,设计方法也大不相同.</p>
<p>SOA是一个组件模型,它能将不同的服务通过定义良好的接口和契约联系起来.服务是SOA的基石,在开始服务设计和SOA实践之前,有必要先了解服务的概念以及服务的常见特性.</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/07/03/SOA初探/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/06/02/理解RMI中的Stub/">
理解RMI中的Stub
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-06-02
</span>
<span class="post-category">
| 分类于
<a href="/categories/设计模式/">设计模式</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/06/02/理解RMI中的Stub/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/06/02/理解RMI中的Stub/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>以前编程时也碰到过<code>Stub</code>这个名词, 但没关注, 今天研究<code>Paypal Rest API</code>又碰到到这个词, 决定探查个究竟.</p>
<h2 id="通俗解释">通俗解释</h2><p>Stub 跟 Proxy 是一对,俗称<code>代理-桩</code>,一般用在远程方法调用.</p>
<p>Proxy 相当于是拿在手里的遥控器,而 Stub 相当于长在电视机里的遥控接收器,它们有着一一对应的接口方法.</p>
<p>Proxy 的接口供客户端程序调用,然后它内部会把信息包装好,以某种方式(比如 RMI)传递给 Stub,而后者通过对应的接口作用于服务端系统,从而完成了<code>远程调用</code>.</p>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/05/23/阿里巴巴分布式服务框架-Dubbo问与答/">
阿里巴巴分布式服务框架-Dubbo问与答
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-05-23
</span>
<span class="post-category">
| 分类于
<a href="/categories/中间件/">中间件</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/05/23/阿里巴巴分布式服务框架-Dubbo问与答/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/05/23/阿里巴巴分布式服务框架-Dubbo问与答/"></span>
</a>
</span>
</div>
</div>
<div class="post-body fmt">
<h2 id="背景">背景</h2><p>Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo自2011年开源后,已被许多非阿里系公司使用。</p>
<p>项目主页:<a href="http://dubbo.io/Home-zh.htm">http://dubbo.io/Home-zh.htm</a></p>
<h2 id="先来个自我介绍吧!">先来个自我介绍吧!</h2><p>我叫梁飞,花名虚极,之前负责Dubbo服务框架,现已调到天猫。</p>
<p>我的博客:<a href="http://javatar.iteye.com">http://javatar.iteye.com</a></p>
<h2 id="Dubbo是什么?能做什么?">Dubbo是什么?能做什么?</h2><p>Dubbo是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。</p>
<p>可参见:<a href="http://alibaba.github.io/dubbo-doc-static/Home-zh.htm">http://alibaba.github.io/dubbo-doc-static/Home-zh.htm</a></p>
<h2 id="Dubbo适用于哪些场景?">Dubbo适用于哪些场景?</h2><p>当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。</p>
<div class="post-more-link text-center">
<a class="btn" href="/2015/05/23/阿里巴巴分布式服务框架-Dubbo问与答/#more">
阅读全文 »
</a>
</div>
</div>
<div class="post-footer">
<div class="post-eof"></div>
</div>
</div>
<div class="post post-type-normal ">
<div class="post-header">
<h1 class="post-title">
<a class="post-title-link" href="/2015/04/18/前后端完全分离之API设计/">
前后端完全分离之API设计
</a>
</h1>
<div class="post-meta">
<span class="post-time">
发表于 2015-04-18
</span>
<span class="post-category">
| 分类于
<a href="/categories/架构/">架构</a>
</span>
<span class="post-comments-count">
|
<a href="/2015/04/18/前后端完全分离之API设计/#comments" >
<span class="post-comments-count ds-thread-count" data-thread-key="2015/04/18/前后端完全分离之API设计/"></span>
</a>
</span>