來自大佬的apollo整合微服務的教程:歡迎大家點評和star,鏈接如下:https://gitee.com/owenwangwen/open-capacity-platform
官方demo鏈接:https://github.com/ctripcorp/apollo
開發中的坑:
我的坑:
Java客戶端使用指南:鏈接
open-capacity-platform 微服務能力開發平台
項目簡介
1.用戶登錄
2.用戶管理
3.角色管理
4.菜單管理
5.角色菜單管理
6.注冊中心
8.應用列表以及資料列表頁面正在開發中,敬請期待
項目組織結構分析
├ apollo -- 阿波羅配置中心
├ ├── apollo-adminservice
├ ├── apollo-assembly
├ ├── apollo-biz
├ ├── apollo-buildtools
├ ├── apollo-client
├ ├── apollo-common
├ ├── apollo-configservice
├ ├── apollo-core
├ ├── apollo-demo
├ ├── apollo-portal
├ └── apollo-zuul 整合zuul案例
├ cachecloud-open-parent -- 搜狐redis雲平台
├ ├── cachecloud-open-client
├ ├── cachecloud-open-common
├ └── cachecloud-open-web
├ open-api-gateway -- 服務網關[9000]
├ open-config-cloud --基於spring cloud config 的配置中心
├ ├── config-bus --基於spring cloud bus的服務總線[8201]
├ ├── config-client ----基於spring cloud client端[7001]
├ ├── config-server ----基於spring cloud server端[7201]
├ └── config-zuul ----基於config-client項目整合網關[5555]
├ open-db-core -- 數據庫邏輯封裝
├ open-layui-web -- 基於token的layui后台管理系統
├ open-zipkin-cloud -- 鏈路跟蹤
├ ├── open-zipkin-kafka-server -- kafka鏈路跟蹤服務端[9411]
├ ├── open-zipkin-kafka-client -- kafka鏈路跟蹤客戶端[9412]
├ ├── open-zipkin-memery-server -- 內存跟蹤服務端[9411]
└ └─ open-zipkin-memery-client -- 內存鏈路跟蹤客戶端[9412]
一. 阿波羅配置中心詳解
- 前言
攜程 Apollo 配置中心 學習筆記, Windows 系統搭建基於攜程Apollo配置中心分布式模式, 在此基礎上,介紹如何使用阿波羅整合zuul實現動態路由。
2.環境搭建
-
apollo-configservice
修改如下配置將apollo-configservice 注冊到已有的eureka服務器,同時提供提供配置的讀取、推送等功能.修改apollo-configservice的數據源
-
apollo-core
修改開發環境環境讀取配置文件的地址,填入apollo-configservice注冊到eureka服務器的地址,如果apollo-configservice啟動多台,可以引入nginx負載均衡
3.阿波羅整合zuul服務注冊中心
-
效果預覽
訪問http://127.0.0.1:9999/test163即可讀取阿波羅頁面配置參數,頁面修改后可刷新所有阿波羅客戶端 -
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>
3.1.1 下載項目
在官方github項目中,把項目下載下來 https://github.com/ctripcorp/apollo,導入到Eclipse工程中。如下圖
由於官方給出的分布式搭建需要加入很多啟動參數,過於繁瑣,可以考慮https://gitee.com/234gdfgsdf/open-capacity-platform/tree/master/apollo-master下載
項目組織結構(功能)[端口]
├── apollo -- 阿波羅配置中心
├ ├── apollo-configservice (提供配置的修改、發布等功能,服務對象是Apollo Portal) [8080]
├ ├── apollo-adminservice (提供配置的讀取、推送等功能,服務對象是Apollo客戶端)[8090]
├ ├── apollo-portal (管理界面) [8070]
├ └── apollo-zuul (阿波羅整合zuul網關)
└── open-eureka-server (服務注冊中心)[1111]
3.2 application.properties 配置寫入到Apollo配置中心 3.2.1 application.properties 如下原本是寫在spring boot 工程中的配置信息,接下來寫入到配置中心中。
spring.application.name=sop-api-gateway
server.port=9999
zuul.ignored-services="*"
3.2.2 創建apollo項目
這里我已經創建好了,就不做過多演示了。
將信息上傳寫入到配置文件中,然后在把工程中的application.properties文件刪除。 3.2.3 新建app.properties文件
3.2.4 配置刷新zuul配置
配置頁面發布即時更新zuul配置
application.java啟動類
@RestController
@EnableZuulProxy
@EnableApolloConfig
@EnableDiscoveryClient
@SpringBootApplication
public class ApiGateWayApp {
public static void main(String[] args) { SpringApplication.run(ApiGateWayApp.class, args); }
}
注意加注解。
然后直接啟動即可。。。。。。。
二. 搜狐cachecloud雲平台管理
-
主機規划
19 ls
20 mkdir -p /opt/cachecloud
21 ls
22 cd /opt/cachecloud
23 ls
24 vi init.sh
25 ls
26 chmod 777 init.sh
27 ./init.sh
28 cd /opt/cachecloud/
29 ls
30 ./init.sh root
31 ./init.sh cachecloud
32 ll
33 chown cachecloud.cachecloud -R /opt/cachecloud
34 ls
35 ll
36 ls
37 cd data
38 ls
39 cd ..
40 ls 41 cd conf
42 ls
43 cd ..
44 ls
45 cd redis/
46 ls
47 ifconfig
48 history
詳細搭建可以參考http://www.ywnds.com/?p=10610
三. open-capacity-platform能力開放平台管理
1.注冊中心
2.配置中心
3.認證服務器-->認證中心
3.1本認證中心采取的的數據庫管理應用信息的方式來管理client_id client_secret,同時token的生成方式支持redis集群或者jwt
3.2由於spring security oauth 默認定義的/oauth/token 會驗證client_id以及client_secret,如果不在數據庫中會彈框,所以根據源碼,自定義/oauth2/token節點以password方式的獲取token,並給出友好提示 效果如下
一.錯誤的打開方式
二.正確的打開方式
4.部署
1.cd /root/sop/eureka-server/bin/ && ./start.sh 啟動注冊中心服務
2.cd /root/sop/config-center/configservice/bin/ && ./start.sh 啟動配置中心configservice服務
3.cd /root/sop/config-center/adminservice/bin/ && ./start.sh 啟動配置中心adminservice 服務
4.cd /root/sop/config-center/portalservice/bin/ && ./start.sh 啟動配置中心portalservice服務
5.cd /root/sop/apollo-zuul/bin/ && ./start.sh 啟動演示apollo-zuul項目
待續。。。。。。。。