目录
前言
当前,正值华为云隆重推出的828 B2B企业节活动期间,其中Flexus X实例的优惠促销力度尤为吸引人,强烈建议各位业界同仁积极参与探索。特别是对于在业务运营中对算力性能有严苛需求,同时希望自建的MySQL数据库、Redis缓存系统以及Nginx服务器能够发挥卓越性能的朋友们,这绝对是一个不容错过的良机,务必前往了解详情。
我是第二次参加华为和优快云的测评活动了,这一次测试的是华为云Flexus系列的云服务X实例, Flexus X产品和我们经常用的ECS弹性服务器来说是有一些区别的. ECS一般指的是弹性云服务器, 而Flexus应用服务器L实例可视为轻量级应用服务器,主要是满足一些我们简单的WEB部署这些,适配一些简单的小型的应用或者场景. Flexus云服务器X实例则位于L实例和ECS之间(也可以当作ECS,毕竟控制台显示的就是ECS)。X实例通过提供更均衡的资源配置,旨在满足部分对性能有更高需求但未达到专业级应用的场景。它简化了ECS的购买和配置过程,使得用户可以更快速地启动服务,同时保持较高的性价比。我截去了一些官网上的图片,用官方的介绍来表达他应该是更加的准确:
另外一个显著的特征,就是可以按照自己的实际需求对配置服务进行精确化购买以及是否通过开启性能模式来获取极致的稳定性能SLA保障
长话短说,我已经通过官方提供的优惠券获取了一定额度的配置,接下来就让我来进行第一次的尝试,也是我一直想进行的一个实验,部署一套xxl-job 分布式任务调度平台.通过这个部署来感受一下Flexus X到底如何.
XXL-JOB简介:
在我们的平时项目中,定时任务扮演着至关重要的角色。无论是数据同步、报表生成,还是消息推送、定时清理,都需要依赖定时任务来准确、高效地执行。比如说某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券;12306会根据车次的不同,设置某几个时间点进行分批放票等。XXL-JOB是一款轻量级分布式任务调度平台,它可以给我们提供了稳定、可靠、易用的定时任务解决方案。它采用中心化设计,调度中心负责任务管理、调度,执行器负责任务执行。除此之外,XXL-JOB还支持多种调度模式,比如固定速率执行、Cron表达式等,满足不同业务场景的需求。具体的使用等等在此就不多复述了,毕竟本次重心工作主要是进行部署
部署:
xxl-job调度中心环境要求:
- JDK1.8+
- Maven3+
- Mysql5.7+
Flexus X安装JDK:
Flexus X安装JDK和我们在其他的环境中操作没有什么差别,具体的安装步骤如下:
检查yum源是否有JDK
yum -y list java*
根据结果执行安装命令:
yum install -y java-1.8.0-openjdk.x86_64
执行命令看是否安装成功:
java -version
有版本提示 安装成功
Flexus X安装Mysql:
在购买的时候,可以选中是否对应用进行加速, 在购买X实例时配置应用加速后,X实例Huawei Cloud EulerOS 2.0系统会根据所选Nginx、Redis或MySql应用,在CPU、内存、网络、存储、内核等领域以及应用本身针对性调优,达到最优状态 。优化后,业务在运行Nginx、Redis或MySql等典型业务时可以获得20%以上的性能提升。本次实验已勾选了该选项.
检查yun源是否有mysql
执行安装 yum install mysql
第一次安装的时候,走到这里走不通了,缺少clent和lib,然后经过查询之后,决定使用最笨的办法,去官网下载 然后再手动安装
1). Mysql下载及安装
下载地址:MySQL :: Download MySQL Community Server HuaweiCloudEulerOS是基于Linux的,选择对对应的版本
然后分别下载其中的 Server、Client、Common、Libs
下载完成之后上传到我们的服务器中 如图所示:
安装顺序:common→libs→client→server
使用rpm -ivh 包名 安装组件,在文件所属的文件夹下 使用命令分别依次执行,最后的结果如图所示:
查看mysql安装结果: rpm -qa | grep mysql
查看MySQL的状态: systemctl status mysqld 默认为未启动状态
执行命令启动mysql服务: systemctl start mysqld ,绿色的active(running)表示启动成功!
2).修改密码
在修改mysql的密码和远程访问前,我已经修改过了服务器的安全组,设置了3306端口向外暴露,要不然Navicat等工具也是没有办法访问到本服务上的mysql.
先使用 cat /var/log/mysqld.log | grep password 命令查看原始密码,可以使用原始密码进行登录,也可以通过配置使得mysql不用密码即可登录(慎重!).
这里我们选择第二种: 向/etc/my.cnf文件中添加配置: skip-grant-tables
保存文件后重启即可直接登录,无需输入密码.
我们已经登录了服务,切换到mysql库,可以通过下面的sql查询用户的权限
select user, host, authentication_string from user;
使用sql修改初始化密码
update user set authentication_string=password('<new_password>') where user='用户';
其中更换的密码为两个' '之间的,不需要包含<>
修改后使用 flush privileges; 刷新权限
删除当时跳过mysql登录的配置项 systemctl restart mysqld 重启服务
重新登录 验证是否修改成功,下面圈出来的错误就是因为修改的密码把<>复制进去了,导致三次都不对
用修改过的密码登录的时候,想要开放mysql的访问权限时,发现提示需要再次修改密码
重复上述updata操作,换一个新的密码,并刷新权限
update user set authentication_string=password('<new_password>') where user='用户';
flush privileges;
这个时候会提示mysql设置的密码太简单,我们需要执行下面的sql进行设置
1.mysql> set global validate_password_policy=0;
2.mysql> set global validate_password_length=1;
这样 密码修改就最终完成了
3).设置对外访问
设置对外访问是最简单的,第一步执行sql设置root用户的访问限制,当然 这里也可以自己新增一个用户用来专门对外访问,操作步骤如下所示:
- 登录mysql
- use mysql
- 执行sql: update user set host='%' where user='root';
- 刷新权限
测试,在Navicat中输入账号密码,并点击测试,最终显示结果如下 表示整个mysql的安装和设置访问外网已经完成了!
源码下载,修改配置文件及编译,部署:
1. 从git或官网上下载下来对应的源码,解压后导入到idea中.
2. 初始化数据库,将sql导致Navicat中进行执行
- xxl_job_lock:任务调度锁表;
- xxl_job_group:执行器信息表,维护任务执行器信息;
- xxl_job_info:调度扩展信息表: 用于保存XXL-JOB调度任务的扩展信息,如任务分组、任务名、机器地址、执行器、执行入参和报警邮件等等;
- xxl_job_log:调度日志表: 用于保存XXL-JOB任务调度的历史信息,如调度结果、执行结果、调度入参、调度机器和执行器等等;
- xxl_job_logglue:任务GLUE日志:用于保存GLUE更新历史,用于支持GLUE的版本回溯功能;
- xxl_job_registry:执行器注册表,维护在线的执行器和调度中心机器地址信息;
- xxl_job_user:系统用户表;
3. 配置调度中心:
调度中心项目:xxl-job-admin
作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。
修改配置中心相关的配置: 主要修改的mysql的配置,如果需要其他的例如email的通知,配置相对应的mail参数即可,此地不再复述.
4. 部署配置中心: 将项目在idea里面通过maven直接打包成jar后放到服务器,以守护进程进行运行,结果如图所示:
在浏览器进行访问:
输入账号密码进行登录:
5. 向调度中心部署自己的任务:
此次只为简单调用,不在创建复杂的任务,直接使用官方给的项目进行测试,同配置中心一样打包后上传,启动
在调度中心配置执行器
在任务管理处新增任务,并关联执行器等,填写corn和必要的设置(已部署的代码中相关任务已经编写好代码了)
选择执行一次或者启动
查看执行效果:
单词执行:
安装corn执行: 日志列表正常触发
log正常打印
总结:
到此为止,上述的整个实验就完成了. 总结一下本次过程中一些碰到的问题. 首先是Mysql的部署问题, 在第一天的时候,通过yum形式反复安装了很多次,总是不成功,可能和源不完整有关,缺失clent和lib,后来通过手动上传进行了安装. 第二个问题的化是安全组和访问端口的配置,因为我们公司是开发和运维分别只关系自己的工作,所以在发布xxl-job的配置中心的时候,没有配置访问端口,导致一直发布不成功,后来经过排查 设置后,终于得以顺利进行.最后 Huawei Cloud EulerOS也还是基于Linux版本进行开发的,总体和CentOS来说没有什么区别.使用起来丝滑流畅..而且开启了加速后的应用 感觉mysql性能更加强大了! That is it !