首页 文章 精选 留言 我的

精选列表

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

Hunt Framework 2.2.0 发布,稳定性得到全面提升

Hunt framework 是一个由 HuntLabs 推出使用 DLang 语言开发的全栈 web 框架,易用性和完整性都贴近于 Laravel / Django / Spring boot 等主流框架的设计,优势主要体现在部署方面,不需要搭建运行环境就可开启 web 服务。而且 D 语言自身是一个性能极高的编译型语言,我们可以基于 hunt framework 非常简单的开发出高性能的 Web 服务。 本次更新基本上是 hunt framework 2.x 版本的最后一个系列,所以后面 2.x 系列都是针对稳定性和性能进行优化改进,后面的工作全面针对 3.0.0 里程碑版本跃进。 主要更新 修复 Request 请求过程中 data 可能为空的情况 使用 DataTime 替代 DateTimeHelper 增强改进控制器 Dispatcher 增强静态文件访问 升级 hunt-http 库到 0.4.0 正式版 修复 XPoweredBy 问题 修复 Response 相应的 Content-Type 和 Length 问题 使用全新的 hunt-redis 库替代旧的 dredis 协议库 增强 Request 中真实 IP 地址获取功能 改进 form 表单绑定功能 使用全新的 hunt-database 作为底层数据库驱动,不再依赖 libmysql / libpq 简单示例代码 主文件代码: app.d import hunt.framework; void main() { app().run(); } 控制器代码: app/controller/IndexController.d module app.controller.IndexController; import hunt.framework; class HelloController : Controller { mixin MakeController; @Action string world() { return "Hello world!"; } } 路由配置文件 config/routes GET / hello.world 编译代码命令 dub run 看效果使用浏览器访问(默认端口 8080) http://localhost:8080 源码获取 码云 https://gitee.com/huntlabs/hunt-framework Github https://github.com/huntlabs/hunt-framework

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

如何加速和提升单元测试覆盖率

方法体尽量小,一入一出,不要使用变量传递。将private方法可以改成友好型,就可以同包下单独方法进行用例测试。 用static方法,可以使用powermock,如不行,使用spring单例模式来避免static的使用。 尽量避免使用三目运算符,多IF条件判断,可以使用枚举+工厂类来规避,减少单元测试编写难度。 尽量不要自己写util方法,使用大基金会(apache、spring)、大厂(google、facebook、twitter、阿里等等)、github星级比较高的提供的util方法,copy Util方法的同时,同时copy他提供的单元测试。 数据库单元测试使用H2本地数据库Mock来加快速度,数据库中单元测试脚本要命中索引,不要进行一些无谓的性能开销。各层之间使用MockITO进行模拟测试。 Spring Controller测试可以使用WebApplicationContext、MockMvc来进行mock。 文件数据等测试,加快速度可以一次性加入内存跑。 activemq测试可以使用本地vm://localhost:61616来进行测试。 有些测试比较重要,但又影响速度(高并发,多线程,高计算,高频访问redis,memcached等等),可以考虑自己跑完后,直接@Ignore或者拆分小方法,慢的部分Ignore,毕竟单元测试为了代码质量,而不是为了覆盖率。

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

14款提升你网站水平的 jQuery 插件推荐

jQuery是一个优秀JavaScript库,它简化了HTML文档遍历,事件处理,动画和Ajax交互。 jQuery的确改变了很多人写JavaScript的方式。如今,有很多现成的jQuery插件可供选择,帮助你在网站中加入惊人的功能和效果。看看这些非常棒的jQuery插件吧,我相信你会发现一些很有用的东西。 01、lsotope http://isotope.metafizzy.co/index.html Isotope 是一款精致的 jQuery插件,用于创建单纯用 CSS 无法实现的智能的、动态的布局,非常强大。 02、lettering http://letteringjs.com/ Lettering 是一款用于实现激进的网页排版的 jQuery 插件,可以帮助你在网站中加入丰富多彩的文字效果。 03、jQuery.spritely http://www.spritely.net/ jQuery.spritely 是一款简单、轻量的 jQuery插件,用来创建创建动态角色和背景动画,效果非常酷,赶紧点击看示例吧。 04、Waypoints http://imakewebthings.github.com/jquery-waypoints/ Waypoints 可以帮助你很容易的实现滚动到某个元素的时候执行某项功能,根据用户拖动滚动条的位置来实现特定的布局模式。 05、HTML5 Grayscale Image Hover http://webdesignerwall.com/tutorials/html5-grayscale-image-hover/ 借助jQuery 和HTML5 canvas,图像可以很容易动态转变为灰度模式而不需要使用图像编辑软件。 06、jQuery Masonry http://desandro.com/resources/jquery-masonry/ Masonry是一款 jQuery 布局插件,可以实现类似在墙上堆砌石头一样的布局效果。 07、Quicksand http://razorjack.net/quicksand/ Quicksand 是一款非常实用的 jQuery 插件,让你可以以圆滑流畅的方式实现项目的过滤和重新排序。 08、jDigiClock http://www.radoslavdimov.com/jquery-plugins/jquery-plugin-digiclock/ jDigiClock是一款实现漂亮的时钟效果的 jQuery 插件,有很多选项可以用来定制时钟的行为和外观。 09、Aga http://plugins.jquery.com/project/Aga Aga是一款简单、易用、全定制的手风琴效果插件,有水平和垂直两种方式。 10、Easy Image Zoom http://cssglobe.com/post/9711/jquery-plugin-easy-image-zoom Easy Image Zoom是一款轻量的图像缩放插件,定制方便,非常适合用于产品图片浏览的场景。 11、Contained Sticky Scroll http://blog.echoenduring.com/2010/11/15/freebie-contained-sticky-scroll-jquery-plugin/ 这款插件可以帮你实现创建一个“粘”在窗口顶部的元素,但是不会移除它的父元素之外。 12、Supersized! jQuery plugin http://buildinternet.com/project/supersized/ 一款全屏幻灯片插件,支持从 flickr 读取图片。 13、gMap port for V3 Google Maps API http://www.smashinglabs.pl/gmap-intro gMap 是一款帮助你在网站中嵌入谷歌地图,使用非常灵活的轻量 jQuery 插件。 14、Quicktag http://iplantideas.com/quicktag/ Quicktag 是一款标签插件,可以帮助你非常容易的实现插件新增和删除功能。 原文发布时间:2016年04月28日 作者:Mark Gargarian 本文来源:WEBEXPEDITION如需转载请联系原作者

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

有经验的程序员应该如何提升自己

工作1-5年,当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗? 敢不敢不给涨薪就“挥一挥衣袖,不带走一个bug”?是不是提出要求后你的主管、经理立刻 同意,为了把你留住。然而,现实往往是... 技术不过硬,其他的都免谈。 小编给大家罗列一下近期最常用,最火的技术,大家检查一下你是否可以硬朗起来。 阿里巴巴Dubbo+Zookeeper注册中心、阿里巴巴MyCat分库分表 JVM调优,垃圾收集器与内存分配策略,串行、并行收集器带来的作用 Redis缓存技术(session统一管理案例实现)、引入接口联调过程 Tomcat运行机制及框架,并发优化,内存优化 SpringAOP基石动态代理,拦截与织入原理,Spring相关源码熟悉程度 并发编程在项目中的实际应用 高性能NIO框架Netty应用 Nginx分流技术配置优化原则,主从、双主高可用设计 分布式单点登录解决方案 消息队列ActiveMQ的具体应用、乐观锁、悲观锁、分布式锁 接口安全方案、集群环境下的定时任务 分布式文件系统FastDFS、分布式文件系统存储合同文件 Docker虚拟化技术,与微服务集成动态扩容,持续发布 SpringCloud的网关、配置、注册中心构建 NoSQL&MongoDB&Cassandra、HttpComponents、20FreeMarker/Velocity、SpringBoot、Log4j2 性能优化: 1、JVM调优 2、Java程序性能优化 3、Tomcat 4、Mysql 5、Spring IOC 6、Spring AOP 7、Spring MVC 8、Spring 5新特性 9、Mybatis 分布式架构 1、架构核心服务层技术 2、架构关键技术设施 3、分布式消息通讯 异步于MQ 4、分布式缓存 5、Redis 6、Memcached 7、MongoDB 8、数据存储 9、高并发分流技术Nginx 10、分布式解决方案 欢迎大家加入Java架构开发:744677563 本群提供免费的学习指导 架构资料 以及免费的解答 不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导 进群修改群备注:开发年限-地区-经验 方便架构师解答问题 性能调优 应用框架源码解读 分布式架构 微服务专题 团队协作开发 B2C商城项目实战 免费公开课

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

Nginx学习之开启Gzip压缩提升页面加载速度

前几天有个买链接的,顺手查了下站的权重,果然又回到1了,尽管不是太在意这个东西,但是总归越高越好了。 然而重点是在爱站的最下面居然发现了居然没有开启Gizp,由于论坛开启CDN一直有问题,就放着没弄, 虽然是2MB的带宽,也不能这么玩不是。 新建 gizp.conf #开启gzip压缩 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #申请4个单位为16K的内存作为压缩结果流缓存 gzip_buffers 4 16k; #设置识别http协议的版本,默认为1.1 gzip_http_version 1.1; #指定gzip压缩比,1-9数字越小,压缩比越小,速度越快 gzip_comp_level 2; #指定压缩的类型 gzip_types text/plain application/javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png; #让前端的缓存服务器进过gzip压缩的页面 gzip_vary on; #IE6对Gzip不怎么友好,不给它Gzip了 gzip_disable "MSIE [1-6]\."; 导入 nginx.onf http { include mime.types; default_type application/octet-stream; #开启高效文件传输模式 sendfile on; #设置客户端连接保存活动的超时时间 keepalive_timeout 65; #压缩配置 include gizp.conf; #导入项目网站 include vhosts/*.conf; } 重启Nginx服务 nginx -s reload 用curl测试Gzip是否成功开启 [root@itstyle nginx]# curl -I -H "Accept-Encoding: gzip, deflate" "http://www.52itstyle.com/data/cache/common.js" HTTP/1.1 200 OK Server: nginx/1.10.3 Date: Mon, 05 Feb 2018 01:49:24 GMT Content-Type: application/javascript Last-Modified: Wed, 13 Dec 2017 07:45:08 GMT Connection: keep-alive ETag: W/"5a30da84-d95d" Content-Encoding: gzip 作者: 小柒 出处: https://blog.52itstyle.com 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

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

使用阿里云加速器提升Docker下载速度

场景:在服务器上配置Docker的时候,当我们觉得比较慢的时候,可以跳过配置加速服务来进行 在服务器上的操作: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 [root@LVS-DR01~] #vim/usr/lib/systemd/system/docker.service Environment=DOCKER_HTTP_HOST_COMPAT=1 Environment=PATH= /usr/libexec/docker : /usr/bin : /usr/sbin ExecStart= /usr/bin/dockerd-current --registry-mirror=https: //ag3w25ij .mirror.aliyuncs.com\ --add-runtimedocker-runc= /usr/libexec/docker/docker-runc-current \ --default-runtime=docker-runc\ -- exec -optnative.cgroupdriver=systemd\ --userland-proxy-path= /usr/libexec/docker/docker-proxy-current \ $OPTIONS\ $DOCKER_STORAGE_OPTIONS\ $DOCKER_NETWORK_OPTIONS\ $ADD_REGISTRY\ $BLOCK_REGISTRY\ $INSECURE_REGISTRY\ $REGISTRIES ExecReload= /bin/kill -sHUP$MAINPID LimitNOFILE=1048576 LimitNPROC=1048576 LimitCORE=infinity TimeoutStartSec=0 Restart=on-abnormal MountFlags=slave KillMode=process [Install] WantedBy=multi-user.target 说明:--registry-mirror=https: //ag3w25ij .mirror.aliyuncs.com 重新加载服务: [root@LVS-DR01~] #systemctldaemon-reload [root@LVS-DR01~] #systemctlrestartdocker [root@LVS-DR01~] #systemctlstatusdocker ●docker.service-DockerApplicationContainerEngine Loaded:loaded( /usr/lib/systemd/system/docker .service;enabled;vendorpreset:disabled) Active:active(running)sinceTue2017-10-1014:52:00CST;5sago Docs:http: //docs .docker.com MainPID:15440(dockerd-current) CGroup: /system .slice /docker .service ├─15440 /usr/bin/dockerd-current --registry-mirror=https: //ag3w25ij .mirror.aliyuncs.com--add-runtimedocker-runc= /usr/libexec/docker/ ... └─15450 /usr/bin/docker-containerd-current -lunix: ///var/run/docker/libcontainerd/docker-containerd .sock--shimdocker-containerd-shi... Oct1014:51:59LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:51:59.958764236+08:00" level=warningmsg= "Dockercouldn...ystem" Oct1014:51:59LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:51:59.999187185+08:00" level=infomsg= "Graphmigrationt...conds" Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:51:59.999815473+08:00" level=infomsg= "Loadingcontainer...tart." Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.167327215+08:00" level=infomsg= "Firewalldrunning:false" Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.382002365+08:00" level=infomsg= "Defaultbridge(d...dress" Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.469707171+08:00" level=infomsg= "Loadingcontainers:done." Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.469839570+08:00" level=infomsg= "Daemonhascomple...ation" Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.469858378+08:00" level=infomsg= "Dockerdaemon" co...1.12.6 Oct1014:52:00LVS-DR01.saltstack.comsystemd[1]:StartedDockerApplicationContainerEngine. Oct1014:52:00LVS-DR01.saltstack.comdockerd-current[15440]: time = "2017-10-10T14:52:00.501638339+08:00" level=infomsg= "APIlistenon/va....sock" Hint:Somelineswereellipsized,use-ltoshow in full. 测试下载一个镜像 1 2 3 4 5 6 [root@LVS-DR01~] #dockerpullalpine Usingdefaulttag:latest Tryingtopullrepositorydocker.io /library/alpine ... latest:Pullingfromdocker.io /library/alpine 88286f41530e:Pullcomplete Digest:sha256:f006ecbb824d87947d0b51ab8488634bf69fe4094959d935c0c103f4820a417d 当然也可以参考阿里云上的方法进行调整 本文转自 冰冻vs西瓜 51CTO博客,原文链接:http://blog.51cto.com/molewan/1973363,如需转载请自行联系原作者

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

Teradata收购Think Big Analytics 提升大数据咨询能力

ZDNET至顶网CIO与应用频道 09月18日 综合消息:数据分析平台、应用和服务供应商Teradata公司宣布收购Think Big Analytics公司。Think Big 是一家领先的咨询服务与解决方案公司,专注于开发Hadoop和大数据解决方案,其广受认可的Hadoop和大数据咨询服务方法和能力,可帮助企业成功部署大数据解决方案。 Teradata 天睿公司总裁兼首席执行官Mike Koehler 表示:“Teradata已在六周内完成第三笔大数据业务相关的收购。Teradata致力于帮助客户利用所有数据获取最大价值,因此,此次收购对我们实现行业领导者的目标非常重要。借助Think Big 专业的咨询服务,Teradata将能够向客户提出最佳咨询建议,帮助他们利用各种开源大数据技术,推动业务增长。” Think Big 已展示出非凡的专业部署能力,如Hadoop等开源大数据技术、HBase、Cassandra、MongoDB等NoSQL数据库及实时事件处理技术Storm等。其中,Think Big咨询服务团队对Hortonworks、Cloudera、MapR等多个Hadoop发行版本了如指掌。此外,Think Big还为客户和点击流分析(Customer and Clickstream Analytics)、分布式设备数据管理与分析(Distributed Device Data Management and Analytics)、风险与交易分析(Risk and Trading Analytics)提供一套预置应用程序组件。 Teradata美洲区销售与服务业务Teradata Aster数据卓越中心(Data Center of Excellence)副总裁Randy Lea表示:“Think Big 能够加入Teradata,我们倍感兴奋。他们的专业技能、广受认可的交付方法论、知识产权资产及解决方案框架将帮助Teradata巩固其全球领先地位,通过分析服务帮助企业转型为数据驱动型企业。Teradata和Think Big 将根据每位客户的独特业务需求,提供厂商中立的多种开源技术方案,并推荐最佳的技术组合方案。” Think Big 通过多次成功部署,积累了丰富的专业技能,帮助企业从数据中实现真正的价值,并提供完整的策略和部署服务。Think Big 咨询团队可管理整个Hadoop和大数据部署过程,包括评估、制定战略路线图、设计有效架构及部署大数据解决方案。Think Big解决方案中心(Think Big Solution Center)的部署模型是现有Teradata大数据咨询业务的完美补充。此外,Think Big学院(Think Big Academy)还将为客户提供专家级实操培训课程。 Think Big 联合创始人兼首席执行官Ron Bodkin表示:“帮助客户运用新的开源技术,与现有成熟技术优势互补,从各种不同数据集挖掘分析价值,是Teradata和Think Big 的共同愿景。能够分享我们专业领域的知识,加入Teradata团队与他们开展密切合作,共同交付大数据解决方案,我们感到非常高兴。” Think Big 公司联合创始人兼总裁Rick Farnell表示:“能够见证在打造顶级大数据解决方案服务公司征程中迈出的关键一步,我们倍感兴奋。业内前沿的Hadoop和数据科学专业技术与行业领先的数据分析平台完美结合,将为客户通过技术创新改变行业格局创造巨大的机遇。” Think Big 资深大数据业务专家及其管理团队将继续留任,并加入Teradata美洲区大数据业务团队。Teradata业务团队将帮助客户从Teradata Aster产品和服务、Hadoop产品和服务、Teradata®统一数据架构™(Teradata® Unified Data Architecture™)中充分挖掘价值。Think Big总公司仍将设于加利福尼亚州位于硅谷中心区域的山景城,并将以Teradata子公司Think Big 的名义继续销售服务和解决方案。 Teradata天睿公司暂未披露收购交易条款。 原文发布时间为:2014年09月18日 本文来自云栖社区合作伙伴至顶网,了解相关信息可以关注至顶网。

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

提升应用程序弹性:保障工作负载正常运行

通过集群化、复制、快照、微服务和应用程序设计来提高企业工作负载的应用程序弹性和可用性。 应用程序的弹性和可用性是现代企业工作负载的关键属性。应用程序需要在硬件故障发生后,扛过服务故障(例如负载平衡器和域名系统错误)保持工作状态,并且可以忍受局域网和互联网中断的影响。每个事件都可能会影响业务收入、声誉甚至法规的符合性。以下五种方法帮助您增强应用程序弹性和服务可用性。 集群化增加应用程序弹性 群集几乎是最普遍的用于增强应用程序的弹性、性能和可用性的方法。应用程序的某一实例拥有的吞吐能力是有限的—它只能在给定的时间内做一定量的工作。如果您推送的应用程序超出其容量—期望其每秒处理的比其可以处理的事务更多—应用程序将遭遇性能降低甚至是崩溃并变得无法工作。该应用程序工作负载的每个附加实例可以增加应用程序的有效容量,并允许集群实现比单个工作负载实例能够处理更多的工作。这是可扩展性聚类的概念。如果企业需要从应用程序获得更多的工作能力,您可以将更多负载平衡的节点部署到应用程序集群。 但附加的节点将增强应用程序的可用性,这对于应用程序高可用性(HA)相当关键。如果某一节点出现故障,则集群中的其他节点将共享计算负载。负载平衡器可以识别故障节点,并将应用流量重新分配给其余节点。这样一来该应用程序仍然可工作。在很多情况下,用户永远都不会注意到这一问题。节点可以在同一数据中心本地,也可以分布在不同的数据中心,以防止可能出现的设施故障、互联网中断和其他潜在的威胁。 RAID和复制是存储可用性的基础 RAID仍然是存储可用性的重要特性。RAID 0(条带化)不提供数据保护,而是将数据分散到多个磁盘上,同时主轴用以提高存储性能。RAID 1(镜像)将一个磁盘的数据复制到另一个磁盘。如果一个磁盘发生故障,则副本可无缝地接管,您可以从工作副本中替换和重建发生故障的磁盘。RAID 5在多个磁盘或RAID组之间分散数据和奇偶校验。如果磁盘发生故障,剩余的奇偶校验信息可以重构丢失的数据,并重建有缺陷的磁盘的内容。这样可以保护存储设备组免受单磁盘故障的影响。RAID 6也可在多个磁盘间分散数据,但包含双层奇偶校验信息。这可以容忍和重建两个同时的磁盘故障——该技术被称为双重奇偶校验。 您还可以将RAID技术进行组合以实现多重优势。例如,将RAID 5或RAID 6组(RAID 1)镜像到第二个磁盘组,其结合了性能并确保在重建故障磁盘时快速访问数据。您可以制定最适合每个给定业务应用程序的存储保护方案。 复制可以在兼容的存储子系统之间进行,但IT经常使用它从一个数据中心站点定期复制数据到辅助站点或公有云——即某一非现场或远程位置,可以帮助防止数据丢失一个严重的设施问题。您可以在本地存储资源之间同步执行复制,其中延迟不是重要因素,或远程存储资源之间的异步执行,其中延迟可能很大。您可以同时使用和复制RAID。 快照和迁移提供的灵活性 虚拟化技术允许您在数据中心服务器上配置、部署和管理现代企业应用程序作为虚拟机。虚拟机提供了巨大的灵活性,因为与物理服务器相比,计算资源的利用率更高,同时也保证了共享同一物理系统的每个虚拟机的充分逻辑隔离。即使虚拟机砸死服务器内存空间中作为映像存在,但仍然必须保护这些映像不受服务器故障和应用程序崩溃的影响,从而可能危及虚拟机并导致应用程序无法使用。 然而,并不是所有的工作负载都那么重要,可以证明在集群和其他应用程序可用性选择方面的投资。快照是在服务器内存中将虚拟机的时间点状态复制到存储中的文件的常见方法。您可以经常捕获并轻松恢复快照——将应用程序恢复到当时时间点的状态。通常情况下,应用程序中断时IT人员使用快照进行应用程序回滚和快速恢复。您还可以使用快照创建重复的应用程序实例——通常用于应用程序测试、开发和评估。 在数据中心内或远程数据中心之间的虚拟化服务器之间迁移虚拟机非常简单。迁移通常用于工作负载平衡等任务。这允许IT管理员调整固定服务器上的工作负载数量,以优化可用的计算资源或通过将工作负载移动到具有更多计算资源可用性的另一台服务器来提高应用程序性能。为了防止工作负载中断,在监控和管理工具检测到该服务器运行状况的问题时,先将VM从服务器迁移出去。您还可以手动调用迁移以在服务器上执行例行维护过程。 微服务和容器为虚拟化提供新的机会 应用程序设计的一大新兴趋势是放弃传统的单片设计并将应用程序重新映射为使用API传达命令和数据的更小的“无状态”功能或服务的集合。这就是微服务的方法。您可以分别构建、测试、部署和扩展每个组件。而且由于每个组件都是无状态的,所以一个组件的故障或故障不会导致整体应用中严重的数据丢失或不稳定;您可以简单地重新启动某一出现问题的组件。 更新微服务应用程序更加容易。尽管单片应用程序更新将需要完整的功能回归测试,但组件更新只需要测试该特定组件。由于组件是独立存在的,因此在单片应用程序中经常存在的相互状态关系并不存在而无需测试。 构成微服务应用程序的组件经常部署到虚拟化容器之中。容器是用于提供服务器资源的替代化虚拟化技术。每个虚拟机提供完全隔离的操作环境,每个容器共享相同的底层操作系统、驱动程序和其他依赖项。这种共享方法使每个容器的体积之小和资源有效性都达到极限,允许更多容器驻留在同一台服务器上。容器可被快速创建和销毁,因此您可以根据需要对构成微服务应用程序的组件进行启动和扩展。 在设计阶段预先构造应用程序弹性 应用程序弹性通常涉及工作负载在其某一或多个组件中发生故障后的生存能力,以及仍可为业务及其用户提供最佳可能的服务的程度。这意味着您本应将可用性集成到现代应用程序的设计和测试阶段之中。 更新微服务应用程序更加容易。尽管单片应用程序更新将需要完整的功能回归测试,但组件更新只需要测试该特定组件。由于组件是独立存在的,因此在单片应用程序中经常存在的相互状态关系并不存在而无需测试。 构成微服务应用程序的组件经常部署到虚拟化容器之中。容器是用于提供服务器资源的替代化虚拟化技术。每个虚拟机提供完全隔离的操作环境,每个容器共享相同的底层操作系统、驱动程序和其他依赖项。这种共享方法使每个容器的体积之小和资源有效性都达到极限,允许更多容器驻留在同一台服务器上。容器可被快速创建和销毁,因此您可以根据需要对构成微服务应用程序的组件进行启动和扩展。 在设计阶段预先构造应用程序弹性 应用程序弹性通常涉及工作负载在其某一或多个组件中发生故障后的生存能力,以及仍可为业务及其用户提供最佳可能的服务的程度。这意味着您本应将可用性集成到现代应用程序的设计和测试阶段之中。 应用程序灵活性讨论的一部分以应用程序架构和设计为中心。微服务器方法只是构建复杂高度可扩展应用程序的新兴设计范例的一种流行演示。自动化以及编排提供扩充组件,并根据流量需求随时间变化自动平衡负载提供了相应能力。例如,如果较大应用程序的一个组件或功能需要处理更多的流量请求,那么您可以复制该组件(仅复制该组件)来处理额外的流量。 弹性应用程序设计的思考 弹性的应用程序设计,如微服务器,需要重新关注测试和审查每项对应用程序的更改。了解每个组件、模块、服务或依赖关系的损失将如何影响应用程序的整体可用性。如果应用程序在测试期间不符合既定目标,则不应将其发布到生产环境中。有时,您必须改进相关服务或依赖关系(如存储)的可用性,以满足应用程序的可用性目标。 您还必须评估应用程序的安全性,作为用户授权和对外部和内部攻击的硬度的测量方法。衡量业务数据的安全性,并确保只有授权用户可以访问应用程序的数据,并保护数据免遭丢失或被盗。这可能包括某种形式的身份和访问管理框架,以及在运行和非运行状态下一定级别的数据加密。 此外,评估应用程序的可扩展性,以确定如何轻松地扩展工作负载以满足流量需求。现代模块化应用程序往往更加容易进行扩充,因为通常可以通过更少的计算资源来更快地(通常是自动的)部署其他组件并平衡负载。 所有这些概念经常伴随着综合的应用程序性能管理工具,旨在帮助您了解工作负载在生产环境中如何执行其设计目标。 应用程序也经常设法接受无状态设计。基本上,无状态功能从外部获取所需要的所有数据,执行其各自的任务,然后将其结果传递给用户或其他功能——不考虑模式、选集、选择或配置偏好对功能行为的负面影响。如果功能发生故障,您可以简单地重新启动它,而免受数据损失数据的风险。 作者:Stephen J. Bigelow 来源:51CTO

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

NetApp携手赛门铁克提升归档存储效率 增强数据保护

NetApp公司近日将其归档和法规遵从解决方案同 Symantec Enterprise Vault 8.0 相整合。NetApp与赛门铁克将联手助力客户最大化存储效率,优化企业归档数据保护,使归档环境的总体拥有成本降低60%。 赛门铁克和 NetApp 通力合作,进一步开发一套联合归档解决方案,从而使客户能够充分利用如下重要性能: l业界领先的重复数据删除技术:Enterprise Vault已经优化了对NetApp重复数据删除技术的支持。NetApp重复数据删除技术和赛门铁克Optimized Single Instance Storage的完美结合,为客户提供了一套有力的解决方案,以消除冗余数据,显著降低存储成本。 l提高保护:赛门铁克和NetApp共同的客户可利用NetApp独特的级联Snapshot方法实现整个归档应用程序集上的端到端复制。如今,客户能够增强应用程序的可用性,极大降低备份停机时间,显著提高归档应用和内容的恢复次数。 l简化管理:NetApp的统一架构帮助客户在同一管理平台上简化其归档存储基础架构,以降低管理成本,提高可扩展性和灵活性。凭借与赛门铁克的合作,NetApp帮助客户更经济、更轻松地管理关键归档。 提高归档环境的存储效率 客户在选择归档平台时会考虑许多因素,包括可扩展性和易管理性。然而,存储效率已逐步成为首要评估的因素。 企业存储集团(Enterprise Storage Group)分析师 Brian Babineau 表示:“现阶段,经济的不稳定性加速了客户对有效存储的需求。重复数据删除因其在存储有效性方面所起的重要作用,正快速成为存储环境的实际标准。NetApp 专注于主存储、备份和归档数据的重复数据删除。重复数据删除技术势必成为任何有效归档策略的一部分。” 赛门铁克和 NetApp 联手合作,使客户能够在同一时间内运行文件单一实例和块级重复数据删除,从而提高了存储效率。这一整合的方法是归档环境中最完备的技术中的一部分。这些技术包括重复数据删除、单一实例、自动精简配置、Snapshot 和 RAID-DP®。而 HP 和 EMC 的方法既无法提供相同级别的功能,也无法达到与这一联合的存储效率方法相匹配的效用。赛门铁克和 NetApp 为客户构建了一个更经济、更具灵活性和成本有效性的基础架构,帮助客户应对快速的数据增长所带来的归档问题。 统一架构成就简单管理 其他厂商的数据保护策略需要多种设备、操作系统和软件工具一起上阵,才能部署一套完全的解决方案。NetApp 的数据保护技术解决方案可以更深入、广泛地帮助客户解决效率、复杂度和成本问题。凭借 NetApp 独特的级联 Snapshot 技术,客户可以在归档数据库、索引和内容仓库中实现同步自动备份和复制。通过与赛门铁克 Enterprise Vault 的整合,NetApp 助力客户进一步快速轻松地恢复其归档环境。 Alliant 保险公司首席信息官 Steve Sampiere 表示:“赛门铁克和 NetApp 帮助我们控制了存储成本,提高了服务水平,更轻松地满足了我们的法规遵从需求。当我们在为未来几年内归档的扩展寻找解决之路时,基础架构的成本正遏制着我们的喉咙。赛门铁克和 NetApp 将帮助我们实现更高的存储效率,并最终节省数据中心的空间和成本。” NetApp 归档、法规遵从、存储效率和安全副总裁兼总经理 Tim Russell 表示:“归档存储每年正以超过 50% 的速度增长。迫使客户不断竭力地控制其存储预算。赛门铁克和 NetApp 重复数据删除技术的整合为我们共同的客户提高了归档存储效率。凭借如级联 Snapshot 副本等技术的附加整合,客户不仅能降低存储购置成本,同时还可以减少运营成本,并最终实现其现有 IT 架构的价值最大化。” 赛门铁克 Enterprise Vault 产品管理高级主管 Simon Jelley 表示:“客户现在不仅需要进行邮件归档,还包括文件系统、SharePoint® 和 IM 归档。随着越来越多的信息需要归档,客户正在寻找优化存储成本和资源分配的解决之道。Enterprise Vault 8.0 可以优化单一实例存储,提高存储效率,并进一步同 NetApp 重复数据删除技术相结合。我们将共同努力,积极创新,帮助客户在数据保护和归档环境中实现更大价值。” 来源:51CTO

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

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

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册