黑马程序员技术交流社区

标题: [重庆校区]淘淘项目技术总结1 [打印本页]

作者: xiongliu    时间: 2018-1-26 11:10
标题: [重庆校区]淘淘项目技术总结1
1. 项目架构
1) 分布式soa
i. 按照功能把系统拆分,拆分成独立的功能,单独为某一个节点添加服务器,需要之间的配合才能完成整个业务逻辑,叫做分布式
ii. 系统之间需要进行通信(采用dubbo服务中间件实现系统间的通信)
iii. 分布式优点:
1. 把模块拆分,使用接口通信,降低模块间的耦合度
2. 拆成多个子项目,方便任务的分配和分发,这样可以将各个项目交由不同的团队进行开发。
3. 对项目的延续开发有很大好处,如:当项目需要添加一个子项目时,只需要调用其他系统的接口即可。
4. 可以灵活的进行分布式部署
iv. 缺点:
1. 采用soa增加了项目的工程量,因为soa系统之间需要进行通信,故而也要使用到远程通信,接口的开发工作量的到了巨大的增加。
2. 各个模块有一些通用的业务逻辑无法公用
2) 使用Maven管理工程
i. 方便架包管理
ii. 方便工程之间的依赖管理
iii. Maven自带自动打包
3) 服务端使用Svn(版本控制系统)
i. 一般一个项目组只有一个svn,并不是每个开发者都需要安装服务端。
ii. Svn是把数据放在一个中央资料档案库(repository)中,这个档案库就像一个文件服务器,它会记住每一次的数据变更,这样可以很方便的恢复数据。
iii. Svn的优缺点:svn对中文支持很好,操作简单,没有难度,使用界面统一,功能完善,操作方便。
4) Git(分布式版本控制系统)
i. 作用:用于有效、高速的处理从很小到非常大的项目版本管理。
ii. 分布式相对于集中式的最大区别在于开发者可以提交到本地,每个开发者通过clone,,在本地机器上拷贝一个完整git仓库。
iii. Git的功能特性:
1. 从服务器上克隆完整的git仓库到单机上,包括代码和版本信息。
2. 在自己的机器上根据不同的开发目的,创建分支和修改代码
3. 在单机上自己创建的分支上提交代码
4. 在单机上合并分支
5. 解决冲突:一般是编码者之间协商处理
iv. Git的优缺点:对程序源代码进行差异化的版本管理,代码库占极少的空间,易于代码的分支管理,不支持中文,图形界面支持差,使用难度大,不易推广。
5) Dubbo(服务中间件)阿里巴巴产品
i. Dubbo有五个节点
1. provider—服务提供方
2. Consumer—服务消费方
3. Register—服务注册中心
4. Monitor—统计服务的调用次数和调用时间的监控中心
5. Container—服务运行容器
ii. 五个节点间的调用关系
1. 服务器负责启动,加载,运行服务提供者,服务提供者启动时向注册中心注册自己提供的服务,消费者启动时去注册中心订阅自己所需要的服务,注册中心返回服务提供者地址给消费者,如果有变更注册中心将基于长连接推送变更数据给消费者。消费者从提供者地址列表中,基于负载均衡算法,选一台提供者进行调用,如果失败,再选择另一台调用;提供者与消费者之间,在内存中累积调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
iii. Spring中dubbo的配置
1. 提供方:<dubbo:service>,里面需要给出接口的全限定名
2. 消费方:<dubbo:reference>同上
iv. Zookeeper(注册中心)
1. 相当于目录服务器,服务的提供者和消费者只在启动时与注册中心交互,注册中心不转发请求,压力较小。
2. 它是一个树形的目录服务,支持变更推送适合作为dubbo的注册中心
v. 使用dubbo的好处:使用rpc协议进行远程调用,直接使用socket通信,传输效率高,并且可以统计出系统间的调用关系和调用次数。(soa项目中推荐使用)
vi. webservice相比:webservice基于soap协议,效率不高,项目中不推荐使用。
vii. 使用restful形式的服务:http+json。很多项目中应用,如果服务太多,服务之间的调用关系混乱,需要治疗服务
viii. 涉及概念:
1. soapSOAP 最初代表简单对象访问协议” SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 使用http协议传输xml文本的技术
2. restful:一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
3. rpc:(Remote Procedure Call Protocol——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCPUDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。



作者: Yin灬Yan    时间: 2018-1-28 11:52
我来占层楼啊  
作者: 荼靡    时间: 2018-2-2 15:37
666666666666666666666
作者: 轨迹72    时间: 2018-7-4 10:31
66666666666666




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2