首页 文章 精选 留言 我的

精选列表

搜索[阿里云],共10000篇文章
优秀的个人博客,低调大师

搭建手机APP远程监控物联网云平台

目前常见的水质在线监测仪器生产商有:美国哈希HACH 德国E+H 以色列Blue I 德国科泽kuntze 加拿大AVVOR、德国阿尔道斯ALLDOS、上海博取、河北科瑞达等。采集的水质参数包括温度、PH、电导率、浊度、余氯等。 数据统计:可在线实时24小时连续的采集和记录监测点位的各种水质状况,以数字、图形和图像等多种方式进行实时显示和记录存储监测信息,监测点位可多达上百个点。 故障报警:当出现被监控点位数据异常时可自动发出报警信号,报警方式包括:现场多媒体声光报警、网络客户端报警、手机短信息报警等。 Web监控:管理人员打开电脑,登陆平台即可看到所属的设备运行状况,整个过程无需安装软件。一切就像网上冲浪那样方便。 APP监控:将设备放到口袋里,无论身处何地,打开手机即可查看和控制水质监测设备。 设备发布:环保局或者小区物业门可以通过EMCP平台将水质监测设备进行发布,生成二维码张贴在公共区域、官方网站或者宣传海报上,民众可通过手机扫描得知水质实时情况。 冗余设计:系统设计时预留有接口,可随时增加硬件设备,系统只要做少量的改动即可,可以在很短的时间内完成。

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

云计算之openstack-newton版搭建(六)

nova计算节点服务安装 安装配置计算节点 安装软件包 #yuminstallopenstack-nova-compute-y 2.编辑/etc/nova/nova.conf [root@compute1~]#cd/etc/nova/ [root@compute1nova]#cpnova.confnova.conf.bak [root@compute1nova]#egrep-v"^#|^$"nova.conf.bak>nova.conf [root@compute1nova]#vimnova.conf 添加如下内容 [DEFAULT] ... enabled_apis=osapi_compute,metadata transport_url=rabbit://openstack:RABBIT_PASS@controller auth_strategy=keystone my_ip=192.168.23.61 use_neutron=True firewall_driver=nova.virt.firewall.NoopFirewallDriver [keystone_authtoken] ... auth_uri=http://controller:5000 auth_url=http://controller:35357 memcached_servers=controller:11211 auth_type=password project_domain_name=Default user_domain_name=Default project_name=service username=nova password=123456 [vnc] ... enabled=True vncserver_listen=0.0.0.0 vncserver_proxyclient_address=$my_ip novncproxy_base_url=http://controller:6080/vnc_auto.html [glance] ... api_servers=http://controller:9292 [oslo_concurrency] ... lock_path=/var/lib/nova/tmp 3.确定计算节点是否支持虚拟化。 #egrep-c'(vmx|svm)'/proc/cpuinfo 如果返回值大于1表示支持虚拟化 如果不支持请更改/etc/nova/nova.conf [libvirt] ... virt_type=qemu 4.启动服务 #systemctlenablelibvirtd.serviceopenstack-nova-compute.service #systemctlstartlibvirtd.serviceopenstack-nova-compute.service 如果nova-compute服务无法启动,请检查/var/log/nova/nova-compute.log。控制器上的错误消息AMQP服务器:5672无法访问可能表示控制器节点上的防火墙阻止访问端口5672,关闭防火墙和selinux即可。 5.在控制端进行检查 #.admin-openrc #openstackcomputeservicelist [root@controller~]#openstackcomputeservicelist +----+------------------+----------------------+----------+---------+-------+----------------------------+ |ID|Binary|Host|Zone|Status|State|UpdatedAt| +----+------------------+----------------------+----------+---------+-------+----------------------------+ |1|nova-conductor|controller.novalocal|internal|enabled|up|2017-01-13T01:48:04.000000| |2|nova-consoleauth|controller.novalocal|internal|enabled|up|2017-01-13T01:48:07.000000| |3|nova-scheduler|controller.novalocal|internal|enabled|up|2017-01-13T01:48:04.000000| |10|nova-compute|compute1.novalocal|nova|enabled|up|2017-01-13T01:48:09.000000| +----+------------------+----------------------+----------+---------+-------+----------------------------+ [root@controller~]#novaservice-list +----+------------------+----------------------+----------+---------+-------+----------------------------+-----------------+ |Id|Binary|Host|Zone|Status|State|Updated_at|DisabledReason| +----+------------------+----------------------+----------+---------+-------+----------------------------+-----------------+ |1|nova-conductor|controller.novalocal|internal|enabled|up|2017-01-13T01:48:24.000000|-| |2|nova-consoleauth|controller.novalocal|internal|enabled|up|2017-01-13T01:48:17.000000|-| |3|nova-scheduler|controller.novalocal|internal|enabled|up|2017-01-13T01:48:24.000000|-| |10|nova-compute|compute1.novalocal|nova|enabled|up|2017-01-13T01:48:19.000000|-| +----+------------------+----------------------+----------+---------+-------+----------------------------+-----------------+ 表示nova服务安装完成

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

《Docker——容器与容器云(第2版)》--书评

容器作为不断解耦传统IT架构的继承者(也不能说Hypervisor没落),未来每个IT人员都可以成为一个微服务架构的设计者,参与者,维护者,而不在单独的从事于某个零件的工作。凡是解耦或者革命传统的技术都应该加以推广和谨慎,所以希望广开言路,而不应该把容器仅限于Docker,自动化编排仅限于Kubernetes(SWARM/Mesos),技术不分高低,也不应该加入某些潜在的利益和工具,我很喜欢容器,希望容器能够健康稳步发展,不要想OpenStack一样,愿Dockers能像海豚一样非常干净,非常优雅。

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

移动应用图片的福音--七牛云存储

本篇来介绍移动应用图片存储的第三方,官方网址:http://www.qiniu.com/ 首先,在七牛上要注册开发者账号,需要认证身份证信息。认证完之后,我们来开始进行安卓端的开发。 一、准备信息 进行图片的上传与下载,我们需要准备几个信息,首先是空间名,然后是域名,再者是密钥对。如下图: 二、安卓端图片上传 首先我们需要导入JAR包,网址:http://developer.qiniu.com/docs/v6/sdk/android-sdk.html 现在来编写上传相关的程序: private volatile boolean isCancelled = false;// 取消标志 static String AccessKey =七牛上的公钥; static String SecretKey =七牛上的私钥; UploadManager uploadManager; /** *uploadManager有两种初始化方法,一种是默认配置,一种的自动逸配置 */ // 默认配置 uploadManager=new UploadManager(); //自定义配置 Configuration config= new Configuration.Builder().chunkSize(256 * 1024) // 分片上传时,每片的大小。 // 默认 // 256K .putThreshhold(512 * 1024) // 启用分片上传阀值。默认 512K .connectTimeout(10) // 链接超时。默认 10秒 .responseTimeout(60) // 服务器响应超时。默认 60秒 // .recorder(recorder) // recorder 分片上传时,已上传片记录器。默认 null // .recorder(recorder, keyGen) // keyGen // 分片上传时,生成标识符,用于片记录器区分是那个文件的上传记录 .build(); // 重用 uploadManager。一般地,只需要创建一个 uploadManager 对象 uploadManager = new UploadManager(config); 初始化配置搞定了,下面来进行上传操作: String _uploadToken = getUploadToken(scope); uploadManager.put(SAVE_FILE_DIRECTORY, // 本地上传路径、文件、字符串 key, // 网站上的名字 _uploadToken, // 验证信息 new UpCompletionHandler() { @Override public void complete(String key, ResponseInfo info, JSONObject response) { Log.e("qiniu", info.toString()); Log.i("是否成功", String.valueOf(info.isOK())); } }, new UploadOptions(null, // 自定义变量,key必须以 x: 开始。 "webp", // 指定文件的mimeType。 false, // 是否验证上传文件。 new UpProgressHandler() { // 上传进度回调。 public void progress(String key, double percent) { Log.i("qiniu", key + ": " + percent); } }, new UpCancellationSignal() { // 取消上传,当isCancelled()返回true时,不再执行更多上传。 public boolean isCancelled() { return isCancelled; } }) ); 在上传的操作中唯一需要我们头疼的就是_uploadToken,下面来介绍如何生成一个_uploadToken令牌信息: public String getUploadToken(String scope) { // 构造上传策略 JSONObject json = new JSONObject(); long dataline = System.currentTimeMillis() / 1000 + 3600; String uploadToken = null; try { json.put("deadline", dataline);// 有效时间为一个小时 json.put("scope", scope);// 上传空间 String encodedPutPolicy = UrlSafeBase64.encodeToString(json.toString().getBytes()); byte[] sign = HmacSHA1Encrypt(encodedPutPolicy, SecretKey); String encodedSign = UrlSafeBase64.encodeToString(sign); uploadToken = AccessKey + ':' + encodedSign + ':' + encodedPutPolicy;// 登录信息token=公钥:加密的json信息:原始json信息 } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } return uploadToken; } /////////////// ************************************///////////////////////// /** * 使用 HMAC-SHA1 签名方法对对encryptText进行签名 * * @param encryptText * 被签名的字符串 * @param encryptKey * 密钥 * @return * @throws Exception */ private static final String MAC_NAME = "HmacSHA1"; private static final String ENCODING = "UTF-8"; private byte[] HmacSHA1Encrypt(String encryptText, String encryptKey) throws Exception { byte[] data = encryptKey.getBytes(ENCODING); // 根据给定的字节数组构造一个密钥,第二参数指定一个密钥算法的名称 SecretKey secretKey = new SecretKeySpec(data, MAC_NAME); // 生成一个指定 Mac 算法 的 Mac 对象 Mac mac = Mac.getInstance(MAC_NAME); // 用给定密钥初始化 Mac 对象 mac.init(secretKey); byte[] text = encryptText.getBytes(ENCODING); // 完成 Mac 操作 return mac.doFinal(text); } 好了现在我们就可以成功上传了。 三、编写其他操作 1、取消操作 /** * 点击取消按钮,让 UpCancellationSignal#isCancelled() 方法返回 true ,以停止上传 */ public void cancell() { isCancelled = true; } 2、删除操作 /** * 删除指定空间、名称的资源 * * @param bucket 空间名 * @param fileName 文件名 * @return */ public boolean deleteFile(String bucket, String fileName) { try { String entryUrl = bucket + ":" + fileName; String encodedEntryURI = UrlSafeBase64.encodeToString(entryUrl.getBytes()); String host = "http://rs.qiniu.com"; String path = "/delete/" + encodedEntryURI; String url = host + path; byte[] sign = HmacSHA1Encrypt(path + "\n", SecretKey); String encodedSign = UrlSafeBase64.encodeToString(sign); String authorization = AccessKey + ':' + encodedSign; HttpClient httpClient = new DefaultHttpClient(); HttpPost mothod = new HttpPost(url); mothod.setHeader("Content-Type", "application/x-www-form-urlencoded"); mothod.setHeader("Authorization", "QBox " + authorization); // 连接超时时间 httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 20000); // 读取超时时间 httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 20000); HttpResponse response = httpClient.execute(mothod); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if (statusCode == HttpStatus.SC_OK) { Log.e("删除结果", "successful"); return true; } } catch (Exception e) { e.printStackTrace(); } Log.e("删除结果", "false"); return false; } 好了,暂时就先到这里,虽然进行了一些封装,但是对自己的封装不很满意所以暂时不发了,以后封装完善了再发吧,这些已经足够新手理解了。下篇介绍获取网络图片并显示。主要用到目前最好的图片加载框架ImageLoad。 遗失的拂晓

资源下载

更多资源
腾讯云软件源

腾讯云软件源

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

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等操作系统。

用户登录
用户注册