Различные методы, используемые Артасом

облачный носитель Открытый исходный код

头图.png

Автор | Монтос (интроверт на задворках) источник|Официальный аккаунт Alibaba Cloud Native

Arthas — это инструмент диагностики Java с открытым исходным кодом от Alibaba. Позволяет нам устранять проблемы с проектом онлайн. Помимо знания о его существовании, нам также необходимо знать, как его установить и использовать, чтобы повысить эффективность нашей ежедневной разработки и устранения ошибок.

Введение

Вариант 1: запустить напрямую локально

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

  • Мы можем загрузить соответствующую банку прямо с официального сайта, затем запустить банку и выполнить соответствующую команду.

  • Команда выглядит следующим образом:

java -jar arthas-boot.jar [option]
  • Демонстрация выглядит следующим образом:

1.jpeg

Вариант 2. Реализация веб-консоли

Мы можем выполнять программу, не входя в ssh каждый раз, мы также можем получить доступ к операции через Интернет.Благодаря представлению веб-консоли Arthas на официальном сайте мы можем понять общие идеи построения.

  • Скачав arthas-tunnel-server. Мы можем получить серверную часть соответствующего артаса. После завершения загрузки вы можете запустить его напрямую (я запускал прямо на ECS).

2.jpeg

  • Запустите arthas-boot соответственно на стороне клиента. И добавить адрес сервера через параметр запуска (я запускаю его локально).

3.jpeg

  • Выберите соответствующий процесс для подключения, появится соответствующий идентификатор агента, а затем заполните соответствующую http-страницу на стороне сервера.

4.jpeg

5.jpeg

  • Наконец, мы можем работать на стороне сервера, то есть реализация веб-консоли завершена.

6.jpeg

Вариант 3: Зависимость от проекта

Проекты, построенные на основе Spring, могут напрямую добавлять зависимости (требуется соответствующая поддержка среды, например, tools.jar не может отсутствовать).

  • Зависимости проекта SpringBoot:
<dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-spring-boot-starter</artifactId>
            <version>${arthas.version}</version>
        </dependency>
  • Зависимости проекта, не относящиеся к SpringBoot:
<dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-agent-attach</artifactId>
            <version>${arthas.version}</version>
        </dependency>
        <dependency>
            <groupId>com.taobao.arthas</groupId>
            <artifactId>arthas-packaging</artifactId>
            <version>${arthas.version}</version>
        </dependency>
  • После запуска локального проекта вы можете получить прямой доступ:
http://127.0.0.1:3658/
  • Конечно, его также можно комбинировать с веб-консолью, описанной выше. Например, добавьте соответствующую информацию о конфигурации в файл конфигурации:
arthas.agent-id=qwejqjnnnunnq
arthas.tunnel-server=ws://server地址:7777/ws
  • Демонстрация выглядит следующим образом:

7.jpeg

8.jpeg

9.jpeg

Вышеуказанные шаги заключаются в том, чтобы сначала запустить туннельный сервер, а затем настроить локальное подключение к туннельному серверу. Затем введите настроенный идентификатор, чтобы завершить соответствующую отладку.

Вариант 4: Конфигурация контейнера

Судя по конфигурации докера, в настоящее время немало компаний используют контейнерные сервисы. Для контейнерных услуг это также применимо. После загрузки jar-файла выполните операцию ADD, иначе каждый раз при создании Dockerfile будет создаваться соответствующий файл изображения, содержащий arthas.

Вот как собрать через Dockerfile:

FROM openjdk:8-jdk-alpine
ADD target/*.jar app.jar
# copy arthas
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
RUN apk add --no-cache tini
ENTRYPOINT ["/sbin/tini", "--"]
CMD ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
MAINTAINER Montos 1367654518@qq.com

Вышеупомянутое делается путем сборки Dockerfile.Здесь файл изображения размещается напрямую.Здесь файл в текущем артасе копируется в соответствующий контейнер.После этого мы можем войти в выполнение через exec -it.Действия аналогичны к первому способу.

Суммировать

На самом деле, благодаря приведенному выше введению я рекомендую лучше использовать метод веб-доступа по следующим причинам:

  • Когда сервис развернут непосредственно на сервере или облачном сервере ECS. Мы можем работать непосредственно на соответствующей стороне клиента, но как нам добраться до сервера, на котором расположена каждая служба? Через трамплин? Тогда мы можем повлиять на соответствующий сервер, когда мы работаем, и определенно невозможно напрямую подключиться к серверу.

  • Служба находится в контексте модуля, на котором она работает. В настоящее время влияние разрешения на подключение к службе будет намного меньше, чем в описанной выше ситуации. Если влияние произойдет, оно повлияет только на работающий в данный момент модуль. Но если вы хотите подключить модуль напрямую, вам необходимо сопоставить соответствующий порт модуля с соответствующим хостом, а затем предоставить ссылку для внешнего доступа к ecs. Это сделает порт, который необходимо отображать каждый раз, когда поду нужны определенные правила, что, несомненно, увеличит работу по эксплуатации и обслуживанию, и операция также будет потреблять текущие ресурсы (страницы доступа и т. д., проходят через интерфейс http запрос, если подключен через ws, Уменьшите потребление 7 слоев).

  • Если используется вышеуказанный метод, то мы можем запустить сервер на другой машине.Каждый раз, когда мы обращаемся к серверу, мы подключаемся к соответствующему клиенту, обращаясь к серверу.В то же время может быть указан соответствующий агент-идентификатор.Когда клиент запущен, указываем текущий agent-id, чтобы привязать его к текущему поду, чтобы мы могли подключаться через сервер.

Конечно, доброжелательный видит благожелательность, а мудрый видит мудрость. Выше представлено несколько методов развертывания и запуска arthas.Предприятия могут выбрать подходящее развертывание для решения в соответствии с текущей структурой проекта. Зачем тебе это? ? ? ? Просто потому, что это может помочь разработчикам решить проблемы, нет необходимости посылать туда и обратно!

Добро пожаловать на сайт start.aliyun.com, чтобы испытать на себе 57 практических экспериментов Артаса:start.aliyun.com/Handan city oh you-speaker…

10.gif

Предварительный просмотр эксперимента Артаса

Чтобы больше разработчиков могли начать использовать Arthas, диагностический артефакт Java, было запущено сообщество Arthas и JetBrains.Объявление о приеме статей на приз Артаса:**Расскажи о том, что произошло между тобой и Артасом за эти годы. **Событие еще в самом разгаре,Нажмите, чтобы принять участие, Каждый может внести свой вклад, и вы можете выиграть призы, если примете участие!