《2023中国云原生成熟度模型报告》清晰展现中国云原生技术发展成熟度现状! 了解详情
写点什么

利用 AWS 打造高可用 SAP Hybris 系统

  • 2019-09-26
  • 本文字数:3252 字

    阅读完需:约 11 分钟

利用 AWS 打造高可用 SAP Hybris 系统

概述

SAP Hybris 是整个 e-commerce 领域的领先系统解决方案,许多客户在选择打造自己的 e-commerce 系统时,都会考虑选择 SAP Hybris. 这篇 blog 将会介绍如何利用 AWS 的服务打造高可用的 SAP Hybris. 同时,利用 Amazon Aurora 数据库,存储整个系统的用户相关数据,产品相关数据以及订单相关数据。


Solr 是 Apache 的开源项目,提供一个功能强大的搜索服务器,它支持 REST 风格 API。Solr 是基于 Lucene 的,Lucene 支持强大的匹配能力,如短语,通配符,连接,分组和更多不同的数据类型。Solr 在 e-commerce 电商系统中,通常作为搜索引擎使用。


Amazon Simple Storage Service (Amazon S3) 是一种对象存储,它具有简单的 Web 服务界面,可用于存储和检索 Web 上任何位置、任意数量的数据。它能够提供 99.999999999% 的持久性,并且可以在全球大规模传递数万亿对象。本篇文章设计的架构中利用 S3 作为相关媒体文件的存储用于存储整个系统的图片,脚本等静态资源。


Amazon Aurora 是一种与 MySQL 和 PostgreSQL 兼容的关系数据库,专为云而打造,既具有高端商用数据库的性能和可用性,又具有开源数据库的简单性和成本效益。同时,Amazon Aurora 已经被 SAP 认证作为 hybris 的数据库提供服务。


整个系统的架构图如下,需要注意的是在如果架构用于实际生产环境,建议将 Solr 服务器也进行高可用集群部署。


环境需求:

Hybris 安装包


https://help.sap.com/viewer/product/SAP_COMMERCE/1905/en-US


AWS Aurora 数据库


Application Load Balancer

构建 Hybris 服务器

1.将下载好的系统上传至 AWS EC2 服务器,可以利用 AWS S3 服务先上传安装包到桶中,在从 EC2 进行下载。


安装包解压后目录结构如下:



目录中的 hybris 为我们所需要的软件系统,其它文件的作用在这里不做深入解释,具体可以参考 SAP 官方文档。我们将 hybris 拷贝到根目录下方便后续操作。


\2. 进入/home/ec2-user/hybris/bin/platform 目录, 运行


. ./setantenv.sh
复制代码


进行安装环境的初始化。


3.接着运行


ant clean all
复制代码


进行初始化 hybris 的安装, 安装完毕后,hybris 的目录结构如下:



4.根据架构图中的设计我们需要利用 AWS Aurora 作为数据源,我们需要将 mysql 对应的驱动放入/home/ec2-user/hybris/bin/platform/lib/dbdriver/中,用于连接数据库。


配置数据库:

1.选择 Aurora 数据库引擎



2.确保多可用于部署勾选



3.设置 VPC 已经安全组的相关信息(确保 3306 端口开放给 EC2 所配置的安全组)


4.启动 Aurora 数据库

配置 Solr 搜索引擎:

启动一台新的 EC2 服务器,将 Hybris 安装包上传,并进行构建 hybris 系统部分的第一,二步骤。注意我们要对安装 Solr 的 EC2 服务器开放 8983 端口


修改/home/ec2-user/hybris/config/localextensions.xml, 修改为如下所示内容,该配置会启动一个只含有 Solr 服务器的 hybris 系统。


<hybrisconfig xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='../bin/platform/resources/schemas/extensions.xsd'>
<extensions>
<path dir='${HYBRIS_BIN_DIR}' autoload='false' />
<extension name='solrserver' />
</extensions>
</hybrisconfig>
复制代码


修改后进入目录/home/ec2-user/hybris/bin/platform/,运行


ant startSolrServer
复制代码


观察 Solr 服务器是否正常启动,正常启动的 Slor 会有如下显示:



配置 Hybris 服务器:


在这部分中,将利用配置文件完成和 Solr 服务器,Aurora 数据库,以及作为媒体存储的 S3 桶的集成配置,同时为了保证后期多台 EC2 服务器能够互相连通构成集群,这里也会利用 Jgroups 进行相关配置。


1.配置和 Solr 服务器的连接,在配置文件中增下如下配置,这里我们利用之前启动的用于部署 Solr 的 EC2 服务器的私有 IP 地址作为主机名:


solrserver.instances.default.autostart=false
solrserver.instances.standalone.autostart=true
solrserver.instances.standalone.mode=standalone
solrserver.instances.standalone.hostname=172.31.30.1
solrserver.instances.standalone.port=8983
solrserver.instances.standalone.memory=512m
复制代码


通过配置,启动的 Hybris 系统会连接配置文件所提供的 Solr 服务器,连接信息如图所示:



2.利用 S3 作为媒体存储的相关配置如下,这里需要用到 AKSK, 建议根据 AWS 安全最佳实践,利用 IAM 服务生成只有对 S3 存储桶操作权限的 AKSK 应用于此。{}部分需要根据环境定制


media.default.storage.strategy=s3MediaStorageStrategy
media.default.url.strategy=localMediaWebURLStrategy
media.globalSettings.s3MediaStorageStrategy.accessKeyId= media.globalSettings.s3MediaStorageStrategy.secretAccessKey=
media.globalSettings.s3MediaStorageStrategy.endpoint={s3.us-west-2.amazonaws.com}
media.globalSettings.s3MediaStorageStrategy.bucketId={hybrisbucket}
media.folder.media.storage.strategy=s3MediaStorageStrategy
media.folder.media.url.strategy=localMediaWebURLStrategy
复制代码


通过该配置,所有系统所需的静态文件包括图片,脚本等等文件都会存储在 S3 中,结构如下所示:



3.配置数据库的相关信息:


db.url=jdbc:mysql://hybris.cluster****.us-west-2.rds.amazonaws.com:3306/hybris?useConfigs=maxPerformance&characterEncoding=utf8
db.driver=com.mysql.jdbc.Driver
db.username=admin
db.password=
mysql.allow.fractional.seconds=true
复制代码


4.配置 Hybris 服务器集群相关的信息,这里绑定的 IP 地址仍然是 EC2 服务器的私有 IP 地址。


clustermode=true
cluster.nodes.autodiscovery=true
cluster.broadcast.methods=jgroups
cluster.broadcast.method.jgroups=de.hybris.platform.cluster.jgroups.JGroupsBroadcastMethod
cluster.broadcast.method.jgroups.tcp.bind_port=7800
cluster.broadcast.method.jgroups.channel.name=hybris-broadcast
cluster.broadcast.method.jgroups.configuration=jgroups-tcp.xml
cluster.broadcast.method.jgroups.tcp.bind_addr= 172.31.46.58
复制代码


配置后,hybris 系统会有如下相关的集群连接信息显示在启动过程中:



5.在测试完成后,我们利用该服务器作为基础, 建立镜像文件用于利用 AWS 自动扩展组实现 Hybris 系统的高可用扩展。


为了方便配置,在/home/ec2-user/下创建 setip.sh 脚本用于自动配置


#!/bin/bash
export y_ip=`curl http://169.254.169.254/latest/meta-data/local-ipv4 --silent`
echo "cluster.broadcast.method.jgroups.tcp.bind_addr= $y_ip" >> /home/ec2-user/hybris/config/local.properties
复制代码


利用该服务器配置创建映像。


配置 Auto Scaling 自动扩展组以及负载均衡 ALB

1.选择之前创建好的映像,创建启动配置,注意在创建启动配置部分,需要设置好相应的用户数据。数据详细代码如下:


#!/bin/bash
sudo yum update -y
/home/ec2-user/setip.sh
cd /home/ec2-user/hybris/bin/platform
. ./setantenv.sh
ant clean all >> /home/ec2-user/hybris/log/ant.log
sudo chown -RL ec2-user:ec2-user /home/ec2-user/hybris
su - ec2-user -c "cd /home/ec2-user/hybris/bin/platform;./hybrisserver.sh >> /home/ec2-user/hybris/log/startup.log"
复制代码


2.创建 ALB 目标组,这里要注意 hybris 的默认端口为 9001



3.创建负载匀衡器,需要注意的部分已经在图中标红




4.创建自动扩展组



这样如架构中所呈现的系统环境就我们就搭建好了,最后通过 ALB 的入口进行访问测试。



同时观察 hybris 系统的控制台,可以看到集群相关信息:


参考文档:

https://www.amazonaws.cn/rds/aurora/


https://lucene.apache.org/solr/


https://help.sap.com/viewer/product/SAP_COMMERCE/1811/en-US

作者简介

郭腾,AWS 中国团队的解决方案架构师,负责基于 AWS 的云计算方案架构咨询和设计。同时致力于 AWS 云服务在国内的应用和推广。在加入 AWS 之前,他曾就职于 SAP,从事技术支持和咨询相关工作。


本文转载自 AWS 技术博客


原文链接:


https://amazonaws-china.com/cn/blogs/china/use-aws-make-sap-hybris-system/


2019-09-26 17:55706
用户头像

发布了 1680 篇内容, 共 77.9 次阅读, 收获喜欢 71 次。

关注

评论

发布
暂无评论
发现更多内容

为什么boolean存储需要32bit?

程序员猪小哼

java基础 底层原理

API 分页探讨:offset 来分页真的有效率吗?

爱好编程进阶

Java 程序员 后端开发

docker限制容器的cpu内存使用率

爱好编程进阶

Java 程序员 后端开发

Java 输入一个字符串格式日期,获取对应的自然月开始结束时间,对应的自然年开始结束时间(1)

爱好编程进阶

Java 程序员 后端开发

14岁懂社会-《被你讨厌的昆虫们》读书笔记

懒时小窝

读书笔记 14岁懂社会

java中锁的四种状态

爱好编程进阶

Java 程序员 后端开发

CentOS 7

爱好编程进阶

Java 程序员 后端开发

Day163

爱好编程进阶

Java 程序员 后端开发

IntelliJ IDEA 中集成并使用 Git 图文教程

爱好编程进阶

Java 程序员 后端开发

Java EE开发系列教程 - 添加JPA模块

爱好编程进阶

Java 程序员 后端开发

谈谈对 Database Plus 认识与畅想

SphereEx

Apache 数据库 SphereEx ShaardingSphere

从Flutter开始聊聊跨平台移动开发框架

FinClip

Day06-Java代码操作阿里云oss,开发前准备,开发参考文档

爱好编程进阶

Java 程序员 后端开发

大数据培训Hive架构思想与设计原理

@零度

hive 大数据开发

架构实战营作业四

热猫

编码的底层原理

程序员猪小哼

java面试 底层原理 死磕 Java 基础

13 高可用的服务

爱好编程进阶

Java 程序员 后端开发

avatar Logo

爱好编程进阶

Java 程序员 后端开发

Java 输入一个字符串格式日期,获取对应的自然月开始结束时间,对应的自然年开始结束时间

爱好编程进阶

Java 程序员 后端开发

2020年Java面试复盘,收获Offer,金三银四程序员面试精装版pdf,分享给跳槽面试的程序员

爱好编程进阶

Java 程序员 后端开发

CDH5部署三部曲之一:准备工作

爱好编程进阶

Java 程序员 后端开发

Day180

爱好编程进阶

Java 程序员 后端开发

Java8设计模式最佳实战-设计模式概述(第七天学习记录)

爱好编程进阶

Java 程序员 后端开发

我推荐的Flutter项目结构

坚果

4月月更

2hutool源码分析:DateUtil(时间工具类)-常用的时间类型Date,DateTime

爱好编程进阶

Java 程序员 后端开发

JavaCV人脸识别三部曲之三:识别和预览

爱好编程进阶

Java 程序员 后端开发

Java中关于内存泄漏分析和解决方案,都在这里了

爱好编程进阶

Java 程序员 后端开发

API 文档构建工具 - Swagger2简单应用

爱好编程进阶

Java 程序员 后端开发

CGBTN2108-DAY05总结复习

爱好编程进阶

Java 程序员 后端开发

influxdb基础(七)

爱好编程进阶

Java 程序员 后端开发

JavaWeb静态网页

爱好编程进阶

Java 程序员 后端开发

  • 扫码添加小助手
    领取最新资料包
利用 AWS 打造高可用 SAP Hybris 系统_服务革新_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章