ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:555.16KB ,
资源ID:3752684      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3752684.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Dubbo框架的使用操作文档.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Dubbo框架的使用操作文档.docx

1、Dubbo框架的使用操作文档Dubbo框架的使用操作文档文件版本:V1.0文件编号:发布日期:2016年10月17日编 制:审 核:批 准:修订版本号修订人修订日期修订描述1.02016年10月17日创建目录1 ZooKeeper的配置安装 11.1 ZooKeeper简介 11.2 详细安装文档说明参考 12 Dubbo-admin配置安装 22.1 管理平台的简介 22.2 详细安装文档的参考 23 创建使用Dubbo框架的Maven项目 33.1 创建Maven项目sinoep-interface-user 33.1.1 创建实体类 33.1.2 创建接口 33.1.3 在Pom.xml

2、文件中引入依赖的包 33.1.4 打包 33.2 创建Maven项目sinoep-common-config 33.2.1 创建全局变量类 33.2.2 创建或者引入*.properties 配置 33.2.3 在Pom.xml文件中引入依赖的包 33.2.4 打包 33.3 创建Maven项目sinoep-common-core 33.3.1 创建引入核心公用的类 33.3.2 在Pom.xml文件中引入依赖的包 33.3.3 打包 33.4 创建Maven项目sinoep-common-parent 33.4.1 创建项目 33.4.2 在Pom.xml文件中引入依赖的包 33.4.3 打

3、包 33.5 创建Maven项目sinoep-service-user(服务提供者) 33.5.1 在Pom.xml文件中引入依赖的包 33.5.2 编写接口实现类 33.5.3 在resource目录下编写两个配置文件 33.5.4 编写测试类启动服务 33.5.5 打包 33.6 创建Maven项目sinoep-web-sso(消费者) 33.6.1 在Pom.xml文件中引入依赖的包 33.6.2 创建Controller或者Action类 33.6.3 在resource目录下编写两个配置文件 33.6.4 部署到tomact运行 34 创建使用Dubbo框架的普通web项目 45 D

4、ubbo开发中restful风格的远程调用 285.1 快速入门 285.1.1 快速入门 285.2 REST服务提供端详解 295.2.1 HTTP POST/GET的实现 295.2.2 Annotation放在接口类还是实现类 295.2.3 JSON、XML等多数据格式的支持 295.2.3.1 Consumers注解使用的说明 295.2.4 中文字符支持 305.2.5 XML数据格式的额外要求 305.2.6 定制序列化 295.2.7 获取上下文(Context)信息 296 已开发的demo项目参考 34ZooKeeper的配置安装简介 ZooKeeper是一个分布式的,开

5、放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。理解Zookeeper的算法可代入现实生活的“投票选举”。Zookeeper字面意思是“动物园管理员”,它是一个分布式的服务框架,基于Fast Paxos算法。Zookeeper分布式集群里,主要分为三个角色:Leader接收所有Follower的提案请求并统一协调发起提案的

6、投票,负责与所有的Follower进行内部的数据交换(同步);Follower直接为客户端服务并参与提案的投票,同时与Leader进行数据交换(同步);Observer直接为客户端服务但并不参与提案的投票,同时也与Leader进行数据交换(同步)。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。安装配置文档Dubbo-admin配置安装简介dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin。通过dubbo-a

7、dmin可以对消费者和提供者进行管理。dubbo管理控制台开源部分主要包含:提供者 路由规则 动态配置 访问控制 权重调节 负载均衡 负责人,等管理功能。安装配置文档3创建使用Dubbo框架的Maven项目备注(按照步骤完成,所用的工程都是maven工程)在搭建Dubbo框架之前,先了解Dubbo框架的工作流程。服务提供者先启动start,然后向注册中心注册暴露服务。消费者向注册中心订阅服务。监控中心统计服务的调用次数和调用时间的监控中心 3.1新建服务的接口及传输对象的项目。接口用于下放给消费者,供消费者调用。项目结构如下代码User.Java/* * 用户Model * author *

8、* */EntityTable(name = sys_user_basicinfo)public class User implements SerializableId GeneratedValue private Long id; private String username; public User() super(); public User(String username,Long id) this.username = username; this.id = id; public User(Long id) this.id = id; public Long getId() re

9、turn id; public void setId(Long id) this.id = id; public String getUsername() return username; public void setUsername(String username) this.username = username; 接口UserService.java /* * 根据用户ID获取用户 * param userid * return */ User getUserById(Long id); /* * 获取对应城市下的全部用户 * param city * return */ public

10、 List getAllByCity(String city); /* * 验证用户名与密码是否正确 * param userName * param passWord * return */ public User login(String userName,String passWord); /* * 测试接口 * return */public String isTest(String name);Pom.xml文件中配置需要依赖的包打开下图红框的部分内容中需要配置的地方,加入依赖的包。3.2创建服务提供者(即:服务接口的实现方)服务提供者主要把服务注册暴露在注册中心,接口的实现类。项目

11、结构3.2.1在Pom.xml文件中添加依赖包,主要引入需要实现的接口。(否则写实现类时候,报错)3.2.2编写接口实现类UserServiceImpl.java代码Servicepublic class UserServiceImpl implements UserService Autowired public UserDao userDao; public String isTest(String name) return UserServiceImpl: + name; public List getAllByCity( String city) return userDao.getA

12、llByCity(city); public User login( String userName, String passWord) return userDao.login(userName,passWord); public User getUserById( Long id) return (User) userDao.getById(id); public User saveUser(Demo user) / TODO Auto-generated method stub return null; public User saveUser(User user) / TODO Aut

13、o-generated method stub return null; 3.2.3编写完实现类,需要把服务接口注册暴露给注册中心,需要在下图红框内的配置文件dubbo-provider.xml中暴露服务。暴露服务的具体配置如下!- dubbo监控中心3.2.4完成把服务接口注册暴露给注册中心,需要编写一个启动测试类。项目中的路径如下图调用Dubbo服务时 ,先把服务提供者启动,向注册中心注册暴露服务,需要编写一个启动程序。代码public class DubboProvider private static final Log log = LogFactory.getLog(DubboPro

14、vider.class); public static void main(String args) try ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(classpath:spring/spring-context.xml); context.start(); UserService UserService = (UserService) SpringBeanUtils.getBean(userService); log.info(UserService.isTest(kjx); ca

15、tch (Exception e) log.error(= DubboProvider context start error:,e); synchronized (DubboProvider.class) while (true) try DubboProvider.class.wait(); catch (InterruptedException e) log.error(= synchronized error:,e); 3.3创建服务消费者项目结构如下消费者主要向注册中心订阅服务。3.3.1 Pom.xml文件中配置需要依赖的包Pom.xml 文件中需要增加的内容(引入需要调用方法的接

16、口)3.3.2 向注册中心订阅服务,需要新建配置文件Dubbo-consumer.xml,配置路径如下需要在红框文件里面增加如下内容 3.3.3 编写消费者代码,调用订阅的服务代码public class DubboConsumer private static final Log log = LogFactory.getLog(DubboConsumer.class); public static void main(String args) try ClassPathXmlApplicationContext context = new ClassPathXmlApplicationCon

17、text(classpath:spring/spring-context.xml); context.start(); UserService userService = (UserService) SpringBeanUtils.getBean(userMsgService); User userdb = userService.getUserById(6452L); log.info(userdb: + userdb.getBirth_day(); System.out.println(实现类:+userService.isTest(kjx); catch (Exception e) lo

18、g.error(= DubboProvider context start error:,e); synchronized (DubboConsumer.class) while (true) try DubboConsumer.class.wait(); catch (InterruptedException e) log.error(= synchronized error:,e); 3.4Dubbo服务既是消费者又是服务提供者按照上述方法新建Dubbo服务,新建接口sinoep-interface-pk和服务sinoep-service-pk,注册暴露到注册中心。例如:sinoep-se

19、rvice-user服务既是消费者有是服务的的提供者,sinoep-service-user消费了sinoep-interface-pk提供的服务,sinoep-service-user为sinoep-web-sso提供了服务。如下图sinoep-service-user既是消费者又为服务提供者3.4.1在Pom.xml文件中添加依赖包,主要引入调用方法的接口。(否则写调用的时候,报错)3.4.2项目中引入两个配置文件dubboconsumer.xml,dubbo-provider.xmldubbo:application 只能配置一个.如下图3.4.3sinoep-service-user系

20、统中直接配置对应消费服务。配置文件中无需配置端口,如果为同一注册中心,无需再次添加注册中心。可使用相同的注册中心配置,如下只配置调用的接口。3.4.4sinoep-service-user系统中填写对应对外提供的协议并配置端口如果同一台服务器部署上述两服务,sinoep-service-user系统端口需与sinoep-interface-pk系统区分。3.4.5启动服务,测试。本地先启动一个服务提供者的dubbo服务sinoep-interface-pk,系统sinoep-service-user系统可直接调用已订阅sinoep-interface-pk系统中的服务4 创建使用Dubbo框架

21、的普通web项目5 Dubbo开发中restful风格的远程调用5.1快速入门在dubbo中开发一个REST风格的服务会比较简单,下面以一个注册用户的简单服务为例说明。这个服务要实现的功能是提供如下URL(注:这个URL不是完全符合REST的风格,但是更简单实用):http:/localhost:8080/users/register而任何客户端都可以将包含用户信息的JSON字符串POST到以上URL来完成用户注册。首先,开发服务的接口:PublicclassUserServiceVoidregisterUser(Useruser);然后,开发服务的实现:Path(users)Publiccl

22、assUserServiceImplimplementsUserServicePOSTPath(register)Consumes(MediaType.APPLICATION_JSON)PublicvoidregisterUser(Useruser)/savetheuser.5.2 REST服务提供端详解 5.2.1 HTTP POST/GET的实现REST服务中虽然建议使用HTTP协议中四种标准方法POST、DELETE、PUT、GET来分别实现常见的“增删改查”,但实际中,我们一般情况直接用POST来实现“增改”,GET来实现“删查”即可(DELETE和PUT甚至会被一些防火墙阻挡)。前面

23、已经简单演示了POST的实现,在此,我们为UserService添加一个获取注册用户资料的功能,来演示GET的实现。这个功能就是要实现客户端通过访问如下不同URL来获取不同ID的用户资料。http:/localhost:8080/users/1001http:/localhost:8080/users/1002http:/localhost:8080/users/1003当然,也可以通过其他形式的URL来访问不同ID的用户资料,例如:http:/localhost:8080/users/load?id=1001JAX-RS本身可以支持所有这些形式。但是上面那种在URL路径中包含查询参数的形式(

24、http:/localhost:8080/users/1001) 更符合REST的一般习惯,所以更推荐大家来使用。下面我们就为UserService添加一个getUserById1(Long id)方法来实现这种形式的URL访问:/http:/192.168.1.103:9090/usermsg/6452.jsonGET Path(id : d+) Produces(MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML) public User getUserById1(PathParam(id) Long id) return (User

25、) userDao.getById(id); GET:指定用HTTP GET方法访问Path(id : d+):根据上面的功能需求,访问getUserById1(Long id)的URL应当是“http:/localhost:8080/users/ + 任意数字,并且这个数字要被做为参数传入getUserById1(Long id)方法。 这里的annotation配置中,Path中间的id: xxx指定URL相对路径中包含了名为id参数,而它的值也将被自动传递给下面用PathParam(id)修饰的方法参数id。id:后面紧跟的d+是一个正则表达式,指定了id参数必须是数字。Produces(MediaType.APPLICATION_JSON):指定getUserById1(Long id)输出JSON格式的数据。框架会自动将User对象序列化为JSON数据。5.2.2 Annotation放在接口类还是实现类在Dubbo中开发REST服务主要都是通过JAX-RS的annotation来完成配置的,在上面的示例中,我们都是将annotation放在服务的实现类中。但其实,我们完全也可以将annotation放到服务的接口上,这两种方式是完全等价的,例如:Path(users)publicinterfaceUserService GETPath(id :

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1