---
title: 科技英文-Reactive Performance by Oleh Dokuka
---
#Reactive Performance by Oleh Dokuka-2/2
1165
01:00:59,119 --> 01:01:04,110
long chain of of pipes or operators
長鏈的管道或操作員
1166
01:01:04,309 --> 01:01:06,660
within your within your data processing
在您的資料處理範圍內
1167
01:01:06,860 --> 01:01:11,370
pipeline you can have a really huge win
管道可以取得巨大的勝利
1168
01:01:11,570 --> 01:01:16,500
by using by using growl by using growl
通過使用咆哮通過使用咆哮
1169
01:01:16,699 --> 01:01:22,050
vm and by using growl GT optimization of
vm並通過使用growl GT優化
1170
01:01:22,250 --> 01:01:24,200
course which which happens at runtime
在運行時發生的過程
1171
01:01:24,400 --> 01:01:27,120
however as we will see a little bit
但是,正如我們將看到的一點
1172
01:01:27,320 --> 01:01:30,200
later it's it's a little bit
後來有一點
1173
01:01:30,400 --> 01:01:33,870
controversial and but I will I will be
有爭議的,但我會的
1174
01:01:34,070 --> 01:01:35,550
talking a bit about that a little bit
談一點
1175
01:01:35,750 --> 01:01:38,730
later so for now in general to summarize
以後再來概括一下
1176
01:01:38,929 --> 01:01:40,700
we can have a huge performance
我們可以有出色的表現
1177
01:01:40,900 --> 01:01:44,460
improvement just by using for example C
僅通過使用例如C來改善
1178
01:01:44,659 --> 01:01:47,400
version of growl we can win round from
我們可以從中贏得勝利的咆哮聲
1179
01:01:47,599 --> 01:01:51,750
from 6% to 10% which is in case of a
從6%到10%
1180
01:01:51,949 --> 01:01:56,070
really huge number of servers and in
大量的伺服器和
1181
01:01:56,269 --> 01:01:58,490
case of really
真的
1182
01:01:58,690 --> 01:02:00,919
which infrastructure you can save a lot
您可以節省多少基礎架構
1183
01:02:01,119 --> 01:02:04,669
of Funyuns you can save a lot of spans
Funyuns可以節省很多跨度
1184
01:02:04,869 --> 01:02:08,740
and on your infrastructure by just using
只需使用
1185
01:02:08,940 --> 01:02:14,899
brawl in your in your application all
在您的應用程式中爭吵
1186
01:02:15,099 --> 01:02:17,659
right so let's talk a little bit on
對,所以讓我們談談
1187
01:02:17,858 --> 01:02:21,680
another another optimization that we can
我們可以進行的另一項優化
1188
01:02:21,880 --> 01:02:26,659
do for for our reactive streams and one
為我們的反應流和一個
1189
01:02:26,858 --> 01:02:28,730
of the options that we can do without
我們可以做的選擇
1190
01:02:28,929 --> 01:02:31,389
changing any line of code is of course
更改任何代碼行當然是
1191
01:02:31,588 --> 01:02:36,740
choosing the GC so in general every
選擇GC,所以通常每個
1192
01:02:36,940 --> 01:02:40,639
object that usually usually goes who
通常會去誰的對象
1193
01:02:40,838 --> 01:02:43,369
reactive pipeline is immutable object if
反應管道是不可變的物件,如果
1194
01:02:43,568 --> 01:02:46,250
you don't have immutable objects you
你沒有不變的物件
1195
01:02:46,449 --> 01:02:49,490
should think twice about about that
應該三思而後行
1196
01:02:49,690 --> 01:02:54,230
because a lot of a lot of you can have a
因為你們很多人可以擁有
1197
01:02:54,429 --> 01:02:56,840
lot of pain by by using beautiful
通過使用美麗帶來很多痛苦
1198
01:02:57,039 --> 01:02:59,990
objects so you have to probably move to
物件,所以您可能必須移動到
1199
01:03:00,190 --> 01:03:02,690
immutable one and in general when we are
一成不變的,一般來說,當我們
1200
01:03:02,889 --> 01:03:05,149
talking about a mutable object and
談論易變的物體
1201
01:03:05,349 --> 01:03:08,240
especially about those objects within
特別是那些裡面的東西
1202
01:03:08,440 --> 01:03:10,280
the stream we are talking about
我們正在談論的流
1203
01:03:10,480 --> 01:03:14,570
short-lived objects and this short life
短暫的物體和短暫的生命
1204
01:03:14,769 --> 01:03:17,510
objects GC works very well because all
物件GC工作得很好,因為所有
1205
01:03:17,710 --> 01:03:19,700
they are accused in the young generation
他們被指控為年輕一代
1206
01:03:19,900 --> 01:03:24,470
and now we have to say which GC works
現在我們不得不說哪個GC有效
1207
01:03:24,670 --> 01:03:28,430
well these short life objects and works
這些短暫的生活物件和作品
1208
01:03:28,630 --> 01:03:32,090
well with this young generation I'm not
對於這個年輕的一代,我不是
1209
01:03:32,289 --> 01:03:34,340
going to show you again all these
再次向您展示所有這些
1210
01:03:34,539 --> 01:03:36,740
benchmarks I'm going to show you just a
基準,我將向您展示一個
1211
01:03:36,940 --> 01:03:40,010
benchmark that they found on the on the
他們在上找到的基準
1212
01:03:40,210 --> 01:03:42,680
Twitter from David corner the David
大衛(David)的推特(twitter)
1213
01:03:42,880 --> 01:03:44,840
corner is the officer of one of the
角落是其中一名官員
1214
01:03:45,039 --> 01:03:47,750
authors of Eric's java and reactor 3 and
Eric的Java和Reactor 3的作者以及
1215
01:03:47,949 --> 01:03:50,990
he did some measurements I did almost
他做了一些測量,我幾乎
1216
01:03:51,190 --> 01:03:54,379
similar but in general he had much
類似,但總的來說他有很多
1217
01:03:54,579 --> 01:03:56,629
better comparison and table of
更好的比較和表
1218
01:03:56,829 --> 01:03:59,480
comparison and in general if you are
比較,如果您是
1219
01:03:59,679 --> 01:04:04,310
looking for or good throat put you
尋找或嗓子好把你
1220
01:04:04,510 --> 01:04:06,500
probably should use parallel you see
大概應該使用並行
1221
01:04:06,699 --> 01:04:09,230
because parallel GC uses the last number
因為並行GC使用最後一個數字
1222
01:04:09,429 --> 01:04:11,220
of threads
執行緒
1223
01:04:11,420 --> 01:04:17,159
in that way allocate less or use less
這樣分配更少或使用更少
1224
01:04:17,358 --> 01:04:22,079
threads for for memory and for garbage
用於記憶體和垃圾的執行緒
1225
01:04:22,278 --> 01:04:24,990
collection however from my experience
但是從我的經驗來看
1226
01:04:25,190 --> 01:04:28,289
and from my experience of building high
而從我的高樓建設經驗
1227
01:04:28,489 --> 01:04:30,869
performance application in production in
性能在生產中的應用
1228
01:04:31,068 --> 01:04:34,740
life and one of the GC that we are using
生活和我們正在使用的GC之一
1229
01:04:34,940 --> 01:04:39,780
in in our this is in our company for run
在我們這是在我們公司中運行
1230
01:04:39,980 --> 01:04:43,139
in our socket infrastructure here we
在我們的通訊端基礎架構中,
Socket:put something into it
Infrastructure:base
1231
01:04:43,338 --> 01:04:45,539
are using G 1 GC which is also an
使用的是G 1 GC
1232
01:04:45,739 --> 01:04:48,240
excellent garbage collector which is
優秀的垃圾收集器
1233
01:04:48,440 --> 01:04:52,260
tuned it for low latency and for
對其進行了調整,以實現低延遲和
Latency:delay between computers
1234
01:04:52,460 --> 01:04:55,649
recta streams it shows a really good
直腸流顯示它真的很好
1235
01:04:55,849 --> 01:04:57,389
performance as well and a really good
性能也很好
1236
01:04:57,588 --> 01:05:00,919
throat put along with a really lot good
喉嚨放的很好
1237
01:05:01,119 --> 01:05:05,190
latency so we are going to we are going
延遲,所以我們要去
1238
01:05:05,389 --> 01:05:07,560
to play with GC a little bit later and
稍後再玩GC
1239
01:05:07,760 --> 01:05:10,318
now we just have to pay attention to
現在我們只需要注意
1240
01:05:10,518 --> 01:05:14,490
those numbers and remember which GC is a
這些數字,並記住哪個GC是
1241
01:05:14,690 --> 01:05:16,289
little bit better for reactive streams
反應性流好一點
1242
01:05:16,489 --> 01:05:20,669
and finally the final stage which I'm
最後是我的最後階段
1243
01:05:20,869 --> 01:05:24,568
going to I'm going to cover is some
我要覆蓋的是一些
1244
01:05:24,768 --> 01:05:26,849
tuning of the operators that I mention
我提到的運營商調整
1245
01:05:27,048 --> 01:05:32,300
it a few slides ago and one of the
它是幾張幻燈片之前的一張
1246
01:05:32,500 --> 01:05:35,039
options that we can tune with in
我們可以調整的選項
1247
01:05:35,239 --> 01:05:38,010
reactive streams is tuning the the size
反應流正在調整大小
1248
01:05:38,210 --> 01:05:40,859
of the queue because as you have as you
之所以排隊,是因為您擁有
1249
01:05:41,059 --> 01:05:43,200
can remember we have a few operators
記得我們有幾個操作員
1250
01:05:43,400 --> 01:05:46,649
like flat map like Kincaid map like
像平地圖一樣
1251
01:05:46,849 --> 01:05:49,068
published on which is which relies on
出版哪個依賴
1252
01:05:49,268 --> 01:05:52,530
some view and in many cases we just
一些觀點,在許多情況下,我們只是
1253
01:05:52,730 --> 01:05:54,780
write a flat map with no additional
無需額外書寫平面地圖
1254
01:05:54,980 --> 01:05:56,909
parameters just a lambda that converts
參數只是一個可以轉換的lambda
1255
01:05:57,108 --> 01:06:00,809
an element T to another stream and
元素T到另一個流,並且
1256
01:06:01,009 --> 01:06:03,930
that's the most common what we can do
那是我們最常做的
1257
01:06:04,130 --> 01:06:07,349
here and we are doing here and we are
在這裡,我們正在這裡,我們正在
1258
01:06:07,548 --> 01:06:10,818
doing and we do that in most cases and
我們在大多數情況下都這樣做
1259
01:06:11,018 --> 01:06:14,490
sometimes we forget about additional
有時我們忘記了其他
1260
01:06:14,690 --> 01:06:16,909
options and additional parameters it can
選項和其他參數
1261
01:06:17,108 --> 01:06:20,430
impact a lot of your on that can impact
對您的影響很大
1262
01:06:20,630 --> 01:06:24,510
your performance a lot however its
你的表現很多,但是
1263
01:06:24,710 --> 01:06:27,659
if you forgot to try to change these
如果您忘記嘗試更改這些
1264
01:06:27,858 --> 01:06:30,119
additional parameters if you didn't pay
其他參數(如果您不付款)
1265
01:06:30,318 --> 01:06:32,639
attention to those additional parameters
注意那些附加參數
1266
01:06:32,838 --> 01:06:35,340
and overloads or for example flatmap or
和超載,例如平面圖或
1267
01:06:35,539 --> 01:06:38,970
publish on you can always tune those
發佈您可以隨時調整那些
1268
01:06:39,170 --> 01:06:41,669
parameters in your application by
您的應用程式中的參數
1269
01:06:41,869 --> 01:06:44,389
providing additional arguments like
提供其他參數,例如
1270
01:06:44,588 --> 01:06:48,629
reactor buffer size or its small use and
反應堆緩衝區大小或使用少
1271
01:06:48,829 --> 01:06:51,539
for small use and if they're going back
少量使用,如果他們要回去
1272
01:06:51,739 --> 01:06:56,450
to you to you to our demo small demo
給你給你來我們的演示小演示
1273
01:06:56,650 --> 01:07:01,800
applications and if we are going to - in
應用程式,如果我們要-
1274
01:07:02,000 --> 01:07:04,919
order to show you how changing or how
為了向您展示如何變化或如何
1275
01:07:05,119 --> 01:07:07,470
tuning of those applications or those
那些應用程式的調優
1276
01:07:07,670 --> 01:07:10,470
parameters can impact your performance
參數可能會影響您的效果
1277
01:07:10,670 --> 01:07:14,159
and going to tune a little bit of those
然後去調一些
1278
01:07:14,358 --> 01:07:17,000
parameters for for this really plain
這個很簡單的參數
1279
01:07:17,199 --> 01:07:20,730
plain stream in order to make this more
普通流,以使其更多
1280
01:07:20,929 --> 01:07:23,930
realistic I'm going to do some warm-up
現實的我要做一些熱身
1281
01:07:24,130 --> 01:07:26,940
between and I'm going to measure some
之間,我要測量一些
1282
01:07:27,139 --> 01:07:30,210
time of execution of this stream so
執行此流的時間,因此
1283
01:07:30,409 --> 01:07:32,669
basically as let me remind you what is
基本上讓我提醒你什麼是
1284
01:07:32,869 --> 01:07:34,590
going on here basically we create a
基本上在這裡我們創建一個
1285
01:07:34,789 --> 01:07:37,619
stream of 1000 elements and then we
1000個元素的流,然後我們
1286
01:07:37,818 --> 01:07:41,070
create another 1000 of sub stream
再創建1000個子流
1287
01:07:41,269 --> 01:07:46,500
elements since we have some options and
元素,因為我們有一些選擇和
1288
01:07:46,699 --> 01:07:49,169
some additional over overloads for
一些額外的超載
1289
01:07:49,369 --> 01:07:52,109
flatmap like like prefetch size and
平面圖,例如預取大小和
1290
01:07:52,309 --> 01:07:55,019
concurrency which means that concurrency
併發,這意味著併發
1291
01:07:55,219 --> 01:07:58,950
is how many how many sub strings we can
我們可以有多少個子字串
1292
01:07:59,150 --> 01:08:01,980
have at a time within our fight flat map
一次在我們的戰鬥平面圖中
1293
01:08:02,179 --> 01:08:04,950
or in other work how many streams can be
或在其他工作中可以有多少個流
1294
01:08:05,150 --> 01:08:08,280
merged at the same time within one flat
在同一單位內同時合併
1295
01:08:08,480 --> 01:08:11,490
map and prefetch which means how many
映射並預取,這意味著有多少
Fetch:to catch something
Pre:before
1296
01:08:11,690 --> 01:08:14,399
elements I would like to request the
我想要求的元素
1297
01:08:14,599 --> 01:08:19,050
first two in our for at the first for
在我們的頭兩個
1298
01:08:19,250 --> 01:08:22,110
our eternal sub string so it means how
我們永恆的子字串,這意味著
1299
01:08:22,310 --> 01:08:24,960
many elements I would like to to request
我想要求的許多要素
1300
01:08:25,159 --> 01:08:31,028
at first for in our internal stream and
首先在我們的內部流中
1301
01:08:31,448 --> 01:08:35,369
those elements can impact your
這些元素會影響您
1302
01:08:35,569 --> 01:08:37,260
performance a lot so let me show you
表現很多,讓我告訴你
1303
01:08:37,460 --> 01:08:38,289
looking just show
看起來只是秀
1304
01:08:38,489 --> 01:08:45,039
you the over the average time that this
您超過平均時間
1305
01:08:45,239 --> 01:08:48,190
execution takes so basically I do some
執行基本上需要我做一些
1306
01:08:48,390 --> 01:08:50,409
warm-up so my runtime should be happy
熱身,讓我的運行時快樂
warm-up: 熱身
1307
01:08:50,609 --> 01:08:52,989
with what is going on and if I'm going
發生了什麼,如果我要去
1308
01:08:53,189 --> 01:08:55,239
to rerun this application I will
重新運行此應用程式,我將
1309
01:08:55,439 --> 01:09:01,329
basically have the same output so around
基本上有相同的輸出
1310
01:09:01,529 --> 01:09:04,239
four seconds so everything that you can
四秒鐘,讓您可以做的一切
1311
01:09:04,439 --> 01:09:09,340
see is in miles so you have to to split
看到以英里為單位,所以您必須拆分
1312
01:09:09,539 --> 01:09:13,239
that on 1000 and have four seconds now
在1000上,現在有四秒鐘
1313
01:09:13,439 --> 01:09:17,039
if I'm going to just change the default
如果我要更改預設值
1314
01:09:17,239 --> 01:09:21,489
the default parameters for my
我的默認參數
1315
01:09:21,689 --> 01:09:24,300
application to you for example this one
以您的申請為例
1316
01:09:24,500 --> 01:09:27,279
for example I'm going to I want to use
例如我要去使用
1317
01:09:27,479 --> 01:09:32,949
the smallest cue I want to I want to set
我想要設定的最小提示
1318
01:09:33,149 --> 01:09:35,680
the the queue size for the smallest cue
最小提示的佇列大小
1319
01:09:35,880 --> 01:09:37,029
for 1000
為1000
1320
01:09:37,229 --> 01:09:40,630
for example elements and for small mm
例如元素和小毫米
1321
01:09:40,829 --> 01:09:43,210
elements and the same configuration as
元素和相同的配置
Configuration:setting
1322
01:09:43,409 --> 01:09:51,159
you can remember absolutely depends on
你會記得絕對取決於
1323
01:09:51,359 --> 01:09:53,320
what is going on in flat nap so for
平坦的午睡是怎麼回事
1324
01:09:53,520 --> 01:09:56,289
default parameters for no let's say it
不用說的默認參數
1325
01:09:56,489 --> 01:10:00,000
let's name it no arguments except mapper
讓我們將其命名為沒有任何參數,除了mapper
1326
01:10:00,199 --> 01:10:03,880
overload in that case the default
在這種情況下,超載
1327
01:10:04,079 --> 01:10:05,949
concurrency and default prefetch size
併發和默認預取大小
1328
01:10:06,149 --> 01:10:09,720
will be derived from small buffer size
將源自較小的緩衝區大小
1329
01:10:09,920 --> 01:10:12,730
which is here and which could be
在這裡,可能是
1330
01:10:12,930 --> 01:10:15,010
configured by providing that property
通過提供該屬性進行配置
1331
01:10:15,210 --> 01:10:17,980
and the prefetch size could be
並且預取大小可能是
1332
01:10:18,180 --> 01:10:20,920
configured by this property which can we
通過此屬性配置,我們可以
1333
01:10:21,119 --> 01:10:24,730
can set up in this way and just by
可以通過這種方式設置
1334
01:10:24,930 --> 01:10:28,510
tuning those three options we can
調整這三個選項,我們可以
1335
01:10:28,710 --> 01:10:30,820
increase our performance maybe in two
提高我們的表現也許在兩次
1336
01:10:31,020 --> 01:10:34,260
times yeah it's around one second and
是的,大約一秒鐘
1337
01:10:34,460 --> 01:10:38,949
600 miles here which is almost two times
600英里,幾乎是兩倍
1338
01:10:39,149 --> 01:10:40,810
better or three times better than
好於三倍
1339
01:10:41,010 --> 01:10:43,539
previous number which is good so
以前的號碼很好
1340
01:10:43,739 --> 01:10:47,079
basically we can just simply tune those
基本上我們可以簡單地調整那些
1341
01:10:47,279 --> 01:10:49,539
two parameters in order to improve our
為了改善我們的兩個參數
1342
01:10:49,739 --> 01:10:51,289
performance in our
在我們的表現
1343
01:10:51,489 --> 01:10:54,350
application as well however you should
應用程式,但是你應該
1344
01:10:54,550 --> 01:10:57,159
remember that by tuning those parameters
記住,通過調整這些參數
1345
01:10:57,359 --> 01:11:01,220
they have you have another impact you
他們對你有另一種影響
1346
01:11:01,420 --> 01:11:03,159
have an impact on the memory because
對記憶體有影響,因為
1347
01:11:03,359 --> 01:11:07,060
every cue allocation it means
每個提示分配意味著
1348
01:11:07,260 --> 01:11:09,860
allocation of the in the simplest case
在最簡單的情況下分配
1349
01:11:10,060 --> 01:11:12,920
allocation off of RA under the hood
幕後分配RA
1350
01:11:13,119 --> 01:11:16,159
which means that your streams will will
這意味著您的視頻流將
1351
01:11:16,359 --> 01:11:20,779
do have much more will use much more
確實有更多會使用更多
1352
01:11:20,979 --> 01:11:21,920
memory than before
記憶力比以前
1353
01:11:22,119 --> 01:11:24,640
so you have remember about that as well
所以你也記得
1354
01:11:24,840 --> 01:11:28,550
and the same could be done for publish
可以為發佈做同樣的事情
1355
01:11:28,750 --> 01:11:32,630
on and for publish operator and for
在和發佈運營商和
1356
01:11:32,829 --> 01:11:35,690
Kinkaid map because all ram relies on on
Kinkaid地圖,因為所有ram都依賴
1357
01:11:35,890 --> 01:11:38,119
this default for example here we use the
例如,這裡使用預設值
1358
01:11:38,319 --> 01:11:41,180
same small buffer size per default which
每個默認的相同小緩衝區大小
1359
01:11:41,380 --> 01:11:44,539
means that here we have some prefetch
意味著這裡我們有一些預取
1360
01:11:44,739 --> 01:11:48,470
size higher than than before and in that
大小比以前大
1361
01:11:48,670 --> 01:11:50,510
case it potentially can improve the
可能會改善
1362
01:11:50,710 --> 01:11:52,460
performance by requesting more elements
通過請求更多元素來提高性能
1363
01:11:52,659 --> 01:11:55,550
from a synchronous source and in that
從同步源
1364
01:11:55,750 --> 01:11:57,020
case we can produce an increase
這樣我們就可以增加
1365
01:11:57,220 --> 01:11:59,329
performance as well and the same applies
性能也一樣
1366
01:11:59,529 --> 01:12:01,340
for complete map and for public ROM and
以獲得完整的地圖和公共ROM,以及
1367
01:12:01,539 --> 01:12:05,570
for public so when your when you are
對於公眾,所以當你當你
1368
01:12:05,770 --> 01:12:07,550
going to tune your application you have
要調整您的應用程式
1369
01:12:07,750 --> 01:12:10,130
to take into account those properties
考慮這些屬性
1370
01:12:10,329 --> 01:12:11,480
and you have to play with those
而且你必須和那些人一起玩
1371
01:12:11,680 --> 01:12:17,329
properties as well all right now let's
屬性,現在就讓我們
1372
01:12:17,529 --> 01:12:19,220
let's take a look at the real
讓我們來看看真正的
1373
01:12:19,420 --> 01:12:21,920
application and now let's try to apply
應用程式,現在讓我們嘗試應用
1374
01:12:22,119 --> 01:12:25,460
in all of those all of those two in all
在所有這兩個中
1375
01:12:25,659 --> 01:12:28,579
all of those dream changes all of those
所有這些夢想改變了所有那些
1376
01:12:28,779 --> 01:12:32,449
additional parameters to to our real
附加參數到我們的真實
1377
01:12:32,649 --> 01:12:36,920
application and see whether it improves
應用程式,看看是否有所改善
1378
01:12:37,119 --> 01:12:40,820
performance or not so here let me
表演與否所以在這裡讓我
1379
01:12:41,020 --> 01:12:44,270
shortly explain the application that I
簡要說明一下我的申請
1380
01:12:44,470 --> 01:12:47,810
have here so here is the image of the
有這裡所以這是
1381
01:12:48,010 --> 01:12:50,960
application that we are going to to work
我們將要工作的應用程式
1382
01:12:51,159 --> 01:12:55,130
with so here I have some cluster of
所以在這裡我有一些
1383
01:12:55,329 --> 01:12:58,789
services and here I have a plain Marvel
服務,在這裡我有一個簡單的奇跡
1384
01:12:58,989 --> 01:13:02,000
application that allows me to to to run
允許我運行的應用程式
1385
01:13:02,199 --> 01:13:04,400
a tournament between marbles
大理石之間的比賽
Tournament: 比賽
Marbles:彈珠
1386
01:13:04,600 --> 01:13:07,730
Kinnock heroes and choose which Marvel
Kinnock英雄,然後選擇哪個奇跡
1387
01:13:07,930 --> 01:13:12,380
hero is the best one so I hope this this
英雄是最好的,所以我希望這個
1388
01:13:12,579 --> 01:13:14,710
guy build the working
傢伙建立工作
1389
01:13:14,909 --> 01:13:22,820
let me just rerun it come on as usual
讓我像往常一樣重新運行它
1390
01:13:23,020 --> 01:13:26,539
I don't want work so let me double check
我不想工作,所以讓我仔細檢查一下
1391
01:13:26,739 --> 01:13:29,779
whether it's running or not just a
無論它是否正在運行
1392
01:13:29,979 --> 01:13:33,170
second and I will be showing you yes
第二,我會向你展示
1393
01:13:33,369 --> 01:13:37,090
usually here I have here's viewer issues
通常這裡我有觀眾的問題
1394
01:13:37,289 --> 01:13:40,550
yeah let me just restore those guys and
是的,讓我恢復那些傢伙,
1395
01:13:40,750 --> 01:13:45,470
let me just restore the broker
讓我恢復經紀人
restore恢復
1396
01:13:45,670 --> 01:13:47,360
application in order to ensure that
申請以確保
1397
01:13:47,560 --> 01:13:51,770
everything is in good condition yeah so
一切都很好,是的,所以
1398
01:13:51,970 --> 01:13:56,510
in general as you have seen we have at
如您所見,通常
1399
01:13:56,710 --> 01:13:59,930
least four elements and four parts of
至少四個元素和四個部分
1400
01:14:00,130 --> 01:14:03,170
our system we have broker which is our
我們的系統我們有經紀人,這是我們的
1401
01:14:03,369 --> 01:14:05,720
socket broker we have an hour record
通訊端代理,我們有一個小時的記錄
1402
01:14:05,920 --> 01:14:08,779
server record server which can which can
伺服器記錄伺服器可以
1403
01:14:08,979 --> 01:14:11,449
communicate with database in in this
在此與資料庫通信
1404
01:14:11,649 --> 01:14:13,659
case we are using a little bit simpler
情況下,我們使用的更簡單
1405
01:14:13,859 --> 01:14:16,400
implementation of record servers which
記錄伺服器的實現
1406
01:14:16,600 --> 01:14:19,610
just consumes and pretend and supplies
只是消費,假裝和供應
1407
01:14:19,810 --> 01:14:22,279
data t-to to the requester from the
數據從
1408
01:14:22,479 --> 01:14:25,640
memory and here we have the client we
記憶,這裡有客戶,我們
1409
01:14:25,840 --> 01:14:27,680
have a tournament server which does
有一個比賽伺服器
1410
01:14:27,880 --> 01:14:30,500
which has some business logic in there
裡面有一些業務邏輯
1411
01:14:30,699 --> 01:14:35,060
so let me quickly go through the
所以讓我快速流覽一下
1412
01:14:35,260 --> 01:14:37,909
pipeline that we have so in general here
我們在這裡通常擁有的管道
1413
01:14:38,109 --> 01:14:41,000
we use a sum reactor stuff we use
我們使用總和反應堆的東西
1414
01:14:41,199 --> 01:14:44,779
publish on operator we use flat map here
在運營商上發佈我們在這裡使用平面地圖
1415
01:14:44,979 --> 01:14:46,789
will you subscribe on in order to run
您會訂閱以便運行嗎
1416
01:14:46,989 --> 01:14:49,579
our code on the different thread we use
我們在不同執行緒上使用的代碼
1417
01:14:49,779 --> 01:14:51,470
some buffer we use some additional
一些緩衝區,我們使用一些額外的
1418
01:14:51,670 --> 01:14:53,570
transformation and so for and so on and
等等,等等
1419
01:14:53,770 --> 01:14:56,329
since we use here our socket which is
因為我們在這裡使用我們的插座
1420
01:14:56,529 --> 01:14:59,750
reactive streams over the network so our
網路上的反應性流,所以我們
1421
01:14:59,949 --> 01:15:02,420
socket is basically the same reactive
插座基本上是相同的反應
1422
01:15:02,619 --> 01:15:04,340
streams as we have in Java but through
流,就像我們在Java中一樣
1423
01:15:04,539 --> 01:15:07,750
the network so it does everything to you
網路,以便它為您做一切
1424
01:15:07,949 --> 01:15:11,390
to encode your requests and elements to
將您的請求和元素編碼為
1425
01:15:11,590 --> 01:15:13,550
the frame and then decode it on the
幀,然後在
Frame:框
1426
01:15:13,750 --> 01:15:16,100
other side or on the other service and
另一方或另一方
1427
01:15:16,300 --> 01:15:18,320
in that way preserve
以這種方式保存
1428
01:15:18,520 --> 01:15:21,708
but pressure and it's build on top of it
但是壓力是建立在壓力之上的
1429
01:15:21,908 --> 01:15:24,079
and it's built for performance so it
它是為提高性能而設計的
1430
01:15:24,279 --> 01:15:27,380
uses only one only one connection and so
僅使用一個,只有一個連接,因此
1431
01:15:27,579 --> 01:15:29,600
foreign zone and in general this is the
外國區,通常這是
1432
01:15:29,800 --> 01:15:31,220
same react to streams but through the
相同的反應流,但通過
1433
01:15:31,420 --> 01:15:34,038
network that's all we have to know about
網路就是我們所需要知道的