微服务架构选型

API Gateway:

            选型1:Kong。Kong基于nginx LUA定制开发的,nginx本身比较成熟稳定,LUA方式应用场景较为广泛。另外Kong的社区活跃度非常高。

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

                         Kong的架构:https://getkong.org/about/

                         缺点:服务的对外能力暴露还需要额外配置和定义,比较麻烦。需要调用kong的restful api进行配置和定义(参考:配置kong的url配置)。

           选型2:zuul:netflix的标配,和netflix相关组件配合良好。支持从eureka拿到服务信息,可以通过serviceid直接进行调用。

                         这样就比较方面调用了。参考http://blog.didispace.com/springcloud5/

                         先选择zuul。

服务注册和发现:

            选型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

猜你喜欢

转载自www.cnblogs.com/jdktomcat/p/9157506.html