谈谈部署Apollo整合zuul走过的坑

首先感谢大佬的代码支持和技术支持:https://gitee.com/owenwangwen/open-capacity-platform,欢迎大家star一下,达到100star作者会录制视频,也算是福利。

====================================================================================================================================================

   公司需要使用配置中心Apollo,所以才有幸能接触到这个框架,刚开始拿到这个框架无从下手。下了官方demo来改,结果发现快速部署启动项目源码(https://github.com/nobodyiam/apollo-build-scripts)被作者打包了,估计也加入了防篡改的技术,只要我修改了all-in-one.jar包,再重新打包编译项目始终跑不起来。后面还是放弃了这个方法。

  于是重新转向研究官方demo,很荣幸认识了一个哥们,从头到尾帮助我很多,经过两天的帮助,成功集成好了zull服务。就是本文章一开始的软广告,不过他技术确实牛逼,传说中的十年大佬。

  步骤如下:

  第一步:https://github.com/ctripcorp/apollo/wiki/Quick-Start按照官方要求,检查环境:JDK1.8,mysql5.7.11(但是我项目中使用的是mysql5.6.20一样完美运行)

  第二步:参照大佬的说明文档搬过来的,如需要原创,从本文最前面的网址中进入即可,记得先导入数据到mysql数据库中,不然后面的坑你会想不到的。

坑如下:

  坑一:我刚开始是想通过以前打包过的eureka来注册服务,结果刚开始没发现启动的服务127.0.0.1:1111/v2,注册服务始终注册不上,这是肯定的了,尼玛,作者给你标明的这么明显,你加个v2啥子意思,不相信软件索。结果瞎折腾这个折腾了一天,后面通过作者的指导使用外置的eureka来注册服务,地址就和作者标明的地址对应上了。

  坑二:为了获取apollo-core中配置文件dev-meta内容,需要先正常eureka服务,然后再启动apollo-configservice ,输入地址:http://localhost:8080/services/config获取,如果获取不到,则需要检查下启动是否报错,成功如图所示)

 

 

 

 

  第三步:修改数据库apolloconfigdb只不过的eureka为自己的实际eureka地址如图所示,数据源configservice、adminservice、portal的数据源,然后启动adminservice服务,然后启动portal服务,图片来自作者的开源项目(记得看日志是否成功,成功后再进行启动下一个服务

 

    • apollo-configservice
      修改如下配置将apollo-configservice 注册到已有的eureka服务器,同时提供提供配置的读取、推送等功能. 修改apollo-configservice的数据源 

    • apollo-adminservice
      修改apollo-adminservice的数据源 

    • apollo-portal
      修改apollo-portal代码及数据源

    • apollo-core
      修改开发环境环境读取配置文件的地址,填入apollo-configservice注册到eureka服务器的地址,如果apollo-configservice启动多台,可以引入nginx负载均衡

  第四部:启动成功后如图所示:

 

  坑三:如果访问8070端口右上角提示请联系管理员500错误,就是portal服务启动报错,需要重新启动检查下。

 

  第五步:整合zuul路由。

apollo-zuul
apollo-zuul项目用的是Eureka作为服务注册与发现,因此这里我加入了Eureka Client的依赖,同时需要加入zuul网关的依赖实现微服务的路由 pom.xml文件加入以下依赖

  <dependencies>
        <dependency>
               <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>0.10.0-SNAPSHOT</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> <scope>true</scope> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zuul</artifactId> </dependency> </dependencies>

  第六步:apollo内置的路由无法访问,需要写一个入口,而且注意路径需要新建一个文件( C:\opt\settings\)   文件名:server.properties  文件内容:env=DEV  。不然启动会找不到文件的。

 

  坑四:启动zuul服务时候报错,8080端口被占用是因为出现zull没有访问到9999端口,需要配置第六步即可。

 

  坑五:启动zuul时候报一下错,是因为入口的zuul没有 /META-INF/app.properties 这个文件,我天真地以为zuul会自动去访问apollo-zuul下的该文件,结果需要各自都有一份该文件,复制即可

2018-04-09 15:46:49.642  WARN 7324 --- [           main] c.c.f.f.i.p.DefaultApplicationProvider   : /META-INF/app.properties not found from classpath!
2018-04-09 15:46:49.685  WARN 7324 --- [           main] c.c.f.f.i.p.DefaultApplicationProvider   : 
app.id is not available from System Property and /META-INF/app.properties. It is set to null

  坑六:zuul配置文件中的app.id需要填写你想要的zuul服务的appId ,并修改对应的eureka地址(似乎不修改也可以的,因为是读取的数据库中的)如图所示

  坑七:记得整理下该项目的maven层次结构,注意并没有吧apollo-zuul当做apollo模块,而是单独的maven项目()

  现更正如下:zuul模块(open-apollo-gateway)是根目录下的项目,删除了apollo-zuul对项目完全没有任何影响,已测试通过。

 

  第七部:终于看到希望了。访问:http://127.0.0.1:9999/test163

 

最后附上源码:https://download.csdn.net/download/qq_38620276/10337552  如没有币下载的加我Q:842695235或者留下QQ邮箱即可,将源码免费分享给大家。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值