关于在工作中使用dubbo和zookeeper的一些理解

声明:本文章的内容是我目前在公司所做的项目中得到的经验与总结,仅为自己的工作、成长笔记!

第一次接触分布式的项目,经验不足,对项目所用的框架和技术比较生疏,入职一个多月,今天对项目结构的理解又有了进一步的提升,在此记录一下。

关于dubbo和zookeeper的一些定义我不在这里解释,因为我也是刚接触,对他们的原理和底层的一些东西我也不是很熟悉,我只是简单说下对目前做的项目的理解,在目前做的项目中,结构大致分为三层:1.facade层(伪注册中心层)、2.services层、3.web层。

1.facade层,主要是在zookeeper注册中心中需要注册的服务和暴露的接口、dto、entity

2.services层,主要是实现接口的具体业务逻辑,我们称之为biz,和与数据库进行交互操作的dao

3.web层,主要是jsp页面和controller,以及一些css样式和js文件

项目的大体流程是这样的,在facade层中注册(写好)需要暴露的接口,这些接口在services层中具体实现业务逻辑,web层中jsp页面请求controller中的方法,controller调用facade中的接口,这里可以理解为web层发出请求后去注册中心里查询这个服务接口是否已经注册并且有相应的服务提供者,如果有,注册中心会将实现该服务的service的url返回给web层,这样wb层去访问注册中心返回来的url地址,也就是services层中具体的实现方法,services将操作后的结果返回给web层,这样下来一套流程算是走完。其中,dto用在网络数据传输层中,这并不是实体,只是根据controller需要的字段有选择的创建的类,而entity不出现在网络数据传输层中,它只在dao层中与数据库交互,在前台请求中的参数由dto或者基本类型来承载,所以传递到services层中的参数并不是实体,所以,一般在这里将dto中的数据copy到实体中,再由实体与数据库进行操作。这样实体的属性和结构并不会暴露出去,保证了项目的安全行,而且用dubbo和zookeepe搭建的分布式项目(并不是说dubbo和zookeeper这俩很强,springcloud也是分布式的框架,只是将分布式的项目和单点项目做一个比较),安全性要比一般的单点项目要高,因为分布式的项目暴露在外网的只是web层中页面的访问地址,对于后面的返回的service的url和具体的操作是在内网环境中配置的,没有直接的物理操作,安全性是极高的。而且,分布式项目可有很多个services层和web层,也是可以解决高并发和产品版本冲突。上传的图片画的挺乱的,如果配着前面写的解释看应该可以看明白一点。

dubbo一些详解的地址:http://shiyanjun.cn/archives/325.html

猜你喜欢

转载自blog.csdn.net/shiyus1314/article/details/77500780