Микросервисы в настоящее время так популярны, если вы не можете изучить технологию фреймворка микросервисов. Как я могу получить повышение по службе и прибавку к зарплате, а также увеличить количество фишек в моем резюме? Весеннее облако и Даббо нужно изучать отдельно. Скажи, что у тебя нет времени? Нет энергии? Хотите изучить два фреймворка? А Spring Cloud alibaba требует, чтобы вы изучили только одну, чтобы иметь две технологии инфраструктуры управления микросервисами. Почему бы не сделать это? Ну давай же! Год Сан-Апе
Ограничение тока предохранителя Sentinel
Ранее метод доступа, используемый нашей службой шлюза zuul, основывался на методе доступа Sentinel. На самом деле, в системе Alibaba Spring Cloud есть очень полезная стартовая зависимость Sentinel. Только нужно полагаться на пакет jar. Затем настройте адрес сервера Sentinel.
Настройка и запуск службы Sentinel
Быстрая настройка Sentinel
В предыдущей главе было описано, как его построить. Пост один раз на этот раз. Непосредственно загрузите пакет jar, который был напечатан на официальном сайте.
адрес выпуска https://github.com/alibaba/Sentinel/releases
Компиляция исходного кода git clone https://github.com/alibaba/Sentinel.git
Затем войдите в каталог и выполните mvn clean package.
запуск команды
java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard.jar
Если вам нужен докер, вы можете написать docker Dockerfile
# 基于哪个镜像
FROM java:8
# 拷贝文件到容器,也可以直接写成ADD microservice-discovery-eureka-0.0.1-SNAPSHOT.jar /app.jar
ADD ./*.jar app.jar
RUN mkdir -p /var/logs/Sentinel
RUN mkdir -p /var/logs/jvm
RUN mkdir -p /var/logs/dump
RUN bash -c 'touch /app.jar'
# 开放8080端口
EXPOSE 8080
# 配置容器启动后执行的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dsentinel.dashboard.auth.username=sentinel","-Dsentinel.dashboard.auth.password=123456","-Dserver.servlet.session.timeout=7200","-XX:-PrintGCDetails","-XX:-PrintGCTimeStamps","-XX:-HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/var/logs/dump/oom_dump.dump","-Xloggc:/var/logs/jvm/app.log","-Dfile.encoding=UTF8","-Duser.timezone=GMT+08","-XX:CMSInitiatingOccupancyFraction=90","-XX:MaxGCPauseMillis=200","-XX:StringTableSize=20000","-XX:+UseG1GC","-Xss256k","-Xmx1024m","-Xms512m","-jar","/app.jar"]
Выполнить создание образа докера
docker build --tag sentinel:1.0 .
--tag имя_проекта:версия обратите внимание на написание
Затем docker run запускает образ. Используемый здесь метод образа докера запускает docker run -d -p8890:8080 -p8891:8080 304342c105e9
Затем войдите в консоль http://localhost:9088/ имя пользователя и пароль sentinel/123456
Конфигурация параметров входа:
Начиная с Sentinel 1.6.0, консоль Sentinel представляет базовые функции входа в систему, а имя пользователя и пароль по умолчанию — sentinel. Вы можете обратиться к документации модуля аутентификации, чтобы настроить имя пользователя и пароль.
- Dsentinel.dashboard.auth.username=sentinel используется для указания имени пользователя для входа в консоль как sentinel;
- Dsentinel.dashboard.auth.password=123456 используется для указания пароля входа в консоль как 123456. Если эти два параметра опущены, пользователь и пароль по умолчанию являются дозорными;
- Dserver.servlet.session.timeout=7200 используется для указания времени истечения сеанса сервера Spring Boot, например, 7200 означает 7200 секунд, 60m означает 60 минут, по умолчанию 30 минут;
Введите пароль для входа
После завершения логина мы начинаем интегрировать интегрированную работу шлюза.
Внедрите pom в нашу службу шлюза
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
Создайте RulesController, чтобы открыть интерфейс
package com.xian.cloud.controller;
import com.alibaba.csp.sentinel.adapter.gateway.common.api.ApiDefinition;
import com.alibaba.csp.sentinel.adapter.gateway.common.api.GatewayApiDefinitionManager;
import com.alibaba.csp.sentinel.adapter.gateway.common.rule.GatewayFlowRule;
import com.alibaba.csp.sentinel.adapter.gateway.common.rule.GatewayRuleManager;
import com.alibaba.csp.sentinel.annotation.SentinelResource;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRule;
import com.alibaba.csp.sentinel.slots.block.flow.FlowRuleManager;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set;
/**
* @author <a href="mailto:fangjian0423@gmail.com">Jim</a>
*/
@RestController
public class RulesController {
@GetMapping("/api")
@SentinelResource("api")
public Set<ApiDefinition> apiRules() {
return GatewayApiDefinitionManager.getApiDefinitions();
}
@GetMapping("/gateway")
@SentinelResource("gateway")
public Set<GatewayFlowRule> apiGateway() {
return GatewayRuleManager.getRules();
}
@GetMapping("/flow")
@SentinelResource("flow")
public List<FlowRule> apiFlow() {
return FlowRuleManager.getRules();
}
}
Файл bootstrap.yml добавляет назначенный адрес дозорной службы.
spring:
cloud:
sentinel:
transport:
dashboard: localhost:8890
port: 8890
# 服务启动直接建立心跳连接
eager: true
запустить службу
Несколько запросов на завивание http://localhost:9000/api
Данные мониторинга в реальном времени
ссылка на точку кластера
С правой стороны вы можете установить управление потоком, понижение версии, точку доступа и авторизованные операции.
Настройки управления потоком
Соответствующие свойства параметра
- ресурс: имя ресурса, то есть объект текущего ограничивающего правила
- count: текущий предельный порог
- класс: пороговый тип текущего ограничения (количество запросов в секунду или количество одновременных потоков).
- limitApp: источник вызова для управления потоком, если он установлен по умолчанию, источник вызова не будет различим.
- стратегия: Вызвать текущую стратегию ограничения отношений
- controlBehavior: эффект управления потоком (прямой отказ, разминка, равномерная очередь)
Суммировать
Выше приведена схема интеграции шлюза Spring Cloud и Sentinel. Внимательные студенты могут подумать, что установленные нами текущие ограничивающие правила перестанут существовать, если сервис будет перезапущен, что для нас определенно неприемлемо. В следующей статье будет рассказано, как сохранить настройки Sentinel.
Прошлая информация и ссылки
Адрес официального документа Sentinel
Взято из ссылкиофициальная документация весеннего облака
Адрес официального сайта Alibaba Spring Cloud
Адрес сервера nacos http://47.99.209.72:8848/nacos
Прошлый адрес весеннее облако алибаба адрес
Знакомство с весенним облаком Alibaba
Spring Cloud Alibaba (построен реестром nacos)
Spring Cloud Alibaba использует реестр nacos
Использование центра конфигурации Spring Cloud Alibaba nacos
служба весеннего облачного шлюза
Служба шлюза Spring Cloud zuul 1
Spring Cloud Gateway Service zuul II
Служба шлюза Spring Cloud для трех динамических маршрутов
Spring Cloud Alibaba gateway sentinel zuul четыре токоограничивающих предохранителя
Служба шлюза шлюза Spring Cloud 1
Утверждение службы шлюза Spring Cloud 2, фильтр
Шлюз Spring Cloud с тремя пользовательскими фильтрами GatewayFilter
Шлюз шлюза Spring Cloud, четыре динамической маршрутизации
Если вам это нравится, вы можете подписаться и поделиться этой общедоступной учетной записью.
Заявление об авторских правах: эта статья является оригинальной статьей блоггера и соответствует соглашению об авторских правах CC 4.0 BY-SA. Пожалуйста, приложите ссылку на оригинальный источник и это заявление для перепечатки. Пожалуйста, прикрепите QR-код официального аккаунта для перепечатки