Skip to content

解决引用官方starter暴露的服务被使用高版本dubbox的客户端调用出现的序列化问题。

License

Notifications You must be signed in to change notification settings

humyna/spring-boot-starter-dubbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

spring-boot-starter-dubbox

解决了引用官方starter暴露的服务被使用高版本dubbox的客户端调用出现的序列化问题。 增加了多注册中心以及多协议配置示例

使用方法

一、发布jar至maven伺服

  1. 下载工程代码
  2. 修改pom.xml中添加你的私服配置
  3. 然后执行mvn deploy,发布至仓库

二、springboot工程暴露和调用dubbo服务

  1. 工程pom.xml引入
<dependency>
	<groupId>info.zoio.spring</groupId>
	<artifactId>spring-boot-starter-dubbox</artifactId>
	<version>1.0.0</version>
</dependency>
  1. 配置
  • yml配置
spring:
  dubbo:
    application:
        name: app-demo
    registry:
      address: zookeeper://127.0.0.1:2181 #修改成your zk配置
    consumer:
      check: false
    provider:
      timeout: 90000
      token: false
      retries: 0
      actives: 30
      accepts: 1000
    protocol:
      id: dubbo
      name: dubbo
      payload: 83886080
      port: 0
      dispatcher: all
      threadpool: fixed
      threads: 1000



单注册中心配置示例:
spring:
  dubbo:
 	registry:
      address: zookeeper://127.0.0.1:2181 #修改成your zk配置	

多注册中心配置示例:
spring:
  dubbo:
	registry[0]:
		id: provider #务必填写id
		address: zookeeper://127.0.0.1:2181 #修改成你服务注册zk地址
	registry[1]:
		id: consumer1
		address: zookeeper://127.0.0.1:2181 #修改成服务提供者1zk地址
	registry[2]:
		id: consumer2
		address: zookeeper://127.0.0.1:2181 #修改成服务提供者2zk地址
	registry[3]:
		id: consumer3
		address: zookeeper://127.0.0.1:2181 #修改成服务提供者3zk地址
在启动参数中添加,使用逗号隔开
-Dspring.dubbo.provider.registry.ids=provider
-Dspring.dubbo.consumer.registry.ids=consumer1,consumer2,consumer3


provider多协议支持同多注册中心配置,
spring:
  dubbo:
  	protocol[0]:
  		id: dubbo #务必填写

在启动参数中添加,使用逗号隔开
-Dspring.dubbo.provider.protocol.ids=dubbo
  1. 服务调用
@org.springframework.stereotype.Component
@org.springframework.context.annotation.Profile({"dev","test","online"})
public class DubboReference {
	@com.alibaba.dubbo.config.annotation.@Reference(group = "demo", version = "1.0.0", timeout = 60000, retries = 3,registry={"0"})//registry对应多注册中心配置的id
	public DemoFacade demoFacade;
}

其中dev、test、online对应

application-dev.yml

application-test.yml

application-online.yml

  • 业务调用
@javax.annotation.Resource
private DubboReference dubboReference;

dubboReference.demoFacade.methodXXX();
  1. 暴露服务
@org.springframework.stereotype.Component
@Service(version = "1.0.0",timeout = 10000,interfaceClass = ExportDemoFacade.class,group="demo")
public class exportDemoFacadeImpl implements exportDemoFacade {
	//TODO
}

三、多注册中心&多协议配置说明

以下配置均经过测试,可放心使用!

  1. 单注册中心配置示例
spring:
  dubbo:
 		registry:
      address: zookeeper://127.0.0.1:2181 #修改成your zk配置
  1. 多注册中心配置示例
spring:
  dubbo:
		registry[0]:
			id: provider #务必填写id
			address: zookeeper://127.0.0.1:2181 #修改成你服务注册zk地址
		registry[1]:
			id: consumer1
			address: zookeeper://127.0.0.1:2181 #修改成服务提供者1zk地址
		registry[2]:
			id: consumer2
			address: zookeeper://127.0.0.1:2181 #修改成服务提供者2zk地址
		registry[3]:
			id: consumer3
			address: zookeeper://127.0.0.1:2181 #修改成服务提供者3zk地址
在启动参数中添加,使用逗号隔开
-Dspring.dubbo.provider.registry.ids=provider
-Dspring.dubbo.consumer.registry.ids=consumer1,consumer2,consumer3
  1. provider多协议支持同多注册中心配置
spring:
  dubbo:
  	protocol[0]:
  		id: dubbo #务必填写

在启动参数中添加,使用逗号隔开
-Dspring.dubbo.provider.protocol.ids=dubbo

About

解决引用官方starter暴露的服务被使用高版本dubbox的客户端调用出现的序列化问题。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages