# ShockWeb **Repository Path**: dhd_index/shockweb ## Basic Information - **Project Name**: ShockWeb - **Description**: ShockWeb 天网微服务架构是高效的、易用的、可控的分布式框架微服务架构。提供无侵入、无依赖开发模式,易于在主流中间件部署。支持有状态、无状态两种模式,支持原生IOC、 Spring IOC容器。设计思路与主流spring cloud、dubbo一致,其性能是spring cloud的10倍以上。核心采用netty和高效二进制序列化工具类,架构分为五大部分:注册中心、微服务服务端、微服务客户端、服务代理、配置中心。每一部分都可以自己单独部署和启动、也可以通过java方法调用启动,因此很容易二次开发和扩展。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 45 - **Created**: 2020-03-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # shockweb - ShockWeb天网微服务架构是高效的、易用的、可控的分布式框架微服务架构。提供无侵入、无依赖开发模式,易于在主流中间件部署。支持有状态、无状态两种模式,支持原生IOC、 Spring IOC容器。设计思路与主流spring cloud、dubbo一致,其性能是spring cloud的10倍以上。核心采用netty和高效二进制序列化工具类,架构分为五大部分:注册中心、微服务服务端、微服务客户端、服务代理、配置中心。每一部分都可以自己单独部署和启动、也可以通过java方法调用启动,因此很容易二次开发和扩展。 1. 核心技术 - **通讯技术** - 1、采用Netty通讯工具,基于TCP通讯协议 - 2、点对点、广播通讯模式,客户端直接与服务端通讯不存在代理等中间环节 - 3、多路复用的通讯信道,在一段时间内保持长连接 - **串行化技术** - 1、采用二进制串行化技术,减少串行化后的字节大小(部分头信息和控制标识精确到bit存储),并提高效率 - 2、对方法名、类名采用编码技术,进一步减少串行化后的字节大小 - 3、反串行化无需指定实例化类,真正实现代码无侵入 2. 微服务架构组成 ![输入图片说明](https://gitee.com/uploads/images/2018/0418/174155_2d9dccd1_1878748.png "屏幕截图.png") - **注册中心服务器** - 1、提供若干个spaceName,支持多个微服务分类注册 - 2、支持多个注册中心集群,只要有一个注册中心正常工作就能提供注册服务,因此提高系统的可靠性和减少资源需求 - 3、服务治理能力,某个微服务器如果正在处理的任务达到上限,任务将被分派到其他微服务器 - **配置中心** - 1、分布式配置中心 - 2、对ShockWeb所有组件提供统一的配置服务 - **微服务** - 1、提供自主和容器方式启动,不依赖任何一种容器 - 2、与Spring集成,实现Spring服务级调用,完美使用Spring的能力 - 3、提供简易IOC的功能,并提供数据直传模式,最大化提高传传输性能 - 4、具备限流、单个微服务高阶动态限流(运行期间采用配置中心动态调整) - 5、异步微服务的支持,保证异步服务被服务端接收并开始处理,否则立即返回异常 - 6、支持微服务调用链路上下文传递 - 7、全调用链日志支持 - **服务路由** - 1、提供微服务的路由功能 - 2、提供反向代理和负载均衡能力 - **客户端** - 1、集成Spring提供申明时服务调用,同时提供API实现动态化服务调用 - 2、提供数据直通传输模式,提供大数据传输效率 - 3、提供广播式调用,多个微服务共同完成同一任务 - 4、支持熔断、出错重试 - 5、支持广播式调用微服务 - 6、支持异步微服务,可用作联机异步批量服务(无需其他MQ等组件支持)