想必很多刚接触的dubbo项目的同学都遇到过这样一个问题:自己的dubbo项目中底层部署了多个相同dubbo-provider,上层也部署了多个相同的dubbo-consumer。这样可以提升系统的负载能力和并发性。
但是有一天,项目经理说我们的用户需要添加一个昵称功能,但是原来的用户实体类里面并没有nickname字段,所以需要往User实体类里面添加一个新字段。这个功能开发也不是很简单,但是在你部署上线的时候,依次替换dubbo-provider服务的时候却发现后台报了很多错误,返回实体类序列化错误。。
要解决这个问题,需要用到你一个参数version:
1、provider端需要给服务的接口实现类
2、consumer端也需要加上version
当你上线的时候,只需要同时修改provider,consumer端的版本号,这样在部署的时候,就会有两个不同的版本同一时刻在提供服务,这样服务不会出现大量报错的情况