舉報

會員
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
推薦閱讀
- PLC控制程序精編108例
- Linux操作系統基礎
- Puppet實戰
- 鴻蒙生態:開啟萬物互聯的智慧新時代
- Learning Android Intents
- Persistence in PHP with the Doctrine ORM
- WindowsServer2012Hyper-V虛擬化部署與管理指南
- 混沌工程:復雜系統韌性實現之道
- Linux自動化運維:Shell與Ansible(微課版)
- 網絡操作系統教程:Windows Server 2016管理與配置
- 嵌入式系統原理及開發
- Microsoft Operations Management Suite Cookbook
- 完美應用RHEL 8
- iOS 8開發指南
- Windows 7實戰從入門到精通
- Windows Vista終極技巧金典
- Drupal 7 Cookbook
- Docker容器技術與應用
- Angular權威教程
- Implementing Cloud Design Patterns for AWS(Second Edition)
- Windows Azure實戰
- 鴻蒙操作系統開發入門經典
- 你必須掌握的Windows 8技巧
- STM32庫開發實戰指南:基于STM32F103(第2版)
- 大規模分布式存儲系統:原理解析與架構實戰
- 深入理解分布式事務:原理與實戰
- 嵌入式Linux系統實訓教程
- 深度學習在動態媒體中的應用與實踐
- 深入Linux設備驅動程序內核機制
- Programming Drupal 7 Entities