Skip to main content

节点发现

ReadyCloud的特定之一是节点自动发现,无中央节点。默认情况下,节点通过组播(Multicast)方式发现彼此,所以节点需要在同一局域网中。 如果节点部署在不同局域网或广域网,只要IP直接可以连通,也可以通过静态IP发现机制发现彼此,如果有共用数据库连接,那么JDBC发现方式也很方便。

组播(Multicast)发现#

无须任何配置,此为默认工作模式。条件是所有节点在同一个局域网中。

静态IP发现#

# configuration for dev environment
---
readyWork:
server:
# This is the default binding address.
ip: 0.0.0.0
# Http port if enableHttp is true.
httpPort: 8080
readyCloud:
ipFinder:
- 192.168.1.6
- 192.168.1.8

例如上面的配置,指定了2个节点的IP地址192.168.1.6和192.168.1.8,这2个节点任意一个需要是已经启动或者先于其他节点启动,当其他节点启动时自动会从这个节点发现所有的节点。

JDBC发现#

# configuration for dev environment
---
readyWork:
server:
# This is the default binding address.
ip: 0.0.0.0
# Http port if enableHttp is true.
httpPort: 8080
database:
dataSource:
main:
type: mysql
#driverClass: com.mysql.cj.jdbc.Driver #since mysql jdbc 8, The driver is automatically registered via the SPI
jdbcUrl: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
username: root
password: 12345678
readyCloud:
jdbcIpFinder: true

如果项目用到了数据库,那么数据库JDBC也可以作为节点发现途径,上面配置了main数据源,下面通过设置jdbcIpFinder: true,所有节点都会通过连接数据去发现彼此。条件是所有节点都共用此数据源。