Alfred → Raycast

Alfred 5 が July, 2022 にリリースされているが、これを機に Raycast に乗り換えている。

今のところ特に問題なく使えているので、今後は Raycast で統一していこうと思っている。

TypeScript で拡張が書けるのは嬉しい。

NGINX SO_REUSEPORT

NGINXの SO_REUSEPORT について。

ワーカープロセスが開いたソケットでSO_REUSEPORT機能を使うと、異なるワーカープロセス間であっても443などの同一のポートに対して、bind() & listen()を発行して待ち受けができるようになります。通常は一つのポートを待ち受けるできるプロセスは一つだけで、他のワーカープロセスが待ち受けようとするとエラーEADDRINUSE が返されます。

ref. NginxでのeBPFとSO_REUSEPORTを使ったQUICコネクション受信処理

このSO_REUSEPORT の機能を試したい場合は docker 使って下記の記事のように試してみるとよさそう。

nginx の reuseport (SO_REUSEPORT) を試してみる。 docker-compose で - Qiita

nginx_1:
  image: nginx
  net: host
  volumes:
    - ./conf.d:/etc/nginx/conf.d
  ports:
    - "80:80"

nginx_2:
  image: nginx
  net: host
  volumes:
    - ./conf.d:/etc/nginx/conf.d
  ports:
    - "80:80"

nginx_3:
  image: nginx
  net: host
  volumes:
    - ./conf.d:/etc/nginx/conf.d
  ports:
    - "80:80"
# conf.d/default.conf
server {
    server_name localhost;
    listen 80 reuseport;
    location / {
        return 200 'OK';
    }
}

eBPF(extended Berkeley Packet Filter)

上引用記事にて紹介されていいる eBPFについて調べた。

eBPF(extended Berkeley Packet Filter)はLinuxカーネルが提供する機能の一つで、カーネル空間で動作する仮想マシン(Virtual Machine)で、主にネットワークパケットやシステム動作のトレーシング用途で提供されます。それ以外にも、システムのセキュリティ対策、そして近年では各種クラウドアプリケーションの高速化などでも利用されており、近年クラウド界隈を中心にホットな技術です。

ref. eBPF - 入門概要 編