首页 文章 精选 留言 我的

精选列表

搜索[AI提效],共10000篇文章
优秀的个人博客,低调大师

Dirty Frag 漏洞曝光:主流 Linux 面临本地提权风险

在 Copy Fail 漏洞曝光一周后,一个新的 Linux 本地权限提升漏洞被公开。这次的漏洞名为“Dirty Frag”,由于安全研究人员提前发布了漏洞信息,因此目前还没有针对该漏洞的补丁或 CVE 编号。 Dirty Frag 漏洞允许本地用户在所有主流 Linux 发行版上提升至 root 权限。尽管目前各 Linux 发行版尚未发布补丁,但有兴趣的用户可以采用一种临时解决方案;不过正如科技媒体 Phoronix 所述,这也意味着在短期内所有主流发行版都存在 root 权限提升的风险。 Dirty Frag 漏洞存在于 esp4、esp6 和 rxrpc 内核代码的解密快速路径中。 对于大多数系统,可以使用以下命令安全地快速移除存在漏洞的模块: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true" 关于 Dirty Frag 的更多详情,可参阅 oss-security 邮件列表。此仓库也包含更多关于 Dirty Frag 的信息。 Alma Linux 是首批发布早期补丁供测试的 Linux 发行版之一。

优秀的个人博客,低调大师

提效率!降成本!

一个高效的 Java 应用开发框架:更快、更小、更简单。不是 Spring,没有 Servlet,也无关 JavaEE;新兴独立的开放生态。主框架仅 0.1 MB。 150来个生态插件,覆盖各种不同的应用开发场景: 相对于 Spring Boot 和 Spring Cloud 的项目: 启动快 5 ~ 10 倍。 (更快) qps 高 2~ 3 倍。 (更高) 运行时内存节省 1/3 ~ 1/2。 (更少) 打包可以缩小到 1/2 ~ 1/10;比如,300Mb 的变成了 23Mb。 (更小) 同时支持 jdk8, jdk11, jdk17, jdk19 似曾相似的体验,入门更简单,迁移很方便: @Controller public class App { public static void main(String[] args) { Solon.start(App.class, args, app->{ //手写模式 app.get("/", ctx -> ctx.outputAsJson("{message:'Hello world!'}")) }); } //注解模式 @Get @Socket @Mapping("/hello") public String hello(String name) { return String.format("Hello %s!", name); } } 入门探索视频(用户录制): 本次更新: 调整 solon// 删降 Aop;由 Solon.context() 替代 删除 Bean:attr,Component:attr 删除 BeanLoadEndEvent,PluginLoadEndEvent;由 AppBeanLoadEndEvent,AppPluginLoadEndEvent 替代 删除 Utils.parallel()...等几个弃用接口;由 RunUtil 替代 删除 Solon.global();由 Solon.app() 替代 删除 SolonApp::port();由 Solon.cfg().serverPort() 替代 删除 SolonApp::enableSafeStop();由 Solon.cfg().enableSafeStop() 替代 删作 AopContext::getProps();由 ::cfg() 替代 删除 AopContext::getWrapAsyn();由 ::getWrapAsync() 替代 删除 AopContext::subWrap();由 ::subWrapsOfType() 替代 删除 AopContext::subBean();由 ::subBeansOfType() 替代 删除 AopContext::getBeanAsyn();由::getBeanAsync() 替代 删除 Solon.cfg().version();由 Solon.version() 替代 删除 EventBus::pushAsyn();由 pushAsync() 替代 删除 PrintUtil::debug(),::info() 等...;由 LogUtil 替代 删除 @Mapping::before,after,index 属性;由 @Before,@After 或 RouterInterceptor 或 Solon.app().before(),after() 替代 删除 "solon.profiles.active" 应用配置(只在某版临时出现过);由 "solon.env" 替代 删除 "solon.extend.config" 应用配置(只在某版临时出现过);由 "solon.config" 替代 删除 "solon.encoding.request" 应用配置(只在某版临时出现过);由 "server.request.encoding" 替代 删除 "solon.encoding.response" 应用配置(只在某版临时出现过);由 "server.request.response" 替代 调整 DownloadedFile,UploadedFile 字段改为私有;由属性替代 调整 solon.i18n// 删除 I18nBundle::toMap();由 ::toProp() 替代 调整 solon.web.cors// 删除 ..extend.cores 包;由 ..web.cors 包替代 调整 solon.cloud// 删除 Media::bodyAsByts()..;由 ::bodyAsBytes() 替代 调整 solon.cloud.httputils// 删除 cloud.HttpUtils::asShortHttp()..;由 ::timeout() 替代 调整 solon.test// 删除 test.HttpUtils::exec2()..;由 ::execAsCode()..替代 调整 solon.boot// 删除 SessionStateBase/cookie[SOLONID2] 调整 mybatis-solon-plugin// 删除 org.apache.ibatis.ext.solon.Db;由 ..solon.annotation.Db 替代 调整 beetlsql-solon-plugin// 删除 org.beetl.sql.ext.solon.Db;由 ..solon.annotation.Db 替代 调整 sa-token-solon-plugin// 删除 SaTokenPathFilter 类,由 SaTokenFilter 替代 删除 SaTokenPathInterceptor 类,由 SaTokenInterceptor 替代 删除插件 httputils-solon-cloud-plugin;由 solon.cloud.httputils 替代 删除插件 solon.extend.stop;由 solon.web.stop 替代 删除插件 solon.extend.async;由 solon.scheduling 替代 删除插件 solon.schedule;由 solon.scheduling.simple 替代 删除插件 solon.extend.retry 删除插件 solon.extend.jsr330 删除插件 solon.extend.jsr303 删除插件 solon.logging.impl;由 solon.logging.simple 替代 新增插件 powerjob-solon-plugin 新增插件 powerjob-solon-cloud-plugin(支持 solon cloud job 标准) 调整 solon.scheduling/JobManger 添加更多注册时检测 调整 solon.banner/banner.txt 自定义默认机制 调整 sa-token-solon-plugin/isPrint 处理机制 调整 sa-token-solon-plugin 增加对 sso,oauth2 两模块的适配 调整 nami 添加 ContentTypes 类,提供便利的 content-type 常量 进一步了解 Solon: 《想法与架构笔记》 《生态预览》 《与 Spring Boot 的区别?》 《与 Spring Cloud 的区别?》 项目仓库: gitee:https://gitee.com/noear/solon github:https://github.com/noear/solon

优秀的个人博客,低调大师

两位 Apache Flink PMC 喜提 Apache Member

摘要:近期 Apache 软件基金会(以下简称 ASF )举行了一年一度的董事会选举会议,两位 Apache Flink PMC 当选为 2020 年 ASF 新成员,即 Apache Member。目前,国内(华人)近 30 位 Apache Member 中,有 3 位是 Apache Flink 的核心贡献者。他们热爱开源也为开源贡献,不仅积极参与社区与其他 PMC 成员共同规划、主导 Apache Flink 的发展,更活跃在多个开源项目,持续为开源社区做贡献。 随着越来越多的开发者参与 Flink 社区建设,Flink contributor、committer 等数量持续高速增长,贡献社区也必然能得到社区的反馈!如果你也热爱开源,想参与社区建设,不妨看看这篇文章:如何从小白成长为 Apache Committer? ▼ 以下为 Apache 官方博客的详细介绍 ▼ 文章来源 | 开源社、ACL Beijing相关作者 | Apache 博客、孙金城(ASF Member) 引言 今年 ASF 董事会选情相当热烈,十六位候选人参选九个席次。结果去年的九席董事换了七位,二位董事 Craig Russell 和 Shane Curcuru 续任。另外,去年的董事会选举后不久,有三位董事辞职,递补了三位董事,而这三位递补董事,今年则未续任。 这几年 ASF 理念和文化的激荡比较多,社区治理、多元化与包容(diversity & inclusion)的争议频繁,言辞激烈。ASF 倡导的共识与和谐原则正经历考验,ASF 董事会的剧烈变动其来有自。 特别值得注意的是,今年有几位董事参选人的参选宣言里,特别提到了中国的开源社区和项目的发展和贡献,也提到了他们曾数次参加中国开源年会(COSCon: China Open Source Conference ),第一手接触迅猛发展地中国开源运动;已经当选的董事 Niclas Hedhman 更在他的参选人宣言里写了一大段中文,请亚洲及中国区成员投票给他,看来是走心而有效的竞选宣言。 此前 ASF 全球成员(active)有 765 名,其中华人约有二十名(住址在中国或与国内联系较多的成员的有十位)。今年的 ASF 成员大会选出了 34 位新成员,其中十一名来自中国,是中国国内有史以来被提名并当选 ASF 成员的人数最多的一次。至此 ASF 成员里中国(华人)成员达到三十余位。在 ASF,来自中国的正式成员、项目及社区仍是相对少数,但是我们立足中国、贡献全球的努力成果正在不断地快速成长与呈现! ——刘天栋 Ted,开源社理事、联合创始人,ASF Member 2020 年度 Apache 软件基金会董事会 在上周 Apache 软件基金会(下称 ASF )举行了一年一度的董事会选举会议,会议上以下个人成员组成了新的董事会: Shane Curcuru (连任董事) Bertrand Delacretaz(原董事) Roy Fielding(原董事) Niclas Hedhman(新任董事) Justin Mclean(新任董事) Craig Russell (连任董事) Sam Ruby(原董事) Patricia Shanahan (新任董事) Sander Striker (原董事) 同时,ASF 要非常感谢去年的董事成员:Danny Angus、Rich Bowen、Ted Dunning、Dave Fisher、Myrle Krantz、Daniel Ruggeri、以及 Roman Shaposhnik,感谢他们卓越的服务。 让我们再次欢迎新任的董事,以及回归的董事们! 有关 ASF 治理的概述以及 ASF 董事会、执行官和项目/委员会副主席的完整列表,请访问:http://apache.org/foundation/。 有关 Apache 基金会的组织结构和运转方式,请移步:Apache 是如何运作的?。 2020 年之前的成员(10 位,按姓名拼音顺序排列,不分先后): 。陈亮 Liang Chen,深圳。蔡俊杰 Jack Cai,Seattle, U.S.。戴金权 Jason Dai,上海。堵俊平 Junping Du,北京。郭斯杰 Sijie Guo。韩卿 Luke Han,上海。姜宁 Willem Jiang,北京。刘天栋 Ted Liu,北京。张乎兴 Huxing Zhang,杭州。章剑锋 Jeff Zhang,上海 2020年新当选成员名单(11 位,按姓名拼音顺序排列,不分先后): 。陈恩平 Timothy Chen。冯嘉 Von Gosling,杭州。邵赛赛 Jerry Shao,上海。史少锋 ShaoFeng Shi,上海。孙金城 Jincheng Sun,杭州。谭望达 Wangda Tan,San Jose, U.S.。王小瑞 Xiaorui Wang,杭州。吴晟 Sheng Wu,北京。杨克特 Kurt Young,杭州。张铎 Duo Zhang,北京。张喆 Zhe Zhang,Mountain View, U.S. 关于以上成员的更多信息请参考 ASF Member list,http://home.apache.org/committers-by-project.html#member 接下来我们将逐一介绍 ASF 的组织治理、组织架构和职责、选举和任命以及项目治理,以下内容来源 ASF 成员孙金城先生就 Apache 官网博客所做的翻译,博客原文http://www.apache.org/foundation/governance/orgchart。 01 组织治理 总的来看,Apache 软件基金会( ASF )的治理相当简单:由成员( Member )来选举董事会;董事会任命各种管理人员并创建 PMCs ;PMCs 定期向董事会报告,大多数其他管理人员向总裁然汇报,然后总裁向董事会报告。 02 组织架构和职责 为了更好的管理,ASF 建立了如下架构: 现有成员( Member )会定期提名和选举新成员,每年提名并选举9名董事加入董事会。 董事会任命业务官员,并将特定政策或业务领域的责任分配给每位官员。例如,法律事务委员会副总裁负责为 ASF 和所有 Apache 项目设置法律政策,并与公司顾问进行合作。 董事会任命执行官,包括总裁,秘书,财务总监等,他们负责 ASF 的特定运营。 大多数官员每月直接向总裁报告,而总裁则每月向董事会报告 ASF 的整体运营状况。 基础设施副总裁向总裁汇报,并对基础设施团队的运营进行宏观监督。在团队中,带薪的基础设施 管理者角色有助于管理日常操作,带薪人员确定工作优先级,并维护所有 Apache 项目中使用的服务。 03 选举和任命 董事会创建并更新项目管理委员会( PMCs )。董事会只是批准孵化器的合理构建请求(毕业成为 TLPs )或来自 PMCs 自身(添加或删除 PMC 成员)的请求。在每种情况下,向董事会建议进行的变更都已经由相关的 PMC 完成了投票。如下图所示: 04 项目治理 每个 Apache PMC 都独立管理他们的项目,以 Apache 的方式,遵循由所有官员为所有项目设置的一些核心原则。如下图所示: PMC 每季度直接向董事会报告一次。董事会对 PMC 进行监督,以确保 PMC 健康发展,顺利的管理社区,确保 PMC 遵守 Apache 的原则。项目的技术方向由 PMC 指定,董事会不对项目提供技术治理。 每个 PMC 的主席都是该项目的副总裁,因此也是 ASF 的官员。主席的主要职责是确保项目报告全面,并提交到董事会。 PMC 对软件版本发布进行投票。PMC 进行适当的发布治理,进而确保了所有的源代码版本发布都是ASF自身的行为。 PMCs 为项目提名并选举新提交者( Committer )。PMCs 还负责提名并投票新的PMC 成员,然后 PMCs 向董事会汇报建议的变化。 Apache 孵化器( Incubator )是一种特殊的(I)PMC:它的工作是指导新的Podding 社区,以帮助他们学习 Apache Way 。在每个 Poddle 对他们的软件发布进行投票后,IPMC 成员也对该 Podling 的发布过程进行监督和投票,以确保Podding 逐渐成为一个合格的 Apache 项目。 根据政策,只有个人可以充当会员,提交者( Committer )或 PMC 成员( Member )或管理人员。这是 ASF 和 Apache 项目保持其独立性的一种方式。 # 社区活动推荐 # 普惠全球开发者,这一次,格外与众不同!首个 Apache 顶级项目在线会议 Flink Forward 全球直播中文精华版来啦,聚焦 Alibaba、Google、AWS、Uber、Netflix、新浪微博等海内外一线厂商,经典 Flink 应用场景,最新功能、未来规划一览无余。点击下方链接可了解更多大会详情:https://developer.aliyun.com/live/2594?spm=a2c6h.14242504.J_6074706160.2.3fca361f4cYyQx

优秀的个人博客,低调大师

什么技能产品经理不会提,但技术人必须懂?

阿里妹导读:缓存是搭建高性能高并发系统的必备手段之一,通常用来解决性能瓶颈,是程序员的必备知识点,也是面试必备考点。 尽管,产品经理大概率不会关注系统性能,但程序员在实现需求的时候必须思考系统承载的并发量和用户量。缓存主要用来解决性能瓶颈的问题,一旦错误使用反而会令系统崩溃。今天,我们就通过4W的方式系统化地总结缓存相关的理论知识。 随着互联网业务的快速迭代以及用户量激增,应用架构需要不断调整甚至重构以适应这种业务的快速发展。当数据量迅速增长,业务逻辑越复杂,服务链路不断增加等等一系列问题,会导致RT过长,服务性能需要逐渐提升以满足更优的用户体验。在优化系统架构时通常的所用的两种方式scale up以及scale out,scale out就是通常所说的水平扩展,将应用服务设计成无状态性,可以方便水平扩展通过增加硬件的方式分解访问压力。而scale up则是将单个服务链路性能提升,以提升QPS以及系统的吞吐量。在追求更优的性能时,大多数业务场景是读多写少的情况,一般会通过引入缓存的方式解决。 1. What——什么是缓存? 从定义上可以看出所谓缓存一定是针对已有数据的一个副本存在,也可以看出缓存的使用是为了解决快速访问数据(读数据)的场景。在现有的互联网应用中,缓存的使用是一种能够提升服务快速响应的关键技术,也是产品经理无暇顾及的非功能需求,需要在设计技术方案时对业务场景,具有一定的前瞻性评估后,决定在技术架构中是否需要引入缓存解决这种这种非功能需求。 缓存在计算机领域中实际案例存在很多,比如CPU的缓存是为了解决CPU的运算速度和内存的读取数据不平衡的问题,CPU的运算速度远快与内存的读写速度,为了降低CPU等待数据读写的时间,在CPU中引入L1/L2/L3多级缓存。 再比如Linux中的文件缓存,实际上我们在编程时,会谈论到数据的内存地址,但是我们接触的都是虚拟地址而不是真实的物理地址,计算机中的内存管理单元(MMU)和页表会将虚拟地址转换成物理地址。在计算机硬件领域中就已有很多关于缓存的应用案例,实际上在软件架构中关于缓存的设计会借鉴于很多传统且成熟的计算机硬件缓存设计的思想。 2. Why——为什么需要使用缓存? 软件服务能够得到用户的信赖,并将产品的价值带给用户,能够解决目标用户的痛点问题这是决定用户会不会一开始决定使用,也就是《增长黑客》中提到了产品能够带来给用户“啊哈时刻”,而决定用户会不会高频使用以及持续使用,用户体验则是被认为是软件产品提升用户黏性的关键影响因素。 2.1 什么是用户体验 用户体验被专业定义和推广需要推广到20世纪90年代,由Donald Norman布道推广。用户体验在人机交互领域上受到了重视,并一度和传统的三大可用性指标(即效率、效益以及基本满意度)不相上下。 ISO 9241-210标准将用户体验官方定义为:人们对正在使用或者期待使用的产品、系统或者服务的认知印象和回应。可以看出用户体验是用户的对软件产品的主观感受,具体包含了用户在使用之前、使用中以及使用后的情感、喜好、认知印象、心理反应以及情绪表达等等多种主观感受,每个用户对产品的主观感受的视角不同,关注点不同,也就导致软件产品让大多数用户都能够获得很好的用户体验本身就是一件很有挑战性的事情。 在业界大多数,将用户体验分为三类:使用者状态、软件产品的系统性能以及环境,使用者状态以及环境(使用者环境以及产品在同类产品中的产品大环境)这两个因素需要交互设计和用研等多个专业领域同学去攻克,软件开发者则需要解决系统性能的问题。对用户而言,最基本的需求就是在使用软件服务时,软件产品提供服务内容的及时性,也就是通常所说的在使用过程中持续的Loading(转菊花)一定会导致用户体验很差,内容的及时性也是系统性能的最低要求。 而系统性能的问题,是产品经理无暇顾及的点,也是非功能性需求,需要开发者去花心思去思考的地方。评估系统性能的指标有很多,在以提升用户体验为前提的情况下,我们需要着重关注的性能指标有哪些呢? 2.2 常见的性能指标 在设计软件架构时需要关注的几个常见指标:响应时间、延迟时间、吞吐量、并发用户数和资源利用率。 1)系统响应时间 :响应时间是指系统对用户请求做出响应的时间,不同的功能的链路长短不同,并且同一功能在不同数据量等这些情况都会导致响应时间的不同。因此,在衡量系统响应时间时,通常会关注软件产品所有功能的平均响应时间以及最大响应时间。 2)延迟时间 :在讨论系统响应时间时,更细粒度的划分可以划分为: 客户端在接受数据进行渲染的内容“呈现时间”; 服务端在接受用户请求发送至服务端以及服务端将数据返回到客户端这两个过程中涉及到的:网络传输时间以及应用延迟时间。应用延迟时间即是服务端在执行整个服务链路时所花费的时间,也是性能优化首要降低的就是这个时间。 3)吞吐量 :吞吐量指的是单位时间内能够处理请求的数量,对于无并发的应用来说,吞吐量和请求响应时间成反比,服务延迟更长则系统吞吐量更低。 4)并发用户数 :并发用户数指的是系统能够同时承载正常使用系统功能的用户数,相较于吞吐量,这个指标更为笼统但是对于非软件领域的人来说更容易理解。 5)资源利用率 :资源利用率反映的是在一段时间内资源被占用的情况。 2.3 缓存带来的优势 在追求更优的优化体验时,客观的来说需要不断提升以上这些性能指标,不断逼近系统体验的最优解。缓存到底具有什么样的优势,值得我们花费很大的精力去设计一套能很好的适应现在的业务场景的缓存结构呢? 1)极大的提升软件用户体验 软件产品主要围绕两个核心问题,一是解决目标用户的痛点问题,二是提升产品黏性。在提供软件服务时,抽象的来看是解决数据在整个链路上的流转问题,如何让数据流转更加高效、更加顺畅是在实现时着重关注的地方,事实上,无论是浏览器、负载均衡、应用服务器还是数据库等等各个环节都会应用到缓存,当数据离用户“更近”,比如数据副本在客户端上,也就意味着请求能够很快的进行响应,相应的给用户进行数据呈现的耗时就更短。现如今用户爸爸们“日理万机”,如果一个软件产品不能在很短时间就获取用户的注意力,很大可能性就意味着失败。因此,使用缓存能够让用户从主观上获取更优的用户体验。 2)提升吞吐量 试想,如果在服务链路上,请求能够在缓存中获取服务数据的话,也就意味着很多数据并不需要从源应用服务器进行获取,降低了源服务器网络传输的频率,在一定IDC带宽下,系统能够降低网络传输时间以及应用延迟时间,从而支撑更多的系统访问以提升系统整体吞吐量以及并发用户数,硬件的使用效率也会明显提升。 从实际场景下,在系统性能优化时大概率会优先选择使用缓存进行系统优化,也是一种被证明有效的手段,缓存也被认为是一种“空间换时间”的艺术。 3. Where——缓存存在链路中的哪些地方? 3.1 缓存分类 从一个请求到最终获取响应,会经过很多环节,缓存可以几乎存在整个链路的每个节点。缓存按照不同的维度可以有如下分类: 1)缓存所处链路节点的位置:客户端缓存 网络缓存 服务端缓存 2)缓存架构部署方式:单机缓存 缓存集群 分布式缓存 3)缓存的内存区域本地缓存/进程内缓存 进程间缓存 远程缓存 按照缓存在服务链路上的位置来划分,可以系统性的梳理下缓存的不同应用。 3.2 客户端缓存 客户端缓存是离用户“最近”的一种存储介质,经常和网络测和服务端缓存一起配合使用,常见的客户端缓存有如下几种: 1)页面缓存:页面缓存是指将静态页面获取页面中的部分元素缓存到本地,以便下次请求不需要重复资源文件,h5很好的支持的离线缓存的功能,具体实现可通过页面指定manifest文件,当浏览器访问一个带有manifest属性的文件时,会先从应用缓存中获取加载页面的资源文件,并通过检查机制处理缓存更新的问题。 2)浏览器缓存:浏览器缓存通常会专门开辟内存空间以存储资源副本,当用户后退或者返回上一步操作时可以通过浏览器缓存快速的获取数据,在HTTP 1.1中通过引入e-tag标签并结合expire、cache-control两个特性能够很好的支持浏览器缓存,关于浏览器缓存更为细节的知识可以查看该文章。 3)APP缓存:APP可以将内容缓存到内存或者本地数据库中,例如在一些开源的图片库中都具备缓存的技术特性,当图片等资源文件从远程服务器获取后会进行缓存,以便下一次不再进行重复请求,并可以减少用户的流量费用。 客户端缓存是前端性能优化的一个重要方向,毕竟客户端是距离“用户”最近的地方,是一个可以充分挖掘优化潜力的地方。 3.3 网络缓存 网络缓存位于客户端以及服务端中间,通过通过代理的方式解决数据请求的响应,降低数据请求的回源率。通常具有如下几种形式的网路缓存: 1)web代理缓存:常见的代理形式分为分为:正向代理、反向代理以及透明代理。web代理缓存通常是指正向代理,会将资源文件和热点数据放在代理服务器上,当新的请求到来时,如果在代理服务器上能获取数据,则不需要重复请求到应用服务器上; 2)边缘缓存:和正向代理一样,反向代理同样可以用于缓存,例如nginx就提供了缓存的功能。进一步,如果这些反向代理服务器能够做到和用户请求来自同一个网络,那么获取资源的速度进一步提升,这类的反向代理服务器可以称之为边缘缓存。常见的边缘缓存就是CDN(Content Delivery Network),可以将图片等静态资源文件放到CDN上。 3.4 服务端缓存 服务端缓存是后端开发中进行性能优化的发力点,常见的后端性能优化也是通过引入缓存来进行解决,常见的有数据库的查询缓存、缓存框架以及引入应用级缓存。 3.4.1 数据库查询缓存 例如,MySQL的缓存机制是通过将SELECT语句以及相应的ResultSet进行缓存,当后续接受到SELECT请求后,如果MySQL已经开启了Query Cache功能,会将SELECT语句以字符串的方式进行hash,然后去从缓存中进行查询,如果查询出数据,则直接进行返回,省去了后续的优化器以及存储引擎IO的操作,能够极大的提升响应时效。如何优化Query Cache需要从如下几个指标上进行考虑: query_cache_size:设置能够缓存ResultSet的内存区域大小query_cache_type:表示使用缓存的场景。0表示任何场景下都不使用Query Cache,1表示显式指定不使用Query Cache的查询都可以使用,2(DEMAND)表示只有明确指示使用Query Cache才会生效;Qcache hits:表示多少次查询命中Query CacheQcache inserts:表示多少次没有命中Query Cache而插入数据Qcahce lowmem prunes:表示多少条Query引入空间不足而被清除Qcache free memory:表示剩余内存大小Qcache free blocks:该值很大表示内存碎片很多,需要及时清理 在进行Qcache优化时,可以对以上指标综合进行分析,比如了解Qcache的缓存命中率 = Qcache hits/ Qcache hits + Qcache inserts,来判断当前Qcache的效率。也可以结合Qcahce lowmem prunes、Qcache free memory以及Qcache free blocks来判断当前Qcache的内存使用效率。 另外,如果使用Innodb存储引擎的话,也需要着重关注innodb_buffer_pool_size参数,该参数决定了innodb的索引以及数据是否有足够大的空间放入到缓存中。table_cache决定了能够缓存表的最大数量,也是需要关注的一个参数。 3.4.2 缓存框架 在功能开发时,会常用提供缓存特性的缓存框架或者实现缓存功能的类库来高效的完成开发,常见的缓存框架有Ehcache、Guava等,这些缓存框架配置简单,能够简单灵活的使用。这些开源的缓存框架不仅支持单机的本地缓存还能配置集群的方式达到灵活伸缩。 3.4.3 应用级缓存 当缓存框架不能满足需求的时候,就需要引入应用级缓存,比如Redis、MongoDB等NoSQL数据库,应用级缓存具备高可用性以及伸缩性的分布式架构能够支撑业务需求,当然,做好一款应用级缓存产品其中的挑战也是巨大。 4. When——什么时候需要使用缓存? 缓存不是架构设计的必选项,也不是业务开发中的必要功能点,只有在业务出现性能瓶颈,进行优化性能的时候才需要考虑使用缓存来提升系统性能。也不是所有的业务场景都适合使用缓存,读多写少且数据时效要求越低的场景越适合使用缓存,缓存并不是所有性能问题的灵丹妙药,如果滥用缓存反而会成为毒药,并且会引入维护缓存的操作成本,使得系统复杂度更高不利于维护。 另外把缓存当做存储来使用是一件极其致命的做法,这种错误的认识,将缓存引入系统的那一刻起就意味着已经让系统走上了危险的局面,对缓存的使用边界要有深刻的理解,才能尽可能保证做出引入缓存才是一个正确的决定。 在进行缓存结构设计的时候,需要考虑的点有很多: 1)业务流量量级以及应用规模:对于低并发低流量的应用而言,引入缓存并不会带来性能的显著提升,反而会带来应用的复杂度以及极高的运维成本。也不是任何数据都需要使用缓存,比如图片视频等文件使用分布式文件系统更合适而不是缓存。因此,在引入缓存前,需要对当前业务的流量进行评估,在高并发大流量的业务场景中引入缓存相对而言收益会更高; 2)缓存应用的选择:缓存应用有很多如Redis、Memcached以及tair等等,针对每一种分布式缓存应用的优缺点以及适用范围、内存效率、运维成本甚至团队开发人员的知识结构都需要了解,才能做好技术选型; 3)缓存影响因素的正确评估:在引入缓存前,需要着重评估value大小、缓存内存空间、峰值QPS、过期时间、缓存命中率、读写更新策略、key值分布路由策略、过期策略以及数据一致性方案等等多个因素,要做到心中有数; 4)缓存高可用架构:分布式缓存要高可用,这也是分布式系统追求的三高指标中的一个,缓存的集群设计,主从同步方案的设计等等,只有缓存足够可靠,才能服务于业务系统,为业务带来价值; 5)完善的监控平台:当缓存投入生产环境后,需要有一套监控系统能够显式的观测缓存系统的运行情况,才能更早的发现问题,同时对于预估不足的非预期热点数据,也需要热点发现系统去解决非预期的热点数据缓存问题。 6)缓存最近原则:将缓存数据放在离用户最近的地方,无疑会极大的提升响应的速度,这也是多级缓存设计的核心思想。 原文发布时间为:2019-11-25作者: 阿里技术本文来自云栖社区合作伙伴“阿里技术”,了解相关信息可以关注“阿里技术”。

优秀的个人博客,低调大师

别再提什么云计算,你需要的只是云服务

这些天有不少创业者询问云计算和云服务的区别,就连有一定经验的开发者,面对这两个概念的时仍然是一头雾水。 在云计算刚刚进入中国的时候,从业者乐于宣传“云计算”的概念,以至于大数据、云计算、人工智能等词汇成为不少人的口头禅,而当云计算在国内真正兴起,涌进了大批想要瓜分蛋糕的创业公司,又往往以“云服务”为自家的产品背书。即便在很早的时候就有专家呼吁“云计算”和“云服务”这两个概念应该加以区别,商业市场显然并没有听从这一建议,如今整个云计算产业的市场规模已达3000亿美元,云计算和云服务的概念也越发的模糊。 云计算和云服务的区别在哪里? 一般来说,提到云计算不少人会想起三个词汇,即IAAS、PAAS和SAAS,单从字面来讲,其中的S是Service(服务)的缩写,也是云计算最典型的三种服务模式。不太严谨的说法是,IaaS是最基础的云计算产品,而PaaS、SaaS以及后来衍生出的诸多概念都属于云服务的范畴。 不过,从专业的角度来看,“云计算”是指一种技术架构,主要包含了虚拟化、自动化部署、分布式计算等技术,这个技术架构的优点是可以对外表现非常优秀的并行计算性能、规模伸缩性和健壮性。而“云服务”是指在云计算的技术架构支撑下,对外提供的按需分配、可计量的IT服务,可用于替代用户本地自建的IT服务,主要分为三个层次:IaaS、PaaS、SaaS。而国内之所以导致这两个概念的混乱,大概是三个原因造成的。 1、造势需要。不管是早期的云计算厂商还是客户,乃至为用户提供云存储服务的厂商,都有鼓吹“云计算”概念的嫌疑。从目前来看,这一策略不可谓不成功,云计算万亿市场空间的共识已经形成,政府也多次表态支持云计算的发展,最重要的是在云计算的概念下一些基础的云服务早已渗入到互联网的每个角落,比如云存储服务。 2、转移焦点。包括阿里、腾讯在内的云计算巨头,过去一直在强调“计算”的价值,原因在于云计算开始时的竞争对手是传统的IDC服务商,外界对云计算的理解也有些狭义,通常指通过网络以按需、易扩展的方式获得所需资源。很容易理解的是,在服务不占优势的情况下强调云计算的弹性服务更容易赢得客户的青睐。 3、云计算的早期用户决定的。除了大众化的云存储服务,直到今天很多云服务的买单者仍是企业用户,尤其是大型的企业用户。它们对云计算的早期需求局限在IT基础设施上,最典型的就是亚马逊的EC2,提供Web服务的方式让使用者可以弹性地在虚拟主机上运行程序。只不过EC2翻译过来应该是弹性计算云,国内直接采用了“云计算”这一词汇,后来更是被用于概括各种云计算服务。 其实从国内各大云计算厂商的slogan很容易看出对云计算和云服务理解的差异。我们不妨看几个案例: 阿里云:为了无法计算的价值; 浪潮:中国领先的云计算、大数据服务商; 百度开放云:可靠的智能云计算服务平台; 新浪云:免运维的云计算服务; 金山云:全球高品质的云服务专家; 网易蜂巢:专业的容器云平台; 不难发现,以浪潮、阿里及三大运营商为代表的云计算厂商仍在强调“计算”的概念,浪潮等有服务器销售背景的企业更擅长云计算的基础设施,三大运营商布局云计算的思路也是在服务国内的大客户,阿里云作为国内最大的云计算厂商,在去年赢得了中石化、中石油、12306、国家电网、新浪微博、芒果TV等大型企业,但大多数开发者使用的仍是云主机、数据库、缓存、云存储等服务。而百度、新浪、金山、网易等已经开始直接或间接的强调云服务,尤其是网易直接深入到了云计算的垂直领域,从即时通讯云服务(网易云信)、云客服(网易七鱼)、视频云、反垃圾云服务(易盾)等多个角度布局了云服务产品。 纵观国内的云计算格局,已然进入到了由微软、IBM、SAP、AWS等外资背景的云服务提供商,华为等IT巨头和三大运营商,阿里、百度、腾讯、网易、新浪、金山、京东等互联网巨头和众多中小云服务商组成的云计算2.0时代。或许也意味着“云计算”的光环正在慢慢褪去,云服务的时代即将到来。 云服务比云计算有着更大的价值? 站在用户的角度来讲,除了云计算的服务端架构服务,还需要测试、BUG分析、数据分析工具、推广平台、反馈与客服平台等复杂且多样的服务。更重要的是,他们并不关心云计算在基础设施上较于传统IDC有何创新,更关心云服务是否能够帮助他们降低开发成本、运营成本甚至稳定性所带来的风险成本。就好比说,有人将云计算形容为互联网的水、电、煤,也就是基础资源,但大多数用户并不关心这些基础资源是怎么来的,而是关心可以用来做什么。从这个角度来看,云服务比云计算更加大众,也意味着更大的市场。 根据2015年云计算厂商的销售额来看,AWS的成绩是79亿美元,微软斩获了11亿美元销售额。在这个差距背后,微软Azure的产品在测试数据上并不输于AWS,但在AWS的子产品中,除了EC2为计算云之外,其他产品皆为云服务。据Dropbox称,AWS约95%的新产品和新服务都是客户需求反馈的结果,仅在2015年,Dropbox就为AWS产品组合新增了722项新的功能和服务。相比之下软件出身的微软,在针对用户的运营服务上的短板非常明显,这大概是AWS独占全球50%以上市场份额的原因所在。此外,甲骨文不久前宣布以5.32亿美元收购了节能数据分析公司Opower,微软传出了收购物联网企业Solair的消息,亚马逊宣布将和Salesforce一道发力物联网。除了扩建数据中心补充技术设施方面的实力,云服务已经成为国外云计算巨头们军备竞赛的又一个要点。 其实,跳出“云计算”的概念从云服务的角度出发更容易理解为什么新浪、网易等互联网企业纷纷进军云计算市场,以及创业者和投资机构看好这个领域的原因所在。简单来说,云服务是运行在云计算上的,巨头们可以通过自研的形式弥补在基础设施上的不足,创业者也可以通过租赁公有云或私有云的形式打破进入云计算行业的门槛。于是乎,云服务领域出现了两种不容忽视的力量。 其一是借助技术开放布局云市场的互联网巨头。国内最为典型的就是新浪和网易,比如说新浪搭建了国内第一家公有云计算平台,网易打造出了网易云信、网易蜂巢等优势产品。这类厂商的优势在于拥有丰富的互联网产品研发经验,对开发痛点有着深入的了解,比如码农需要的服务,团队协作需要的服务,产品运营需要的服务,进而在云计算的基础上对外提供相对优质的云服务。在宣传时不再强调IAAS、PAAS、 SAAS等概念,开始主打“服务”的优势,具体解决一些实际问题,比如快速部署、免运维等,就好像网易从“运营云”、“运作云”、“研发云”等角度重新定义云服务。 其二是深耕云服务细分市场的创业公司。从2015年开始,云计算领域的融资案例不断出现,深耕云服务细分市场的创业公司开始成为资本的新宠,尽管这些企业并没有自身的云计算能力,但对云服务的打包和整合却在一定程度上迎合了个性化云服务的趋势。以容器云市场为例,从2013年开始,Docker技术开始成为关注的焦点,国内的一些创业者在Docker环境的基础上加入一键部署、资源编排服务、镜像仓库、云数据库、集群功能等形成了CaaS容器云,国内知名的容器云厂商已经有时速云、精灵云、数人云等,且相继完成了千万级的融资。当然这个领域也吸引了巨头的加入,比如网易蜂巢。 最后要说的是,抛出这个问题的原因在于,“云计算”一词在国内有被妖魔化的趋势,即无限放大“计算”的价值而忽略了“服务”的重要性。从很大程度上来说,云服务的实现离不开云计算的支撑,但过于强调计算的结果,而弱化云服务的提升,就好比养大了一头大象,最终却发现少了托运大象的运输工具。 用户选择云计算是希望将之前硬件投入的成本转移到更便捷的服务上,而非为了获取所谓的计算能力。借用一句偏激的话说:云计算将死,云服务永生。至少是时候理清计算和服务的关系了。 本文转自d1net(转载)

优秀的个人博客,低调大师

楼宇自动化趋势:互连传感器提升能效

当谈到楼宇自动化时,无论是在造的新楼还是针对旧楼的改造,无线传感器网络(WSN)和物联网(IoT)都正变得越来越普遍。WSN使我们能够将“智能性”添加到现有的楼宇基础设施中,同时可以避免在部分难以触及的区域内进行布线和安装。 在无线系统蓬勃发展和运用的同时,这也为人们带来了一些新的疑问,例如在HVAC中添加更多传感器的原因和目的是什么?究竟是为了照明还是楼宇安防系统? 楼宇自动化目前的4个主要趋势解答了这一问题: • 能源效率 • 安全与安保 • 用户舒适度 • 预防性养护 下面,文章将着重介绍能源效率这一话题,这也是在楼宇自动化系统中添加更多传感器的一个重要趋势。 无论是楼宇业主、房主或是租户,每个人都会关心节能和节省开支。目前,建筑物中所使用的电能大部分由电网提供,其中被浪费的电能达到了30%。而通过使用传感器节点,只在必要时才运行高能耗设备,能够显著降低能源的使用率。利用这种方法创建的智能楼宇将会对节能、减少浪费以及降低开销产生巨大的影响。 在HVAC系统中,通过添加独立的环境传感器,可以实现智能监控和控制。这些传感器可以从楼宇内的每个区域或房间获得准确的温度和湿度信息。通常而言,如果在只有一个房间被使用的情况下,我们仍然需要支付整栋楼或者整个房屋的供暖或制冷费用。所以,与其安装一个中央温度监控设备,不如在建筑内添加多个传感器,如此一来,用户便可以根据房间的使用情况或使用时间来灵活地控制供暖和制冷区域。 大型商用楼宇可以通过人员计数系统来实现需求控制通风(DCV)。DCV可以根据房间内的人员数量来输送新鲜空气,而不是直接根据预先设定的操控来打开HVAC系统。 单单HVAC和照明系统就占了商用建筑用电量的59%。这些应用的电能使用量会受到智能监控和控制解决方案的巨大影响。通过例如低功率占用检测器和能量采集日光传感器等针对高级光控制的互连传感器,以及添加用于低功率环境传感器和人员计数系统等高级HVAC控制的互连传感器,从而能够真正地开始降低总能耗。本文转自d1net(转载)

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册