Comments (6)
there are cases we cannot use the RaftAddress as the binding address such as in docker
I think what you are trying to suggest is that when using the Master server component, which is optional, the RaftAddress can't be used as the binding address where there is private/public address mapping. e.g. a nodehost binds to the private address 10.0.0.1:80 when it is accessible by a remote program from a public address say node1.mydomain.com:8080.
This has nothing to do with docker as you can have similar setup in other environment while docker users may choose to use the host network driver to avoid such mapping.
For most users, when they are not using the optional Master server, there is actually nothing for a NodeHost to advertise. The above mapping is managed by user programs - RaftAddress can be set to the private address so the NodeHost listens on it. All Raft member addresses (specified when you start cluster or do membership changes) should be using the public addresses. With the correct docker published port configuration, such setup should work fine in docker.
Is there any chance to add an advetise address?
I agree that when using the optional Master server component, the address used to identify the NodeHost should be the public address and it should be explicitly separated from the bind address.
Considering to add a bind address to the config and keep RaftAddress as the identification.
from dragonboat.
great, also, in my case, docker using host network is not allowed by some security policy in my company.
from dragonboat.
I've edited the original post to better describe the issue.
from dragonboat.
@gensmusic this issue has been resolved in 968d735
please note that the Master server support will be reworked in the major release, details in #32.
from dragonboat.
cool
from dragonboat.
@gensmusic please try the version in the Master branch and let me know if you see anything strange. thanks!
from dragonboat.
Related Issues (20)
- [Bug?]Question about raft.leaderHasQuorum function call setNotActive HOT 2
- Upgrade to pebble v1.0.0 HOT 2
- Improve the address validator HOT 1
- Missing VFS lib when building HOT 2
- Will there be any support for Mock Dragonboat Server to be used in the integration test ? HOT 2
- possible to do a pubsub example with websocket? HOT 1
- how does it scale with multi core / threads? HOT 3
- How do I limit the size of my data directory?After the cluster is started, the example-data directory generated by the node startup directory occupies 140MB. How can I limit the initial size of this directory HOT 1
- Is it considered to add a compression time setting in v4 HOT 1
- looking forward to version 4.0 with the api settling
- [Question] Adding removed node back to cluster HOT 2
- Last index of the replicas HOT 2
- possible to help resolve this issue whereby the deleted node is not recoverable?
- Request for Proxy Support in Dragonboat Raft HOT 1
- Panic with `inconsistent target for` HOT 4
- Session support in IOnDiskStateMachine HOT 1
- How To Properly Add and Sync A New Node in an Existing Raft Network HOT 8
- Question about log persistence when follower receive AE HOT 1
- Please make this feature possible with ondisk example version, uhaha kvdb HOT 2
- How to delete all replicas of a specific shard?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dragonboat.