【Udemy】gRPC [Golang] Master Class: 尝试学习构建现代 API 和微服务的【Golang】大师课程
首先、
-
- 年末にUdemyのコースがセールになってまして、Go言語使っててHTTP/2やmicroserviceが学べるコースがないかなと探してたらこれが見つかり買ってみました。
-
- gRPC [Golang] Master Class: Build Modern API & Microservices
でもすぐにやらなくて積んdemyなってました。。。
なので【Qiita×Udemy特別企画】学習応援イベントがやってたので試しにのっかってみました。
课程概要
在…之前
请用中文释义以下内容,仅需一种选择:
English
我觉得如果您查看此课程的内容,就会明白全部都是英语。
但是,并不使用特别困难的英语,而且这是关于编程的课程,只需要查看源代码并理解即可,所以我认为英语并不是一个太大的障碍。
我个人英语还可以,所以如果您不太擅长英语的话,可能需要稍微减一些思考负担。
总结
大致上就是这样的感觉。
-
- gRPC オーバービュー
-
- gRPC 詳細
-
- gRPC の各種実装パターン
Unary
Server Streaming
Client Streaming
Bi-Directional Streaming
その他機能の実装
エラー実装
デッドライン
SSLセキュリティ
別言語からの通信(Java)
gRPC のEvans クライアントの使い方
実践的なアプリを作ってみる
MongoDBと連携してCRUD APIを実装
おまけ(クーポンとか)
在gRPC的各种实现模式中,分别解释了一元、服务器流、客户端流、双向流模式,并重点介绍了与这些模式相关的编程解释。
做过的事情 (zuò guò de shì
专注于抄写!并不是要制作出像创建网页那样好看的东西,所以没有很酷的输出。
我将把仓库放在这里。
https://github.com/suganoo/go-grpc-course
我一直在启动gRPC服务器并执行客户端。
学到的东西
粗略概括每种模式
一元模式
直接发出请求并接收响应的模式。(1:1)
就像REST API那样。例如,发送两个数字,返回它们的总和。
服务器流式传输
投放请求后会收到多个响应的模式(1:n)。例如,发送一个数字,将会收到所有素数作为响应返回。
客户流媒体
如果发送多个请求,则会收到一个响应。(n:1)
例如,发送多个数值,将返回平均值。
双向流式传输
这是一种相互多次通信的模式。(n:n)
例如,准备多个数字,然后逐个发送数字,当接收到的数字更新了最大值时,返回最大值。
计算器
我写了一个示例来演示,可以创建一个应用程序来返回平均值或最大值。这让人感到很有意思。
与MongoDB进行集成的应用程序
我假设创建了一个博客,并且在MongoDB中存储数据并实现了CRUD操作。这是我第一次使用MongoDB,这让我学到了很多东西,包括MongoDB本身。它真的很方便。
埃文斯CLI
这是一个针对gRPC服务器的客户端应用程序。最后我稍微使用了一下,并觉得它非常方便!但是当我下载并构建它后,不知为何无法连接,感到非常遗憾。链接:https://github.com/ktr0731/evans
使用Java进行跨语言通信
我只在视频中看到了这个,它可以很好地与其他语言进行通信,非常方便。
MongoDB的驱动设置需要略加注意。
导入方式是否有所不同,如果不按照以下的写法定义import,则会出现错误。
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
如果有时间的话,我希望做的事情。
我設定了目標要在Udemy特別企劃的截止日期之前完成,不過我是在二月中旬才開始,所以只能完成課程而已。
由於在寫程式時湧現了很多想嘗試的事情,所以這成為了我未來的功課吧。
-
- HTTP/2通信としてはどうなってるのか。 サーバーはnet.Listen(…)で始めてるし、クライアントはgrpc.Dial(…)で始めてたのでヘッダーとかどうなってるのか。
-
- protoc で生成されるGoのソースを見てみる。
-
- TLS通信の仕方。各種サーティフィケーションファイルはコマンドコピペだったのでちゃんと復習したい。
- gRPC 使ってチャットアプリ作ってみたいですね。
最后
还是得有这样的活动才会去做呢(汗)。
但是这次学到了gRPC,非常好。
而且Udemy在年末年初会打折,非常划算。
如果Udemy上有新的技术课程,英文版本会更早推出,建议大家去看看。