微服务架构选型
Posted jdktomcat
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务架构选型相关的知识,希望对你有一定的参考价值。
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。由于是内部系统,流程定义先手动定义,后续有需要在提供图形化定义。另外,流程的图形化展示需要支持。
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
以上是关于微服务架构选型的主要内容,如果未能解决你的问题,请参考以下文章