Fork me on GitHub

SpringBoot企业级框架

Zebra 微服务框架 springBoot

GitHub地址:https://github.com/ae6623/Zebra

OSCGit地址:http://git.oschina.net/ae6623/Zebra

Zebra4J是一款使用Sping Boot特性全新开发的微服务WEB框架,尝试封装一些常用框架比如dubbo等作为spring-boot组件,结合微服务的框架思想,利用NodeJsZebra4Js作为应用网关,使得各个功能分层服务,持续迭代,解放团队生产力,快速构建企业级Web 应用。

Frameworks and Tools 构建

  • Java&IDE: JDK8 Lamda/Intellij Idea 16
  • Backend: SpringBoot Docker Zookeeper (Configured by annotation/app)
  • Database: Mysql/MongoDB/Redis
  • Cache:Memcached/Redis
  • Web Server: Nginx/Tomcat 7
  • Build Tool: Maven
  • Other: Commons-Dbcp2(database connection pool) JUnit sl4j Jackson FastJson
  • Zebra4J Port:http://localhost:8888
  • Zebra4Js Port:http://localhost:8360

About 关于落雨

License 许可协议

1.什么是微服务

微服务是一种分布式的架构,它所有的组件(也就是服务)会被部署为单独的应用程序,并通过某种远程访问协议(Rpc/Restful)进行通讯。分布式应用的挑战之一就是如何管理远程服务的可用性和它们的响应。服务可用性是服务消费者连接服务并能够发送请求的能力,服务响应则关注服务的响应时间。

2.微服务的局限

并不是所有的业务系统都适用于微服务,不能说现在流行这个,我就把公司上上下下几千个系统全部放入Docker,全部都架上微服务的袈裟,你应该静下心来,仔细分析你的商业需求、商业驱动、组织架构和团队技术环境,因为微服务并不适应所有的场景。而且基于RESTful的协议请求,很容易被多次重复调用,此时应考虑加入消息机制,利用消息进行事务的处理以及异步服务的调用,在此需要提醒各位在数据一致性高可用方面做好取舍,准备好一致性的补偿机制。

3.微服务的好处

打了这么多预防针,你还是跟到了这里,那么我们来谈谈微服务的好处,

  • 应用太大,我们上线一个小功能,并不想再所有程序都打包上线,这很烦,我们需要拆开,拆成单个的服务出来。每个服务都有一个Rpc或者RESTful的Api进行业务驱动,由类似于Spring cloud或者Zookeeper的服务管理者去发现和监听各个服务节点的状态。
  • 拆出来的微服务,就可以交给不同的团队进行开发,维护更加简单,不会因为一个模块上线失败,而整体回滚。
  • 部署方便,Jekens + Docker直接部署,对于前端而言,根本不知道后台什么时候突然部署了1w台服务,用户几乎0察觉,轻松应对秒杀等业务,流量下来之后,随时Stop服务。

4.微服务的实现

  • 1.网关
    • 采用API的方式,制造一个所有的端都支持的网关,作为唯一的入口,可以提供授权、监控、负载、缓存、静态、返回相应等入口,建议使用RESTfulhttp接口。
    • 网关的作用
      • 提供统一服务入口,让微服务对前台透明
      • 聚合后台的服务,节省流量,提升性能
      • 提供安全,过滤,流控等API管理功能
    • 网关要考虑交互的方式
      • 客户端 1:1 服务端
      • 客户端 1:N 服务端
  • 2.服务发现
  • 3.服务调用
    • 同步调用
      • Rpc
      • Rest
    • 异步调用
      • MQ
  • 4.服务可用
    • 重试
    • 限流
    • 熔断
    • 负载
    • 降级
    • 缓存
  • 5.服务发布
    • Jekins Docker
posted @ 2016-12-17 21:32  _落雨  阅读(...)  评论(... 编辑 收藏