标签:
pom:
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.8</version>
<type>pom</type>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion> <!--当在Maven中有包的冲突的时候,为解决包的冲突,我们可以在依赖中排除依赖-->
<artifactId>spring</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
服务提供者:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 提供方应用名称信息,这个相当于起一个名字,我们dubbo管理页面比较清晰是哪个应用暴露出来的 -->
<dubbo:application name="dubbo_provider"></dubbo:application>
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false" subscribe="false" register=""></dubbo:registry>
<!-- 要暴露的服务接口 -->
<dubbo:service interface="com.jk.service.StuServiceInter" ref="stuService" />
<bean id="stuService" class="com.jk.service.StuServiceImp"></bean>
<!-- 用dubbo协议在20880端口暴露服务 -->
<!-- <dubbo:protocol name="dubbo" host="10.3.41.6" port="20880" /> -->
<dubbo:protocol name="dubbo" port="20880"/> <!---------不加的话 会报错,报ip之类错误--------- -->
<!-- <dubbo:application name="dubbo-provider"/>
<dubbo:registry protocol="zookeeper" address="127.0.0.1:2181" />
<dubbo:protocol name="dubbo" port="4090" />
<dubbo:monitor protocol="registry"/>
<dubbo:annotation package="com.jk.test.imp" />
<bean id="sayHello" class="com.jk.test.imp.SayHelloImpl"></bean>
<dubbo:service interface="com.jk.test.api.SayHello" ref="sayHello" timeout="10000" /> -->
</beans>
注意:
实现Serializable最重要的两个原因是:
1、将对象的状态保存在存储媒体中以便可以在以后重新创建出完全相同的副本;
2、按值将对象从一个应用程序域发送至另一个应用程序域。
实现serializable接口的作用是就是可以把对象存到字节流,然后可以恢复。
所以你想如果你的对象没实现序列化怎么才能进行网络传输呢,要网络传输就得转为字节流,
所以在分布式应用中,你就得实现序列化,如果你不需要分布式应用,那就没那个必要实现序列化。
暴露服务:
1、通过阿里巴巴 编写的主方法 进行暴露
public static void main(String[] args) {
com.alibaba.dubbo.container.Main.main(args); //调用阿里的 主方法,它默认会加载 META-INF/spring/下的配置文件
}
2、通过启动项目进行暴露
<?xml version="1.0" encoding="UTF-8"?>
<!-- spring 监听 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-base.xml, //加载注解扫描
classpath:spring-common.xml,
//数据库连接信息
classpath:META-INF/spring/spring-dubbo.xml
//加载暴露服务 xml
</param-value>
</context-param>
</web-app>
消费者:
web.xml:
消费引用接口配置:
<?xml version="1.0" encoding="UTF-8"?>
default-lazy-init="false" >
<dubbo:application name="dubbo_consumer"></dubbo:application>
<!-- 使用zookeeper注册中心暴露服务地址 -->
<dubbo:registry address="zookeeper://127.0.0.1:2181" check="false"></dubbo:registry>
<!-- 要引用的服务 -->
<dubbo:reference interface="com.jk.service.StuServiceInter" id="stuServiceImp"></dubbo:reference>
</beans>
dubbo+zookeeper+springMVC +maven
标签:
原文地址:http://www.cnblogs.com/dengheng/p/5798991.html