Browsed by
日期:2020年10月27日

6种微服务RPC框架,你知道几个?

6种微服务RPC框架,你知道几个?

閱讀本文約花費: 7 (分鐘)跟语言平台绑定的开源 RPC 框架主要有下面几种。 Dubbo:国内最早开源的 RPC 框架,由阿里巴巴公司开发并于 2011 年末对外开源,仅支持 Java 语言。 Motan:微博内部使用的 RPC 框架,于 2016 年对外开源,仅支持 Java 语言。 Tars:腾讯内部使用的 RPC 框架,于 2017 年对外开源,仅支持 C++ 语言。 Spring Cloud:国外 Pivotal 公司 2014 年对外开源的 RPC 框架,仅支持 Java 语言 而跨语言平台的开源 RPC 框架主要有以下几种。 gRPC:Google 于 2015 年对外开源的跨语言 RPC 框架,支持多种语言。 Thrift:最初是由 Facebook 开发的内部系统跨语言的 RPC 框架,2007 年贡献给了 Apache 基金,成为 Apache 开源项目之一,支持多种语言。 如果你的业务场景仅仅局限于一种语言的话,可以选择跟语言绑定的 RPC 框架中的一种; 如果涉及多个语言平台之间的相互调用,就应该选择跨语言平台的 RPC 框架。 RPC 框架,它们具体有何区别? 1. Dubbo 先来聊聊 Dubbo,Dubbo 可以说是国内开源最早的 RPC 框架了,目前只支持 Java 语言,它的架构可以用下面这张图展示。 从图中你能看到,Dubbo 的架构主要包含四…

Read More Read More

项目架构之传统三层架构和领域模型三层架构

项目架构之传统三层架构和领域模型三层架构

閱讀本文約花費: 18 (分鐘)一、工程结构 本系列文章所示范的项目基于传统三层架构进行分层,基于工作职责和Maven结构进行模块划分。本文将对传统三层架构和对应的领域模型架构、以及每个模块的职责进行简单的说明。下图即示范项目的模块结构: 二、架构之传统三层架构 传统三层架构是一种软件架构,是一种典型的、基于贫血模型的、面向过程的JavaWeb分层方式。该架构分为以下三个层次: 数据访问层(DAL – Data Access Layer)即对包括数据库在内的数据源进行操作的部分。 业务逻辑层(BLL – Business Logic Layer)即对业务数据进行逻辑处理的部分。 表现层(UI – User Interface)即与用户交互的部分。 分层的目的是为了解耦和明确责任。开发人员可以只关心自己所负责的那一层,因为他只需要知道上一层提供了哪些接口,从而利用这些接口进行编程。而上一层的开发人员在不改变接口的情况下,可以任意地替换具体的实现,从而实现松耦合。 相比更传统的架构,三层架构有着明显的优势,但也有不可忽视的缺点。初期的JavaWeb在JSP内同时进行数据库读写、业务逻辑处理和页面渲染,简单而暴力。而今的架构,在JSP之上增加了一个处理业务逻辑的中间层和一个封装了数据库操作的数据访问层,毫无疑问造成了代码量的大幅度上升和效率的下降。 本…

Read More Read More

WordPress post和page的区别

WordPress post和page的区别

閱讀本文約花費: 1 (分鐘)  wordpress博客主要有两部分构成posts和pages,但是对于wordpress初学者来说,经常把这两个概念混淆。在post和page之间有很多不同点,知道并理解这些不同点,能够让我们更好的使用wordpress中的pages和posts。 post的特点: 1、post通常按发布时间倒序排列 2、post经常被更新,需要显示发布时间 3、可以通过标签和分类来组织post 4、post会出现在Rss订阅中 page的特点: 1、博客中的page页面独立于post显示,通常很少发生变动 2、通常使用page来和读者分享信息,但是很少去更新它 3、page页面没有发布时间,我们不需要显示page发布的时间 4、根据主题的不同,page可以显示在任何地方 5、page通常按字母排序,但是我们可以改变排序的方式 6、page没有标签和分类 7、page页面不会出现在RSS源中,读者需要访问博客才能看到page页面的更新情况 8、不要在page页面中嵌入Post 9、通过page页面之间的父子关系,可以建立复杂的网站结构 所以像留言板、关于、友链这样的页面喜欢用page,而一般文章则是用post Tags: WordPress, 博客

Service Mesh架构反思:数据平面和控制平面的界线该如何划定?

Service Mesh架构反思:数据平面和控制平面的界线该如何划定?

閱讀本文約花費: 19 (分鐘)苦等一年,始终不见Istio的性能有实质性提升,失望之余,开始反思Istio而至Service Mesh的架构。焦点所在:proxy到底该做哪些事情?架构的优美和性能的实际表现该如何平衡? 问题所在 Istio的性能,从去年5月问世以来,就是一块心病。 前段时间Istio 0.7.1版本发布,不久我们得到了这个一个”喜讯”:Istio的性能在0.7.1版本中得到了大幅提升! 最大QPS从0.5.1的700,到0.6.0的1000,再到0.7.1的1700,纵向比较Istio最近的性能提升的确不错,都2.5倍性能了。 但是,注意,QPS 700/1000/1700。是的,没错,你没有看错,没有漏掉一个零或者两个零。 稍微回顾一下近年中有自己有实际感受的例子: 几个月之前写了一个基于netty4.1的HTTP转发的demo,没做任何优化和调教,轻松10万+的QPS 两年前写的dolphin框架,gRPC直连,15万QPS轻松做到 然后,白衣和隔壁老王两位同学轻描淡写的好像说过,OSP极致性能过了20万QPS了(背景补充:OSP是唯品会的服务化框架,sidecar模式,它的Proxy是被大家诟病以慢著称的Java)。 当然Istio测试场景稍微复杂一些,毕竟不是空请求,但是如论如何,从QPS十几二十万这个级别,直落到QPS一两千,中间有几乎100倍的差距。…

Read More Read More

Scroll Up