最近找了一个实习在卓健科技,卓健科技是一家以提供医疗互联网一体化服务的一家中型公司。我的岗位是java开发实习,现在距离我刚入职已经过去4天了,总结一下这几天以来的实习情况和收获。
进入公司第一天主要是来办理入职手续和领取一些办公用品,然后给你一个指定的工位,再找一个老手带你给你布置任务,我第一天的任务是搭建开发环境,由于公司的软件库里的软件比较齐全,所以这项完成的比较快,但是也会碰到一些小问题,不过都可以靠百度解决。
进入公司的第二天,便要求我学习使用git和github,毕竟公司发布需求都是要靠git分发给相关的负责人,所以这个也是必须要学的,当是我觉得相比于git的命令行窗口,他的可视化界面SourceTree会更加简单和好用。
进入公司的第三天,我们的任务就是学习阿里里巴巴的开发规范,因为我们是新手,所以我们编出来的代码肯定是不符合规范的,一堆不符合规范的代码会让自己和与你合作的团带来很大的麻烦无法使团队里有很好的沟通。
第四天,学习完开发规范后,我们就学习了dubbo的使用方法和做了一个小的demo。
在这里我要总结一下我对使用dubbo的心得体验。
首先要搞清楚这四个对象的含义:
1.Provider
暴露服务方称之为“服务提供者”。
2.Consumer
调用远程服务方称之为“服务消费者”。
3.Registry
服务注册与发现的中心目录服务称之为“服务注册中心”。
4.Monitor
统计服务的调用次数和调用时间的日志服务称之为“服务监控中心”。
然后再理解这5条连线的含义
连线1:提供者在注册中心登记服务暴露地址和暴露的服务,属于初始化部分
连线2:消费者向注册中心登记需要的服务,也属于初始化部分
连线3:注册中心向消费者发送消费者需要的服务地址,他属于异步通信
连线4:消费者通过注册中心得到提供者的信息后,便可以直接调用提供者的服务。
连线5:提供者提供的服务会被登记在服务监控中心,服务监控中心每过一分钟便会统计一次在此之上登记服务的被消费次数。
再来说说我做的这个小demo,这个小demo由三个maven的module组成,一个是api(服务接口),一个是提供者,一个是消费者。提供者和消费者都需要引入api 的这一个工程,因为他是共享的接口,然后消费者通过consumer.xml文件向zookeeper订阅提供者的地址,代码如下
<dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/>
<!--向 zookeeper 订阅 provider 的地址,由 zookeeper 定时推送-->
<dubbo:registry address="zookeeper://192.168.152.128:2181"/>
<!--使用 dubbo 协议调用定义好的 api.PermissionService 接口-->
<dubbo:reference id="permissionService" interface="com.wt.dubbo.DemoService"/>
提供者也通过provider.xml文件
<!--定义了提供方应用信息,用于计算依赖关系;在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识-->
<dubbo:application name="demotest-provider" owner="programmer" organization="dubbox"/>
<!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper-->
<dubbo:registry address="zookeeper://192.168.152.128:2181"/>
<!-- 用dubbo协议在20880端口暴露服务 -->
<dubbo:protocol name="dubbo" port="20881" />
<!--使用 dubbo 协议实现定义好的 api.PermissionService 接口-->
<dubbo:service interface="com.wt.dubbo.DemoService" ref="demoService" protocol="dubbo" />
<!--具体实现该接口的 bean-->
<bean id="demoService" class="com.wt.dubbo.provider.DemoServiceImpl"/>
在20880端口暴露了服务和该服务具体的实现。
通过以上的方法消费者便可通过dubbo远程调用提供者提供的服务。
dubbo是一个服务中间件,他被广泛的用于SOA架构的开发中,
这是我画的一个比较简单的SOA架构,SOA架构主要是用于处理高并发问题,随着我们的互联网的技术的不断完善,我们对于执行速度的追求也会越来越高,当我们的服务变的越来越多时,系统调用服务的效率会大幅下降,所以我们需要dubbo来帮助我们更好的更快的调用服务。这就是我对dubbo的一点心得体会。
我做的这个小demo也可以通过我们github地址获取到:
git@192.168.0.116:wangtao/dubbo-demo.git