微服務架構選型

API Gateway:html

            選型1:Kong。Kong基於nginx LUA定製開發的,nginx自己比較成熟穩定,LUA方式應用場景較爲普遍。另外Kong的社區活躍度很是高。前端

                         Kong URL:https://github.com/Mashape/kongreact

                         Kong的架構:https://getkong.org/about/jquery

                         缺點:服務的對外能力暴露還須要額外配置和定義,比較麻煩。須要調用kong的restful api進行配置和定義(參考:配置kong的url配置)。nginx

           選型2:zuul:netflix的標配,和netflix相關組件配合良好。支持從eureka拿到服務信息,能夠經過serviceid直接進行調用。git

                         這樣就比較方面調用了。參考http://blog.didispace.com/springcloud5/github

                         先選擇zuul。spring

服務註冊和發現:sql

            選型1:Consul。Consul 自己也很成熟,和ETCD並列的分佈式配置和服務註冊中心,spring 對consul進行了封裝,支持基於spring consul的服務註冊和發現,consul支持集羣模式。數據庫

                        直接採用Consul官方的集羣模式,部署爲至少3個節點的集羣

                         URL:https://github.com/hashicorp/consul

                        spring和consul結合參考 http://www.voidcn.com/blog/mn960mn/article/p-6075068.html

                         關鍵點:若是選型zuul,則zuul是否支持從consul中獲取相關信息?仍是須要利用spring consul,從spring consul獲取信息。這個須要驗證?

            選型2:eureka。netflix官方標準組件。

                         先選擇eureka。

微服務開發框架:Spring Boot。 Spring Boot開發微服務很是輕量級,上手快,和spring相關工具融合度好。

                         URL:http://projects.spring.io/spring-boot/

client 端LB:Spring Feign 。Feign 整合了Ribbon和Eureka來提供均衡負載的HTTP客戶端實現。

微服務配置中心:Spring Config。基於git的配置管理,自然支持版本化管理。git的文件須要放置到共享存儲上,保證配置的高可用性。

                        URL:https://github.com/spring-cloud/spring-cloud-config

微服務熔斷:Spring Hystrix.不過因爲自身管理系統併發量比較小,能夠暫時不考慮引入。

                        URL:https://github.com/spring-cloud/spring-cloud-netflix

工做量引擎:Activity 是workflow的業界標配,工單系統,變動管理等都須要走workflow。因爲是內部系統,流程定義先手動定義,後續有須要在提供圖形化定義。另外,流程的圖形化展現須要支持。

                        URL:https://www.activiti.org/

Pipeline:備選方案:

                       1:spinnaker:https://github.com/spinnaker   原超超預研

                       2:jenkins的pipeline插件。                       管小偉預研

前端頁面技術: reactjs + bootstrap

    下面比較下reactjs和jquery

reactjs

jquery+jquery插件

https://facebook.github.io/react
https://jquery.com

社區活躍性
star 71k; 1,041 contributors
star 45k; 265 contributors

學習難度
容易
容易

組件化開發
支持
使用插件方式進行擴展,易讀性很差

組件開發
很是簡單,靈活
比較麻煩,組件越複雜越難。能夠開發一個日期組件比較下

頁面性能
較好

手機端app,是否能夠複用代碼

靈活性
較好
直接操做dom,好

數據庫:Mysql

緩存:Redis

LB:LVS

相關文章
相關標籤/搜索