• 关于

    工作地能干什么

    的搜索结果

问题

[精品问答]Java一百问第一期

java之父高斯林,Java的缔造者。 而Java发展至今,使用者已占领市场七成。 动心者仍在观望,使用者“爱恨交加” 以下是为每一个java使用者整理的灵魂百问,大部分都是踩坑经验...
问问小秘 2019-12-01 21:51:20 791 浏览量 回答数 1

问题

荆门开诊断证明-scc

(微)电〗【186-6605-3854〗号【精品问答】Java技术1000问(1) 问问小秘 2019-11-15 11:24:15 9099 为了方便Java开发者快速找到相关技术问题和答案,开发...
游客5k2abgdj3m2ti 2019-12-01 22:09:00 1 浏览量 回答数 0

问题

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

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

问题

【Java问答学堂】9期 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?

面试题 es 写入数据的工作原理是什么啊?es 查询数据的工作原理是什么啊?底层的 lucene 介绍一下呗?倒排索引了解吗?面试题 es 写入数据的工作原理是什么啊?...
剑曼红尘 2020-04-27 14:35:38 0 浏览量 回答数 1

回答

官方的解释相信大家都已经了解了,不了解也没有关系。现在从常识的角度来给大家解释和说明。OpenStack是一个云平台管理的项目,它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目,OpenStack被公认作为基础设施即服务(简称IaaS)资源的通用前端。如果这些还不明白,那么从另外的角度给大家介绍:首先让大家看下面两个图就很简单明了了:此图为openstack的登录界面下面是openstack的一个管理界面从这两个图,相信有一定开发经验,就能看出openstack是什么了。可以说他是一个框架,甚至可以从软件的角度来理解它。如果不明白,就从传统开发来讲解。不知道你是否了解oa,erp等系统,如果不了解可以到网上去找,资料一大把。他和oa,erp有什么不同。很简单就是openstack是用做云计算的一个平台,或则一个解决方案。它是云计算一个重要组成部分。上面对openstack有了一个感性的认识。(2)openstack能干什么。大家都知道阿里云平台,百度云平台,而阿里云平台据传说就是对openstack的二次开发。对于二次开发相信只要接触过软件的都会明白这个概念。不明白的自己网上去查一下。也就是说openstack,可以搭建云平台,什么云平台,公有云,私有云。现在百度在招聘的私有云工程师,应该就是这方面的人才。(3)openstack自身都包含什么以下是5个OpenStack的重要构成部分:lNova–计算服务lSwift–存储服务lGlance–镜像服务lKeystone–认证服务lHorizon–UI服务图1OpenStack基本构架下图展示了Keystone、Dashboard二者与其它OpenStack部分的交互。下面详细介绍每一个服务:(一)OpenStack计算设施—-NovaNova是OpenStack计算的弹性控制器。OpenStack云实例生命期所需的各种动作都将由Nova进行处理和支撑,这就意味着Nova以管理平台的身份登场,负责管理整个云的计算资源、网络、授权及测度。虽然Nova本身并不提供任何虚拟能力,但是它将使用libvirtAPI与虚拟机的宿主机进行交互。Nova通过Web服务API来对外提供处理接口,而且这些接口与Amazon的Web服务接口是兼容的。功能及特点l实例生命周期管理l计算资源管理l网络与授权管理l基于REST的APIl异步连续通信l支持各种宿主:Xen、XenServer/XCP、KVM、UML、VMwarevSphere及Hyper-VOpenStack计算部件lNova弹性云包含以下主要部分:lAPIServer(nova-api)l消息队列(rabbit-mqserver)l运算工作站(nova-compute)l网络控制器(nova-network)l卷管理(nova-volume)l调度器(nova-scheduler)API服务器(nova-api)API服务器提供了云设施与外界交互的接口,它是外界用户对云实施管理的唯一通道。通过使用web服务来调用各种EC2的API,接着API服务器便通过消息队列把请求送达至云内目标设施进行处理。作为对EC2-api的替代,用户也可以使用OpenStack的原生API,我们把它叫做“OpenStackAPI”。消息队列(RabbitMQServer)OpenStack内部在遵循AMQP(高级消息队列协议)的基础上采用消息队列进行通信。Nova对请求应答进行异步调用,当请求接收后便则立即触发一个回调。由于使用了异步通信,不会有用户的动作被长置于等待状态。例如,启动一个实例或上传一份镜像的过程较为耗时,API调用就将等待返回结果而不影响其它操作,在此异步通信起到了很大作用,使整个系统变得更加高效。运算工作站(nova-compute)运算工作站的主要任务是管理实例的整个生命周期。他们通过消息队列接收请求并执行,从而对实例进行各种操作。在典型实际生产环境下,会架设许多运算工作站,根据调度算法,一个实例可以在可用的任意一台运算工作站上部署。网络控制器(nova-network)网络控制器处理主机的网络配置,例如IP地址分配,配置项目VLAN,设定安全群组以及为计算节点配置网络。卷工作站(nova-volume)卷工作站管理基于LVM的实例卷,它能够为一个实例创建、删除、附加卷,也可以从一个实例中分离卷。卷管理为何如此重要?因为它提供了一种保持实例持续存储的手段,比如当结束一个实例后,根分区如果是非持续化的,那么对其的任何改变都将丢失。可是,如果从一个实例中将卷分离出来,或者为这个实例附加上卷的话,即使实例被关闭,数据仍然保存其中。这些数据可以通过将卷附加到原实例或其他实例的方式而重新访问。因此,为了日后访问,重要数据务必要写入卷中。这种应用对于数据服务器实例的存储而言,尤为重要。调度器(nova-scheduler)调度器负责把nova-API调用送达给目标。调度器以名为“nova-schedule”的守护进程方式运行,并根据调度算法从可用资源池中恰当地选择运算服务器。有很多因素都可以影响调度结果,比如负载、内存、子节点的远近、CPU架构等等。强大的是nova调度器采用的是可插入式架构。目前nova调度器使用了几种基本的调度算法:随机化:主机随机选择可用节点;可用化:与随机相似,只是随机选择的范围被指定;简单化:应用这种方式,主机选择负载最小者来运行实例。负载数据可以从别处获得,如负载均衡服务器。(二)OpenStack镜像服务器—-GlanceOpenStack镜像服务器是一套虚拟机镜像发现、注册、检索系统,我们可以将镜像存储到以下任意一种存储中:本地文件系统(默认)lOpenStack对象存储lS3直接存储lS3对象存储(作为S3访问的中间渠道)lHTTP(只读)功能及特点提供镜像相关服务Glance构件lGlance控制器lGlance注册器(三)OpenStack存储设施—-SwiftSwift为OpenStack提供一种分布式、持续虚拟对象存储,它类似于AmazonWebService的S3简单存储服务。Swift具有跨节点百级对象的存储能力。Swift内建冗余和失效备援管理,也能够处理归档和媒体流,特别是对大数据(千兆字节)和大容量(多对象数量)的测度非常高效。功能及特点l海量对象存储l大文件(对象)存储l数据冗余管理l归档能力—–处理大数据集l为虚拟机和云应用提供数据容器l处理流媒体l对象安全存储l备份与归档l良好的可伸缩性Swift组件lSwift账户lSwift容器lSwift对象lSwift代理lSwiftRINGSwift代理服务器用户都是通过Swift-API与代理服务器进行交互,代理服务器正是接收外界请求的门卫,它检测合法的实体位置并路由它们的请求。此外,代理服务器也同时处理实体失效而转移时,故障切换的实体重复路由请求。Swift对象服务器对象服务器是一种二进制存储,它负责处理本地存储中的对象数据的存储、检索和删除。对象都是文件系统中存放的典型的二进制文件,具有扩展文件属性的元数据(xattr)。注意:xattr格式被Linux中的ext3/4,XFS,Btrfs,JFS和ReiserFS所支持,但是并没有有效测试证明在XFS,JFS,ReiserFS,Reiser4和ZFS下也同样能运行良好。不过,XFS被认为是当前最好的选择。Swift容器服务器容器服务器将列出一个容器中的所有对象,默认对象列表将存储为SQLite文件(译者注:也可以修改为MySQL,安装中就是以MySQL为例)。容器服务器也会统计容器中包含的对象数量及容器的存储空间耗费。Swift账户服务器账户服务器与容器服务器类似,将列出容器中的对象。Ring(索引环)Ring容器记录着Swift中物理存储对象的位置信息,它是真实物理存储位置的实体名的虚拟映射,类似于查找及定位不同集群的实体真实物理位置的索引服务。这里所谓的实体指账户、容器、对象,它们都拥有属于自己的不同的Rings。(四)OpenStack认证服务(Keystone)Keystone为所有的OpenStack组件提供认证和访问策略服务,它依赖自身REST(基于IdentityAPI)系统进行工作,主要对(但不限于)Swift、Glance、Nova等进行认证与授权。事实上,授权通过对动作消息来源者请求的合法性进行鉴定。如下图所示:Keystone采用两种授权方式,一种基于用户名/密码,另一种基于令牌(Token)。除此之外,Keystone提供以下三种服务:l令牌服务:含有授权用户的授权信息l目录服务:含有用户合法操作的可用服务列表l策略服务:利用Keystone具体指定用户或群组某些访问权限认证服务组件服务入口:如Nova、Swift和Glance一样每个OpenStack服务都拥有一个指定的端口和专属的URL,我们称其为入口(endpoints)。l区位:在某个数据中心,一个区位具体指定了一处物理位置。在典型的云架构中,如果不是所有的服务都访问分布式数据中心或服务器的话,则也称其为区位。l用户:Keystone授权使用者译者注:代表一个个体,OpenStack以用户的形式来授权服务给它们。用户拥有证书(credentials),且可能分配给一个或多个租户。经过验证后,会为每个单独的租户提供一个特定的令牌。[来源:]l服务:总体而言,任何通过Keystone进行连接或管理的组件都被称为服务。举个例子,我们可以称Glance为Keystone的服务。l角色:为了维护安全限定,就云内特定用户可执行的操作而言,该用户关联的角色是非常重要的。译者注:一个角色是应用于某个租户的使用权限集合,以允许某个指定用户访问或使用特定操作。角色是使用权限的逻辑分组,它使得通用的权限可以简单地分组并绑定到与某个指定租户相关的用户。l租间:租间指的是具有全部服务入口并配有特定成员角色的一个项目。译者注:一个租间映射到一个Nova的“project-id”,在对象存储中,一个租间可以有多个容器。根据不同的安装方式,一个租间可以代表一个客户、帐号、组织或项目。(五)OpenStack管理的Web接口—-HorizonHorizon是一个用以管理、控制OpenStack服务的Web控制面板,它可以管理实例、镜像、创建密匙对,对实例添加卷、操作Swift容器等。除此之外,用户还可以在控制面板中使用终端(console)或VNC直接访问实例。总之,Horizon具有如下一些特点:l实例管理:创建、终止实例,查看终端日志,VNC连接,添加卷等l访问与安全管理:创建安全群组,管理密匙对,设置浮动IP等l偏好设定:对虚拟硬件模板可以进行不同偏好设定l镜像管理:编辑或删除镜像l查看服务目录l管理用户、配额及项目用途l用户管理:创建用户等l卷管理:创建卷和快照l对象存储处理:创建、删除容器和对象l为项目下载环境变量
游客2q7uranxketok 2021-02-20 14:47:42 0 浏览量 回答数 0

回答

21天Java打卡活动结业感想 Q1: 1、这次21天Java打卡活动中,你最大的收获是什么?说说你认为的《Alibaba Java技术图谱》在内容上的优缺点。 **A1:**通过本次21天打卡的活动,本人最大的收获,一是技术上的进步,二是重新拾起了当年在大学努力学编程的热血。技术上的进步在于,是学习到了Dubbo和K8S,本人有Netflix Spring Cloud的经验,所以远程服务调用一直热衷于http的方式,Dubbo的RPC方案从来没有进行过深入研究。最近本人所在公司也开始尝试使用K8S,但是苦于业务繁多,一直抽不出时间去系统地学习,这俩技术一直是本人短板所在,通过本次坚持打卡,从0开始学习这两个技术,使我个人的技术有了不少长进,技术视野也开阔了不少。拾起当年努力学习编程的热血在于,本次打卡,好像给我一种驱动力,每天都坚持,要知道工作以后,就很少像学生时期那样狠狠要求自己每天都进步一点点了。虽然课程中很多内容我在学生时期就已经学会,但是这些会的基础还是会过目一遍,虽然开始的时候很是不情愿,但有趣的是,通过几天的坚持,竟然拾回一些早就遗忘的技术细节,常年来的开发经验和书面上的基础知识竟然又重新摩擦起新的火花,这倒是我原来意想不到的收获。 Alibaba技术图谱的优点:把整个java工程师的职业发展生涯所需要使用到的技术做了很好的概览,从零基础应该学习的入门语法,面向对象的编程思想,到编程小白学习的开发单机简易版的java web,再到职场小白学习的各种主流框架技术,再到成为一名合格工程师 应该学习的分布式实战,容器编排的实战,最后到一名优秀工程师学习的JVM高级特性,各种技术的实现原理,性能调优等。帮助了每一位在成长路上的Java开发,省去了很多重新找资料学习的时间,这部分是真的很值得赞扬的。至于缺点嘛,倒也算不太上,就是还可以再全面一些,前面java基础感觉就有点照搬以前的java路线图了,咋看大纲咋这么熟悉,然后里面还有些是传智播客的老视频,画质高糊,哈哈,本人学生时期也是看传智播客和黑马的视频过来的,不由得感叹时间过得真快,其实这也挺好,技术学习资源共享嘛,省去重新找轮子的时间。至于JSP嘛,我本人是不太建议去学,除非真的公司业务需要维护这样的老旧系统。像用java搞全栈的话,模板引擎倒是个不错的选择,例如SpringBoot推荐的Thymeleaf,JSP很强不可否认,但是随着互联网发展至今,应用都比较庞大,前后端分离是普遍现象,JSP涉及的职责太多,强关联于java,不便设置样式 对后期的维护和应用的拓展很是不便,而逐渐没落,像Thymeleaf还是很有必要了解下的,模板引擎的设计思想也可以用到例如像CMS(内容管理系统),配置短信模板这些应用的设计上面。所以建议图谱能将Thymeleaf的内容补充上去,替换掉老旧的JSP教程。框架章节,主流的消息队列也只是Kafka和Rabbitmq,而阿里自己开源的Rocketmq的教程最好也能并入框架章节简单讲讲,充分发挥自己厂的优势嘛,虽然rocketmq时效性没rabbitmq好,但是Rocketmq吞吐量、可用性、使用方便性还是优于Rabbitmq的。另外像阿里系的Alibaba SpringCloud的教程、包括这段时间阿里云力推的Serverless也可以纳入图谱当中来。真的十分期待图谱能不断地完善下去。 **Q2:**结合你的生活或工作经历,谈谈你对Java技术的看法。以及作为一名开发爱好者,你认为Java相较于其他语言,是否具有它自己的优势?请围绕你的观点展开详述。 **A2:**我对java还是比较热爱的,它比较成熟,在python火起来之前,我一直认为它相较于其他语言来说都是比较容易入门的,我当初就是由于C学不懂,然后学java发现能看的明白,学到一定程度后,一个偶然的机会接着看回C,居然“曲线救国”,C也能逐渐理解了。尤其是它面向对象的思想,也能运用在我生活当中,遇到一些复杂的问题,我总是会优先想办法看能不能抽出事物的专有特征,然后设计一套通用的解决方案,无论是生活还是学习,这种思维对于我的个人提升起到很大的帮助。本人还接触过C#,Python,最终选择了Java作为我的职业方向,曾经我听过各种说辞,也会产生"java的优势到底是什么"这样的疑惑,例如GO语言天生支持高并发,C++做服务端处理速度更快,后面Python火了,好像各方面碾压Java,我也因为当初Scrapy框架做爬虫的火热,开始入坑了Python。但是对比一下,Java好像哪方面都不突出,但是它火了这么多年依然热度不减。其实我是工作中,参与团队开发的过程才发现,Java实际最主流应用于web开发,原因在于Java的生态强大,有前人帮把优秀的算法全都封装好了,并且不断持续地进行优化,我们不必再重新造轮子。我曾问过我搞C++或C的朋友,他们好多东西都要自己去实现,而Java基本都能找到开源的库开箱即用。而且SpringBoot问世后,配合Java庞大的生态,开发简直是无敌的存在,除了少部分需求,使用开源库不能满足,需要自己重新造轮子外,其余业务真的秒杀般完成。或者你会说Python有Django和Flask可与SpringBoot一战,确实Django开发甚至比Springboot更加快捷,代码量更少,但是工程化而言,Java还是更具优势。一个大型的Web项目,最重要的是团队协作,人际沟通成本也是非常巨大的。团队协作的过程中难免会需要理解队友写的代码,Java工程管理有Maven或者Gradle的,强类型的语言,而且没有提供过多的语法糖,最多也就stream用一用,lambda表达式用一用(C++早有了,jdk出到8才支持,吐槽下),虽然java是比较啰嗦,但我能很快理解队友的代码写了啥,团队有共同的认知,减少很多不必要的沟通成本,较大的Web工程还是Java合适。Django能干全栈,生态也能和SpringBoot有的一拼,但是python解释型的语言,效率自然是相较于编译型的语言慢了。还有一个重要的在于Django业务层和View层难免偶尔过重,过大的项目不便于解耦和维护。所以还是使用于较小的项目,至于上微服务的层面,现阶段Django还是有所欠缺的,SpringCloud则有了很完备的解决方案。综上,我认为Java现阶段最核心的优势在于大型Java Web的开发生态以及优秀的工程管理能力。 **Q3:**如果让你推荐一本书给Java 初学者,你会推荐哪本书? **A3:**如果是完全零基础的初学者,我想我会推荐《疯狂Java讲义》作为他第一本书。曾经也有师弟师妹,和同事找我推荐书,其实我更倾向于先了解他们当前的情况,再去给他们做推荐。本人接触过绝大部分的初学者,他们当中大多数人更适合看视频,但也有少部分人沉得下心照着书本或技术文档敲代码。本人刚开始学的时候基础并不算太好,找同学推荐书,然后去学校图书馆翻了一天的书,抱了一大摞回宿舍,最后发现《疯狂Java讲义》讲的比较通俗易懂,一个外行人都理解,本人当初就抱着这本书对着代码敲,学习起来也不算吃力。到了后面接触到很多业界更为优秀的书之后,再看《疯狂Java讲义》难免会有错漏,但它生动有趣,在当年成功激起我学习编程的兴趣。本人始终相信兴趣是第一老师,要是初学小白被业界公认的好书里面提到的晦涩难懂的专业术语折磨惨了,我想他学习这门课程的兴趣也不是很大,我有时候对于一些想要初学的朋友,都是推荐《疯狂Java讲义》,要是朋友嫌弃它的厚度,我则会建议他们花1个月的时间看完《21天Java入门到精通》这一类书,等看完我再给他们推荐别的,虽然这类书内容质量算不上优秀。作为初学者,能简单快速入个门,也未尝不可,等心中有了Java的大概,再去看优秀的书籍,什么阶段就学什么样的内容,循序渐进,定会消化得更快,理解的更加透彻。
会java的小胖纸 2021-03-10 10:19:55 0 浏览量 回答数 0

回答

OSC 第 128 期高手问答 -- Python3 开发实战 @壁_花 @idisikx @hell0cat @DarkAngel @北京老爷们儿      恭喜以上五位网友或获得《Python Web开发实战》图书一本  请私信 @博文视点   告知快递信息(格式:姓名+电话+地址+邮编号码)!  ######@dongwm :不知作者有没有涉及过大数据方向的?我看部分大数据相关的都要用到python这是为什么?Hadoop整个生态圈都是Java的,python的定位是什么?######@dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢?######@dongwm : 按照“没有银弹”一说,python应该也有自己的适用范围吧,是不是比较适用于机器学习,不适合于web开发呢?######Python被称为「胶水语言」,虽然没有「统治」哪个领域,但是基本上个个领域都把手伸了进去。 机器学习我不熟不敢妄谈是不是更合适。我只能说,Python很适合web开发######使用豆瓣很多年,很喜欢豆瓣的风格。之前一直是在网页端浏览,后来又到了手机app端。我总体感觉豆瓣的进步很快。我想问的问题是,python web一直作为豆瓣的开发首选,是因为什么?还有关于豆瓣的权限模块的设计时,python web发挥了什么优势。作为手机端app的开发,python web会起到什么作用吗?######回复 @机器猫123 : 会的。也许不会开源,但是酱厂里面确实有很多不错的实现######回复 @dongwm : 未来豆瓣会继续用python web衍生开发新的产品吗?######回复 @dongwm : 谢谢老师的回答。######豆瓣选择Python,其实是公司和语言的风格很相似的缘故吧。我们做事喜欢优雅,清晰,高效,这这好也是Python希望的。 豆瓣的基础设施基本都是使用Python完成,包含权限部分,但是Python web和权限模块设计感觉没啥直接的关系,就是抽出来的库和使用它的关系,我也没懂有什么优势或者劣势。 豆瓣app的API后端是使用PythonWeb完成的###### 引用来自“DarkAngel”的评论 @dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢? 引用来自“dongwm”的评论ROR我倒没有实际的用过,不敢妄言。Python最大的优势是他是一个「胶水」语言,在工作中的各个方向都能看到Python对应的库的身影,学会Python会让你的路比较宽,但是用ruby,可能在我印象里面就是Web开发比较有名。我现在还没有发现做Web开发有比Python效率高的方式。 其实很多人都担心Python的执行效率,然而其实绝大多数情况Python足够快,不快的话要先看看自己是不是用得不对或者不好。现在硬件资源很廉价,除非上升到BAT那种规模,否者基本还没有到达讨论语言瓶颈的问题。现在豆瓣绝大多数基础设施都是使用Python开发的。在Web开发中,我们很少通过写扩展的方式提高性能,其实编程语言一般都不是网站性能的瓶颈,还可以通过其他方式解决。 之前学ROR是因为老师要求用这个,我没有用Python进行Web开发的经验,稍微有一点了解的也只是Flask或者Falcon这种轻量级的,感觉能够快速开发小巧的应用,但是不知道有哪个特别出名的应用或者网站系统是由Python开发的(比如WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python确实是一种比较万能的语言,但有点万金油却不够专精的感觉。比如在科学计算方面很流行,但是论效率不如Julia,论支持库的丰富和使用广泛度不如Matlab(特别是学校里面,教授做研究或者教学一般都会用Matlab);在系统管理方面看,能用Python干的脚本化工作,用shell或者perl基本上都能干,而且需要写的代码行数说不定更少。如果说用Python进行Web开发效率高,是有特指某一个框架吗,还是泛指? 我在写程序时首先会想到用Python,是因为喜欢tial-and-error这种方式,能够在正式写代码前确认想法能不能实现,能够让我有兴趣和信心继续下去。但真要说起来,能够提供REPL特性的语言也不少。 Python的执行效率貌似永远是Python热门的讨论话题,比如GIL的存在必须要用特殊的方式来优化。像gevent和Tornado之类的存在也适用于高并发的网络连接(不过Python在这方面的性能不一定是最高的,没有看过相关的测试)。再说Python的实现,除了最出名的CPython和PyPy之外,甚至还有为嵌入式设备开发的MicroPython(这也在另一方面说明了Python的万能性)。Dropbox的技术栈中也使用了Python,并且有开发面向性能的Python实现pyston,此外还有Stackless Python(听名字感觉很厉害,虽然其实我并没有去了解这到底是什么),但它家也在用Golang和Rust开发高性能的东西。那么,豆瓣的基础设施实现中,用Python开发的应用效率如何?也有使用除了CPython之外的实现来进行优化吗?(我是不是扯得有点偏题了?) ######回复 @dongwm : 那么用Python来开发Web,是否属于那种会带来这种优势的选择呢?或者有没有哪家公司通过把技术栈切换到Python而带来了这种进步?######回复 @dongwm : 以现在的硬件发展水平,基本上任何数量级的访问都可以通过硬件的堆砌获得支持。不过经常会看到新闻,比如某某公司将它的某某技术构架从XX语言切换到了YY语言,然后获得了性能提升、提高了稳定性、减少了部署的服务器等优势,(我记忆中有看到Twitter的新闻,PHP 7的新闻,还有一些其他的)。######豆瓣每天服务着千万级别的用户(抱歉不能说具体数字)的请求,绝大多数应用和基础设施都是Python实现的。所以应用效率不用担心。虽然可以使用C/C++的扩展提高运行效率,但是我接触的场景里面很少。相当于写扩展的维护性和成本,大家更愿意从架构,算法等方面来解决。######嚯,你的问题好长。 进行Web开发效率高算是泛指,包含django和flask。效率高也体现在它们的第三方扩展和支持比较完善,基本能想到的都有对应的项目支持,这样少造了很多轮子。###### @dongwm :python的确很好,也很强大,我也一直在用,但我大都做的和web方面没有什么联系.而我对web方面挺感兴趣,但自学起来始终不得要领,进展有点慢,大神能否讲一讲web方面的学习经验,或者flask方面的心得.又或者推荐一些关于web好的学习资源.期待您的回答并致谢.###### @dongwm :了解Python基本知识,希望学习一门Python web框架学习后端开发。之前我对部分主流框架进行了一些了解:Django,Tornado,在知乎上有一个非常活跃的群体。在框架的选择问题上,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。 ######嗯 赞同你的观点。很多人在杞人忧天。先等活到有必要讨论语言的那一天,那时候早就有钱有人有时间,哪怕Python真的不满足,重构呗######@dongwm :Python确实越来越火了,知乎就是python做的,偶尔搞了一点,发现确实很高级,至少比java语言高级一些某些功能Java只需要写100行,而Python可能只要20行。做一些外维系统还是挺方便的,比如日志的提取等,之前学的是2.7版本,现在python3比之前的版本有哪些新特性呢? ######python 3是相当于站在Python2的肩膀上,摒弃了早年设计python 2的错误思想(所以有的地方向前不兼容),加了一些新的语法,比如asyncio,甚至type hint(我不喜欢)。 具体的内容可以看 https://docs.python.org/3/whatsnew/index.html。 总体上和Python 2区别不大。不用纠结Python 2/3###### @dongwm :初入门python,有c、java基础。再看《python基础教程(第二版)》。请问您有推荐的书籍吗?######我个人在知乎专栏写过一篇推荐书的文章 https://zhuanlan.zhihu.com/p/22198827。我建议有一些其他语言基础的同学好好地看看《Python学习手册》,如果你英语比较好,建议直接看原著。《Python基础教程》虽然是一个经典的入门教程,写作风格也相对轻松幽默,但是由于本书写作于2010年,书中有大量内容已经过时,所以不推荐! ========================== Python "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode ch:报错 {   "traceback": "  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/st2actions/container/base.py\", line 99, in _do_run\n    LOG.debug('Performing run for runner: %s' % (runner.runner_id), extra=extra)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 49, in wrapped_f\n    def wrapped_f(*args, **kw):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 206, in call\n    if not self.should_reject(attempt):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 247, in get\n    else:\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 200, in call\n    try:\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 219, in run\n    result = self.start(action_parameters=action_parameters)\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 256, in start\n    **options)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/v2/executions.py\", line 56, in create\n    return self._create('/executions', data)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 95, in _create\n    self._raise_api_exception(resp)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 143, in _raise_api_exception\n    error_message=error_data)\n",         "error": "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode character u'\\xae' in position 169: ordinal not in range(128)\n[u'Traceback (most recent call last):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/server.py\", line 155, in _process_incoming\\n    failure = None\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 222, in dispatch\\n    if hasattr(endpoint, method):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 192, in _do_dispatch\\n    new_args[argname] = self.serializer.deserialize_entity(ctxt, arg)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/engine/engine_server.py\", line 98, in start_workflow\\n    (rpc_ctx, workflow_identifier, utils.cut(workflow_input),\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 284, in cut\\n    return cut_dict(data, length=length)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 198, in cut_dict\\n    v = str(value)\\n', u\"UnicodeEncodeError: 'ascii' codec can't encode character u'\\\\xae' in position 169: ordinal not in range(128)\\n\"]." }
kun坤 2020-06-15 11:08:13 0 浏览量 回答数 0

云产品推荐

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