banner
ETHMaster

ETHMaster

writer
twitter
twitter

Xlog第三天、作業日誌——Apollo設定センターはなぜ時には機能し、時には機能しないのか

一、仕事に関すること#

昨日言及した李清晨氏の記事について補足します。彼の文章はシンプルでありながら力強く、読んだ後には前途が暗くても前に進む勇気が湧いてきます。皆さんにおすすめです。

今日は実際にネットワークプロトコルに関連する知識を学びました。元々ブログのタイトルは「泥瓦匠学网络 ——ifconfig 到底是个啥?」とする予定でしたが、今日仕事中に私のような初心者にとって非常に解決困難で非常にくだらない問題に遭遇したため、タイトルを「工作日志 ——Apollo 配置中心为啥时灵时不灵」に変更しました。

私は Java 開発者で、現在会社でスケジュールタスクのプロジェクトを担当しています。このプロジェクトでは、Java の遅延キュースレッドプールScheduledThreadPoolExecutorを使用してタスクのスケジュールを実現しています(もしかしたら誰かが言うかもしれませんが、既存のフレームワークがたくさんあるのに、なぜそれを使わないのですか?)わかりました、実は私も知っていますが、私はこれしかできません😂。以下に彼のメソッドを簡単にリストします:

public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit);

上記は彼のメソッドですが、理解できない人もいるかもしれませんが、心配しないでください。私は今、括弧内の 2 番目のパラメーターを取り出して、いつでも変更できる数字にする必要があります。そのために、Apollo という設定センターを使用します。この設定センターは、プロジェクトでよく使用され、いつでも変更される可能性のあるパラメーターを Apollo に配置することができます。プロジェクトがサーバーで実行されているときに、頻繁にプロジェクトを再起動する必要なく、これらのパラメーターをいつでも変更できます。

会社が提供する接続ドキュメントと公式ドキュメントに従って、Apollo に正常に接続し、設定を読み取ることができました。次の問題が発生しました:

すべての設定を公開した後、プロジェクトを起動すると、設定センターのすべての設定を正常に読み取ることができ、タスクを正常に実行できます。私は **最初の** 試みで設定センターの一部のパラメーターを変更して再度公開すると、プロジェクトは変更後の値をリアルタイムで取得できます。この時点では、1 回だけテストしました。つまり、設定センターを 1 回だけ変更し、パラメーターは 2 つまたは 3 つでも構いませんが、この場合、プロジェクトは正常に動作します。

しかし、設定をもう一度変更しようとすると、ログには Apollo が変更後の値を取得したと表示されますが、プロジェクトで取得されるパラメーターの値は元のままです。例えば、time の初期値が 10 秒で、最初の変更で 15 秒に変更した場合、プロジェクトは正常に動作しますが、2 回目の変更で 10 秒に戻しても、プロジェクトは 15 秒のままです。つまり、設定を 1 回しか変更できません。非常に奇妙です。

私はローカルのコードに監視者としてのリスナーを追加しました。これはリモート設定センターの変更を監視するためのもので、この時点で最新の値を取得できます。しかし、プロジェクトに渡される変数になると、古い値に戻ってしまいます。今日はステップバイステップでデバッグすることはしませんでしたが、明日試してみる予定です。さらに、ローカルの Apollo 設定のキャッシュファイルも確認しましたが、その中の値も新しいものでした。これにより、私のわずかな忍耐力が完全に失われました。自己批判をします。

この問題については、Java 開発者の方が私よりも多くのトラブルシューティング方法を考えるかもしれません。もし同様の問題に遭遇したり、アイデアがある場合は、コメントを残して助けていただければ幸いです。

二、ifconfig って何?#

このタイトルを見たら、多くの人が私を笑うかもしれません。このコマンドを知らないのに何を開発しているのですか?

正直言って、ifconfigコマンドについては、コンピュータの IP アドレスを表示するためのものだとしか知りませんでした。少なくとも今日までのことです。

ifconfigは、Linux/Unix システムでネットワークインターフェースを設定および制御するためのコマンドラインツールです。ネットワークインターフェースの有効化 / 無効化、IP アドレス、サブネットマスク、ブロードキャストアドレスなどの設定が可能です。

今日まで、私は IP アドレスの表示にしか使用していませんでした。その他の 4 つの機能はほとんど使用したことがありません。

簡単に記録しておきます。

私たちが通常言及するネットワークインターフェースは、eth0、eth1 などの名前で命名されるネットワークカードインターフェースです。一般的なオプションは次のとおりです:

  • up/down:ネットワークインターフェースの有効化 / 無効化。例:ifconfig eth0 up
  • ip:インターフェースの IP アドレスの設定。例:ifconfig eth0 192.168.1.10
  • netmask:サブネットマスクの設定。例:ifconfig eth0 netmask 255.255.255.0
  • broadcast:ブロードキャストアドレスの設定。例:ifconfig eth0 broadcast 192.168.1.255
  • mtu:MTU 値の設定、最大転送ユニット。例:ifconfig eth0 mtu 1500

上記では、多くの略語が関係していますが、その意味を調べました。

  • eth0、eth1:eth0、eth1 は Linux システムでのネットワークカードインターフェースの命名方法です。eth は Ethernet の略で、0、1 はインターフェースの番号を示しています。したがって、eth0 と eth1 はどちらもイーサネットネットワークカードを表していますが、区別するために異なる番号が付けられています。

  • IP:(Internet Protocol)はインターネットプロトコルのことで、インターネット上のデータがどのようなルールで転送されるかを記述するためのものです。IP アドレスはデバイスのネットワーク上の位置を特定し、データパケットを正しく送信先デバイスに届けるために使用されます。

    • IP プロトコルでは、次の 2 つのタイプのアドレスが定義されています:

    • IPv4:32 ビットのアドレスで、通常は 4 つの 0 から 255 の数字で表され、ドットで区切られます。例えば 192.168.1.1 です。

    • IPv6:128 ビットのアドレスで、通常は 8 つの 16 進数で表され、コロンで区切られます。例えば 2001:0db8:85a3:0000:0000:8a2e:0370:7334 です。

  • netmask:サブネットマスクは、IP アドレスのネットワーク部とホスト部を切り分けるために使用されるものです。32 ビットの 4 つの数字で構成され、IP アドレスと組み合わせて、ホストが同じネットワークに存在するかどうかを確認するために使用されます。サブネットマスクは、IP アドレスとの論理積演算を行うことで、ネットワークアドレスを抽出することができます。例(ネット上で見つけた例):

    1. IP アドレス:192.168.1.1
    2. サブネットマスク:255.255.255.0

    192.168.1.1 と 255.255.255.0 を論理積演算すると:

    192.168.1.1
    255.255.255.0
    ---------------------
    192.168.1.0

    演算結果からわかるように、これらのアドレスのネットワークアドレス部分は同じであり、どちらも 192.168.1.0 です。したがって、192.168.1.1 とサブネットマスク 255.255.255.0 は同じサブネットに存在します。

  • broadcast:(ブロードキャストアドレス)は、ネットワーク内のすべてのホストが受信できるデータパケットの宛先アドレスです。送信元は情報をネットワーク内のすべてのホストに一度に送信することができます。私はオンラインで情報を調べましたが、このブロードキャストアドレスがどのように計算されるのかまだ理解していません。一旦書かないでおきます。彼の役割は次のとおりです:

    1. ネットワーク内のすべてのホストが同じデータパケットを受信できるようにし、ブロードキャスト通信を実現します。

    2. ARP プロトコルに使用され、IP アドレスを MAC アドレスに解決します。ホストが ARP リクエストを送信する場合、リクエストのターゲットアドレスをブロードキャストアドレスに設定するため、ネットワーク内のすべてのマシンがその ARP リクエストを受信できます。

      1. ARP プロトコル:ARP(Address Resolution Protocol)は、IP アドレスを MAC アドレスに解決するためのプロトコルで、ネットワーク通信に使用されます。
        1. MAC アドレス:(Media Access Control Address)はネットワークカードの物理アドレスであり、人間の身分証明書のようなものです。
    3. DHCP プロトコルは、ブロードキャストアドレスを使用してすべてのクライアントに IP アドレスなどのネットワークパラメーターを割り当てます。

    4. ネットワークの診断とトラブルシューティングに使用できます。ICMP ブロードキャスト Ping パケットを送信して、サブネット内のすべてのホストをチェックします。

  • mtu:(Maximum Transmission Unit)最大転送ユニットは、ネットワークインターフェースが受け入れることができる最大データパケットサイズ(バイト単位)を指定します。

    • MTU の値は、インターフェースのタイプとネットワークメディアによって異なります。一般的な値は次のとおりです:

      • イーサネットインターフェースでは 1500 バイトが一般的です。
        • DSL ネットワークインターフェースでは 1492 バイトが一般的です。
        • PPP リンクでは 1472 バイトが一般的です。
        • IPSEC VPN チャネルの MTU では 1436 バイトが一般的です。

      MTU に関するもう一つの知識:データの受信側の MTU がどれほど大きくても、送信側は自分の MTU を超えるデータパケットを送信することはできません。つまり、データパケットのサイズは、MTU が小さい方によって決まります。

上記は、私が昨日と今日学んだ私にとっての新しい知識です。メモしておきます。

三、最近のニュースについて#

最近、たくさんのニュースを見ましたが、実際にはあまり新しいニュースを見ていません。知りたいと思っていることは見えず、ただ冷たい青い背景に白い文字の通知だけです。知りたくないことは適当に作り上げて、携帯電話を開かなくてもどこにでも漂っています。

今日はレイカーズが負けました。欠兵少将のグリズリーズにも勝てなかったです。友達が言うには、これはブックメーカーやリーグの策略だと言っています。お金を稼ぐためには何試合もやらないといけないですからね。

私はそうは思いません。今日の試合を見る限り、レイカーズは 3 つの点で負けました。まず、グリズリーズに対する強度が足りなかったこと、内心の油断が自分自身を散漫にさせました。第二に、ハムコーチの臨機応変な能力は確かに疑問です。最初の試合ではファンデルビルトがモランテに対して効果を発揮しましたが、2 回目の試合ではモランテがいないため、ファンデルビルトの攻撃力の不足、細身の欠点が露呈し、ディールマンとリトルジャレンジャクソンに追いかけられました。第三に、ブロウアイブロウもなぜか調子が悪いです。

今日は本当に話が多いです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。