• 关于

    问题定义常见问题及解决方法

    的搜索结果

问题

Logtail 如何快速诊断问题?

当日志采集发生异常时,用户可通过Logtail自动检测工具查看客户端是否存在异常情况,根据工具提示快速定位并解决问题。 [backcolor=transparent]机器组心跳Fail时请参考 Logta...
轩墨 2019-12-01 22:04:04 1111 浏览量 回答数 0

问题

Kubernetes 集群 常见问题 集群创建失败

查看失败原因 您可以通过查看集群的创建事件来查看集群创建失败的原因。 登录 ROS 管理控制台 选择集群所在的地域,选择所需的集群并单击右侧的 管理,单击左侧导航栏中的 事件 ,将鼠标移动到失...
青蛙跳 2019-12-01 21:33:13 784 浏览量 回答数 0

回答

一、基础篇 1.1、Java基础 面向对象的特征:继承、封装和多态 final, finally, finalize 的区别 Exception、Error、运行时异常与一般异常有何异同 请写出5种常见到的runtime exception int 和 Integer 有什么区别,Integer的值缓存范围 包装类,装箱和拆箱 String、StringBuilder、StringBuffer 重载和重写的区别 抽象类和接口有什么区别 说说反射的用途及实现 说说自定义注解的场景及实现 HTTP请求的GET与POST方式的区别 Session与Cookie区别 列出自己常用的JDK包 MVC设计思想 equals与==的区别 hashCode和equals方法的区别与联系 什么是Java序列化和反序列化,如何实现Java序列化?或者请解释Serializable 接口的作用 Object类中常见的方法,为什么wait notify会放在Object里边? Java的平台无关性如何体现出来的 JDK和JRE的区别 Java 8有哪些新特性 1.2、Java常见集合 List 和 Set 区别 Set和hashCode以及equals方法的联系 List 和 Map 区别 Arraylist 与 LinkedList 区别 ArrayList 与 Vector 区别 HashMap 和 Hashtable 的区别 HashSet 和 HashMap 区别 HashMap 和 ConcurrentHashMap 的区别 HashMap 的工作原理及代码实现,什么时候用到红黑树 多线程情况下HashMap死循环的问题 HashMap出现Hash DOS攻击的问题 ConcurrentHashMap 的工作原理及代码实现,如何统计所有的元素个数 手写简单的HashMap 看过那些Java集合类的源码 1.3、进程和线程 线程和进程的概念、并行和并发的概念 创建线程的方式及实现 进程间通信的方式 说说 CountDownLatch、CyclicBarrier 原理和区别 说说 Semaphore 原理 说说 Exchanger 原理 ThreadLocal 原理分析,ThreadLocal为什么会出现OOM,出现的深层次原理 讲讲线程池的实现原理 线程池的几种实现方式 线程的生命周期,状态是如何转移的 可参考:《Java多线程编程核心技术》 1.4、锁机制 说说线程安全问题,什么是线程安全,如何保证线程安全 重入锁的概念,重入锁为什么可以防止死锁 产生死锁的四个条件(互斥、请求与保持、不剥夺、循环等待) 如何检查死锁(通过jConsole检查死锁) volatile 实现原理(禁止指令重排、刷新内存) synchronized 实现原理(对象监视器) synchronized 与 lock 的区别 AQS同步队列 CAS无锁的概念、乐观锁和悲观锁 常见的原子操作类 什么是ABA问题,出现ABA问题JDK是如何解决的 乐观锁的业务场景及实现方式 Java 8并法包下常见的并发类 偏向锁、轻量级锁、重量级锁、自旋锁的概念 可参考:《Java多线程编程核心技术》 1.5、JVM JVM运行时内存区域划分 内存溢出OOM和堆栈溢出SOE的示例及原因、如何排查与解决 如何判断对象是否可以回收或存活 常见的GC回收算法及其含义 常见的JVM性能监控和故障处理工具类:jps、jstat、jmap、jinfo、jconsole等 JVM如何设置参数 JVM性能调优 类加载器、双亲委派模型、一个类的生命周期、类是如何加载到JVM中的 类加载的过程:加载、验证、准备、解析、初始化 强引用、软引用、弱引用、虚引用 Java内存模型JMM 1.6、设计模式 常见的设计模式 设计模式的的六大原则及其含义 常见的单例模式以及各种实现方式的优缺点,哪一种最好,手写常见的单利模式 设计模式在实际场景中的应用 Spring中用到了哪些设计模式 MyBatis中用到了哪些设计模式 你项目中有使用哪些设计模式 说说常用开源框架中设计模式使用分析 动态代理很重要!!! 1.7、数据结构 树(二叉查找树、平衡二叉树、红黑树、B树、B+树) 深度有限算法、广度优先算法 克鲁斯卡尔算法、普林母算法、迪克拉斯算法 什么是一致性Hash及其原理、Hash环问题 常见的排序算法和查找算法:快排、折半查找、堆排序等 1.8、网络/IO基础 BIO、NIO、AIO的概念 什么是长连接和短连接 Http1.0和2.0相比有什么区别,可参考《Http 2.0》 Https的基本概念 三次握手和四次挥手、为什么挥手需要四次 从游览器中输入URL到页面加载的发生了什么?可参考《从输入URL到页面加载发生了什么》 二、数据存储和消息队列 2.1、数据库 MySQL 索引使用的注意事项 DDL、DML、DCL分别指什么 explain命令 left join,right join,inner join 数据库事物ACID(原子性、一致性、隔离性、持久性) 事物的隔离级别(读未提交、读以提交、可重复读、可序列化读) 脏读、幻读、不可重复读 数据库的几大范式 数据库常见的命令 说说分库与分表设计 分库与分表带来的分布式困境与应对之策(如何解决分布式下的分库分表,全局表?) 说说 SQL 优化之道 MySQL遇到的死锁问题、如何排查与解决 存储引擎的 InnoDB与MyISAM区别,优缺点,使用场景 索引类别(B+树索引、全文索引、哈希索引)、索引的原理 什么是自适应哈希索引(AHI) 为什么要用 B+tree作为MySQL索引的数据结构 聚集索引与非聚集索引的区别 遇到过索引失效的情况没,什么时候可能会出现,如何解决 limit 20000 加载很慢怎么解决 如何选择合适的分布式主键方案 选择合适的数据存储方案 常见的几种分布式ID的设计方案 常见的数据库优化方案,在你的项目中数据库如何进行优化的 2.2、Redis Redis 有哪些数据类型,可参考《Redis常见的5种不同的数据类型详解》 Redis 内部结构 Redis 使用场景 Redis 持久化机制,可参考《使用快照和AOF将Redis数据持久化到硬盘中》 Redis 集群方案与实现 Redis 为什么是单线程的? 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级 使用缓存的合理性问题 Redis常见的回收策略 2.3、消息队列 消息队列的使用场景 消息的重发补偿解决思路 消息的幂等性解决思路 消息的堆积解决思路 自己如何实现消息队列 如何保证消息的有序性 三、开源框架和容器 3.1、SSM/Servlet Servlet的生命周期 转发与重定向的区别 BeanFactory 和 ApplicationContext 有什么区别 Spring Bean 的生命周期 Spring IOC 如何实现 Spring中Bean的作用域,默认的是哪一个 说说 Spring AOP、Spring AOP 实现原理 动态代理(CGLib 与 JDK)、优缺点、性能对比、如何选择 Spring 事务实现方式、事务的传播机制、默认的事务类别 Spring 事务底层原理 Spring事务失效(事务嵌套),JDK动态代理给Spring事务埋下的坑,可参考《JDK动态代理给Spring事务埋下的坑!》 如何自定义注解实现功能 Spring MVC 运行流程 Spring MVC 启动流程 Spring 的单例实现原理 Spring 框架中用到了哪些设计模式 Spring 其他产品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等) 有没有用到Spring Boot,Spring Boot的认识、原理 MyBatis的原理 可参考《为什么会有Spring》 可参考《为什么会有Spring AOP》 3.2、Netty 为什么选择 Netty 说说业务中,Netty 的使用场景 原生的 NIO 在 JDK 1.7 版本存在 epoll bug 什么是TCP 粘包/拆包 TCP粘包/拆包的解决办法 Netty 线程模型 说说 Netty 的零拷贝 Netty 内部执行流程 Netty 重连实现 3.3、Tomcat Tomcat的基础架构(Server、Service、Connector、Container) Tomcat如何加载Servlet的 Pipeline-Valve机制 可参考:《四张图带你了解Tomcat系统架构!》 四、分布式 4.1、Nginx 请解释什么是C10K问题或者知道什么是C10K问题吗? Nginx简介,可参考《Nginx简介》 正向代理和反向代理. Nginx几种常见的负载均衡策略 Nginx服务器上的Master和Worker进程分别是什么 使用“反向代理服务器”的优点是什么? 4.2、分布式其他 谈谈业务中使用分布式的场景 Session 分布式方案 Session 分布式处理 分布式锁的应用场景、分布式锁的产生原因、基本概念 分布是锁的常见解决方案 分布式事务的常见解决方案 集群与负载均衡的算法与实现 说说分库与分表设计,可参考《数据库分库分表策略的具体实现方案》 分库与分表带来的分布式困境与应对之策 4.3、Dubbo 什么是Dubbo,可参考《Dubbo入门》 什么是RPC、如何实现RPC、RPC 的实现原理,可参考《基于HTTP的RPC实现》 Dubbo中的SPI是什么概念 Dubbo的基本原理、执行流程 五、微服务 5.1、微服务 前后端分离是如何做的? 微服务哪些框架 Spring Could的常见组件有哪些?可参考《Spring Cloud概述》 领域驱动有了解吗?什么是领域驱动模型?充血模型、贫血模型 JWT有了解吗,什么是JWT,可参考《前后端分离利器之JWT》 你怎么理解 RESTful 说说如何设计一个良好的 API 如何理解 RESTful API 的幂等性 如何保证接口的幂等性 说说 CAP 定理、BASE 理论 怎么考虑数据一致性问题 说说最终一致性的实现方案 微服务的优缺点,可参考《微服务批判》 微服务与 SOA 的区别 如何拆分服务、水平分割、垂直分割 如何应对微服务的链式调用异常 如何快速追踪与定位问题 如何保证微服务的安全、认证 5.2、安全问题 如何防范常见的Web攻击、如何方式SQL注入 服务端通信安全攻防 HTTPS原理剖析、降级攻击、HTTP与HTTPS的对比 5.3、性能优化 性能指标有哪些 如何发现性能瓶颈 性能调优的常见手段 说说你在项目中如何进行性能调优 六、其他 6.1、设计能力 说说你在项目中使用过的UML图 你如何考虑组件化、服务化、系统拆分 秒杀场景如何设计 可参考:《秒杀系统的技术挑战、应对策略以及架构设计总结一二!》 6.2、业务工程 说说你的开发流程、如何进行自动化部署的 你和团队是如何沟通的 你如何进行代码评审 说说你对技术与业务的理解 说说你在项目中遇到感觉最难Bug,是如何解决的 介绍一下工作中的一个你认为最有价值的项目,以及在这个过程中的角色、解决的问题、你觉得你们项目还有哪些不足的地方 6.3、软实力 说说你的优缺点、亮点 说说你最近在看什么书、什么博客、在研究什么新技术、再看那些开源项目的源代码 说说你觉得最有意义的技术书籍 工作之余做什么事情、平时是如何学习的,怎样提升自己的能力 说说个人发展方向方面的思考 说说你认为的服务端开发工程师应该具备哪些能力 说说你认为的架构师是什么样的,架构师主要做什么 如何看待加班的问题
徐刘根 2020-03-31 11:22:08 0 浏览量 回答数 0

阿里云试用中心,为您提供0门槛上云实践机会!

100+款试用云产品,最长免费试用12个月!拨打95187-1,咨询专业上云建议!

回答

自建步骤自行建站的四个基本步骤:服务器选择不同网站类型需要的服务器配置不同,首先确认网站规模与访问人数,一般情况下,小型网站只需要选择基础配置即可。购买服务器流程可参考通过购买页面创建一台ECS实例。想了解不同配置对应的价格,推荐使用ECS价格计算器。云服务器ECS主要计费方式为预付(包括包年包月和按周付费)和按量付费,详细的计费规则可以参考产品计价。域名购买和备案域名购买:输入想要的域名,未被占用即可注册,具体操作请参考域名注册流程。域名后缀通常为.COM或.CN,其它后缀介绍和区别请参考域名区别。 注意:域名注册成功后需进行实名认证。流程请参考域名如何实名制认证。域名备案:域名购买完成后,还需进行备案方可使用。备案步骤如下: i.备案准备:因各省管局要求存在差异,所需资料也不尽相同,请根据各省市备案规则准备资料,或访问工信部备案管理系统(www.miitbeian.gov.cn) 了解细则。详情请参考备案准备。ii.首次备案接入:若之前尚未进行过工信部备案,请参考首次备案流程图文引导。其它备案场景请参考备案导航。网站部署常见网站类型有以下几种:个人博客WordPress 常用于搭建个人博客网站,尤其适用于首次使用阿里云进行建站的新用户。详情请参考使用 WordPress 搭建个人手机博客。 若已有网站代码,可通过阿里云 Windows 一键安装web环境来部署。 论坛网站通过 phpwind 镜像快速搭建论坛网站请参考使用 phpwind 镜像搭建论坛。通过 Discuz 搭建论坛网站请参考使用 Discuz 镜像搭建论坛。其他建站教程通过镜像一键部署 Linux 环境通过镜像部署 Java Web 环境部署 Linux 主机管理系统 WDCP快速搭建 Moodle 课程管理系统初级建站推荐使用网上一键安装包,例如WordPress、discuz这类,比较适合新手操作。域名解析设置域名解析后,外部用户可通过域名访问网站。详情请参考设置域名解析快速入门。如需将域名指向一个IP地址,添加A记录即可。详情请参考如何添加不同记录类型的解析。至此,建站操作已基本完成,接下来您可使用域名测试访问是否正常。常见问题与解决方案在服务器使用或者网站搭建过程中,可能会遇到一些使用问题,因此,列举了以下最常见的问题和对应的解决方案。服务器远程连接Windows无法远程连接: 文档解决方案:无法连接 Windows 实例。视频教程:如何远程连接 Windows 实例。Linux无法远程连接: 文档解决方案:无法连接 Linux 实例。视频教程:如何远程连接 Linux 实例。安全组和快照如何设置安全组默认规则?安全组应用案例合集。如何创建自定义快照?网站无法访问Windows 实例带宽和CPU跑满或跑高怎么办?网站无法访问的常见原因及检查方法有哪些?Windows 实例网络访问丢包延时高怎么办?Linux 实例网站访问丢包延时高如何解决?域名解析已经生效,无法打开网站常规的原因有哪些?相关服务若在上云前希望了解如何选择适合自身业务特点的阿里云产品和配置,可点此查看架构设计&上云咨询服务。 若您需要将云下自建机房、托管机房等环境下的业务迁移到阿里云上, 并希望获取专业上云方案实施服务,可点此查看上云方案实施服务。 若您需要在阿里云服务器上部署站点环境、安装应用程序,可点此查看网站基础环境搭建服务。 基于阿里云服务器 ECS,若需要专业工程师协助对系统/数据库/站点进行基础设置,可使用云资源管理基础设置服务。
微笑de向阳 2019-12-01 23:14:40 0 浏览量 回答数 0

回答

自建步骤自行建站的四个基本步骤:服务器选择不同网站类型需要的服务器配置不同,首先确认网站规模与访问人数,一般情况下,小型网站只需要选择基础配置即可。购买服务器流程可参考通过购买页面创建一台ECS实例。想了解不同配置对应的价格,推荐使用ECS价格计算器。云服务器ECS主要计费方式为预付(包括包年包月和按周付费)和按量付费,详细的计费规则可以参考产品计价。域名购买和备案域名购买:输入想要的域名,未被占用即可注册,具体操作请参考域名注册流程。域名后缀通常为.COM或.CN,其它后缀介绍和区别请参考域名区别。 注意:域名注册成功后需进行实名认证。流程请参考域名如何实名制认证。域名备案:域名购买完成后,还需进行备案方可使用。备案步骤如下: i.备案准备:因各省管局要求存在差异,所需资料也不尽相同,请根据各省市备案规则准备资料,或访问工信部备案管理系统(www.miitbeian.gov.cn) 了解细则。详情请参考备案准备。ii.首次备案接入:若之前尚未进行过工信部备案,请参考首次备案流程图文引导。其它备案场景请参考备案导航。网站部署常见网站类型有以下几种:个人博客WordPress 常用于搭建个人博客网站,尤其适用于首次使用阿里云进行建站的新用户。详情请参考使用 WordPress 搭建个人手机博客。 若已有网站代码,可通过阿里云 Windows 一键安装web环境来部署。 论坛网站通过 phpwind 镜像快速搭建论坛网站请参考使用 phpwind 镜像搭建论坛。通过 Discuz 搭建论坛网站请参考使用 Discuz 镜像搭建论坛。其他建站教程通过镜像一键部署 Linux 环境通过镜像部署 Java Web 环境部署 Linux 主机管理系统 WDCP快速搭建 Moodle 课程管理系统初级建站推荐使用网上一键安装包,例如WordPress、discuz这类,比较适合新手操作。域名解析设置域名解析后,外部用户可通过域名访问网站。详情请参考设置域名解析快速入门。如需将域名指向一个IP地址,添加A记录即可。详情请参考如何添加不同记录类型的解析。至此,建站操作已基本完成,接下来您可使用域名测试访问是否正常。常见问题与解决方案在服务器使用或者网站搭建过程中,可能会遇到一些使用问题,因此,列举了以下最常见的问题和对应的解决方案。服务器远程连接Windows无法远程连接: 文档解决方案:无法连接 Windows 实例。视频教程:如何远程连接 Windows 实例。Linux无法远程连接: 文档解决方案:无法连接 Linux 实例。视频教程:如何远程连接 Linux 实例。安全组和快照如何设置安全组默认规则?安全组应用案例合集。如何创建自定义快照?网站无法访问Windows 实例带宽和CPU跑满或跑高怎么办?网站无法访问的常见原因及检查方法有哪些?Windows 实例网络访问丢包延时高怎么办?Linux 实例网站访问丢包延时高如何解决?域名解析已经生效,无法打开网站常规的原因有哪些?相关服务若在上云前希望了解如何选择适合自身业务特点的阿里云产品和配置,可点此查看架构设计&上云咨询服务。 若您需要将云下自建机房、托管机房等环境下的业务迁移到阿里云上, 并希望获取专业上云方案实施服务,可点此查看上云方案实施服务。 若您需要在阿里云服务器上部署站点环境、安装应用程序,可点此查看网站基础环境搭建服务。 基于阿里云服务器 ECS,若需要专业工程师协助对系统/数据库/站点进行基础设置,可使用云资源管理基础设置服务。
微笑de向阳 2019-12-01 23:14:41 0 浏览量 回答数 0

回答

自建步骤自行建站的四个基本步骤:服务器选择不同网站类型需要的服务器配置不同,首先确认网站规模与访问人数,一般情况下,小型网站只需要选择基础配置即可。购买服务器流程可参考通过购买页面创建一台ECS实例。想了解不同配置对应的价格,推荐使用ECS价格计算器。云服务器ECS主要计费方式为预付(包括包年包月和按周付费)和按量付费,详细的计费规则可以参考产品计价。域名购买和备案域名购买:输入想要的域名,未被占用即可注册,具体操作请参考域名注册流程。域名后缀通常为.COM或.CN,其它后缀介绍和区别请参考域名区别。 注意:域名注册成功后需进行实名认证。流程请参考域名如何实名制认证。域名备案:域名购买完成后,还需进行备案方可使用。备案步骤如下: i.备案准备:因各省管局要求存在差异,所需资料也不尽相同,请根据各省市备案规则准备资料,或访问工信部备案管理系统(www.miitbeian.gov.cn) 了解细则。详情请参考备案准备。ii.首次备案接入:若之前尚未进行过工信部备案,请参考首次备案流程图文引导。其它备案场景请参考备案导航。网站部署常见网站类型有以下几种:个人博客WordPress 常用于搭建个人博客网站,尤其适用于首次使用阿里云进行建站的新用户。详情请参考使用 WordPress 搭建个人手机博客。 若已有网站代码,可通过阿里云 Windows 一键安装web环境来部署。 论坛网站通过 phpwind 镜像快速搭建论坛网站请参考使用 phpwind 镜像搭建论坛。通过 Discuz 搭建论坛网站请参考使用 Discuz 镜像搭建论坛。其他建站教程通过镜像一键部署 Linux 环境通过镜像部署 Java Web 环境部署 Linux 主机管理系统 WDCP快速搭建 Moodle 课程管理系统初级建站推荐使用网上一键安装包,例如WordPress、discuz这类,比较适合新手操作。域名解析设置域名解析后,外部用户可通过域名访问网站。详情请参考设置域名解析快速入门。如需将域名指向一个IP地址,添加A记录即可。详情请参考如何添加不同记录类型的解析。至此,建站操作已基本完成,接下来您可使用域名测试访问是否正常。常见问题与解决方案在服务器使用或者网站搭建过程中,可能会遇到一些使用问题,因此,列举了以下最常见的问题和对应的解决方案。服务器远程连接Windows无法远程连接: 文档解决方案:无法连接 Windows 实例。视频教程:如何远程连接 Windows 实例。Linux无法远程连接: 文档解决方案:无法连接 Linux 实例。视频教程:如何远程连接 Linux 实例。安全组和快照如何设置安全组默认规则?安全组应用案例合集。如何创建自定义快照?网站无法访问Windows 实例带宽和CPU跑满或跑高怎么办?网站无法访问的常见原因及检查方法有哪些?Windows 实例网络访问丢包延时高怎么办?Linux 实例网站访问丢包延时高如何解决?域名解析已经生效,无法打开网站常规的原因有哪些?相关服务若在上云前希望了解如何选择适合自身业务特点的阿里云产品和配置,可点此查看架构设计&上云咨询服务。 若您需要将云下自建机房、托管机房等环境下的业务迁移到阿里云上, 并希望获取专业上云方案实施服务,可点此查看上云方案实施服务。 若您需要在阿里云服务器上部署站点环境、安装应用程序,可点此查看网站基础环境搭建服务。 基于阿里云服务器 ECS,若需要专业工程师协助对系统/数据库/站点进行基础设置,可使用云资源管理基础设置服务。
微笑de向阳 2019-12-01 23:54:00 0 浏览量 回答数 0

回答

自建步骤自行建站的四个基本步骤:服务器选择不同网站类型需要的服务器配置不同,首先确认网站规模与访问人数,一般情况下,小型网站只需要选择基础配置即可。购买服务器流程可参考通过购买页面创建一台ECS实例。想了解不同配置对应的价格,推荐使用ECS价格计算器。云服务器ECS主要计费方式为预付(包括包年包月和按周付费)和按量付费,详细的计费规则可以参考产品计价。域名购买和备案域名购买:输入想要的域名,未被占用即可注册,具体操作请参考域名注册流程。域名后缀通常为.COM或.CN,其它后缀介绍和区别请参考域名区别。 注意:域名注册成功后需进行实名认证。流程请参考域名如何实名制认证。域名备案:域名购买完成后,还需进行备案方可使用。备案步骤如下: i.备案准备:因各省管局要求存在差异,所需资料也不尽相同,请根据各省市备案规则准备资料,或访问工信部备案管理系统(www.miitbeian.gov.cn) 了解细则。详情请参考备案准备。ii.首次备案接入:若之前尚未进行过工信部备案,请参考首次备案流程图文引导。其它备案场景请参考备案导航。网站部署常见网站类型有以下几种:个人博客WordPress 常用于搭建个人博客网站,尤其适用于首次使用阿里云进行建站的新用户。详情请参考使用 WordPress 搭建个人手机博客。 若已有网站代码,可通过阿里云 Windows 一键安装web环境来部署。 论坛网站通过 phpwind 镜像快速搭建论坛网站请参考使用 phpwind 镜像搭建论坛。通过 Discuz 搭建论坛网站请参考使用 Discuz 镜像搭建论坛。其他建站教程通过镜像一键部署 Linux 环境通过镜像部署 Java Web 环境部署 Linux 主机管理系统 WDCP快速搭建 Moodle 课程管理系统初级建站推荐使用网上一键安装包,例如WordPress、discuz这类,比较适合新手操作。域名解析设置域名解析后,外部用户可通过域名访问网站。详情请参考设置域名解析快速入门。如需将域名指向一个IP地址,添加A记录即可。详情请参考如何添加不同记录类型的解析。至此,建站操作已基本完成,接下来您可使用域名测试访问是否正常。常见问题与解决方案在服务器使用或者网站搭建过程中,可能会遇到一些使用问题,因此,列举了以下最常见的问题和对应的解决方案。服务器远程连接Windows无法远程连接: 文档解决方案:无法连接 Windows 实例。视频教程:如何远程连接 Windows 实例。Linux无法远程连接: 文档解决方案:无法连接 Linux 实例。视频教程:如何远程连接 Linux 实例。安全组和快照如何设置安全组默认规则?安全组应用案例合集。如何创建自定义快照?网站无法访问Windows 实例带宽和CPU跑满或跑高怎么办?网站无法访问的常见原因及检查方法有哪些?Windows 实例网络访问丢包延时高怎么办?Linux 实例网站访问丢包延时高如何解决?域名解析已经生效,无法打开网站常规的原因有哪些?相关服务若在上云前希望了解如何选择适合自身业务特点的阿里云产品和配置,可点此查看架构设计&上云咨询服务。 若您需要将云下自建机房、托管机房等环境下的业务迁移到阿里云上, 并希望获取专业上云方案实施服务,可点此查看上云方案实施服务。 若您需要在阿里云服务器上部署站点环境、安装应用程序,可点此查看网站基础环境搭建服务。 基于阿里云服务器 ECS,若需要专业工程师协助对系统/数据库/站点进行基础设置,可使用云资源管理基础设置服务。
微笑de向阳 2019-12-01 23:54:01 0 浏览量 回答数 0

回答

自建步骤自行建站的四个基本步骤:服务器选择不同网站类型需要的服务器配置不同,首先确认网站规模与访问人数,一般情况下,小型网站只需要选择基础配置即可。购买服务器流程可参考通过购买页面创建一台ECS实例。想了解不同配置对应的价格,推荐使用ECS价格计算器。云服务器ECS主要计费方式为预付(包括包年包月和按周付费)和按量付费,详细的计费规则可以参考产品计价。域名购买和备案域名购买:输入想要的域名,未被占用即可注册,具体操作请参考域名注册流程。域名后缀通常为.COM或.CN,其它后缀介绍和区别请参考域名区别。 注意:域名注册成功后需进行实名认证。流程请参考域名如何实名制认证。域名备案:域名购买完成后,还需进行备案方可使用。备案步骤如下: i.备案准备:因各省管局要求存在差异,所需资料也不尽相同,请根据各省市备案规则准备资料,或访问工信部备案管理系统(www.miitbeian.gov.cn) 了解细则。详情请参考备案准备。ii.首次备案接入:若之前尚未进行过工信部备案,请参考首次备案流程图文引导。其它备案场景请参考备案导航。网站部署常见网站类型有以下几种:个人博客WordPress 常用于搭建个人博客网站,尤其适用于首次使用阿里云进行建站的新用户。详情请参考使用 WordPress 搭建个人手机博客。 若已有网站代码,可通过阿里云 Windows 一键安装web环境来部署。 论坛网站通过 phpwind 镜像快速搭建论坛网站请参考使用 phpwind 镜像搭建论坛。通过 Discuz 搭建论坛网站请参考使用 Discuz 镜像搭建论坛。其他建站教程通过镜像一键部署 Linux 环境通过镜像部署 Java Web 环境部署 Linux 主机管理系统 WDCP快速搭建 Moodle 课程管理系统初级建站推荐使用网上一键安装包,例如WordPress、discuz这类,比较适合新手操作。域名解析设置域名解析后,外部用户可通过域名访问网站。详情请参考设置域名解析快速入门。如需将域名指向一个IP地址,添加A记录即可。详情请参考如何添加不同记录类型的解析。至此,建站操作已基本完成,接下来您可使用域名测试访问是否正常。常见问题与解决方案在服务器使用或者网站搭建过程中,可能会遇到一些使用问题,因此,列举了以下最常见的问题和对应的解决方案。服务器远程连接Windows无法远程连接: 文档解决方案:无法连接 Windows 实例。视频教程:如何远程连接 Windows 实例。Linux无法远程连接: 文档解决方案:无法连接 Linux 实例。视频教程:如何远程连接 Linux 实例。安全组和快照如何设置安全组默认规则?安全组应用案例合集。如何创建自定义快照?网站无法访问Windows 实例带宽和CPU跑满或跑高怎么办?网站无法访问的常见原因及检查方法有哪些?Windows 实例网络访问丢包延时高怎么办?Linux 实例网站访问丢包延时高如何解决?域名解析已经生效,无法打开网站常规的原因有哪些?相关服务若在上云前希望了解如何选择适合自身业务特点的阿里云产品和配置,可点此查看架构设计&上云咨询服务。 若您需要将云下自建机房、托管机房等环境下的业务迁移到阿里云上, 并希望获取专业上云方案实施服务,可点此查看上云方案实施服务。 若您需要在阿里云服务器上部署站点环境、安装应用程序,可点此查看网站基础环境搭建服务。 基于阿里云服务器 ECS,若需要专业工程师协助对系统/数据库/站点进行基础设置,可使用云资源管理基础设置服务。
微笑de向阳 2019-12-02 02:10:58 0 浏览量 回答数 0

问题

JVM 发生 OOM 的 8 种原因、及解决办法

小A:xx服务又宕机了 小B:歪日,咋搞的,登上去看看咋回事 小A:又OOM了,不知道哪个**写的代码,一坨*一样。 撸Java的同...
游客pklijor6gytpx 2020-01-14 15:03:16 141 浏览量 回答数 1

问题

ECS Linux Apache 有哪些常见启动错误及解决办法

ECS Linux Apache 启动经常遇到各种错误,有的会导致 Apache 启动失败,本文对常见错误及解决办法进行说明。 Fatal error initialising mod_ssl, exiting错...
boxti 2019-12-01 21:55:24 1219 浏览量 回答数 0

问题

阿里云大数据专业认证考试形式和试卷结构是什么?

阿里云大数据专业认证(ACP级-Alibaba Cloud Certified Professional)考试形式和试卷结构 一、试卷满分及考试时间 试卷满分为100分,考试时间为120...
nicenelly 2019-12-01 21:24:01 1124 浏览量 回答数 0

问题

阿里云大数据专业认证考试形式和试卷结构是什么?

阿里云大数据专业认证(ACP级-Alibaba Cloud Certified Professional)考试形式和试卷结构 一、试卷满分及考试时间 试卷满分为100分,考试时间为120...
nicenelly 2019-12-01 21:06:16 1447 浏览量 回答数 0

回答

线网络优化是通过对现已运行的网络进行话务数据分析、现场测试数据采集、参数分析、硬件检查等手段,找出影响网络质量的原因,并且通过参数的修改、网络结构的调整、设备配置的调整和采取某些技术手段(采用MRP的规划办法等),确保系统高质量的运行,使现有网络资源获得最佳效益,以最经济的投入获得最大的收益。 二 GSM无线网络优化的常规方法 网络优化的方法很多,在网络优化的初期,常通过对OMC-R数据的分析和路测的结果,制定网络调整的方案。在采用图1的流程经过几个循环后,网络质量有了大幅度的提高。但仅采用上述方法较难发现和解决问题,这时通常会结合用户投诉和CQT测试办法来发现问题,结合信令跟踪分析法、话务统计分析法及路测分析法,分析查找问题的根源。在实际优化中,尤其以分析OMC-R话务统计报告,并辅以七号信令仪表进行A接口或Abis接口跟踪分析,作为网络优化最常用的手段。网络优化最重要的一步是如何发现问题,下面就是几种常用的方法: 1.话务统计分析法:OMC话务统计是了解网络性能指标的一个重要途径,它反映了无线网络的实际运行状态。它是我们大多数网络优化基础数据的主要根据。通过对采集到的参数分类处理,形成便于分析网络质量的报告。通过话务统计报告中的各项指标(呼叫成功率、掉话率、切换成功率、每时隙话务量、无线信道可用率、话音信道阻塞率和信令信道的可用率、掉话率及阻塞率等),可以了解到无线基站的话务分布及变化情况,从而发现异常,并结合其它手段,可分析出网络逻辑或物理参数设置的不合理、网络结构的不合理、话务量不均、频率干扰及硬件故障等问题。同时还可以针对不同地区,制定统一的参数模板,以便更快地发现问题,并且通过调整特定小区或整个网络的参数等措施,使系统各小区的各项指标得到提高,从而提高全网的系统指标。 2.DT (驱车测试):在汽车以一定速度行驶的过程中,借助测试仪表、测试手机,对车内信号强度是否满足正常通话要求,是否存在拥塞、干扰、掉话等现象进行测试。通常在DT中根据需要设定每次呼叫的时长,分为长呼(时长不限,直到掉话为止)和短呼(一般取60秒左右,根据平均用户呼叫时长定)两种(可视情况调节时长),为保证测试的真实性,一般车速不应超过40公里/小时。路测分析法主要是分析空中接口的数据及测量覆盖,通过DT测试,可以了解:基站分布、覆盖情况,是否存在盲区;切换关系、切换次数、切换电平是否正常;下行链路是否有同频、邻频干扰;是否有小岛效应;扇区是否错位;天线下倾角、方位角及天线高度是否合理;分析呼叫接通情况,找出呼叫不通及掉话的原因,为制定网络优化方案和实施网络优化提供依据。 3.CQT (呼叫质量测试或定点网络质量测试):在服务区中选取多个测试点,进行一定数量的拨打呼叫,以用户的角度反映网络质量。测试点一般选择在通信比较集中的场合,如酒店、机场、车站、重要部门、写字楼、集会场所等。它是DT测试的重要补充手段。通常还可完成DT所无法测试的深度室内覆盖及高楼等无线信号较复杂地区的测试,是场强测试方法的一种简单形式。 4.用户投诉:通过用户投诉了解网络质量。尤其在网络优化进行到一定阶段时,通过路测或数据分析已较难发现网络中的个别问题,此时通过可能无处不在的用户通话所发现的问题,使我们进一步了解网络服务状况。结合场强测试或简单的CQT测试,我们就可以发现问题的根源。该方法具有发现问题及时,针对性强等特点。 5.信令分析法:信令分析主要是对有疑问的站点的A接口、Abis接口的数据进行跟踪分析。通过对A接口采集数据分析,可以发现切换局数据不全(遗漏切换关系)、信令负荷、硬件故障(找出有问题的中继或时隙)及话务量不均(部分数据定义错误、链路不畅等原因)等问题。通过对Abis接口数据进行收集分析,主要是对测量仪表记录的LAY3信令进行分析,同时根据信号质量分布图、频率干扰检测图、接收电平分布图,结合对信令信道或话音信道占用时长等的分析,可以找出上、下行链路路径损耗过大的问题,还可以发现小区覆盖情况、一些无线干扰及隐性硬件故障等问题。 6.自动路测系统分析:采用安装于移动车辆上的自动路测终端,可以全程监测道路覆盖及通信质量。由于该终端能够将大量的信令消息和测量报告自动传回监控中心,可以及时发现问题,并对出现问题的地点进行分析,具有很强的时效性。所采用的方法同5。 在实际工作中,这几种方法都是相辅相成、互为印证的关系。GSM无线网络优化就是利用上述几种方法,围绕接通率、掉话率、拥塞率、话音质量和切换成功率及超闲小区、最坏小区等指标,通过性能统计测试→数据分析→制定实施优化方案→系统调整→重新制定优化目标→性能统计测试的螺旋式循环上升,达到网络质量明显改善的目的。 三 现阶段GSM无线网络优化方法 随着网络优化的深入进行,现阶段GSM无线网络优化的目标已越来越关注于用户对网络的满意程度,力争使网络更加稳定和通畅,使网络的系统指标进一步提高,网络质量进一步完善。 网络优化的工作流程具体包括五个方面:系统性能收集、数据分析及处理、制定网络优化方案、系统调整、重新制定网络优化目标。在网络优化时首先要通过OMC-R采集系统信息,还可通过用户申告、日常CQT测试和DT测试等信息完善问题的采集,了解用户对网络的意见及当前网络存在的缺陷,并对网络进行测试,收集网络运行的数据;然后对收集的数据进行分析及处理,找出问题发生的根源;根据数据分析处理的结果制定网络优化方案,并对网络进行系统调整。调整后再对系统进行信息收集,确定新的优化目标,周而复始直到问题解决,使网络进一步完善。 通过前述的几种系统性收集的方法,一般均能发现问题的表象及大部分问题产生的原因。 数据分析与处理是指对系统收集的信息进行全面的分析与处理,主要对电测结果结合小区设计数据库资料,包括基站设计资料、天线资料、频率规划表等。通过对数据的分析,可以发现网络中存在的影响运行质量的问题。如频率干扰、软硬件故障、天线方向角和俯仰角存在问题、小区参数设置不合理、无线覆盖不好、环境干扰、系统忙等。数据分析与处理的结果直接影响到网络运行的质量和下一步将采取的措施,因此是非常重要的一步。当然可以看出,它与第一步相辅相成,难以严格区分界限。 制定网络优化方案是根据分析结果提出改善网络运行质量的具体实施方案。 系统调整即实施网络优化,其基本内容包括设备的硬件调整(如天线的方位、俯仰调整,旁路合路器等)、小区参数调整、相邻小区切换参数调整、频率规划调整、话务量调整、天馈线参数调整、覆盖调整等或采用某些技术手段(更先进的功率控制算法、跳频技术、天线分集、更换电调或特型天线、新增微蜂窝、采用双层网结构、增加塔放等)。 测试网络调整后的结果。主要包括场强覆盖测试、干扰测试、呼叫测试和话务统计。 根据测试结果,重新制定网络优化目标。在网络运行质量已处于稳定、良好的阶段,需进一步提高指标,改善网络质量的深层次优化中出现的问题(用户投诉的处理,解决局部地区话音质量差的问题,具体事件的优化等等)或因新一轮建设所引发的问题。 四 网络优化常见问题及优化方案 建立在用户感知度上的网络优化面对的必然是对用户投诉问题的处理,一般有如下几种情况: 1.电话不通的现象 信令建立过程 在手机收到经PCH(寻呼信道)发出的pagingrequest(寻呼请求)消息后,因SDCCH拥塞无法将pagingresponse(寻呼响应)消息发回而导致的呼损。 对策:可通过调整SDCCH与TCH的比例,增加载频,调整BCC(基站色码)等措施减少SDCCH的拥塞。 因手机退出服务造成不能分配占用SDCCH而导致的呼损。 对策:对于盲区造成的脱网现象,可通过增加基站功率,增加天线高度来增加基站覆盖;对于BCCH频点受干扰造成的脱网现象,可通过改频、调整网络参数、天线下倾角等参数来排除干扰。 鉴权过程 因MSC与HLR、BSC间的信令问题,或MSC、HLR、BSC、手机在处理时失败等原因造成鉴权失败而导致的呼损。 对策:由于在呼叫过程中鉴权并非必须的环节,且从安全角度考虑也不需要每次呼叫都鉴权,因此可以将经过多少次呼叫后鉴权一次的参数调大。 加密过程 因MSC、BSC或手机在加密处理时失败导致呼损。 对策:目前对呼叫一般不做加密处理。 从手机占上SDCCH后进而分配TCH前 因无线原因(如RadioLinkFailure、硬件故障)使SDCCH掉话而导致的呼损。 对策:通过路测场强分析和实际拨打分析,对于无线原因造成的如信号差、存在干扰等问题,采取相应的措施解决;对于硬件故障,采用更换相应的单元模块来解决。 话音信道分配过程 因无线分配TCH失败(如TCH拥塞,或手机已被MSC分配至某一TCH上,因某种原因占不上TCH而导致链路中断等原因)而导致的呼损。 对策:对于TCH拥塞问题,可采用均衡话务量,调整相关小区服务范围的参数,启用定向重试功能等措施减少TCH的拥塞;对于占不上TCH的情况,一般是硬件故障,可通过拨打测试或分析话务统计中的CALLHOLDINGTIME参数进行故障定位,如某载频CALLHOLDINGTIME值小于10秒,则可断定此载频有故障。另外严重的同频干扰(如其它基站的BCCH与TCH同频)也会造成占不上TCH信道,可通过改频等措施解决。 2.电话难打现象 一般现象是较难占线、占线后很容易掉线等。这种情况首先应排除是否是TCH溢出的原因,如果TCH信道不足,则应增加信道板或通过增加微蜂窝或小区裂变的形式来解决。 排除以上原因后,一般可以考虑是否是有较强的干扰存在。可以是相邻小区的同邻频干扰或其它无线信号干扰源,或是基站本身的时钟同步不稳。这种问题较为隐蔽,需通过仔细分析层三信令和周围基站信息才能得出结论。 3. 掉话现象 掉话的原因几乎涉及网络优化的所有方面内容,尤其是在路测时发生的掉话,需要仔细分析。在路测时,需要对发生掉话的地段做电平和切换参数等诸多方面的分析。如果电平足够,多半是因为切换参数有问题或切入的小区无空闲信道。对话务较忙小区,可以让周围小区分担部分话务量。采用在保证不存在盲区的情况下,调整相关小区服务范围的参数,包括基站发射功率、天线参数(天线高度、方位角、俯仰角)、小区重选参数、切换参数及小区优先级设置的调整,以达到缩小拥塞小区的范围,并扩大周围一些相对较为空闲小区的服务范围。通过启用DirectedRetry(定向重试)功能,缓解小区的拥塞状况。上述措施仍不能满足要求的话,可通过实施紧急扩容载频的方法来解决。 对大多采用空分天线远郊或近郊的基站,如果主、分集天线俯仰角不一致,也极易造成掉话。如果参数设置无误,则可能是有些点信号质量较差。对这些信号质量较差而引起的掉话,应通过硬件调整的方式增加主用频点来解决。 4. 局部区域话音质量较差 在日常DT测试中,经常发现有很多微小的区域内,话音质量相当差、干扰大,信号弱或不稳定以及频繁切换和不断接入。这些地方往往是很多小区的交叠区、高山或湖面附近、许多高楼之间等。同样这种情况对全网的指标影响不明显,小区的话务统计报告也反映不出。这种现象一方面是由于频带资源有限,基站分布相对集中,频点复用度高,覆盖要求严格,必然不可避免的会产生局部的频率干扰。另一方面是由于在高层建筑林立的市区,手机接收的信号往往是基站发射信号经由不同的反射路径、散射路径、绕射路径的叠加,叠加的结果必然造成无线信号传播中的各种衰落及阴影效应,称之为多径干扰。此外,无线网络参数设置不合理也会造成上述现象。 在测试中RXQUAL的值反映了话音质量的好坏,信号质量实际是指信号误码率, RXQUAL=3(误码率:0.8%至1.6%),RXQUAL=4(误码率:1.6%至3.2%),当网络采用跳频技术时,由于跳频增益的原因,RXQUAL=3时,通话质量尚可,当RXQUAL≥6时,基本无法通话。 根据上述情况,通过对这些小区进行细致的场强覆盖测试和干扰测试,对场强覆盖测试数据进行分析,统计出RXLEV/RXQUAL之间对照表,如果某个小区域RXQUAL为6和7的采样统计数高而RXLEV大于-85dBm的采样数较高,一般可以认为该区域存在干扰。并在Neighbor-List中可分析出同频、邻频干扰频点。 5.多径干扰 如果直达路径信号(主信号)的接收电平与反射、散射等信号的接收电平差小于15dB,而且反射、散射等信号比主信号的时延超过4~5个GSM比特周期(1个比特周期=3.69μs),则可判断此区域存在较强的多径干扰。 多径干扰造成的衰落与频点及所在位置有关。多径衰落可通过均衡器采用的纠错算法得以改善,但这种算法只在信号衰落时间小于纠错码字在交织中分布占用的时间时有效。 采用跳频技术可以抑制多径干扰,因为跳频技术具有频率分集和干扰分集的特性。频率分集可以避免慢速移动的接收设备长时间处于阴影效应区,改善接收质量;而且可以充分利用均衡器的优点。干扰分集使所有的移动及基站接收设备所受干扰等级平均化。使产生干扰的几率大为减小,从而降低干扰程度。 采用天线分集和智能天线阵,对信号的选择性增强,也能降低多径干扰。 适当调整天线方位角,也可减小多径干扰。 若无线网络参数设置不合理,也会影响通话质量。如在DT测试中常常发现切换前话音质量较差,即RXQUAL较大(如5、6、7),而切换后,话音质量变得很好,RXQUAL很小(如0、1),而反方向行驶通过此区域时话音质量可能很好(RXQUAL为0、1),因为占用的服务小区不同。对于这种情况,是由于基于话音质量切换的门限值设置不合理。减小RXQUAL的切换门限值,如原先从RXQUAL≥4时才切换,改为RXQUAL≥3时就切换,可以提高许多区域的通话质量。因此,根据测试情况,找出最佳的切换地点,设置最佳切换参数,通过调整切换门限参数控制切换次数,通过修改相邻小区的切换关系提高通话质量。总之,根据场强测试可以优化系统参数。 值得一提的是,由于竞争的激烈及各运营商的越来越深化的要求,某些地方的运营商为完成任务,达到所谓的优化指标,随意调整放大一些对网络统计指标有贡献的参数,使网络看起来“质量很高”。然而,用户感觉到的仍是网络质量不好,从而招致更多用户的不满,这是不符合网络优化的宗旨的。 总之,网络优化是一项长期、艰巨的任务,进行网络优化的方法很多,有待于进一步探讨和完善。好在现在国内两大运营商都已充分认识到了这一点,网络质量也得到了迅速的提高,同时网络的经济效益也得到了充分发挥,既符合用户的利益又满足了运营商的要求,毫无疑问将是持续的双赢局面。 答案来源于网络
养狐狸的猫 2019-12-02 02:18:17 0 浏览量 回答数 0

问题

【精品问答】Java必备核心知识1000+(附源码)

为了方便Java开发者快速找到相关技术问题和答案,开发者社区策划了Java技术1000问内容,包含最基础的如何学Java、实践中遇到的技术问题、RocketMQ面试、Java容器部署实践等维度内容。 我们会以每...
问问小秘 2019-12-01 22:00:28 870 浏览量 回答数 1

回答

ECS Linux Apache 启动经常遇到各种错误,有的会导致 Apache 启动失败,本文对常见错误及解决办法进行说明。 ECS Linux Apache 因 mod_ssl 启动失败 问题现象 查看Apache错误日志如下: 执行配置检查  /alidata/server/httpd/bin/apachectl configtest,报错如下: 问题原因 mod_ssl.so 模块加载异常 解决方案 重新编译异常模块 到 Apache 源码路径(以一键安装包为例) /root/sh/sh-1.4.1/httpd-2.4.10/modules/ssl 1、执行如下命令: /alidata/server/httpd/bin/apxs -a -i -c -L /usr/lib64/openssl/engines/lib -c *.c -lcrypto -lssl -ldl 出现如下信息,代表编译正常: 2、再次执行配置检查  /alidata/server/httpd/bin/apachectl configtest,通过。 3、启动 Apache 成功   ECS Windows Apache 启动报错:错误模块 php5ts.dll,错误地址 0x000e890c 问题现象 启动 httpd 时,出现错误,查看日志,Apache 的 error.log 中记录为: [warn] pid file D:/Program Files/Apache Software Foundation/Apache2.2/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run? Windows 的事件查看器/应用程序中显示为: Application Error 中事件详细信息:错误应用程序 httpd.exe,版本 2.2.17.0,错误模块 php5ts.dll,版本 t5.3.5.0,错误地址 0x000e890c。 问题原因 涉及 php5ts.dll 错误的处理,一类是因为 PHP 只能使用自身版本的 dll,如果出现因为系统路径变量的原因,导致其他版本的 dll 先行引用,则出现错误。 针对此类错误,或是删除其他版本 dll;或修改系统 PATH 变量,将 PHP 的放在前面;或将 PHP 的 dll 放到系统的 System32 目录下。 不过,若确认路径没有问题,PATH 变量中 PHP 的安装目录还在 System32 前,也没有其他版本的 php5ts.dll,让然存在问题,请参考如下解决方法。 解决方案 查看 errorlog,找到报错无法 load 的模块,如下 [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_oci8.dll' - 找不到指定的模块。 in Unknown on line 0 [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_oci8_11g.dll' - 找不到指定的模块。 in Unknown on line 0 [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_pdo_oci.dll' - 找不到指定的模块。 in Unknown on line 0 [14-Mar-2011 10:22:15] PHP Warning: PHP Startup: Unable to load dynamic library 'D:\Program Files\PHP\ext\php_sybase_ct.dll' - 找不到指定的模块。 in Unknown on line 0 回到 php.ini 中,将上面 4 个模块注释掉: [PHP_OCI8];extension=php_oci8.dll[PHP_OCI8_11G];extension=php_oci8_11g.dll[PHP_PDO_OCI];extension=php_pdo_oci.dll[PHP_SYBASE_CT];extension=php_sybase_ct.dll 重新启动 Apache 成功。   ECS Apache 启动失败,日志错误:No space left on device: Couldn't create accept lock 问题现象 Apache 启动未报任何错误,但是启动后 ps -ef | grep httpd 看不到进程。errror_log 显示:No space left on device: Couldn't create accept lock 但是查看空间是正常的,没有空间不足的情况。 问题原因 用户进程通信信号量达到限制导致 解决方案 ipcs -s | grep nobody    #nobody 是创建 Apache 进程的用户名,一般情况下 daemon,根据自己的实际情况写。 使用   ipcs -s -l  可以查看当前系统的设置。 使用  ipcs -su  可以查看当前的使用量 使用  ipcs -s | grep nobody | awk '{print "ipcrm -s" $2}'|sh     可以 kill 掉信号。 然后重新启动 Apache 进程即可。 /etc/init.d/httpd -k start   ECS Apache 启动报错:Starting httpd: httpd: bad user name apache 问题现象 启动 Apache 的时候(例如使用命令“: /etc/init.d/httpd start”)出现错误 :Starting httpd: httpd: bad user name apache(如下图) 问题原因 造成该问题的原因是系统中不存在用户 apache,因此导致启动失败。 验证是否存在 apache 用户,可执行命令: id apache 如提示   “id: apache: No such user”,则说明 apache 用户不存在 解决方案 用以下命令: useradd apache 新创建一个 Apache 用户,然后再启动 httpd。   ECS Apache 启动告警:Could not reliably... qualified domain name 问题现象 Apache 启动报错如下: 问题原因 这是 Apache 的提示信息,因为在配置文件 httpd.conf 中没有绑定域名,这个提示信息就是告诉用户,需要给 Apache 绑定域名。 解决方案 修改 Apache 的配置文件 1.找到 Apache 配置文件的路径,例如阿里云一键安装脚本的路径是:/alidata/server/httpd/conf/ 目录 2.编辑 Apache的 配置文件:httpd.conf 找到 ServerName 一行,将默认的 #ServerName www.example.com:80 取消#号修改为 ServerName 127.0.0.1 注意: 也可以自定义域名 3.启动 Apache 服务 注意: 阿里云一键安装脚本启动方式  /alidata/server/httpd/bin/apachectl restart
KB小秘书 2019-12-02 01:27:51 0 浏览量 回答数 0

问题

TW自动化测试时遇到的脚本录制问题及解决方法?报错

自动化测试工具TestWriter使用时遇到的脚本录制问题及解决方法如下,欢迎大家一起沟通交流~ 1Web 1.1如何使用浏览器调试检查Xpath 1) IE9及以上浏览器。在被测页面按F12打开开发人员工...
爱吃鱼的程序员 2020-06-08 14:10:16 0 浏览量 回答数 1

回答

当日志采集发生异常时,您可以通过Logtail自助检测工具查看客户端是否存在异常情况,根据工具提示快速定位并解决问题。 说明 本工具目前仅支持Linux系统的服务器。 准备工作 下载检测工具脚本。 wget http://logtail-release.oss-cn-hangzhou.aliyuncs.com/linux64/checkingtool.sh -O checkingtool.sh 说明 如果无法正常下载,请通过以下备用地址重试。 wget http://logtail-corp.oss-cn-hangzhou-zmf.aliyuncs.com/linux64/checkingtool.sh -O checkingtool.sh 安装curl工具。 检查工具需要使用curl进行网络连通性检查,请确保机器已安装curl工具。 运行诊断工具 执行以下命令运行诊断工具: chmod 744 ./checkingtool.sh ./checkingtool.sh sh checkingtool.sh 回显信息: [Info]: Logtail checking tool version : 0.3.0 [Input]: please choose which item you want to check : 1. MachineGroup heartbeat fail. 2. MachineGroup heartbeat is ok, but log files have not been collected. Item : 请根据提示输入1或2,脚本会根据您的选择执行不同检查流程。 其中: 1表示执行机器组心跳检查,机器组心跳失败时请选择此项。 2表示执行日志采集检查,机器组心跳成功,但日志文件没有被采集时,请选择此项。 选择检查项目后,诊断工具会自动执行对应检查流程。 诊断流程 机器组心跳检查 选择机器组心跳检查流程后会进行下述一系列的检查: 基础环境检查。 是否安装Logtail。 是否运行Logtail。 SSL状态是否正常。 与日志服务之间是否有网络联通。 [Info]: Logtail checking tool version : 0.3.0 [Input]: please choose which item you want to check : 1. MachineGroup heartbeat fail. 2. MachineGroup heartbeat is ok, but log files have not been collected. Item :1 [Info]: Check logtail install files [Info]: Install file: ilogtail_config.json exists. [ OK ] [Info]: Install file: /etc/init.d/ilogtaild exists. [ OK ] [Info]: Install file: ilogtail exists. [ OK ] [Info]: Bin file: /usr/local/ilogtail/ilogtail_0.14.2 exists. [ OK ] [Info]: Logtail version : [ OK ] [Info]: Check logtail running status [Info]: Logtail is runnings. [ OK ] [Info]: Check network status [Info]: Logtail is using ip: 11.XX.XX.187 [Info]: Logtail is using UUID: 0DF18E97-0F2D-486F-B77F-XXXXXXXXXXXX [Info]: Check SSL status [Info]: SSL status OK. [ OK ] [Info]: Check logtail config server [Info]: config server address: http://config.sls.aliyun-inc.com [Info]: Logtail config server OK 若其中检查出现Error信息,请参考提示进行处理。 确认是否非本人ECS。 基础环境检查通过后,请确认您的服务器是否为ECS、是否由本账号购买。 若此服务器不是ECS或者ECS购买账号和日志服务账号不同,输入y,否则输入N。 [Input]: Is your server non-Alibaba Cloud ECS or not belong to the same account with the current Project of Log Service ? (y/N) 当输入y后,检查工具会输出本地配置的AliUid信息,请确认其中是否包含了您的AliUid,若未包含请参考文档创建AliUid标识。 [Input]: Is your server non-Alibaba Cloud ECS or not belong to the same account with the current Project of Log Service ? (y/N)y [Info]: Check aliyun user id(s) [Info]: aliyun user id : 126XXXXXXXXXX79 . [ OK ] [Info]: aliyun user id : 165XXXXXXXXXX50 . [ OK ] [Info]: aliyun user id : 189XXXXXXXXXX57 . [ OK ] [Input]: Is your project owner account ID is the above IDs ? (y/N) 检查Region。 请确认您的Project所在区域是否和Logtail安装时所选区域一致,若不一致请重新安装Logtail。 [Input]: please make sure your project is in this region : { cn-hangzhou } (y/N) : 检查IP配置。 请确认您机器组配置的IP和Logtail工作IP一致,若不一致请参考IP地址机器组修改。 若您配置的是自定义标识机器组,请确认本地配置的标识与服务端配置一致,若不一致请参考自定义标识机器组修改。 [Input]: please make sure your machine group's ip is same with : { 11.XX.XX.187 } or your machine group's userdefined-id is in : { XX-XXXXX } (y/N) : 日志采集检查 选择日志未采集检查流程后会进行下述一系列的检查: 确认IP配置。 请确认您机器组配置的ip和Logtail工作ip一致且心跳正常,若不一致请修改机器组。 [Input]: please make sure your machine group's ip is same with : { 11.XX.XX.187 } (y/N) : 确认采集配置应用。 请确认您的采集配置已经成功应用到该机器组中,如何查看机器组应用配置参见管理机器组。 [Input]: please make sure you have applied collection config to the machine group (y/N) :Y 检查日志文件。 检查时请输入您需要检查的日志文件全路径,若未找到匹配项,请确认配置的路径信息可以匹配给定的日志文件。 若配置错误请重新修改采集配置并保存,1分钟后再次执行此脚本重新检查。 [Input]: please input your log file's full path (eg. /var/log/nginx/access.log) :/disk2/logs/access.log [Info]: Check specific log file [Info]: Check if specific log file [ /disk2/logs/access.log ] is included by user config. [Warning]: Specific log file doesnt exist. [ Warning ] [Info]: Matched config found: [ OK ] [Info]: [Project] -> sls-zc-xxxxxx [Info]: [Logstore] -> release-xxxxxxx [Info]: [LogPath] -> /disk2/logs [Info]: [FilePattern] -> *.log 检查通过但采集依然异常 若所有的检查全部通过,但采集依然出现异常,请在脚本最后的选择中输入y并回车确认。 请您将检查脚本输出的信息作为附件,提交工单给我们的售后工程师。 [Input]: please make sure all the check items above have passed. If the problem persists, please copy all the outputs and submit a ticket in the ticket system. : (y/N)y 快速检查 快速检查运行时无需确认,可用于二次封装自定义检查脚本。 说明 快速检查运行时会输出客户端配置的阿里云ID和动态机器组/自定义标识,不存在时并不会给出告警,如果客户端需要阿里云ID或动态机器组/自定义标识的配置,请查看工具的输出和您配置的是否一致,不一致时按照以下方法重新配置:创建AliUid标识、自定义标识机器组。 操作步骤 请运行脚本./checkingtool.sh --logFile [LogFileFullPath]进行检查。 检测脚本发现异常时,请根据脚本提示进行处理。 说明 若指定日志文件检查通过且Logtail运行环境正常,建议进入阿里云控制台中查看该日志服务配置项的异常日志,参见诊断采集错误。 Logtail采集异常的常见问题 运行Logtail快速诊断工具后,可以诊断出Logtail采集异常的原因,您可以根据具体原因查找对应的解决方案。常见Logtail采集问题原因及解决方案如下。 常见问题 解决方法 安装文件丢失 重装Logtail。 Logtail未运行 使用命令/etc/init.d/ilogtaild start开启Logtail。 多个Logtail进程 使用命令/etc/init.d/ilogtaild stop关闭Logtail,然后执行命令/etc/init.d/ilogtaild start开启。 443端口被禁用 防火墙开放443端口。 无法找到配置服务器 确认是否已正确安装 Linux Logtail,若安装错误,重新执行安装命令。 不存在用户配置 确认是否已执行以下操作: 控制台已经创建好Logtail配置。 机器组中包含该服务器。 已经将配置应用到机器组。 没有匹配指定日志文件 确认是否正确配置了Logtail。 指定日志文件匹配多次 匹配多次时Logtail会随机选择一个配置,建议去重。 检测工具常用参数 常用参数 说明 --help 查看帮助文档。 --logFile [LogFileFullPath] 检测Logtail是否收集路径为LogFileFullPath的日志,同时检查基本的Logtail运行环境(安装文件完整性、运行状态、阿里云userID、网络连通性等)。 --logFileOnly [LogFileFullPath] 只检测Logtail是否收集路径为LogFileFullPath的日志。 --envOnly 只检测Logtail运行环境。
保持可爱mmm 2020-03-26 23:03:12 0 浏览量 回答数 0

问题

Android 常见问题有哪些

[backcolor=transparent][font="][backcolor=transparent]Q1:我能否在MainActivity中调用cloudpushservice.regi...
猫饭先生 2019-12-01 21:59:21 792 浏览量 回答数 0

问题

MaxCompute常见问题:MaxCompute 其他使用问题

mapjoin中大表和小表可以互换位置吗?MaxCompute 运行报错:OpenJDK 64-Bit Server VM warning: Insufficient space for shared memor...
行者武松 2019-12-01 22:09:48 1989 浏览量 回答数 1

回答

在工程实践上,为了保障系统的可用性,互联网系统大多将强一致性需求转换成最终一致性的需求,并通过系统执行幂等性的保证,保证数据的最终一致性。但在电商等场景中,对于数据一致性的解决方法和常见的互联网系统(如 MySQL 主从同步)又有一定区别,分成以下 6 种解决方案。(一)规避分布式事务——业务整合业务整合方案主要采用将接口整合到本地执行的方法。拿问题场景来说,则可以将服务 A、B、C 整合为一个服务 D 给业务,这个服务 D 再通过转换为本地事务的方式,比如服务 D 包含本地服务和服务 E,而服务 E 是本地服务 A ~ C 的整合。优点:解决(规避)了分布式事务。缺点:显而易见,把本来规划拆分好的业务,又耦合到了一起,业务职责不清晰,不利于维护。由于这个方法存在明显缺点,通常不建议使用。(二)经典方案 - eBay 模式此方案的核心是将需要分布式处理的任务通过消息日志的方式来异步执行。消息日志可以存储到本地文本、数据库或消息队列,再通过业务规则自动或人工发起重试。人工重试更多的是应用于支付场景,通过对账系统对事后问题的处理。消息日志方案的核心是保证服务接口的幂等性。考虑到网络通讯失败、数据丢包等原因,如果接口不能保证幂等性,数据的唯一性将很难保证。eBay 方式的主要思路如下。Base:一种 Acid 的替代方案此方案是 eBay 的架构师 Dan Pritchett 在 2008 年发表给 ACM 的文章,是一篇解释 BASE 原则,或者说最终一致性的经典文章。文中讨论了 BASE 与 ACID 原则在保证数据一致性的基本差异。如果 ACID 为分区的数据库提供一致性的选择,那么如何实现可用性呢?答案是BASE (basically available, soft state, eventually consistent)BASE 的可用性是通过支持局部故障而不是系统全局故障来实现的。下面是一个简单的例子:如果将用户分区在 5 个数据库服务器上,BASE 设计鼓励类似的处理方式,一个用户数据库的故障只影响这台特定主机那 20% 的用户。这里不涉及任何魔法,不过它确实可以带来更高的可感知的系统可用性。文章中描述了一个最常见的场景,如果产生了一笔交易,需要在交易表增加记录,同时还要修改用户表的金额。这两个表属于不同的远程服务,所以就涉及到分布式事务一致性的问题。文中提出了一个经典的解决方法,将主要修改操作以及更新用户表的消息放在一个本地事务来完成。同时为了避免重复消费用户表消息带来的问题,达到多次重试的幂等性,增加一个更新记录表 updates_applied 来记录已经处理过的消息。基于以上方法,在第一阶段,通过本地的数据库的事务保障,增加了 transaction 表及消息队列 。在第二阶段,分别读出消息队列(但不删除),通过判断更新记录表 updates_applied 来检测相关记录是否被执行,未被执行的记录会修改 user 表,然后增加一条操作记录到 updates_applied,事务执行成功之后再删除队列。通过以上方法,达到了分布式系统的最终一致性。进一步了解 eBay 的方案可以参考文末链接。(三)去哪儿网分布式事务方案随着业务规模不断地扩大,电商网站一般都要面临拆分之路。就是将原来一个单体应用拆分成多个不同职责的子系统。比如以前可能将面向用户、客户和运营的功能都放在一个系统里,现在拆分为订单中心、代理商管理、运营系统、报价中心、库存管理等多个子系统。拆分首先要面临的是什么呢?最开始的单体应用所有功能都在一起,存储也在一起。比如运营要取消某个订单,那直接去更新订单表状态,然后更新库存表就 ok 了。因为是单体应用,库在一起,这些都可以在一个事务里,由关系数据库来保证一致性。但拆分之后就不同了,不同的子系统都有自己的存储。比如订单中心就只管理自己的订单库,而库存管理也有自己的库。那么运营系统取消订单的时候就是通过接口调用等方式来调用订单中心和库存管理的服务了,而不是直接去操作库。这就涉及一个『分布式事务』的问题。分布式事务有两种解决方式优先使用异步消息。上文已经说过,使用异步消息 Consumer 端需要实现幂等。幂等有两种方式,一种方式是业务逻辑保证幂等。比如接到支付成功的消息订单状态变成支付完成,如果当前状态是支付完成,则再收到一个支付成功的消息则说明消息重复了,直接作为消息成功处理。另外一种方式如果业务逻辑无法保证幂等,则要增加一个去重表或者类似的实现。对于 producer 端在业务数据库的同实例上放一个消息库,发消息和业务操作在同一个本地事务里。发消息的时候消息并不立即发出,而是向消息库插入一条消息记录,然后在事务提交的时候再异步将消息发出,发送消息如果成功则将消息库里的消息删除,如果遇到消息队列服务异常或网络问题,消息没有成功发出那么消息就留在这里了,会有另外一个服务不断地将这些消息扫出重新发送。有的业务不适合异步消息的方式,事务的各个参与方都需要同步的得到结果。这种情况的实现方式其实和上面类似,每个参与方的本地业务库的同实例上面放一个事务记录库。比如 A 同步调用 B,C。A 本地事务成功的时候更新本地事务记录状态,B 和 C 同样。如果有一次 A 调用 B 失败了,这个失败可能是 B 真的失败了,也可能是调用超时,实际 B 成功。则由一个中心服务对比三方的事务记录表,做一个最终决定。假设现在三方的事务记录是 A 成功,B 失败,C 成功。那么最终决定有两种方式,根据具体场景:重试 B,直到 B 成功,事务记录表里记录了各项调用参数等信息;执行 A 和 B 的补偿操作(一种可行的补偿方式是回滚)。对 b 场景做一个特殊说明:比如 B 是扣库存服务,在第一次调用的时候因为某种原因失败了,但是重试的时候库存已经变为 0,无法重试成功,这个时候只有回滚 A 和 C 了。那么可能有人觉得在业务库的同实例里放消息库或事务记录库,会对业务侵入,业务还要关心这个库,是否一个合理的设计?实际上可以依靠运维的手段来简化开发的侵入,我们的方法是让 DBA 在公司所有 MySQL 实例上预初始化这个库,通过框架层(消息的客户端或事务 RPC 框架)透明的在背后操作这个库,业务开发人员只需要关心自己的业务逻辑,不需要直接访问这个库。总结起来,其实两种方式的根本原理是类似的,也就是将分布式事务转换为多个本地事务,然后依靠重试等方式达到最终一致性。(四)蘑菇街交易创建过程中的分布式一致性方案交易创建的一般性流程我们把交易创建流程抽象出一系列可扩展的功能点,每个功能点都可以有多个实现(具体的实现之间有组合/互斥关系)。把各个功能点按照一定流程串起来,就完成了交易创建的过程。面临的问题每个功能点的实现都可能会依赖外部服务。那么如何保证各个服务之间的数据是一致的呢?比如锁定优惠券服务调用超时了,不能确定到底有没有锁券成功,该如何处理?再比如锁券成功了,但是扣减库存失败了,该如何处理?方案选型服务依赖过多,会带来管理复杂性增加和稳定性风险增大的问题。试想如果我们强依赖 10 个服务,9 个都执行成功了,最后一个执行失败了,那么是不是前面 9 个都要回滚掉?这个成本还是非常高的。所以在拆分大的流程为多个小的本地事务的前提下,对于非实时、非强一致性的关联业务写入,在本地事务执行成功后,我们选择发消息通知、关联事务异步化执行的方案。消息通知往往不能保证 100% 成功;且消息通知后,接收方业务是否能执行成功还是未知数。前者问题可以通过重试解决;后者可以选用事务消息来保证。但是事务消息框架本身会给业务代码带来侵入性和复杂性,所以我们选择基于 DB 事件变化通知到 MQ 的方式做系统间解耦,通过订阅方消费 MQ 消息时的 ACK 机制,保证消息一定消费成功,达到最终一致性。由于消息可能会被重发,消息订阅方业务逻辑处理要做好幂等保证。所以目前只剩下需要实时同步做、有强一致性要求的业务场景了。在交易创建过程中,锁券和扣减库存是这样的两个典型场景。要保证多个系统间数据一致,乍一看,必须要引入分布式事务框架才能解决。但引入非常重的类似二阶段提交分布式事务框架会带来复杂性的急剧上升;在电商领域,绝对的强一致是过于理想化的,我们可以选择准实时的最终一致性。我们在交易创建流程中,首先创建一个不可见订单,然后在同步调用锁券和扣减库存时,针对调用异常(失败或者超时),发出废单消息到MQ。如果消息发送失败,本地会做时间阶梯式的异步重试;优惠券系统和库存系统收到消息后,会进行判断是否需要做业务回滚,这样就准实时地保证了多个本地事务的最终一致性。(五)支付宝及蚂蚁金融云的分布式服务 DTS 方案业界常用的还有支付宝的一种 xts 方案,由支付宝在 2PC 的基础上改进而来。主要思路如下,大部分信息引用自官方网站。分布式事务服务简介分布式事务服务 (Distributed Transaction Service, DTS) 是一个分布式事务框架,用来保障在大规模分布式环境下事务的最终一致性。DTS 从架构上分为 xts-client 和 xts-server 两部分,前者是一个嵌入客户端应用的 JAR 包,主要负责事务数据的写入和处理;后者是一个独立的系统,主要负责异常事务的恢复。核心特性传统关系型数据库的事务模型必须遵守 ACID 原则。在单数据库模式下,ACID 模型能有效保障数据的完整性,但是在大规模分布式环境下,一个业务往往会跨越多个数据库,如何保证这多个数据库之间的数据一致性,需要其他行之有效的策略。在 JavaEE 规范中使用 2PC (2 Phase Commit, 两阶段提交) 来处理跨 DB 环境下的事务问题,但是 2PC 是反可伸缩模式,也就是说,在事务处理过程中,参与者需要一直持有资源直到整个分布式事务结束。这样,当业务规模达到千万级以上时,2PC 的局限性就越来越明显,系统可伸缩性会变得很差。基于此,我们采用 BASE 的思想实现了一套类似 2PC 的分布式事务方案,这就是 DTS。DTS在充分保障分布式环境下高可用性、高可靠性的同时兼顾数据一致性的要求,其最大的特点是保证数据最终一致 (Eventually consistent)。简单的说,DTS 框架有如下特性:最终一致:事务处理过程中,会有短暂不一致的情况,但通过恢复系统,可以让事务的数据达到最终一致的目标。协议简单:DTS 定义了类似 2PC 的标准两阶段接口,业务系统只需要实现对应的接口就可以使用 DTS 的事务功能。与 RPC 服务协议无关:在 SOA 架构下,一个或多个 DB 操作往往被包装成一个一个的 Service,Service 与 Service 之间通过 RPC 协议通信。DTS 框架构建在 SOA 架构上,与底层协议无关。与底层事务实现无关: DTS 是一个抽象的基于 Service 层的概念,与底层事务实现无关,也就是说在 DTS 的范围内,无论是关系型数据库 MySQL,Oracle,还是 KV 存储 MemCache,或者列存数据库 HBase,只要将对其的操作包装成 DTS 的参与者,就可以接入到 DTS 事务范围内。一个完整的业务活动由一个主业务服务与若干从业务服务组成。主业务服务负责发起并完成整个业务活动。从业务服务提供 TCC 型业务操作。业务活动管理器控制业务活动的一致性,它登记业务活动中的操作,并在活动提交时确认所有的两阶段事务的 confirm 操作,在业务活动取消时调用所有两阶段事务的 cancel 操作。”与 2PC 协议比较,没有单独的 Prepare 阶段,降低协议成本。系统故障容忍度高,恢复简单(六)农信网数据一致性方案电商业务公司的支付部门,通过接入其它第三方支付系统来提供支付服务给业务部门,支付服务是一个基于 Dubbo 的 RPC 服务。对于业务部门来说,电商部门的订单支付,需要调用支付平台的支付接口来处理订单;同时需要调用积分中心的接口,按照业务规则,给用户增加积分。从业务规则上需要同时保证业务数据的实时性和一致性,也就是支付成功必须加积分。我们采用的方式是同步调用,首先处理本地事务业务。考虑到积分业务比较单一且业务影响低于支付,由积分平台提供增加与回撤接口。具体的流程是先调用积分平台增加用户积分,再调用支付平台进行支付处理,如果处理失败,catch 方法调用积分平台的回撤方法,将本次处理的积分订单回撤。用户信息变更公司的用户信息,统一由用户中心维护,而用户信息的变更需要同步给各业务子系统,业务子系统再根据变更内容,处理各自业务。用户中心作为 MQ 的 producer,添加通知给 MQ。APP Server 订阅该消息,同步本地数据信息,再处理相关业务比如 APP 退出下线等。我们采用异步消息通知机制,目前主要使用 ActiveMQ,基于 Virtual Topic 的订阅方式,保证单个业务集群订阅的单次消费。总结分布式服务对衍生的配套系统要求比较多,特别是我们基于消息、日志的最终一致性方案,需要考虑消息的积压、消费情况、监控、报警等。
小川游鱼 2019-12-02 01:46:40 0 浏览量 回答数 0

问题

算法工程师必知必会10大基础算法! 6月23日 【今日算法】

算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。 事实上࿰...
游客ih62co2qqq5ww 2020-06-23 13:36:00 6 浏览量 回答数 1

问题

【精品问答】Java技术1000问(1)

为了方便Java开发者快速找到相关技术问题和答案,开发者社区策划了Java技术1000问内容,包含最基础的如何学Java、实践中遇到的技术问题、RocketMQ面试、Java容器部署实践等维度内容。 我们会以每...
问问小秘 2019-12-01 21:57:43 46087 浏览量 回答数 16

问题

【精品问答】130+大数据面试汇总

Hadoop 相关试题 Hive 相关试题 hive表关联查询,如何解决数据倾斜的问题? hive内部表和外部表的区别 Spark 相关试题 Spark Core面试篇01 随着Spark技术在企业中应用越来越广泛...
问问小秘 2019-12-01 21:52:42 1644 浏览量 回答数 2

问题

MaxCompute最佳实践:分区剪裁合理性评估

背景及目的 MaxCompute的 分区表是指在创建表时指定分区空间,即指定表内的某几个字段作为分区列。在使用数据时,如果指定了需要访问的分区名称,则只会读取相应的分区,避免全表扫...
行者武松 2019-12-01 22:09:26 1127 浏览量 回答数 0

问题

什么是Linux 实例常用内核网络参数介绍与常见问题处理

本文总结了常见的 Linux 内核参数及相关问题。修改内核参数前,您需要: 从实际需要出发,最好有相关数据的支撑,不建议随意调整内核参数。了解参数的具体作用,且注意同类型...
boxti 2019-12-01 22:01:36 2069 浏览量 回答数 0

问题

MaxCompute百问集锦(持续更新20171011)

大数据计算服务(MaxCompute,原名 ODPS)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案。MaxCompute 向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效...
隐林 2019-12-01 20:19:23 38430 浏览量 回答数 18

问题

【精品问答】python技术1000问(1)

为了方便python开发者快速找到相关技术问题和答案,开发者社区策划了python技术1000问内容,包含最基础的如何学python、实践中遇到的技术问题、python面试等维度内容。 我们会以每天至少50条的...
问问小秘 2019-12-01 21:57:48 456417 浏览量 回答数 22

问题

【每日一题】Java知识大测验 | 持续更新

每天更新一题 让大家在休息时间可以轻松学习! 下面是关于JAVA的题目,每日更新~ (PS:大家要看清题号,需要答案的同学可以看下方留言) 1-24题链接 93--题链接 92...
游客ih62co2qqq5ww 2020-03-27 23:52:17 473 浏览量 回答数 1

问题

投递日志到MaxCompute有什么意义?

功能优势 日志服务收集的日志除了可以被实时查询外,还可以把日志数据投递到大数据计算服务MaxCompute(原ODPS),进一步进行个性化BI分析及数据挖掘。通过日志服务投递日志数...
轩墨 2019-12-01 21:57:02 1275 浏览量 回答数 0

回答

如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。 很多人都对其中的一些概念不够明确,如同步、并发等等,让我们先建立一个数据字典,以免产生误会。 多线程:指的是这个程序(一个进程)运行时产生了不止一个线程 并行与并发: 并行:多个cpu实例或者多台机器同时执行一段处理逻辑,是真正的同时。 并发:通过cpu调度算法,让用户看上去同时执行,实际上从cpu操作层面不是真正的同时。并发往往在场景中有公用的资源,那么针对这个公用的资源往往产生瓶颈,我们会用TPS或者QPS来反应这个系统的处理能力。 并发与并行 线程安全:经常用来描绘一段代码。指在并发的情况之下,该代码经过多线程使用,线程的调度顺序不影响任何结果。这个时候使用多线程,我们只需要关注系统的内存,cpu是不是够用即可。反过来,线程不安全就意味着线程的调度顺序会影响最终结果,如不加事务的转账代码: void transferMoney(User from, User to, float amount){ to.setMoney(to.getBalance() + amount); from.setMoney(from.getBalance() - amount); } 同步:Java中的同步指的是通过人为的控制和调度,保证共享资源的多线程访问成为线程安全,来保证结果的准确。如上面的代码简单加入@synchronized关键字。在保证结果准确的同时,提高性能,才是优秀的程序。线程安全的优先级高于性能。 好了,让我们开始吧。我准备分成几部分来总结涉及到多线程的内容: 扎好马步:线程的状态 内功心法:每个对象都有的方法(机制) 太祖长拳:基本线程类 九阴真经:高级多线程控制类 扎好马步:线程的状态 先来两张图: 线程状态 线程状态转换 各种状态一目了然,值得一提的是"blocked"这个状态:线程在Running的过程中可能会遇到阻塞(Blocked)情况 调用join()和sleep()方法,sleep()时间结束或被打断,join()中断,IO完成都会回到Runnable状态,等待JVM的调度。 调用wait(),使该线程处于等待池(wait blocked pool),直到notify()/notifyAll(),线程被唤醒被放到锁定池(lock blocked pool ),释放同步锁使线程回到可运行状态(Runnable) 对Running状态的线程加同步锁(Synchronized)使其进入(lock blocked pool ),同步锁被释放进入可运行状态(Runnable)。 此外,在runnable状态的线程是处于被调度的线程,此时的调度顺序是不一定的。Thread类中的yield方法可以让一个running状态的线程转入runnable。内功心法:每个对象都有的方法(机制) synchronized, wait, notify 是任何对象都具有的同步工具。让我们先来了解他们 monitor 他们是应用于同步问题的人工线程调度工具。讲其本质,首先就要明确monitor的概念,Java中的每个对象都有一个监视器,来监测并发代码的重入。在非多线程编码时该监视器不发挥作用,反之如果在synchronized 范围内,监视器发挥作用。 wait/notify必须存在于synchronized块中。并且,这三个关键字针对的是同一个监视器(某对象的监视器)。这意味着wait之后,其他线程可以进入同步块执行。 当某代码并不持有监视器的使用权时(如图中5的状态,即脱离同步块)去wait或notify,会抛出java.lang.IllegalMonitorStateException。也包括在synchronized块中去调用另一个对象的wait/notify,因为不同对象的监视器不同,同样会抛出此异常。 再讲用法: synchronized单独使用: 代码块:如下,在多线程环境下,synchronized块中的方法获取了lock实例的monitor,如果实例相同,那么只有一个线程能执行该块内容 复制代码 public class Thread1 implements Runnable { Object lock; public void run() { synchronized(lock){ ..do something } } } 复制代码 直接用于方法: 相当于上面代码中用lock来锁定的效果,实际获取的是Thread1类的monitor。更进一步,如果修饰的是static方法,则锁定该类所有实例。 public class Thread1 implements Runnable { public synchronized void run() { ..do something } } synchronized, wait, notify结合:典型场景生产者消费者问题 复制代码 /** * 生产者生产出来的产品交给店员 */ public synchronized void produce() { if(this.product >= MAX_PRODUCT) { try { wait(); System.out.println("产品已满,请稍候再生产"); } catch(InterruptedException e) { e.printStackTrace(); } return; } this.product++; System.out.println("生产者生产第" + this.product + "个产品."); notifyAll(); //通知等待区的消费者可以取出产品了 } /** * 消费者从店员取产品 */ public synchronized void consume() { if(this.product <= MIN_PRODUCT) { try { wait(); System.out.println("缺货,稍候再取"); } catch (InterruptedException e) { e.printStackTrace(); } return; } System.out.println("消费者取走了第" + this.product + "个产品."); this.product--; notifyAll(); //通知等待去的生产者可以生产产品了 } 复制代码 volatile 多线程的内存模型:main memory(主存)、working memory(线程栈),在处理数据时,线程会把值从主存load到本地栈,完成操作后再save回去(volatile关键词的作用:每次针对该变量的操作都激发一次load and save)。 volatile 针对多线程使用的变量如果不是volatile或者final修饰的,很有可能产生不可预知的结果(另一个线程修改了这个值,但是之后在某线程看到的是修改之前的值)。其实道理上讲同一实例的同一属性本身只有一个副本。但是多线程是会缓存值的,本质上,volatile就是不去缓存,直接取值。在线程安全的情况下加volatile会牺牲性能。太祖长拳:基本线程类 基本线程类指的是Thread类,Runnable接口,Callable接口Thread 类实现了Runnable接口,启动一个线程的方法:  MyThread my = new MyThread();  my.start(); Thread类相关方法:复制代码 //当前线程可转让cpu控制权,让别的就绪状态线程运行(切换)public static Thread.yield() //暂停一段时间public static Thread.sleep() //在一个线程中调用other.join(),将等待other执行完后才继续本线程。    public join()//后两个函数皆可以被打断public interrupte() 复制代码 关于中断:它并不像stop方法那样会中断一个正在运行的线程。线程会不时地检测中断标识位,以判断线程是否应该被中断(中断标识值是否为true)。终端只会影响到wait状态、sleep状态和join状态。被打断的线程会抛出InterruptedException。Thread.interrupted()检查当前线程是否发生中断,返回booleansynchronized在获锁的过程中是不能被中断的。 中断是一个状态!interrupt()方法只是将这个状态置为true而已。所以说正常运行的程序不去检测状态,就不会终止,而wait等阻塞方法会去检查并抛出异常。如果在正常运行的程序中添加while(!Thread.interrupted()) ,则同样可以在中断后离开代码体 Thread类最佳实践:写的时候最好要设置线程名称 Thread.name,并设置线程组 ThreadGroup,目的是方便管理。在出现问题的时候,打印线程栈 (jstack -pid) 一眼就可以看出是哪个线程出的问题,这个线程是干什么的。 如何获取线程中的异常 不能用try,catch来获取线程中的异常Runnable 与Thread类似Callable future模式:并发模式的一种,可以有两种形式,即无阻塞和阻塞,分别是isDone和get。其中Future对象用来存放该线程的返回值以及状态 ExecutorService e = Executors.newFixedThreadPool(3); //submit方法有多重参数版本,及支持callable也能够支持runnable接口类型.Future future = e.submit(new myCallable());future.isDone() //return true,false 无阻塞future.get() // return 返回值,阻塞直到该线程运行结束 九阴真经:高级多线程控制类 以上都属于内功心法,接下来是实际项目中常用到的工具了,Java1.5提供了一个非常高效实用的多线程包:java.util.concurrent, 提供了大量高级工具,可以帮助开发者编写高效、易维护、结构清晰的Java多线程程序。1.ThreadLocal类 用处:保存线程的独立变量。对一个线程类(继承自Thread)当使用ThreadLocal维护变量时,ThreadLocal为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其它线程所对应的副本。常用于用户登录控制,如记录session信息。 实现:每个Thread都持有一个TreadLocalMap类型的变量(该类是一个轻量级的Map,功能与map一样,区别是桶里放的是entry而不是entry的链表。功能还是一个map。)以本身为key,以目标为value。主要方法是get()和set(T a),set之后在map里维护一个threadLocal -> a,get时将a返回。ThreadLocal是一个特殊的容器。2.原子类(AtomicInteger、AtomicBoolean……) 如果使用atomic wrapper class如atomicInteger,或者使用自己保证原子的操作,则等同于synchronized //返回值为booleanAtomicInteger.compareAndSet(int expect,int update) 该方法可用于实现乐观锁,考虑文中最初提到的如下场景:a给b付款10元,a扣了10元,b要加10元。此时c给b2元,但是b的加十元代码约为:复制代码 if(b.value.compareAndSet(old, value)){ return ;}else{ //try again // if that fails, rollback and log} 复制代码 AtomicReference对于AtomicReference 来讲,也许对象会出现,属性丢失的情况,即oldObject == current,但是oldObject.getPropertyA != current.getPropertyA。这时候,AtomicStampedReference就派上用场了。这也是一个很常用的思路,即加上版本号3.Lock类  lock: 在java.util.concurrent包内。共有三个实现: ReentrantLockReentrantReadWriteLock.ReadLockReentrantReadWriteLock.WriteLock 主要目的是和synchronized一样, 两者都是为了解决同步问题,处理资源争端而产生的技术。功能类似但有一些区别。 区别如下:复制代码 lock更灵活,可以自由定义多把锁的枷锁解锁顺序(synchronized要按照先加的后解顺序)提供多种加锁方案,lock 阻塞式, trylock 无阻塞式, lockInterruptily 可打断式, 还有trylock的带超时时间版本。本质上和监视器锁(即synchronized是一样的)能力越大,责任越大,必须控制好加锁和解锁,否则会导致灾难。和Condition类的结合。性能更高,对比如下图: 复制代码 synchronized和Lock性能对比 ReentrantLock    可重入的意义在于持有锁的线程可以继续持有,并且要释放对等的次数后才真正释放该锁。使用方法是: 1.先new一个实例 static ReentrantLock r=new ReentrantLock(); 2.加锁       r.lock()或r.lockInterruptibly(); 此处也是个不同,后者可被打断。当a线程lock后,b线程阻塞,此时如果是lockInterruptibly,那么在调用b.interrupt()之后,b线程退出阻塞,并放弃对资源的争抢,进入catch块。(如果使用后者,必须throw interruptable exception 或catch)     3.释放锁    r.unlock() 必须做!何为必须做呢,要放在finally里面。以防止异常跳出了正常流程,导致灾难。这里补充一个小知识点,finally是可以信任的:经过测试,哪怕是发生了OutofMemoryError,finally块中的语句执行也能够得到保证。 ReentrantReadWriteLock 可重入读写锁(读写锁的一个实现)   ReentrantReadWriteLock lock = new ReentrantReadWriteLock()  ReadLock r = lock.readLock();  WriteLock w = lock.writeLock(); 两者都有lock,unlock方法。写写,写读互斥;读读不互斥。可以实现并发读的高效线程安全代码4.容器类 这里就讨论比较常用的两个: BlockingQueueConcurrentHashMap BlockingQueue阻塞队列。该类是java.util.concurrent包下的重要类,通过对Queue的学习可以得知,这个queue是单向队列,可以在队列头添加元素和在队尾删除或取出元素。类似于一个管  道,特别适用于先进先出策略的一些应用场景。普通的queue接口主要实现有PriorityQueue(优先队列),有兴趣可以研究 BlockingQueue在队列的基础上添加了多线程协作的功能: BlockingQueue 除了传统的queue功能(表格左边的两列)之外,还提供了阻塞接口put和take,带超时功能的阻塞接口offer和poll。put会在队列满的时候阻塞,直到有空间时被唤醒;take在队 列空的时候阻塞,直到有东西拿的时候才被唤醒。用于生产者-消费者模型尤其好用,堪称神器。 常见的阻塞队列有: ArrayListBlockingQueueLinkedListBlockingQueueDelayQueueSynchronousQueue ConcurrentHashMap高效的线程安全哈希map。请对比hashTable , concurrentHashMap, HashMap5.管理类 管理类的概念比较泛,用于管理线程,本身不是多线程的,但提供了一些机制来利用上述的工具做一些封装。了解到的值得一提的管理类:ThreadPoolExecutor和 JMX框架下的系统级管理类 ThreadMXBeanThreadPoolExecutor如果不了解这个类,应该了解前面提到的ExecutorService,开一个自己的线程池非常方便:复制代码 ExecutorService e = Executors.newCachedThreadPool(); ExecutorService e = Executors.newSingleThreadExecutor(); ExecutorService e = Executors.newFixedThreadPool(3); // 第一种是可变大小线程池,按照任务数来分配线程, // 第二种是单线程池,相当于FixedThreadPool(1) // 第三种是固定大小线程池。 // 然后运行 e.execute(new MyRunnableImpl()); 复制代码 该类内部是通过ThreadPoolExecutor实现的,掌握该类有助于理解线程池的管理,本质上,他们都是ThreadPoolExecutor类的各种实现版本。请参见javadoc: ThreadPoolExecutor参数解释 翻译一下:复制代码 corePoolSize:池内线程初始值与最小值,就算是空闲状态,也会保持该数量线程。maximumPoolSize:线程最大值,线程的增长始终不会超过该值。keepAliveTime:当池内线程数高于corePoolSize时,经过多少时间多余的空闲线程才会被回收。回收前处于wait状态unit:时间单位,可以使用TimeUnit的实例,如TimeUnit.MILLISECONDS workQueue:待入任务(Runnable)的等待场所,该参数主要影响调度策略,如公平与否,是否产生饿死(starving)threadFactory:线程工厂类,有默认实现,如果有自定义的需要则需要自己实现ThreadFactory接口并作为参数传入。 阿里云优惠券地址https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=nb3paa5b
景凌凯 2019-12-02 01:40:35 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT 阿里云科技驱动中小企业数字化