首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Linux中的Spring Data GemFire服务器java.net.BindException

Linux中的Spring Data GemFire服务器java.net.BindException
EN

Stack Overflow用户
提问于 2018-08-09 03:48:31
回答 1查看 154关注 0票数 0

我有一个Spring Boot应用程序,我正在使用它来启动Pivotal GemFire CacheServer

当我jar文件并在本地运行它时:

代码语言:javascript
复制
java -jar gemfire-server-0.0.1-SNAPSHOT.jar 

它运行得很好,没有问题。服务器正在使用默认属性

代码语言:javascript
复制
spring.data.gemfire.cache.log-level=info
spring.data.gemfire.locators=localhost[10334]
spring.data.gemfire.cache.server.port=40404
spring.data.gemfire.name=CacheServer
spring.data.gemfire.cache.server.bind-address=localhost
spring.data.gemfire.cache.server.host-name-for-clients=localhost

如果我将其部署到Centos发行版,并使用相同的脚本运行它,但通过了"test“配置文件:

代码语言:javascript
复制
java -jar gemfire-server-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=test

我的测试配置文件application-test.properties如下所示:

代码语言:javascript
复制
spring.data.gemfire.cache.server.host-name-for-clients=server.centralus.cloudapp.azure.com

在启动期间,我可以看到服务器找到了已经在主机上运行的定位器(我使用Gfsh通过一个单独的进程启动它)。

服务器甚至会加入集群大约一分钟。但随后它会因为绑定异常而关闭。

我检查过该端口(40404)上是否正在运行任何东西,但没有显示任何内容

编辑

显然,我在本地确实得到了这个异常--只是需要更长的时间。

当我在Centos发行版上启动它时,它几乎是瞬间的。在我的Mac上,大约需要2分钟,进程才会抛出异常:

添加更多这方面的图片:

两个bash窗口-左边是在本地监控GF,右边是我用来检查端口和启动Java进程的窗口:

服务器将添加到集群中。请注意时间戳16:45:05。

下面是添加的服务器,它似乎正在运行:

最后,异常大约两分钟后-再次查看异常的时间戳- 16:47:09。停止服务器并将其从群集中删除。

EN

回答 1

Stack Overflow用户

发布于 2018-08-09 04:14:37

您是否使用Gfsh启动了其他服务器?也就是说,使用类似于...的Gfsh命令...

代码语言:javascript
复制
gfsh>start server --name=ExampleGfshServer --log-level=config

Gfsh将启动CacheServers侦听默认的CacheServer端口40404

你有几个选择。

1)首先,您可以在使用Gfsh启动服务器时禁用默认CacheServer,如下所示...

代码语言:javascript
复制
gfsh>start server --name=ExampleGfshServer --log-level=config --disable-default-server

2)另外,您也可以在使用Gfsh...启动其他服务器时更改CacheServer端口。

代码语言:javascript
复制
gfsh>start server --name=ExampleGfshServer --log-level=config --server-port=50505

3)如果要启动Spring Boot Pivotal GemFire CacheServer类的多个实例,则可以通过在启动时将spring.data.gemfire.cache.server.port属性声明为系统属性来更改该属性。

例如,您可以在Spring Boot application.properties中执行...

代码语言:javascript
复制
#application.properties
...
spring.data.gemfire.cache.server.port=${gemfire.cache.server.port:40404}

然后,当从命令行启动应用程序时...

代码语言:javascript
复制
java -Dgemfire.cache.server.port=48484 -jar ...

当然,您也可以从命令行设置SDG属性...

代码语言:javascript
复制
java -Dspring.data.gemfire.cache.server.port=48484 --jar ...

无论如何,我向您保证,您正在运行另一个进程(例如Pivotal GemFire CacheServer),该进程的ServerSocket正在侦听端口40404netstat -a | grep 40404应该会给你更好的结果。

希望这能有所帮助。

向您致敬,约翰

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51754564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档