- 工信部备案号 滇ICP备05000110号-1
- 滇公安备案 滇53010302000111
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
如何恢复到默认的 DNS 服务器设置? DNS异常的常见原因及解决方案 如何使用Xshell部署项目? 运维工程师必备8个高效工具,极大提高工作效率 哪个短信群发平台好? chrome浏览器插件SwitchyOmega的安装(离线安装) Linux centos7上安装tcpping Windows创建共享文件夹 DDOS攻击的危害及防御方法有哪些? 关于企业上云需要知道的问题有哪些? 为什么要选择高防服务器? 中小企业为什么选择云服务器? 企业为什么上云? 影响云服务器价格的因素有哪些? 为什么选择海外云服务器? 企业该如何选择云服务器的配置? 关于域名注册需要知道的问题有哪些? GPON与EPON的区别 服务降级的设计与实践 微服务端到灰度布发布的探究 微服务化后,需要注意的几点 企业数字化转型的方式 MPLS概述 IS-IS概述 SBIDIOT IoT恶意软件分析 一种面向大数据主动防御的低损耗数据采集方法 简单网络管理协议SNMP Multipoint BFD(M-BFD) 双向转发检测BFD 基于大数据的工控网络安全分析 爆发式流量所带来的安全问题,需要在边缘解决 三层交换技术 二层交换技术 战术环境下节点安全性评估方案 基于机器学习的Web应用入侵威胁检测 小程序的优势及存在的价值 一个完整的网站,由五大部分构成(建站基础篇) 网站建设的市场分析 当下流行建站类型 你所需要了解的外贸建站常识 模版建站与定制开发网站的区别 建站的支出费用如何 化工行业网站建设怎么做? 关于网站建设、小程序制作行业情况 对于企业来说,高端建站和模板建站有什么区别? 建站有哪些需要注意的地方。 餐饮小程序开发 网站备案方法目的耗时 定制网站对于企业有什么好处 大数据:多大的数据才有用 短信群发服务如何避免成为垃圾短信 不租用服务器可以做网站域名备案吗? 网站搭建分为哪些步骤? 注册域名最关键的是? 域名注册和备案的注意事项 企业如何正确选择注册官网域名 ? 众创时代,域名注册都不会那你就OUT了 银行怎样短信营销 为什么营销短信的效果这么差? 【干货】如何编写一条优质的营销短信? 双十一流量引爆—短信营销
浅谈工业信息安全防护现状及发展前景 针对工控的勒索软件Cring样本分析 基于区块链的工业互联网安全方法 工业互联网安全防护措施 工业互联网安全漏洞态势分析(2020年) 工业互联网与智能制造是啥关系? 为什么要做工业互联网平台? 互联网产品的信息架构 互联网思维的核心
区块链的潜在用途—数据完整性保护及减少信息决策单点故障 区块链的价值 区块链助力智能制造 区块链与分布式制造 企业布局区块链的战略思考 基于区块链边缘计算下的多维资源管理系统 怎么识别区块链骗局? 区块链和诈骗 区块链几大趋势 区块链小专题 区块链助力构建数据要素市场 区块链目前存在的挑战 区块链技术原理
工业物联网的兴起以及如何降低风险 物联网在物流领域的应用 工业物联网在能源化工领域的应用 工业物联网的体系架构 工业物联网在3C制造领域的应用 工业物联网及工业大数据安全探讨 区块链与物联网的融合 物联网应用技术 物联网对人类生活方式的影响 物联网的低谷与崛起 物联网初见 基于物权的物联网世界 5G+物联网 物联网工程师需要具备哪些技能?
到底什么是数字化转型? 区块链+5G的融合 浅谈工业大数据 “新基建”政策中智能建造的商机 详谈5G新基建 新基建(大数据、云计算、人工智能、区块链、物联网)会带给我们什么机遇?
5G新漏洞!用户隐私不再安全 5G技术 5G物联网好戏上场! 5G通信系统及关键技术 5G技术科普知识分享 5G技术将改变执法领域?
C语言微服务在OpenShift上的部署 VxLAN技术基础 基于next.js的服务端渲染解决方案 详谈Java集合框架 Mybatis工作流程及其原理 流式遥测(StreamTelemetry)技术介绍 从源码分析微服务网关的设计 从代码分析事务消息&消息延时 前端工程师必备知识 微信小程序开发的魅力在哪里? 为什么要开发小程序 开发小程序APP需要避免的坑 小程序开发 何时该采用LVOOP技术开发应用程序
架构设计-异常处理 架构思维之复用 区块链的技术模型架构 架构设计方法论 架构如何落地------四有效管理业务需求 架构如何落地-----三实行目标管理 架构如何落地-----二数字化转型架构实施方法 架构如何落地------一从制定实施路径开始 区块链基础架构之数据层(中) 区块链基础架构之数据层(上) 构架设计与拆分的哲学 什么是Web应用架构 软件架构模式 架构之高性能 架构设计六小原则 架构方法:运用合适的工具表达设计 云计算时代银行传统IT架构及管理方式的变革之路 【云计算】什么是Leaf-Spine(fabric)架构? 云架构的基本层次 民航机场云架构环境下的网络安全研究 云时代如何搭建HA服务架构
一文快速看懂SSL证书申请签发攻略 什么是https?http和https区别详解 什么是PKI、CA、数字证书、公钥、私钥? 什么是docker?这篇文章用通俗的语言告诉你 服务器故障,如何快速排查问题? 服务器故障排查:运维工程师必须要知道的51个技巧! 运维工程师分享的LINUX运维常用48条指令 Linux服务器上监控网络带宽的常用命令 网络地址转换NAT三种类型:静态 NAT、动态 NAT 、PAT 一文搞懂IT运维是什么? 运维是IT行业中技术含量最低的? ecshop网站管理员密码忘记怎么办 vmware esxi6.7 忘记root密码,重置密码 VMware虚拟机安装VMware ESXi 6.7 Linux Python包管理工具pip更换国内源 Linux登录ssh携带密码 10 个你必须掌握的超酷 VI 命令技巧 windows任务栏透明 宝塔面板安装SSL检查提示缺少中间证书处理办法 Linux的进程管理,process linux下常用的日志分析命令 Linux系统修改DNS 怎么让自己的网站更安全? Linux怎么安装宝塔面板 基于自动化运维工具SaltStack、Ansible、Puppet等运维中的难点解析 IT部门的价值在哪里? IT运维自动化解析 从传统IT运维到IT服务管理 IT运维的风险在哪里? 运维篇-存储基本知识梳理 运维篇-快照基础 自动化运维实践 | Ansible介绍 Linux运维工程师所需技能
内网网站系统部署SSL证书攻略 红蓝对抗-防守溯源的基本思路 渗透测试操作全流程分享 一文把DDoS攻击的防御策略说清楚了 一文说清内网HTTPS服务访问缓慢的原因和解决办法 僵尸网络是指什么? DeepSeek 遭网络攻击,什么是僵尸网络? 勒索病毒应急流程分享 勒索病毒数据恢复 云南昆明企业中了勒索病毒,如何进行应急处理? 云南安全运维服务流程 安全运维服务方案 2024年国内发生的网络安全事件都是什么类型? 2024多家企业未履行网络安全保护和数据安全管理义务被罚 安全运维服务内容 三大网络攻击途径,危害大防御难 常见网络攻击分享 保障linux服务器安全的一些策略分享 安全运维高手必须掌握的20个网络安全知识点 怎么开展网络安全攻防演练? 如何彻底解决 DNS 劫持污染? Centos7使用Docker搭建Hfish蜜罐 Web安全之同源与跨域 浅谈Android App漏洞 将Python远控隐藏在文档图片中的行动分析 DDoS攻击技术分析与防御 网络安全动态防护,实现从“人防”到“技防” 为什么有的ssl证书会显示中文网站名称? 如果遇到以下情况,可能是您的服务器正在遭受DDos攻击? 堡垒机是干什么的?堡垒机和云堡垒机相比哪个更好呢? 我国ipv6普及率不足1%,如何加快我国ipv6部署 喊话大数据时代的企业用户:你们线上业务的网络信息真的安全吗?关注等保合规了吗? 数据库迁移上云,有哪些注意事项 哪些单位需要做等级保护测评? 防火墙有哪些分类?不同的防火墙对应的特点? 网站应对突发高并发带来的问题及解决方案 ssl证书无效怎么办? HTTP和HTTPS的联系 什么是云安全服务? 你还在用免费的ssl证书吗? Web应用防火墙的作用是什么? 说一说漏洞扫描 常见的ssl证书错误原因及解决方法 专业防御大流量DDoS攻击 新手的福音!IPv6的新手指南 网络安全与信息安全浅析 渗透测试之信息收集 渗透测试服务 等保合规安全解决方案 北美市场可用 IPv4 地址耗尽!IPv6 接棒靠谱吗? Windows安全加固 WEB应用防火墙waf IPV6就能解决物联网的地址问题吗? IPv6:让每一粒沙子都拥有IP地址 IPv6 改造方案分析 关于ipv6的那些事 ssl证书有哪几种类型? 云安全服务是什么? 租用高防服务器暴露真实IP会有什么后果! 网络安全设备之“防火墙” 网络安全加固的必要性 什么是Web应用防火墙 什么是 Web 应用程序防火墙 (WAF)? 浅谈WAF应用防火墙部署 高防IP是什么?有什么作用呢 高防ip和高防服务器的区别是什么 防火墙安全技术要求和测试评价方法 从WEB应用防火墙hihttps谈机器学习之自主对抗 Redis安全加固 centos系统安全加固的一些建议设置 什么是云堡垒机 web应用防火墙 ipv6真的要来了 IPv6入门笔记- 改造方案 服务器被攻击后怎么处理 ipv6轮到你大展身手了 漏洞检测的几种方法 网络安全等级保护基础知识 网络安全防护那些事儿 什么是Web应用防火墙? 什么是DDOS高防IP? 安全加固是是什么? 免费的ssl证书和付费的ssl证书有什么区别? 网络安全——SSL证书 SSL证书选择指南 电商为什么要安装SSL证书? SSL证书如何选择? 什么是ssl证书? 云环境下基于生灭过程的DDoS攻击抵御成本最小化 结合网络,描述一下DDoS基本攻击类型 关于DDoS攻击 网络信息安全等级保护测评方法分析 网站被木马恶意篡改了怎么办? 浅谈等级保护测评 中国抗DDoS市场全景图
云南物理服务器租用价格 云南服务器托管流程 哪家云南服务器托管服务好 哪家云南服务器托管优惠 云南服务器托管哪家好 云南服务器托管哪家便宜 Windows server利用MegaCli检查raid及硬盘状态 IDC选址逻辑:市场需求决定资产长期价值,产业政策决定短期供给
什么是MySQL?MySOL云数据库免费试用3个月 IP地址的分类:静态IP与动态IP有何不同? 深度解析网站二级域名权重及SEO优劣势分析 Linux服务器-运维故障排查问题 服务器访问变慢怎么排查? Linux系统常用命令用法详解 CentOS 安装日志 Centos 修改IP地址、网关、DNS 升级centos7内核版本 云南租用物理服务器多少钱一年 云南服务器托管服务 推荐短信群发平台 服务器托管云南哪家便宜 Linux dd命令详解 企业在Linux系统中的安全配置指南(下) 短信群发平台费用 云南服务器托管平台推荐 企业在Linux系统中的安全配置指南(上) 为什么Linux要使用Deb、RPM等安装包,而不是直接解压可运行? 服务器托管云南哪家好 短信群发平台推荐 运维常见系统问题和解决方案! Linux10个常见问题及解决方案 云南托管服务器推荐 云南租用物理服务器 如何防御DDOS的攻击? 如何使用Linux Screen 云南托管服务器价格 TFTP安装、配置与使用 群发短信平台价格 curl命令使用场景总结 云南托管服务器哪里便宜 群发短信平台怎么选择 玩转Linux安全机制之SELinux Linux服务器跑不满带宽必查的5个问题 云南物理服务器租用推荐 云南托管服务器选哪家 Linux新磁盘分区、格式化、挂载操作 Linux 常用命令 —— sort 文件内容排序 云南物理服务器租用平台 云南托管服务器 网站访问故障原因及解决方法 Linux从入门到进阶:常用命令全解析 哪家云南服务器托管便宜 云南云服务器租用哪家便宜? 掌握Linux文本处理利器:grep与sed全攻略 Linux离线安装MySQL数据库 哪家云南云服务器租用便宜 便宜的短信群发平台 快速解决Linux 系统下文件目录中文乱码 Linux实时网络带宽监控工具:iftop 便宜的云南云服务器 云南物理服务器租用提供商 Linux环境下删除海量文件的方式 Microsoft Access数据丢失问题及修复方法:全面解析与常见问题解答 云南服务器托管优势 短信群发平台效果 Linux Rsync安装 Nginx日志管理 推荐云南物理服务器租用 短信群发平台哪家好 Redis基础命令大全 Linux中的文件对比工具diffc、mp、patch 云南物理服务器租用哪家靠谱 群发短信平台 从入门到精通:lsof命令详解 Linux之sort跟练教程 云南云服务器租用价格 群发短信平台推荐 自动化定期清理日志文件的脚本 在 CentOS 系统中配置静态 IP 和 DHCP 等网络连接信息 哪家云南物理服务器租用好 云南云服务器选哪家? Linux系统如何禁用IPv6 Nginx配置正向代理详解 云南物理服务器租用怎么选 云南服务器托管哪家靠谱 Linux系统磁盘扩容全攻略 Linux之rsync远程同步文件 云南物理服务器租用选哪家 云南服务器托管哪家划算 简单介绍一下HTTP请求头与请求体 MySQL开启查询缓存 云南物理服务器租用哪家好 哪家云南服务器托管好 MySQL Undo Log日志最全详解 Linux性能排查命令: htop 从零开始学Docker系列 Docker 容器网络 网站打开很慢的原因及解决办法 怎么选云南服务器托管 云南物理服务器租用优势 HTTP八种请求方式 Linux ssh 命令 云南服务器托管平台 云南物理服务器租用多少钱 云南云服务器哪家稳定 云南云服务器怎么购买? 云南云服务器租用选哪家 MySQL日志文件——Binlog Puppet编程入门:掌握Puppet编码风格 30个TensorFlow技巧 免费云数据库领取 短信群发平台试用 Linux系统稳定性压力测试软件汇总 Linux流量分析工具nethogs,实时监控网络带宽 永久免费虚拟主机推荐 怎么安装ubuntu系统 如何刷新DNS缓存? 短信群发平台哪个便宜 网站访问慢的原因和排查思路 访问一个网站很慢,怎么排查和解决? 昆明云服务器哪家便宜 Ubuntu 上启用 IPv6 的步骤 MySQL 常用日志详解 免备案虚拟主机哪家好 在 Windows 环境安装、运行 Redis 数据库的方法 解决 docker pull 不到镜像的问题 宝塔Linux面板安装教程 免备案虚拟主机 Linux 命令使用指南:nmcli 命令 使用ZFile快速搭建私有云盘 哪家短信群发平台稳定 HTTP状态码解析:解决不兼容边界等式约束与下限问题 盘一盘Linux中的btop工具 云服务器和物理服务器相比有何区别?到底怎么选? 云南物理服务器租用 香港虚拟主机推荐 云南云服务器优惠活动 Linux运维系统常用命令 Ubuntu的常用命令 群发短信怎么操作 Linux - Ubuntu的防火墙操作 Linux终端实时查看各网口网络流量情况 群发短信收费标准 30个 Linux 高级命令 nmcli,一个神奇的 Linux 命令! 短信群发供应商 MySQL误删数据怎么办? DNS中毒攻击:如何防范与解决 虚拟主机搭建网站 好用的短信群发平台 什么是DNS缓存? Linux小技巧-使用ab命令做性能压测 Linux 命令使用指南:awk 命令 Linux CPU 压力测试 云服务器如何设置能更加安全? 短信推广平台推荐 Ubuntu安装docker教程 centos7停止维护后,怎么升级内核 短信群发平台哪个好用 如何在Docker中部署Node.js应用 浅谈MySQL8.0新特性 短信群发平台价格 Http状态码里面301、302的区别 常见web漏洞 HTTP响应-状态码 50个必会Linux命令 短信群发平台哪个好 短信群发平台哪家便宜 防火墙如何支持虚拟专用网络(VPN)连接? https到底把什么加密了? 比较便宜的短信群发平台 简单聊聊Linux内核 网络安全扫描工具——WebScanner 短信群发平台哪个比较好 分享提升linux服务器安全性的几个小技巧 云服务器的常规安全设置及基本安全策略 http协议状态码——实用干货 12 个 Linux 网络安全工具 Linux教程:深入理解Awk命令 My SQL表及其增删改查 短信群发平台哪里有 Linux 运维七大实用技能 短信群发平台怎么选 比较便宜的云南云服务器 MySQL数据类型介绍 Docker 容器和镜像其实很简单 4 款最受欢迎的静态网站生成器对比指南 等保2.0工具箱测评必备软件大盘点 云南云服务器哪个品牌好? 什么是HTTP状态码? Moonlight 局域网串流搭建教程 云南云服务器可以做什么 Linux系统时间设置指南 Linux系统中常用的关机和重启命令 哪家云南云服务器便宜 Linux发行版本的名称及区别 什么是docker?在嵌入式Linux开发中有哪些作用? 云南云主机租用 云南云服务器租赁推荐 Linux服务器上MySQL启动方式全解析 六大网络攻击威胁,你的防御体系能否抵御? 云南云服务器哪家便宜好用 10 款网络流量监控工具使用实例 IT运维常用的服务器监控工具 云南云服务器租用 云南云服务器去哪买? 云南云服务器租赁优势 106短信群发平台 云南云主机测评 云南云服务器租赁哪家好? 云南云服务器租赁价格 云南企业云服务器租赁 云南云服务器租赁 MySQL数据库备份指南 靠谱的短信群发平台 短信群发延迟是什么原因? 云南服务器托管哪家便宜 虚拟主机永久免费版 短信群发哪家好? 什么云南云服务器便宜? 适合学生的云主机 免费云南云服务器哪里领? 永久免费虚拟主机哪里有? 免费云南云服务器怎么找? 国密SSL证书去哪里签发? 哪里能领永久免费虚拟主机? 好用的永久免费虚拟主机推荐 永久免费虚拟主机领取 免费云虚拟主机应该怎么选? 免费云数据库有用吗? 推荐免费云南云主机 怎么找免费云南云服务器? 推荐免费云南云服务器 免费域名能拿来做什么 免费云数据库试用 云南云服务器租赁哪家好 云南云主机采购哪家好? 云南云主机多少钱? 免费域名注册有用吗? 免费域名哪里找? 如何获得免费云数据库? 免费云数据库哪家好? 免费MySQL云数据库 免费云数据库有哪些 云南云主机厂商哪家好? 云南云主机选择指南 最划算的云南云服务器:提升企业效率的明智选择 .cn域名9.9元一个,域名注册攻略免费分享! 如何进行域名转入转出? 云南云主机品牌 云南云主机收费标准 云南云主机费用 云南云主机多少钱 最划算的云南云主机 个人云南云服务器 企业云南云服务器 学生云南云服务器 云南云服务器品牌 根服务器有多重要?如果全球根服务器崩溃会怎么样? 云南云服务器推荐 云南云服务器供应商 云南云服务器厂商 云南云服务器公司 云南云服务器提供商 云南云服务器服务商 云南云主机价格 云南云主机试用 免费的云南云主机 哪家云南云主机优惠 哪家云南云主机安全 哪家云南云主机稳定 云南云主机购买 云南云主机比较 云南云主机怎么选 哪家云南云主机价格低 哪家云南云主机服务好 哪家云南云主机性价比高 云南云主机哪家好 云南云主机哪家便宜 云南云服务器收费标准 云南服务器托管提供商 云南服务器托管优点 云南服务器托管收费标准 云南云服务器费用 云南服务器托管费用 云南服务器托管带宽 云南云服务器多少钱 云南云服务器价格 云南服务器托管机房 哪家云南服务器托管价格低 云南服务器托管供应商 云南服务器托管厂商 云南服务器托管公司 云南服务器托管推荐 云南服务器托管多少钱 云南云服务器配置选择 云南服务器托管比较 云南服务器托管价格 云南服务器托管服务商 云南服务器托管怎么选 哪家云南服务器托管安全 云南云服务器购买 云南云服务器比较 云南云服务器试用 免费的云南云服务器 云南云服务器怎么选 哪家云南云服务器稳定 哪家云南云服务器安全 哪家云南云服务器价格低 哪家云南云服务器服务好 云南云服务器哪家好 云南云服务器哪家便宜 哪家云南云服务器优惠 哪家云南云服务器性价比高 云南云服务器哪家好? 云南服务器托管哪家好? 云南服务器托管选哪家 云服务器的配置要怎么选? 选购云服务器有哪些注意事项? 香港服务器建站的优势 推荐一些真正便宜的企业云服务器? 适合中小企业的云服务器 企业网站怎么选择云服务器? 企业使用云服务器的优势是什么? 昆明国家级互联网骨干直联点获批:省内流量不再绕转成都等地 什么是OSS?5分钟带你了解! 分布式计算 云计算+——赋能科技创新布局 云服务器1M带宽有多大,购买服务器时如何选择服务器带宽? 蓝队云双11活动,云服务器0.9折来袭 “.商标”域名,保护企业品牌利益不被侵犯! 网站打开速度慢的代价:超过3秒就会有57%的用户离开! 如何选择合适的对象存储? 如何低价购买云服务器? 虚拟主机的配置及原理 什么是高防云服务器?高防服务器的优势有哪些? 云服务器到期了怎么办? 域名备案需要准备什么? 使用云服务器的优势 云服务器和VPS服务器对比有哪些优势? 直播系统搭建为什么需要云服务器 手摸手带你玩转云服务器 海外高防云服务器的安全防护 云服务器和云盘的区别 云服务器有哪些维护技巧,你都知道多少? 三种云计算安全服务模式定义企业安全 迁移到云计算服务的五大理由 可能危害云服务器安全的因素有哪些? ssl证书过期了怎么办? 1H2G的云服务器能用来干什么? 云服务器小常识 MySQL体系架构 如何保护云服务器的安全? 什么是域名解析? 说说虚拟主机的配置及原理 域名为何要实名制,还要进行备案? 虚拟主机使用独立IP对网站有什么好处? 对象存储适用于哪些场景? 买一个好的云服务器需要多少钱? 服务器硬件基础知识 个人如何注册域名? 服务器托管和租用区别 服务器迷惑行为大赏 服务器采购要注意哪些事项? 服务器,你了解吗? 代理服务器,网关,网络协议,都什么鬼东西啊 如何为中小型企业购买更好的服务器硬件 从应用角度比较块存储、文件存储、对象存储 创业初期选择服务器租用/托管还是云主机? 云计算 变革 | 云桌面时代降临 云计算之概念和架构 云计算行业分析 云计算的发展到顶峰了吗? 大数据和云计算的发展前景如何判断 【云计算】什么是软件定义数据中心网络架构(SDDCN)? 云服务器主机公网ip和内网ip的区别 一级域名、二级域名、三级域名的区别? 服务器托管要注意什么? 云计算是一个怎样的存在? 什么是云计算? 云计算的基本概念 谈谈云计算 【云计算】什么是Leaf-Spine(fabric)架构? 中小企业如何选择云服务器? 什么是域名? 什么是对象存储?你看过就明白了 服务器托管中常见的机柜类型有哪些? 云计算如何帮助企业节省成本 通俗易懂解释什么是云计算 虚拟主机和云服务器有什么区别? 块存储、文件存储、对象存储的区别 域名注册要注意些什么? 个人站长怎样选择虚拟主机? 怎么选择云服务器的配置? 谈谈ipv6 租用云服务器的优势有哪些? 购买云服务器要注意几个陷阱 ipv4和ipv6的区别 服务器租用类型的选择 服务器崩溃的原因 服务器虚拟化?有什么优势? 服务器托管到数据中心机房有哪些优势? 云服务器是什么?有什么优势呢? 正确租用服务器的方法 防止服务器数据丢失的方法有哪些? 如何挑选出优质的云服务器运营商? 中小型公司选择云服务器的原因是什么? 服务器租用中CPU的型号是不是越高越好呢? 云计算给我们的生活带来了什么改变? 云服务器的特征有哪些? 关于服务器租用,你是否也有这几个疑问? 租用什么样的高防服务器适合我们的企业? 云主机速度慢竟然是这个原因! 防止服务器数据丢失的方法有哪些? 如何选择服务器租用和服务器托管? 服务器托管和租用区别 数据中心服务器托管怎么选靠谱的IDC服务商? 服务器租用,四大问题不容忽视 什么是服务器?服务器租用思路 IO性能分析 between 云主机 and 虚拟机 网站建设如何选用空间?云虚拟主机和虚拟主机的区别 对象存储 统一云对象存储平台关键技术路线选型对比 怎样选择靠谱的云服务供应商? 服务器托管的五大优势 云服务器的带宽怎么选择? 免备案服务器有什么优势? 两个角度为你解答什么是云服务器? CDN许可证怎么去申请和办理 戏说 - 块存储 文件存储 对象存储 智造“基石”—— 解码工业物联网、大数据与云计算,发力“新基建” 新基建浪潮下的国内云计算行业 香港服务器可以翻墙吗? 详解Docker负载均衡和服务发现 如何选择云南云主机
随着业务发展,很多系统需要经历服务拆分的过程。微服务化过程踩坑也是很正常的事。如果在服务拆分之前做好充分准备,能帮我们少走很多弯路。本文主要从服务依赖,接口版本,隔离,数据一致等方面说说微服务化过程应该注意的点。
一、循环依赖问题
微服务化之后服务之间会存在各种依赖关系,不过依赖需要遵循一定的规则,不能太随意。否则,就会出现循环依赖的问题,而且会让调用关系变得错综复杂难于维护。下面是服务依赖的几条规则:
1,上层服务可以调用下层服务。
2,同级服务之间不能产生依赖关系,及不能产生调用关系。
3,下层服务不能调用上层服务。
4,服务之间的调用关系只能是单向的。
例如,在电商系统里包括支付服务(Pay),库存服务(Inventory),订单服务(Order)。支付服务和库存服务属于基础服务,订单服务属于上层服务。支付服务和库存服务是同级的服务,他们之间不能存在调用关系。订单服务属于上层服务,订单服务可以调用支付服务和库存服务,但是支付服务和库存服务不能调用上层的订单服务。
假设我们不管这些规则,让Order和Pay可以互相调用。这样就会产生循环依赖,Order调用Pay,Pay也调用Order,这样彼此都会依赖对方。
循环依赖导致哪些问题?
1,无限递归调用
假如,Order调用Pay的A方法,Pay调用Order的B方法。然后,A方法里又调用了Order的B方法,B方法里又调用了Pay的A方法。这样就会产生无限的递归调用,后果自然不言而喻了。
2,部署依赖问题
假设Order,Pay,Inventory彼此之间都可以通过API互相调用。当API接口发生变更时,为了让其他服务能够正常调用,API需要重新编译。如果Order和Pay的API都有变化,上线发布时就需要特别小心。为了保证发布成功,就需要根据服务间API的依赖关系,详细考虑先打包部署哪个服务,后打包部署哪个服务,才不至于发布失败。如果有更多的服务呢?比如10几个,梳理依赖关系都会把人搞疯的。
3,另外,循环依赖会让服务间的调用关系变得错综复杂,系统难于维护。
二、接口版本兼容
一些初中级程序员往往会忽略接口变更的问题,经常会因为接口变更导致线上问题。比如某个小型电商平台的订单服务调用支付服务的某个接口,产品突然提了一个需求,这个需求需要在这个支付接口上加一个参数。开发这个需求的是个新手,他直接在原来的接口方法上实现了需求并加上了参数,联调测试通过后就发布上线了。结果刚上线订单服务就开始报错,因为方法变了,加了参数,订单服务找不到老的方法了。所以就会一直报错,直到订单服务上线为止。
所以我们一定要注意接口版本问题。我们可以新加一个方法去重载老的方法,在新方法里实现新的功能,新方法的定义除了多一个参数外,其他的和老方法一样。也就是给老方法加了一个新版本。
这样在支付服务上线后,订单服务上线之前就不会报错了,因为老方法仍然可用。订单服务上线后就直接切到了新版本的方法。
如果我们服务框架选用的是Dubbo,当一个接口的实现,出现不兼容升级时,可以用Dubbo的版本号过渡,版本号不同的服务相互间不引用。
可以按照以下的步骤进行版本迁移:
1. 在低压力时间段,先升级一半提供者为新版本
2. 再将所有消费者升级为新版本
3. 然后将剩下的一半提供者升级为新版本
老版本服务提供者配置:
新版本服务提供者配置:
老版本服务消费者配置:
新版本服务消费者配置:
三、关于隔离的考虑
1.数据隔离:
实际上,服务化的其中一个基本原则就是数据隔离,不同服务应该有自己的专属数据库,而不应该共用相同的数据库,数据访问可以通过服务接口或者消息队列的方式。
很多公司微服务化后,只做了代码工程的拆分,不同服务对应的数据仍然存放在同一个数据库中。这样做至少存在四个问题:
(1)数据安全问题。别人的服务不但可以访问你的数据,而且还能修改和删除你的数据。
(2)导致数据库连接耗尽。一旦某个服务的开发者写了一个慢SQL,并且这个服务也没有合理限制连接数。可能会消耗掉所有的数据库连接,进而造成访问相同数据库的其他服务拿不到数据库连接,无法访问数据库。
(3)表关联查询。无法避免其他服务的开发者,为了快速上线某些需求。直接查询其他服务的表,或者跨服务做表关联查询。这样会造成服务间的耦合越来越严重。
(4)表结构变化的影响。如果某个服务直接依赖于其他服务的数据,一旦表结构发生任何变化,比如修改表名或者字段。很可能会产生灾难性后果。
2.部署隔离:
我们经常会遇到秒杀业务和日常业务依赖同一个服务,以及C端服务和内部运营系统依赖同一个服务的情况,比如说都依赖支付服务。而秒杀系统的瞬间访问量很高,可能会对服务带来巨大的压力,甚至压垮服务。内部运营系统也经常有批量数据导出的操作,同样会给服务带来一定的压力。这些都是不稳定因素。所以我们可以将这些共同依赖的服务分组部署,不同的分组服务于不同的业务,避免相互干扰。
3.业务隔离:
以秒杀为例。从业务上把秒杀和日常的售卖区分开来,把秒杀做为营销活动,要参与秒杀的商品需要提前报名参加活动,这样我们就能提前知道哪些商家哪些商品要参与秒杀,可以根据提报的商品提前生成商品详情静态页面并上传到CDN预热,提报的商品库存也需要提前预热,可以将商品库存在活动开始前预热到Redis,避免秒杀开始后大量访问穿透到数据库。
四、数据一致性问题
做了微服务拆分后,还可能会出现数据不一致的问题。比如支付服务中,支付状态发生变更后要通知订单服务修改对应订单的状态。如果支付服务没有正常通知到订单服务,或者订单服务接到通知后没能正常处理通知,就会导致支付服务的支付状态和订单服务的支付状态不一致,也就是数据会不一致。
1.那么如何避免数据不一致的问题产生呢?
我们通常所说的服务间数据一致性,主要包括数据强一致性和最终一致性。对于强一致性,使用的业务场景很少,而且会有明显的性能问题。所以这里我们主要讨论最终一致性。
一般我们可以采用如下几种方式来保证服务间数据的最终一致:
2.定时任务重试,同步调用接口
这种方式,采用定时任务去扫表,每次定时任务扫描所有未成功的记录,并发起重试。注意,要保证重试操作的幂等性。
这种方式的优点是:实现简单。缺点是:需要启动专门的定时任务,定时任务存在一定的时间间隔,实时性会比较差。而且同步接口调用的方式,耦合较重,有时无法避免循环依赖的问题。
比如,Order服务可以调用Pay,Pay做为基础服务不应该调用Order。当Pay的某笔交易状态发生变更后,需要通知Order。如果采用定时任务的方式就需要Order提供一个接口,定时任务扫描过程中同步调用这个接口去更新Order的订单状态。这样又违反了单向依赖的原则,形成了循环依赖。
异步消息队列,发送事务型消息
如上图,以电商下单流程为例。下单流程最后一步,通知WMS捡货出库,是异步消息走消息队列。
按上面代码,大家不难发现问题!如果发送捡货出库消息失败,数据就会不一致!有人说我可以在代码上加上重试逻辑和回退逻辑,发消息失败就重发,多次重试失败所有操作都回退。这样一来逻辑就会特别复杂,回退失败要考虑,而且还有可能消息已经发送成功了,但是由于网络等问题发送方没得到MQ的响应。还有可能出现发送方宕机的情况。这些问题都要考虑进来!
幸好,有些消息队列帮我们解决了这些问题。比如阿里开源的RocketMQ(目前已经是Apache开源项目),4.3.0版本开始支持事务型消息(实际上早在贡献给Apache之前曾经支持过事务消息,后来被阉割了,4.3.0版本重新开始支持事务型消息)。
先看看RocketMQ发送事务型消息的流程:
(1)发送半消息(所有事务型消息都要经历确认过程,从而确定最终提交或回滚(抛弃消息),未被确认的消息称为“半消息”或者“预备消息”,“待确认消息”)
(2)半消息发送成功并响应给发送方
(3)执行本地事务,根据本地事务执行结果,发送提交或回滚的确认消息
(4)如果确认消息丢失(网络问题或者生产者故障等问题),MQ向发送方回查执行结果
(5)根据上一步骤回查结果,确定提交或者回滚(抛弃消息)
看完事务型消息发送流程,有些读者可能没有完全理解,不要紧,我们来分析一下!
问题1:假如发送方发送半消息失败怎么办?
半消息(待确认消息)是消息发送方发送的,如果失败,发送方自己是知道的并可以做相应处理。
问题2:假如发送方执行完本地事务后,发送确认消息通知MQ提交或回滚消息时失败了(网络问题,发送方重启等情况),怎么办?
没关系,当MQ发现一个消息长时间处于半消息(待确认消息)的状态,MQ会以定时任务的方式主动回查发送方并获取发送方执行结果。这样即便出现网络问题或者发送方本身的问题(重启,宕机等),MQ通过定时任务主动回查发送方基本都能确认消息最终要提交还是回滚(抛弃)。当然出于性能和半消息堆积方面的考虑,MQ本身也会有回查次数的限制。
问题3:如何保证消费一定成功呢?
RocketMQ本身有ack机制,来保证消息能够被正常消费。如果消费失败(消息订阅方出错,宕机等原因),RocketMQ会把消息重发回Broker,在某个延迟时间点后(默认10秒后)重新投递消息。
结合上面几个同步调用hmily完整代码如下:
如果执行到TransactionListenerImpl.executeLocalTransaction方法,说明半消息已经发送成功了,也说明OrderService.makePayment方法的四个步骤都执行成功了,此时tcc也到了confirm阶段,所以在TransactionListenerImpl.executeLocalTransaction方法里可以直接返回LocalTransactionState.COMMIT_MESSAGE 让 MQ提交这条消息,同时将该订单信息和对应的消息状态保存在共享map里,以备确认消息发送失败时MQ回查消息状态使用。
3.采用TCC,SAGA,Seata等框架
以上就是微服务化后需要注意的几点。
、
服务热线:
4006-75-4006(7*24小时在线)
总机直拨:
0871-63886388(工作日9:00-18:00)
售前咨询
售后咨询
备案咨询
电话
二维码
TOP