• 关于HTML5你需要了解的基础知识
    作者:Palak Shah来源:Linux中国HTML5 是第五个且是当前的 HTML 版本,它是用于在万维网上构建和呈现内容的标记语言。本文将帮助读者了解它。HTML5 通过 W3C 和Web 超文本应用技术工作组Web Hypertext Application Technology Working Group之间的合作发展起来。它是一个更高版本的 HTML,它的许多新元素可以使你的页面更加语义化和动态。它是为所有人提供更好的 Web 体验而开发的。HTML5 提供了很多的功能,使 Web 更加动态和交互。HTML5 的新功能是:[*]新标签,如 和 [*]用于 2D 绘图的 元素[*]本地存储[*]新的表单控件,如日历、日期和时间[*]新媒体功能[*]地理位置HTML5 还不是正式标准(LCTT 译注:HTML5 已于 2014 年成为“推荐标准”),因此,并不是所有的浏览器都支持它或其中一些功能。开发 HTML5 背后最重要的原因之一是防止用户下载并安装像 Silverlight 和 Flash 这样的多个插件。新标签和元素[*]语义化元素: 图 1 展示了一些有用的语义化元素。[*]表单元素: HTML5 中的表单元素如图 2 所示。[*]图形元素: HTML5 中的图形元素如图 3 所示。[*]媒体元素: HTML5 中的新媒体元素如图 4 所示。[*][*][*]HTML5 的高级功能地理位置这是一个 HTML5 API,用于获取网站用户的地理位置,用户必须首先允许网站获取他或她的位置。这通常通过按钮和/或浏览器弹出窗口来实现。所有最新版本的 Chrome、Firefox、IE、Safari 和 Opera 都可以使用 HTML5 的地理位置功能。地理位置的一些用途是:[*]公共交通网站[*]出租车及其他运输网站[*]电子商务网站计算运费[*]旅行社网站[*]房地产网站[*]在附近播放的电影的电影院网站[*]在线游戏[*]网站首页提供本地标题和天气[*]工作职位可以自动计算通勤时间工作原理: 地理位置通过扫描位置信息的常见源进行工作,其中包括以下:[*]全球定位系统(GPS)是最准确的[*]网络信号 - IP地址、RFID、Wi-Fi 和蓝牙 MAC地址[*]GSM/CDMA 蜂窝 ID[*]用户输入该 API 提供了非常方便的函数来检测浏览器中的地理位置支持:[*][*]getCurrentPosition API 是使用地理位置的主要方法。它检索用户设备的当前地理位置。该位置被描述为一组地理坐标以及航向和速度。位置信息作为位置对象返回。[*]语法是:[*][*][*]showLocation:定义了检索位置信息的回调方法。[*]ErrorHandler(可选):定义了在处理异步调用时发生错误时调用的回调方法。[*]options (可选): 定义了一组用于检索位置信息的选项。我们可以通过两种方式向用户提供位置信息:测地和民用。[*]描述位置的测地方式直接指向纬度和经度。[*]位置信息的民用表示法是人类可读的且容易理解。如下表 1 所示,每个属性/参数都具有测地和民用表示。[*][*]图 5 包含了一个位置对象返回的属性集。[*][*]网络存储在 HTML 中,为了在本机存储用户数据,我们需要使用 JavaScript cookie。为了避免这种情况,HTML5 已经引入了 Web 存储,网站利用它在本机上存储用户数据。与 Cookie 相比,Web 存储的优点是:[*]更安全[*]更快[*]存储更多的数据[*]存储的数据不会随每个服务器请求一起发送。只有在被要求时才包括在内。这是 HTML5 Web 存储超过 Cookie 的一大优势。有两种类型的 Web 存储对象:[*]本地 - 存储没有到期日期的数据。[*]会话 - 仅存储一个会话的数据。如何工作: localStorage 和 sessionStorage 对象创建一个 key=value 对。比如: key="Name", value="Palak"。这些存储为字符串,但如果需要,可以使用 JavaScript 函数(如 parseInt() 和 parseFloat())进行转换。下面给出了使用 Web 存储对象的语法:[*]存储一个值:[*]localStorage.setItem("key1", "value1");[*]localStorage["key1"] = "value1";[*]得到一个值:[*]alert(localStorage.getItem("key1"));[*]alert(localStorage["key1"]);[*]删除一个值: -removeItem("key1");[*]删除所有值:[*]localStorage.clear();应用缓存(AppCache)使用 HTML5 AppCache,我们可以使 Web 应用程序在没有 Internet 连接的情况下脱机工作。除 IE 之外,所有浏览器都可以使用 AppCache(截止至此时)。应用缓存的优点是:[*]网页浏览可以脱机[*]页面加载速度更快[*]服务器负载更小cache manifest 是一个简单的文本文件,其中列出了浏览器应缓存的资源以进行脱机访问。 manifest 属性可以包含在文档的 HTML 标签中,如下所示:[*][*]它应该在你要缓存的所有页面上。缓存的应用程序页面将一直保留,除非:[*]用户清除它们[*]manifest 被修改[*]缓存更新视频在 HTML5 发布之前,没有统一的标准来显示网页上的视频。大多数视频都是通过 Flash 等不同的插件显示的。但 HTML5 规定了使用 video 元素在网页上显示视频的标准方式。目前,video 元素支持三种视频格式,如表 2 所示。[*][*]下面的例子展示了 video 元素的使用:[*][*]例子使用了 Ogg 文件,并且可以在 Firefox、Opera 和 Chrome 中使用。要使视频在 Safari 和未来版本的 Chrome 中工作,我们必须添加一个 MPEG4 和 WebM 文件。video 元素允许多个 source 元素。source 元素可以链接到不同的视频文件。浏览器将使用第一个识别的格式,如下所示:[*][*]
  • 娱乐开发两不误,10 大开源游戏框架推荐
    从角色扮演游戏到即时策略游戏,从冒险解谜游戏到动作射击游戏,甚至是只有一兆大小的迷你游戏,都有起着核心作用的技术组成部分。本文将介绍十大好用的开源游戏引擎和框架,希望能给你的游戏开发带来帮助。 1、网易游戏服务器框架 PomeloPomelo 是由网易开发的基于 Node.js 开发的高性能、分布式游戏服务器框架, 也可作为高实时 Web 应用框架。Pomelo 包括三部分:[*]框架,Pomelo 的核心, 与以往单进程的游戏框架不同, 它是高性能、分布式的游戏服务器框架,并且使用很简单[*]库,包括了开发游戏的常用工具库, 如人工智能(AI)寻路, AOI 等[*]工具包,包括管理控制台,命令行工具,压力测试工具等 2、开源跨平台游戏开发框架 Cocos2d-xCocos2D-X 是全球知名的开源跨平台游戏引擎,易学易用,目前已经支持 iOS、Android、Windows 桌面、Mac OS X、Linux、BlackBerry、Windows Phone 等平台。Cocos2d-JS 统一了使用 JS 进行开发的开发体验,将 HTML5 引擎与 JSB 的 API 高度统一起来。 3、C++ 纸牌游戏引擎 WagicWagic 是一个自制的 C++ 纸牌游戏引擎,支持的平台包括:Android (手机和平板), the Sony PSP, Windows, Linux, Maemo, Meego, iOS (iPhone/iPad) and MacOS. 该游戏引擎可高度定制,并允许修改规则创建自己的扑克和主题。 4、HTML5 开源免费游戏框架 EgretEgret Framework 是一款使用 JavaScript(TypeScript) 编写的 HTML5 开源免费游戏框架。Egret Framework 的核心定位是开放,高效,优雅。基于它,你可以快速轻松地构建属于自己的 HTML5 移动游戏。 5、HTML5 互动游戏引擎 HiloHilo 是阿里巴巴集团开发的一款 HTML5 跨终端游戏解决方案,它可以帮助开发者快速创建 HTML5 游戏。 6、分布式游戏服务端引擎 KBEngineKBEngine 是一款开源 mmog 服务端引擎, 使用统一协议能够轻松与前端对接,能轻松使用 unity3d、 ogre、 cocos2d、 html5 等作为前端表现。底层框架由 C++编写, 逻辑层使用 Python(支持热更新), 开发者无需重复实现一些通用的底层服务端技术, 使开发者能够真正集中精力到游戏开发上来, 快速打造各种游戏。 7、2D 和 3D游戏引擎 GodotGodot 是一个全新开发的游戏引擎,其功能集类似知名的跨平台游戏引擎 Unity,可用于开发 PC、主机、移动和Web游戏。开发者声称引 擎的2D和动画支持要强于 Unity,表示在功能和特性上没有其它开源游戏引擎能相媲美。Godot 引擎内置了类似Unity的编辑器,GUI 工具包,2D/3D 物理支持,支持 OpenGL ES 2.0 功能集的 3D渲染器,易于学习的语言和 API,支持用 ASM.js 或 Google Native Client 输出 HTML5 代码,支持 Linux、Windows 和 OSX 开发平台。 8、Android 游戏引擎 LibgdxLibgdx 是一个跨平台的开发框架。它目前支持的平台有 Windows,Mac OS X,Android,IOS 和 HTML5。Libgdx 允许你可以将代码不经任何修改的部署到多个平台。而不是修改你的代码适应不同的平台或者直接编译到 HTML5。你可以在一个桌面开发环境中迅速部署你的代码。你可以使用所有的 Java 生态系统中的开发工具。 9、HTML5 开源游戏引擎 LayaAirLayaAir 提供 Canvas 和 Webgl 同时渲染,如果 Webgl 不可用,则可自动切换到 Canvas 模式。引擎为高性能游戏设计,支持 AS,TS,JS三种语言开发,一套代码三端齐发(Flash,HTML5,APP)。 10、HTML5 2D 游戏开发框架 PhaserPhaser 是一个开源的桌面和移动 HTML5 2D 游戏开发框架,支持 JavaScript 和 TypeScript。
  • [技术干货] 本地使用Windows10通过MSTSC方式登录Windows2012失败问题处理
    问题描述对于密码鉴权方式创建的Windows2012弹性云服务器,使用初始密码以MSTSC方式登录时,登录失败,系统显示“第一次登录之前,你必须更改密码。请更新密码,或者与系统管理员或技术支持联系”。可能原因用户本地使用的计算机(即客户机)操作系统为Windows 10。由于Windows 10操作系统的自身限制,不能以初始密码直接远程连接操作系统为Windows2012的弹性云服务器。处理方法l 方法一更换使用Windows 7操作系统的计算机作为客户机,远程连接操作系统为Windows 2012的弹性云服务器。l 方法二继续使用Windows 10客户机远程登录,但是,需先修改弹性云服务器的初始密码。a. 首次登录,以VNC方式登录操作系统为Windows2012的弹性云服务器。b. 登录成功后,按照界面提示修改弹性云服务器的密码。c. 使用修改后的密码,以MSTSC方式远程登录。l 方法三继续使用Windows 10客户机,并以初始密码远程登录。a. 单击“开始”菜单,在“搜索程序和文件”中,输入“mstsc”。系统进入“远程桌面连接”界面。b. 依次输入弹性IP、用户名“administrator”以及创建弹性云服务器时设置的登录密码进行连接。连接失败,系统提示“第一次登录之前,你必须更改密码。请更新密码,或者与系统管理员或技术支持联系”。c. 单击“远程桌面连接”页面左下角的“选项”。d. 在“常规”页签,单击“连接设置”栏的“另存为”,保存“.rdp”格式的远程桌面文件。e. 使用Notepad++打开d中保存的远程桌面文件。f. 编辑远程桌面文件,在文件的最后一行,添加如下语句并保存。enablecredsspsupport:i:0g. 双击更新后的“.rdp”文件,打开远程桌面连接。单击“连接”,重新连接操作系统为Windows 2012的弹性云服务器。
  • 【沃通WoTrus】如何做域名验证?
    在华为云市场下单申请沃通SSL证书,沃通客服会联系您协助完成域名验证等身份认证流程,需要用户配合完成相关的验证操作,才能最终获取SSL证书。本文重点介绍如何完成域名验证操作?域名验证有三种方式:邮箱验证、DNS验证、网站控制权验证。注意在做域名验证的时候,不要直接点击验证,先根据您选择的验证方式,做完以下操作再点击邮箱中的验证按钮,否则会提示一、邮箱验证只能验证以下几个邮箱,如果没有,需要在邮箱系统中创建该企业邮箱,不支持指定特定邮箱做验证(以wosign.com为例)。webmaster@wosign.com postmaster@wosign.comhostmaster@wosign.com admin@wosign.com administrator@wosign.com域名验证选择邮箱验证,选择以上邮箱中的一种,打开对应的邮箱,点击验证。出现以下图示,表示验证通过,否则,请联系您的专属客服。二、DNS验证设置特定TXT记录值来验证域名有效性。申请证书订单,点击域名验 --> 选择dns方式验证 --> 等待接收验证邮箱中的txt值 --> 添加TXT记录(以阿里云DNS为例)。1. 用域名商管理账号 登录 域名管理后台(阿里云,新网等),进入产品管理 --> 管理控制台 --> 域名 ,在列表中选择需要解析的域名。单击 解析链接,根据系统提示完成对域名的解析。2. 进入域名解析 界面,单击 添加解析 选项。记录类型选择:TXT主机记录:@ (如果是子域名验证,请填写具体子域名前缀)记录值:邮箱中的TXT值其他值默认。当您添加解析以后,系统会自动进行校验,这个过程通常会在2个小时左右,请耐心等待。通过:nslookup -qat=txt wosign.com 查询Text的值和设置的TXT值一致。最后点击邮件中的验证链接,点击verify,出现以下图示,表示验证通过,否则,请联系您的专属客服。三、网站控制权验证如果您选择的是网站控制权验证,按收到的验证邮箱,创建指定的html文件,并编辑为指定值,放在网站根目录的.well-known\pki-validation\目录下,访问路径: http://domain/.well-known/pki-validation/fea490871ececa6c55e0c7c402fef86aea635a0f301459966178958109c56d6e.html下图是文件放置完成后,访问效果图。(请注意目录名称中的点)如何在根网站目录创建.well-known/pki-validation/目录文件linux操作系统:创建.well-known/pki-validation目录(如网站根目录在/usr/local/root)[*]mkdir -p /usr/local/root/.well-known/pki-validation复制代码然后通过vi编辑器创建指定的XXX文件名,并赋予指定的值XXX(XXX为邮件中给定的64个字符)。windows操作系统:windows环境无法直接以桌面方式创建带点的文件目录,需要在dos下创建(如网站根目录在D:\root):[*]mkdir d:\root\.well-known\pki-validation复制代码[/backcolor]然后在桌面进入d:\root\.well-known\pki-validation目录,[/backcolor]创建指定的XXX文件名,并赋予指定的值XXX(XXX为邮件中给定的64个字符)。1、 NginxNginx分代理和非代理模式。(1) Nginx代理模式代理服务器(nginx.conf)配置如下:(XXX.html放到nginx服务器 html/.well-known/pki-validation 目录下)location ~* ^/.well-known/pki-validation/XXX.html { root html;}检查nginx配置是否有问题nginx –t重启nginx服务器nginx –s reload输入一下地址验证:http://域名/.well-known/pki-validation/xxx.html(2) Nginx非代理模式根据Nginx.conf找到主域名http的server配置文件,查看root定义的路径,如 :location/ { root html; index index.html index.htm; }将文件XXX.html放到nginx服务器html/.well-known/pki-validation目录下输入以下地址验证:http://域名/.well-known/pki-validation/xxx.html2、 Apache根据Apache服务器/conf/httpd.conf,找到对应域名的http配置,如:DocumentRoot "conf/htdocs"ServerName wosign.com将XXX.html放到apache服务器 conf/htdocs/.well-known/pki-validation目录下。输入以下地址验证:http://域名/.well-known/pki-validation/xxx.html3、TomcatTomcat服务器,默认根目录在tomcat服务器/webapps/ROOT,将XXX.html文件放在/webapps/ROOT/.well-known/pki-validation/目录下。如果有调整过根路径,可查看conf/server.xml文件,如。 ...... 通过docBase指定根目录,将XXX.html 复制到/usr/local/tomcat/site/.well-known/pki-validation/目录下:输入以下地址验证:http://域名/.well-known/pki-validation/xxx.html4、IISIIS服务器,找到对域名站点,右键-->浏览,可弹出网站根目录,然后根据上面提到的方法创建.well-known/pki-validation目录,将XXX.html复制在此目录即可。输入以下地址验证:http://域名/.well-known/pki-validation/xxx.html最后点击邮件中的验证链接,点击verify,出现以下图示,表示验证通过,否则,请联系您的专属客服。
  • [技术干货] 大规模分布式系统性能测试实践
    一、云时代的应用性能测试挑战二、华为云性能测试实践方案如何更加系统的开展性能测试活动被测对象分析测试场景分析建模测试需求分析工具选型与搭建测试执行性能测试分析与调优1.    被测对象分析(某社交类APP)从系统架构分析可能出现的瓶颈点,作为重点测试场景Feed流会频繁操作后台的Redis等服务,每次操作会产生100+次网络操作,200+次key/Value运算,因此会成为系统的主要性能瓶颈备注:Feed是将用户主动订阅的消息源组合在一起形成内容聚合器,帮助用户持续地获取最新的订阅源内容,在社交类应用中被广泛使用若干2.    测试场景分析建模业务特点:用户增长迅速、突发事件高流量并发Step1:以使用场景为主线,构建性能模型(使用角色、使用阶段等)Step2:分析每个操作场景的影响因子,如好友、关注数量等,建立每个场景的测试模型 单场景一级接口测试单场景二级接口测试如需测试某个对性能的影响,可递增方式改变因子值进行测试 按照页面权重分配压力模型,实际在生产环境比例会不断变化,因此在性能摸底过程中需要不断调整摸底示例:全页面混合压测模型3.    测试工具需求分析识别关键场景测试需求1)      HTTP协议/Rest接口  2)      用户登陆认证 ,模拟多用户操作 3)      支持接口串联场景,需要上下文关联4)      性能暂无基线,需要支持递增模式快速摸底 5)      各页面用户量未知,需要灵活调整混合模型配比 6)      由于社交类应用业务增长迅速,因此需要支持按需使用,随时扩大工具的并发量7)      需要支持10万以上的并发8)      测试结果易于观察、保存9)      提供监控能力,便于快速定位 4.  测试服务选型与搭建测试服务选项原则:功能满足、效率高(即开即用)、成本低云服务更适合测试高扩展性的大规模分布式系统 5. 测试执行分层开展性能测试,在集成阶段确保性能测试活动可开展 测试执行的一些典型问题性能是一个逐步提升的过程,测试过程中需要找到扩容的模型,从不足50的TPS提升至万级 6.  测试结果分析1.1  如何从测试工具侧快速分析被测对象可能存在的问题·         存在部分响应超时:a)       服务器繁忙,如某个服务节点CPU利用率高b)      网络IO超过VM/EIP带宽c)       等待后端微服务、数据库的超时时间设置过长·         运行一段时间后全部响应超时或者检查点校验不通过:a)       大压力导致系统中某个微服务奔溃b)      后端数据库无响应·         TPS未随着并发数增长而上升:a)       系统性能到达瓶颈,持续并发加压过程中响应时延增加(可观察响应区间统计)b)      可通过进一步加压是否会出现非正常响应验证·         TP90响应时延较短,TP99时延高:a)       系统性能接近瓶颈b)      可通过进一步加压是否会出现非正常响应验证 1.2  一些通用优化建议1)      扩容,链路中的某一应用可能出现cpu使用率较高或者连接池资源不够用(rpc、jdbc、redis连接池等)但本身对于拿到连接的请求处理又很快,这一类需要横向扩展资源。2)      应用逻辑优化,比如存在慢sql、 逻辑的不合理如调用db或者redis次数过多、没有做读写分离造成写库压力过大。3)      超时时间的合理设置,对于应用之间的rpc调用或者应用与其他基础组件之间的调用,均需要设置合理的超时时间,否则过长的等待将造成整个链路的故障。4)      缓存的应用,请求尽可能从前端返回,而不是每一个都要让后端应用处理后再返回,减轻后端应用及数据库压力,提高系统吞吐能力。5)      限流,对于超出承载能力的QPS或并发,可以进行拦截并直接返回提示页面。6)      降级,对于非核心链路上的应用,允许故障关闭而不影响核心链路7)      扩容和优化也是有限度的,在评估容量内,保障核心交易链路正常是重中之重,对于非核心功能模块考虑降级场景 三、某互联网平台案例业务特点:突发事件高流量突发,如瞬间由百级用户增长到万级对于网络架构复杂的应用,可以通过网络架构上的分段验证,如分别从最外端的CDN入口(1)中间的ELB(2)业务层(3)分别做测试,验证网络架构上的瓶颈和影响应用内部的性能瓶颈如何提升定位效率? 四、性能测试的最后一公里集成APM,解决性能问题定位最后一公里问题,大幅提升性能测试效率如:xxx并发情况下,服务A调用服务B的事务1出现问题,并直接定位至出错函数在上线和活动前期通过云性能测试服务进行压力测试,发现部分接口的响应时间比较长,会出现比对失败和响应超时,通过APM的调用链分析,发现有部分SQL语句比较耗时,针对这些SQL查询语句,建立了索引,快速定位问题并迅速解决。最终经过两轮测试优化后,官网首页访问响应超时与正常返回比提升了43.3%,预约试驾场景响应超时与正常返回比降低到0,提升了100%。性能瓶颈定位时间,从官网未使用APM时需要1周,缩短到俱乐部使用APM后的0.5天,效率提升90%应用拓扑事务监控调用链跟踪 五、性能测试服务关键能力要求华为云性能测试服务CPTS官网:https://www.huaweicloud.com/product/cpts.html
  • [技术干货] 一遍带你快速入门IoT平台!原来oceanconnect平台着么简单!物联网俱乐部分享!
             本人也是一个写应用的,但我配置的平台的时候不想去使用硬件,NB设备需要发AT调试设备,上传数据,模组的说明文档看不全还常常报错,有时候一个小错误找不出来烦半天。这里就不得不说一下ocean平台的模拟器功能的强大了,他能帮您快速配置oceanconnct平台。         平台上面是着么说的这里正式开始。。。。。。编写Profile编解码插件   这个Profile是设备描述的文件    描述设备包括他的名称   厂商 设备类型 数据格式   等等。。。1,Profile开发点击profile在线开发,自定义产品(点击自定义产品->创建全新产品)这里写入的是一个描述设备的信息,就是描述你要创建的设备是什么名字 ,什么型号 ,哪里产的,特别注意的是看下图的CoAP协议 ,我们接下来的使用的NB硬件也必须通过CoAP发数据    点击确定之后我们下拉到服务列表(新建服务->新增属性->新增字段)一个NB设备可以有多个服务   一个服务又包括上传数据的格式描述和下发数据的格式描述这里我们点击新增属性,这个新增属性即是你要上传数据的描述  如下图我们简单的添加两个数据  分别是描述压强的一个属性和描述电压的一个属性                                                                                                                                                       点击确定后我们在添加一个描述下发指令的一个值点击新增命令:保存点击新增字段后又一个命令下发字段和一个命令响应字段     下发字段又ON或者OFF     2.插件开发编解码插件的用处:就是让你发上来的数据以什么格式显示在平台上面,说白了就是在平台上面解释模组发上来的数据点击(插件开发->开始设计->新建插件)选择我们刚刚新建的插件这里我们新建一个上传数据服务和下发数据服务将左边的控件拉过来对应下图为插件的数据类型,参数:3,注册设备填写设备名称   设备IMEI这里注册随便写一个比较复杂的   这个平台是不允许相同的IMEI号注册的   即是每个IMEI号在平台上面只能同时存在一次点击注册注册成功4.发送数据1.上报数据这里不点击我们平台上面的模拟器选择模拟设备(点击模拟器->绑定设备)           这里的IMEI号和我们的注册设备的时候一样写入3个字节的数据  在编解码插件上面也是设定3个字节的平移数据    平台只能解析3个       点击发送我们在去看平台数据为3  和  48 2.命令下发选择我的设备这个命令下发的标识符这个我们选择ON发送一次和OFF发送一次右边对话宽会出现如下图我们再次点击模拟设备 如下图看到4F4646为ASCLL码   就是OFF     4F4E就是ASCLL码ON
  • [技术干货] 【零代码】利用已有Demo快速体验NB-IoT全流程(NB模组篇) 【转】
    对于大多数NB-IoT开发者来说,如果能在正式开发之前,快速体验NB-IoT的上报数据和命令下发流程,有利于加深对华为NB-IoT解决方案的理解,对于后续的开发、调试工作将是事半功倍的。按照本帖的操作流程指导,开发者可以利用已有Demo快速接入华为OceanConnect平台,零代码体验NB-IoT的数据上报和命令下发全流程。基于模组进行NB-IoT业务流程体验,要求具备以下条件:1. 已购买NB模组,对硬件有一定的了解。2. 调试地有NB网络覆盖。声明:由于利用NB模组调试涉及网络等不确定性问题,定位起来较为困难。如果在操作过程中无法确保入网成功,可提供模组日志给华为开发人员帮您排查。1 准备资源1.1 平台资源申请OceanConnect平台资源的方式:https://www.huaweicloud.com/product/iot.html11.2 NB模组需自行向NB模组厂商购买。目前NB-IOT模组(集成华为NB-IOT芯片)由两家合作伙伴提供,分别是上海移远和杭州利尔达。您可以直接向他们咨询获取模组,详细规格信息可以访问对应网站。移远:http://www.quectel.com/cn/product/list/LPWAIoTModule.htm利尔达: http://www.lierda.com/product/id/94/list.html1.3 SIM卡核心网注册的SIM卡一张,找运营商获取。1.4 Profile文件DemoMultiSensor_eSDK_v01.zip,请下载附件后上传至OceanConnect平台使用,无须修改。1.5 编解码插件Demo与MultiSensor_eSDK_v01.zip配套的编解码插件已由华为人员上传至OceanConnect平台,可直接使用 ,无须关注。1.6 GUI Demo模拟北向应用。下载&使用方法:https://bbs.huaweicloud.com/forum/thread-13266-1-1.html  1.7 串口助手串口助手——SSCOM,可自行百度下载。NB-IoT方案,创建应用时,以下选项不能有误:“所属行业”必须选择“公用事业(NB-IoT)”。“关联API包”必须勾选“基础API包”和“公用事业(NB-IoT)API包”,建议全部勾选。“应用能力”必须选择“规则引擎”。注意:1. 如果下发OceanConnect资源邮件时,系统已创建好应用,可直接使用。2. 如果创建应用时以上某项选择错误,需要删除应用后重新创建,修改无效。 注册设备至平台2 上传开发组件 2.1 上传profile文件至OceanConnect平台将已下载的profile文件MultiSensor_eSDK_v01.zip上传至OceanConnect平台。具体方法如下:Step 1 使用邮件中的“平台Portal链接”和“登录账号/密码”信息登录OceanConnect平台,选择菜单“Profile开发 > 导入Profile”。 Step 2 单击右上角“导入”图标,上传文件时选中Profile资源文件MultiSensor_eSDK_v01.zip,设备类型、厂家ID和设备型号无须修改,单击“上传”。 2.2 上传编解码插件至OceanConnect平台与MultiSensor_eSDK_v01.zip配套的编解码插件已上传至IoT平台,您可直接使用,无须重复上传。注意:在后续业务开发过程中,您需要根据业务需要开发自己的编解码插件并上传至OceanConnect平台 3 注册设备Step 1 登录OceanConnect平台,单击“我的设备 > 注册设备”,即可看到应用下所有已上传的Profile,单击选中需要注册设备对应的Profile。 Step 2 在Profile详情页,填写“设备名称”和“设备标识码”,单击“注册”按钮注册设备。设备名称:用于区分不同设备,名称可自定义(如MultiSensor-02)。设备标识码:设备唯一标识。使用NB模组对接时,填写模组的IMEI号码。IMEI号为15位数,一般以86开头,贴于NB模组标签上,或可通过AT+CGSN=1指令查询得到。注册设备成功后返回的设备ID和PSK码请牢记。Step 3 单击“我的设备”,查看对应设备是否注册成功。如果注册成功,可以看到设备处于“OFFLINE”状态。4 终端入网实现终端入网,需要在SSCOM中通过一系列AT指令来控制NB模组。SSCOM中的各项设置说明如下:串口号:选择与NB模组进行通信的实际物理com口,并确保打开串口。波特率:选择9600。NB模组内置的华为NB芯片仅支持波特率9600。发送AT指令时确保勾选“发送新行”,不勾选“DTR”和“RTS”。其他参数保持默认。终端入网的详细步骤如下所示:Step 1:终端上电,执行“AT+NRB”复位终端。如果返回OK,表示终端正常运行。Step 2:执行“AT+CFUN=0”关闭功能开关。如果执行成功,返回OK。 Step 3:执行“AT+NTSETID=1,设备ID”设置设备ID。设备ID为NB模组的IMEI号,如果执行成功,返回OK。 Step 4:执行“AT+NCDP=IP, PORT”设置需要对接IoT平台的地址,端口为5683。如果执行成功,返回OK。 Step 5:执行“AT+CFUN=1”开启功能开关。如果执行成功,返回OK。 Step 6:执行“AT+NBAND=频段”设置频段。如果执行成功,返回OK。频段信息可以咨询NB模组厂商。 Step 7:执行“AT+CGDCONT=1,“IP”,“APN”设置核心网APN。如果执行成功,返回 OK。核心网APN可联系运营商(与运营商网络对接时)或者OpenLab负责人(与OpenLab网络对接时)进行获取。Step 8:执行“AT+CGATT=1”进行终端入网。如果执行成功,返回OK。 Step 9:执行“AT+CGPADDR”查询终端是否获取到核心网分配的IP地址,如果获取到IP地址,表示终端入网成功。 Step 10:执行“AT+NNMI=1”设置下行数据通知功能,如果执行成功,返回OK。 5 数据上报 5.1 串口工具中上报数据执行“AT+NMGS=5,00012E1F63”发送上行数据,如果上行数据发送成功,返回OK。由于设置了 “AT+NNMI=1”,如果编解码插件中写了OceanConnect平台对上报数据的应答,则上行数据发送成功后会自动获取应答数据。上报数据的AT命令为:AT+NMGS=5,00012E1F63。具体解析如下:1.     AT+NMGS=N,XXXXXXXXXX为上报数据的AT命令格式,其中“N”表示一共上报几个字节,后面为具体的上报字节内容,以十六进制字符串表示。这些需要提前在编解码插件中写好。2.     本例中,一共上报5个字节,分别为“00”、“01”、“2E”、“1F”、“63”。其中,第一个字节“00”表示上报数据,第二个字节“01”表示上报数据对应的serviceId为Humidity(湿度),第三个字节“2E”表示HumidityCur(当前湿度),第四个字节“1F”表示HumidityMinToday(当天湿度最小值),第五个字节“63”表示HumidityMaxToday(当天湿度最大值)。这些内容与profile文件和编解码插件是一一对应的。由于本例中的编解码插件写了上报数据应答,在上报数据成功后会收到“+NNMI 1,01”的应答。5.2 OceanConnect平台中查看数据 Step 1 登录OceanConnect平台,点击“我的设备”进入设备列表页,根据deviceId选择对应注册的在线设备,单击进入。Step 2 在设备详情页,选择”历史数据”项,即可看到已经上报且被解析后的json数据。 在实际应用中,数据到达OceanConnect平台后,可以通过两种方式在北向应用服务器中接收数据:1.     调用数据查询类接口,查询OceanConnect平台中缓存的数据。2.     调用订阅接口,设置好推送地址,数据到达OceanConnect平台后会按照既定的IP地址主动将数据推送至北向应用服务器。6 命令下发 Step 1 解压IoT_OceanConnect_North_GUI_APPDemo.zip(简称GUI Demo)压缩包,打开application文件夹,直接双击运行Demo.jar文件。  Step 2 根据华为下发的OceanConnect平台资源邮件内容填写对应配置项后,单击“Login”按钮登录。注意:如果Demo.jar文件无法打开,请确认本机是否配置了JDK开发环境。 Step 3 在“Module Choose”选项框中,“Solution”选择“NB-IoT”,“Module”选择“Command Manager”。 在“Post Asyne Command”选项框中,输入deviceId,单击“Get Command”按钮,获取该deviceId对应设备所具备的服务和命令。说明:这些服务和命令是在profile中定义好的。 Step 4 设置具体参数,选择需要下发的服务和命令后,单击“Post Command“。各参数含义及设置方法如下:   Service:设备提供的服务ID,只能从下拉框中选择。以“Temperature“为例。  Command:该服务所具备的命令,只能从下拉框中选择。选定后会出现该命令可选的参数名(如Period或Value)。以“HIGH_TEMPERATURE_WARNING“为例,参数选择”Value”。  Value:参数名对应的参数值。以设置“50“为例。  Expire Time:命令的超期时间,单位为秒。如果在设置时间内,命令还缓存在平台没有下发就会超期作废。以设置“200“为例。 Step 5 登录OceanConnect平台,在设备详情页的“历史命令“项中,可以查看刚下发的命令状态。分为两种情况:1) 如果此时NB模组处于connect态,命令会立即下发,命令状态为“已送达”。2) 如果此时NB模组处于非connect态,命令会缓存下发,命令状态为“等待”。这种情况下,需要上报一条数据激活设备,才能收到下发的命令。Step 6 参照“5.1 SSCOM中发送数据“,发送一条AT命令:AT+NMGS=5,00012E1F63,此时刷新历史命令,可以看到命令状态切换为“已送达”,表明命令已下发。关于IoT平台的各命令状态,请参阅:https://bbs.huaweicloud.com/forum/thread-13244-1-1.html  7 着手开发 在利用Demo熟悉数据上报和命令下发流程,并理解业务后,可以着手进行自身业务的开发。主要需要开发的四大组件包括:profile,编解码插件,南向设备,北向应用。具体开发方法和参考文档、Demo请查阅:https://support.huaweicloud.com/devg-IoT/iot_02_3003.html 在Demo体验或实际开发过程中,遇到任何技术问题,建议通过论坛寻求帮忙,都会有专业的华为技术人员帮您解答。8 附件MultiSensor_eSDK_v01.zip
  • [技术干货] 软件升级【转】
    (转自 https://developer.huawei.com/ict/forum/thread-49197.html  )1.1  软件包平台对升级的软件有格式要求,厂商需要根据软件制作规范制作软件包,并上传到IoT平台。1.1.1      软件包制作1、 准备升级软件包文件设备厂商自行发布用于设备升级的软件包版本文件。【说明】:需要将所有要在升级传给设备的软件文件都打成一个升级文件。【注】:软件包文件名称不支持包含中文字符。2、 制作设备升级版本包步骤1 新建文件夹命名为“DM”,在DM文件夹下创建设备系统类型文件夹,例如嵌入式设备通常采用“linux”,将厂商发布的软件包描述文件“UpgradeDesc.josn”文件至于“linux”目录下,参见下图:UpgradeDesc.json文件模板如下:{    "specVersion": "1.0",    "fileName":"ExamplePackage.bin",   "packageType": "softwarePackage",    "version": "V1.0",    "deviceType":"MuliSensor",    "manufacturerName":"eSDK_Huawei",    "model": "v01",    "protocolType":"CoAP",    "description":"Test software package",    "versionCheckCode":"1",    "date":"2018-04-20", “supportSourceVersionList”:[  {"swVersion":"*"}]}注意:specVersion描述文件版本号,固定值:"1.0";packageType软件包必须设为:"softwarePackage",“supportSourceVersionList”和“versionCheckCode”为必填参数,并且versionCheckCode不宜过长步骤2 在与“DM”同级目录下创建平台类型文件夹,例如“linux”,该文件夹名称必须与步骤1中平台类型文件夹一致,将厂商软件包至于该目录,参见下图步骤3 选中“DM”和“linux”文件夹,使用winRAR等压缩工具打包成ZIP格式的压缩包package.zip(注意package.zip下不能包含package这层目录)。3、 对版本包进行离线签名使用离线签名工具对软件版本包进行签名,操作步骤如下:1)     使用浏览器登录SP Portal。2)     下载离线签名工具。a.      单击左侧 图标,打开管理页面。b.      单击左侧导航栏“工具”,在右侧区域单击“下载”,下载离线签名工具。3)     在下载路径找到压缩包“signtool.zip”,右键菜单中选择“Extract to signtool\”解压缩至文件夹“signtool”。4)     进入signtool文件夹,运行“signtool.exe”。操作界面如下所示。5)     生成数字签名公私钥对。a.      根据实际情况选择签名算法。目前提供两种签名算法:ECDSA_256K1+SHA256RSA2048+SHA256b.      设置“私钥加密口令”。§  口令复杂度说明:§ 口令长度至少为6个字符§ 口令必须包含如下至少两种字符的组合:ü至少一个小写字母ü至少一个大写字母ü至少一个数字ü至少一个特殊字符:`~!@#$%^&*()-_=+\|[{}];:'",<.>/?和空格c.      单击“生成公私密钥”,在弹出的窗口中选择需要保存的目录,单击“确定”。       可在保存的目录下查看生成的公私密钥文件。    §  公钥文件:public.pem           §  私钥文件:private.pem6)     对升级包进行数字签名。离线签名工具只能对.zip格式的压缩包进行数字签名。a.      在“软件包数字签名”区域,单击“导入私钥文件”,选择步骤5.3中生成的私钥文件,单击“打开”。b.      在弹出的对话框中,输入步骤5.2中设置的口令,单击“确定”。c.      在“需要数字签名的软件包”区域,选择需要进行数字签名的升级包。单击“打开”。d.      单击“进行数字签名”。签名成功后,在原软件包所在目录生成名为“XXX_signed.XXX”的带签名的升级包。7)     升级包签名验证。a.      在“软件包签名验证”区域,单击“导入公钥文件”,选择步骤5.3中生成的公钥文件,单击“打开”。b.      在“需要验签的软件包”区域,选择步骤6中生成的名为“XXX_signed.XXX”的带签名的升级包。单击“打开”。c.      单击“进行软件包验签”。§  验证成功则弹出“验证签名成功!”提示框。§  验证失败则弹出“验签异常!”提示框。           ----结束1.1.2 软件包升级1、  公钥上传上传软件包之前需要上传对应的公钥信息,公钥来源离线签名时生成的public.pem文件登陆SP Portal,选择应用管理,点击进入对应的应用下,在升级认证管理页面上传公钥。2、软件包上传在设备管理页面,选择对应的应用,点击包管理,在软件包管理页面点击添加软件包,选择签名后的软件包,点击确认执行软件包上传。1.2 profile如果设备需要软件升级,需要在设备profile里增加软件升级能力的定义,升级协议选择“PCP”。参考附件devicetype-capability文件中的omCapability.upgradeCapability定义。1.3平台升级协议平台升级协议(PCP协议)规定了设备和平台之间升级的通信内容与格式,从起始标识到数据区的最后一个字节的CRC16校验值。计算前先把校验码字段置为0,使用CRC16_CCITT计算校验值把结果写到此字段。  字段名    字段类型    描述和要求    起始标识    WORD    起始标识,固定为0XFFFE    版本号    BYTE    高四位预留;低四位表示协议版本号,当前为1    消息码    BYTE    标识一个请求消息,应答消息的消息码和请求消息相同    校验码    WORD     从起始标识到数据区的最后一个字节的CRC16校验值,计算前先把校验码字段置为0,计算完成后把结果写到校验码字段。    数据区长度    WORD    数据区的长度    数据区    BYTE[n]    参见具体指令的定义  升级CRC校验部分代码:u16do_crc(u16 reg_init,u8  *message,  u16 length){u16crc_reg = reg_init;          u16 i;           for (i = 0 ; i < length; i ++ )          { crc_reg= (crc_reg >> 8) ^ crc_table1[(crc_reg ^ message) & 0xff];                                           }  returncrc_reg;}u16Get_Crc16(u8  *d,  u16 len){  u16 crc_reg = 0x0000;          return do_crc(crc_reg, d,len);  }  1.4创建软件升级任务在SP portal“设备管理/批量任务/软件批量任务”中选择“软件升级”,点击右上角的“创建批量任务”升级CRC校验.rardevicetype-capability.rar
  • [专题汇总] 【每天五分钟,精通全联接】管理小设备,迈向全联接—设备命令竟可批量下发【转】
    震惊了!面对数量庞大的设备管理问题,它是这样做的。IoT平台支持对批量设备下发命令功能,解决租户批量管理设备的需求。批量命令下发种类目前IoT平台支持对批量设备下发以下5种命令:按设备列表发送命令(DeviceList)按设备类型发送命令(DeviceType)按区域发送命令(DeviceArea)按设备组发送命令(GroupList)命令广播发送(Boradcast)总流程图接口介绍涉及各接口详细介绍,请登录华为support网站,搜索版本文档“IoM Platform VXXXRXXXCXX_ReleaseDoc_CN”,获取接口文档查看。“VXXXRXXXCXX”为当前版本的版本号。
  • [专题汇总] 【每天五分钟,精通全联接】【NB-IoT系列】批量下发:我可以批量控制设备噢~ 【转】
    IoT平台支持批量设备命令下发啦~能很好的满足租户对批量设备的控制噢!批量命令下发分以下5种:按设备列表发送命令(DeviceList)按设备类型发送命令(DeviceType)按区域发送命令(DeviceArea)按设备组发送命令(GroupList)命令广播发送(Boradcast)如何实现的?批量命令下发中各模块功能详述:划重点:批量命令下发的是缓存命令,所以该特性和命令下发机制的缓存下发相关。具体请 【每天五分钟,精通全联接】【NB-IoT系列】——命令下发机制:立即下发还是缓存下发?任君选择~好啦,今天的五分钟就到这里啦,对于NB-IoT其他的介绍,请关注后续【NB-IoT系列】。如果您想了解更多的全联接内容,欢迎关注【每天五分钟,精通全联接】噢~
  • [技术干货] 【深创客】跟我学NB-IoT之AT命令从入门到精通系列四:云端配置
    一、本节教程目的  本节教程旨在简单快速的演示如何申请云账号,创建profile以及插件,为下一节NB476与云端对接做准备。对云端的细节配置感兴趣的同学可参考教学视频进行学习与了解,进入视频链接后,一级分类选:开发者    二级分类选:IOT     标签类选:朱老师系列教程。二、开发环境  华为云三、开发步骤    (一)申请华为云试用账户  华为官方有为开发者和学习者提供时长三个月的免费体验云的机会,进入申请页面后,选择“OceanConnect”环境,单击“预约”按钮,进行试用申请。申请成功后,你的邮箱将收到一封邮件,邮件内容主要包含云平台的IP地址与登陆时使用的账户名与密码。  (二)创建profile    登陆云平台后,可点击“Profile开发->Profile在线开发”后,点击“产品模板”与“创建全新产品”进行Profile创建。这里建议初学者点击“Profile导入”,导入我们已经创建好的Profile(文末上传profile,且不要解压,直接导入zip即可)。  (三)创建插件   1.同上,点击“插件开发->插件开发”后,点击“插件模板”与“新建插件”进行插件创建(目前我没找到在哪导入插件,只能手动配置)。   2.这里对照着先前的Profile,逐步添加“新增消息”。这里以Profile里的battery为例,进行演示。  (1)点击“新增消息”  (2)输入“消息名”,选择“数据上报”,点击“添加字段”,勾选“标记为地址域”  (3)再次点击“添加字段”后,如图配置  (4)点击“完成”后,进行拖拽匹配,如图  由于图片占用了较多篇幅,所以将剩下的插件配置过程放入word文件中,可于文末下载。创建完插件后,点击网页右上方的“部署”即可。对于想要具体了解Profile与插件的同学可见文首教程目的中的视频链接,进行系统学习。  (四)注册设备  完成插件注册后,回到主页面,点击“我的设备”与“注册设备”,选择“NB476”后,输入“设备名称”与“验证码”后点击注册。其中“验证码”就是NB模块上的IMEI码。如图四、最终效果   可在我的设备中看到已注册,但未绑定的设备,如图。 上一篇:【深创客】跟我学NB-IoT之AT命令从入门到精通系列三:AD采样计算电池电压与功耗 下一篇:【深创客】跟我学NB-IoT之AT命令从入门到精通系列五:数据的上报与接收 profile文件NB476_NB476_NB476.zip 插件配置附件插件配置.doc
  • [交流分享] 【和你一起聊聊NB-IoT】NB-IoT的进一步省电操作(RA功能)
    1、AT+MLWULDATAEX 命令描述:终端设备通过该命令将数据发送给 NB 模组,模组在向 NB-IoT 平台发送 CON 或 NON 消息时携带释放辅助指示(RAI)命令格式:AT+MLWULDATAEX=<length>,<data>,<mode>[,<seq参数说明:< length >:发送数据的长度     <data>:16 进制形式的字符串<mode>:               0x0000: 发送 NON 消息               0x0001: 发送 NON 消息,且携带RELEASE 释放辅助指示               0x0100: 发送 CON 消息               0x0101: 发送 CON 消息,且携带RELEASE_AFTER_REPLY 释放辅助指示<seq_num>:0~255该命令发送最多 512 字节数据。如果未注册或未收到 19/0/1 资源的订阅,则只会触发模组注册,并将发送的数据丢弃。 如果使用该命令发送 CoAP 数据时携带了非 0 的 seq_num,且当前有携带相同 seq_num 的 NON 或者 CON类型 CoAP 数据未发送完成,那么,会将数据丢弃并返回错误。2、示例:AT+MLWULDATAEX=11,B6A0A1A2A3A4A5A6A7A8A9,0x0000OKAT+MLWULDATAEX=11,B6A0A1A2A3A4A5A6A7A8A9,0x0001OKAT+MLWULDATAEX=11,B6A0A1A2A3A4A5A6A7A8A9,0x0100OK+MLWULDATASTATUS:4AT+MLWULDATAEX=11,B6A0A1A2A3A4A5A6A7A8A9,0x0101OK+MLWULDATASTATUS:4MLWULDATASTATUS值如下表:ParameterDescription0未发送1等待响应2发送失败3发送超时4发送成功5收到 RST 响应测试结果如下:  
  • [技术干货] OBS BrowserJS SDK 实践1:结合HTML5 Canvas实现图片局部放大效果
    1      背景介绍 & 效果展示我们经常在电商购物时,当鼠标滑过物品展示图时,会在展示图旁边显示一个图片局部放大的效果图。本文利用OBS BrowserJS SDK上传图片对象到OBS,结合HTML5 Canvas特性可轻松实现“放大镜”效果。效果展示页面已经托管到OBS桶,访问地址:https://static-web-chongchong.obs-website.cn-north-1.myhuaweicloud.com/注:更多关于静态网站托管信息,可参考链接https://bbs.huaweicloud.com/forum/thread-15492-1-1.html图1 默认图片效果展示图2 方法一:通过上传本地图片文件进行展示首先点击“选择文件”按钮选择本地图片文件,单击“点击上传”按钮,待按钮下方显示100%进度完成后,单击“显示图片”即可以看到展示效果。(若图片较大,加载时需要点时间,请耐心等待)图3 方法二:通过已有的图片URL链接显示首先在文件框中输入可用的图片URL链接,单击“显示链接图片”按钮即可以看到展示效果。(若图片较大,加载时需要点时间,请耐心等待)注:针对已经上传到OBS的图片,其URL链接可通过OBS的“分享文件”功能获取(可参考链接https://support.huaweicloud.com/usermanual-obs/obs_03_0046.html),也可以直接在匿名可读的对象上获取URL链接(可参考链接https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829105.html)2      代码参考工具由Magnifier.html、以及子目录下Magnify的OBS BrowserJS SDK库文件、CSS文件、JS文件构成。所有的代码可在打开效果展示页面后(访问地址:https://static-web-chongchong.obs-website.cn-north-1.myhuaweicloud.com/),浏览器中打开F12调试页面获取。3      附录链接OBS BrowserJS SDK 下载和使用,官网参考链接:https://support.huaweicloud.com/sdk-browserjs-devg-obs/zh-cn_topic_0125029729.html
  • [中间件] 【鲲鹏翱翔】消息中间件03-Zookeeper移植指南
    1.简介    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。本次移植以Zookeeper3.4.6为例进行说明,其他版本将下文中的3.4.6替换为对应的版本号进行验证即可。2.环境说明Packet NameVersionCentOSCentOS 7.5 with ARMZookeeper3.4.63.安装部署3.1安装Ant打包工具  通过yum安装Ant:yum install -y ant3.2安装automake和cppunit工具yum install -y autoconf   automake libtool cppunit4.依赖库编译无5.Zookeeper编译从官网上下载zookeeper-release-3.4.6源码到根目录下,并解压:wget https://github.com/apache/zookeeper/archive/release-3.4.6.tar.gztar zxvf release-3.4.6.tar.gz如果官网下载有问题,可以通过网站(https://github.com/apache/zookeeper/releases/tag/release-3.4.6)下载源码包,通过FTP工具上传到云主机之后再执行解压。进入到解压后的zookeeper目录执行编译:cd zookeeper-release-3.4.6ant package tar编译成功后,在zookeeper-release-3.4.6/build下生成zookeeper-3.4.6.tar.gz包。tar包可在相同环境下使用,不需要再次编译。6.测试验证测试单机部署Zookeeper。Step1:将上一步打包好的安装包复制到root目录下,并解压cp /root/zookeeper-release-3.4.6/build/zookeeper-3.4.6.tar.gz /roottar -zxvf zookeeper-3.4.6.tar.gzStep2:进入到Zookeeper目录下解压并创建data和logs目录cd /root/zookeeper-3.4.6mkdir datamkdir logsStep3:在zookeeper的conf目录下生成和修改zoo.cfg配置文件cd confcp zoo_sample.cfg zoo.cfgvim zoo.cfg#文件内容如下,标红的代表做过修改,其他的默认# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=../datadataLogDir=../logs# the port at which the clients will connectclientPort=2181Step4:修改环境变量增加zookeeper配置vim /root/.bash_profile#在文件最后增加zookeeper配置,其他保持不变# zookeeper envexport ZOOKEEPER_HOME=/root/zookeeper-3.4.6export PATH=$ZOOKEEPER_HOME/bin:$PATH Step5:启动和验证Zookeeper服务source /root/.bash_profilecd /root/zookeeper-3.4.6/bin#启动zookeeper服务./zkServer.sh start #验证zookeeper状态./zkServer.sh status#通过curl命令验证2181端口是否通curl 127.0.0.1:2181出现如上截图代表安装成功。 7.参考信息官方链接:https://zookeeper.apache.org/。安装zookeeper 3.4.6指导链接: https://www.cnblogs.com/zfzf1/p/6644122.html 8.FAQ无。
  • [中间件] 【鲲鹏翱翔】应用中间件02-Nginx移植安装指南
    1. 简介Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;Nginx可以作为一个HTTP服务器进行网站的发布处理,另外Nginx可以作为反向代理进行负载均衡的实现。2. 部署环境Packet NameVersion版本DetailCentOSCentOS   7.5 with Armarm通用计算增强型 | rc3.xlarge.4 | 4vCPUs | 14GBNginx1.6none3. 安装部署yum源安装Nginxyum install nginx查看nginx版本nginx -v编译安装Nginx安装常用的系统组件,安装相应的库:yum   install unzip gcc gcc-c++ openssl    openssl-devel glibc-static libstdc++-static lzip libffi-devel zlib   zlib-devel libtool安装PCREPCRE 作用是让 Nginx 支持 Rewrite 功能。从 http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz获取软件安装包: wget  http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz       解压pcre-8.35.tar.gztar   zxvf pcre-8.35.tar.gz进入解压路径,进行编译安装:cd   pcre-8.35./configure   –-prefix=/usr/local/pcre #/usr/local/pcre安装路径make &&   make install 查看pcre版本:[pcre-config --version安装nginx从http://nginx.org/download/获取软件安装包: wget  http://nginx.org/download/nginx-1.6.2.tar.gz       解压nginx-1.6.2.tar.gztar  -zxvf nginx-1.6.2.tar.gz进入解压路径,进行编译安装:cd   nginx-1.6.2./configure   --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module   --with-pcre=/usr/local/pcre-8.35 #pcre的源码所在目录make &&   make install 查看nginx版本:/usr/local/nginx/sbin/nginx -v 4.示例测试创建Nginx运行用户www/usr/sbin/groupadd www /usr/sbin/useradd -g www www配置nginx.conf ,将/usr/local/nginx/conf/nginx.conf替换为以下内容#  cat /usr/local/nginx/conf/nginx.conf---------------------------------------------------user www www;worker_processes 2; #设置值和CPU核心数一致error_log /usr/local/nginx/logs/nginx_error.log crit; #日志位置和日志级别#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 65535;events{  use epoll;  worker_connections 65535;}http{  include mime.types;  default_type application/octet-stream;  log_format main  '$remote_addr - $remote_user [$time_local] "$request" '               '$status $body_bytes_sent "$http_referer" '               '"$http_user_agent" $http_x_forwarded_for';  #charset gb2312;       server_names_hash_bucket_size 128;  client_header_buffer_size 32k;  large_client_header_buffers 4 32k;  client_max_body_size 8m;       sendfile on;  tcp_nopush on;  keepalive_timeout 60;  tcp_nodelay on;  fastcgi_connect_timeout 300;  fastcgi_send_timeout 300;  fastcgi_read_timeout 300;  fastcgi_buffer_size 64k;  fastcgi_buffers 4 64k;  fastcgi_busy_buffers_size 128k;  fastcgi_temp_file_write_size 128k;  gzip on;  gzip_min_length 1k;  gzip_buffers 4 16k;  gzip_http_version 1.0;  gzip_comp_level 2;  gzip_types text/plain application/x-javascript text/css application/xml;  gzip_vary on;   #limit_zone crawler $binary_remote_addr 10m; #下面是server虚拟主机的配置 server  {    listen 80;#监听端口    server_name localhost;#域名    index index.html index.htm index.php;    root /usr/local/nginx/html;#站点目录      location ~ .*\.(php|php5)?$    {      #fastcgi_pass unix:/tmp/php-cgi.sock;      fastcgi_pass 127.0.0.1:9000;      fastcgi_index index.php;      include fastcgi.conf;    }、    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$    {      expires 30d;  # access_log off;    }    location ~ .*\.(js|css)?$    {      expires 15d;   # access_log off;    }    access_log off;  }}检查配置文件是否正确/usr/local/nginx/sbin/nginx  -t 启动nginx服务/usr/local/nginx/sbin/nginx访问站点http://EIP/可以看到网页                                              5.参考信息     nginx官网:https://nginx.org/     github地址:https://github.com/nginx/nginx 6.FAQ     暂无
总条数:68 到第
上滑加载中