微服务

微服务

  1. 框架

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-npPGO9HV-1582187672572)(C:\Users\Lenovo\Desktop\作业截屏\4281643D34A6CA032D7169F53672C1DA_750_750.png)]

  1. dubbo的初步使用

    dubbo是一个java RPC框架,所谓的RPC指的是远程调用,就像调用本地方法一样调用另外项目中的代码

    相关概念:

    服务提供者(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
    服务消费者(Consumer): 调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    注册中心(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
    监控中心(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

    关系:

    服务容器负责启动,加载,运行服务提供者。
    服务提供者在启动时,向注册中心注册自己提供的服务。
    服务消费者在启动时,向注册中心订阅自己所需的服务。
    注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
    服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
    服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

1.安装zookeeper

2.启动zookeeper

​ ![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQBdOwXu-1582187672572)(C:\Users\Lenovo\Desktop\截屏\批注 2020-02-20 153539.png)](https://img-blog.csdnimg.cn/20200220163725654.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NjAwNTU1MA==,size_16,color_FFFFFF,t_70)

双击zkServer.cmd

3.安装dubbo-admin

	GitHub地址:https://github.com/apache/dubbo-ops

进入到dubbo-admin-ui目录下运行npm install
修改dubbo-admin-server/resource/application.properties中的zookeeper,然后启动
然后运行dubbo-admin-ui项目

注意:配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YH7CUFH5-1582187672573)(C:\Users\Lenovo\Desktop\截屏\批注 2020-02-20 154641.png)]

启动main方法

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GPsyduc5-1582187672575)(C:\Users\Lenovo\Desktop\截屏\批注 2020-02-20 154932.png)]

在浏览器中输入

http://localhost:7001 得到页面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nV0N9mBy-1582187672576)(C:\Users\Lenovo\Desktop\截屏\批注 2020-02-20 155211.png)]

4.基于xml实现dubbo

这里项目共两个,user-provider作为用户服务项目负责用户管理,order-consumer作为订单服务项目负责订单管理,当前场景是在用户中需要使用订单项目中的OrderService中方法,所以这里使用dubbo技术栈

1、写服务提供者(Provider)端配置

添加pom依赖

<!--dubbo设置,服务提供者-->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>dubbo</artifactId>
  <version>2.6.2</version>
</dependency>

<dependency>
  <groupId>com.101tec</groupId>
  <artifactId>zkclient</artifactId>
  <version>0.10</version>
</dependency>

<dependency>
  <groupId>org.apache.curator</groupId>
  <artifactId>curator-framework</artifactId>
  <version>2.12.0</version>
</dependency>

修改spring配置文件

头部添加
xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"

http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd

<!-- 配置项目名称 -->
<dubbo:application name="项目名称"></dubbo:application>
<!--指定注册中心(zookeeper别忘了开)的地址  -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!--使用dubbo协议,将服务暴露在20881端口  -->
<dubbo:protocol name="dubbo" port="20881" />

<!-- dubbo注解扫描的包,使用基于注解实现的话需要开启 -->
<dubbo:annotation package="cn.lihao.service.impl"/>
<!-- 指定需要暴露的服务 -->
<!--<dubbo:service interface="cn.lihao.service.UserService" ref="userServiceImpl" />-->

如果是基于注解使用的话需要在对外暴露的service实现类上加@Service注解,注意改注解使用的是dubbo下的,如果原本的serverImpl还想使用spring注解注册成bean的话可以选择另外声明@service或者使用@Component,效果一样

注意:

(1、这些配置是在原本的ssm框架上配置,所以如果要用的话需要先搭建ssm框架

(2、为传输数据方便,需要在实体类上实现Serializable接口

2、写服务消费者(Consumer)端配置

pom文件中和服务调用者一样(这里可以设置一个公共的项目存放接口和相同依赖)

修改spring配置文件
头部添加
xmlns:dubbo=“http://dubbo.apache.org/schema/dubbo”

http://dubbo.apache.org/schema/dubbo
http://dubbo.apache.org/schema/dubbo/dubbo.xsd

<dubbo:application name="web-order"></dubbo:application>
<!-- 指定注册中心地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" />
<!-- 生成远程服务代理,可以和本地bean一样使用demoService -->
<!--<dubbo:reference id="userService" interface="cn.lihao.service.UserService"></dubbo:reference>-->

<!-- 注解配置,扫描包下所有注解 -->
<dubbo:annotation package="cn.lihao.controller"/>

如果是基于xml配置使用的

启动时:

启动user 和order

刷新[http://localhost:7001 点击箭头

注解配置,扫描包下所有注解 -->
<dubbo:annotation package=“cn.lihao.controller”/>

调用测试

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oGOpfwIY-1582187672577)(C:\Users\Lenovo\Desktop\截屏\批注 2020-02-20 161531.png)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值