Marco RPC de piel de pescado
De 0 a 1, llevarlo a desarrollar su propio marco RPC
Serie de tutoriales del proyecto original de piel de pescado: https://yuyuanweb.feishu.cn/wiki/sepywtc9tipqicktw7uc7kujncd
Introducción del proyecto
Un marco RPC de alto rendimiento basado en Java + etcd + vert.x, utiliza una nueva pila de tecnología para llevar a todos a desarrollar ruedas de 0 a 1. Los tutoriales son de profundos a profundos, y puede aprender y practicar servidores de redes basados en vert.x, patrones de diseño múltiples, medios de registro de diseño múltiples, medios de registro basados en Zookeeper, reflexiones, agentes dinámicos, protectors múltiples de diseño múltiples, medios de diseño múltiples, múltiples patrones de diseño múltiples, múltiples patrones de diseño, centros de registro de Zookeeper, reflexiones, agentes dinámicos de redes dinámicas, protocolos de diseño múltiples, múltiples, múltiples. (Singleton/Factory/Decorators, etc.), diseño del equilibrador de carga, mecanismos de reintento y tolerancia a fallas, desarrollo basado en anotaciones de arranque de primavera, etc., mejorando en gran medida las capacidades de diseño arquitectónico.
El proyecto se divide en versiones básicas y extendidas:
- La versión básica se puede escribir en el currículum en solo unas pocas horas ~
- La versión extendida será un proyecto técnico lleno de aspectos destacados, y se combinará con un proyecto comercial para hacer que el currículum sea más competitivo.
Comience a aprender o obtener más información: Marco de RPC manuscrito (24 años de la última)
Dirección de código abierto: https://github.com/liyupi/yu-rpc
El Capítulo 1 del tutorial se puede aprender gratis
Video de instrucciones - RPC Explicación
Visualización de proyectos
Estructura del directorio:

Tutorial de texto detallado a nivel de niñera:

Selección técnica
extremo posterior
La tecnología de backend es principalmente Java, pero todas las ideas y diseños se pueden reutilizar a otros idiomas, y el código es simplemente diferente.
- Marco vert.x
- Middleware de almacenamiento nativo de ETCD ETCD Cloud (cliente JETCD)
- Herramienta de coordinación distribuida de Zookeeper (cliente curador)
- ️ Mecanismo SPI
- ️ Múltiples serializadores
- Serialización JSON
- Serialización de KRyo
- Serialización de Hesse
- ️ Modos de diseño múltiples
- Double verificar el modo singleton de bloqueo
- Modelo de fábrica
- Modo de agente
- Modo decorador
- Desarrollo de arranque de arranque de primavera de primavera
- Dranga de reflexión y anotación
- Guava Reterminando la biblioteca de reintento
- Prueba de unidades de Junit
- Biblioteca de registro de logback
- HUTOOL, Lombok Tool Library
Directorio de código fuente
- Yu-RPC-Core: Código de núcleo del marco RPC de piel de pescado
- Yu-RPC-Easy: Fish Skin RPC Frame Versión simple (adecuada para principiantes)
- Ejemplo-common: módulo de ejemplo de código de ejemplo
- Ejemplo-consumo: Ejemplo de consumidores de servicios
- Provista de ejemplo: proveedor de servicios de muestra
- Ejemplo-springboot-consumo: consumidor de servicios de muestra (marco de arranque de primavera)
- Ejemplo-springboot-proveedor: proveedor de servicios de muestra (marco de arranque de primavera)
- yu-rpc-spring-boot-starter: marco RPC impulsado por la anotación que se puede usar rápidamente en proyectos de arranque de primavera
Esquema del tutorial del proyecto
Este proyecto tiene mucho contenido, por lo que puede ver si tiene algún punto de conocimiento que desee aprender.
Capítulo 1: Versión simple de RPC Framework
- Conceptos y funciones básicos de RPC
- Ideas de implementación del marco RPC | Diseño básico
- Ideas de implementación del marco RPC | Diseño extendido
- Versión simple del desarrollo de RPC | Inicialización del proyecto
- Versión simple del desarrollo de RPC | servidor web
- Versión simple del desarrollo de RPC | Registrante de servicio local
- Versión simple del desarrollo de RPC | Serializador
- Versión simple del desarrollo de RPC | Procesador de solicitud
- Versión simple del desarrollo de RPC | Agente de consumo
- Versión simple del desarrollo de RPC | Verificación de prueba
Capítulo 2: Versión de extensión del marco RPC
- Carga de configuración global | Inicialización del proyecto de versión extendida
- Carga de configuración global | Implementación de carga de configuración
- Carga de configuración global | Mantener objetos de configuración global
- Diseño e implementación simulada de interfaz
- Serializador | Comparación de serializadores convencionales
- Serializador | Implementaciones de serializador múltiple
- Serializador | Mecanismo SPI
- Serializador | Implementación de serializador extensible (modo SPI + de fábrica)
- Centro de registro | Competencias centrales del centro de registro
- Centro de registro | Selección técnica del centro de registro
- Centro de registro | Comenzando con ETCD Cloud Native Middleware
- Centro de registro | Implementación del centro de registro basado en ETCD
- Centro de registro | Implementación del centro de registro extensible (modo SPI + de fábrica)
- Optimización del centro de registro | Mecanismo de detección y renovación del corazón
- Optimización del centro de registro | Mecanismo de nodo de servicio fuera de línea
- Optimización del centro de registro | Caché de servicio de consumo
- Optimización del centro de registro | Actualización de caché (mecanismo de escucha ETCD)
- Optimización del centro de registro | Implementación del Centro de Registro Zookeeper
- Protocolo personalizado | Análisis de requisitos y diseño de soluciones
- Protocolo personalizado | Diseño de estructura de mensajes (consulte Dubbo)
- Protocolo personalizado | Diseño de transmisión de red (implementando el servidor TCP basado en vert.x)
- Protocolo personalizado | Codificador/decodificador
- Protocolo personalizado | Procesador de solicitud TCP
- Protocolo personalizado | Cliente de solicitud de TCP
- Protocolo personalizado | Análisis del problema de medio paquete pegajoso
- Protocolo personalizado | Use vert.x para resolver problemas de medio paquete pegajoso
- Protocolo personalizado | Optimización del código del cliente (modo decorador)
- Balancio de carga | Concepto de equilibrio de carga y algoritmos comunes
- Balancio de carga | Hash consistente
- Balancio de carga | Implementos de equilibrio de carga múltiple
- Balancio de carga | Implementación de equilibrio de carga escalable (modo SPI + de fábrica)
- Reintento de mecanismo | Reintento Política de espera
- Reintento de mecanismo | Reintento de diseño de soluciones
- Reintento de mecanismo | Implementación de múltiples estrategias de reintento
- Reintento de mecanismo | Implementación de políticas de reintento extensible (modo SPI + de fábrica)
- Mecanismo tolerante a fallas | Políticas y métodos de implementación tolerantes a fallas
- Mecanismo tolerante a fallas | Diseño de solución tolerante a fallas
- Mecanismo tolerante a fallas | Implementación de múltiples estrategias tolerantes a fallas
- Mecanismo tolerante a fallas | Implementación de política tolerante a fallas escalable (modelo de fábrica SPI +)
- Mecanismo de inicio | Clase de inicio rápido de marco
- Mecanismo de inicio | Diseño impulsado por anotaciones
- Mecanismo de inicio | Implementación del controlador de anotación de arranque de primavera
- Ideas de expansión del proyecto
Estudio de tutorial de proyecto completo
Haga clic para unirse a la navegación de programación, y se pueden aprender todos los proyectos originales en el pasado.