微服务架构选型

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

相关文章
相关标签/搜索