ссылка на точку кластера
«Ссылка на точку кластера» отображает только что вызванный ресурс (автономный ресурс в режиме реального времени), а страница ссылки на точку кластера (ссылка на автономный вызов) отображает текущее состояние указанного клиентского ресурса в режиме реального времени.
Он обеспечивает всего два режима отображения: один использует древовидную структуру для отображения ссылки вызова ресурса, а другой показывает работу ресурса, не различая ссылку вызова.
Примечание. Мониторинг кластера — это информация в памяти, она показывает только те ресурсы, которые были вызваны после запуска.
По умолчанию отображается в виде дерева

-
В списке показаны все интерфейсы в рамках службы, в том числе число запросов в секунду для прохождения, количество запросов для отклонения, количество потоков, среднее время отклика, время прохождения в минутах, отклонение в минутах. -
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.class, args);
}
}
потребитель
/**
* 消费者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.class, args);
}
@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);
}