舉報

會員
Distributed Computing with Go
ThisbookisfordeveloperswhoarefamiliarwiththeGolangsyntaxandhaveagoodideaofhowbasicGodevelopmentworks.Itwouldbeadvantageousifyouhavebeenthroughawebapplicationproductcycle,althoughit’snotnecessary.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- Summary
- Maintainability of multiple instances
- Deployment options
- Mediator design pattern
品牌:中圖公司
上架時間:2021-06-24 17:55:17
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時間:2021-06-24 18:36:41
- Other Books You May Enjoy
- Summary
- Maintainability of multiple instances
- Deployment options
- Mediator design pattern
- Monolith versus microservices
- Failover cluster replication
- Master-master replication
- Master-replica replication
- Database replication
- Which type of database should we use?
- SQL versus NoSQL
- The database
- Multi-availability zones
- The load balancer
- Multiple server instances
- Separate layers for the web and database
- The single server instance
- Scaling a web application
- Foundations of Web Scale Architecture
- Summary
- Test results
- secure/secure_test.go
- secure/secure.go
- Authorization on a web server
- Individual logs with docker-compose
- Search – "apple" "cake"
- Search – "cake"
- Search – "apple"
- Searching for keywords with Goophr
- Adding documents to Goophr
- Running Goophr with docker-compose
- .env
- docker-compose.yaml
- simple-server/main.go
- simple-server/Dockerfile
- concierge/api/query.go
- concierge/main.go
- librarian/main.go
- The Goophr source code
- The file server
- Environment variables and API ports
- Orchestrating with docker-compose
- Aggregated search results
- Handle multiple Librarians
- Updating Goophr Concierge
- Deploying Goophr
- Summary
- Testing /api/query
- Testing feeder.go using /api/index
- Testing Librarian
- api/query.go
- api/index.go
- common/helpers.go
- main.go
- Librarian source code
- Code conventions
- The query resolver – the REST API endpoint
- The document indexer – the REST API endpoint
- Revisiting the API definition
- Ranking
- An example – the inverted index for words in books
- The inverted indexing model
- An example – books with an index of words
- The standard indexing model
- Goophr Librarian
- Summary
- The Concierge server
- Running tests
- The Concierge source code
- Buffered channels
- Single stores
- Queue workers
- The consolidated flow diagram
- The line store
- The index processor
- The doc store
- The doc processor
- Logical flow diagrams
- Diagram conventions
- Code conventions
- Conventions
- Query handler – the REST API endpoint
- Document feeder – the REST API endpoint
- Revisiting the API definition
- Goophr Concierge
- Summary
- Project structure
- Goophr Librarian API definition
- Goophr Concierge API definition
- OpenAPI specification
- Design overview
- What is Goophr?
- Introducing Goophr
- Summary
- net/http
- Postman
- POST
- PUT
- DELETE
- GET
- cURL
- How to make REST calls
- books-handler/handler.go
- books-handler/actions.go
- books-handler/common.go
- main.go
- The REST server for books API
- Design decisions
- Unsuccessful requests
- DELETE /api/books/<id>
- PUT /api/books/<id>
- POST /api/books
- GET /api/books/<id>
- GET /api/books
- The book resource
- The data format
- Designing a REST API
- A simple web server
- Fundamentals of a REST server
- Upgradable components
- DELETE
- PUT and PATCH
- POST
- GET
- Reusing the HTTP protocol
- Resources
- The standard data format
- The server and client architecture
- The REST protocol
- HTTP sessions
- A brief history of HTTP
- HTTP and sessions
- The RESTful Web
- Summary
- Multiplexing channels
- Closing channels
- The unidirectional buffer
- The buffered channel
- The unbuffered channel
- Types of channels
- Messages and events
- Channels and data communication
- Solving the cashier problem with goroutines
- What is a channel?
- Distributed work with channels
- Distributed work without channels
- Controlling parallelism
- Channels and Messages
- Summary
- Goroutines aren't predictable
- Single goroutine halting the complete program
- Gotchas when using goroutines
- Scheduling with G M and P
- Context or processor
- OS thread or machine
- Goroutine
- Go's runtime scheduler
- Parallelism
- Concurrent task execution
- Serial task execution with goroutines
- Serial task execution
- Code overview
- Concurrency
- Concurrency and parallelism
- Understanding Goroutines
- Summary
- Running tests in nil_test.go
- nil_test.go
- Running tests in addInt_test.go
- addInt_test.go
- addInt.go
- Running tests in variadic_test.go
- variadic_test.go
- variadic.go
- Testing in Go
- main.go
- Dockerfile
- Testing Docker setup
- Understanding Docker
- Docker versus Virtual Machine (VM)
- Docker
- Containers
- Working with book's code
- Structuring a project
- go dep
- glide
- go get
- Package management
- bin/
- pkg/
- src/
- GOPATH
- GOROOT
- Developer Environment for Go
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewers
- About the author
- Contributors
- PacktPub.com
- Why subscribe?
- Packt Upsell
- Title Page
- coverpage
- 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