Quadro de RPC da pele de peixe
De 0 a 1, leve -o para desenvolver sua própria estrutura RPC
Peixe Skin Original Project Tutorial Tutorial Series: https://yuyuanweb.feishu.cn/wiki/sepywtc9tipqicktw7uc7kujncd
Introdução ao projeto
A high-performance RPC framework based on Java + Etcd + Vert.x, uses a novel technology stack to lead everyone to develop wheels from 0 to 1. The tutorials are from shallow to deep, and you can learn and practice Vert.x-based network servers, serializers, Etcd and ZooKeeper-based registration centers, reflections, dynamic agents, custom network protocols, multiple design patterns (Singleton/Factory/Decorators, etc.), Projeto de balanceador de carga, mecanismos de tentativa e tolerância a falhas, desenvolvimento de acionamento por anotações de inicialização da primavera, etc., melhorando bastante os recursos de design arquitetônico.
O projeto é dividido em versões básicas e estendidas:
- A versão básica pode ser escrita no currículo em apenas algumas horas ~
- A versão estendida será um projeto técnico cheio de destaques e será combinado com um projeto de negócios para tornar o currículo mais competitivo.
Comece a aprender ou saber mais: estrutura RPC manuscrita (24 anos de mais recente)
Endereço de código aberto: https://github.com/liyupi/yu-rpc
O capítulo 1 do tutorial pode ser aprendido de graça
Vídeo de instrução - RPC Explicação
Exibição do projeto
Estrutura do diretório:

Tutorial de texto detalhado no nível da babá:

Seleção técnica
extremidade traseira
A tecnologia de back -end é principalmente Java, mas todas as idéias e designs podem ser reutilizados para outros idiomas, e o código é apenas diferente.
- ️ Vert.x Framework
- ️ Etcd Cloud Middleware de armazenamento nativo (cliente JETCD)
- Ferramenta de coordenação distribuída do Zookeeper (cliente curador)
- ️ Mecanismo SPI
- ️ Múltiplos serializadores
- Serialização JSON
- Serialização do Kryo
- Serialização da Hessiana
- Modos de design múltiplos
- Verificação dupla Lock Singleton Mode
- Modelo de fábrica
- Modo de agente
- Modo decorador
- ️ Spring Boot Starter Development
- Unidade de reflexão e anotação
- Biblioteca de tentativa de repetição de goiaba
- Teste de unidade JUNIT
- Logback Log Library
- Hutool, biblioteca de ferramentas Lombok
Diretório de código -fonte
- Yu-rpc-core: Código central da estrutura da pele de peixe
- Yu-rpc-leasy: peixe skin rpc armação de estrutura simples (adequada para iniciantes)
- Exemplo-Common: Exemplo Código Módulo Comum
- Exemplo-Consumidor: Exemplo de Consumidores de Serviço
- Exemplo-Provider: provedor de serviços de amostra
- Exemplo-Springboot-Consumer: Sample Service Consumer (Spring Boot Framework)
- Exemplo-Springboot-Provider: provedor de serviços de amostra (Spring Boot Framework)
- Yu-RPC-Spring-Boot-Starter: estrutura RPC acionada por anotação que pode ser usada rapidamente em projetos de inicialização da primavera
Esboço do tutorial do projeto
Este projeto tem muito conteúdo, para que você possa ver se tem algum ponto de conhecimento que deseja aprender.
Capítulo 1: Versão simples da estrutura do RPC
- RPC Conceitos e funções básicas
- Idéias de implementação da estrutura do RPC | Design básico
- Idéias de implementação da estrutura do RPC | Design estendido
- Versão simples do desenvolvimento do RPC | Inicialização do projeto
- Versão simples do desenvolvimento do RPC | servidor da web
- Versão simples do desenvolvimento do RPC | Registrante de serviço local
- Versão simples do desenvolvimento do RPC | Serializador
- Versão simples do desenvolvimento do RPC | Processador de solicitação
- Versão simples do desenvolvimento do RPC | Agente de consumo
- Versão simples do desenvolvimento do RPC | Verificação de teste
Capítulo 2: versão de extensão da estrutura do RPC
- Carregamento global de configuração | Inicialização do projeto de versão estendida
- Carregamento global de configuração | Implementação de carregamento de configuração
- Carregamento global de configuração | Manter objetos de configuração global
- Design e implementação simulados da interface
- Serializer | Comparação de serializadores convencionais
- Serializer | Múltiplas implementações de serializador
- Serializer | Mecanismo SPI
- Serializer | Implementação de serializador extensível (modo SPI + Factory)
- Centro de Registro | Competências centrais do centro de registro
- Centro de Registro | Seleção técnica do Centro de Registro
- Centro de Registro | Introdução ao middleware nativo da ETCD Cloud
- Centro de Registro | Implementação do Centro de Registro com base no ETCD
- Centro de Registro | Implementação do Centro de Registro extensível (modo SPI + Factory)
- Otimização do Centro de Registro | Detecção de batimentos cardíacos e mecanismo de renovação
- Otimização do Centro de Registro | Mecanismo offline do nó de serviço
- Otimização do Centro de Registro | Cache de serviço de consumidor
- Otimização do Centro de Registro | Atualização de cache (mecanismo de escuta etcd)
- Otimização do Centro de Registro | Implementação do Centro de Registro Zookeeper
- Protocolo personalizado | Análise de requisitos e design de solução
- Protocolo personalizado | Design da estrutura de mensagens (consulte o dubbo)
- Protocolo personalizado | Design de transmissão de rede (implementando o servidor TCP com base no vert.x)
- Protocolo personalizado | Codificador/decodificador
- Protocolo personalizado | Processador de solicitação TCP
- Protocolo personalizado | Cliente de solicitação TCP
- Protocolo personalizado | Análise do problema de meio pacote pegajoso
- Protocolo personalizado | Use Vert.x para resolver problemas de meio pacote pegajosos
- Protocolo personalizado | Otimização do código do cliente (modo decorador)
- Balanceamento de carga | Conceito de balanceamento de carga e algoritmos comuns
- Balanceamento de carga | Hash consistente
- Balanceamento de carga | Iplementos de balanceamento de carga múltipla
- Balanceamento de carga | Implementação de balanceador de carga escalável (modo SPI + Factory)
- Mecanismo de tentativa | Política de espera de novo
- Mecanismo de tentativa | Remolante de design de solução
- Mecanismo de tentativa | Implementação de múltiplas estratégias de tentativa
- Mecanismo de tentativa | Implementação de políticas de tentativa extensível (Modo SPI + Factory)
- Mecanismo tolerante a falhas | Políticas e métodos de implementação tolerantes a falhas
- Mecanismo tolerante a falhas | Design de solução tolerante a falhas
- Mecanismo tolerante a falhas | Implementação de múltiplas estratégias tolerantes a falhas
- Mecanismo tolerante a falhas | Implementação de políticas tolerantes a falhas escalável (modelo SPI + Factory)
- Mecanismo de inicialização | Aula de início rápido da estrutura
- Mecanismo de inicialização | Design orientado a anotação
- Mecanismo de inicialização | Implementação do driver de anotação inicial da inicialização da inicialização
- Idéias de expansão do projeto
Estudo tutorial completo do projeto
Clique para ingressar na navegação de programação e todos os projetos originais no passado podem ser aprendidos.