Fuguo设计文档

来自ling
跳转至: 导航搜索

总体设计

  • 在上一版本为基础重构,使架构更适合于云计算,支持高并发,大业务
  • 使用服务注册中心,动态的注册和发现服务,使服务的位置透明。并通过在消费方获取服务提供方地址列表,实现软负载均衡和Failover,降低对F5硬件负载均衡器的依赖,也能减少部分成本。优化服务URL配置管理
  • 通过maven管理模块间的依赖关系,并自动画出应用间的依赖关系图,以帮助架构师理清理关系,防止重复依赖的坏味道
  • 通过模块功能细化,并在dubbo 监控中心监控服务的使用情况要,将服务现在每天的调用量,响应时间,都统计出来,作为容量规划的参考指标,其次,要可以动态调整权重,在线上,将某台机器的权重一直加大,并在加大的过程中记录响应时间的变化,直到响应时间到达阀值,记录此时的访问量,再以此访问量乘以机器数反推总容量。解决服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?
  • 当已有很多小服务,可能就需要组合多个小服务的大服务,为此,可以增加一个中间层,暴露一个新服务,里面分别调其它小服务,这样的新服务业务逻辑少,却带来很多开发工作量。 
  • 并不是所有服务的访问量都大,很多的服务都只有一丁点访问量,却需要部署两台提供服务的机器,进行HA互备,此时可能需要让服务容器支持在一台机器上部署多个应用,可以用多JVM隔离,也可以用ClassLoader隔离
  • 服务应用和Web应用是有区别的,它是一个后台Daemon程序,不需要Tomcat之类的Web容器。只需简单的Main加载Spring配置即可,并提供Maven模板工程,只需mvn dubbo:generate 即可创建一个五脏俱全的服务应用。 

物理架构

Fuguowulijiagoutu.png [修改架构图|http://www.ling2.cn:7090/wiki/index.php/%E6%96%87%E4%BB%B6:Fuguowulijiagoutu.png]

组件架构

Fuguozujiantu.png

实现如下: Ling2项目列表.png