首先感谢大佬的代码支持和技术支持: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服务,图片来自作者的开源项目(记得看日志是否成功,成功后再进行启动下一个服务)
第四部:启动成功后如图所示:
坑三:如果访问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邮箱即可,将源码免费分享给大家。