SOA架构
基于服务的SOA架构_后续篇
今天是元宵节,首先祝各位广大博友在接下来的光阴中技术更上一层,事事如意!(没能在元宵节发布,今天就补上吧)
昨天简单介绍了一下本人在近期开发过的一个电商购物平台的架构流程和一些技术说明;今天将详细总结一下在项目中用到的各个架构技术的环境部署和细节,希望能够帮到大家,如有瑕疵,请各位大神指正。
一:详谈服务治理的核心框架之Dubbo及注册中心zookeeper
首先说说Dubbo这个框架吧,接触这个框架是在去年的年底,当时我们公司的架构师震哥赏了我一点关于架构方面的资料,我看了几天感觉挺对它们感冒的,所以就想着学学架构,哪天当当架构师,呵呵,这只是个近期目标,好了,还是吹吹主角dubbo吧。
Dubbo它是阿里巴巴出品的开源的分布式框架,它最大的特点是可以用分层的架构,使表现层和业务层实现解耦合。从面向服务的角度来谈,dubbo采用一种非常简单的模型,要么就是给消费者提供服务,要么就是引用提供方发布的服务(这里的名词解释就不详了,大家可以去找度娘),再接着就是说说dubbo的调用关系原理吧,明白了这点可以强化我们对dubbo的感觉,至少我是这么认为的。

但是说到这里,又一个优秀的角色注册中心zookeeper登场了,他主要是作为Dubbo服务框架的注册中心(当然也可以使用我们熟悉的redis作为注册中心,但是这里我采用最优的,任性一把),他主要是负责各种服务的地址查询和注册,说白了相当于一个目录服务,还有它的一个优点就是从来不转发请求,压力很小(友情提示:在使用Dubbo2.3以上的版本时,建议使用zookeeper注册中心)。
最后就跟大家分享一些安装步骤和在项目中使用的源码。
1、安装zookeeper注册中心
首先上传压缩包,进行解压,然后进入zookeeper解压目录,找到conf目录下文件名为zoo_sample.cfg并将文件名称修改为zoo.cfg,然后进行编辑配置,截图如下:

配置过程中主要注意:
主要配置dataDir和clientPort参数,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能够作为负载均衡的理由,这是我感觉非常有用,各位可以在以后的设计结构过程中完全可以考虑:

下面我就拿一个需求来说说吧,也没多少时间了。
需求:当我们访问由一台服务器的IP地址映射的域名访问网站时,后台不仅只有一台服务器在响应数据,而是有多台服务器在轮训进行响应数据。

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


SOA架构的更多相关文章
- 企业SOA架构设计理论
SOA简介 SOA(Service-Oriented Architecture,面向服务架构)是一种将信息系统模块化为服务的架构风格.拥有了服务之后,我们就可以迅速地将这些服务按不同方式重新组合,从而 ...
- SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- 论SOA架构的几种主要开发方式
转: http://blog.csdn.net/chenleixing/article/details/44926955 面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络 ...
- SOA架构设计(转发)
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
- SOA架构介绍和理解
SOA架构介绍和理解 SOA的正确方法论及目标模型,其实SOA在实现架构落地上,需要考虑到对服务的组合,不断的重用现有的服务,让企业应用可以逐步集成,快速实现业务的迭代. 通过SOA架构分层将服务按照 ...
- SOA 架构中的ESB是更好的应用于异构系统集成整合还是用于统一服务调用/基础服务实施
一.讨论主题与观点 写一篇文章.发现一次自觉得有意思的SOA架构方面的讨论,源于昨天AgileEAS.NET SOA 平台群(113723486)里几个群友的一次关于ESB的一次讨论. 大家的讨论观点 ...
- 基于AgileEAS.NET企业应用平台实现基于SOA架构的应用整合方案-开篇
开篇 系统架构的文章,准备在这段时间好好的梳理和整理一下,然后发布基于AgileEAS.NET平台之上的企业级应用架构实践,结合具体的案例来说明AgileEAS.NET平 台之上如何进行系统的逻辑架构 ...
- 论SOA架构的几种主要开发方式【转】
面向服务架构soa以其独特的优势越来越受到企业的重视,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使用.服务层是SOA的基础,可以直接被应用调用,从而有效控制系 ...
- 搭建一个BS 的简单SOA 架构(直接通过jquery 调用后台的 wcf 服务的架构)(第一天)
亲们!还在用传统的三层架构吗?你还在对SOA架构 不了解吗? 那就赶快来学习下一个 比较简单的SOA的架构吧!我会手把手的 教会你们怎么搭建这个 简单的SOA的架构. 其中用的技术点保证 WCF,a ...
- [转]SOA架构设计经验分享—架构、职责、数据一致性
阅读目录: 1.背景介绍 2.SOA的架构层次 2.1.应用服务(原子服务) 2.2.组合服务 2.3.业务服务(编排服务) 3.SOA化的重构 3.1.保留服务空间,为了将来服务的组合 4.运用DD ...
随机推荐
- iOS 富文本属性
// NSFontAttributeName 设置字体属性,默认值:字体:Helvetica(Neue) 字号:12 // NSForegroundColorAttributeNam 设置字体颜色,取 ...
- 跨文件代码跳转插件:Ctags
1.通过package control搜索Ctags 2.Enter安装,等待其安装完成 3.下载ctags可执行程序,链接:https://pan.baidu.com/s/1jIINAxo 密码:4 ...
- 五、cent OS防火墙常用命令
查看防火墙开闭状态systemctl status firewalld 开启防火墙systemctl start firewalld 关闭防火墙systemctl stop firewalld 查看已 ...
- Java 基础(4)——常量 & 注释
hello 呀,今天的内容超简单( ̄︶ ̄)↗并且,还有暗藏福利哟~~ 常量 常量 就是常常不变的量,第一次定义之后,就不会发生改变了.可能这就是 “常量” 的来源吧哈哈哈(玩笑). 一般来说,常量的定 ...
- MongoDB 学习(二)可视化界面
一.安装可视化界面 1.mongobooster 安装和配置 1.下载安装 下载地址:https://nosqlbooster.com/downloads 下载完成后直接点击安装: 安装完成弹出界面: ...
- Java基础(十)数据结构
一.数据结构 1.数据结构的定义 数据结构是计算机存储,组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或存储效率.数据结构 ...
- js为什么放到head中有时候失效
1.今天写js碰到一个奇怪的问题,写好的js放到body里面执行,但是放到head中没有任何效果,为什么导致这种原因呢? 看失效代码: <!DOCTYPE html PUBLIC "- ...
- thinkphp下判断状态值语法
在thinkphp框架下我们经常会用到状态值的判断:但是这样写会引起语法错误. <div> <if condition="{$res.status} eq '0'" ...
- cssText用法和使用说明
cssText 本质是什么? cssText 的本质就是设置 HTML 元素的 style 属性值. cssText 怎么用? document.getElementById("d1&quo ...
- Python入门-迭代器
在说迭代器之前,首先来简单说一下函数名的运用以及闭包的概念和应用,有助于我们理解以后的知识. 一.函数名的运用 函数名是一个变量,但它是一个特殊的变量,与括号配合可以执行函数的变量. 1.函数名的内存 ...