Spring Cloud [SkyWalkingサービス環境構築、マイクロサービスアクセスSkyWalkingプローブ、Docker構築Elasticsearch環境] (14)

 

目次

分散リクエストリンク追跡_SkyWalkingサービス環境構築

分散リクエスト リンク追跡_マイクロサービス アクセス SkyWalking プローブ

分散リクエストリンク追跡_Docker が Elasticsearch 環境を構築 

分散リクエストリンク追跡_SkyWalking は永続化のために Elasticsearch を使用します 

分散リクエスト リンク トラッキング_SkyWalking カスタム リンク トラッキング


分散リクエストリンク追跡_SkyWalkingサービス環境構築

SkyWalking パッケージをダウンロードする 

SkyWalking パッケージを解凍します。 

tar -zxvf apache-skywalking-apm-es7-8.5.0.tar.gz -C /usr/local/

SkyWalking パッケージ ディレクトリの紹介

導入:

1. webapp: Ulフロントエンドのjarパッケージと設定ファイル(Web監視ページ)

2. oap-libs: バックグラウンド アプリケーションの jar パッケージとその依存関係の jar パッケージ

3. config: バックグラウンド アプリケーションを起動するための設定ファイル。使用されるさまざまな設定です。

4. bin: さまざまな起動スクリプト。通常、Web ページと対応するバックグラウンド アプリケーションを起動するためにスクリプト start.* を使用します。

5. エージェント: エージェント サービス jar パッケージ 

ポート番号を変更する 

vim /usr/local/apache-skywalking-apm-bin-es7/webapp/webapp.yml 

サービスを開始する 

知らせ:

起動が成功すると、2 つのサービスが開始されます。1 つは skywalking-oap-server で、もう 1 つは skywalking-web-ui: 8868 です。skywalkng-oap-server サービスが開始されると、2 つのポート 11800 と 12800 が公開されます。これらは、監視データの収集用のポート 11800 とフロントエンド要求の受け入れ用のポート 12800 です。ポートを変更して config/applicaiton.yml を変更できます。 

テストサービス

リクエスト http://192.168.66.100:8068 

 

リアルタイムのエフェクトフィードバック

1. 分散リンク追跡 SkyWalking は UI サービスのポート番号をどのように変更します_____。

appcation.yml

B webapp.yml

C app.yml

上記のDはすべて間違っています

2. 分散リンク追跡 SkyWalking は ___ ファイルで永続モードを設定します。

appcation.yml _

B webapp.yml

C app.yml

上記のDはすべて間違っています 

分散リクエスト リンク追跡_マイクロサービス アクセス SkyWalking プローブ

データを収集してアグリゲーターに送信するために使用されるプローブ。

公式プローブをダウンロードする 

URL https://skywalking.apache.org/downloads/

 

プローブ ファイルをプロジェクトにコピーします 

プロジェクトの VM 実行パラメータを変更する 

メニュー バーで[Run ] -> [EditConfigurations ...]をクリックします。ここでは、 cloud-gateway-gateway9527プロジェクトを例として、パラメーターを次のように変更します。

 

パラメータを追加する 

java -
javaagent:C:\Users\wangc\IdeaProjects\cloud\agent\skywalking-agent.jar
-DSW_AGENT_NAME=consumer-order
-
DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.66.101:11800

 パラメータ:

1. -javaagent: プローブのパスを指定するために使用されます。

2. -DSW_AGENT_NAME: サービス名

3. -DSW_AGENT_COLLECTOR_BACKEND_SERVICES: 接続アドレス

Javaコマンドライン起動方法 

java -javaagent:/path/to/skywalkingagent/skywalking-agent.jar -
DSW_AGENT_NAME=nacos-provider -
DSW_AGENT_COLLECTOR_BACKEND_SERVICES=localhost:11800 -jar yourApp.jar

テストモニタリング

 

リアルタイムのエフェクトフィードバック

1. マイクロサービスは、___ パラメーターを介して Skywalking プローブにアクセスします。

-javapath

B-エージェント

C -javaagent

D-ジャー

2. マイクロサービスは、___ パラメーターを通じて Skywalking サーバーのアドレスを指定します。

A -COLLECTOR_BACKEND_SERVICES 

B -DSW_AGENT__SERVICES

C -DSW_COLLECTOR_BACKEND_SERVICES

D -DSW_AGENT_COLLECTOR_BACKEND_SERVICES

分散リクエストリンク追跡_Docker が Elasticsearch 環境を構築 

画像をプルします 

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.1.1

コンテナを起動する

docker run -d --name es -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms512m -Xmx512m"
-e "discovery.type=single-node"
docker.elastic.co/elasticsearch/elasticsearch:7.1.1

パラメータ:

1. -d: デーモンの実行

2. ES_JAVA_OPTS: ヒープメモリの設定

3. Discovery.type: 単一ノードの起動を設定します。

テスト

アクセスアドレス:http://192.168.66.101:9200 

分散リクエストリンク追跡_SkyWalking は永続化のために Elasticsearch を使用します 

config ディレクトリ内の application.yml を変更します。 

/usr/local/apache-skywalking-apm-bin-es7/config

 

名前空間を変更する 

ESデータ接続アドレスを変更する 

サービスを再起動する 

[root@localhost bin]# ./startup.sh SkyWalking OAP が正常に開始されました。SkyWalking Web アプリケーションが正常に開始されました。

 

リアルタイムのエフェクトフィードバック

1. 分散リンク追跡 Skywalking は、_______ データベースを公式に推奨しています。

エラスティックサーチ

B MySQL

C H2

D TIDB 

分散リクエスト リンク トラッキング_SkyWalking カスタム リンク トラッキング

プロジェクト内の一部の重要なメソッドがリンクに追加されておらず、それが必要な場合は、カスタム リンク追跡スパンを追加できます。 

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.5.0</version>
        </dependency>
        <!--数据库连接池 HikariCP-->
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>2.7.8</version>
        </dependency>

 設定を追加するYMLファイル

eureka:
 client:
    # 表示是否将自己注册到Eureka Server
   register-with-eureka: true
    # 示是否从Eureka Server获取注册的服务信息
   fetch-registry: true
    # Eureka Server地址
   service-url:
     defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka
 instance:
   instance-id: payment8003
   prefer-ip-address: true
spring:
 application:
    # 设置应用名词
   name: cloud-payment-provider
  # 数据库配置
 datasource:
   name: sonice1024
   driver-class-name: com.mysql.jdbc.Driver
   url:
jdbc:mysql://192.168.66.101:3306/test?useSSL=false&useUnicode=true&characterEncoding=utf8&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8
   username: root
   password: 123456
   type: com.zaxxer.hikari.HikariDataSource
   hikari:
     minimum-idle: 3
     auto-commit: true
     idle-timeout: 10000
     max-lifetime: 1800000
     connection-timeout: 30000
     connection-test-query: SELECT 1
server:
 port: 8003

メインの起動クラスを作成する

/**
* 主启动类
*/
@EnableEurekaClient
@MapperScan("com.tong.mapper")
@SpringBootApplication
@Slf4j
public class PaymentMain8003 {
    public static void main(String[] args) {
      SpringApplication.run(PaymentMain8003.class,args);
        log.info("********* 服务提供者启动成功******");
   }
}

エンティティクラスの書き込み

@Data
public class User {
        private Long id;
        private String name;
        private Integer age;
        private String email;
        
}

UserMapperを書く

public interface UserMapper extends BaseMapper<User> {}

UserService インターフェイスを作成する

public interface UserService {
    List<User> findByAllUser();
}

書き込みインターフェース実装クラス

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;
    @Trace
    @Override
    public List<User> findByAllUser() {
        return  userMapper.selectList(null);
   }
}

ユーザーコントロール層の書き込み

@RequestMapping("user")
@RestController
public class UserController {
   @Autowired
   private UserService userService;
   @GetMapping("findByAll")
   public List<User> findByAll(){
       return userService.findByAllUser();
   }
}

http://localhost:8003/user/findByAll をテストします。

 

おすすめ

転載: blog.csdn.net/m0_58719994/article/details/131926669