精华内容
下载资源
问答
  • 导语内容提要何坤源著的《VMware vSphere企业网络和存储实战》针对VMwarev Sphere虚拟化架构在生产环境的实际需求,分9章介绍了如何在企业级虚拟化环境网络和存储进行安装、配置、管理、维护。全书以实战...

    导语

    b90ee82885d6ae6c68e81579c37a5cbd.png

    内容提要

    b90ee82885d6ae6c68e81579c37a5cbd.png

    何坤源著的《VMware vSphere企业级网络和存储实战》针对VMwarev Sphere虚拟化架构在生产环境中的实际需求,分9章介绍了如何在企业级虚拟化环境中对网络和存储进行安装、配置、管理、维护。

    全书以实战操作为主,理论讲解为辅,通过搭建各种物理环境,详细介绍了在企业生产环境中常用的CiscoNexus系列设备、DELL MD存储和VMware Virtual SAN如何快速部署,并通过大量实例,迅速提高读者的动手能力。

    本书通俗易懂,具有很强的可操作性,不仅适用于VMwarevSphere虚拟化架构管理人员,而且对其他虚拟化平台管理人员也具有参考作用。

    作者简介

    何坤源,网名“黑色数据”,持有RHCE、VCP、ITIL、CCIE等多个IT技术证书,担任多家企业、学校的IT咨询顾问,涉足企业IT基础架构、路由交换、网络安全等多个领域,尤其擅长企业IT基础架构设计以及运营过程中故障的处理。

    从2006年开始,作者将工作重心转向虚拟化、数据中心以及灾难备份中心建设。到目前为止,已经参与了多个企业虚拟化建设和改造项目,在虚拟化的设计、设备选型、运营维护等方面积累了丰富的经验。其编写的《VMware vSphere 5.0虚拟化架构实战指南》一书已输出版权到台湾。

    目录

    第1章 实战环境搭建

    1.1  物理设备及拓扑介绍

    1.1.1  实战环境物理设备配置

    1.1.2  实战环境拓扑

    1.2  虚拟化平台及其他系统介绍

    1.2.1  虚拟化平台介绍

    1.2.2  其他系统介绍

    1.3  本章小结

    第2章  部署VMware vSphere 6.5

    2.1  VMware vSphere 6.5虚拟化介绍

    2.1.1  什么是VMware vSphere

    2.1.2  VMware vSphere的用途

    2.1.3  VMware vSphere的优势

    2.1.4  VMware vSphere 6.5的新特性

    2.2  部署VMware ESXi 6.5

    2.2.1  部署ESXi 6.5硬件要求

    2.2.2  部署ESXi 6.5

    2.3  部署VMware vCenter Server 6.5

    2.3.1  部署vCenter Server 6.5要求

    2.3.2  部署vCenter Server 6.5

    2.4  创建使用虚拟机

    2.4.1  创建使用Windows虚拟机

    2.4.2  创建使用Linux虚拟机

    2.5  本章小结

    第3章  部署VMware vSphere基本网络

    3.1  VMware vSphere 网络介绍

    3.1.1  ESXi主机通信原理介绍

    3.1.2  ESXi主机网络组件介绍

    3.1.3  ESXi主机网络VLAN实现方式

    3.1.4  ESXi主机网络NIC Teaming

    3.1.5  ESXi主机TCP/IP协议堆栈

    3.2  配置使用标准交换机

    3.2.1  创建运行虚拟机流量标准交换机

    3.2.2  创建基于VMkernel流量标准交换机

    3.2.3  标准交换机多VLAN配置

    3.2.4  标准交换机NIC Teaming配置

    3.2.5  标准交换机其他策略配置

    3.2.6  TCP/IP协议堆栈配置

    3.3  配置使用分布式交换机

    3.3.1  创建分布式交换机

    3.3.2  将ESXi主机添加到分布式交换机

    3.3.3  分布式交换机多VLAN配置

    3.3.4  迁移虚拟机到分布式交换机

    3.3.5  分布式交换机LACP配置

    3.3.6  分布式交换机策略配置

    3.4  本章小结

    第4章  部署Nexus 1000V分布式交换机

    4.1  Nexus 1000V介绍

    ……

    第5章  部署Nexus N5K&N2K交换机

    第6章  部署存储服务器

    第7章  部署使用FC SAN存储

    第8章  部署使用iSCSI存储

    第9章  部署使用Virtual SAN

    展开全文
  • 一、工具准备 微信支付官网 官网:https://pay.weixin.qq.com ...微信程序支付:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_2.shtml uniapp官网 ...程序官网 https://mp.weixin.

    一、工具准备

    微信支付官网

    官网:https://pay.weixin.qq.com
    注册商家地址:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal
    微信小程序支付:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_2.shtml

    uniapp官网

    https://uniapp.dcloud.io/

    小程序官网

    https://mp.weixin.qq.com/

    工具下载

    hbuilderx

    https://www.dcloud.io/hbuilderx.html

    微信小程序开发工具:

    https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html

    vscode工具:

    https://code.visualstudio.com/

    Linux客户端工具FinalShell下载

    http://www.hostbuf.com/t/988.html

    二、微信支付-申请流程和步骤

    01、微信支付图解

    img

    02、申请注册流程和文档

    官方网址:https://pay.weixin.qq.com/index.php
    官方文档:https://pay.weixin.qq.com/wiki/doc/apiv3/wxpay/pages/index.shtml
    PC端微信小程序Navtive文档:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_7_0.shtml
    微信小程序支付对接文档:https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_1.shtml

    三、微信支付-注册商家及获取商家mchid

    目标

    1、注册商家号
    2、获取商家号mcid

    01、注册成为商家

    注册商家地址:https://pay.weixin.qq.com/index.php/apply/applyment_home/guide_normal

    img

    img

    img

    以上安装步骤填写即可。

    02、进入微信支付后台获取商家号mchid

    img
    img

    四、微信支付-商家-配置商家证书及获取API私钥

    目标

    1:获取API私钥

    https://pay.weixin.qq.com/wiki/doc/apiv3/open/pay/chapter2_8_1.shtml

    01、配置商家证书及获取API私钥

    img

    img

    02、生成私钥的代码

    import java.util.Random;
    public class RandomStringGenerator {
        /**
         * 获取一定长度的随机字符串
         *
         * @param length 指定字符串长度
         * @return 一定长度的字符串
         */
        public static String getRandomStringByLength(int length) {
            String base = "abcdefghijklmnopqrstuvwxyz0123456789";
            Random random = new Random();
            StringBuffer sb = new StringBuffer();
            for (int i = 0; i < length; i++) {
                int number = random.nextInt(base.length());
                sb.append(base.charAt(number));
            }
            return sb.toString();
        }
    }
    

    五、微信支付-商家-签约产品

    目标

    1:签约微信小程序支付产品
    2:签约Native支付产品

    01、产品类型表

    文档:https://pay.weixin.qq.com/wiki/doc/apiv3/index.shtml
    img

    02、签约产品

    img

    六、微信支付-配置回调地址

    目标

    配偶在支付回调地址

    配置如下

    img

    七、微信支付-微信小程序注册获取APPID

    目标

    1、注册微信小程序
    2、微信支付绑定微信小程序

    01、注册微信小程序

    申请官网:https://mp.weixin.qq.com/
    注册地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token=

    01-1、申请注册

    img
    img

    01-2、获取APPID

    img

    02、微信小程序配置及认证

    img

    八、微信支付-小程序和微信支付绑定关系

    目标

    完成小程序和微信支付的绑定关系

    01、小程序与微笑支付绑定

    img

    img

    九、实战部分

    9.1 导入weixinpay工具包

    工具包: https://download.csdn.net/download/qq_41096598/43396028

    在这里插入图片描述

    9.2 引入依赖

    <!--微信支付请求  begin-->
    <dependency>
        <groupId>com.github.wxpay</groupId>
        <artifactId>wxpay-sdk</artifactId>
        <version>0.0.3</version>
    </dependency>
    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.13</version>
    </dependency>
    <dependency>
        <groupId>org.jdom</groupId>
        <artifactId>jdom</artifactId>
        <version>1.1.3</version>
    </dependency>
    <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>1.4.10</version>
    </dependency>
    <dependency>
        <groupId>com.google.zxing</groupId>
        <artifactId>core</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.13</version>
    </dependency>
    <dependency>
        <groupId>commons-httpclient</groupId>
        <artifactId>commons-httpclient</artifactId>
        <version>3.1</version>
    </dependency>
    <!--微信支付请求  end-->
    

    9.3 编写wx.properties

    # 微信登录网关
    weixin.login.info.gateway=https://api.weixin.qq.com/sns/jscode2session
    # 微信小程序APPID
    weixin.login.info.appid=
    # 微信小程序API私钥
    weixin.login.info.appsecret=
    #微信小程序登录成功回调地址
    weixin.login.info.redirectUrl= 
    
    # 微信支付网关
    weixin.pay.info.gateway=https://api.mch.weixin.qq.com/pay/unifiedorder
    # 微信支付API秘钥
    weixin.pay.info.appsecret=
    # 微信商户id
    weixin.pay.info.mchid=
    # 签约产品的类
    weixin.pay.info.type=JSAPI
    # 微信小程序APPID
    weixin.pay.info.appid=
    # 支付成功回调地址,如果是微信小程序可以不配置
    weixin.pay.info.notifyPath=
    

    9.4 在springmvc.xml中配置

    <context:property-placeholder location="classpath:wx.properties" file-encoding="UTF-8" ignore-unresolvable="true"/>
    <!--spring扫描注入bean-->
    <context:component-scan base-package="com.dyt.config"/>
    

    9.5 config配置

    9.5.1 WeixinLoginProperties

    package com.dyt.config;
    
    import org.springframework.beans.factory.InitializingBean;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    
    @Component
    @PropertySource("classpath:wx.properties")
    public class WeixinLoginProperties implements InitializingBean {
        @Value("${weixin.login.info.gateway}")
        private String gateway;
        @Value("${weixin.login.info.appid}")
        private String appid;
        @Value("${weixin.login.info.appsecret}")
        private String appsecret;
        @Value("${weixin.login.info.redirectUrl}")
        private String redirectUrl;
    
        public static String WX_OPEN_GATEWAY;
        public static String WX_OPEN_APP_ID;
        public static String WX_OPEN_APP_SECRET;
        public static String WX_OPEN_REDIRECT_URL;
    
        @Override
        public void afterPropertiesSet() throws Exception {
            WX_OPEN_GATEWAY = gateway;
            WX_OPEN_APP_ID = appid;
            WX_OPEN_APP_SECRET = appsecret;
            WX_OPEN_REDIRECT_URL = redirectUrl;
        }
    }
    

    9.5.2 WeixinPayProperties

    package com.dyt.config;
    
    
    import org.springframework.beans.factory.InitializingBean;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.stereotype.Component;
    
    @Component
    @PropertySource(value = {"classpath:wx.properties"})
    public class WeixinPayProperties implements InitializingBean {
    
        // 微信支付网关
        @Value("${weixin.pay.info.gateway}")
        private String gateway;
        //小程序APPID
        @Value("${weixin.pay.info.appid}")
        private String appid;
        @Value("${weixin.pay.info.type}")
        private String type;
        //小程序APPSceret
        @Value("${weixin.pay.info.appsecret}")
        private String appsecret;
        //商户ID
        @Value("${weixin.pay.info.mchid}")
        private String mchid;
        //回调地址
        @Value("${weixin.pay.info.notifyPath}")
        private String notifyPath;
    
        public static String WX_GATEWAY;
        public static String WX_APPID;
        public static String WX_TYPE;
        public static String WX_APPSECRET;
        public static String WX_MCHID;
        public static String WX_NOTIFYPATH;
    
    
        @Override
        public void afterPropertiesSet() throws Exception {
            WX_GATEWAY = gateway;
            WX_APPID = appid;
            WX_TYPE = type;
            WX_APPSECRET = appsecret;
            WX_MCHID = mchid;
            WX_NOTIFYPATH = notifyPath;
        }
    }
    

    9.6 创建ApiPayController

    package com.dyt.controller;
    
    import com.alibaba.fastjson.JSONObject;
    import com.dyt.common.pay.weixin.ReportReqData;
    import com.dyt.common.pay.weixin.request.QrCodeRequest;
    import com.dyt.common.pay.weixin.util.RandomStringGenerator;
    import com.dyt.common.pay.weixin.util.SnowflakeIdWorker;
    import com.dyt.config.WeixinPayProperties;
    import com.dyt.vo.R;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.servlet.http.HttpServletRequest;
    import java.util.Map;
    
    @Api(tags = "微信小程序支付")
    @RestController
    public class ApiPayController {
    
        @PostMapping ("/weixinpay")
        public R payFood(HttpServletRequest request, String money){
            //1:开始支付,创建数据体
            JSONObject json = new JSONObject();
            //2:生成自定义定义流水号,便于自己查询和统计保证唯一即可
            String orderNo = new SnowflakeIdWorker(1, 2).nextId() + "";
            //3:获取用户openid作为支付的唯一凭证
            String openid = request.getParameter("openid");
            //4:分账接收方用户Id,从session获取即可
            Integer userId = 1;
            //5:组装微信支付数据
            ReportReqData data = new ReportReqData();
            // openid
            data.setOpenid(openid);
            // 签约的类型JSAPI
            data.setTrade_type(WeixinPayProperties.WX_TYPE);
            // 微信小程序的appid
            data.setAppid(WeixinPayProperties.WX_APPID);
            // 商户id
            data.setMch_id(WeixinPayProperties.WX_MCHID);
            // 回调地址 如果是微信小程序不用配置也可以,最好配置
            data.setNotify_url(WeixinPayProperties.WX_NOTIFYPATH);
            // 业务数据
            data.setBody("产品支付");//
            data.setOut_trade_no(orderNo);//订单号
            //data.setProduct_id(saleFoodId+"");//商品ID
            data.setSpbill_create_ip(ip);//ip地址
            data.setTotal_fee(getMoney(money));//金额
            data.setNonce_str(RandomStringGenerator.getRandomStringByLength(32));
    
            json.put("userId", userId);
            json.put("type", "productpay");
            //创建订单
            String params = json.toString().replace("\"", "'");
    
            data.setAttach(params);
    
            //微信支付返回的结果
            Map<String, String> weixinMap = QrCodeRequest.submitWeixinMessage(data);
    
            return R.ok().data("weixinMap",weixinMap).data("xxx","xxxx");
    
        }
    
    
    
        /**
         * 元转换成分
         *
         * @param amount
         * @return
         */
        public static String getMoney(String amount) {
            if (amount == null) {
                return "";
            }
            // 金额转化为分为单位
            // 处理包含, ¥ 或者$的金额
            String currency = amount.replaceAll("\\$|\\¥|\\,", "");
            int index = currency.indexOf(".");
            int length = currency.length();
            Long amLong = 0L;
            if (index == -1) {
                amLong = Long.valueOf(currency + "00");
            } else if (length - index >= 3) {
                amLong = Long.valueOf((currency.substring(0, index + 3)).replace(".", ""));
            } else if (length - index == 2) {
                amLong = Long.valueOf((currency.substring(0, index + 2)).replace(".", "") + 0);
            } else {
                amLong = Long.valueOf((currency.substring(0, index + 1)).replace(".", "") + "00");
            }
            return amLong.toString();
        }
    
    }
    

    9.7 创建ApiLoginController

    package com.dyt.controller;
    
    import com.dyt.common.HttpClientUtils;
    import com.dyt.common.exception.DYTException;
    import com.dyt.config.WeixinLoginProperties;
    import com.dyt.vo.R;
    import com.google.gson.Gson;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.util.StringUtils;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import java.util.HashMap;
    import java.util.Map;
    
    @Api(tags = "微信小程序登录")
    @RestController
    public class ApiLoginController{
        /**
         * @Author gdh
         * @Description openid接口的获取
         * @param code
         * @return
         * https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
         * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/login/auth.code2Session.html
         */
        @PostMapping("/wxlogin")
        public R callback(String code){
            //1.判断code是否合法
            if(StringUtils.isEmpty(code)){
                throw new DYTException(22008,"登录失败,尝试刷新重新登录!");
            }
            // 2:通过code获取access_token
            String baseAccessTokenUrl = WeixinLoginProperties.WX_OPEN_GATEWAY +
                    "?appid=%s" +
                    "&secret=%s" +
                    "&code=%s" +
                    "&grant_type=authorization_code";
    
            String accessTokenUrl = String.format(baseAccessTokenUrl, WeixinLoginProperties.WX_OPEN_APP_ID, WeixinLoginProperties.WX_OPEN_APP_SECRET, code);
            String result = null;
            try {
                //执行请求,获取微信请求返回得数据  RestTemplate httpClientUtils
                result = new HttpClientUtils().get(accessTokenUrl);
                //对微信返回得数据进行转换
                Gson gson = new Gson();
                Map<String, Object> resultMap = gson.fromJson(result, HashMap.class);
                if (resultMap.get("errcode") != null) {
                    throw new DYTException(22006,"微信登录出错!");
                }
                //解析微信用户得唯一凭证openid
                String openid = (String) resultMap.get("openid");
                if (StringUtils.isEmpty(openid)) {
                    throw new DYTException(22009,"登录失败,尝试刷新重新登录!");
                }
                //封装返回
       return R.ok().data("openid", openid).data("token",token).data("resultMap",resultMap);
            }catch (Exception e){
                return R.error().code(601).message("微信解析失败");
            }
        }
    }
    

    9.8 注意事项

    • ping: api.weixin.qq.com: 未知的名称或服务

    • 服务器网络配置出错

      [root@SSPZ ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
      HWADDR="00:0c:29:43:1b:69"           #MAC地址 -> 打开虚拟机设置——网络适配器——高级         
      IPADDR="192.168.88.148"              #IP地址
      GATEWAY="192.168.88.2"               #网关
      NETMASK="255.255.255.0"              #子网掩码
      DNS1="192.168.0.1"                   #访问互联网
      #DNS1和DNS2分别是DNS服务器1和DNS服务器2。DNS服务器1的ip地址是192.168.0.1或者114.114.114.114,DNS服务器2的ip地址是114.114.114.114或者8.8.8.8。
      #Domain Name System简称DNS,是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端口53。对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。Domain Name System是Internet上解决网上机器命名的一种系统。Internet上当一台主机要访问另外一台主机时,必须首先获知其地址。
      :wq!                                    #保存
      [root@SSPZ ~]# service network restart  #重新网络
      
    展开全文
  • 部分 Linux实用生产技能章 生产常用基础技能 21.1 Hostname & Network 31.1.1 基础知识 31.1.2 Network指令 31.1.3 配置以太网静态IP地址 41.1.4 实用网络指令 51.1.5 修改网络配置文件 61.1.6 添加、删除路由条目 ...

    部分 Linux实用生产技能

    章 生产常用基础技能 2

    1.1 Hostname & Network 3

    1.1.1 基础知识 3

    1.1.2 Network指令 3

    1.1.3 配置以太网静态IP地址 4

    1.1.4 实用网络指令 5

    1.1.5 修改网络配置文件 6

    1.1.6 添加、删除路由条目 7

    1.1.7 网络配置实例 8

    1.1.8 网桥 12

    1.1.9 bond 13

    1.1.10 图形化配置 14

    1.1.11 主机名 15

    1.2 软件管理 16

    1.2.1 基础知识 16

    1.2.2 RPM 16

    1.2.3 YUM软件包管理器 19

    1.2.4 tar包管理 21

    1.2.5 tar解压和压缩 22

    1.2.6 源码安装 22

    1.2.7 复杂的实例 23

    1.3 journalctl & NTP 24

    1.3.1 journalctl 24

    1.3.2 NTP 26

    1.4 rsync传输工具 27

    1.5 自定义安装光盘 30

    1.5.1 需要解决的问题 30

    1.5.2 可以选择的方案 30

    1.5.3 该选择哪种呢 30

    1.5.4 自定义光盘 31

    1.6 PXE自动化安装 36

    1.6.1 解决问题和注意事项 36

    1.6.2 Kickstart + PXE 36

    1.6.3 PXE无人值守安装配置 38

    1.7 系统急救 42

    1.7.1 意外的礼物 42

    1.7.2 单用户模式 42

    1.8 容器 45

    1.8.1 Docker的安装和使用 45

    1.8.2 使用Docker容器 46

    1.8.3 修改/保存Docker容器 47

    1.8.4 Docker桥接网络 47

    1.9 定制容器和私有仓库 48

    1.9.1 创建Docker容器 48

    1.9.2 定制容器 49

    1.9.3 私有仓库 51

    1.10 虚拟化(KVM) 53

    1.10.1 KVM的使用 54

    1.10.2 KVM热迁移 55

    第2章 生产实用LVM技术 58

    2.1 LVM基础 59

    2.1.1 LVM介绍及其原理 59

    2.1.2 LVM管理和使用 60

    2.1.3 LVM 删除 65

    2.2 LVM Cache & Snapshot 66

    2.2.1 LVM Cache 66

    2.2.2 DM Cache 实例 67

    2.2.3 LVM Snapshot 69

    2.2.4 Snapshot测试 70

    2.3 精简资源 73

    2.3.1 精简资源介绍 73

    2.3.2 精简资源实例 73

    2.4 条带化(Striped) 78

    2.4.1 线性和条带简介 78

    2.4.2 条带化实例 79

    2.5 数据处理 82

    2.5.1 数据迁移 82

    2.5.2 LVM数据迁移实例 83

    2.5.3 PVMOVE在线更换磁盘 85

    2.6 灾难恢复 86

    2.6.1 灾难的划分 86

    2.6.2 如何预防 87

    2.6.3 LVM逻辑卷故障――灾难恢复实例 87

    第3章 CentOS 7集群构建 90

    3.1 Pacemaker基础 91

    3.1.1 CentOS 7中的Cluster 91

    3.1.2 Pacemaker集群类型 91

    3.2 PCS-2集群的创建 93

    3.3 PCS-3故障模拟和恢复 106

    3.3.1 断开VIP网络,模拟集群切换 106

    3.3.2 如何解决回切问题(主机恢复后,VIP回归到原主机) 107

    3.3.3 断开心跳测试(脑裂的防范) 108

    3.3.4 双心跳 109

    3.3.5 stonith设置(Fence设置) 111

    3.3.6 备份和恢复集群 112

    3.4 PCS――DB2+Web 113

    3.4.1 DB2 HA配置 113

    3.4.2 Web集群 119

    3.5 PCS HA(NFS+DRBD) 121

    3.5.1 背景介绍 121

    3.5.2 DRBD+NFS+PCS配置实例 122

    第4章 系统调优 130

    4.1 性能调优的基础理论 131

    4.1.1 调优不是万能的 131

    4.1.2 信息模型 131

    4.1.3 屏蔽干扰项和学会使用帮助文档 133

    4.1.4 忠告 133

    4.1.5 工具 134

    4.1.6 单位 135

    4.1.7 实例 135

    4.2 经典理论(LAW) 136

    4.2.1 为什么要理解队列理论 136

    4.2.2 队列理论的核心思想 136

    4.2.3 带宽和吞吐量 141

    4.3 硬件 142

    4.3.1 CPU 142

    4.3.2 内存(Memory) 144

    4.3.3 存储 145

    4.3.4 网络 146

    4.3.5 在Linux上查看信息 146

    4.4 Process & CPU 147

    4.4.1 特征化的进程 148

    4.4.2 Linux进程状态 148

    4.4.3 进程在运行之前的准备工作 148

    4.4.4 CPU的缓存类型 149

    4.4.5 调度 150

    4.4.6 优先级 150

    4.4.7 优先级和队列的分类 151

    4.4.8 SCHED_OTHER 151

    4.4.9 对列调度器的调整策略 151

    4.4.10 内核时钟 152

    4.4.11 SystemTap 152

    4.4.12 SystemTap Scripts 152

    4.4.13 实验1――进程优先级对比 153

    4.4.14 实验2――安装SystemTap 153

    4.5 Memory调优 158

    4.5.1 虚拟地址和物理地址 158

    4.5.2 内存的分配 159

    4.5.3 Page Walk和大页 159

    4.5.4 Memory Cache 161

    4.5.5 vmcommit 162

    4.5.6 SysV IPC 163

    4.5.7 几种页面的状态和类型 164

    4.5.8 Swap分区 165

    4.6 Network 166

    4.6.1 数据的发送和接收 166

    4.6.2 Socket Buffer 167

    4.6.3 调整UDP Buffer的大小 167

    4.6.4 调整TCP Buffer的大小 168

    4.6.5 参考实验 168

    4.7 磁盘调度& FileSystem 173

    4.7.1 磁盘与I/O 173

    4.7.2 Elevator算法 175

    4.7.3 VFS-虚拟文件系统 176

    4.8 Tuned 179

    第5章 Linux系统安全 182

    5.1 Linux安全介绍 183

    5.2 Linux安全加固 185

    5.3 OpenVAS的部署和使用 189

    第6章 Linux实用规范 197

    6.1 系统安装规范 198

    6.2 问题处理规范 202

    6.3 上线检查规范 205

    第二部分 企业存储解决方案

    第7章 GlusterFS――分布式存储技术详解 210

    7.1 GlusterFS 211

    7.1.1 GlusterFS介绍 211

    7.1.2 GlusterFS常用卷 212

    7.1.3 安装GlusterFS 214

    7.2 GlusterFS技巧 219

    7.2.1 GlusterFS副本卷更换磁盘 219

    7.2.2 空间扩容 221

    7.2.3 挂载点网络中断 222

    7.2.4 磁盘隐性错误 223

    7.2.5 保留磁盘数据,更换主机(灾难恢复) 223

    7.2.6 参数调优 224

    7.2.7 控制 225

    7.2.8 写操作相关 226

    7.2.9 读操作相关 226

    7.2.10 线程控制 227

    7.2.11 脑裂 227

    7.3 GlusterFS不错特性 229

    7.3.1 配额 229

    7.3.2 RDMA 230

    7.3.3 Trash Translator 231

    7.3.4 Profile 监控分析 232

    7.3.5 top 232

    7.3.6 Statedump统计信息 233

    7.3.7 灾备(Geo-Replication) 233

    第8章 Ceph――分布式存储技术详解 237

    8.1 Ceph 1 238

    8.1.1 Ceph简介 238

    8.1.2 Ceph的设计思路 238

    8.1.3 Ceph的架构 238

    8.1.4 Ceph的安装和配置 242

    8.1.5 查看相关Map信息 252

    8.2 Ceph 2 RBD 253

    8.2.1 RBD块设备 253

    8.2.2 创建块设备 253

    8.2.3 使用块设备 255

    8.2.4 快照 256

    8.2.5 克隆 257

    8.2.6 OpenStack支持 258

    8.2.7 缓存参数 258

    8.2.8 预读参数 259

    8.3 Ceph对象网关1 259

    8.3.1 Ceph对象网关实现开源云盘系统(OwnCloud社区版) 259

    8.3.2 调试配置,简单使用 261

    8.3.3 Ceph对象存储结合OwnCloud 265

    8.4 Ceph对象网关2 267

    8.4.1 创建bucket 268

    8.4.2 Zone同步介绍(多活机制) 269

    8.4.3 实施 270

    8.5 Ceph+SSD 276

    8.6 Ceph-6 Luminous版本 279

    8.6.1 升级和重新部署 280

    8.6.2 Dashboard 284显示全部>>隐藏全部>>

    展开全文
  • 原标题:普度网络营销策划:中小企业线上营销沙龙成功举办由北京普度网络营销策划有限公司主办的自推广/与大咖在一起,中小企业线上营销推广深度分享沙龙第一期成功举办,来自20多家中小企业的相关负责人参与了此次...

    原标题:普度网络营销策划:中小企业线上营销沙龙成功举办

    由北京普度网络营销策划有限公司主办的自推广/与大咖在一起,中小企业线上营销推广深度分享沙龙第一期成功举办,来自20多家中小企业的相关负责人参与了此次沙龙。

    此次沙龙的目的在于以交流的形式帮助中小企业解决线上营销推广的问题,并进行详细的诊断,助力中小企业的发展。沙龙内容包括搜索引擎营销关键点解读、新媒体应如何助力企业线上业务推广、如何提高线上转化率、如何制定分析网络营销效果、行业实战案例剖析讲解等五部分的内容。

    在搜索引擎营销关键点解读的过程中,普度网络营销策划创始人齐宁分别从非竞价体系(SEO)、竞价体系(SEM)两个角度为大家讲解了网络营销推广人员如何通过搜索引擎的方式为企业引流,并详细的介绍了如何科学的选择国内主流的搜索引擎以及如何有效利用相关工具辅助运营人员进行搜索引擎营销。在讲解如何提高线上转化率和如何制定分析网络营销效果的过程中,有企业负责人提出中小企业应该如何有效提高电商平台的转化率的问题。对于这个问题,齐宁从广告素材的制作、用户体验、用户流程分析、着陆页面的设计以及注重品类推广五个角度进行了详细的解答。在讲解注重用户体验的时候,齐宁指出,企业运营人员应该从大图、细讲、对比、引导、简化五个方面来提高用户体验,并详细的举例进行说明。精彩生动的讲解,赢得了大家的阵阵掌声。

    随后,普度网络营销策划的营销总监孙孜文从微博、微信运营的角度为大家讲解了中小企业在急速发展的互联网大潮中,如何系统的利用新媒体为企业发声,赢得粉丝关注的问题。包括运营前的微信定位和命名,以及运营后的粉丝流量获取、内容运营及数据分析,并结合相关的案例进行了详细的讲解。在互动环节,有企业负责人提出了企业新媒体运营人员应该如何提高与粉丝的互动,增加粉丝粘性的问题,孙孜文认为,企业运营人员可以从内容互动、活动互动以及建立流量池互动三个角度进行。内容互动方面,运营人员可以选择粉丝们关注的话题进行内容的编写,并在文章末尾进行互动话题的引导,适当的发放一些小的福利,增加粉丝的互动;活动互动,则需要运营人员通过一系列的活动来提高粉丝对企业公众号的关注度,并增加企业与粉丝之间的有效对话;而流量池则是对粉丝进行适当的引导,将有价值的用户引流到微信群并进行维护,不限时间、不限次数的互动对企业来说是非常有利的。

    在最后,普度网络营销策划高级客户经理李乐通过对铸金所线上品牌推广方案的解读,为大家详细的介绍了在互联网环境中,一个新品牌如何有效系统的进行品牌推广的问题。李乐认为,一个品牌在前期,应该从产品、口碑、品牌几个角度进行推广,利用新闻PR、官网、微博、微信、互联网广告等多种资源对品牌信息进行曝光,增加在互联网上的影响力,这样才能提高品牌的知名度,从而实现引流,增加转化。

    沙龙从下午两点一直持续到六点,整个过程中无一人离场,很多与会者对主办方所讲解的内容表现出了浓厚的兴趣。很多企业负责人这样评价此次沙龙:全程都是干货满满,对于我们这样的企业负责人来说简直就是精神食粮,这样的沙龙非常值得参加,可以说不虚此行。普度网络营销策划创始人齐宁也表示,主办此次沙龙目的就是为中小企业营销人员提供一个营销交流的平台,帮助他们解决自己工作中遇到的问题,所以全程都是干货,没有任何的水分,从目前举办的效果来看,大家普遍的反映都还是不错的,远远超过我们的预期,很多人都希望这样的活动能多一点,沙龙第二期已经处于选题阶段,具体时间暂且保密。

    责任编辑:

    展开全文
  • 目前,企业网络还是IPv4网络,但是随着技术的进步与更迭,企业的网络需要从IPv4迁移至IPv6,作为管理员的您首先需要在现有网络上进行IPv6网络的设计改造。在本实验,您需要部署有状态IPv6地址分配方案以及IPv6路由...
  • k8s通过CNI接口接入其他插件来实现网络通讯。目前比较流行的插件有flannel,calico等。 CNI插件存放位置:# cat /etc/cni/net.d/10-flannel.conflist 插件使用的解决方案如下: 虚拟网桥,虚拟网卡,多个容器共用一...
  • 很多企业正是看中了互联网的优势,纷纷加入了网络营销队伍,但是并不是所有的中小企业网络营销都能够做得很好,因为部分企业缺乏网络营销实战经验,对网络营销一知半解,从而导致无法达到预期的效果,导致投资的资金...
  • 由于内容过多,本文篇幅有限,因此编就不详细展示了,请各位老铁认真的看完本文内容,你一定会有所收获! Java篇目录内容(涵盖Java基础及核心技术、容器、并发、JVM技术) 网络篇目录内容
  • 社会发展太快,很多从事网络营销推广技术的人员明显觉得“网络营销推广技术”越来越被很多企业所不屑,很多人对于SEO优化、新闻营销等技术业务的需求变得越来越了,毕竟快速发展的互联网圈诞生出了很多优秀的平台...
  • 本文在开源项目:GitHub已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新… %BF%E9%AB%98%E8%96%AA%EF%BC%81.md),里面包含不同方向的自学编程路线、面试题集合/面经...
  • HTTPS(Hypertext Transfer Protocol Secure:超文本传输安全协议) 是一种透过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,**但利用SSL/TLS来加密数据包。**HTTPS开发的主要目的,是提供对网站服
  • 企业运维实战--k8s学习笔记4.k8s网络通信、Flannel vxlan模式简介、calico网络插件替换、网络策略范例编写一、k8s网络通信简介(重点)二、Flannel vxlan模式简介Flannel vxlan模式跨主机通信原理简介DR模式实现三、...
  • 作者:BingeZhacsdn.net/zwb19940216/article/details/810231911. 前言现在微信程序越来越火了,相信不少人都通过各种途径学习过微信...
  • 网络 vim ext-ip.yaml apiVersion: v1 kind: Service metadata: name: ex-service spec: selector: app: myapp ports: - name: http protocol: TCP port: 80 targetPort: 80 externalIPs: - 172...
  • 实战驱动,需要明确目标、专注。循序渐进、目标分解。跟着文章的节奏,逐个功能点开发实现,最终会潜移默化的得到想得到的。 2 国际化改造 由于系统模块较多,需要国际化的文本也多,如果按照之前定义国家化语言文件...
  • 网络安全 ,深度学习,嵌入式,机器强化,生物智能,生命科学。 叮叮叮:产品已上线 —>关注 官方-微信公众号——济南纪年信息科技有限公司 民生项目:商城加盟/娱乐交友/创业商圈/外包兼职开发-项目发布/ 安全项目:...
  • 基于小样本训练的模型 在实际业务场景中,中小AI企业往往容易出现数据量不足的问题。 例如,用户需要订制一个客服机器人,但只有100个标准问题,这么小的数据集不足以支撑模型的训练。 对于这类问题,除花费高成本...
  • 申耀的科技观察读懂科技,赢取未来!刚刚过去的2020年,一场突如其来的疫情给中小企业的生存和发展带来了巨大的冲击和改变。背后的原因既和中小企业规模偏小、抗风险能力偏弱有关,但更为关键的是,...
  • 4 NFS网络文件系统实战 1.NFS基本概述 1.1 什么是NFS 1.2 NFS能干什么 1.3 为何需要NFS 1.4 NFS注意事项 1.5 NFS实现原理 2.NFS服务实践 2.1 环境准备 2.2 NFS服务安装 2.3 NFS服务配置 2.4 NFS服务初始化 2.5 NFS...
  • 计算机网络自学指南,简直太全了!

    千次阅读 多人点赞 2021-02-19 10:03:51
    今天偶然发现了计算机网络如何自学的问题,于是决定怒答一波。 关于计算机网络如何学习,我就拿自己亲身实践的...这本书通过多图来解释浏览器从输入网址开始,一路追踪了到显示出网页内容为止的整个过程,以图配文,
  • 做两快三年的Android开发,工作的任务也就是一些界面的编写,RecyclerView的简单使用,网络框架也是别人封装好的直接用,再就是集成些第三方的分享、支付什么的!技术上的提升可以说根本没有,和工作一年左右的人,...
  • 不知道,大家有没有过这样的经历,这个故事还要从很久很久以前讲起,从前有一个美丽的村庄… 画风不对,重新来。 是这样的,今年不是特殊情况吗?大家都知道哈!这里我就不过多的提及了,身边无数朋友来我这里抱怨...
  • 第五阶段:shell编程企业实战 第一章shell变量核心基础与进阶 1.1节、什么是shell 什么是shell Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等,用户输入一条命令,shell就解释执行一条,这种从...
  • 关于产品的系列博文,博主已经放在下面专栏,有需要的伙伴自行订阅。 数据台入门到精通系列讲解 https://blog.csdn.net/wenyusuran/category_9162242.html 按照数据处理的链路,从数据采集、到数据存储、...
  • zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。 zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 ...
  • 企业网络架构(搭建)学习笔记(网管)

    千次阅读 多人点赞 2021-03-20 15:16:08
    是一起参加红帽考试的伙伴分享的资源,然后稍作整理,时间原因,这篇笔记后面部分没有实际敲Demo,先知道个大概,以后涉及到这方面在深入研究,补充一些实战的东西。 另:如果想详细的了解HTTP、TCP/IP 等协议,...
  • 而在网络安全实战演习,攻击队根本不会将火力指向网页防篡改系统的保护对象。因此,网页防篡改系统在这个场景下缺乏应用价值。 之所以产生这样的观念,和网页防篡改产品的现状有着很大的关系。目前,市场上大部分...
  • 程序注册流程 1、注册方法 在微信公众平台官网首页(mp.weixin.qq.com)点击右上角的“立即注册”按钮。 2、选择注册的帐号类型 选择“程序”,点击“查看类型区别”可查看不同类型帐号的区别和优势。 3、填写...
  • 文章目录企业微信接口测试实战1企业微信接口测试实战2 企业微信接口测试实战1 课程贴:https://ceshiren.com/t/topic/12545 URI 统一资源定位符 URL 是URI的一种 企业微信接口文档:开发前必读 - 企业微信API 6 企业...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,941
精华内容 15,576
关键字:

中小企业网络实战