网站服务迁移实践和注意问题

先说下背景,公司一直使用ucloud的云服务,由于近期旧的机房网络太慢,需要迁移到新的机房。

 

整个架构:后台是mysql+dubbo服务,使用zookeeper对dubbo服务进行管理。

                  前端使用jquery+springMVC+cdn。

                  缓存:memcache。

                  版本控制:svn+maven。

                  服务器:nginx,resin。  

迁移时对数据库,dubbo服务,web服务,maven,memcache,nginx进行迁移(svn,cdn未动)。

迁移策略,模拟一次迁移,copy数据库,maven,svn,memcache,dubbo服务,web服务。进行模拟测试,测试中遇到很多问题,比如数据库用户不存在,注册不上zookeeper,写死ip,java代码写死读取的配置文件等。

迁移顺序:

      1.搭建mysql,maven仓库,nginx,并同步数据和配置数据。

       2.安装memcache,zookeeper服务,copy  dubbo服务和web服务到新的机器上。

       3.按照一定的顺序启动所有服务,有的服务依赖别的服务,有先后顺序。

        由于四十多个rpc服务和二十多个web服务,并分布在多台机器上,整个模拟时间用了2-3天。

在正式迁移过程中,选择整个服务暂停3-4个小时(主要是数据库),在暂停前,所有的dubbo服务和web服务都已在新的机器上了,并处于关闭状态。开始同步数据库,大约花了3个小时,同步完数据库,启动dubbo服务,接着再启动web服务,整个过程还是比较顺利的,没有遇到什么大问题。

总结下:

1.良好的服务部署和统一的服务框架,这个不管在什么时候都是必要的。

2.统一的代码结构,这次发现有的java代码读取linux的路径下文件,而不是放在自己项目下,导致服务起不来。

3.良好的日志和异常处理,很多问题通过查看日志就可以发现问题。dubbo的日志和异常处理做的不错。

 

 

 

你可能感兴趣的:(注意问题,服务迁移)