发表于: 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了. 即使修改他们的端口号也不行.
明天再看看这个问题.
明天的计划
评论