首页 文章 精选 留言 我的

精选列表

搜索[分库分表],共10000篇文章
优秀的个人博客,低调大师

一分钟了解生活物联网平台概述

云栖号快速入门:【点击查看更多云产品快速入门】不知道怎么入门?这里分分钟解决新手入门等基础问题,可快速完成产品配置操作! 生活物联网平台是阿里云IoT针对生活领域推出的物联网平台,以解决家电智能化的问题。本文带您了解生活物联网平台的简要使用流程。 原理图 准备工作 请确保您已经注册了阿里云账号,并完成实名认证。注册操作请参见阿里云账号注册流程。 请确保账号已开通生活物联网平台服务。 请安装好设备固件开发所需的Linux开发环境,建议使用64位Ubuntu 16.04开发环境。 请安装好用于烧录设备证书和固件的串口烧录调试工具。设备使用SDK和证书接入生活物联网平台。由于各类设备的烧录方式略有差异,本文以烧录经平台认证的MK3060模组为例,安装了SecureCRT串口烧录工具。 操作步骤 1.创建项目:项目不仅便于您管理产品,还可以实现多方协同工作。2.创建产品并定义功能:产品相当于同类设备的集合,例如,产品可以是某种型号的设备。您可以通过属性、服务和事件三个维度定义产品的功能。平台将根据您定义的功能构建出产品的数据模型,用于云端与设备端的数据通信。3.添加设备:设备指某个具体设备。每个设备拥有自己的设备证书,用于连接生活物联网平台。平台提供测试设备,测试设备的证书不能用于量产,仅供调试使用。4.配置App:当前生活物联网领域,消费者通常使用App绑定并控制设备。平台提供App服务,您可以通过配置App参数项,轻松实现人机互动。5.开发设备:平台提供设备端SDK,通过简单开发,设备即可具备上云能力。6.调试设备连云:公版App连接设备后,通过App和控制台(云端)调试真实设备,验证设备端、云端、App端,三端上下行数据通信。 本文来自 阿里云文档中心 生活物联网平台 概述 【云栖号在线课堂】每天都有产品技术专家分享!课程地址:https://yqh.aliyun.com/zhibo 立即加入社群,与专家面对面,及时了解课程最新动态!【云栖号在线课堂 社群】https://c.tb.cn/F3.Z8gvnK

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

Schedulerx2.0分布式执行之——广播执行

1. 简介 广播执行表示一个任务实例会广播到该分组所有worker上执行,当所有机器都执行完成,该实例才算完成。 任意一台worker执行失败,都算该实例失败。 所有worker执行成功,才算该实例成功。 有子任务列表,可以看每台机器的执行详情。 2. 执行方式 执行方式选择广播 3. 任务类型 任务类型可以选择多种,比如脚本,或者java任务。如果选择java,还支持preProcess和postProcess高级特性。 使用java任务需要继承JavaProcessor(1.0.8+版本),接口如下: public ProcessResult process(JobContext context) throws Exception; (必选) public void preProcess(JobContext context); (可选) pub

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

一分钟说清楚并查集

分离集合(disjoint set)是一种经典的数据结构,它有三类操作: Make-set(a):生成包含一个元素a的集合S; Union(X, Y):合并两个集合X和Y; Find-set(a):查找元素a所在集合S,即通过元素找集合句柄; 它非常适合用来解决集合合并与查找的问题,也常称为并查集。 一、并查集的链表实现 如上图,并查集可以用链表来实现。 链表实现的并查集,Find-set(a)的时间复杂度是多少? 集合里的每个元素,都指向“集合的句柄”,这样可以使得“查找元素a所在集合S”,即Find-set(a)操作在O(1)的时间内完成。 链表实现的并查集,Union(X, Y)的时间复杂度是多少? 假设有集合: S1={7,3,1,4} S2={1,6} 合并S1和S2两个集合,需要做两件事情: (1) 第一个集合的尾元素,链向第二个集合的头元素(蓝线1); (2) 第二个集合的所有元素,指向第一个集合的句柄(蓝线2,3); 合并完的效果是: 变成了一个更大的集合S1。 集合合并时,将短的链表,往长的链表上接,这样变动的元素更少,这个优化叫做“加权合并”。 画外音:实现的过程中,集合句柄要存储元素个数,头元素,尾元素等属性,以方便上述操作进行。 假设每个集合的平均元素个数是n,Union(X, Y)操作的时间复杂度是O(n)。 能不能Find-set(a)与Union(X, Y)都在O(1)的时间内完成呢? 可以,这就引发了并查集的第二种实现方法。 二、并查集的有根树实现 什么是有根树,和普通的树有什么不同? 常用的set,就是用普通的二叉树实现的,其元素的数据结构是: element{ int data; element* left; element* right; } 通过左指针与右指针,父亲节点指向儿子节点。 而有根树,其元素的数据结构是: element{ int data; element* parent; } 通过儿子节点,指向父亲节点。 假设有集合: S1={7,3,1,4} S2={1,6} 通过如果通过有根树表示,可能是这样的: 所有的元素,都通过parent指针指向集合句柄,所有元素的Find-set(a)的时间复杂度也是O(1)。 画外音:假设集合的首个元素,代表集合句柄。 有根树实现的并查集,Union(X, Y)的过程如何?时间复杂度是多少? 通过有根树实现并查集,集合合并时,直接将一个集合句柄,指向另一个集合即可。 如上图所示,S2的句柄,指向S1的句柄,集合合并完成:S2消亡,S1变为了更大的集合。 容易知道,集合合并的时间复杂度为O(1)。 会发现,集合合并之后,有根树的高度变高了,与“加权合并”的优化思路类似,总是把节点数少的有根树,指向节点数多的有根树(更确切的说,是高度矮的树,指向高度高的树),这个优化叫做“按秩合并”。 新的问题来了,集合合并之后,不是所有元素的Find-set(a)操作都是O(1)了,怎么办? 如图S1与S2合并后的新S1,首次“通过元素6来找新S1的句柄”,不能在O(1)的时间内完成了,需要两次操作。 但为了让未来“通过元素6来找新S1的句柄”的操作能够在O(1)的时间内完成,在首次进行Find-set(“6”)时,就要将元素6“寻根”路径上的所有元素,都指向集合句柄,如下图。 某个元素如果不直接指向集合句柄,首次Find-set(a)操作的过程中,会将该路径上的所有元素都直接指向句柄,这个优化叫做“路径压缩”。 画外音:路径上的元素第二次执行Find-set(a)时,时间复杂度就是O(1)了。 实施“路径压缩”优化之后,Find-set的平均时间复杂度仍是O(1)。 结论 通过链表实现并查集: ● Find-set的时间复杂度,是 O(1) 常数时间 ● Union的时间复杂度,是集合平均元素个数,即 线性时间 画外音:别忘了“加权合并”优化。 通过有根树实现并查集: ● Union的时间复杂度,是 O(1) 常数时间 ● Find-set的时间复杂度,通过“按秩合并”与“路径压缩”优化后,平均时间复杂度 也是O(1) 使用并查集,非常适合解决“微信群覆盖”问题。 思路比结论重要,有收获就是好的。 原文发布时间为:2018-11-20 本文作者:58沈剑 本文来自云栖社区合作伙伴“架构师之路”,了解相关信息可以关注“架构师之路”。

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

5分钟搞懂C++函数指针与函数类型

函数指针和函数类型 函数指针指向的是函数而非对象。和其他指针类型一样,函数指针指向某种特定类型。 函数类型由它的返回值和参数类型决定,与函数名无关。 bool length_compare(const string &, const string &); 上述函数类型是: bool (const string &, const string &); 上述函数指针pf: bool (*pf)(const string &, const string &); 使用函数指针 当把函数名作为一个值使用时,该函数自动的转换成指针,如: pf = length_compare <=>等价于 pf = &length_compare12 函数指针形参 函数类型不能定义为形参,但是形参可以是指向函数的指针; 函数作为实参使用时,会自动的转换成函数指针; typedef bool Func(const string &, const string &) // Func是函数类型; typedef bool (*FuncP)(const string &, const string &) // FuncP是函数指针类型; typedef decltype(length_compare) Func2 // Func2是函数类型; typedef decltype(length_compare) *Func2P // Func2P是函数指针类型;注意decltype(length_compare)返回的是函数类型,而不是函数指针类型; using FTtype = int(int,int); //函数类型 typedef int (*pf)(int, int); //函数指针 int func(int a, int b){return a+b;} void print(int a, int b, FTtype fn){ // 编译器将其隐式转化成函数指针 cout << fn(a,b) << endl; } int main() { print(1,2,func); cout << typeid(FTtype).name() << endl; cout << typeid(func).name() << endl; cout << typeid(decltype(func)).name() << endl; cout << typeid(pf).name() << endl; return 0; } 下面两个声明语句是同一个函数,因为编译器会自动的将FTtype 转换成函数指针类型。 void print(int a, int b, FTtype fn); void print(int a, int b, pf fn); 返回指向函数的指针 虽然不能返回一个函数,但是能返回执行函数类型的指针。和函数参数不同,编译器不会自动地将函数返回类型当作指针类型处理,必须显示的将返回类型指定为指针。如: using F = int(int*, int); using PF = int(*)(int*,int); F f1(int); //错误: F是函数类型 PF f1(int); //正确: PF是函数指针类型 f1也可以写出下面两种形式: int (*f1(int))(int*, int); auto f1(int)->int(*)(int*, int); 作者:guoxiaojie_415 来源:https://blog.csdn.net/guoxiaojie_415/article/details/79921788 原文发布时间为:2018-09-30 原文作者:良许Linux 本文来自云栖社区合作伙伴“良许Linux”,了解相关信息可以关注“良许Linux”。

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

三十分钟快速搭建serverless网盘服务

前言 函数计算支持以无服务器架构快速构建企业和开发者的软件系统,以其全托管事件触发模式、超弹性伸缩以及低廉的计费方式,相对于传统服务器架构,在开发效能和运维模式上都取得了明显优势。另外还提供了各种服务间的触发功能,作为云端各种产品的黏合剂,适用于各种应用场景。 本节,将带领大家利用函数计算,快速搭建一个功能完整的网盘服务。网盘服务的项目见(即将开源): apis site ui 网盘服务简介 功能 网盘服务功能详细介绍请参考文章网盘服务系统和相应的项目 repo 。 本文重点不是介绍网盘功能,所以,请大家通过已经搭建好的网盘 demo 自行体验,这里不做过多赘述。 网盘系统无服务器架构 网盘服务功能集较多,这里就以上传文件功能为例,展现其网盘的实现架构。 网盘服务自身模块以及资源依赖 网盘服务的模块实现分为三个部分,如下图所示: apis : 提供了网盘的

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

10分钟上线 - 函数计算实现Serverless图片处理服务

阿里云函数计算服务(FunctionCompute,FC)是一个事件驱动的全托管计算服务。通过函数计算与云端各个服务的广泛集成,开发者只需要编写函数代码,就能够快速地开发出弹性高可用的后端系统。接下来我们使用FC,来快速实现一个图片转换服务。 图片转换服务展示 我们用图像处理中经典的lena为例 处理example入口地址: reszie path:/resize/[width]/[height]/[pic_name] rezise example rotate: path:/rotate/[angle]/[pic_name] rotate example crop: path:/crop/[left]/[top]/[right]/[bottom]/[pic_name] crop example flip: path: /flip/[pic_name] fli

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

用户登录
用户注册