首页 文章 精选 留言 我的

精选列表

搜索[实时etl],共10000篇文章
优秀的个人博客,低调大师

端智能系列文章|端侧复杂事件实时处理框架

作者:闲鱼技术-兴往 背景 现在移动网络越来越发达,移动生活越来越丰富,在用户手机上可能同时存在数百种APP,这注定了用户使用某一款APP的时间也将逐渐缩短。如果用户在APP内仅浏览了几分钟甚至几十秒,那我们将很难为用户提供更有价值的服务与信息,大部分应用的做法是将最最热销的产品或最最火爆的活动放在应用的闪屏或是首焦上,对于闲鱼这样具有丰富业务生态的应用来说,显然还不够。 那如何在用户驻留的短暂时间内为用户提供更有价值的信息呢,闲鱼基于用户的访问路径,为用户提供了更加丰富的优质信息与服务。例如用户发布了商品,我们会推荐当前正在进行的包邮活动,用户没买到想要的商品,我们会及时给用户推荐同款。 为了实现这样的信息提供模式,闲鱼打造了一套流量调控系统。 是什么 流量调控系统分为云侧事件处理和端侧事件处理,云侧事件处理能中心化的处理所有能收集

优秀的个人博客,低调大师

SpringCloud实现分库分表模式下,数据库实时扩容方案

一、项目结构 1、工程结构 2、模块命名 shard-common-entity: 公共代码块shard-open-inte: 开放接口管理shard-eureka-7001: 注册中心shard-two-provider-8001: 8001 基于两台库的服务shard-three-provider-8002:8002 基于三台库的服务 3、代码依赖结构 4、项目启动顺序 (1)shard-eureka-7001: 注册中心(2)shard-two-provider-8001: 8001 基于两台库的服务(3)shard-three-provider-8002:8002 基于三台库的服务 按照顺序启动,且等一个服务完全启动后,在启动下一个服务,不然可能遇到一些坑。 二、核心代码块 1、8001 服务提供一个对外服务 基于Feign的调用方式 作用:基于两台分库分表的数据查询接口。 import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import shard.jdbc.common.entity.TableOne;/** * shard-two-provider-8001 * 对外开放接口 */@FeignClient(value = "shard-provider-8001")public interface TwoOpenService { @RequestMapping("/selectOneByPhone/{phone}") TableOne selectOneByPhone(@PathVariable("phone") String phone) ;} 2、8002 服务提供一个对外服务 基于Feign的调用方式 作用:基于三台分库分表的数据存储接口。 import org.springframework.cloud.netflix.feign.FeignClient;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import shard.jdbc.common.entity.TableOne;/** * 数据迁移服务接口 */@FeignClient(value = "shard-provider-8002")public interface MoveDataService { @RequestMapping("/moveData") Integer moveData (@RequestBody TableOne tableOne) ;} 3、基于8002服务数据查询接口 查询流程图 代码块 /** * 8001 端口 :基于两台分库分表策略的数据查询接口 */@Resourceprivate TwoOpenService twoOpenService ;@Overridepublic TableOne selectOneByPhone(String phone) { TableOne tableOne = tableOneMapper.selectOneByPhone(phone); if (tableOne != null){ LOG.info("8002 === >> tableOne :"+tableOne); } // 8002 服务没有查到数据 if (tableOne == null){ // 调用 8001 开放的查询接口 tableOne = twoOpenService.selectOneByPhone(phone) ; LOG.info("8001 === >> tableOne :"+tableOne); } return tableOne ;} 4、基于 8001 数据扫描迁移代码 迁移流程图 代码块 /** * 8002 端口开放的数据入库接口 */@Resourceprivate MoveDataService moveDataService ;/** * 扫描,并迁移数据 * 以 库 db_2 的 table_one_1 表为例 */@Overridepublic void scanDataRun() { String sql = "SELECT id,phone,back_one backOne,back_two backTwo,back_three backThree FROM table_one_1" ; // dataTwoTemplate 对应的数据库:ds_2 List<TableOne> tableOneList = dataTwoTemplate.query(sql,new Object[]{},new BeanPropertyRowMapper<>(TableOne.class)) ; if (tableOneList != null && tableOneList.size()>0){ int i = 0 ; for (TableOne tableOne : tableOneList) { String db_num = HashUtil.moveDb(tableOne.getPhone()) ; String tb_num = HashUtil.moveTable(tableOne.getPhone()) ; // 只演示向数据新加库 ds_4 迁移的数据 if (db_num.equals("ds_4")){ i += 1 ; LOG.info("迁移总数数=>" + i + "=>库位置=>"+db_num+"=>表位置=>"+tb_num+"=>数据:【"+tableOne+"】"); // 扫描完成:执行新库迁移和旧库清理过程 moveDataService.moveData(tableOne) ; // dataTwoTemplate.update("DELETE FROM table_one_1 WHERE id=? AND phone=?",tableOne.getId(),tableOne.getPhone()); } } }} 三、演示执行流程 1、项目流程图 2、测试执行流程 (1)、访问8002 数据查询端口 http://127.0.0.1:8002/selectOneByPhone/phone20日志输出:8001 服务查询到数据8001 === >> tableOne :+{tableOne} (2)、执行8001 数据扫描迁移 http://127.0.0.1:8001/scanData (3)、再次访问8002 数据查询端口 http://127.0.0.1:8002/selectOneByPhone/phone20日志输出:8002 服务查询到数据8002 === >> tableOne :+{tableOne} 四、源代码地址 GitHub·地址: https://github.com/cicadasmile/spring-cloud-base GitEE·地址: https://gitee.com/cicadasmile/spring-cloud-base

优秀的个人博客,低调大师

Android播放器实现视频窗口实时放大缩小功能

很多开发者希望我们的Android平台RTSP/RTMP播放端实现视频窗口的放大缩小功能,为此,我们做了个简单的demo,通过播放端回调RGB数据,直接在上层view操作处理即可,Github:https://github.com/daniulive/SmarterStreaming 无视频无真相:http://www.iqiyi.com/w_19s9sa7epp.html 基本流程如下: 基础的初始化和参数设定 libPlayer = new SmartPlayerJniV2(); myContext = this.getApplicationContext(); sSurfaceView = (SurfaceView) this.findViewById(R.id.surface); surface_renderer = new RGBSurfaceRenderer(sSurfaceView); private void InitAndSetConfig() { playerHandle = libPlayer.SmartPlayerOpen(myContext); if (playerHandle == 0) { Log.e(TAG, "surfaceHandle with nil.."); return; } libPlayer.SetSmartPlayerEventCallbackV2(playerHandle, new EventHandeV2()); libPlayer.SmartPlayerSetBuffer(playerHandle, playBuffer); // set report download speed(默认2秒一次回调 用户可自行调整report间隔) libPlayer.SmartPlayerSetReportDownloadSpeed(playerHandle, 1, 2); libPlayer.SmartPlayerSetFastStartup(playerHandle, isFastStartup ? 1 : 0); //设置RTSP超时时间 int rtsp_timeout = 10; libPlayer.SmartPlayerSetRTSPTimeout(playerHandle, rtsp_timeout); //设置RTSP TCP/UDP模式自动切换 int is_auto_switch_tcp_udp = 1; libPlayer.SmartPlayerSetRTSPAutoSwitchTcpUdp(playerHandle, is_auto_switch_tcp_udp); libPlayer.SmartPlayerSaveImageFlag(playerHandle, 1); // It only used when playback RTSP stream.. // libPlayer.SmartPlayerSetRTSPTcpMode(playerHandle, 1); playbackUrl = "rtmp://202.69.69.180:443/webcast/bshdlive-pc"; //playbackUrl = "rtsp://184.72.239.149/vod/mp4://BigBuckBunny_175k.mov"; libPlayer.SmartPlayerSetUrl(playerHandle, playbackUrl); } 2. 设置External Render,回调RGBA数据 libPlayer.SmartPlayerSetExternalRender(playerHandle, new RGBAExternalRender()); Log.i(TAG, "Start playback stream++"); InitAndSetConfig(); // External Render libPlayer.SmartPlayerSetExternalRender(playerHandle, new RGBAExternalRender()); libPlayer.SmartPlayerSetAudioOutputType(playerHandle, 0); if (isMute) { libPlayer.SmartPlayerSetMute(playerHandle, isMute ? 1 : 0); } if (isHardwareDecoder) { int isSupportHevcHwDecoder = libPlayer.SetSmartPlayerVideoHevcHWDecoder(playerHandle, 1); int isSupportH264HwDecoder = libPlayer .SetSmartPlayerVideoHWDecoder(playerHandle, 1); Log.i(TAG, "isSupportH264HwDecoder: " + isSupportH264HwDecoder + ", isSupportHevcHwDecoder: " + isSupportHevcHwDecoder); } libPlayer.SmartPlayerSetLowLatencyMode(playerHandle, isLowLatency ? 1 : 0); libPlayer.SmartPlayerSetFlipVertical(playerHandle, is_flip_vertical ? 1 : 0); libPlayer.SmartPlayerSetFlipHorizontal(playerHandle, is_flip_horizontal ? 1 : 0); libPlayer.SmartPlayerSetRotation(playerHandle, rotate_degrees); int iPlaybackRet = libPlayer .SmartPlayerStartPlay(playerHandle); if (iPlaybackRet != 0) { Log.e(TAG, "Call SmartPlayerStartPlay failed.."); return; } surface_renderer.StartRender(); btnStartStopPlayback.setText("停止播放 "); isPlaying = true; Log.i(TAG, "Start playback stream--"); 回调RGBA数据: class RGBAExternalRender implements NTExternalRender { // public static final int NT_FRAME_FORMAT_RGBA = 1; // public static final int NT_FRAME_FORMAT_ABGR = 2; // public static final int NT_FRAME_FORMAT_I420 = 3; private int width_ = 0; private int height_ = 0; private int row_bytes_ = 0; private ByteBuffer rgba_buffer_ = null; @Override public int getNTFrameFormat() { Log.i(TAG, "RGBAExternalRender::getNTFrameFormat return " + NT_FRAME_FORMAT_RGBA); return NT_FRAME_FORMAT_RGBA; } @Override public void onNTFrameSizeChanged(int width, int height) { width_ = width; height_ = height; row_bytes_ = width_ * 4; Log.i(TAG, "RGBAExternalRender::onNTFrameSizeChanged width_:" + width_ + " height_:" + height_); rgba_buffer_ = ByteBuffer.allocateDirect(row_bytes_ * height_); } @Override public ByteBuffer getNTPlaneByteBuffer(int index) { if (index == 0) { return rgba_buffer_; } else { Log.e(TAG, "RGBAExternalRender::getNTPlaneByteBuffer index error:" + index); return null; } } @Override public int getNTPlanePerRowBytes(int index) { if (index == 0) { return row_bytes_; } else { Log.e(TAG, "RGBAExternalRender::getNTPlanePerRowBytes index error:" + index); return 0; } } public void onNTRenderFrame(int width, int height, long timestamp) { if (rgba_buffer_ == null) return; // rgba_buffer_.rewind(); // copy buffer // test // byte[] test_buffer = new byte[16]; // rgba_buffer_.get(test_buffer); //Log.i(TAG, "RGBAExternalRender:onNTRenderFrame w=" + width + " h=" // + height + " timestamp=" + timestamp); // Log.i(TAG, "RGBAExternalRender:onNTRenderFrame rgba:" + // bytesToHexString(test_buffer)); if ( surface_renderer != null) { surface_renderer.SetRGBImage(width, height, rgba_buffer_); } } } 对视频view进行放大缩小等状态处理: @SuppressLint("ClickableViewAccessibility")public RGBSurfaceRenderer(SurfaceView view){ surface_holder_ = view.getHolder(); if (surface_holder_ == null) { Log.e(TAG, "RGBSurfaceRenderer, surfaceHolder with null.."); return; } surface_holder_.addCallback(this); view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { Log.e(TAG, "onTouch called.."); switch (event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_DOWN: start_point_.set(event.getX(), event.getY()); status_ = DRAG; break; case MotionEvent.ACTION_POINTER_DOWN: float distance = spacing(event); if (distance > 10f) { status_ = ZOOM; start_distance_ = distance; } break; case MotionEvent.ACTION_MOVE: if (status_ == DRAG) { dragAction(event); } else { if (event.getPointerCount() == 1) return true; zoomAcition(event); } break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_POINTER_UP: status_ = NONE; break; default: break; } return true; } }); } 关闭播放: if (isPlaying) { Log.i(TAG, "Stop playback stream++"); int iRet = libPlayer.SmartPlayerStopPlay(playerHandle); if (iRet != 0) { Log.e(TAG, "Call SmartPlayerStopPlay failed.."); return; } surface_renderer.StopRender(); libPlayer.SmartPlayerClose(playerHandle); playerHandle = 0; isPlaying = false; btnStartStopPlayback.setText("开始播放 "); Log.i(TAG, "Stop playback stream--"); }

优秀的个人博客,低调大师

全景还原报错现场 | 应用实时监控 ARMS 上线用户行为回溯功能

随着前端技术日新月异迅猛发展,为了实现更好的前端性能,最大程度提高用户体验,支持单页应用的框架逐渐占领市场,如众所周知的React,Vue等等。但是在单页应用的趋势下,快速定位并解决JS错误却成为一大难题。在当下的互联网行业,对前端性能要求越来越高,前端性能监控的产品层出不穷,javascript错误诊断更是其中举足轻重的一个环节。帮助开发者排查线上bug,实现快速定位问题,高效解决问题,是我们努力的方向。 一、JS错误诊断 目前已经有了许多诸如Arms,Sentry等前端性能监控框架,都在一定程度上对JS错误诊断提供了相应的 支持,总体来说,大家的思路比较相似,可以总结为以下几个步骤: 1. 统计JS错误 每当上线一个新的产品或新的业务功能,往往伴随着一些不可避免的线上bug,这些bug发生的频率有多高、发生在什么页面、影响了多少用户等

优秀的个人博客,低调大师

2019年阿里云服务器租用价格表(实时更新)

阿里云ECS云服务器租用价格组成包含三部分:即云服务器配置费用+磁盘价格+网络宽带价格,需要注意的是:不同地域宽带价格也有所差异,所以不同地域节点的云服务器价格也有所不同,下面笔者分享阿里云服务器详细价格及收费标准,包含不同计费模式下的云服务器收费价格等信息。 云服务器价格及收费标准导航 阿里云ECS云服务器的价格主要是由实例配置价格+磁盘价格+网络宽带价格三部分组成,以下为笔者整理的2019年的阿里云报价:一:实例配置价格表二:磁盘价格表三:网络宽带价格活动推荐:1.阿里云通用代金券2000元2.云上爆款,阿里云爆款云服务器3折起实例配置价格表阿里云服务器配置分为入门级配置和企业级配置,云服务器的配置计费方式可以按量(小时)计费、按月计费或者年付等计费方式,本文中的价格表是以非Windows、专有网络、支持I/O优化为例:1、入门级规格配置价格表 实例规格 vCPU 内存(GB) 按量(小时) 标准目录月价 优惠月价 年付月价 3年付月价 5年付月价 突发性能型 (t5) ecs.t5-c1m1.large 2 2 0.22 62 58.9 46.5 27.9 18.6 突发性能型 (t5) ecs.t5-c1m1.xlarge 4 4 0.43 125 118.75 93.75 56.25 37.5 突发性能型 (t5) ecs.t5-c1m1.2xlarge 8 8 0.87 250 237.5 187.5 112.5 75 突发性能型 (t5) ecs.t5-c1m1.4xlarge 16 16 1.74 500 475 375 225 150 突发性能型 (t5) ecs.t5-c1m2.large 2 4 0.3 87 82.65 65.25 39.15 26.1 突发性能型 (t5) ecs.t5-c1m2.xlarge 4 8 0.6 173 164.35 129.75 77.85 51.9 突发性能型 (t5) ecs.t5-c1m2.2xlarge 8 16 1.2 347 329.65 260.25 156.15 104.1 突发性能型 (t5) ecs.t5-c1m2.4xlarge 16 32 2.41 693 658.35 519.75 311.85 207.9 突发性能型 (t5) ecs.t5-c1m4.large 2 8 0.47 135 128.25 101.25 60.75 40.5 突发性能型 (t5) ecs.t5-c1m4.xlarge 4 16 0.94 270 256.5 202.5 121.5 81 突发性能型 (t5) ecs.t5-c1m4.2xlarge 8 32 1.88 540 513 405 243 162 突发性能型 (t5) ecs.t5-lc2m1.nano 1 0.5 0.05 14 13.3 10.5 6.3 4.2 突发性能型 (t5) ecs.t5-lc1m1.small 1 1 0.06 18 17.1 13.5 8.1 5.4 突发性能型 (t5) ecs.t5-lc1m2.small 1 2 0.13 36 34.2 27 16.2 10.8 突发性能型 (t5) ecs.t5-lc1m2.large 2 4 0.25 72 68.4 54 32.4 21.6 突发性能型 (t5) ecs.t5-lc1m4.large 2 8 0.41 119 113.05 89.25 53.55 35.7 2、企业级规格配置价格表 实例规格 vCPU 内存(GB) 按量(小时) 标准目录月价 优惠月价 年付月价 3年付月价 5年付月价 通用型 (g5) ecs.g5.large 2 8 0.66 191 181.45 143.25 85.95 57.3 通用型 (g5) ecs.g5.xlarge 4 16 1.33 383 363.85 287.25 172.35 114.9 通用型 (g5) ecs.g5.2xlarge 8 32 2.66 765 726.75 573.75 344.25 229.5 通用型 (g5) ecs.g5.3xlarge 12 48 3.99 1148 1090.6 861 516.6 344.4 通用型 (g5) ecs.g5.4xlarge 16 64 5.31 1530 1453.5 1147.5 688.5 459 通用型 (g5) ecs.g5.6xlarge 24 96 7.97 2295 2180.25 1721.25 1032.75 688.5 通用型 (g5) ecs.g5.8xlarge 32 128 10.63 3060 2907 2295 1377 918 通用型 (g5) ecs.g5.16xlarge 64 256 21.25 6120 5814 4590 2754 1836 密集计算型 (ic5) ecs.ic5.large 2 2 0.44 128 128 108.8 70.4 48.64 密集计算型 (ic5) ecs.ic5.xlarge 4 4 0.89 255 255 216.75 140.25 96.9 密集计算型 (ic5) ecs.ic5.2xlarge 8 8 1.77 510 510 433.5 280.5 193.8 密集计算型 (ic5) ecs.ic5.3xlarge 12 12 2.66 765 765 650.25 420.75 290.7 密集计算型 (ic5) ecs.ic5.4xlarge 16 16 3.54 1020 1020 867 561 387.6 计算型 (c5) ecs.c5.large 2 4 0.47 134 134 113.9 73.7 49.58 计算型 (c5) ecs.c5.xlarge 4 8 0.93 269 269 228.65 147.95 99.53 计算型 (c5) ecs.c5.2xlarge 8 16 1.86 537 537 456.45 295.35 198.69 计算型 (c5) ecs.c5.3xlarge 12 24 2.8 806 806 685.1 443.3 298.22 计算型 (c5) ecs.c5.4xlarge 16 32 3.73 1074 1074 912.9 590.7 397.38 计算型 (c5) ecs.c5.6xlarge 24 48 5.59 1611 1611 1369.35 886.05 596.07 计算型 (c5) ecs.c5.8xlarge 32 64 7.46 2148 2148 1825.8 1181.4 794.76 计算型 (c5) ecs.c5.16xlarge 64 128 14.92 4296 4296 3651.6 2362.8 1589.52 内存型 (r5) ecs.r5.large 2 16 0.85 245 232.75 183.75 110.25 73.5 内存型 (r5) ecs.r5.xlarge 4 32 1.7 489 464.55 366.75 220.05 146.7 内存型 (r5) ecs.r5.2xlarge 8 64 3.4 978 929.1 733.5 440.1 293.4 内存型 (r5) ecs.r5.3xlarge 12 96 5.09 1467 1393.65 1100.25 660.15 440.1 内存型 (r5) ecs.r5.4xlarge 16 128 6.79 1956 1858.2 1467 880.2 586.8 内存型 (r5) ecs.r5.6xlarge 24 192 10.19 2934 2787.3 2200.5 1320.3 880.2 内存型 (r5) ecs.r5.8xlarge 32 256 13.58 3912 3716.4 2934 1760.4 1173.6 内存型 (r5) ecs.r5.16xlarge 64 512 27.17 7824 7432.8 5868 3520.8 2347.2 高主频型超级计算集群 (scch5) ecs.scch5.16xlarge 64 192 31.77 9150 8692.5 6862.5 4117.5 2745 计算网络增强型 (sn1ne) ecs.sn1ne.large 2 4 0.51 148 148 125.8 81.4 56.24 计算网络增强型 (sn1ne) ecs.sn1ne.xlarge 4 8 1.03 296 296 251.6 162.8 112.48 计算网络增强型 (sn1ne) ecs.sn1ne.2xlarge 8 16 2.05 591 591 502.35 325.05 224.58 计算网络增强型 (sn1ne) ecs.sn1ne.3xlarge 12 24 3.08 887 887 753.95 487.85 337.06 计算网络增强型 (sn1ne) ecs.sn1ne.4xlarge 16 32 4.1 1182 1182 1004.7 650.1 449.16 计算网络增强型 (sn1ne) ecs.sn1ne.6xlarge 24 48 6.16 1773 1773 1507.05 975.15 673.74 计算网络增强型 (sn1ne) ecs.sn1ne.8xlarge 32 64 8.21 2364 2364 2009.4 1300.2 898.32 通用网络增强型 (sn2ne) ecs.sn2ne.large 2 8 0.75 215 204.25 161.25 96.75 64.5 通用网络增强型 (sn2ne) ecs.sn2ne.xlarge 4 16 1.49 429 407.55 321.75 193.05 128.7 通用网络增强型 (sn2ne) ecs.sn2ne.2xlarge 8 32 2.98 858 815.1 643.5 386.1 257.4 通用网络增强型 (sn2ne) ecs.sn2ne.3xlarge 12 48 4.47 1287 1222.65 965.25 579.15 386.1 通用网络增强型 (sn2ne) ecs.sn2ne.4xlarge 16 64 5.96 1716 1630.2 1287 772.2 514.8 通用网络增强型 (sn2ne) ecs.sn2ne.6xlarge 24 96 8.94 2574 2445.3 1930.5 1158.3 772.2 通用网络增强型 (sn2ne) ecs.sn2ne.8xlarge 32 128 11.92 3432 3260.4 2574 1544.4 1029.6 通用网络增强型 (sn2ne) ecs.sn2ne.14xlarge 56 224 20.85 6006 5705.7 4504.5 2702.7 1801.8 内存型 (se1) ecs.se1.large 2 16 1.14 329.4 329.4 279.99 164.7 164.7 内存型 (se1) ecs.se1.xlarge 4 32 2.29 658.8 658.8 559.98 329.4 329.4 内存型 (se1) ecs.se1.2xlarge 8 64 4.58 1317.6 1317.6 1119.96 658.8 658.8 内存型 (se1) ecs.se1.4xlarge 16 128 9.15 2635.2 2635.2 2239.92 1317.6 1317.6 本地SSD型 (i1) ecs.i1.xlarge 4 16 2.03 584.1 554.89 438.07 262.85 175.23 本地SSD型 (i1) ecs.i1.2xlarge 8 32 4.06 1168.2 1109.79 876.15 525.69 350.46 本地SSD型 (i1) ecs.i1.3xlarge 12 48 6.76 1947 1849.65 1460.25 876.15 584.1 本地SSD型 (i1) ecs.i1.4xlarge 16 64 8.11 2336.4 2219.58 1752.3 1051.38 700.92 本地SSD型 (i1) ecs.i1-c5d1.4xlarge 16 64 10.52 3028.9 2877.46 2271.67 1363 908.67 本地SSD型 (i1) ecs.i1.8xlarge 32 128 16.23 4672.8 4439.16 3504.6 2102.76 1401.84 本地SSD型 (i1) ecs.i1-c10d1.8xlarge 32 128 17.67 5088.1 4833.7 3816.07 2289.64 1526.43 本地SSD型 (i1) ecs.i1.14xlarge 56 224 28.39 8177.4 7768.53 6133.05 3679.83 2453.22 本地SSD型 (i2) ecs.i2.xlarge 4 32 2.61 753 715.35 564.75 338.85 225.9 本地SSD型 (i2) ecs.i2.2xlarge 8 64 5.23 1506 1430.7 1129.5 677.7 451.8 本地SSD型 (i2) ecs.i2.4xlarge 16 128 10.46 3012 2861.4 2259 1355.4 903.6 本地SSD型 (i2) ecs.i2.8xlarge 32 256 20.92 6024 5722.8 4518 2710.8 1807.2 本地SSD型 (i2) ecs.i2.16xlarge 64 512 41.83 12048 11445.6 9036 5421.6 3614.4 大数据型 (d1) ecs.d1.2xlarge 8 32 5.73 1649.7 1567.21 1237.27 742.37 494.91 大数据型 (d1) ecs.d1.4xlarge 16 64 11.46 3299.4 3134.43 2474.55 1484.73 989.82 大数据型 (d1) ecs.d1.6xlarge 24 96 17.18 4949.1 4701.64 3711.83 2227.09 1484.73 大数据型 (d1) ecs.d1.8xlarge 32 128 22.91 6598.8 6268.86 4949.1 2969.46 1979.64 大数据型 (d1) ecs.d1.14xlarge 56 224 40.1 11547.9 10970.5 8660.93 5196.56 3464.37 大数据网络增强型 (d1ne) ecs.d1ne.2xlarge 8 32 5.01 1444 1371.8 1083 649.8 433.2 大数据网络增强型 (d1ne) ecs.d1ne.4xlarge 16 64 10.03 2888 2743.6 2166 1299.6 866.4 大数据网络增强型 (d1ne) ecs.d1ne.6xlarge 24 96 15.04 4331 4114.45 3248.25 1948.95 1299.3 大数据网络增强型 (d1ne) ecs.d1ne.8xlarge 32 128 20.05 5775 5486.25 4331.25 2598.75 1732.5 大数据网络增强型 (d1ne) ecs.d1ne.14xlarge 56 224 35.09 10106 9600.7 7579.5 4547.7 3031.8 大数据网络增强型 (d1ne) ecs.d1ne-c8d3.8xlarge 32 128 19.25 5543 5265.85 4157.25 2494.35 1662.9 大数据网络增强型 (d1ne) ecs.d1ne-c14d3.14xlarge 56 224 29.19 8407 7986.65 6305.25 3783.15 2522.1 GPU计算型 (gn6v) ecs.gn6v-c8g1.2xlarge 8 32 19.84 5715 5715 4857.75 3143.25 2171.7 GPU计算型 (gn6v) ecs.gn6v-c8g1.8xlarge 32 128 79.36 22860 22860 19431 12573 8686.8 GPU计算型 (gn6v) ecs.gn6v-c8g1.16xlarge 64 256 158.72 45720 45720 38862 25146 17373.6 GPU计算型 (gn6v) ecs.gn6v-c10g1.20xlarge 96 384 197.67 56929.5 56929.5 48390.08 31311.23 21633.21 GPU计算型 (gn5) ecs.gn5-c8g1.2xlarge 8 60 13.85 3989.7 3989.7 3391.25 2074.64 1396.39 GPU计算型 (gn5) ecs.gn5-c8g1.4xlarge 16 120 27.71 7979.4 7979.4 6782.49 4149.29 2792.79 GPU计算型 (gn5) ecs.gn5-c8g1.8xlarge 32 240 55.41 15957.9 15957.9 13564.21 8298.11 5585.27 GPU计算型 (gn5) ecs.gn5-c8g1.14xlarge 54 480 110.82 31915.8 31915.8 27128.43 16596.22 11170.53 GPU计算型 (gn5i) ecs.gn5i-c2g1.large 2 8 6.51 1875 1781.25 1406.25 843.75 562.5 GPU计算型 (gn5i) ecs.gn5i-c4g1.xlarge 4 16 7.27 2093 1988.35 1569.75 941.85 627.9 GPU计算型 (gn5i) ecs.gn5i-c8g1.2xlarge 8 32 8.75 2520 2394 1890 1134 756 GPU计算型 (gn5i) ecs.gn5i-c16g1.4xlarge 16 64 11.72 3375 3206.25 2531.25 1518.75 1012.5 GPU计算型 (gn5i) ecs.gn5i-c28g1.14xlarge 56 224 32.29 9300 8835 6975 4185 2790 FPGA计算型 (f3) ecs.f3-c16f1.4xlarge 16 64 17.5 5040 5040 4284 2772 1915.2 FPGA计算型 (f3) ecs.f3-c16f1.8xlarge 32 128 35 10080 10080 8568 5544 3830.4 FPGA计算型 (f3) ecs.f3-c16f1.16xlarge 64 256 70 20160 20160 17136 11088 7660.8 高主频计算型 (hfc5) ecs.hfc5.large 2 4 0.65 188 188 156.04 94 62.04 高主频计算型 (hfc5) ecs.hfc5.xlarge 4 8 1.31 377 377 312.91 188.5 124.41 高主频计算型 (hfc5) ecs.hfc5.2xlarge 8 16 2.61 753 753 624.99 376.5 248.49 高主频计算型 (hfc5) ecs.hfc5.3xlarge 12 24 3.92 1130 1130 937.9 565 372.9 高主频计算型 (hfc5) ecs.hfc5.4xlarge 16 32 5.23 1506 1506 1249.98 753 496.98 高主频计算型 (hfc5) ecs.hfc5.6xlarge 24 48 7.84 2259 2259 1874.97 1129.5 745.47 高主频计算型 (hfc5) ecs.hfc5.8xlarge 32 64 10.46 3012 3012 2499.96 1506 993.96 高主频通用型 (hfg5) ecs.hfg5.large 2 8 0.86 249 249 201.69 122.01 79.68 高主频通用型 (hfg5) ecs.hfg5.xlarge 4 16 1.73 498 498 403.38 244.02 159.36 高主频通用型 (hfg5) ecs.hfg5.2xlarge 8 32 3.46 996 996 806.76 488.04 318.72 高主频通用型 (hfg5) ecs.hfg5.3xlarge 12 48 5.19 1494 1494 1210.14 732.06 478.08 高主频通用型 (hfg5) ecs.hfg5.4xlarge 16 64 6.92 1992 1992 1613.52 976.08 637.44 高主频通用型 (hfg5) ecs.hfg5.6xlarge 24 96 10.38 2988 2988 2420.28 1464.12 956.16 高主频通用型 (hfg5) ecs.hfg5.8xlarge 32 128 13.83 3984 3984 3227.04 1952.16 1274.88 高主频通用型 (hfg5) ecs.hfg5.14xlarge 56 160 22.94 6606 6606 5350.86 3236.94 2113.92 磁盘价格表1.ESSD磁盘价格 云盘规格 性能上限 容量范围 按量价格 包月价格 PL1 Max IOPS=5万; Max Throughput=350MB 20GiB ~ 32768GiB 0.0021 元/1GB/小时 1.0 元/1GB/月 PL2 Max IOPS=10万; Max Throughput=750MB 461GiB ~ 32768GiB 0.0042 元/1GB/小时 2.0 元/1GB/月 PL3 Max IOPS=100万; Max Throughput=4000MB 1261GiB ~ 32768GiB 0.0084 元/1GB/小时 4.0 元/1GB/月 2.其它磁盘价格 计费项 类型 规格 按量价格 包月价格 系统盘(40 GB起售价) 普通云盘 40GB 0.014 元/40GB/小时 9.6 元/40GB/月 系统盘(40 GB起售价) 高效云盘 40GB 0.015 元/40GB/小时 11.2 元/40GB/月 系统盘(40 GB起售价) SSD云盘 40GB 0.045 元/40GB/小时 32.0 元/40GB/月 系统盘(40 GB起售价) 本地盘 40GB 0.017 元/40GB/小时 12.0 元/40GB/月 系统盘(40 GB起售价) 本地SSD盘 40GB 0.132 元/40GB/小时 32.0 元/40GB/月 系统盘(线性计费) 普通云盘 1GB 0.00034 元/1GB/小时 0.24 元/1GB/月 系统盘(线性计费) 高效云盘 1GB 0.00038 元/1GB/小时 0.28 元/1GB/月 系统盘(线性计费) SSD云盘 1GB 0.00112 元/1GB/小时 0.8 元/1GB/月 系统盘(线性计费) 本地盘 1GB 0.00042 元/1GB/小时 0.3 元/1GB/月 系统盘(线性计费) 本地SSD盘 1GB 0.0033 元/1GB/小时 0.8 元/1GB/月 数据盘(线性计费) 普通云盘 1GB 0.00034 元/1GB/小时 0.24 元/1GB/月 数据盘(线性计费) 高效云盘 1GB 0.00038 元/1GB/小时 0.28 元/1GB/月 数据盘(线性计费) SSD云盘 1GB 0.00112 元/1GB/小时 0.8 元/1GB/月 数据盘(线性计费) 本地盘 1GB 0.00042 元/1GB/小时 0.3 元/1GB/月 数据盘(线性计费) 本地SSD盘 1GB 0.0033 元/1GB/小时 0.8 元/1GB/月 网络带宽价格表注意:地域节点不同价格也会有所差异,以下宽带价格是以华北3为例。 计费方式 规格 价格 计费方式 包年包月实例,固定带宽阶梯计费 1Mbps 23.0 元/1Mbps/月 包年包月实例,固定带宽阶梯计费 包年包月实例,固定带宽阶梯计费 2Mbps 46.0 元/2Mbps/月 包年包月实例,固定带宽阶梯计费 包年包月实例,固定带宽阶梯计费 3Mbps 71.0 元/3Mbps/月 包年包月实例,固定带宽阶梯计费 包年包月实例,固定带宽阶梯计费 4Mbps 96.0 元/4Mbps/月 包年包月实例,固定带宽阶梯计费 包年包月实例,固定带宽阶梯计费 5Mbps 125.0 元/5Mbps/月 包年包月实例,固定带宽阶梯计费 包年包月实例,固定带宽阶梯计费 6Mbps及以上, 每Mbps费用 80.0 元/Mbps/月 包年包月实例,固定带宽阶梯计费 按量计费实例,固定带宽阶梯计费 1-5 Mbps 0.062 元/Mbps/小时 按量计费实例,固定带宽阶梯计费 按量计费实例,固定带宽阶梯计费 6Mbps及以上, 每Mbps费用 0.252 元/Mbps/小时 按量计费实例,固定带宽阶梯计费 按使用量线性计费 1GB 0.8 元/GB 按使用量线性计费 注意,以上关于阿里云服务器租用价格表(实例配置规格价格表+磁盘收费+宽带收费)仅供参考。

优秀的个人博客,低调大师

企业级 SpringBoot 教程-sprinboot整合elk,搭建实时日志平台

elk 简介 Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。 Logstash是一个完全开源的工具,他可以对你的日志进行收集、过滤,并将其存储供以后使用(如,搜索)。 Kibana 也是一个开源和免费的工具,它Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。 elk下载安装 elk下载地址:https: //www. elastic. co/downloads/ 建议在 linux上运行,elk在windows上支持得不好,另外需要jdk1.8 的支持,需要提前安装好jdk. 下载完之后: 安装,以logstash为例子: cd /usr/local/ mkdir logstash tar -zxvf logstash-5.3.2.tar.gz mv logstash-5.3.2 /usr/local/logstash 配置、启动 Elasticsearch 打开Elasticsearch的配置文件: vim config/elasticsearch.yml 修改配置: network.host=localhost network.port=9200 它默认就是这个配置,没有特殊要求,在本地不需要修改。 启动Elasticsearch ./bin/elasticsearch 启动成功,访问localhost:9200,网页显示: { "name" : "56IrTCM", "cluster_name" : "elasticsearch", "cluster_uuid" : "e4ja7vS2TIKI1BsggEAa6Q", "version" : { "number" : "5.2.2", "build_hash" : "f9d9b74", "build_date" : "2017-02-24T17:26:45.835Z", "build_snapshot" : false, "lucene_version" : "6.4.1" }, "tagline" : "You Know, for Search" } 配置、启动 logstash 在 logstash的主目录下: vim config/log4j_to_es.conf 修改 log4j_to_es.conf 如下: input { log4j { mode => "server" host => "localhost" port => 4560 } } filter { #Only matched data are send to output. } output { elasticsearch { action => "index" #The operation on ES hosts => "localhost:9200" #ElasticSearch host, can be array. index => "applog" #The index to write data to. } }Spring Cloud大型企业分布式微服务云架构源码一七九一七四三三八零哦 修改完配置后启动: ./bin/logstash -f config/log4j_to_es.conf

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册