frxcat Study Notes
website·Indexed 32 days ago
https://frxcat.fun/A collection of technical study notes and project documentation covering Linux system administration, Git version control, Maven, Docker, and JavaEE environment setup. Includes specific project implementation guides for Regie Takeout (瑞吉外卖) and Shangyi Tong (尚医通), featuring MongoDB integration, Nacos service discovery, and frontend development with Vue.js.
What's inside frxcat
- MyBatisX is an IntelliJ IDEA plugin designed to improve development efficiency when using MyBatis and MyBatis-Plus. While MyBatis-Plus provides powerful mapper and service templates, MyBatisX helps developers quickly handle complex SQL scenarios, such as multi-table joins and custom queries, by automating the boilerplate code for Mapper interfaces and their corresponding XML files.
Overview of the MyBatis Persistence Framework
MyBatis (v3.4.1) is a persistence layer framework that supports customized SQL, stored procedures, and advanced mapping. It eliminates the need for most boilerplate JDBC code, such as manually setting parameters and retrieving result sets. It maps Java interfaces and POJOs (Plain Old Java Objects) to database records using either XML configuration or annotations.Overview of Spring Cloud Alibaba
Spring Cloud Alibaba is a one-stop solution for microservices development that provides essential components for building distributed applications. It allows developers to integrate Alibaba's microservice solutions into Spring Cloud applications using a familiar programming model with minimal configuration and annotations.Overview of Big Data and Graph Databases
For extreme scale and specific data relationships, specialized databases are used:
- HBase: A Hadoop-based database designed for random, real-time read/write access to massive tables (billions of rows and millions of columns) using commodity hardware.
- Cassandra: An open-source NoSQL database designed to manage massive datasets (PB level) across large clusters of commercial servers, emphasizing linear scalability for reads and writes.
- Graph Databases: Specialized for managing complex relationships, such as social networks, public transportation networks, maps, and network topologies.
Introduction to Bubble Sort
Bubble Sort is an internal sorting algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order. This process 'bubbles' the largest unsorted element to its correct position at the end of the array in each pass.Overview of Nginx Web Caching Mechanism
Nginx implements Web caching based on Proxy Store. It uses the URL and related combinations as a Key, which is then hashed using the MD5 algorithm to determine the corresponding directory path on the hard drive where the cached content is stored. This mechanism supports any URL and can cache various HTTP status codes, including 200, 404, 301, and 302.Overview of Redis Publish/Subscribe (Pub/Sub)
Redis Pub/Sub is a messaging communication pattern where senders (publishers) send messages to channels, and receivers (subscribers) receive messages from those channels. A Redis client can subscribe to any number of channels. This is primarily used for building real-time messaging systems, such as instant chat or group chat applications.
Critical Caveat: Messages published via Pub/Sub are not persisted. A subscriber will only receive messages published after the subscription was established; any messages sent before the client subscribed are lost.
Overview of MongoDB Indexing
MongoDB uses indexes to avoid full collection scans, which significantly improves query performance. Indexes are special data structures (specifically B-Trees) that store a small portion of the collection's data set in a traversable form. They store specific field values in a sorted order, supporting efficient equality matches, range queries, and sorted results.Overview of Eureka Service Registration and Discovery
Eureka is a service governance module developed by Netflix and encapsulated by Spring Cloud. It uses a Client-Server (CS) architecture to manage dependencies between microservices, enabling service discovery, load balancing, and fault tolerance.
Key components include:
- Eureka Server: Acts as the service registry. It stores information about all available service nodes in a registry table.
- Eureka Client: A Java client used by microservices to interact with the Eureka Server. Clients register themselves and send heartbeats (default every 30 seconds). If the server does not receive a heartbeat within a specific window (default 90 seconds), the service node is removed from the registry.
Overview of Spring Cloud Sleuth and Zipkin
Spring Cloud Sleuth provides a complete solution for service tracing in distributed systems. It allows developers to track requests as they move through multiple service nodes, helping to identify high latency or errors in the call chain. It is compatible with Zipkin, which provides a graphical user interface to visualize these traces.
Key Concepts:
- Trace: A collection of Spans representing a single complete call chain, identified by a unique Trace ID.
- Span: Represents a single request/operation within a trace, identified by a Span ID and linked to others via a parent ID.
Overview of the Reggie Take-out Project
Reggie Take-out is a customized software product for catering enterprises (restaurants). It consists of two main components: a Management Backend for internal staff to manage dishes, sets, and orders, and a Mobile Application for consumers to browse dishes, use a shopping cart, and place orders. The project is developed in three phases: 1) Basic requirements via H5, 2) Mobile improvement via WeChat Mini Program, and 3) System optimization for performance.Overview of Spring 5 Framework Core Concepts
Spring 5 (v5.2.6) is a lightweight, open-source JavaEE framework designed to reduce the complexity of enterprise application development. Its architecture is centered around two core components:
- IoC (Inversion of Control): Shifts the responsibility of object creation and lifecycle management to the Spring container.
- AOP (Aspect-Oriented Programming): Allows for functional enhancement of the application without modifying the original source code.
Key benefits of using Spring include simplified development through decoupling, built-in AOP support, improved testability, seamless integration with other frameworks, streamlined transaction management, and reduced difficulty in API development.