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