ссылка на точку кластера

«Ссылка на точку кластера» отображает только что вызванный ресурс (автономный ресурс в режиме реального времени), а страница ссылки на точку кластера (ссылка на автономный вызов) отображает текущее состояние указанного клиентского ресурса в режиме реального времени.

Он обеспечивает всего два режима отображения: один использует древовидную структуру для отображения ссылки вызова ресурса, а другой показывает работу ресурса, не различая ссылку вызова.

Примечание. Мониторинг кластера — это информация в памяти, она показывает только те ресурсы, которые были вызваны после запуска.

По умолчанию отображается в виде дерева

картина
  • В списке показаны все интерфейсы в рамках службы, в том числе число запросов в секунду для прохождения, количество запросов для отклонения, количество потоков, среднее время отклика, время прохождения в минутах, отклонение в минутах.
  • 172.20.10.3:8721 — это текущий IP-адрес службы, а порт — это порт, который обслуживает взаимодействие дозорной консоли. Например, консоль Sentinel добавляет. Если установлено текущее ограничивающее правило, данные правила будут переданы на HttpServer для получения, а HttpServer затем зарегистрирует правило в Sentinel.
  • Вы можете добавить к текущему ресурсу такие операции, как управление потоком, переход на более раннюю версию, точку доступа и авторизацию.

Посмотреть список:картина

Мы видим, что в списке операций есть такие параметры, как управление потоком, понижение версии, точка доступа, авторизация и т. д.

Далее мы подробно расскажем о вышеуказанных функциях.

Тестовая среда (микросервисный кластер)

родительский pom-файл

        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
        <spring-boot.version>2.3.2.RELEASE</spring-boot.version>
        <spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>

Структура кода с первого взгляда

картина

Многоузловое развертывание производителя

картина

режиссер

/**
 * 生产者controller
 *
 * @author issa
 **/

@RefreshScope
@RequestMapping(value = "/producer")
@RestController
public class ProducerController {

    @GetMapping("/{id}")
    @SentinelResource("test")
    public String producerById(@PathVariable(value = "id") String id) {

        ProducerVO producerVO = new ProducerVO();
        producerVO.setId(id);
        producerVO.setPort(UUID.randomUUID().toString());

        return producerVO.toString();
    }
}

Продюсерский стартап-класс

/**
 * 生产者
 *
 * @author issa
 **/

@EnableDiscoveryClient
@SpringBootApplication
public class ProducerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ProducerApplication.classargs);
    }

}

потребитель

/**
 * 消费者controller
 *
 * @author issavior
 **/

@RequestMapping(value = "/consumer")
@RestController
@RefreshScope
public class ConsumerController {

    @Autowired
    private RestTemplate restTemplate;

    @Autowired
    private ProducerFeign producerFeign;

    @GetMapping("/rest/{id}")
    @SentinelResource("rest")
    public String restConsumerById(@PathVariable(value = "id") String id) {

        return restTemplate.getForObject("http://ossa-service-producer/producer/" + id, String.class);
    }

    @GetMapping("/feign/{id}")
    @SentinelResource("feign")
    public String feignConsumerById(@PathVariable(value = "id") String id) {

        return producerFeign.producerById(id);
    }
}

потребительский стартап-класс

/**
 * 消费者
 *
 * @author issavior
 */

@EnableFeignClients("com.ossa.common.feignapi")
@EnableDiscoveryClient
@SpringBootApplication
public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.classargs);
    }

    @LoadBalanced
    @Bean
    public RestTemplate restTemplate() {

        return new RestTemplate();
    }
}

фейнапи

/**
 * @author issavior
 */

@FeignClient(value = "ossa-service-producer")
@RequestMapping(value = "/producer")
public interface ProducerFeign {

    /**
     * 根据ID查询商品
     *
     * @param id 商品的主键ID
     * @return 相关商品的信息
     */

    @GetMapping("/{id}")
    String producerById(@PathVariable(value = "id") String id);
}