- 博客(25)
- 收藏
- 关注
转载 整体技术架构
上文讲了我们为什么要做这个事情,现在来讲一下我们具体是怎么做这个事情:如何实现,具体的技术方案是什么样的。我们本着在集团现有的基础设施、现有的中间件基础之上做加法的思想,我们和CSE,阿里云FC函数计算团队合作共建,开发了C++ Faas Runtime 和 Go Faas Runtime。整体和集团拉通的技术架构如下图所示,主要分为研发态、运行态、运维态三个部分。...
2021-06-11 11:40:06 297 1
转载 Go-Faas补充Go语言生态
不仅如此,我们还开发了Go-Faas,为什么会做Go-Faas呢,这里也简单介绍一下背景,高德服务端Go部分的QPS峰值已超百万。高德已补齐了阿里各中间件的Go客户端,和集团中间件部门共建。可观测性、自动化测试体系也基本完善,目前Go生态已基本完善。补齐了Go-Faas之后,我们就既能用Go写Baas服务,又能用Go写Faas服务了,在不同的业务场景采用不同的服务实现方式,Go-Faas主要应用于上文提到的BFF场景。...
2021-06-11 11:39:03 426 1
转载 Serverless是云时代的高级语言
虽然高德已经全面上云了,但是目前还不是云时代的终局,目前主要是全面Docker化并上云,容器方面做了标准化,在规模化,资源利用率方面可以全面享受云的红利,但是业务开发模式上基本还和以前一样,还是一个大型的分布式系统的写法。对于研发模式来说还并没有享受云的红利,可以类比为我们现在是在用汇编语言的方式来写跑在云上的服务。而Serverless、云原生可以理解为云时代的高级语言,真正做到了Cloud as a computer,只需要关注于业务开发,不需要考虑大型分布式系统的各种复杂性。...
2021-06-11 11:38:04 155 1
转载 BFF层开发提效
提到高德,大家首先想到的应该是其工具属性:高德是一个导航工具,(这个说法现在已经不太准确了,因为高德这几年在做工具化往平台化转型,高德的交易类业务正在兴起,高德打车、门票、酒店等业务发展非常迅猛)。针对高德导航来说,相比集团其他业务,相比电商来说,有大量的只读场景是高德业务的一大技术特点。这些只读场景里,大量的需求是BFF(Backend For Frontend)类型的只读场景。为什么这么说,因为导航的最核心功能,例如routing, traffic, eta等都是相对稳定的,这部分的主要工作在用持续
2021-06-11 11:36:44 195
转载 端云一体的最佳实践关键:客户端和Faas之间的接口抽象
原本客户端的逻辑移到Faas服务端上来,或者新的需求一部分在Faas服务端上开发,这里的**成败关键点在于:客户端和Faas的接口协议定义,也就是Faas的API定义。**好的API定义除了对系统的可维护性有好处以外,对后续支撑业务的迭代开发也很重要。理想情况下:客户端做成一个解析Faas返回结果数据的一个浏览器。浏览器协议一旦定义好,就不会经常变换,你看IE,Chrome就很少更新。当然我们的这个浏览器会复杂一些,我们这个浏览器是地图浏览器。如何检验客户端和Faas之间的接口定义好不好,可以看后续
2021-06-11 11:35:37 145
转载 客户端开发模式——端云一体
虽然开发模式从以前的端开发转变为现在的云 + 端开发,开发同学应该还是原来负责相应业务的同学,而大家知道,服务端开发和客户端开发显然是有差异的,客户端开发往往是面向单机模式的开发,服务端开发通常是集群模式,需要考虑分布式系统的协调、负载均衡,故障转移降级等各种复杂问题。如果使用传统的服务端模式来开发,这个过渡风险就会比较大。Faas很好的解决了这一问题。我们结合高德客户端现有的xbus框架(一套客户端上的本地服务注册、调用的框架),扩展了xbus-cloud组件,使得云上的开发就像端上开发一样,目标是一
2021-06-11 11:33:22 682 1
转载 引入 HBase
在那个时期知乎最终选择了 HBase。HBase 是一个优秀的 BigTable 的开源实现,它有很成熟的生态。但是同时它也有一些小问题,如不支持跨行事务、二级索引不完善等。尽管可以利用第三方的组件来解决(比如 Phoenix ),但同时也会产生新的问题:系统组件非常多,维护起来很复杂。知乎在使用过程中也遇到了一些问题。优品拍拍 第一,HBase 的使用成本非常的高。要让 HBase 变得好用,需要投入非常专业的工程师团队来调试,这些工程师不仅需要具备相关的知识,还要对 HBase 特别了解。
2021-06-10 17:42:13 78
转载 知乎面临的挑战
当知乎发展到 2016、2017 年的时候,随着业务增长,遇到了很多和 Google 类似的问题。在数据规模持续增长的环境下,很多的场景其实呈现的是 NoSQL 的场景,它并不是一个非常严格的关系型的场景。举个例子,知乎的 Redis 现在已经有了三万到四万左右个实例。如果对它们做微服务化改造,服务之间的调用会非常频繁。而对于某些在线服务,它要求低延迟,高吞吐,高并发。比如首页已读的服务,需要在首页展示时过滤掉用户已读的数据。每次知乎展示的首页的数据是用户维度加上内容维度的一个非常大的数据集。这其中
2021-06-10 17:40:55 238
转载 BigTable 数据模型
在开始介绍 Zetta 之前,我们先来看看 BigTable。BigTable 是一个稀疏的多维度的有序的表(Sparse multidimensional sorted map),它是谷歌开发的用来解决数据量庞大的场景下的数据索引问题的数据模型。谷歌爬虫的数据量非常大,BigTable 不仅能提供满足其业务场景的低延时存储服务,同时,在开发效率上,还提供了宽列能力,即数据结构化,对于开发十分友好。目前,BigTable 被应用于 Google Earth、Google Analytics、Personal
2021-06-10 17:39:38 852
转载 mysql一张表到底能存多少数据?
在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB。同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB。(确切的说是InnoDB数据页大小16KB)。详细学习可以参考官网 我们可以用如下命令查询到。mysql>SHOWGLOBALSTATUSLIKE'innodb_page_size';+------------------+-------+|Variable_name|Value|+-------------...
2021-06-10 17:37:59 413
转载 密码学系列之:生日攻击
生日问题也叫做生日悖论,它是这样这样描述的。假如随机选择n个人,那么这个n个人中有两个人的生日相同的概率是多少。如果要想概率是100%,那么只需要选择367个人就够了。因为只有366个生日日期(包括2月29日)。如果想要概率达到99.9% ,那么只需要70个人就够了。50%的概率只需要23个人。对于现在的幼儿园小朋友来说,一个班上差不多有30人,那么将会有大于50%的几率,班上有两个人的生日是一样的。听起来是不是很神奇?跟我们第一映像中的基数是不是要少很多。我们看一张概率图:在实
2021-06-10 17:34:48 659
转载 Linux虚拟内存空间管理
从上图可以看出,进程的用户空间大小为 3GB。Linux 按照功能上的差异,把一个进程的用户空间划分为多个段,下面介绍一下各个段的作用:代码段:用于存放程序中可执行代码的段。 数据段:用于存放已经初始化的全局变量或静态变量的段。如在 C 语言中,使用语句 int global = 10; 定义的全局变量。 未初始化数据段:用于存放未初始化的全局变量或静态变量的段。如在 C 语言中,使用语句 int global; 定义的全局变量。 堆:用于存放使用 malloc 函数申请的内存。 mmap区:用
2021-06-10 17:33:08 86
转载 HQChart 1.9933 版本发布,增加网络异常处理接口
9931 小程序更新定时器增加判断是否图形已销毁9925 期货增加 郑州商品交易所-红枣(CJ)9921 JsonDataToMinuteDataArray 修正跨天数据 日期时间显示错误9919 修正分时图标题高度没有设置为09917 大盘指数(INDEXA, INDEXC....)支持对3放数据对接...
2021-06-10 17:15:49 88
转载 RuoYi-Cloud 3.0.0 发布
新增菜单导航显示风格TopNav(false为左侧导航菜单,true为顶部导航菜单) 布局设置支持保存&重置配置 富文本编辑器支持自定义上传地址 富文本编辑组件新增readOnly属性 优化参数&字典缓存操作 新增IE浏览器版本过低提示页面 页签TagsView新增关闭右侧功能 显隐列组件加载初始默认隐藏列 关闭头像上传窗口还原默认图片 个人信息添加手机&邮箱重复验证 代码生成模板树表操作列添加新增按钮 代码生成模板修复主子表字段重名问题 支持docker部署
2021-06-10 16:59:35 375
转载 联邦计算在百度观星盘的实践
联邦计算在百度观星盘的实践 众所周知,数据是AI技术的燃料,更多高质量的数据意味着可以训练出更好性能的业务模型。随着IT移动化步伐地迈进,互联网数据被割裂为一个个孤岛,制约AI发展的一个瓶颈是保护用户数据隐私和打破不同主体之间数据孤岛的问题。随着移动设备性能的强化,4G/5G的兴起普及,在移动终端上进行模型训练变得可行。2016年,Google团队发布了一篇论文:Communication-Efficient Learning of Deep Networks from Decentralized
2021-06-05 13:32:22 296
转载 mysql的四种隔离级别
什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。即 一系列相关的操作,要么全部成功,要么全部不执行。 事务的结束有两种: 1、当事务中的所有步骤全部成功执行时,事务提交。 2、如果其中一个步骤失败,将发生回滚操作,撤消之前到事务开始时的所有操作。 即 所有的操作都成功执行才会提交(提交完毕才属于真正完成操作),否则回退所有动作,原始状态。
2021-06-04 21:54:55 47
转载 自动网络搜索AutoDL之PaddlePaddle实现
编码器通常以 RNN 的方式把网络结构进行编码,然后评测器把编码的结果拿去进行训练和评测,拿到包括准确率、模型大小在内的一些指标,反馈给编码器,编码器进行修改,再次编码,如此迭代。经过若干次迭代以后,最终得到一个设计好的模型。 为了性能考虑,迭代中用到的训练数据通常是几万张规模的数据集(比如 CIFAR-10),模型设计结束后,会用大规模数据(比如 ImageNet)重新训练一次,进一步优化参数。具体原理可以参考以下链接:解读百度AutoDL 本项目主要是使用搜索出来的模型结构在CIFAR-
2021-06-04 21:52:08 273
转载 亿咖通科技助力开源项目 OpenHarmony 技术成熟与应用落地
6 月 1 日,开放原子开源基金会(OpenAtom Foundation,以下简称“基金会”)正式发布开源项目 OpenHarmony 2.0 Canary 版本。全部代码已上载至 Gitee,并对全球开放下载。作为该项目七家初始共建成员之一,亿咖通科技本着“精诚合作,开源并进”的合作愿景,携手基金会,与行业伙伴共享汽车智能座舱解决方案的丰富研发经验,助力 OpenHarmony 开源项目技术成熟与应用落地,携手全球技术伙伴共商、共建、共享、共赢,共同推进汽车智能化与智能互联产业的繁荣发展。 为
2021-06-04 21:48:55 2026
转载 避坑指南!数据分析最容易被忽略的10个错误
一、数据采集阶段 1、数据失真 数据是可能骗人的,比如店铺、电影的评分,可能被人为操控;比如某公司发布的行业分析报告,也具有很大的主观性。 基于错误的数据,做出的分析结论是无益甚至是有害的。所以在采集数据时,我们先要考证数据的来源及可信度,还要关注不符合常理的数据变化,对数据采集方法进行调整。 2、幸存者偏差 就算数据是真实的,也不能轻信。 举个有名的例子,二战时英军发现,从战场飞回来的战机,机身上的弹孔比引擎和油箱上的要多的多,根据这个数据,我们很容易得出要
2021-06-04 21:45:40 108
转载 自动网络搜索AutoDL之PaddlePaddle实现
本项目是百度大数据实验室(BDL)分层神经架构搜索项目(HINAS)自动发现的模型,利用深度增强学习完成设计。系统由两部分组成,第一部分是网络结构的编码器,第二部分是网络结构的评测器。 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.c
2021-06-04 21:42:51 116
转载 踩准时钟节拍、玩转时间转换,鸿蒙轻内核时间管理有妙招
和时间相关的源码,给读者介绍鸿蒙轻内核的时间管理模块。本文中所涉及的源码,以OpenHarmony LiteOS-M内核为例,均可以在开源站点https://gitee.com/openharmony/kernel_liteos_m 获取。 时间管理模块以系统时钟为基础,可以分为2部分,一部分是SysTick中断,为任务调度提供必要的时钟节拍;另外一部分是,给应用程序提供所有和时间有关的服务,如时间转换、统计功能。 系统时钟是由定时器/计数器产生的输出脉冲触发中断产生的,一般定义为整数或长整
2021-06-04 21:39:56 180
转载 百度飞桨轻量化推理引擎再升級,新增适配国产AI芯片比特大陆算丰
2020年伊始,AI技术持续深入发展,人工智能场景规模化落地与应用不断创造新的中国速度。随着AI技术与传统行业的不断融合,智能经济时代的全新产业版图初步显现。 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/osch...
2021-06-04 21:37:34 70
转载 在docker中快速使用各个版本的PostgreSQL数据库
PG安装方法很多,和MySQL类似,给用户提供很大的选择空间。如:RPM包安装(在线、离线)、源码编译安装、系统自带、二进制、NDB安装等。 https://www.postgresql.org/ https://yum.postgresql.org/rpmchart.php https://yum.postgresql.org/11/redhat/rhel-6-x86_64/repoview/postgresqldbserver11.group.html https://www
2021-06-04 21:31:54 420
转载 mysql的四种隔离级别
什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。即 一系列相关的操作,要么全部成功,要么全部不执行。 事务的结束有两种: 1、当事务中的所有步骤全部成功执行时,事务提交。 2、如果其中一个步骤失败,将发生回滚操作,撤消之前到事务开始时的所有操作。 即 所有的操作都成功执行才会提交(提交完毕才属于真正完成操作),否则回退所有动作,原始状态。
2021-06-04 21:28:41 81
转载 深入浅出协程、线程和并发问题
"协程是轻量级的线程",相信大家不止一次听到这种说法。但是您真的理解其中的含义吗?恐怕答案是否定的。接下来的内容会告诉大家协程是如何在 Android 运行时中被运行的,它们和线程之间的关系是什么,以及在使用 Java 编程语言线程模型时所遇到的并发问题。 协程和线程 协程旨在简化异步执行的代码。对于 Android 运行时的协程,lambda 表达式的代码块会在专门的线程中执行。例如,示例中的 斐波那契 运算: // 在后台线程中运算第十级斐波那契数 someScope.lau
2021-06-04 21:25:54 72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人