精华内容
下载资源
问答
  • 阿里云企业上云最佳实践方案

    千次阅读 2021-03-19 17:05:59
    参考资料:阿里云上云实践方案 一、业务上云 1.跨境直播最佳实践及解决方案最佳实践 此方案主要解决跨境直播的两个场景,场景一:主播在国内,观众在海外。场景二:主播在海外,观众在国内。 2.企业应用(酒店PMS)...

    阿里云解决方案最佳实践,是基于众多客户上云的成功案例萃取而成的最优化企业上云指导。每个最佳实践包括使用场景、多产品部署架构及部署手册。帮助客户更好地理解阿里云的产品和解决方案,降低企业上云门槛的同时满足客户自服务的需求。

    参考资料:阿里云上云实践方案
    在这里插入图片描述

    一、业务上云
    1.跨境直播最佳实践及解决方案最佳实践
    此方案主要解决跨境直播的两个场景,场景一:主播在国内,观众在海外。场景二:主播在海外,观众在国内。
    2.企业应用(酒店PMS)上云混合云网络解决方案最佳实践
    本方案主要通过阿里云CEN、SAG等产品构建混合云架构,解决企业线下多分支和云上系统互访的问题
    3.在线教育质量分析检测方案
    方案介绍使用阿里云的智能媒体管理服务(IMM)以及OSS进行在线教育视频智能分析方案实践
    4.影视渲染云端解决方案最佳实践
    介绍影视渲染的基本概念及业务特点,基于渲管软件Deadline及阿里云产品构建云端渲染的解决方案
    5.电商行业解决方案最佳实践及数据库搬站最佳实践
    本方案适用于中小型电商行业上云。不仅包括常用最佳实践架构,还提供云上资源建站和数据库迁移实践操作
    6.游戏、零售等行业服务单元化部署场景下低成本单库单服解决方案最佳实践
    本方案演示了零售/游戏行业系统分级后单库单服系统云上搭建最佳实践,涉及大部分基础云产品
    7.中小企业上云多地域办公组网(SAG)解决方案最佳实践
    适用于全国有中小企业,云上部署内网办公业务系统, 需要上阿里云并建立可靠且易于维护得内网办公系统
    8.AI模型训练解决方案最佳实践
    本方案介绍利用阿里云基础设施搭建AI训练的容器环境,并利用Perseus加速框架进行加速的使用方法
    9.服务器迁移解决方案最佳实践
    适用服务器、虚拟机及其他云主机。提高服务器迁移时的还原度,降低操作难度,提高迁移速度
    10.游戏出海加速实践及解决方案最佳实践
    方案介绍使用阿里云全球加速(GA)以及CDN进行游戏出海网络加速以及游戏内容分发加速实践介绍
    11.应用IPv6改造解决方案最佳实践
    本方案普遍适用与云上业务系统IPv6改造,包含方案PPT及Demo系统step by step文档
    为云下IDC赋能-组建多可用区多地域的混合云(专线)最佳实践
    适用于解决混合云用户,专线成本很高配置复杂.可以用阿里云产品一站式完成
    12.EHPC工业仿真解决方案最佳实践
    本方案通过一个简单的工业仿真算例来讲解如何在阿里云上部署EHPC服务
    13.EHPC实现药物筛选解决方案最佳实践
    本方案利用一个药物仿真的计算demo演示了如何利用EHPC及NAS共享存储实现药物筛选的最佳实践.
    14.互联网行业高弹性系统构建最佳实践
    本方案通过弹性伸缩和POLARDB的配合,实现应用和数据库两个层面的弹性
    15.使用serverless架构搭建移动App、小程序、web应用后端服务
    使用severless架构搭建移动App、小程序和Web应用后端服务,弹性伸缩使用云资源
    16.低成本基于抢占式ECS搭建离线大数据分析集群实践方案
    方案介绍使用阿里云的抢占式ECS实例以及OSS等云上产品构建弹性低成本大数据分析系统
    17.容器Swarm集群向k8s集群灰度迁移方案
    本方案介绍如何实现将阿里云上的容器swarm集群向K8s集群灰度迁移
    18.在线教育业务全球部署的网络规划与安全搭建最佳实践
    适用于新上云用户,不了解云上网络,云产品安全,可提供上云第一步网络规划方案设计与云基础产品操作指导
    19.基于容器服务快速搭建小程序后端服务最佳实践
    小程序作为一种新的开放能力被广泛应用于各业务场景,本方案支持开发者快速部署小程序
    20.利用低成本互联网链路完成新零售业务数据迁移上云解决方案最佳实践
    适用于上云数据迁移阶段, 对网络成本比较敏感, 希望快速方便迁云
    21.线下idc K8S容器集群迁移弹性裸金属(神龙)集群最佳实践
    本方案探讨从线下IDC自建K8S零改造迁移云上K8S神龙版实践,自建K8S、数据双向同步、流量管理
    22.互联网业务全球化互通解决方案最佳实践
    适用从事全球化业务的客户借助全球互通的网络,实现多地域的互通。包括网络规划、网络互通、数据互通等
    23.函数计算IoT最佳实践之物联网智能家电获取天气信息
    物联网智能家电设备通过函数计算调用API接口快速获取全国天气控制家电设备
    24.金融行业从经典网络向VPC容器化改造最佳实践
    帮助金融业务完成了传统向DevOps的转变重构、经典网络向VPC的迁移,提高整体效能的提高
    25.SpringCloud应用托管到k8s的最佳实践
    本方案以PiggyMetrics为例讲解了如何将Springcloud应用托管到K8S的操作步骤
    26.基于ECI的K8S集群容器高弹性最佳实践
    用户原有的业务部署在k8s上运行常规业务,业务突发波动时突增业务运行在ECI上,达到成本的最优控制
    27.企业用户多账号合并之存储迁移集中
    以企业多云账号场景下将对象存储服务中的数据归集至一个云账号下为例,介绍企业多账号合并之存储迁移集中
    28.小程序业务实时监控最佳实践
    本方案基于容器快速搭建小程序,提高应用管理能力;利用ARMS提升业务监控能力,实时监控业务应用性能
    29.Kubernetes集群容器应用DevOps最佳实践
    到了容器时代业务变化更剧烈,为了满足企业敏捷需求,本方案使用云效完成容器应用自动化构建和持续部署
    30.基于弹性裸金属神龙服务器的AI训练最佳实践
    本方案使用神龙GPU服务器和CPFS以及K8S,搭建高性能的AI训练环境的操作步骤
    31.VMware on弹性裸金属服务器(神龙)最佳实践
    大量线下IDC使用的是VMware的产品,本方案描述如何在阿里云神龙上部署和运行VMware
    32.基于EMR大数据实例本地盘进行大规模数据集测试实践方案
    使用阿里云EMR+D1本地盘实例进行大数据分析集群构建以及大规模数据集测试实践
    33.互联网、电商行业实时数据大数据分析及大屏展示最佳实践
    电商网站购物数据通过实时大数据分析后在大屏幕上展示,极大地增强数据的可读性
    34.互联网、电商行业离线数据大数据分析及大屏展示最佳实践
    电商网站销售数据通过离线大数据分析后将业务指标数据在大屏幕上展示,极大地增强数据的可读性
    35.互联网电商行业容器集群节点低成本高弹性方案实践
    使用阿里云容器服务kubernetes版进行应用容器化改造以及容器集群节点的高弹性低成本伸缩实践方案
    36.基于资源编排(ROS)的混合云容灾场景解决方案
    本方案通过ROS实现混合云容灾场景下流量和资源的自动管控,保障业务高度可用
    37.VMware迁移DDH最佳实践
    介绍线下VMware环境迁移至云上DDH的最佳实践
    38.基于弹性计算的AI推理解决方案最佳实践
    基于弹性计算的AI推理解决方案,使用了容器服务ACK+Arena工具+Perseus加速框架。

    二、业务云容灾
    1.互联网、金融等行业中小型公司交易系统数据零丢失场景下两地三中心解决方案
    本方案通过RDS金融版实现数据库高可用的同时做到数据零丢失。DTS链路零停机上云,云原生异地容灾
    2.同地域跨可用区容灾迁移实践及演练runbook
    在不大幅增加成本的情况下,云上客户如何借助典型实践,实现单可用区到双可用区的迁移,切换演练优化等
    3.阿里云容器跨可用区高可用方案
    本方案介绍了如何实用Redis,RDS和NAS以及阿里云容器服务搭建一个跨可用区高可用的容器环境
    4.同地域跨可用区灾备解决方案及runbook
    在不大幅增加成本的情况下,帮助客户上云阶段,直接利用云上资源,实现业务的同地域跨可用区容灾能力

    三、云上安全
    1.企业上云等保二级最佳实践
    云原生高性价比的等保二级解决方案,包括详细的解决方案和网络架构,涉及到产品的开通配置及攻防演练
    2.企业上云等保三级最佳实践
    云原生高性价比的等保三级解决方案;在等保二级基础上,叠加必要的安全产品及高可用架构,满足三级要求
    3.电商网站业务安全最佳实践
    电商网站业务运营期间的安全解决方案,包括防爬风险管理、DDoS防护包、风险管理产品的核心能力及操作

    四、存储上云
    1.机场视频监控解决方案最佳实践
    本方案介绍了在机场监控场景中,利用混合云阵列存储作为缓存,将视频数据同步到云端OSS的最佳实践
    2.智能视频监控解决方案最佳实践
    线下监控摄像头实时上传到视频监控平台,做转码存储为数据源文件.即可通过智能视觉产品做AI智能分析

    五、上云支撑
    1.阿里云API使用实践解决方案最佳实践
    阿里云上云支撑工具API、SDK以及CLI的介绍和示例代码使用说明
    2.Terraform应用最佳实践方案
    方案讲解了如何使用Terraform工具进行构建实际云上业务架构的应用实践和代码示例
    3.RAM账号权限管理最佳实践
    以电商网站场景为例,介绍使用访问控制服务(RAM)进行账号权限管理的最佳实践

    六、无服务器计算
    1.Serverless架构函数计算最佳实践之图片自动分类和身份证图片过滤
    方案支持函数计算实现图片自动分组,完成大型图像库管理和通过智能媒体管理进行身份证识别,敏感信息处理
    2.利用Serverless架构下函数计算实现网站文件处理的最佳实践
    本方案介绍了采用函数计算实现网站文件处理的最佳实践,包括自动压缩/解压缩文件,截取图片等实用函数

    七、业务数据上云
    1.数据库异地备份及查询最佳实践
    本方案演示了云上RDS备份管理和不还原数据的情况下即时查询备份集的最佳实践
    2.电商网站智能推荐解决方案
    电商行业需要向用户推荐带有商品属性物品引导直接交易,提示购买率和转化率。常见的案例有淘宝,天猫等
    3.电商网站数据埋点及分析最佳实践
    对用户行为的每一个事件对应的位置进行埋点通过SDK上报,数据汇总后进行分析推动产品优化或指导运营
    4.基于EMR弹性低成本离线大数据分析实践
    基于阿里云日志服务、存储服务以及EMR构建弹性低成本大数据日志离线分析系统实践
    5.影视数据分发汇集与传输加速
    介绍基于阿里云服务,影视行业数据传输、汇集、分发的最佳实践
    弹性裸金属(神龙)自建ORACLE数据库最佳实践之单机ESSD版
    本方案演示神龙自建ORACLE数据库最佳实践,对ORACLE宕机重新快速恢复方案进行了探讨

    展开全文
  • nacos ,替代方案sc config、consul config 调用:feign,替代方案:resttempate 熔断:sentinel、,替代方案:Resilience4j 熔断监控:sentinel dashboard 负载均衡:sc loadbalancer 网关:spring cloud gateway ...

    点击关注公众号,利用碎片时间学习

    Spring Cloud 从H版本之后命名方式改为2020.x.x,话说为毛最新版本不是2021命名,来自强迫症的难受

    使用组件列表:

    • 注册中心:nacos,替代方案eureka、consul、zookeeper

    • 配置中心: nacos ,替代方案sc config、consul config

    • 调用:feign,替代方案:resttempate

    • 熔断:sentinel、,替代方案:Resilience4j

    • 熔断监控:sentinel dashboard

    • 负载均衡:sc loadbalancer

    • 网关:spring cloud gateway

    • 链路:spring cloud sleuth+zipkin,替代方案:skywalking等

    总体架构图

    52e11a62dc0487ba6dcbbc2ba5853a8d.png

    版本关系

    7e28a06835637629f6f2d311faba9bb4.png

    使用nacos作为注册中心和配置中心

    下载nacos

    下载地址:https://github.com/alibaba/nacos

    导入数据库

    创建mysql数据库nacos,导入 conf/nacos-mysql.sql

    配置数据库

    修改 conf/application.properties

    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql
    
    ### Count of DB:
    db.num=1
    
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=root
    db.password.0=123456

    配置启动模式

    将nacos设为单机模式启动,编辑 bin/startup.cmd 将MODE 修改为:

    set MODE="standalone"

    启动运行

    登陆页面:http://localhost:8848/nacos/,登陆用户nacos,登陆密码为nacos

    工程案例

    工程案例源码:https://github.com/java-aodeng/springcloud2020-demo-1

    工程案例包括2个,一个服务提供者provider 、服务消费者consumer

    在父pom文件引入相关的依赖,如下:

    <properties>
        <java.version>1.8</java.version>
        <spring-boot.version>2.4.4</spring-boot.version>
        <spring-cloud.version>2020.0.2</spring-cloud.version>
        <spring-cloud-alibaba.version>2021.1</spring-cloud-alibaba.version>
    </properties>
    
    <dependencyManagement>
        <dependencies>
            <!-- spring boot 依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring cloud 依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- spring cloud alibaba 依赖 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring-cloud-alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    服务提供者provider

    在pom文件引入以下依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>

    配置文件:

    server:
      port: 8762
    
    spring:
      application:
        name: provider
    
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848

    启动入口添加注解:

    @SpringBootApplication
    @EnableDiscoveryClient
    public class ProviderApplication {
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class,args);
        }
    }

    写个接口:

    @RestController
    public class DemoController {
        @Value("${server.port}")
        String port;
    
        @GetMapping("getInfo")
        public String getInfo(@RequestParam(value = "name",defaultValue = "nacosConfig",required = false)String name){
            return "my name is "+name+",my port is "+port;
        }
    }

    服务消费者consumer

    在pom文件引入以下依赖:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-openfeign</artifactId>
    </dependency>
    
    <!--引入openfeign,必须要引入loadbalancer,否则无法启动-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>

    配置文件

    server:
      port: 8763
    
    spring:
      application:
        name: consumer
    
      cloud:
        nacos:
          discovery:
            server-addr: 127.0.0.1:8848

    在工程的启动入口开启FeignClient的功能

    @SpringBootApplication
    @EnableDiscoveryClient
    @EnableFeignClients
    public class ConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(ConsumerApplication.class,args);
        }
    }

    写一个FeignClient,去调用provider服务的接口:

    @FeignClient(value = "provider")
    public interface ProviderClient {
    
        @GetMapping("getInfo")
        String getInfo(@RequestParam(value = "name",defaultValue = "nacosConfig",required = false)String name);
    }
    Copy

    写一个接口,让consumer去调用provider服务的接口:

    @RestController
    public class DemoController {
        @Autowired
        ProviderClient providerClient;
    
        @GetMapping("getInfoByFeign")
        public String getInfoByFeign(){
            return providerClient.getInfo("consumer feign");
        }
    }

    启动两个工程,在nacos服务列表页面出现,consumer,provider2个服务表示都已经注册成功

    服务调用

    在浏览器上输入http://localhost:8763/getInfoByFeign,浏览器返回响应

    my name is consumer feign,my port is 8761

    可见浏览器的请求成功调用了consumer服务的接口,consumer服务也成功地通过feign成功的调用了provider服务的接口。

    使用sc loadbanlancer作为负载均衡

    使用spring cloud loadbanlancer作为负载均衡器。通过修改provider的端口,再在本地启动一个新的provider服务,那么本地有2个provider 服务,端口分别为8761 和8762。在浏览器上多次调用http://localhost:8763/getInfoByFeign,浏览器会交替显示:

    my name is consumer feign,my port is 8761
    my name is consumer feign,my port is 8762

    注册中心provider服务也会显示两个示例

    使用nacos作为配置中心

    父工程添加nacos配置版本,另一个是用来解决最新版本导致的问题:

    <alibaba.nacos.version>2.0.3</alibaba.nacos.version>
    <spring-cloud.bootstrap.version>3.0.4</spring-cloud.bootstrap.version>
    
     <!--Alibaba Nacos 配置-->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        <version>${spring-cloud-alibaba.version}</version>
    </dependency>
    <!--引入这个依赖解决SpringCloud2020整合Nacos-Bootstrap配置不生效的问题-->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
        <version>${spring-cloud.bootstrap.version}</version>
    </dependency>

    服务提供者provider添加依赖:

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>

    在bootstrap.yml(一定是bootstrap.yml文件,不是application.yml文件)文件配置以下内容:

    server:
      port: 8762
    spring:
      application:
        name: provider
      cloud:
        nacos:
          config:
            enabled: true
            server-addr: 127.0.0.1:8848
            file-extension: yml
            prefix: provider
      profiles:
        active: dev

    在上面的配置中,配置了nacos config server的地址,配置的扩展名是ymal(目前仅支持yml和properties)。注意是没有配置server.port的,sever.port的属性在nacos中配置。上面的配置是和Nacos中的dataId 的格式是对应的,nacos的完整格式如下:

    ${prefix}-${spring.profile.active}.${file-extension}
    • prefix 默认为 spring.application.name 的值,也可以通过配置项 spring.cloud.nacos.config.prefix来配置。

    • spring.profile.active 即为当前环境对应的 profile,详情可以参考 Spring Boot文档。注意:当 spring.profile.active 为空时,对应的连接符 - 也将不存在,dataId 的拼接格式变成 {file-extension}

    • file-exetension 为配置内容的数据格式,可以通过配置项 spring.cloud.nacos.config.file-extension 来配置。目前只支持 properties 和 yaml 类型。启动nacos,登陆localhost:8848/nacos,创建一个data id ,完整的配置如图所示:

    ff4aa79fb88d1e5f1cd93d268aad92ed.png

    源码下载:

    https://github.com/java-aodeng/springcloud2020-demo-1

    参考资料:

    https://www.fangzhipeng.com/spring-cloud.html https://spring.io/projects/spring-cloud https://www.springcloud.cc/ https://blog.csdn.net/llllllllll4er5ty/article/details/104425284

    来源:ilovey.live/2021/09/26/springcloud2020

    推荐:

    主流Java进阶技术(学习资料分享)

    454b49e22321c4f531fe72156da30796.png

    PS:因为公众号平台更改了推送规则,如果不想错过内容,记得读完点一下“在看”,加个“星标”,这样每次新文章推送才会第一时间出现在你的订阅列表里。点“在看”支持我们吧!

    展开全文
  • Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS。具体流程如下图所示。 和数据直传到OSS相比,以上方法有三个缺点: (1)上传慢:用户数据需先上传到应用服务器,...

    最近在开发过程中遇到一个难解的问题:批量上传到存储空间OSS的时候,发现上传速度非常慢,比如说某些文件管理系统这种批量上传的时候对于上传的速度是非常重要的。

    1、什么是OSS?

    阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。您可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。基于OSS,您可以搭建出各种多媒体分享网站、网盘、个人和企业数据备份等基于大规模数据的服务。
    其实总结来说就是一个存储空间(相当于我们的数据库)

    2、背景信息

    每个OSS的用户都会用到上传服务。Web端常见的上传方法是用户在浏览器或App端上传文件到应用服务器,应用服务器再把文件上传到OSS。具体流程如下图所示。
    在这里插入图片描述
    和数据直传到OSS相比,以上方法有三个缺点:

    (1)上传慢:用户数据需先上传到应用服务器,之后再上传到OSS。网络传输时间比直传到OSS多一倍。如果用户数据不通过应用服务器中转,而是直传到OSS,速度将大大提升。而且OSS采用BGP带宽,能保证各地各运营商之间的传输速度。
    (2)扩展性差:如果后续用户多了,应用服务器会成为瓶颈。
    (3)费用高:需要准备多台应用服务器。由于OSS上传流量是免费的,如果数据直传到OSS,不通过应用服务器,那么将能省下几台应用服务器。

    3、前端代码

    <template>
      <div class="about">
        <el-progress :text-inside="true" :stroke-width="18" :percentage="percentage"></el-progress>
        <div>
          <el-upload
              class="upload-demo"
              action=""   说明:(这里填写你访问对应OSS链接)比如:http://XXXXX.oss-cn-shanghai.aliyuncs.com
              multiple
              :http-request="uploadAudio"
              :on-success="succe"
              :limit="50">
            <el-button size="small" type="primary">点击上传</el-button>
          </el-upload>
    
        </div>
      </div>
    </template>
    <script>
    import OSS from "ali-oss";
    
    export default {
      data() {
        return {
          percentage: 0,
          fileLoading: false
        };
      },
      methods: {
        succe(response, file, fileList) {
          
        },
        async uploadAudio(option) {
          console.log("上传", option);
          try {
            if (option.file.uid !== null && option.file.uid !== undefined) {
              //构建上传文件参数
              // let user = this.$store.getters.name;
              this.fileLoading = true;
              //获取上传文件所需要的STS Token
    
              let client = new OSS({
    			// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
                region: "yourRegion",
    			 // 从STS服务获取的临时访问凭证。临时访问凭证包括临时访问密钥(AccessKeyId和AccessKeySecret)和安全令牌(SecurityToken)。
                accessKeyId: "yourAccessKeyId",
                accessKeySecret: "yourAccessKeySecret",
                stsToken: "yourSecurityToken",
    			// 填写Bucket名称。
                bucket: "examplebucket",
                secure: true
              });
              let objectName = "gallery/" + option.file.uid + option.file.name;
              let fileName = option.file.name;
              // 分片上传文件
              let that = this;
    
              let result = await client.multipartUpload(objectName, option.file, {
                //进度条更新
                progress: async function(p) {
                  console.log(3);
                  that.percentage = parseInt(p * 100);
                  that.$forceUpdate();
    
                },
                if(progress) {
                  console.log(2,progress);
                },
                partSize: 1024 * 1000 * 2,
                timeout:120000,
                callback: {
    			  //上传回调的url
                  url: "",
                  host: "oss-cn-shanghai.aliyuncs.com",
                  body: "object=${object}&bucket=${bucket}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&var1=${x:myname}",
                  contentType: "application/json",
                  customValue: {
                    "x:myname": fileName
                    // myname: fileName
                  }
                }
              });
              console.log("回调后内容---", result);
              if (result.res.statusCode === 200) {
                //改阿里OSS后直接作用OSS路径前辍,不使用系统部署路径
                //this.playerOptions.sources[0].src = process.env.VUE_APP_OSS_PREFIX + result.name;
                this.$message.success("修改成功" + result.name);
                //this.$emit("setUrl", result.name, this.file.name, "", "");
                this.fileLoading = false;
              } else {
                this.$message.error("上传失败");
              }
              console.log(new Date());
            } else {
              this.$message.error("请先选择景区后上传文件!");
            }
          } catch (error) {
            this.$message.error(error.message);
          }
        }
      }
    };
    </script>
    

    4、STS获取临时访问凭证

    请访问此链接(使用STS临时访问凭证访问OSS)来获取accessKeyId、accessKeyId、ourAccessKeyId参数:(有了这个临时访问的凭证才能通过前端直接上传附件到OSS)

    let client = new OSS({
    			// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
                region: "yourRegion",
    			 // 从STS服务获取的临时访问凭证。临时访问凭证包括临时访问密钥(AccessKeyId和AccessKeySecret)和安全令牌(SecurityToken)。
                accessKeyId: "yourAccessKeyId",
                accessKeySecret: "yourAccessKeySecret",
                stsToken: "yourSecurityToken",
    			// 填写Bucket名称。
                bucket: "examplebucket",
                secure: true
              });
    

    5、回调服务启用

    上传成功后的回调
    在这里插入图片描述
    下载下来后,通过指令:java -jar oss-callback-server-demo.jar运行即可(可以在上传回调服务里面去塑造自己想要的数据参数)

    6、前端上传回调函数

    callback: {
    			  //这里的回调url就是第5步提到的回调服务启用的服务url
                  url: "",
                  host: "oss-cn-shanghai.aliyuncs.com",
                  body: "object=${object}&bucket=${bucket}&etag=${etag}&size=${size}&mimeType=${mimeType}&imageInfo.height=${imageInfo.height}&imageInfo.width=${imageInfo.width}&imageInfo.format=${imageInfo.format}&var1=${x:myname}",
                  contentType: "application/json",
                  customValue: {
                    "x:myname": fileName
                    // myname: fileName
                  }
                }
    

    7、 当在上传OSS时提示出现跨域问题

    OSS设置跨域访问

    在这里插入图片描述
    在这里插入图片描述

    web直传的效率可以直接提高数倍,这里的上传最直接的影响就是本机的上传速度,如果你的网络够OK的情况下,批量上传附件之web直传至OSS的效果一般在2M/S。 这只是个人的总结和记录,如果小伙伴们有什么疑问,可以在下方留言相互讨论,我这边看到了会第一时间回复。

    展开全文
  • 新需求下,企业BI落地实践也需要新方法。 首先,企业需要数据整合、分析展现及应用的完整数据平台方案。为了满足集团化BI建设需求,企业决策层需要基于全局数据进行分析,需要提供数据整合、存储、计算到数据应用的...

    公众号回复:干货,领取价值58元/套IT管理体系文档

    公众号回复:ITIL教材,领取最新ITIL4中文教材

    正文

    数字化建设是整个公司的新一轮变革,从公司战略、业务流程到组织架构都会发生巨大变化,BI对于整个公司来说,同样需要满足不同角色、不同部门的需求,因此,集团化是企业对于BI的新需求,BI不再仅仅是个人级产品、部门级产品,而是公司级产品、集团级产品。

    新需求下,企业BI落地实践也需要新方法。

    首先,企业需要数据整合、分析展现及应用的完整数据平台方案。为了满足集团化BI建设需求,企业决策层需要基于全局数据进行分析,需要提供数据整合、存储、计算到数据应用的端到端数据平台。

    此外,决策层对于数据分析的实时性要求高,对系统高性能计算提出了更高要求。在实践中根据用户查看数据的习惯及数据使用频率,可将用户经常查看的汇总数据存放在内存数据库中,提升数据访问速度。将用户不经常查看的明细数据存放在硬盘中,允许一段数据加载时间,从而释放了内存空间。

    针对业务人员探索式分析的需求,需要BI产品具备强大的自助分析能力。比如,业务人员对于数据会有探索式分析、小规模测试的需求,不同时间点关注的数据维度不同,BI平台需要支持业务人员自主进行数据分析。

    其次,BI的实践落地需要全生命周期服务支持。BI的价值在于赋能业务决策,需要与业务场景深度融合,因此在前期需要全面洞察业务需求,并在项目推进及后期上线运营后能及时响应用户最新需求及使用问题,提供全生命周期服务支撑。

    通过总结各行业BI落地实践,系统梳理BI平台建设方法论,将BI项目落地实践总结为三个主要步骤:咨询规划、项目落地和持续运营。在咨询规划阶段需要业务需求咨询支持,在项目落地阶段提供数据治理服务,在持续运营阶段提供国产化BI迁移培训等。

    01 咨询规划

    咨询规划是企业实现业务数据驱动的第一步,重在业务梳理和流程优化,并在此基础上确定BI所需数据,可划分为业务需求梳理、数据分析指标体系梳理和明确报表开发需求三个环节。

    业务需求应结合企业发展阶段、企业业绩目标、部门业绩目标而定,主要是确定BI建设的关键KPI指标。

    关键KPI指标不应过多,否则会造成数据分析的精力分散、重点缺失。比如销售部门重点关注收入指标,运营部门重点关注成本指标,提升业务决策效率。

    数据分析指标体系梳理阶段,需要确定KPI指标所需数据,需要由企业和BI厂商配合完成梳理。

    主要是将KPI指标和具体数据对应起来,确定计算KPI指标需要抽取的数据。有些指标由多个数据计算得来,需要明确计算方式,为数据准备提供依据。

    最后是明确报表开发需求,主要是明确用户对报表展示、指标排列、交付形式等方面的需求。比如,对于图表可视化、相关指标排列、移动端交付等方面的需求。

    02 项目落地

    BI项目落地包括数据准备、数据治理、数据建模、报表开发、系统上线五个步骤。

    其中,数据治理是核心步骤,因为数据治理决定数据分析结果的准确性,最终将影响业务决策。

    数据治理由于耗时长、工作繁重,往往需要大量人工手动补录检查,且人工经验判断可能存在偏差,会影响最终数据分析的结果。为避免后期重复劳动,企业应建立完备的数据录入规范,确保各部门基于统一标准录入数据,减少后期数据治理工作量。

    比如,针对数据治理常遇到的数据缺失问题,可在数据录入时应将必要字段设置为必填项;对于数据不统一问题,可将输入内容以选项的形式进行选择,确保数据录入的一致;对于数据错误问题,可以设置错误预警,降低数据错误出现频率。

    03 持续运营

    衡量BI项目建设的成功与否,需要考察用户对系统的使用程度,用户对系统的长期使用与持续运营密不可分。

    首先,降低BI使用门槛是提升用户使用率的重要因素。敏捷BI为用户自助式分析、建模提供便利,并支持在系统上进行二次开发,其出现大大降低了BI的使用门槛。

    其次,BI厂商需要提供运营培训,引导用户使用习惯的转变,尤其是完成国产化BI替换的企业。

    第三,需要定期的系统运维,提升BI系统使用程度和效率。一方面,需要BI厂商提供定期的系统运维及服务支持,及时解决用户在使用中的问题,让BI产品在企业内部使用起来。另一方面,BI系统需要在数据归档、ETL性能、报表、系统稳定性等方面加强系统维护,以应对系统运行一段时间后,数据量增大、业务复杂度提升的情况。

    最后,需要结合用户需求,对产品进行持续迭代更新。用户需求在不断变化,需要及时了解用户最新的需求反馈,在产品升级迭代中融入能满足用户新需求的功能,保证BI在企业业务经营决策中的长期使用价值。

    福利

    圈子构建、学习资料获取【ITIL/数字化转型/IT规划各类文档解决方案报告】,欢迎加入知识星球(扫下方二维码~~~

    更多推荐

    ITIL4 基础级培训认证课特惠团购

    CIO从管理到治理

    项目经理指导手册和管理模板下载

    ITIL系列之变更管理概述及详细流程图

    建设业务服务管理平台的规划蓝图

    IT系统架构及架构体系详解

    38张史上最全的IT架构师技能图谱(高清版下载)

    重磅!2021年全球运维大会演讲资料下载(共45份)

             

    免责声明:

    本公众号部分分享的资料来自网络收集和整理,所有文字和图片版权归属于原作者所有,且仅代表作者个人观点,与ITIL之家无关,文章仅供读者学习交流使用,并请自行核实相关内容,如文章内容涉及侵权,请联系后台管理员删除。


    展开全文
  • [vue] 在移动端使用vue,你觉得最佳实践有哪些? vant,mint,uniapp 个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题 ...
  • 实际上不只这5种,通过管道流的排列组合,其实有更多种,但是笔者总结的这五种可以说是最常用及最佳实践,前提小知识以前我在写技术文章涉及到“流关闭”、“连接关闭”的时候,经常有人留言:“还写技术文章,写个...
  • (我个人觉得还算行吧,毕竟倒逼了企业的管理精细化、管理效率和管理质量的提升) 那这样客户的需求,算不算行业最佳实践? (3)困惑 我经常想,一个标准产品,既要满足行业大中小所有客户,尽量覆盖,还要满足中国...
  • 其实就目前业界来说, python 下的爬虫轮子是最多的,我厂大多数同学都用 python 搞爬虫。我由于原来搞 web 后端用 PHP 比较多,对 PHP 下的生态和第三方库啥的如数家珍,厂里对使用的语言也不做强制要求,所以我就...
  • DDD分层架构最佳实践

    2021-04-21 14:42:55
    还在单体应用的时候就是分层架构一说,我们用得最多的就是三层架构。而现在已经是微服务时代,在微服务架构模型比较常用的有几个...以领域驱动设计(DDD)为理念的分层架构已经成为微服务架构实践的最佳实践方法。 ...
  • 这是一个比Josh Bloch的我在编写和维护jOOQ(Java中内部DSL建模的SQL)时遇到过...让我与你分享10个微妙的Java编码最佳实践:1. 牢记C++的析构函数记得C++的析构函数?不记得了?那么你真的很幸运,因为你不必去调试那...
  • 图像卷积 100 第5章 用稀疏坐标矩阵实现列联表 101 5.1 列联表 102 5.1.1 练习:混淆矩阵的计算复杂度 103 5.1.2 练习:计算混淆矩阵的另一种方法 103 5.1.3 练习:多类混淆矩阵 104 5.2 scipy.sparse数据...
  • 我在理解老师的多线程方法时遇到了麻烦。好了,在展示我们的两个示例之前,我必须说他正在教很多新手(包括我在内,我想是^。^),所以他可能选择了一种易于理解的多线程方法。另外,我没有去看他的课,但是我有他的...
  • 点击上方“民工哥技术之路”,选择“设为星标”回复“1024”获取独家整理的学习资料!众所周知,Kubernetes很难! 以下是在生产中使用它应遵循的一些最佳实践。遵循这些步骤能够确保更...
  • 今天的课程为《 Python单元测试》,内容共分为三个部分:单元测试的概念、工具与方法、Coverage 统计单元测试覆盖率的工具和Mock 简化单元测试的工具。 单元测试的概念、工具与方法 单元测试的概念 测试具有许多种...
  • 2020 版本控制最佳实践增强团队协作的五种简单方法 确定合适的分支策略频繁进行小的变更编写描述性的提交信息使用分支进行开发进行常规的代码审查行业的快速变化以及客户对新功能的需求不断增加...
  • 由于技术的进步,从国际交流到财务管理,全世界一半以上的人口依靠电脑和其他设备进行日常活动。但是,技术为网络犯罪...在此博客中,您将学习有关计算机取证的所有知识,涵盖了可用于调查的最佳实践的含义。 什么是计
  • 废话不多说,直接上代码,企业级拿来即用。 分布式锁组件共5个类,代码结构: 说明: RedissonConnector: 分布式锁客户端配置类。 RedissonLocker: 分布式锁的工作类。... RedissonLockWorker: 获取锁后的处理...
  • 那么DB重试方案为什么没有集成到MQ客户端内部,而要求应用自己完成? MQ的客户端设计为无状态模式,方便任意的水平扩展,且对机器资源的消耗仅仅是cpu、内存、网络 如果MQ客户端内部集成一个KV存储模块,那么数据...
  • DDD真的有最佳实践吗?就目前来看,没有。DDD不能只靠阅读就能充分理解,需要通过真正的实践,也会遇到挫折和怀疑,需要及时回顾和反复的学习。即使是聚合边界和聚合根的寻找,也是一件有难度的事情。 一种直觉性的...
  • 在 Docker 官方的最佳实践文档中要求,尽可能的使用 COPY,因为 COPY 的语义很明确,就是复制文件而已。最适合使用 ADD 的场合,就是所提及的需要自动解压缩的场合。 因此在 COPY 和 ADD 指令中选择的时候,可以...
  • Go 中实现了Error()方法的对象都是一种error。 type error interface { Error() string } errors.New() 返回一个errorString对象的指针,errorString对象就实现了Error()方法。 type errorString struct { s ...
  • 目录概述调优Whole-stage code generation数据倾斜Spark Adaptive Execution ...与Spark SQL交互的方法有多种,包括SQL和Dataset API。计算结果时,将使用相同的执行引擎,而与要用来表达计算的API /
  • Nacos配置安全最佳实践

    千次阅读 2021-04-02 15:55:04
    并提出配置安全最佳实践。作者:鲁严波前言配置管理作为软件开发中重要的一环,肩负着连接代码和环境的职责,能很好的分离开发人员和维护人员的关注点。Nacos的配置管理功能就很好地满足了云原生应用对于配置管理的...
  • 异常处理在编写健壮的Java应用中扮演着非常重要的角色。异常处理并不是功能性需求,它需要优雅地处理任何错误情况,...在实践中,异常处理不单单是知道语法这么简单。编写健壮的代码更像是一种艺术,而不是一门科...
  • MySQL备份的最佳实践

    2021-03-03 20:12:59
    MySQL相关事物的最佳实践,除了性能调优、查询优化和复制配置之外,另一个重要的主题是备份。让我们深入讨论一下关于MySQL备份的一些基础知识和最佳实践。逻辑MySQL备份在MySQL中,可以用两种不同的形式进行备份。第...
  • 集成测试最佳实践

    2021-02-12 21:27:13
    我们的团队有数百个集成测试,可以访问数据库并验证结果 . 我有两个基类用于所有集成测试,一个用于仅检索测试,一个用于创建/更新/删除测试 . 仅检索基类在TestFixtureSetup期间重新生成数据库,因此每个测试类只...
  • 2.1.1 事务问题原因分类 2.1.2、大事物带来的潜在风险 2.2、治理方案 1 Spring事务最佳实践 1.1、Spring事务传播机制 Spring定义了七种传播行为:默认为:PROPAGATION_REQUIRED 传播行为 含义 TransactionDefinition...
  • 这里我们将讨论一些关于异常处理的Java 最佳实践。 1) 为可恢复的错误使用检查型异常,为编程错误使用非检查型错误。 选择检查型还是非检查型异常,对于Java编程人员来说,总是让人感到困惑。检查型异常保证你对错误...
  • 面对如今海量数据,超高并发等诸多场景,openGauss将目光转向于分布式解决方案,专注于解决海量数据存储、超高并发吞吐、大表瓶颈等众多难题,与ShardingSphere一起构建全栈开源分布式解决方案,实现openGauss的又一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 265,275
精华内容 106,110
关键字:

最佳实践方案