是不是可以在t2.micro(免费套餐)上推出Cassandra?我收到一个错误:
nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'. 我尝试过SO的几个解决方案
JVM_OPTS="$JVM_OPTS - Djava.rmi.server.hostname=127.0.0.1"
Restarting the service: sudo service cassandra restart
If you have a cluster, make sure that ports 7000 and 9042 are open within your security group. 这不是t2.medium实例上的问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云的免费套餐中,t2.micro实例通常资源有限,包括CPU、内存和网络带宽等。Apache Cassandra是一个分布式数据库系统,它对资源有一定的要求,尤其是在内存方面。虽然理论上你可以在任何具有足够资源的服务器上安装Cassandra,但t2.micro实例可能因为资源限制而无法顺利运行Cassandra。
你遇到的错误“nodetool: Failed to connect to '127.0.0.1:7199' - ConnectException: 'Connection refused (Connection refused)'"表明nodetool尝试连接到Cassandra的JMX端口(默认是7199)时失败了,这可能是由于以下几个原因:
Cassandra未正确启动:确保Cassandra服务已经成功启动。你可以通过检查Cassandra的日志文件来获取更多信息,看看是否有其他错误阻止了服务的正常启动。
资源不足:t2.micro实例可能没有足够的内存或CPU资源来支持Cassandra的运行。Cassandra在启动时需要一定的内存,并且在运行过程中可能会消耗更多资源,特别是当处理数据写入和查询时。
配置问题:你提到的修改JVM_OPTS
是为了确保Cassandra知道其RMI绑定地址,但请确认这个配置是否正确应用到了Cassandra的启动脚本中,并且重启了服务。
安全组设置:确保你的实例的安全组规则允许内部通信(例如,7000端口用于节点间通信,9042端口用于客户端连接)。但是,对于本地环回地址127.0.0.1
的连接,安全组设置不会影响,因为这是在同一台机器上的通信。
防火墙设置:除了安全组,还要检查实例的操作系统层面是否有防火墙规则阻止了7199或其他必要的端口。
考虑到上述情况,如果你确定所有的配置都是正确的,且问题仍然存在,那么很可能是因为t2.micro实例的资源限制。建议你尝试在资源更丰富的实例上部署Cassandra,比如t2.small、t2.medium或者更高性能的实例类型,这样可以提供更好的运行环境给Cassandra。记得在更换实例类型后,同样要检查并调整安全组设置以适应新的部署需求。
阿里云NoSQL数据库提供了一种灵活的数据存储方式,可以支持各种数据模型,包括文档型、图型、列型和键值型。此外,它还提供了一种分布式的数据处理方式,可以支持高可用性和容灾备份。包含Redis社区版和Tair、多模数据库 Lindorm、MongoDB 版。