mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
Updated Filer Change Data Capture (markdown)
parent
b43111b57a
commit
91a1de8ad8
|
@ -2,6 +2,40 @@ Is it too much a dream to have something similar to [inotify](https://man7.org/l
|
|||
|
||||
Actually SeaweedFS can give you more!
|
||||
|
||||
# Experience it first
|
||||
|
||||
You can watch the SeaweedFS meta data changes.
|
||||
|
||||
```
|
||||
$ weed watch -h
|
||||
Example: weed watch [-filer=localhost:8888] [-target=/]
|
||||
Default Usage:
|
||||
-filer string
|
||||
filer hostname:port (default "localhost:8888")
|
||||
-pathPrefix string
|
||||
path to a folder or file, or common prefix for the folders or files on filer (default "/")
|
||||
-pattern string
|
||||
full path or just filename pattern, ex: "/home/?opher", "*.pdf", see https://golang.org/pkg/path/filepath/#Match
|
||||
-timeAgo duration
|
||||
start time before now. "300ms", "1.5h" or "2h45m". Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h"
|
||||
Description:
|
||||
See recent changes on a filer.
|
||||
|
||||
$ weed watch
|
||||
dir:/home new_entry:{name:"3190.pdf" chunks:{size:1130805 mtime:1608763500740201000 e_tag:"5c745d0a109bde58e0baaa6515c3694a" fid:{volume_id:1 file_key:35 cookie:4265699614}} attributes:{file_size:1130805 mtime:1608763500 file_mode:432 uid:502 gid:20 crtime:1608763500 mime:"application/pdf" replication:"000" md5:"\\t]\n\x10\x9b\xdeXສe\x15\xc3iJ"}} delete_chunks:true new_parent_path:"/home" signatures:1622972984
|
||||
```
|
||||
|
||||
# How it works?
|
||||
|
||||
The `weed watch` code is nothing fancy. It is calls a gRPC stream API to subscribe to all meta data changes and simply print out the meta data.
|
||||
|
||||
The gRPC API has several important use cases within SeaweedFS:
|
||||
* Replicate data to other SeaweedFS clusters in `weed filer.sync`.
|
||||
* Replicate meta data to other filers if not sharing the same filer meta store.
|
||||
* Replicate meta data to `weed mount` asynchronously.
|
||||
|
||||
The gRPC API is also open to public and can support all other languages.
|
||||
|
||||
# Example
|
||||
|
||||
Here is an example, in Java:
|
||||
|
|
Loading…
Reference in a new issue