Coder Social home page Coder Social logo

huangyiming's Projects

3y icon 3y

3y原创技术文章导航

alibaba-mom icon alibaba-mom

2015 ali中间件比赛项目,1. 通信模块: 涉及到了消息架构设计,每一个主题分配1-2个队列,这个是可以横向增加,考虑到了一个主题有多个消费者订阅,而且还有过滤条件,为了负载均衡,对应的队列投递消息是根据随机数对队列数取膜完成的。以上是内存队列。 2. 持久化系统:因为考虑到机器坏掉,broker不可用等等原因导致的消息丢失,就需要每次收到的消息必须及时落盘,这个就是比赛优化的重中之重。为此设计了一个小型的文件系统,借鉴阿里的rocketmq. 用一个大的日志文件,一般1G大小每个,和内存队列的结构映射到实体队列。整个日志文件是顺序文件,每条消息固定大小,里面有对应的队列号,消息号,还有长度等等。这个方便恢复消息到实体队列用的。 同步刷盘,异步刷盘,持久化必须可靠,所以一般是同步刷盘到日志文件,日志文件定时异步刷盘到实体队列,实体队列里面是索引,消息的本体在日志文件里面。为了加快大面积的写入速度,用了内存映射:内存映射文件首先将外存上的文件映射到内存中的一块连续区域,被当成一个字节数组进行处理,读写操作直接对内存进行操作,而后再将内存区域重新映射到外存文件,这就节省了中间频繁的对外存进行读写的时间,大大降低了读写时间

alpakka-kafka icon alpakka-kafka

Alpakka Kafka connector - Alpakka is a Reactive Enterprise Integration library for Java and Scala, based on Reactive Streams and Akka.

angel icon angel

A Flexible and Powerful Parameter Server for large-scale machine learning

apdplat icon apdplat

APDPlat是Application Product Development Platform的缩写,即应用级产品开发平台。

apollo icon apollo

Apollo(阿波罗)是携程框架部门研发的配置管理平台,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限、流程治理等特性。

arthas icon arthas

Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas

bitcoin icon bitcoin

Bitcoin Core integration/staging tree

blog icon blog

两周一篇,内容精简,不咸不淡,期盼探讨。QQ:7685413

brpc icon brpc

brpc is an Industrial-grade RPC framework using C++ Language, which is often used in high performance system such as Search, Storage, Machine learning, Advertisement, Recommendation etc. "brpc" means "better RPC".

btm icon btm

JTA Transaction Manager

bytejta icon bytejta

ByteJTA Transaction Manager旨在提供一个常规的基于XA两阶段提交的分布式事务管理器。

bytetcc icon bytetcc

ByteTCC Transaction Manager旨在提供一个兼容JTA的基于TCC机制的分布式事务管理器。

canal icon canal

阿里巴巴mysql数据库binlog的增量订阅&消费组件

cassandra icon cassandra

A distributed storage system for managing structured data while providing reliability at scale.

cat icon cat

Central Application Tracking

chronicle-map icon chronicle-map

Replicate your Key Value Store across your network, with consistency, persistance and performance.

clover icon clover

clover 1、开发server和client端 定时向zk集群发送心跳数据包,利用Java自带的timer程序实现该功能 2、开发整天的monitor程序,用来定时向zk中获取server和client端的心跳数据信息,如果超过指定时间没有收到最新的数据包,那么任务server端或者client端死掉了,此时要删除该server或client端节点,发邮件通知相关人员,记录异常日志到系统日志文件和MongoDB中 3、client端接受创建job请求,将job信息创建到client服务端,并根据job时间规则运行,并将任务信息存储到MongoDB中 4、当client端job运行时候,封装执行任务信息,发送到指定客户端机器,更新client端job执行时间和状态,如不在需要继续运行,那删除job并从MongoDB中删除相关任务信息 5、client端接受删除job请求,client服务端,立即执行删除job并将任务信息从MongoDB中删除 6、client端接受更新job请求,client服务端,立即执行删除job并创建新job,并将任务信息从MongoDB中删除,然后再存储新job信息 7、第一版 使用Netty做消息通讯中间件,存储消息放入Redis中,服务器开启Http请求,客户端 通过 发送Http请求到服务器来处理请求,由于任务太多 redis处理能力不行,放弃该方案 第二版 使用Netty RPC框架,自己开发一个Server端和Client,各种启动指定端口,由于 必须要求Server端和Client必须启动才能进行消息发送,所以感觉非常不灵活,因为放弃该方案 第三版 使用架构组推荐的rocketmq,通过使用发现,很严重问题,消息会重复发送,经常会收到重复的消息,在测试的时候发现,经常发生消息异常和报错,跟架构组刘婷峰沟通说,可能是机器性能不行了,他也不知道具体原因,感觉非常不靠谱,果断放弃 第四版 使用 zeromq,通过在网上查资料,对比各种mq后,发现zeromq是最轻量级,出现消息是最快的,经过测试完全能满足业务,果断使用 8、由于项目中使用zk,自己开发zk使用工具类,定制server端增删改查zk消息以及定制client端增删改查zk消息,功能测试zk,目前打算增加zk watch功能 9、开发server和client端 定时向zk集群发送心跳数据包,利用Java自带的timer程序实现该功能 10、开发整天的monitor程序,用来定时向zk中获取server和client端的心跳数据信息,如果超过指定时间没有收到最新的数据包,那么任务server端或者client端死掉了,此时要删除该server或client端节点,发邮件通知相关人员,记录异常日志到系统日志文件和MongoDB中 11、开发console控制台管理,可以查看任务动态运行状态和次数信息 12、zk管理页面,查看server和client端节点信息,更新和删除节点信息 13、job管理页面,查看job详细信息 14、联系人管理页面,增删改查联系人信息 15、log日志管理页面,根据系统报错记录的日志信息,在页面中可以详细查看

cobar icon cobar

基于MySQL的分布式数据库服务中间件

codis icon codis

Proxy based Redis cluster solution supporting pipeline and scaling dynamically

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.