基于服务的SOA架构_后续篇

 

  今天是元宵节,首先祝各位广大博友在接下来的光阴中技术更上一层,事事如意!(没能在元宵节发布,今天就补上吧)

  昨天简单介绍了一下本人在近期开发过的一个电商购物平台的架构流程和一些技术说明;今天将详细总结一下在项目中用到的各个架构技术的环境部署和细节,希望能够帮到大家,如有瑕疵,请各位大神指正。

  一:详谈服务治理的核心框架之Dubbo及注册中心zookeeper

  首先说说Dubbo这个框架吧,接触这个框架是在去年的年底,当时我们公司的架构师震哥赏了我一点关于架构方面的资料,我看了几天感觉挺对它们感冒的,所以就想着学学架构,哪天当当架构师,呵呵,这只是个近期目标,好了,还是吹吹主角dubbo吧。

  Dubbo它是阿里巴巴出品的开源的分布式框架,它最大的特点是可以用分层的架构,使表现层和业务层实现解耦合。从面向服务的角度来谈,dubbo采用一种非常简单的模型,要么就是给消费者提供服务,要么就是引用提供方发布的服务(这里的名词解释就不详了,大家可以去找度娘),再接着就是说说dubbo的调用关系原理吧,明白了这点可以强化我们对dubbo的感觉,至少我是这么认为的。

  

但是说到这里,又一个优秀的角色注册中心zookeeper登场了,他主要是作为Dubbo服务框架的注册中心(当然也可以使用我们熟悉的redis作为注册中心,但是这里我采用最优的,任性一把),他主要是负责各种服务的地址查询和注册,说白了相当于一个目录服务,还有它的一个优点就是从来不转发请求,压力很小(友情提示:在使用Dubbo2.3以上的版本时,建议使用zookeeper注册中心)。

  最后就跟大家分享一些安装步骤和在项目中使用的源码。

  1、安装zookeeper注册中心

  首先上传压缩包,进行解压,然后进入zookeeper解压目录,找到conf目录下文件名为zoo_sample.cfg并将文件名称修改为zoo.cfg,然后进行编辑配置,截图如下:

  配置过程中主要注意:

  主要配置dataDirclientPort参数,clientPort参数使用默认值2181即可。

  注意:datadir目录中的data目录如果不存在,也会自动生成,你也可以提前手动创建好。

 2、Linux系统上部署Dubbo环境monitor监控中心(监控中心可安装也可不安装,建议安装,方便查看各个服务的调用情况)

 首先上传dubbo-admin-2.5.4.war压缩包,然后准备一台Tomcat服务器,将上传好的dubbo-admin-2.5.4.war弄到tomcat/webapps目录下,启动服务器解压war包;找到tomcat/webapps/dubbo-admin-2.5.4/WEB-INF/dubbo.properties文件,进行修改,截图如下:

部署成功后访问情况如下:

  

  二:论论Nginx服务器

 首先给大家介绍一下我所理解的Nginx以及它在项目中的主要担当的角色,Nginx是一款高性能的http服务器/反向代理服务器及电子邮件代理服务器,经过官方测试nginx能够支撑5万并发链接,实际生产环境能到2-3万并发连接数,这就说明Nginx可以解决项目中的高并发问题,我是有所接触过,的确很强。并且cpu、内存等资源消耗缺非常低,运行非常稳定,高性能吧,呵呵。

 Nginx的应用场景:

 

 说了一点理论废话,我就分享一下我之前在项目中的搭建和配置Nginx服务器的经验,都是一些截图,希望能够帮到大家,谢谢。

 

  

 三:Nginx实现负载均衡(这块我本人比较感兴趣,所以就跟大家所聊聊)

Nginx能够作为负载均衡的理由,这是我感觉非常有用,各位可以在以后的设计结构过程中完全可以考虑:

 什么是负载均衡?
    负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

 下面我就拿一个需求来说说吧,也没多少时间了。

 需求:当我们访问由一台服务器的IP地址映射的域名访问网站时,后台不仅只有一台服务器在响应数据,而是有多台服务器在轮训进行响应数据。

 

  最后赠送几张我们项目的总体架构流程图及模块分析图,可能有点不清晰,大家就将就瞅瞅,莫怪。【其他技术架构的分享后期还会更新,希望大家能够支持,谢谢】

 

SOA架构的更多相关文章

  1. 企业SOA架构设计理论

    SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...

  2. SOA架构设计经验分享—架构、职责、数据一致性

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

  3. 论SOA架构的几种主要开发方式

    转: http://blog.csdn.net/chenleixing/article/details/44926955  面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...

  4. SOA架构设计(转发)

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

  5. SOA架构介绍和理解

    SOA架构介绍和理解 SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代. 通过SOA架构分层将服务按照 ...

  6. SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施

    一.讨论主题与观点 写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论. 大家的讨论观点 ...

  7. 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇

    开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构 ...

  8. 论SOA架构的几种主要开发方式【转】

           面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...

  9. 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)

    亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证  WCF,a ...

  10. [转]SOA架构设计经验分享—架构、职责、数据一致性

    阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...

随机推荐

  1. java爬取百度首页源代码

    爬虫感觉挺有意思的,写一个最简单的抓取百度首页html代码的程序.虽然简单了一点,后期会加深的. package test; import java.io.BufferedReader; import ...

  2. Hibernate学习2--对象的三种状态以及映射关系的简单配置

    上篇hibernate的博客总体简单梳理了对象持久化的一些思想以及hibernate中对象持久化化的方法,下面说说对象持久化过程的三种状态. 一.hibernate缓存的概念 1.session与缓存 ...

  3. VS编译优化

    程序的调试是任何一个程序必做的“功课”,当然在调试的过程中肯定会或多或少的遇到一些问题.如果每次关掉,修改,然后在启动,浪费不少时间和经历,尤其是在不确定的情况下尝试修改,启动的次数会更多.如果你要调 ...

  4. Excel的Sheet页复制

    最近在做一个项目,其中涉及基于模板对Excel的Sheet页进行复制.在网上尝试了很多,发现都不够完美,苦恼. 然后在查阅资料的过程中,发现有一篇提及,POI的API只对同一个Excel文件中的She ...

  5. 《JavaWeb从入门到改行》那些年一起学习的Servlet

    目录 获取ServletContext : ServletContext接口中的一些方法 application域存取数据功能 代码演示: application域获取项目文件路径 代码演示: API ...

  6. 为什么分布式一定要有redis?(转)

    为什么分布式一定要有redis? 程序员小灰 6天前 点击上方“程序员小灰”,选择“置顶公众号” 有趣有内涵的文章第一时间送达! 作者:孤独烟 来自:http://rjzheng.cnblogs.co ...

  7. laravel验证规则

    就拿laravel的登入验证来举例: 1.进入login控制器, use AuthenticatesUsers;从这里点进去找到验证规则 //验证protected function validate ...

  8. mongodb使用实践---mongodb+mongo-java-driver+morphia

    package com.lolaage.dals.dbfactory.mongodb; import java.net.UnknownHostException; import java.util.A ...

  9. curl POST JSON

    1. 场景 Controller接收json格式数据 封装bean @RequestMapping(value = "/bb", method = RequestMethod.PO ...

  10. react+antd 选项卡切换

    index.js: import React from 'react'; import ReactDOM from 'react-dom'; import CardSecond from './Car ...