携程apollo linux服务器安装部署及问题记录

环境

jdk1.8、mysql5.7* 、系统可用内存2G+

下载Quick Start安装包

github地址:GitHub - apolloconfig/apollo-quick-start: Apollo Quick Startg​​​​​​​g

百度网盘地址:通过[网盘链接](https://pan.baidu.com/s/1Ieelw6y3adECgktO0ea0Gg)下载,提取码: 9wwe

apollo 安装

1、创建数据库并执行sql

下载文件后解压,在./sql目录下有两个sql文件,先创建两个mysql数据库(ApolloPortalDBApolloConfigDB),并分别执行目录中的sql文件。

2、修改./demo.sh文件,包括数据库连接信息及服务器端口地址信息

#apollo config db info
apollo_config_db_url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloConfigDB?characterEncoding=utf8
apollo_config_db_username=用户名
apollo_config_db_password=密码(如果没有密码,留空即可)
# apollo portal db info
apollo_portal_db_url=jdbc:mysql://xxx.xxx.xxx.xxx:3306/ApolloPortalDB?characterEncoding=utf8
apollo_portal_db_username=用户名
apollo_portal_db_password=密码(如果没有密码,留空即可)


#将地址改为服务器IP地址 
config_server_url=http://xxx.xxx.xxx.xxx:8080
admin_server_url=http://xxx.xxx.xxx.xxx:8090
portal_url=http://xxx.xxx.xxx.xxx:8070

3、验证端口是否被占用

使用以下命令验证即可:

lsof -i:8070、lsof -i:8080、lsof -i:8090

4、赋权demo.sh文件执行权限

chomd 777 demo.sh

5、执行./demo.sh脚本

6、浏览器访问http://xxx.xxx.xxx.xxx:8070

用户名/密码:apollo/admin

遇到的问题

1、执行demo.sh脚本后,总是卡住,日志信息为:

Config service failed to start in 120 seconds! Please check ./service/apollo-service.log for more information.

然后查看./service/apollo-service.log,发现日志信息只有以下内容:

2022-08-23 15:19:33.906  INFO 3221 --- [main] c.c.f.apollo.assembly.ApolloApplication  : The following profiles are active: github
2022-08-23 15:43:47.868  INFO 10701 --- [main] c.c.f.apollo.assembly.ApolloApplication  : Starting ApolloApplication v1.9.2 using Java 1.8.0_161 on localhost.localdomain with PID 10701 (/home/mg_gg_be/apollo/apollo-quick-start-1.9.2/service/apollo-service.jar started by mg_gg_be in /home/mg_gg_be/apollo/apollo-quick-start-1.9.2/service)
2022-08-23 15:43:47.875  INFO 10701 --- [main] c.c.f.apollo.assembly.ApolloApplication  : The following profiles are active: github
2022-08-23 15:43:55.333  INFO 10701 --- [main] o.s.cloud.context.scope.GenericScope     : BeanFactory id=e4e7a962-7e6a-32f7-a9a2-73b8244230aa

根据这个日志看不出问题,然后再去看生成的console.log发现了问题:

可以看出,是系统内存不足,导致启动失败了,查询资料得知,由于apollo要一次性启动三个项目,所需要的内存1.XG以上,最好是2G以上。

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000078e300000, 407896064, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 407896064 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /home/mg_gg_be/apollo/apollo-quick-start-1.9.2/service/hs_err_pid3221.log

2、数据库密码问题,执行不成功,查看日志发现提示数据库密码错误:

java.sql.SQLException: Access denied for user 'Mg_gg_apollo_config'@'XX.XX.XX.XX' (using password: YES)
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:829)
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:449)
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:242)
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)

然后查看demo.sh文件,发现密码并没有错误,最后发现数据库密码中有@和$两个特殊字符,在sheel脚本中需要将其强转成普通字符才可以,修改后重新执行,成功!

 

shell转义符介绍如下:

shell提供转义符有三种:单引号,双引号,反斜杠,本人使用的是单引号。

字符说明

''

单引号,硬转义,其内部所有的shell元字符、通配符都会被关掉。注意,硬转义中不允许出现’(单引号)。

""

双引号,软转义,其内部只允许出现特定的shell元字符($,`,\):$用于变量值替换、`用于命令替换、\用于转义单个字符

\

反斜杠,转义,去除其后紧跟的元字符或通配符的特殊意义。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值