Koper 分布式异步编程框架开源项目

我要开发同款
匿名用户2016年11月18日
137阅读

技术信息

开源地址
https://github.com/KoperGroup/koper
授权协议
Apache

作品详情

Koper

Koper是一个基于消息和事件驱动的分布式异步编程框架,

Koper的设计目标是为大型场景提供高性能高吞吐的简单编程方案。

Koper为分布式环境提供了简化的消息监听和数据事件监听模型,它可以帮你快速建立异步化应用。

Koper可用于互联网高流量应用,例如电子商务、社交、互联金融、O2O等等。

[快速启动] [用户指南]

Cocept概念

核心架构:消息架构,事件驱动架构(EDA)

核心概念:生产者,消费者,消息,消息队列,主题,订阅

核心组件:消息发送者(MessageSeder),消息监听者(MessageListeer),数据事件监听者(DataEvetListeer)

高层概念:消费者群组,消息分区

特性

简化的消息队列监听器模型和API。

简化的数据事件模型和API。

独立消息队列提供者。

Koper默认支持Kafka,也支持其他消息队列作为提供者,例如RabbitMQ,RocketMQ

高性能、高吞吐量

基于消息队列的高可伸缩性

高级特性:时间点记录、消息追踪

编程模型1.监听器(Listeer)模型

用户注册的例子。当一个用户注册, MessageSeder 会向MQ发送一个消息。

messageSeder.sed("koper.memberSigup", "Siged up successfully! " + member.getPhoeNo());

同时,消费者订阅了这个主题然后处理消息(发送消息通知用户)。

 @Compoet  @Liste(topic = "koper.memberSigup")  public class MemberSigupListeer {  @Autowired private SmsService smsService;  public void oMessage(Strig msg) {        smsService.sedSms(msg);    } }

2.数据事件&数据监听器模型

订单例子。

Koper支持事件驱动编程。数据事件的机制是拦截方法调用,并把数据事件发送给消息队列。

orderDao.isertOrder( order);orderDao.updateOrder( order);

响应事件的监听器(DataListeer)

@Compoet  @DataListeer(dataObject = "koper.demo.dataevet.dao.impl.OrderDaoImpl")  public class OrderListeer {  // data evet: oIsertOrder  public void oIsertOrder(Order order) {  System.out.pritl("orderNo : " + order.getOrderNo());  System.out.pritl("create time : " + order.getCreatedTime());  // do some other operatios }  //data evet: oUpdateOrder  public void oUpdateOrder(Order order) {  System.out.pritl("orderNo : " + order.getOrderNo());  // do some other operatios such as cache refresh } //data evet: exceptio o updateOrder  public void oUpdateOrder_X(Order order, DataEvet evet) {  Strig ex = evet.getExceptio();  System.out.pritl("oUpdateOrder exceptio :" +ex);   }}Koper可以用来做什么?

Koper是基于消息队列和事件驱动架构进行分布式计算的框架,它适用于Web应用,业务监控,数据统计和大数据等场景。

在一个高可伸缩的应用里,系统架构和事件驱动架构如下:

典型的使用场景

异步业务处理

分布式数据更新或缓存更新

数据日志

业务监控和告警

详情参见 AsycSceariosadexamples.

如何参与贡献1修改BUG或改进Koper

你可以自由 Fork 源代码,提交你的PullRequest给我们。

2贡献其他的消息队列实现

Koper提供了KafkaProvider作为缺省实现。而且Koper有着良好的扩展性,你可以轻松的实现其他消息队列的Provider,比如说RabbitMQ,RocketMQ,ActiveMQ等等。

详情参见 DeveloperGuide .

【作者】何坤,前宅米首席架构师,阿里巴巴平台架构师。主要领域大型网站架构,框架、分布式系统,云计算研发.曾负责阿里Webx框架,Doris分布式存储等设计研发。

功能介绍

Koper Koper是一个基于消息和事件驱动的分布式异步编程框架, Koper的设计目标是为大型场景提供高性能高吞吐的简单编程方案。 Koper为分布式环境提供了简化的消息监听和数据事件监听模...

示例图片

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论