-
网络编程Android应用作为一个客户端程序绝大部分都是需要进行网络请求和访问的,而http通信是一种比较常见并常用的通信方式。在Android中原生http网络编程中有两种实现方式,一种是使用HttpURLConnection,另一种就是使用HttpClient。现在使用更广泛的是HttpURLConnection这两种实现方式的大体过程都是:Android客户端向服务器发出请求。服务端接收请求并响应。服务端返回数据给客户端。在Http通信中有POST和GET两种方式,其不同之处在于GET方式可以获得静态页面,同时可以将请求参数放在URL字符串后面,传递给服务器;而POST方式的参数则是放在Http请求中的。因此,无论你是用哪一种HTTP实现方式都需要明确所使用的请求方式。ttpURLConnection根据使用目的不同,在具体使用时会稍有区别。从Internet获取网页,即向URL发送请求,将网页以流的形式读回本地。从Internet获取文件,即利用HttpURLConnection对象从网络中获取文件数据。向Internet发送请求参数,即向服务器传递参数,即向服务器传递参数向Internet传送XML数据。(使用HTTP的的方式传输文件,一般文件大小在5M一下,HTTP通信方式不适合传输大文件,对大文件的传输最好使用Socket通信方式,以保证程序的稳定性。)
-
查看命令Display device查看设备插的板子型号Dis version查看款型以及版本,以及启动时间Dis c c ospf查看ospf配置Dis c c bgp 查看bgp配置(其他特性也可以这样,ftp ssh等)Dis c c c 查看刚下发的配置(+号为新增,-号为删除)(控制器部署完业务后,可以到交换机上查看下发了啥配置)dis cu | section in port 查看包含port的所有命令块dis cu | in port 查看包含port的所有命令行#dis arp查看arpdis mac查看mac地址dis ip routing-table 查看_public_的路由表dis ip routing-table vpn-instance mgmt 查看mgmt的路由表dis ospf peer查看ospf邻居dis ospf routing查看ospf路由表dis ospf lsdb查看lsdb库dis bgp peer查看bgp邻居dis bgp routing-table查看bgp路由表#Dis ip int bri查看接口ip信息Dis ip int bri | in up 查看up的接口ip信息Dis int bri 查看所有接口Dis int bri | in up 查看up的接口信息#dis system forwarding resource service all查看资源使用情况(fabric的资源统计就是通过这个命令查询的)#display configuration recover-result 查看cfg重启后哪些命令没成功(验证ztp功能可能会用到)#dis lldp nei bri 查看lldp信息dis lldp nei inter 10ge 1/0/1 查看10ge 1/0/1接口的lldp详细信息#dis history-command all-users 查看哪个ip改了什么配置(多人共用的时候,就可以看出是哪个用户改了配置)#m-lag常用的查看命令dis dfs-group 1 m-lagdis dfs-group 1 node 1 m-lag briefdis m-lag troubleshootingDis eth-trunk 0 verbose 查看eth-trunk详细信息,selected就是链路被选中,lacp协商成功 回滚配置rollback configuration ??回滚配置 换版本,换补丁ftpftp 192.191.255.1 -vpn MGMT 78 vpn MGMT跟192.191.255.1地址通的话,就带vpn,端口号非21的话,带上端口号binary 二进制传包put flash:/logfile/122.cap 122.cap 下载到本地get a b 上传到设备 若显示存储不够Cd flash:/Dir 默认flash:/ dir slave#flash:/ 查看备用主控板剩余空间删除文件Delete ** 如果撤销 undelete **Reset recycle-bin 删除回收站所有文件 执行版本大包,如果有备主控板(堆叠),需要上传至所有主控板,然后执行:Startup system-software cc包 all 主备/ slave-board 备/ slot然后save reboot 加载补丁包Patch load ** all runDis patch information删除补丁Patch delete alldisp path-information verbose确认补丁是否成功加载 加载licenselicense active file-namedisplay license 查看状态 normal为加载成功 dis startup 查看启动项中是否为正确的配置文件、大包startup saved-configuration name?修改启动项中的配置文件reboot配置登陆user-interface vty 0 4 authentication-mode none //telnet上去不需要密码 或者authentication-mode password set authentication password cipher huawei123 //telnet上去需要密码huawei123 user privilege level 3 idle-timeout 0 0配置sshaaa local-user apitest password irreversible-cipher Huawei12#$ local-user apitest service-type ssh local-user apitest level 3#ssh user apitestssh user apitest authentication-type allssh user apitest service-type all#user-interface vty 5 10authentication-mode aaa //可以0-4是telnet,5-10是ssh,user privilege level 3idle-timeout 0 0 SNMP配置#snmp-agent# snmp-agent sys-info version all#snmp-agent mib-view included nt isosnmp-agent mib-view included rd isosnmp-agent mib-view included wt iso#snmp-agent group v3 gp authentication read-view rd write-view wt notify-view nt#snmp-agent usm-user v3 usersnmp //usersnmp-agent usm-user v3 usersnmp group gpsnmp-agent usm-user v3 usersnmp authentication-mode md5Huawei12#$Huawei12#$snmp-agent usm-user v3 usersnmp privacy-mode aes128Huawei12#$Huawei12#$#snmp-agent trap source 10GE4/0/0 //上报告警的接口,如带内管理互联口,管理口meth 0/0/0#snmp-agent trap enablenetconf配置#aaa local-user userconf password irreversible-cipher Huawei12#$ local-user userconf service-type ssh local-user userconf level 3#stelnet server enablesnetconf server enablessh user userconfssh user userconf authentication-type allssh user userconf service-type all 这里snetconf就够了ssh authorization-type default aaa数据一致性对账需要配置ssh client first-time enablesftp client-source -a 10.2.1.1话题1:关键词在本主题帖回帖盖楼,帖子内容:“华为数通开发社区”即可。回帖示例:华为疏通开发者社区话题2:加入社区微信扫描下方二维码或直接访问数通开发者社区网站,通过华为云注册后访问到社区首页,截图+华为云账号回帖即可。华为数通开发者社区二维码 https://devzone.huawei.com/cn/network/portal.html回帖示例:华为云账号XXXX+社区首页截图注意事项1、 以上2个话题均可参加,且盖楼评价相互独立。2、 每种话题发帖数不超过5条,参与度越高获奖机会越大。但若单个话题回帖超过5个,视为取消活动资格。3、 为了让更多的用户参与评奖,若活动中出现参与了2种及以上话题且均获奖的用户,原则上只发放活动中价值最高的奖品。4、 该活动将在博客和论坛上同时进行,同一类奖品不可重复领取。5、 中奖后博主或版主会跟你回帖交流,请反馈收件地址,奖品会在活动结束后7个工作日统一邮寄发出。6、 活动时间:2020.12.15-2020.1.157、 本次活动解释权归华为数通开发者社区所有。
-
Centos7默认的openssl版本过低,导致无论你怎么配置ssl网站都会一堆漏洞,评价F甚至更低。配置完后如图:测试ssl安全性地址:https://myssl.com1. 安装依赖环境:yum install pcre-devel zlib unzip git2. 查看当前 OpenSSL 版本:openssl version得到结果:OpenSSL 1.0.2k-fips 26 Jan 20173. 下载 OpenSSL 的最新版:去官网 https://www.openssl.org/source/ 选择最新的就可以。我这边现在是 1.1.1iwget https://www.openssl.org/source/openssl-1.1.1i.tar.gztar -zxvf openssl-1.1.1i.tar.gz4. 进入目录编译安装:cd openssl-1.1.1i./config --prefix=/usr --openssldir=/etc/ssl --libdir=lib shared zlib-dynamicmake dependmake && make install如果不能make就说明没有安装gccyum install gcc gcc-c++ autoconf automake如果提示:zlib.h: No such file or directory5. 拷贝 so 库到指定位置cp /usr/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1cp /usr/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.16. 查看 OpenSSL 最新版本openssl versionOpenSSL 1.1.1i 21 Apr 2020为什么按上面操作后不是A+?因为没有开启HSTS功能add_header Strict-Transport-Security "max-age=31536000";这样添加再检测,就是A+了如果我的还提示PCI DSS不合规呢?那您就看看您使用的cdn是否关闭了tls1.0
-
1、服务端开启http2后,流量可以正常访问2、心跳检测会失败,失败5次后会重启?sslEnabled=true&protocol=http2已启用http2和tls场景:希望内部服务间通信使用http2+tls
-
在Java中可以使用HttpServer类来实现Http服务器,该类位于com.sun.net包下(rt.jar)。实现代码如下:主程序类12345678910111213141516171819202122package bg.httpserver; import com.sun.net.httpserver.HttpServer;import java.io.IOException;import java.net.InetSocketAddress;import java.util.concurrent.Executors; public class HttpServerStarter { public static void main(String[] args) throws IOException { //创建一个HttpServer实例,并绑定到指定的IP地址和端口号 HttpServer httpServer = HttpServer.create(new InetSocketAddress(8080), 0); //创建一个HttpContext,将路径为/myserver请求映射到MyHttpHandler处理器 httpServer.createContext("/myserver", new MyHttpHandler()); //设置服务器的线程池对象 httpServer.setExecutor(Executors.newFixedThreadPool(10)); //启动服务器 httpServer.start(); }}HttpServer:HttpServer主要是通过带参的create方法来创建,第一个参数InetSocketAddress表示绑定的ip地址和端口号。第二个参数为int类型,表示允许排队的最大TCP连接数,如果该值小于或等于零,则使用系统默认值。createContext:可以调用多次,表示将指定的url路径绑定到指定的HttpHandler处理器对象上,服务器接收到的所有路径请求都将通过调用给定的处理程序对象来处理。setExecutor:设置服务器的线程池对象,不设置或者设为null则表示使用start方法创建的线程。HttpHandler实现123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596package bg.httpserver; import com.sun.net.httpserver.Headers;import com.sun.net.httpserver.HttpExchange;import com.sun.net.httpserver.HttpHandler;import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.OutputStream;import java.util.List;import java.util.Map;import java.util.stream.Collectors; /** * 处理/myserver路径请求的处理器类 */public class MyHttpHandler implements HttpHandler { @Override public void handle(HttpExchange httpExchange) { try { StringBuilder responseText = new StringBuilder(); responseText.append("请求方法:").append(httpExchange.getRequestMethod()).append("<br/>"); responseText.append("请求参数:").append(getRequestParam(httpExchange)).append("<br/>"); responseText.append("请求头:<br/>").append(getRequestHeader(httpExchange)); handleResponse(httpExchange, responseText.toString()); } catch (Exception ex) { ex.printStackTrace(); } } /** * 获取请求头 * @param httpExchange * @return */ private String getRequestHeader(HttpExchange httpExchange) { Headers headers = httpExchange.getRequestHeaders(); return headers.entrySet().stream() .map((Map.Entry<String, List<String>> entry) -> entry.getKey() + ":" + entry.getValue().toString()) .collect(Collectors.joining("<br/>")); } /** * 获取请求参数 * @param httpExchange * @return * @throws Exception */ private String getRequestParam(HttpExchange httpExchange) throws Exception { String paramStr = ""; if (httpExchange.getRequestMethod().equals("GET")) { //GET请求读queryString paramStr = httpExchange.getRequestURI().getQuery(); } else { //非GET请求读请求体 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(httpExchange.getRequestBody(), "utf-8")); StringBuilder requestBodyContent = new StringBuilder(); String line = null; while ((line = bufferedReader.readLine()) != null) { requestBodyContent.append(line); } paramStr = requestBodyContent.toString(); } return paramStr; } /** * 处理响应 * @param httpExchange * @param responsetext * @throws Exception */ private void handleResponse(HttpExchange httpExchange, String responsetext) throws Exception { //生成html StringBuilder responseContent = new StringBuilder(); responseContent.append("<html>") .append("<body>") .append(responsetext) .append("</body>") .append("</html>"); String responseContentStr = responseContent.toString(); byte[] responseContentByte = responseContentStr.getBytes("utf-8"); //设置响应头,必须在sendResponseHeaders方法之前设置! httpExchange.getResponseHeaders().add("Content-Type:", "text/html;charset=utf-8"); //设置响应码和响应体长度,必须在getResponseBody方法之前调用! httpExchange.sendResponseHeaders(200, responseContentByte.length); OutputStream out = httpExchange.getResponseBody(); out.write(responseContentByte); out.flush(); out.close(); }}运行HttpServerStarter,在浏览器中访问如下:
-
该接口会根据我的http body中的所有数据生成签名值,存入相应response的header中,云市场再根据我返回的数据进行二次签名。最后对两次签名值进行比较。但不知道哪里除了问题,云市场生产的签名值和我接口生产的签名值就是不一样。华为云的客服说因为httpbody在获取签名到最终发送消息之间,内容被变动了,可能的原因是属性顺序变动、填加了空白、换行符等待(有的输出流会添加换行符\n),需要服务商自己排查一下。我确认在接口里面签名前后返回值的顺序、内容都没有变化。甚至我还返回空字符串进行测试,结果依旧是签名检验失败。希望有经验的朋友能帮忙指导一下。
-
200:请求被正常处理204:请求被受理但没有资源可以返回206:客户端只是请求资源的一部分,服务器只对请求的部分资源执行GET方法,相应报文中通过Content-Range指定范围的资源。301:永久性重定向302:临时重定向303:与302状态码有相似功能,只是它希望客户端在请求一个URI的时候,能通过GET方法重定向到另一个URI上304:发送附带条件的请求时,条件不满足时返回,与重定向无关307:临时重定向,与302类似,只是强制要求使用POST方法400:请求报文语法有误,服务器无法识别401:请求需要认证403:请求的对应资源禁止被访问404:服务器无法找到对应资源500:服务器内部错误503:服务器正忙
-
session 和 cookie 的区别由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.典型的场景比如购物车,当你点击下单按钮时,由于HTTP协议无状态,所以并不知道是哪个用户操作的,所以服务端要为特定的用户创建了特定的Session,用用于标识这个用户,并且跟踪用户,这样才知道购物车里面有几本书。这个Session是保存在服务端的,有一个唯一标识。在服务端保存Session的方法很多,内存、数据库、文件都有。集群的时候也要考虑Session的转移,在大型的网站,一般会有专门的Session服务器集群,用来保存用户会话,这个时候 Session 信息都是放在内存的,使用一些缓存服务比如Memcached之类的来放 Session。思考一下服务端如何识别特定的客户?这个时候Cookie就登场了。每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。有人问,如果客户端的浏览器禁用了 Cookie 怎么办?一般这种情况下,会使用一种叫做URL重写的技术来进行会话跟踪,即每次HTTP交互,URL后面都会被附加上一个诸如 sid=xxxxx 这样的参数,服务端据此来识别用户。Cookie其实还可以用在一些方便用户的场景下,设想你某次登陆过一个网站,下次登录的时候不想再次输入账号了,怎么办?这个信息可以写到Cookie里面,访问网站的时候,网站页面的脚本可以读取这个信息,就自动帮你把用户名给填了,能够方便一下用户。这也是Cookie名称的由来,给用户的一点甜头。所以,总结一下:Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。来自:https://zhuanlan.zhihu.com/p/90026505
-
301和302都是http状态的编码,代表着有url发生了转移。301:代表永久性转移;302:代表暂时性转移。
-
【直播时间】DevRun开发者沙龙直播时间:2020年9月15日 20:00~21:00【活动介绍】本期DevRun开发者沙龙,特邀华为云数据库解决方案专家Sugar,为您打造专场直播“端到端安全可信,华为云数据库解决方案最佳实践”!凡报名参加线上直播或在本主题帖中留言的用户均可参与抽奖,奖品若干! 【报名入口】点击下面链接或扫描微信二维码报名参加直播。报名链接:https://bbs.huaweicloud.com/signup/ca1f2974edab4aed93fecbafa122b677报名二维码:【回放地址】微吼直播间:http://live.vhall.com/206537223【互动送好礼】满足下面的一个条件即可参与抽奖:1、在本主题帖中跟帖,留言“华为云数据库解决方案真牛!”。2、在本主题帖中跟帖,留言“提问:xxx”、“建议:xxx”或“反馈:xxx”等。 【获奖规则】1、幸运奖:海纳斯小风扇,从本主题留言用户中,随机抽取若干名。2、互动奖:毕亚兹运动臂包,在本主题的留言中,选取最优秀的回帖若干名。3、同一个用户只有一个礼品。4、为保证公平公正,抽奖结果将在活动结束后7个工作日内本主题帖中发布,请报名和留言的伙伴关注社区内容。【礼品展示】【获奖用户】幸运奖:海纳斯小风扇十年树木sunckerRainTenX王亦臻wxstar8张辉云水不言Youhoo问道Hello Digger互动奖:毕亚兹运动臂包user_beifengJazzup帕加尼风之子8866linghz666yzq18941596181恭喜以上用户获得本期DevRun开发者沙龙直播社群互动好礼,我们已私信您反馈收件人信息,请及时响应,我们会尽快发出奖品。如您未在9月25日之前反馈获奖人信息,视为您自动放弃,望周知。
-
2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。
-
2020-08-23:描述HTTPS和HTTP的区别。
-
关于并行导入GDS是GaussDB(DWS)内部自研的数据导入工具,大数据量导入时,DWS支持使用GDS工具通过外表并行导入数据到集群。并行导入功能通过外表设置的导入策略、导入数据格式等信息来识别数据源文件,利用多DN并行的方式,将数据从数据源文件导入到数据库中,从而提高整体导入性能。数据量大,数据存储在多个服务器上时,在每个数据服务器上安装配置、启动GDS后,各服务器上的数据可以并行入库。GDS导入流程图准备工作在使用GDS导入数据前,请先完成准备弹性云服务器作为GDS服务器、下载GDS工具包和SSL证书。使用GDS导入数据数据存储在多个服务器上时,需要在每个数据服务器上安装配置、启动GDS后,各服务器上的数据可以并行入库。GDS在各台数据服务器上的安装配置和启动方法相同,这里以一台服务器为例进行说明。步骤1:准备源数据 1.以root用户登录用于存放数据源文件的服务器(又称数据服务器或GDS服务器),创建数据文件存放目录“/input_data”。以IP为192.168.0.90的数据服务器为例。 mkdir -p /input_data 2.使用MobaXterm将数据源文件上传至“/input_data”中。步骤2:安装配置和启动GDS以root用户登录数据服务器192.168.0.90,创建存放GDS工具包的目录/opt/bin/dws。mkdir -p /opt/bin/dws将GDS工具包上传至上一步所创建的目录中。以上传SUSE Linux版本的工具包为例 ,将GDS工具包“dws_client_redhat_x64.tar.gz”上传至“/opt/bin/dws”中。在工具包所在目录下,解压工具包。cd /opt/bin/dws/gdstar -zxvf dws_client_redhat_x64.tar.gz(可选)如果使用SSL加密传输数据,请一并将SSL证书上传/opt/bin/dws目录中。创建用户gds_user及其所属的用户组gdsgrp。此用户用于启动GDS,且需要拥有读取数据源文件目录的权限。groupadd gdsgrp useradd -g gdsgrp gds_user修改工具包以及数据源文件目录属主为创建的用户gds_user及其所属的用户组gdsgrp。CHOWN -R gds_user:gdsgrp /opt/bin/CHOWN -R gds_user:gdsgrp /input_data切换到用户gds_user。su - gds_user启动GDS。非SSL模式传输数据的情况下,使用如下命令启动GDS。/opt/bin/dws/gds/gds -d /input_data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -l /opt/bin/dws/gds/gds_log.txt -D使用SSL加密方式传输数据时,在确保执行了步骤5后,使用如下命令启动GDS。/opt/bin/dws/gds/gds -d /input_data/ -p 192.168.0.90:5000 -H 10.10.0.1/24 -l /opt/bin/dws/gds/gds_log.txt -D --enable-ssl --ssl-dir /opt/bin/dws/gds命令中的斜体部分请根据实际填写。-d dir:保存有待导入数据的数据文件所在目录。本示例中为“/input_data/”。-p ip:port:GDS listen IP和listen端口。默认值为:127.0.0.1,需要替换为能跟DWS通信的万兆网IP。listen端口的取值范围:1024~65535。默认值为:8098。本示例中配置为:192.168.0.90:5000。-H address_string:允许哪些主机连接和使用GDS服务。参数需为CIDR格式。此参数配置的目的是允许DWS集群可以访问GDS服务进行数据导入。所以请保证所配置的网段包含DWS集群各主机。-l log_file:存放GDS的日志文件路径及文件名。本示例中为“/opt/bin/dws/gds/gds_log.txt”。-D:后台运行GDS。仅支持Linux操作系统下使用。--enable-ssl:启用SSL加密方式传输数据。--ssl-dir:SSL证书所在目录。需与步骤6中的证书保存目录保持一致。步骤3:创建GDS外表创建外表product_info_ext用于接收数据服务器上的数据,使用SQL客户端工具连接DWS数据库。DROP FOREIGN TABLE IF EXISTS product_info_ext; CREATE FOREIGN TABLE product_info_ext ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) SERVER gsmpp_server OPTIONS( LOCATION 'gsfs://192.168.0.90:5000/*', FORMAT 'CSV' , DELIMITER ',', ENCODING 'utf8', HEADER 'false', FILL_MISSING_FIELDS 'true', IGNORE_EXTRA_DATA 'true' ) READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';设置数据格式信息是根据导出时设置的详细数据格式参数信息指定的,参数设置如下所示:数据源文件格式(format)为CSV。字段分隔符(delimiter)为英文逗号。编码格式(encoding)为UTF-8。数据文件是否包含标题行(header)为默认值false,即导入时数据文件第一行被识别为数据。设置导入容错性如下所示:FILL_MISSING_FIELDS 'true',表示最后一个字段缺失时,把最后一个字段的值设置为NULL,不报错。IGNORE_EXTRA_DATA 'true',数据源文件中字段比外表定义列数多,则忽略行尾多出来的列,不报错。将数据导入过程中出现的数据格式错误信息(LOG INTO error_table_name)写入表err_tpcds_reasons。允许出现的数据格式错误个数(PER NODE REJECT LIMIT 'value')为unlimited,即接受导入过程中所有数据格式错误。步骤4:将数据导入到DWS1.在DWS中创建目标表product_info,用于存储导入的数据。DROP TABLE IF EXISTS product_info; CREATE TABLE product_info ( product_price integer not null, product_id char(30) not null, product_time date , product_level char(10) , product_name varchar(200) , product_type1 varchar(20) , product_type2 char(10) , product_monthly_sales_cnt integer , product_comment_time date , product_comment_num integer , product_comment_content varchar(200) ) WITH ( orientation = column, compression=middle ) DISTRIBUTE BY hash (product_id);2.将数据源文件中的数据通过外表“product_info_ext”导入到表“product_info”中。 INSERT INTO product_info SELECT * FROM product_info_ext;步骤5:处理错误表 1.查询错误信息。 SELECT * FROM product_info_err; 2.处理错误表中的错误信息。步骤6:优化查询效率在数据导入完成后,执行ANALYZE语句生成表统计信息。执行计划生成器会使用这些统计数据,以生成最有效的查询执行计划。如果导入过程中,进行了大量的更新或删除行时,应运行VACUUM FULL命令,然后运行ANALYZE命令。1.对表product_info执行VACUUM FULL。 VACUUM FULL product_info; VACUUM2.更新表product_info的统计信息。 ANALYZE product_info; ANALYZE步骤7:停止GDS 1.以gds_user用户登录安装GDS的数据服务器。 2.停止GDS。 查询GDS进程号。其中GDS进程号为128954。 ps -ef|grep gds gds_user 128954 1 0 15:03 ? 00:00:00 gds -d /input_data/ -p 192.168.0.90:5000 -l /opt/bin/dws/gds/gds_log.txt -D gds_user 129003 118723 0 15:04 pts/0 00:00:00 grep gds 使用“kill”命令,停止GDS。其中128954为上一步骤中查询出的GDS进程号。 kill -9 128954这就是GDS导入的全部过程了,了解更多数据仓库服务内容,请点击此处!下一期云小课,带您玩转OBS导入GaussDB(DWS),敬请期待!
-
摘要:本文将分享一些前端性能优化的常用手段,包括减少请求次数、减小资源大小、各种缓存、预处理和长连接机制,以及代码方面的性能优化等方面。base64:尤其是在移动端,小图标可以base64(webpack),大图片慎用(如果加载速度过于慢的,而且很重要的图片,可以用base64)1、减少HTTP的请求次数和传输报文的大小CSS Sprite(雪碧图、图片精灵)技术使用字体图标(Icon Font)或者SVG等矢量图+减少HTTP请求次数或者减少请求内容的大小+渲染更快:因为它们是基于代码渲染的,而对于位图(png/jpg/gif)是需要先把图片编码在渲染+不容易是帧变形+也可以使用webp格式图片,这种格式要小一些(但是需要服务器端支持这种格式的请求处理)图片懒加载(延迟加载)技术+第一次加载页面的时候不去请求真实的图片,提高第一次渲染页面的速度,请求图片的额外消耗尽可能不要处理+当页面加载完,把出现在用户视野区域中的图片做真实加载,没有出现的先不加载(节约流浪,也能减少对服务器的请求压力)+ 对于数据我们也尽可能分批加载(不要一次请求过多的数据,例如分页技术)音视频文件取消预加载(preload='none'),这样可以增加第一次渲染页面的速度,当需要播放的时候在加载客户端和服务器端的数据传输尽可能基于JSON格式完成,XML格式比JSON格式要大一些(还可以基于二进制编码或者文件流格式,这种格式比文件传输好很多)把页面的css/js等文件进行合并压缩合并:争取css和js都只导入一个(webpack可以实现并合并压缩哦)压缩:基于webpack可以压缩,对于图片自己找工具先压缩,可以使用服务器的GZIP压缩图片BASE64(用BASE64码代表图片,减少HTTP,增加浏览器渲染速度,所以真是项目中,尤其是移动端,如果图片加载缓慢,BASE64一下就好了,;但是base64会导致文件中心的代码超级恶心,不利于维护和开发,所以减少使用);webpack中科院配置图片2、设置各种缓存、预处理和长连接机制不经常更改的静态资源做缓存处理(一般做的是304或者ETAG等协商缓存)建立Cache-Control 和Expires HTTP的强缓存DNS缓存或者预处理(DNS Prefetch),减少DNS的查找设置本地的离线存储(manifest)或者把一些不经常更改的数据做本地临时存储(webstorage,indexdb)等有钱就做CDN(地域分布式服务器),或者加服务器建立Connection:keep-alive Tcp长连接使用HTTP2版本协议(现在用的一般都是http1.1),可以多条tcp通道共存=>管道化链接一个项目分为不同的域(不同的服务器),例如:资源web服务器、数据服务器,图片服务器,视频服务器等,合理利用服务器资源,但是导致过多的DNS解析Cache-Control的优先级高于Expires基于本地存储,做数据的存储3、代码方面的性能优化减少对闭包的使用(因为过多使用闭包会产生很多不销毁的内存,处理不好的话,会导致内存溢出“栈溢出”),减少闭包的嵌套(减少作用域链的查找层级)对于动画来说:能用css解决的不用js(能够用transform处理的,不用传统的css样式,因为transform开启硬件加速,不会引发回流,或者使用定位的元素也会好很多,因为定位的元素脱离文档流,不会对其他元素的位置造成影响),能用 requestAnimationFrame解决的不用定时器+用requestAnimationFrame还有一个好处,当页面处于休眠无访问状态,动画会自己暂停,知道回复访问才开始,而定时器是不论什么状态,只要页面不管,就一直处理避免使用iframe(因为iframe会嵌入其他页面,这样父页面渲染的时候,还要同时把子页面也渲染了,渲染进度会变慢)减少直接对DOM的操作(原因是减少DOM的回流和重绘...),当代项目基本基于mvvm,mvc数据驱动视图渲染的,对DOM的操作框架本身完成,性能要好很多低耦合高内聚(基于封装的方式:方法封装,插件,组件,框架,类库等封装,减少页面中的冗余代码,提高代码使用率)尽可能使用事件委托避免出现死循环或者嵌套循环(嵌套循环会成倍增加循环的次数)项目中尽可能使用异步编程来模拟出多线程的效果,避免主线程阻塞(异步操作基于Promise设计模式来管理)JS中不要使用with避免使用css表达式函数的防抖和节流减少使用eval(主要原因是防止压缩代码的时候,由于符号书写不合规,导致代码混乱)图片地图:对于多次调取使用的图片(尤其是背景图),尽可能把它提取成为公共的样式,而不是每一次重新设置background减少filter滤镜的使用尽可能减少选择器的层级尽可能减少table布局手动回收堆栈内存(赋值为null)栈溢出:死递归function func(){ func(); } func();解决方案:function func(){ setTimeout(func,0); } func();相互引用:引用类型之间的相互调用,形成嵌套式内存let obj1={ name:'obj1', }; let obj2={ name:'obj2', x:obj1 } obj1.x=obj2;
-
【WEB前端全栈成长计划】第二阶段•最终考核打卡帖又是收获知识的一个月时间,WEB前端全栈成长计划第二阶段课程内容已经全部更新完毕。感谢大家积极的学习态度,遇到问题及时在群内提出,使得你们和华为可以共同进步!再次感谢大家:◎积极完成每章的随堂测验打卡,做到了课后的知识强化与巩固;◎认真完成每周读书笔记打卡,将自己的学习心得总结下来;◎高效完成阶段任务技术文章打卡,分享自己学习前端的经验。现在,大家迎来了第二阶段考核,让我们来看一下考核的具体内容▶考核打卡时间:2020.08.07-2020.08.16 23:59 ▶考核评分时间:08.16-08.28(考核内容众多,老师正在抓紧时间评分中~)▶考核途径:点击下方链接,选择【第二阶段考核作业】https://classroom.devcloud.huaweicloud.com/classdetail/8c41ce15bb824341aa6ef29e104f38dd/job▶考核要求:进入考核页面后,点击“查看习题描述”,详细阅读考核要求和评判标准后再进入考核,提交机会有2次,请大家认真作答。▶打卡要求:1.20000字符内:在本帖下方,回复考核答题页面截图1张+提交程序运行后的截图1张(如需上传多张截图,请一张张上传到同一楼层/回复帖中,多次回复占楼视为无效)2.20000字符外:在本帖下方,回复运行后截图2张,将本地编辑源代码和运行结果图片以压缩包的形式上传到回复帖中注意:本次考试标准代码是可以在20000字符内完成的,建议大家使用后台提交之后截图上传▶打卡方式:方式1:***正确的回复格式:华为云ID+姓名(显示在考核证书上面名字)+考核答题截图(2张)例:华为云ID:grandmaster 姓名:云上花木兰截图均放在一个楼层中,多次占楼无效哈~方式2:***正确的回复格式:华为云ID+姓名(显示在考核证书上面名字)+运行截图(2张)+以自己名字命名的源代码压缩包华为云ID:grandmaster 姓名:云上花木兰云上花木兰压缩包重要提示:请严格按照回复示例进行回复,本次为阶段末考核项目,如果没有按照要求的格式进行回复,版主将不予提示,同时不计入考核结果,会影响考核证书及奖品的发放哦~▶考核评分:提交考核内容后由专家老师根据评分标准评分,满分100分,分数将于开始审核后15个工作日内公布,分数会公布在博客里面,具体请大家留意小助手信息。▶评分标准:1、完成一个轮播图功能,与classroom首页轮播图越接近得分越高,classroom首页其他部分不作要求,不影响评分;2、轮播图功能上越接近首页页面的轮播图的各项功能,得分越高;3、不能使用任何javascript框架和工具库,只能使用原生javascript语言完成;4、代码书写越规范,得分越高;5、轮播图的图片尽量使用classroom线上的图片。▶考核奖励:◎参与最后考核并回复本帖,就可得到电子版证书(证书上会根据大家的回复的真实姓名填写信息,请大家在留信息时注意)参与考核,人人有份,证书由1号小助手微信点对点发放,没添加小助手微信的朋友添加一下hwcloud01,证书将在第一阶段结束后15个工作日内发放,请大家耐心等待小助手的通知哦~◎考核分数≥60分并回复本帖,另外奖励华为云定制数据线一条(数量有限,先到先得,按回帖时间发放,占楼无效!),友情提示:20000字符以内合格几率更高哦~◎本阶段会有专家老师评审出1位“最佳代码”(提交代码分数最高)获奖者,还会额外得到华为云双肩包+2000码豆哦~ ◎参与考核即可获得20积分累计到总积分中,赢取最后积分大奖;大家别忘了随堂测验,读书笔记和技术文章回复打卡截止日期为8月16日23:59,抓紧时间打卡呀~最佳博文还可能得到HUAWEI GT智能手表哦~积分排行细则积分排行榜奖品▶积分奖品彩蛋:【WEB前端全栈成长计划】追加福利,快来围观~本次积分前100名的用户,可享受申请云享专家直通车的权益。本次云享专家直通车,是让各位优秀的开发者进行申请后直接通过初审,进行终审。本次申请成为云享专家,可以获得礼品+100代金券。专家资料介绍链接:https://bbs.huaweicloud.com/blogs/112362?from=singlemessage&isappinstalled=0云享专家申请链接:https://bbs.huaweicloud.com/community/certifiedinfo活动注意事项1.由于本帖回复内容为阶段考核测试内容,并涉及到个人隐私,已设置回帖仅版主可见,请大家放心回复2.请大家务必在考核规定时间8月16日 23:59内完成考核回帖打卡,否侧将影响证书和奖品的发放3.积分和考核奖品信息我们会在考核阶段结束后15个工作日内整理完毕,发放奖品4.第三阶段课程将于8月下旬开课,详细报名情况和课程安排请大家先了解课程大纲 https://developer.huaweicloud.com/resource/roadmap/website.html
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签