【华为云开发者学堂】使用分布式缓存Redis实现电商网站秒杀抢购功能

开发者云实验_云实验KooLabs_在线实验_上云实践_云计算实验_AI实验_华为云官方实验平台-华为云

云服务专家解决方案架构师V2.0学习路径_华为云开发者学堂_华为云

1.资源准备

1.1购买Redis缓存实例

常见问题解答

什么是分布式缓存Redis版?

分布式缓存Redis版业界首个支持Arm和x86双架构的Redis云服务,支持双机热备的HA架构,提供单机、主备、Proxy集群、Cluster集群、读写分离实例类型,满足高读写性能场景及弹性变配的业务需求。

于华为云控制台,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表 ->搜索“redis”->选择“分布式缓存Redis版”。

浏览器左上角区域切换至“北京四”,点击右上角“购买缓存实例”按钮。

购买缓存实例配置如下(没有注明的配置项保持默认):

计费模式:按需计费,

区域:华北-北京四,

缓存类型:Redis,

版本号:5.0,

实例类型:主备,

副本数:2,

实例规格:redis.ha.xu1.tiny.r2.128,

虚拟私有云:选择实验预制的虚拟私有云(vpc-dcs-redis),

IP地址:选择“自动分配IP地址”,

访问方式:密码访问,

密码:自定义(建议密码:jIZ@oju0YXea8$F,请牢记Redis用户登录密码),

确认密码:再次输入密码,

名称:自定义,

配置完成后点击右下角“立即购买”,然后点击“提交”,进入Redis列表可查看到已创建的Redis。

1.2购买弹性云服务器ECS

常见问题解答

什么是弹性云服务器?

弹性云服务器是由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算服务器,同时它结合虚拟私有云、虚拟防火墙、数据多副本保存等能力,为您打造一个高效、可靠、安全的计算环境,确保您的服务持久稳定运行。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。

进入华为云控制台,鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->“计算”->“弹性云服务器ECS”,如下图所示:

进入“弹性云服务器”页面,浏览器左上角区域切换至“北京四”,点击右上角“购买弹性云服务器”按钮。

ECS基础配置如下(没有注明的配置项保持默认):

计费模式:按需,

区域:华北-北京四,

可用区:默认,

规格:通用计算增强型 | c6.large.4 | 2vCPUs | 8GiB,

镜像:Huawei Cloud EulerOS 2.0 标准版 64位,

系统盘:高IO | 40GB,

点击页面右下角“下一步:网络配置”。

网络配置如下:

网络:选择实验预制的VPC和子网(与Redis实例在同一VPC下),

安全组:选择实验预制的安全组(sg-dcs-redis),

弹性公网IP:现在购买,

线路:全动态BGP,

公网带宽:按带宽计费,

带宽大小:5,

点击页面右下角“下一步:高级配置”。

高级配置如下:

服务器名称:ecs-redis-client

登录凭证:密码

密码:Huawei@1234(请牢记ECS用户登录密码),

确认密码:再次输入密码,

点击页面右下角“下一步:确认配置”。

购买数量:1

勾选我已经阅读并同意《镜像免责声明》

确认配置无误后,点击页面右下角“立即购买”按钮。进入ECS列表可查看到已创建的ECS,待ECS创建完成,复制其公网IP。

2.配置Redis缓存实例公网访问

2.1安装Nginx

双击桌面的“Xfce终端”打开Terminal,输入以下命令登录云服务器。

注意:请使用弹性云服务器ECS的弹性公网IP替换命令中的【EIP】。

拷贝代码LANG=en_us.UTF-8 ssh root@EIP

说明:弹性云服务器ECS的弹性公网IP地址可以通过鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->”计算”->“弹性云服务器ECS”进入服务器列表,进行查看并复制。ECS

接受秘钥输入“yes”,回车;

输入密码:创建ECS时设定的密码(输入密码时,命令行窗口不会显示密码,输完之后直接键入回车)。

成功登录云服务器之后如下图所示(实验过程中请勿关闭该Terminal窗口,否则需要重复此步骤重新建立连接):

注意:后续操作请保持Terminal窗口与云服务器的连接状态,以确保所有的操作都执行在云服务器上。

按如下操作,进行Nginx安装。

(1)执行以下命令,添加Nginx到yum源。

拷贝代码sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

(2)添加完之后,执行以下命令,查看是否已经添加成功。

拷贝代码yum search nginx

(3)添加成功之后,执行以下命令,安装Nginx。

拷贝代码sudo yum install -y nginx

(4)执行以下命令安装stream模块。

拷贝代码yum install nginx-mod-stream --skip-broken

2.2配置Nginx

Nginx安装后,需要配置请求转发规则,告诉Nginx哪个端口收到的请求,应该转发到后端哪个Redis实例。

①配置Redis实例连接

打开并修改配置文件

拷贝代码cd /etc/nginx
vi nginx.conf

按“i”进入插入模式,在文件中插入内容示例如下,如果有多个redis实例需要公网连接,可以配置多个server,在proxy_pass中配置Redis实例连接地址。

拷贝代码stream {
        log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

         access_log /var/log/nginx/tcp-access.log proxy ;
         open_log_file_cache off;
         include /etc/nginx/conf.d/*.stream;
        server {
        listen 8080;
        proxy_pass 192.168.0.5:6379;
        proxy_socket_keepalive on;
        proxy_timeout 60m;
        proxy_connect_timeout 60s;
    }
}

说明:

proxy_pass参数配置值为同一vpc下的Redis实例的IP地址,通过鼠标移动到云桌面浏览器页面中左侧菜单栏,点击服务列表->搜索“Redis”->选择“分布式缓存Redis版”,获取。

②客户端到Nginx的超时时间为3600秒,将此处编辑为为3600。

Nginx配置信息的输入位置

按“esc”退出插入模式,输入“:wq”保存文件并退出。

2.3启动Nginx

执行以下命令启动Nginx。

拷贝代码sudo systemctl start nginx.service

执行如下命令,验证启动是否成功

拷贝代码netstat -an|grep 808

出现如下图,8080端口在监听状态,表示Nginx启动成功。

3.使用分布式缓存Redis实现电商秒杀抢购功能

3.1CloudIDE打开项目

浏览器打开链接:

https://codelabs.developer.huaweicloud.com/codelabs/samples/dac4adfa38db4e9d98734b1e5edebb5f,点击“运行调试”。

3.2配置Redis实例链接

在DistributedLock.java中,host配置为步骤中购买ECS的公网IP地址,端口号port配置为8080,在getLockWithTimeout、releaseLock方法中需配置passwd值为步骤3中购买的Redis实例访问密码。

3.3调试运行

点击cloudIDE上方按钮,如下图所示

选择“Java”。

在弹出的“launch.json”文件中选择“{}Java:Launch Program”。

再次点击按钮,执行调试,在下方的“Java Debug Console”窗口里可以看到执行结果,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

造夢先森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值