【Modelo grande】Aplicação de modelo grande no design de recursos de software

Criar objetos de negócios

1. Objetos de negócios existentes podem ser colocados no banco de dados do vetor
2. Se não houver nenhum novo objeto de negócios a ser criado, pule diretamente
3. Novos objetos de negócios são criados manualmente pelo usuário

palavra pronta

Supondo que você seja um especialista técnico em software Java, gere o objeto entidade correspondente de acordo com o seguinte formato yaml, entre os quais
1, a camada superior é o nome do objeto
2 e o valor correspondente a cada chave é o tipo de atributo do objeto; o o tipo é opcional, se não houver Se especificado, você inferirá de acordo com o contexto
3. Você pode adicionar atributos de caixa conforme necessário
5. Se houver várias camadas de aninhamento, a classe correspondente é uma classe interna e o modificador de classe é public static.
Gere um objeto Java de acordo com o yaml a seguir e use o lombok.
"""
{descrição do objeto yaml, consulte o exemplo para obter detalhes}
"""

exemplo

Supondo que você seja um especialista técnico em software Java, gere o objeto de entidade correspondente de acordo com o seguinte formato yaml, entre os quais
1, a camada superior é o nome do objeto
2 e o valor correspondente a cada chave é o tipo de atributo do objeto; o o tipo é opcional, se não houver Se especificado, você inferirá de acordo com o contexto
3. Você pode adicionar atributos de caixa conforme necessário
5. Se houver várias camadas de aninhamento, a classe correspondente é uma classe interna e o modificador de classe é public static.
Gere um objeto Java de acordo com o seguinte yaml e use lombok.
"""

  • instância:
    nome: string
    url: string
    disponível: int
  • lb:
    consistentehash:
    solicitação:
    cabeçalho:
    chave: string
    regex: string
  • verificação de integridade:
    intervalo: longo
  • microinstance:
    name: string
    lb: lb
    healthcheck: healthcheck
    instances:
    - instance
  • propriedades de serviço:
    • microinstância
  • microserviceInfo:
    name: string
    namespace: string
    accessurl: string
    servicecontext: string
    context: string
    microinstâncias:
    - microinstância: microinstância
    “”"

gerar exemplo de objeto

@Data
public class Instance {
    
    

    private String name;

    private String url;

    private Integer available;
}


@Data
public class Lb {
    
    

    @Singular("consistentHash")
    private List<ConsistentHash> consistentHashes = new ArrayList<>();

    @Data
    public static class ConsistentHash {
    
    

        private Request request;

        @Data
        public static class Request {
    
    

            private Map<String, String> headers = new HashMap<>();
        }
    }
}


@Data
public class HealthCheck {
    
    

    private Long interval;
}


@Data
public class MicroInstance {
    
    

    private String name;

    private Lb lb;

    private HealthCheck healthcheck;

    private Set<Instance> instances = new HashSet<>();
}


@Data
public class ServiceProperties {
    
    

    @Singular
    private List<MicroInstance> microInstances = new ArrayList<>();
}


@Data
public class MicroServiceInfo {
    
    

    private String name;

    private String namespace;

    private String accessUrl;

    private String serviceContext;

    private String context;

    private ServiceProperties serviceProperties;

    private Set<MicroInstance> microInstances = new LinkedHashSet<>();
}

Logíca de negócios

1. Descrever a lógica de negócios com base em objetos de negócios

palavra pronta

De acordo com o objeto acima, você gerará o código Java correspondente de acordo com a seguinte descrição de negócios
1, o parâmetro de entrada do método de representação de entrada
2, o processo de processamento específico do método de representação do processador
3, o parâmetro de saída do método de representação de saída
3, a classe correspondente implementa automaticamente a classe de interface E a classe de implementação
Restrições
1. Use inicialização de primavera, gateway de nuvem de primavera, cafeína, pilha de tecnologia goiaba
2. O caminho do pacote é com.example.gateway
"""
{organizar a descrição da lógica de negócios em yaml formato}
"""

exemplo

De acordo com o objeto acima, você gerará o código Java correspondente de acordo com a seguinte descrição de negócios
1, o parâmetro de entrada do método de representação de entrada
2, o processo de processamento específico do método de representação do processador
3, o parâmetro de saída do método de representação de saída
3, a classe correspondente implementa automaticamente a classe de interface E a classe de implementação
Restrições
1. Use inicialização de primavera, gateway de nuvem de primavera, cafeína, pilha de tecnologia de goiaba
2. O caminho do pacote é com.example.gateway
"""

  • healthCheckService:
    checkservice:
    entrada: nulo
    processador:
    step1: Leia a configuração spring.cloud.gateway.services do arquivo de configuração application.yanl e analise-o em um objeto serviceproperties
    step2: Percorra cada microinstância em serviceproperties e
    acesse microinstance.instances por meio do get request of webclient Para o url de cada instância em , se uma exceção for lançada ou o valor de retorno for Bad, defina o
    valor disponível da instância como 0, caso contrário, defina o valor disponível da instância como 1
    output: null
    """

De acordo com o objeto acima, você gerará o código Java correspondente de acordo com a seguinte descrição de negócios
1, o parâmetro de entrada do método de representação de entrada
2, o processo de processamento específico do método de representação do processador
3, o parâmetro de saída do método de representação de saída
3, gere automaticamente a classe de interface e a classe de implementação
Restrição
1. Use inicialização de primavera, gateway de nuvem de primavera, cafeína, pilha de tecnologia goiaba
2. O caminho do pacote é com.example.gateway
"""

  • guavaconsistenthashservice: descrição da classe
    : hash consistente
    métodos de serviço de balanceamento de carga:
    consistentehash:
    input:
    val: string
    buckets: int
    processador:
    step1: use o Hashing.consistentHash() de goiaba para calcular
    a saída de hash consistente:
    index: int

  • consistenteHashloadbalanceservice: descrição da classe : serviço de balanceamento de carga de hash consistente balanceamento de carga: entrada
    nula : troca: ServerWebExchange microserviceinfo: microserviceInfo processador: etapa1: leitura de hash consistente de microserviceInfo, solicitação de leitura de hash consistente, leitura de cabeçalho de solicitação, leitura de cabeçalho O valor da chave val etapa2: Leia o headervalue correspondente a val do cabeçalho http step3: Use guavaconsistenthashservice para calcular o hash consistente, retorne instanceIndex step4: Leia a instância correspondente a instanceIndex das instâncias em microserviceinfo, retorne a saída da instância: instance: instance """










Lógica de negócios (versão 2)

De acordo com o objeto acima, você gerará o código Java correspondente de acordo com a seguinte descrição de negócios, onde
1. id indica o ponto de função
2. processador indica o processo de processamento específico do método
3. step indica as etapas específicas
Technology stack
1, bota spring, spring cloud gateway, cafeína, goiaba
"""

  • Serviço de verificação de integridade: id nulo
    : verifique se a instância está disponível
    processador:
    etapa 1: leia a configuração spring.cloud.gateway.services do arquivo de configuração application.yanl e analise-a em
    um objeto serviceproperties
    etapa 2: percorra cada microinstância nas propriedades de serviço
    etapa 3 : percorra a microinstância na microinstância Cada instância nas instâncias
    passo 4: Acesse a url da instância através da solicitação get do cliente web. Se uma exceção for lançada ou o valor de retorno for Bad, o
    status da instância é marcado como 0, caso contrário, o status está marcado como 1
  • Serviço de balanceamento de carga de hash consistente: nulo
    Descrição: Calcula hash consistente
    Processo:
    step1: Lê o hash consistente de microserviceInfo, lê a solicitação de um hash consistente,
    lê o cabeçalho da solicitação, lê o valor da chave val do cabeçalho
    step2: Lê o valor do headervalue correspondente a val do cabeçalho http
    step3: use guavaconsistenthashservice para calcular o hash de consistência e retorne instanceIndex
    step4: leia a instância correspondente a instanceIndex das instâncias em microserviceinfo e retorne a instância
  • Serviço de balanceamento de carga de hash consistente:
    id nulo: Calcula
    o processador de hash consistente:
    step1: Use Hashing.consistentHash() do Guava para calcular o hash consistente
    """

estratégia de pouso

1. Requisitos de verificação
2. No início, as pessoas relevantes devem verificar as palavras de alerta para treinar a precisão da descrição de todos

Guess you like

Origin blog.csdn.net/wenxueliu/article/details/132130391