发表于: 2019-10-25 17:01:47

1 1082


今天做了什么

任务9用dubbo分离实现了.服务器也能跑通.


总结一下dubbo:
dubbo就是前期下载稍微复杂些,需要安装zookeeper,dubbo-admin(非必须)等,但使用起来很渐变,监控中心可视化界面也非常方便于调试,并且默认能实现负载均衡.非常好用.
1.提供者端: 导包,在provider.xml中进行暴露,将其引入applicationContext.xml,在MainApplication中.start().
provider.xml暴露服务:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo
       http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <!--定义了提供方应用信息,用于计算依赖关系;在 dubbo-admin 或 dubbo-monitor 会显示这个名字,方便辨识-->
    <dubbo:application name="demotest-provider" owner="programmer" organization="dubbox"/>
    <!--使用 zookeeper 注册中心暴露服务,注意要先开启 zookeeper并与zookeeper端口一致-->
    <dubbo:registry address="zookeeper://localhost:2181"/>
    <!-- 用dubbo协议在20880端口暴露服务.可以同名的服务占用不同的dubbo端口,实现均衡负载 -->
    <dubbo:protocol name="dubbo" port="20880" />
    <!--使用 dubbo 协议实现定义好的 api.PermissionService 接口-->
    <!--xxxService-->
    <dubbo:service interface="com.service.xxxService" ref="xxxService" protocol="dubbo" />
    <bean id="xxxService" class="com.serviceImpl.xxxServiceImpl"/><!--具体实现该接口的 bean-->
    <!--其他的service照搬第一个写法-->
</beans>
MainApplication:
public class MainApplication {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        context.start();
        System.out.println("_________From server: provider ready !");
        while (true);
    }
}
2.消费者端配置更简单,省去了MainApplication
在consumer.xml引用服务:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
    <dubbo:application name="demotest-consumer" owner="programmer" organization="dubbox"/>
    <!--向 zookeeper 订阅 provider 的地址,由 zookeeper 定时推送-->
    <dubbo:registry address="zookeeper://localhost:2181"/>
    <!--使用 dubbo 协议调用定义好的 api.PermissionService 接口-->
    <dubbo:reference id="xxxService" interface="com.service.xxxService"/>
    <!--其余service同理-->
</beans>
需要调用服务时自动注入即可.


收获

问题
上传图片又开始疯狂报踏马的错,上次也是出问题搞了好久.
1.报required patameter xxx is not present
2.报空指针错误.

然后试了十几种改法莫名其妙改好了,回头分析又找不到到底哪里有问题.


关于zookeeper和tomcat的端口问题. 开启zookeeper后就无法启动tomcat了. 即使修改他们的端口号也不行.

明天再看看这个问题.

明天的计划



返回列表 返回列表
评论

    分享到