舉報

會員
Distributed Computing with Go
ThisbookisfordeveloperswhoarefamiliarwiththeGolangsyntaxandhaveagoodideaofhowbasicGodevelopmentworks.Itwouldbeadvantageousifyouhavebeenthroughawebapplicationproductcycle,althoughit’snotnecessary.
目錄(214章)
倒序
- coverpage
- Title Page
- Packt Upsell
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewers
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Developer Environment for Go
- GOROOT
- GOPATH
- src/
- pkg/
- bin/
- Package management
- go get
- glide
- go dep
- Structuring a project
- Working with book's code
- Containers
- Docker
- Docker versus Virtual Machine (VM)
- Understanding Docker
- Testing Docker setup
- Dockerfile
- main.go
- Testing in Go
- variadic.go
- variadic_test.go
- Running tests in variadic_test.go
- addInt.go
- addInt_test.go
- Running tests in addInt_test.go
- nil_test.go
- Running tests in nil_test.go
- Summary
- Understanding Goroutines
- Concurrency and parallelism
- Concurrency
- Code overview
- Serial task execution
- Serial task execution with goroutines
- Concurrent task execution
- Parallelism
- Go's runtime scheduler
- Goroutine
- OS thread or machine
- Context or processor
- Scheduling with G M and P
- Gotchas when using goroutines
- Single goroutine halting the complete program
- Goroutines aren't predictable
- Summary
- Channels and Messages
- Controlling parallelism
- Distributed work without channels
- Distributed work with channels
- What is a channel?
- Solving the cashier problem with goroutines
- Channels and data communication
- Messages and events
- Types of channels
- The unbuffered channel
- The buffered channel
- The unidirectional buffer
- Closing channels
- Multiplexing channels
- Summary
- The RESTful Web
- HTTP and sessions
- A brief history of HTTP
- HTTP sessions
- The REST protocol
- The server and client architecture
- The standard data format
- Resources
- Reusing the HTTP protocol
- GET
- POST
- PUT and PATCH
- DELETE
- Upgradable components
- Fundamentals of a REST server
- A simple web server
- Designing a REST API
- The data format
- The book resource
- GET /api/books
- GET /api/books/<id>
- POST /api/books
- PUT /api/books/<id>
- DELETE /api/books/<id>
- Unsuccessful requests
- Design decisions
- The REST server for books API
- main.go
- books-handler/common.go
- books-handler/actions.go
- books-handler/handler.go
- How to make REST calls
- cURL
- GET
- DELETE
- PUT
- POST
- Postman
- net/http
- Summary
- Introducing Goophr
- What is Goophr?
- Design overview
- OpenAPI specification
- Goophr Concierge API definition
- Goophr Librarian API definition
- Project structure
- Summary
- Goophr Concierge
- Revisiting the API definition
- Document feeder – the REST API endpoint
- Query handler – the REST API endpoint
- Conventions
- Code conventions
- Diagram conventions
- Logical flow diagrams
- The doc processor
- The doc store
- The index processor
- The line store
- The consolidated flow diagram
- Queue workers
- Single stores
- Buffered channels
- The Concierge source code
- Running tests
- The Concierge server
- Summary
- Goophr Librarian
- The standard indexing model
- An example – books with an index of words
- The inverted indexing model
- An example – the inverted index for words in books
- Ranking
- Revisiting the API definition
- The document indexer – the REST API endpoint
- The query resolver – the REST API endpoint
- Code conventions
- Librarian source code
- main.go
- common/helpers.go
- api/index.go
- api/query.go
- Testing Librarian
- Testing feeder.go using /api/index
- Testing /api/query
- Summary
- Deploying Goophr
- Updating Goophr Concierge
- Handle multiple Librarians
- Aggregated search results
- Orchestrating with docker-compose
- Environment variables and API ports
- The file server
- The Goophr source code
- librarian/main.go
- concierge/main.go
- concierge/api/query.go
- simple-server/Dockerfile
- simple-server/main.go
- docker-compose.yaml
- .env
- Running Goophr with docker-compose
- Adding documents to Goophr
- Searching for keywords with Goophr
- Search – "apple"
- Search – "cake"
- Search – "apple" "cake"
- Individual logs with docker-compose
- Authorization on a web server
- secure/secure.go
- secure/secure_test.go
- Test results
- Summary
- Foundations of Web Scale Architecture
- Scaling a web application
- The single server instance
- Separate layers for the web and database
- Multiple server instances
- The load balancer
- Multi-availability zones
- The database
- SQL versus NoSQL
- Which type of database should we use?
- Database replication
- Master-replica replication
- Master-master replication
- Failover cluster replication
- Monolith versus microservices
- Mediator design pattern
- Deployment options
- Maintainability of multiple instances
- Summary
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時間:2021-06-24 18:36:41
推薦閱讀
- Linux運維之道(第3版)
- 發布!設計與部署穩定的分布式系統(第2版)
- Persistence in PHP with the Doctrine ORM
- Linux集群和自動化運維
- 高性能Linux服務器構建實戰:系統安全、故障排查、自動化運維與集群架構
- Python基礎教程(第3版)
- Linux運維最佳實踐
- 網絡操作系統教程:Windows Server 2016管理與配置
- 計算機系統的自主設計
- Social Data Visualization with HTML5 and JavaScript
- 精解Windows 10
- HTML5 Enterprise Application Development
- 鴻蒙操作系統設計原理與架構
- Mastering Windows 8 C++ App Development
- Implementing Domain-Specific Languages with Xtext and Xtend(Second Edition)
- 15分鐘!畫出我的漫畫角色:賣萌篇
- Responsive Web Design by Example:Beginner's Guide(Second Edition)
- OpenSolaris系統管理
- 從零開始學Windows 7
- 嵌入式Linux設備驅動程序開發指南(原書第2版)
- 第一行代碼:Linux命令行
- Responsive Web Design with HTML5 and CSS
- 鳳凰架構:構建可靠的大型分布式系統
- 輕松學Linux:從Manjaro到Arch Linux
- iOS 7應用開發實戰詳解
- iOS7:iPhone/iPad應用開發技術詳解
- 推薦系統實踐
- Kubernetes微服務實戰
- Linux應用基礎教程(基于CentOS 7)
- Mastering SoapUI