{"repo":"microsurging/surging","free":true,"listed":false,"github":"https://github.com/microsurging/surging","clone":"git clone https://github.com/microsurging/surging.git","description":"Surging is a micro-service engine that provides a lightweight, high-performance, modular RPC request pipeline. support Event-based Asynchronous Pattern and reactive programming.","language":"C#","stars":3262,"topics":["microservices","apigateway","surging","rabbitmq","messagepack","protobuffer","json-serialization","consul","zookeeper","log4net"],"license":"MIT","category":"deployment-docker-iac","readme_excerpt":"# surging English surging 是一个分布式微服务框架,提供高性能RPC远程服务调用，采用Zookeeper、Consul作为surging服务的注册中心，集成了哈希，随机，轮询，压力最小优先作为负载均衡的算法，RPC可以选择采用netty或thrift框架，采用异步非阻塞传输。 名字由来 英文名：surging 中文名：滔滔 中文名来自周星驰的经典台词 我对阁下的景仰犹如滔滔江水,连绵不绝,犹如黄河泛滥,一发而不可收拾，而取名英文的含义也希望此框架能流行起来，也能像《.net core surging》这句英文语句含义一样，.net core技术风起云涌,冲击整个软件生态系统。 微服务定义 微服务应该是可以自由组合拆分，对于每个业务都是独立的，针对于业务模块的 CRUD 可以注册为服务，而每个服务都是高度自治的，从开发，部署都是独立，而每个服务只做单一功能，利用领域驱动设计去更好的拆分成粒度更小的模块 微服务边界 微服务是针对业务的松耦合，也是粒度最小的功能业务模块，针对于行业解决方案，集成相应的service host,而针对于业务需要一些中间件来辅助，比如缓存中间件，eventbus中间件（消息中间件），数据储存中间件,而各个服务又可以互相通过rpc进行可靠性通信。 引擎是微服务的容器，而docker 是服务引擎的容器，而利用k8s或rancher可以针对docker集群化管理，可以服务编排弹性扩容，熟知工具，让工具物尽其用。 能做什么 1.简化的服务调用，通过服务规则的指定，就可以做到服务之间的远程调用，无需其它方式的侵入 2.服务自动注册与发现，不需要配置服务提供方地址，注册中心基于ServiceId 或者RoutePath查询服务提供者的地址和元数据，并且能够平滑添加或删除服务提供者。 3.软负载均衡及容错机制，通过surging内部负载算法和容错规则的设定，从而达到内部调用的负载和容错 4.分布式缓存中间件：通过哈希一致性算法来实现负载，并且有健康检查能够平滑的把不健康的服务从列表中删除 5. 事件总线：通过对于事件总线的适配可以实现发布订阅交互模式 6.容器化持续集成与持续交付 ：通过构建一体化Devops平台,实现项目的自动化构建、部署、测试和发布，从而提高生产环境的可靠性、稳定性、弹性和安全性。 7. 业务模块化驱动引擎，通过加载指定业务模块，能够更加灵活、高效的部署不同版本的业务功能模块 引擎如何安装 docker hub : docker pull serviceengine/surging:版本号 nuget:Install-Package surging -Version 版本号 架构图 调用链 配置： 文件配置： 非容器环境文件配置 容器环境文件配置 服务路由访问配置： JWT验证，接口方法添加以下特性： AppSecret验证，接口方法添加以下特性： 订阅功能： 增加服务容错、服务容错降级、服务强制降级 增加容错策略Injection，脚本注入： 增加容错策略Injection，本地模块注入： 增加缓存降级，怎么使用？ 在业务接口方法上添加如下特性 怎么拦截获取缓存 在业务接口方法上添加如下特性 怎么拦截删除缓存 在业务接口方法上添加如下特性 怎么添加缓存KEY 在业务模型属性上添加，如下特性，可以支持多个 配置拦截器 捐赠明细 surging 接受来自社区的捐赠，所有款项将通过 捐赠明细表 进行公示，接受社区监督。 IDE:Visual Studio 2017 15.5,vscode 框架：.","default_branch":null,"files":null,"tree":[],"storefront":"/r/microsurging","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/microsurging/surging/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}