Java高并发高性能分布式框架从无到有微服务架构设计.docxVIP

Java高并发高性能分布式框架从无到有微服务架构设计.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java高并发高性能散布式框架从无到有微服务架构设计 微服务架构模式(MicroserviceArchitectPattern )。 近两年在服务的疯狂增长与云计算技术的进步,让微服务架 构受到重点关注微服务架构是一种架构模式,它倡导将单 一应用程序区分红一组小的服务,服务之间互相协调、互相 配合,为用户提供最终价值。每个服务运行在其独立的进度 中,服务与服务间采用轻量级的通信体制互相交流(往常是 鉴于HTTP的RESTfulAPI)。每个服务都围绕着详细业务进 行建立,并且能够被独立地部署到生产环境、 类生产环境等。 此外,应尽量防止统一的、集中式的服务管理体制,对详细 的一个服务而言,应根据业务上下文,选择合适的语言、工 具对其进行建立。微服务架构优势 首先简单介绍了微服务 Microservices)的内涵及优势,微服务架构的本质,是用一些功能比较明确、业务比较精练的服务去解决更大、更实际的问题。微服务架构将服务拆分,分别采用相对独立的服务对各方面进行管理,彼此之间使用统一的接口来进行交 流,架构变得复杂,优势也很显然:复杂度可控:在将应 用分解的同时,躲避了原本复杂度无止境的积累。每一个微服务专注于单调功能,并经过定义优秀的接口清晰表述服务边界。由于体积小、复杂度低,每个微服务可由一个小规模开发团队完全掌控,易于保持高可维护性和开发效率。什么 是微服务架构微服务架构优势 独立部署:由于微服务具备 独立的运前进度,所以每个微服务也能够独立部署。当某个 微服务发生更改时无需编译、部署整个应用。由微服务组成 的应用相当于具备一系列可并行的发布流程,使得发布更为 高效,同时降低对生产环境所造成的风险,最终缩短应用交 付周期。技术选型灵活:微服务架构下,技术选型是去中 心化的。每个团队能够根据自己服务的需求和行业发展的现 状,自由选择最适合的技术栈。由于每个微服务相对简单, 当需要对技术栈进行升级时所面对的风险较低,甚至完全重 构一个微服务也是可行的。 容错:当某一组建发生故障时, 在单调进度的传统架构下,故障很有可能在进度内扩散,形 成应用全局性的不可用。在微服务架构下,故障会被隔绝在 单个服务中。若设计优秀,其他服务可经过重试、平稳退化 等体制实现应用层面的容错。 扩展:单块架构应用也能够 实现横向扩展,就是将整个应用完整的复制到不同的节点。 当应用的不同组件在扩展需求上存在差别时,微服务架构便 体现出其灵活性,因为每个服务能够根据实际需求独立进行 扩展。互联网高并发有关名词页面浏览数(pageviews ) 唯一身份浏览量(UniquePageViews)独立接见者数量 (uniquevisitors )重复接见者数量(repeatvisitors ) 每个接见者的页面浏览数( PageViewsperuser)高并发 以前我将高并发的解决方法误认为是线程或许是行列能够 解决,因为高并发的时候是有好多用户在接见,致使出现系 统数据不正确、丢掉数据现象,所以想到的是用行列解决, 其实行列解决的方式也能够办理,比方我们在竞拍商品、转 发评论微博或许是秒杀商品等,同一时间接见量特别大,队 列在此起到特其他作用,将所有恳求放入行列,以毫秒计 时单位,有序的进行,进而不会出现数据丢掉系统数据不正 确的情况。经过查资料,高并发的解决方法有俩种,一种 是使用缓存、另一种是使用生成静态页面;还有就是从最基 础的地方优化我们写代码减少不必要的资源浪费:(1.不要 频繁的new对象,关于在整个应用中只要要存在一个实例的 类使用单例模式  .  关于  String  的连结操作  ,使用 StringBuffer  或许  StringBuilder.  关于  utility  种类的类 经过静态方法来接见。2.防止使用错误的方式,如 Exception能够控制方法推出,可是Exception要保存stacktrace消耗性能,除非必要不要使用instanceof做条件判断,尽量使用比的条件判断方式.使用JAVA中效率高的 类,比方ArrayList比Vector性能好。)高并发-需要解决的问题一:应用缓存二:HTTP缓存三:多级缓存四:池化五: 异步并发六:扩容七:行列高并发-应用缓存堆缓存使用 Java堆内存来存储缓存对象。使用堆缓存的利处是没有序列 化/反序列化,是最快的缓存。缺点也很显然,当缓存的数据量很大时,GC(垃圾回收)暂停时间会变长,存储容量受 限于堆空间大小。一般经过软引用/弱引用来存储缓存对象, 即当堆内存不足时,能够强制回收这部分内存释放堆内存空 间。一般使用堆缓存存储较热的数据。有GuavaCache:缓 存和ConcurrentMap是特别相似的,可是它们也不完全同样。最根本的区别就是,Con

文档评论(0)

188****3660 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档