
能力说明:
了解变量作用域、Java类的结构,能够创建带main方法可执行的java应用,从命令行运行java程序;能够使用Java基本数据类型、运算符和控制结构、数组、循环结构书写和运行简单的Java程序。
暂时未有相关云产品技术能力~
阿里云技能认证
详细说明今天就我了给大家介绍一下域名是怎么注册和使用的。 域名是由字符和点组成的,常见taobao.com就是一个域名。购买域名主要有以下作用:第一,在制作网站时,用户会去选购域名作为网址使用;第二,作为邮箱的后缀来使用;第三,有些用户购买域名进行投资;还有一种情况,就是企业出于一种品牌保护的目的,注册与企业品牌相关的域名,其中最常用的是网站和邮箱。 注册域名 在阿里云网站,我们找到域名注册https://wanwang.aliyun.com,输入自己想要的域名,如果这个域名没有被其他人注册,那么就可以加入清单,点击立即结算。 然后跳转到结算页面,确认持有人信息,付款,就购买注册成功了。 注意,域名需要通过实名认证才能正常解析和使用。购买成功后,可以在域名管理后台,进行实名认证。 大家可以在控制台确定一下自己的域名有没有完成实名认证,没有认证的朋友要抓紧时间啦。 域名解析 使用域名会经过域名解析,所谓域名的解析,是通过DNS服务器的作用,把这个域名的指向目标服务器的IP地址。 举例来看,在制作一个网站的时候,网站页面制作好了以后,首先要把它放在一个主机或者是一台服务器上面,主机和服务器一般有自己对应的IP地址。我们不可能让每个用户都记住我们的IP地址(数字也很难记),就需要域名解析来通过DNS服务器,将域名指向对应的IP地址。 当我们访问域名时,DNS服务器就会发挥作用,让域名去打开目标IP地址上的内容,最终就打开了对应服务器上的网站。 需要注意的是,如果您的服务器在国内,域名就需要在备案管理平台进行备案。具体备案操作,见https://beian.aliyun.com。 购买地址:阿里云大促活动 云服务器ECS地址:阿里云·云小站
Nacos是阿里开源的一款服务治理方案的中间件,提供了服务发现和服务健康监测、动态配置服务、动态 DNS 服务、服务及其元数据管理等特性功能。 Nacos最新版本地址 https://github.com/alibaba/nacos/releases 下载后解压的目录如下 单机部署模式 1.进入到bin目录中 startup.sh -m standalone 2.访问http://ip:8848/nacos 如下,默认登录密码nacos/nacos 登录后管理页面如下 数据库模式 1.修改conf/application.propertis增加配置内容 spring.datasource.platform=mysql db.num=1db.url.0=jdbc:mysql://ip:3306/nacos_config?useUnicode=true&characterEncoding=utf-8db.user=db.password= 2.创建数据库nacos_config,执行/config/nacos-mysql.sql 数据库脚本 2.进入到bin目录中 startup.sh -m standalone 3.访问效果如同上 集群模式(在数据库模式下增加如下操作) 1.复制两个nacos 命名为nacos1 nacos2 2.修改application.properties 里面的启动端口,分别为8847,8848,8849 3.分别在config目录下创建cluster.config 内容如下 10.136.15.122:884810.136.15.122:884910.136.15.122:8847 4.启动 ./startup.sh 5.查看集群情况 云服务器ECS地址:阿里云·云小站
阿里云物联网平台为设备提供安全可靠的连接通信能力,向下连接海量设备,支撑设备数据采集上云;向上提供云端API,指令数据通过API调用下发至设备端,实现远程控制。 物联网平台也提供了其他增值能力,如设备管理、规则引擎、数据分析、边缘计算等,为各类IoT场景和行业开发者赋能。 物联网平台提供以下主要能力。 设备接入 物联网平台支持海量设备连接上云,设备与云端通过IoT Hub进行稳定可靠地双向通信。 提供设备端SDK、驱动、软件包等帮助不同设备、网关轻松接入阿里云。 提供2G/ 3G /4G、NB-IoT、LoRa、WiFi等不同网络设备接入方案,解决企业异构网络设备接入管理痛点。 提供MQTT、CoAP、HTTP/S等多种协议的设备端SDK,既满足长连接的实时性需求,也满足短连接的低功耗需求。 开源多种平台设备端代码,提供跨平台移植指导,赋能企业基于多种平台做设备接入。 设备管理 提供完整的设备生命周期管理功能,支持设备注册、功能定义、数据解析、在线调试、远程配置、固件升级、远程维护、实时监控、分组管理、设备删除等功能。 提供设备物模型,简化应用开发。 提供设备上下线变更通知服务,方便实时获取设备状态。 提供数据存储能力,方便用户海量设备数据的存储及实时访问。 支持OTA升级,赋能设备远程升级。 提供设备影子缓存机制,将设备与应用解耦,解决不稳定无线网络下的通信不可靠痛点。 安全能力 阿里云物联网平台提供多重防护有效保障设备云端安全。 身份认证 提供芯片级安全存储方案(ID²)及设备密钥安全管理机制,防止设备密钥被破解。安全级别很高。 提供一机一密的设备认证机制,降低设备被攻破的安全风险,适合有能力批量预分配ID密钥烧入到每个芯片的设备。安全级别高。 提供一型一密的设备预烧,认证时动态获取设备证书(包括ProductKey、DeviceName和DeviceSecret),适合批量生产时无法将设备证书烧入每个设备的情况。安全级别普通。 通信安全 支持TLS(MQTTHTTP)、DTLS(CoAP)数据传输通道,保证数据的机密性和完整性,适用于硬件资源充足、对功耗不是很敏感的设备。安全级别高。 支持TCP(MQTT)、UDP(CoAP)上自定义数据对称加密通道,适用于资源受限、功耗敏感的设备。安全级别普通。 支持设备权限管理机制,保障设备与云端安全通信。 支持设备级别的通信资源(Topic等)隔离,防止设备越权等问题。 规则引擎 规则引擎提供数据流转和场景联动功能。配置简单规则,即可将设备数据无缝流转至其他设备,实现设备联动;或者流转至其他云产品,获得存储、计算等更多服务。使用规则引擎,您可以: 配置规则实现设备与设备之间的通信,快速实现M2M场景。 将数据转发到消息服务(Message Service)和消息队列(RocketMQ)中,保障应用消费设备数据的稳定可靠性。 将数据转发到表格存储(Table Store),提供设备数据采集 + 结构化存储的联合方案。 将数据转发到云数据库(RDS)中,提供设备数据采集+关系型数据库存储的联合方案。 将数据转发到DataHub中,提供设备数据采集 + 大数据计算的联合方案。 将数据转发到时序时空数据库(TSDB),提供设备数据采集 + 时序数据存储的联合方案。 将数据转发到函数计算中,提供设备数据采集 + 事件计算的联合方案。 数据分析 物联网平台提供包括空间数据可视化和流计算在内的数据分析服务。您可以: 导入二维地图或三维模型,绑定真实设备,实现设备数据在二维/三维空间上的可视化。 通过拖拽流计算组件,编排流计算任务,轻松完成数据分析与处理。 边缘计算 物联网平台提供边缘计算能力,支持在离设备最近的位置构建边缘计算节点处理设备数据。 在断网或弱网情况下,边缘计算可缓存设备数据,网络恢复后,自动将数据同步至云端。 提供多种业务逻辑的开发和运行框架,包括场景联动、函数计算和流式计算,各框架均支持云端开发、动态部署。 云服务器ECS地址:阿里云·云小站
概述 在使用阿里云官方IoT JAVA Device SDK连接云端测试的时候,发现日志总是会打印一些莫名其妙Topic消息的订阅和发布,但是用户并没有操作这些Topic,这是因为SDK底层默认做了很多系统Topic的订阅和发布设置,且无法关闭,导致很多测试不能满足预期的测试期望。如果不希望一些系统Topic的默认订阅和发布,建议可以使用开源MQTT Client进行Topic消息的订阅和发布。 操作步骤 1、创建产品和设备 参考:阿里云物联网平台Qucik Start 创建产品和设备部分。 2、pom.xml <dependencies> &lt;dependency&gt; &lt;groupId&gt;org.eclipse.paho&lt;/groupId&gt; &lt;artifactId&gt;org.eclipse.paho.client.mqttv3&lt;/artifactId&gt; &lt;version&gt;1.1.0&lt;/version&gt; &lt;/dependency&gt; &lt;dependency&gt; &lt;groupId&gt;com.google.guava&lt;/groupId&gt; &lt;artifactId&gt;guava&lt;/artifactId&gt; &lt;version&gt;23.0&lt;/version&gt; &lt;/dependency&gt; &lt;/dependencies&gt;</code></pre> 3、工具类 AliyunIoTSignUtil import javax.crypto.Mac;import javax.crypto.SecretKey;import javax.crypto.spec.SecretKeySpec;import java.util.Arrays;import java.util.Map; /** AliyunIoTSignUtil*/public class AliyunIoTSignUtil { public static String sign(Map&lt;String, String&gt; params, String deviceSecret, String signMethod) { //将参数Key按字典顺序排序 String[] sortedKeys &#61; params.keySet().toArray(new String[] {}); Arrays.sort(sortedKeys); //生成规范化请求字符串 StringBuilder canonicalizedQueryString &#61; new StringBuilder(); for (String key : sortedKeys) { if (&#34;sign&#34;.equalsIgnoreCase(key)) { continue; } canonicalizedQueryString.append(key).append(params.get(key)); } try { String key &#61; deviceSecret; return encryptHMAC(signMethod,canonicalizedQueryString.toString(), key); } catch (Exception e) { throw new RuntimeException(e); } } /** * HMACSHA1加密 * */ public static String encryptHMAC(String signMethod,String content, String key) throws Exception { SecretKey secretKey &#61; new SecretKeySpec(key.getBytes(&#34;utf-8&#34;), signMethod); Mac mac &#61; Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); byte[] data &#61; mac.doFinal(content.getBytes(&#34;utf-8&#34;)); return bytesToHexString(data); } public static final String bytesToHexString(byte[] bArray) { StringBuffer sb &#61; new StringBuffer(bArray.length); String sTemp; for (int i &#61; 0; i &lt; bArray.length; i&#43;&#43;) { sTemp &#61; Integer.toHexString(0xFF &amp; bArray[i]); if (sTemp.length() &lt; 2) { sb.append(0); } sb.append(sTemp.toUpperCase()); } return sb.toString(); } } 4、main方法 import com.alibaba.taro.AliyunIoTSignUtil;import org.eclipse.paho.client.mqttv3.*;import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;import java.util.HashMap;import java.util.Map; public class IoTDemoPubSubDemo { public static String productKey &#61; &#34;********&#34;; public static String deviceName &#61; &#34;OpenMQTTDevice&#34;; public static String deviceSecret &#61; &#34;********&#34;; public static String regionId &#61; &#34;cn-shanghai&#34;; // 物模型-属性上报topic private static String pubTopic &#61; &#34;/sys/&#34; &#43; productKey &#43; &#34;/&#34; &#43; deviceName &#43; &#34;/thing/event/property/post&#34;; // 自定义topic&#xff0c;在产品Topic列表位置定义 private static String subTopic &#61; &#34;/&#34;&#43;productKey &#43; &#34;/&#34; &#43; deviceName&#43;&#34;/user/newdatademo&#34;; private static MqttClient mqttClient; public static void main(String [] args){ initAliyunIoTClient(); // ScheduledExecutorService scheduledThreadPool = new ScheduledThreadPoolExecutor(1,// new ThreadFactoryBuilder().setNameFormat("thread-runner-%d").build());//// scheduledThreadPool.scheduleAtFixedRate(()->postDeviceProperties(), 10,10, TimeUnit.SECONDS); // 汇报属性 postDeviceProperties(); try { mqttClient.subscribe(subTopic); // 订阅Topic } catch (MqttException e) { System.out.println(&#34;error:&#34; &#43; e.getMessage()); e.printStackTrace(); } // 设置订阅监听 mqttClient.setCallback(new MqttCallback() { &#64;Override public void connectionLost(Throwable throwable) { System.out.println(&#34;connection Lost&#34;); } &#64;Override public void messageArrived(String s, MqttMessage mqttMessage) throws Exception { System.out.println(&#34;Sub message&#34;); System.out.println(&#34;Topic : &#34; &#43; s); System.out.println(new String(mqttMessage.getPayload())); //打印输出消息payLoad } &#64;Override public void deliveryComplete(IMqttDeliveryToken iMqttDeliveryToken) { } }); } /** * 初始化 Client 对象 */ private static void initAliyunIoTClient() { try { // 构造连接需要的参数 String clientId &#61; &#34;java&#34; &#43; System.currentTimeMillis(); Map&lt;String, String&gt; params &#61; new HashMap&lt;&gt;(16); params.put(&#34;productKey&#34;, productKey); params.put(&#34;deviceName&#34;, deviceName); params.put(&#34;clientId&#34;, clientId); String timestamp &#61; String.valueOf(System.currentTimeMillis()); params.put(&#34;timestamp&#34;, timestamp); // cn-shanghai String targetServer &#61; &#34;tcp://&#34; &#43; productKey &#43; &#34;.iot-as-mqtt.&#34;&#43;regionId&#43;&#34;.aliyuncs.com:1883&#34;; String mqttclientId &#61; clientId &#43; &#34;|securemode&#61;3,signmethod&#61;hmacsha1,timestamp&#61;&#34; &#43; timestamp &#43; &#34;|&#34;; String mqttUsername &#61; deviceName &#43; &#34;&amp;&#34; &#43; productKey; String mqttPassword &#61; AliyunIoTSignUtil.sign(params, deviceSecret, &#34;hmacsha1&#34;); connectMqtt(targetServer, mqttclientId, mqttUsername, mqttPassword); } catch (Exception e) { System.out.println(&#34;initAliyunIoTClient error &#34; &#43; e.getMessage()); } } public static void connectMqtt(String url, String clientId, String mqttUsername, String mqttPassword) throws Exception { MemoryPersistence persistence &#61; new MemoryPersistence(); mqttClient &#61; new MqttClient(url, clientId, persistence); MqttConnectOptions connOpts &#61; new MqttConnectOptions(); // MQTT 3.1.1 connOpts.setMqttVersion(4); connOpts.setAutomaticReconnect(false); connOpts.setCleanSession(true); connOpts.setUserName(mqttUsername); connOpts.setPassword(mqttPassword.toCharArray()); connOpts.setKeepAliveInterval(60); mqttClient.connect(connOpts); } /** * 汇报属性 */ private static void postDeviceProperties() { try { //上报数据 //高级版 物模型-属性上报payload System.out.println(&#34;上报属性值&#34;); String payloadJson &#61; &#34;{\&#34;params\&#34;:{\&#34;Status\&#34;:0,\&#34;Data\&#34;:\&#34;15\&#34;}}&#34;; MqttMessage message &#61; new MqttMessage(payloadJson.getBytes(&#34;utf-8&#34;)); message.setQos(1); mqttClient.publish(pubTopic, message); } catch (Exception e) { System.out.println(e.getMessage()); } } } 5、运行测试情况 参考链接 基于开源MQTT自主接入阿里云IoT平台(Java)MQTT-TCP连接通信 云服务器ECS地址:阿里云·云小站
目前阿里云服务器操作系统有两种:windows和Linux,不同的操作系统的功能也是不同的,应该如何选择阿里云服务器操作系统,如果选错了怎么更换呢? 如何选择服务器操作系统? Windows操作系统 Windows系统适合运行Windows下开发的程序,如.NET等,Windows支持SQL Server等数据库(需自行安装),另外,512内存不支持选择Windows系统,1G以上内存才能很好支持该系统。以下阿里云Windows镜像仅供参考,精准信息请参考官方文档:公共镜像发布记录 操作系统类型 操作系统版本 Windows Server 2019 · Windows Server 2019 数据中心版 64位中文版 · Windows Server 2019 数据中心版 64位英文版 Windows Server 2016 · Windows Server 2016 数据中心版 64位中文版 · Windows Server 2016 数据中心版 64位英文版 Windows Server 2012 · Windows Server 2012 R2 数据中心版 64位中文版 · Windows Server 2012 R2 数据中心版 64位英文版 Windows Server Version 1909 · Windows Server Version 1909 数据中心版 · Windows Server Version 1909 数据英文版 · Version 1909 数据中心版 64位中文版(不含UI) · Version 1909 数据中心版 64位英文版(不含UI) Windows Server Version 1903 · Windows Server Version 1903 数据中心版 · Windows Server Version 1903 数据英文版 Windows Server 2008 · Windows Server 2008 标准版SP2 32位中文版 · Windows Server 2008 R2企业版 64位中文版 · Windows Server 2008 R2企业版 64位英文版 Windows Server Version 1809 · Windows Server Version 1809数据中心版 64位中文版 · Windows Server Version 1809数据中心版 64位英文版 Windows操作系统相对于Linux而言,比较占用系统资源,如果云服务器配置较低可以选择Version 1909 数据中心版 64位中文版(不含UI),不含UI版本的镜像保留了最新的Windows server性能,去除了UI减少了资源占用。 Linux操作系统 Linux可选操作系统有CentOS、Ubuntu、RedHat、Debian、Aliyun Linux、SUSE Linux、OpenSUSE、CoreOS、FreeBSD等。一般来讲Web应用都选择CentOS。 操作系统类型 操作系统版本 CentOS · CentOS 7.6 64位 · CentOS 7.5 64位 · CentOS 7.4 64位 · CentOS 7.3 64位 · CentOS 7.2 64位 · CentOS 6.10 64位 · CentOS 6.9 64位 · CentOS 6.8 32位 CoreOS · CoreOS 2023.4.0 64位 · CoreOS 1745.7.0 64位 Debian · Debian 9.8 64位 · Debian 9.6 64位 · Debian 8.11 64位 · Debian 8.9 64位 FreeBSD FreeBSD 11.1 64位 OpenSUSE OpenSUSE 42.3 64位 Red Hat · Red Hat Enterprise Linux 7.5 64位 · Red Hat Enterprise Linux 7.4 64位 · Red Hat Enterprise Linux 6.9 64位 SUSE Linux · SUSE Linux Enterprise Server 12 SP2 64位 · SUSE Linux Enterprise Server 11 SP4 64位 Ubuntu · Ubuntu 18.04 64位 · Ubuntu 16.04 64位 · Ubuntu 16.04 32位 · Ubuntu 14.04 64位 · Ubuntu 14.04 32位 Aliyun Linux · Aliyun Linux 17.1 64位 · Aliyun Linux 2.1903 64位 那么如何选择云服务器操作系统呢?一般取决于用户实际的应用场景编程语言,以网站开发为例: ASP、.NET、HTML、数据库ACCESS、SQL Server建议选择Windows;PHP、PERL、CGI、数据库MySQL、SQLite建议选择Linux。 操作系统更换规则 镜像操作系统是可以更换的,后续可以通过ECS控制台的更换系统盘功能来更换操作系统,更换操作系统是免费的。注意:如果用户购买的是国内大陆地域(华北1、华北2、华北3、华北5、华东1、华东2及华南1)的云服务器,后续是可以随意更换操作系统的;如果是中国香港、新加坡或者其他海外地域,更换操作系统是不可以跨Windows或者Linux来更换的。1.更换操作系统 更换系统之前请先停止云服务器,云服务器更换操作系统会直接重置系统盘【IP不变】,系统盘数据将会丢失! 1.1.更换操作系统会使云服务器的系统盘更换为新的镜像,原有系统盘的数据都会丢失。 1.2.云服务器数据盘的数据不会受到影响。 1.3.建议您将系统盘的个人数据备份到数据盘中,或采用其他方式进行备份。 1.4.因您没有备份系统盘相关个人数据而造成的数据丢失,阿里云不承担责任。 1.5.内存为512M云服务器不支持更换Windows操作系统。 2.CPU/内存与操作系统的选择 2.1)如需选择/变更4G以上内存请您选择64位操作系统(32位操作系统存在寻址限制)。 2.2)如您选择32位操作系统,4G以上内存页面暂不展示,只有云服务器更换为64位操作系统才可展示。 2.3)Windows32位操作系统支持最高CPU为4核。 2.4)配置:[CPU:1核;内存:512M]的云服务器支持选择/更换Windows操作系统。 Windows篇 阿里云提供了6种window系统,涵盖了Server2003sp2以及Server2008R2这两大类操作系统。 其中又分为了32位和64位 (1)如何选择32位还是64位 32位系统相比64位系统,最主要的限制体现在内存的大小上。因为32位本身的限制,其最大只可支持到4GB内存,如果您的网站要使用高于4GB的内存或者以后有扩充内存寻到4GB以上的打算,请使用64位操作系统。 (2)选择2003还是选择2008 对于windows来说,我个人建议是选择版本越高的越好。相对来说新版本漏洞相对来说更少,而且IIS7.5相对于IIS6提供了更多的功能以及更方便的控制台。但是考虑到大家的机器配置不同,在此给出一下几种选择: A:配置低于双核2GB内存:选择server2003不装数据库配置双核4GB:server2003mssql或者server2008R2不带数据库 B:配置高于双核8GB:serever2008R2mssql建议如果大家要在云服务器上跑数据库,尽量选择大内存配置,或者降低配置去选用RDS (3)中英文、安全加固版如何选择 这个就依据大家各自的喜好来了,在此不多说了至于Windows服务器配置教程,因为网上教程很多而且相对于Linux来说Windows配置难度更低,所以Windows的配置教程会比较晚的放出。 Linux篇 (1)这些linux大类有什么区别 Debian:用的deb包,使用APT包管理系统。 同时Debian提供了大多数软件比较新的版本,并且提供了更多的软件包(相对于原版RedHat)。Debian的优点在于更新迅速,软件包完善(Ubuntu尤其),操作便利。缺点是部分时候稳定性欠佳,跟进最新软件有可能存在Bug。 Centos:用rpm包,使用yum包管理系统。 相对于Debian来说,Centost的一大特点就是慢。大部分软件停留在稳定版本,而且相距最新版版本也差较多。而且某些新版软件的一些新特性支持也比较慢,比如php-fpm。 因为Centos是面向企业用户提供的操作系统,所以在稳定性上十分突出,一般在新功能或稳定性的选择上更倾向于后者。只有当某个功能完全确定稳定了,才会加入到系统里。优点是系统稳定,技术文档完善,如果付费的话能得到企业级别的技术支持。缺点是软件包比较老旧,而且一些较新功能会欠缺。 云服务器ECS地址:阿里云·云小站
2020年10月