Attila Szegedi, Software Engineer @asz
1
Wednesday, November 23, 11
Attila Szegedi, Software Engineer @asz 1 Wednesday, November 23, - - PowerPoint PPT Presentation
Attila Szegedi, Software Engineer @asz 1 Wednesday, November 23, 11 Twitters Open Source Involvements 2 Wednesday, November 23, 11 Both users and producers Twitters systems are almost completely based on Open Source software
Attila Szegedi, Software Engineer @asz
1
Wednesday, November 23, 11
2
Wednesday, November 23, 11
3
Wednesday, November 23, 11
4
Wednesday, November 23, 11
5
Wednesday, November 23, 11
6
Wednesday, November 23, 11
7
Wednesday, November 23, 11
8
Wednesday, November 23, 11
9
that its owner admired in his travels around Europe. Hearst was an omnivorous buyer who did not so much purchase art and antiques to furnish his home as built his home to get his bulging collection out of warehouses… The floor plan of the Main Building is chaotic due to his habit of buying centuries-old ceilings, which dictated the proportions and decor of various rooms.” --Wikipedia
Wednesday, November 23, 11
10
Wednesday, November 23, 11
11
Wednesday, November 23, 11
12
Wednesday, November 23, 11
13
Wednesday, November 23, 11
14
Wednesday, November 23, 11
15
Wednesday, November 23, 11
16
Wednesday, November 23, 11
17
Wednesday, November 23, 11
18
Wednesday, November 23, 11
19
Wednesday, November 23, 11
20
Wednesday, November 23, 11
21
Wednesday, November 23, 11
22
Wednesday, November 23, 11
23
Wednesday, November 23, 11
24
Wednesday, November 23, 11
25
Wednesday, November 23, 11
26
Wednesday, November 23, 11
27
Wednesday, November 23, 11
28
Wednesday, November 23, 11
29
Wednesday, November 23, 11
30
val service: Service[HttpRequest, HttpResponse] = new Service[HttpRequest, HttpResponse] { def apply(request: HttpRequest) = Future(new DefaultHttpResponse(HTTP_1_1, OK)) } val server: Server[HttpRequest, HttpResponse] = ServerBuilder() .codec(Http) .bindTo(new InetSocketAddress(10000)) .name("HttpServer") .build(service) Service<HttpRequest, HttpResponse> service = new Service<HttpRequest, HttpResponse>() { public Future<HttpResponse> apply(HttpRequest request) { return Future.value( new DefaultHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK)); } }; Server server = ServerBuilder.safeBuild(service, ServerBuilder.get() .codec(Http.get()) .name("HttpServer") .bindTo(new InetSocketAddress("localhost", 10000)));
Wednesday, November 23, 11
31
val client: Service[HttpRequest, HttpResponse] = ClientBuilder() .codec(Http) .hosts(address) .hostConnectionLimit(1) .build() // Issue a request, get a response: val request: HttpRequest = new DefaultHttpRequest(HTTP_1_1, GET, "/") val responseFuture: Future[HttpResponse] = client(request)
}
Wednesday, November 23, 11
32
val client = ClientBuilder() .codec(Http) .hosts("localhost:10000,localhost:10001,localhost:10003") .hostConnectionLimit(1) // max num of connections at a time to a host .connectionTimeout(1.second) // max time to spend establishing a conn .retries(2) // (1) per-request retries .reportTo(new OstrichStatsReceiver) // export host-level load data .logger(Logger.getLogger("http")) .build()
Wednesday, November 23, 11
33
Wednesday, November 23, 11
34
Wednesday, November 23, 11
35
Wednesday, November 23, 11
36
Wednesday, November 23, 11
37
val future = dispatch(request) val response = future() // blocks val future = dispatch(request) future onSuccess { value => // do something asynchronously } val future = dispatch(request) if (future.isDefined()) { val response = future() } else { // do something - timeout? }
Wednesday, November 23, 11
38
Wednesday, November 23, 11
39
Wednesday, November 23, 11
40
Wednesday, November 23, 11
41
Wednesday, November 23, 11
42
Wednesday, November 23, 11
43
Wednesday, November 23, 11
44
Wednesday, November 23, 11
45
Wednesday, November 23, 11
46
Wednesday, November 23, 11
47
Wednesday, November 23, 11
48
Wednesday, November 23, 11
49
Wednesday, November 23, 11
50
Wednesday, November 23, 11
51
Wednesday, November 23, 11
52
Wednesday, November 23, 11
53
Wednesday, November 23, 11
54
Wednesday, November 23, 11
55
Wednesday, November 23, 11
56
Wednesday, November 23, 11
57
Wednesday, November 23, 11
58
Wednesday, November 23, 11
59
Wednesday, November 23, 11
Attila Szegedi, Software Engineer @asz
60
Wednesday, November 23, 11