后端开发
-
Go Engineer Systematic Course 008 [Study Notes]
Orders and Shopping Cart
First, copy the service code framework of 'srv' from the inventory service, then find and replace the corresponding name (order_srv).Fundamentals of Encryption Technology
Symmetric Encryption
Principle:
Uses the same key for encryption and decryption.
Like a single key that can both lock and unlock a door.
Fast encryption speed, suitable for large data transfers.
Use cases:
Local file encryption
Database content encryption
Content encryption during large data transfers
Fast communication between internal systems... -
Go Engineer System Course 010 [Study Notes]
Install Elasticsearch (understand as a database) and Kibana (understand as a connection tool). The versions of ES and Kibana (port 5601) must be consistent.
Learning Elasticsearch (ES) by comparison with MySQL: Terminology Mapping
MySQL | Elasticsearch
database | index (索引)
table | type (fixed as _doc from 7.x, multiple types completely removed in 8.x...) -
Go Engineer Comprehensive Course 011 [Study Notes]
Inverted Index for Queries
1. What is an Inverted Index?
An Inverted Index is a data structure used to quickly find documents containing specific terms. It is one of the core technologies of search engines.
1.1 Basic Concepts
Forward Index: Document ID → Document Content (list of terms)
Inverted Index: Term → List of Document IDs containing the term
1.2 Why is it called "Inverted"?
An inverted index reverses the traditional relationship of "which terms a document contains" to "in which documents a term appears... -
Go Engineer System Course 012 [Study Notes]
Integrate Elasticsearch in Go 1. Client Library Selection 1.1 Mainstream Go ES Clients olivere/elastic: Most comprehensive features, elegant API design, supports ES 7.x/8.x elastic/go-elasticsearch: Official client, lightweight, closer to native REST API go-elasticsearch/elasticsearch: Community-maintained offi…
-
Go Engineer System Course 013 [Study Notes]
Order transactions, whether deducting inventory first or later, will both affect inventory and orders. Therefore, distributed transactions must be used to address business issues (e.g., unpaid orders). One approach is to deduct inventory only after successful payment (e.g., an order was placed, but there was no inventory at the time of payment). Another common method is to deduct inventory when the order is placed, but if payment isn't made, the order is returned/released upon timeout.
Transactions and Distributed Transactions
1. What is a transaction?
A transaction is an important concept in database management systems. It is a collection of database operations, which either all execute successfully, or all... -
Go Engineering Systematic Course 014 [Study Notes]
RocketMQ Quick Start. Go to our various configurations (podman) to see how it's installed. Introduction to Concepts: RocketMQ is a distributed messaging middleware open-sourced by Alibaba and an Apache top-level project. Core components: NameServer: Service discovery and routing; Broker: Message storage, delivery, and fetching; Producer: Message producer (sends messages); Consumer: Message consumer (subscribes to and consumes messages); Topic/Tag: Topic/...
-
Go Engineer's Comprehensive Course 017: Learning Notes
Introduction to Rate Limiting, Circuit Breaking, and Degradation (with Sentinel Practical Application)
Based on the key video points from Chapter 3 (3-1 to 3-9) of the courseware, this guide compiles a service protection introduction for beginners, helping them understand "why rate limiting, circuit breaking, and degradation are needed," and how to quickly get started with Sentinel.
Learning Path at a Glance
3-1 Understanding Service Avalanche and the Background of Rate Limiting, Circuit Breaking, and Degradation
3-2 Comparing Sentinel and Hystrix to clarify technology selection
3-3 Sen... -
Go Engineer System Course 018 [Study Notes]
Getting Started with API Gateway and Continuous Deployment (Kong & Jenkins) corresponds to the course materials "Chapter 2: Getting Started with Jenkins" and "Chapter 3: Deploying Services with Jenkins", outlining the practical path for Kong and Jenkins in enterprise-level continuous delivery. Even with zero prior experience, you can follow the steps to build your own gateway + continuous deployment pipeline. Pre-class Introduction: What is an API Gateway? An API Gateway sits between clients and backend microservices...
-
Node: In-depth Yet Accessible (Sheng Siyuan Education) 001 [Study Notes]
Node.js: Understanding it from an Asynchronous Programming Paradigm
Node.js's Positioning and Core Philosophy
Based on the V8 engine + libuv event-driven library, it brings JavaScript from the browser to the server side. It uses a single-threaded event loop to handle I/O, maximizing CPU time slices while waiting for I/O, making it particularly suitable for high-concurrency, I/O-intensive scenarios. "Don't block the main thread" is its design philosophy: try to offload time-consuming operations to the kernel or a thread pool, and callback results... -
Go Engineer Comprehensive Course: protoc-gen-validate Study Notes
protoc-gen-validate: Introduction and Usage Guide ✅ What is protoc-gen-validate? protoc-gen-validate (PGV for short) is a Protocol Buffers plugin used to add validation logic for struct fields in generated Go code. It automatically generates validation code for each field by adding validation rules in .proto files, saving you the trouble of manually...