{"forkee":{"id":41127798,"name":"clover","full_name":"zhang98722/clover","owner":{"login":"zhang98722","id":7775417,"avatar_url":"https://avatars.githubusercontent.com/u/7775417?v=3","gravatar_id":"","url":"https://api.github.com/users/zhang98722","html_url":"https://github.com/zhang98722","followers_url":"https://api.github.com/users/zhang98722/followers","following_url":"https://api.github.com/users/zhang98722/following{/other_user}","gists_url":"https://api.github.com/users/zhang98722/gists{/gist_id}","starred_url":"https://api.github.com/users/zhang98722/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zhang98722/subscriptions","organizations_url":"https://api.github.com/users/zhang98722/orgs","repos_url":"https://api.github.com/users/zhang98722/repos","events_url":"https://api.github.com/users/zhang98722/events{/privacy}","received_events_url":"https://api.github.com/users/zhang98722/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/zhang98722/clover","description":"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日志管理页面，根据系统报错记录的日志信息，在页面中可以详细查看","fork":true,"url":"https://api.github.com/repos/zhang98722/clover","forks_url":"https://api.github.com/repos/zhang98722/clover/forks","keys_url":"https://api.github.com/repos/zhang98722/clover/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zhang98722/clover/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zhang98722/clover/teams","hooks_url":"https://api.github.com/repos/zhang98722/clover/hooks","issue_events_url":"https://api.github.com/repos/zhang98722/clover/issues/events{/number}","events_url":"https://api.github.com/repos/zhang98722/clover/events","assignees_url":"https://api.github.com/repos/zhang98722/clover/assignees{/user}","branches_url":"https://api.github.com/repos/zhang98722/clover/branches{/branch}","tags_url":"https://api.github.com/repos/zhang98722/clover/tags","blobs_url":"https://api.github.com/repos/zhang98722/clover/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zhang98722/clover/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zhang98722/clover/git/refs{/sha}","trees_url":"https://api.github.com/repos/zhang98722/clover/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zhang98722/clover/statuses/{sha}","languages_url":"https://api.github.com/repos/zhang98722/clover/languages","stargazers_url":"https://api.github.com/repos/zhang98722/clover/stargazers","contributors_url":"https://api.github.com/repos/zhang98722/clover/contributors","subscribers_url":"https://api.github.com/repos/zhang98722/clover/subscribers","subscription_url":"https://api.github.com/repos/zhang98722/clover/subscription","commits_url":"https://api.github.com/repos/zhang98722/clover/commits{/sha}","git_commits_url":"https://api.github.com/repos/zhang98722/clover/git/commits{/sha}","comments_url":"https://api.github.com/repos/zhang98722/clover/comments{/number}","issue_comment_url":"https://api.github.com/repos/zhang98722/clover/issues/comments{/number}","contents_url":"https://api.github.com/repos/zhang98722/clover/contents/{+path}","compare_url":"https://api.github.com/repos/zhang98722/clover/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zhang98722/clover/merges","archive_url":"https://api.github.com/repos/zhang98722/clover/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zhang98722/clover/downloads","issues_url":"https://api.github.com/repos/zhang98722/clover/issues{/number}","pulls_url":"https://api.github.com/repos/zhang98722/clover/pulls{/number}","milestones_url":"https://api.github.com/repos/zhang98722/clover/milestones{/number}","notifications_url":"https://api.github.com/repos/zhang98722/clover/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zhang98722/clover/labels{/name}","releases_url":"https://api.github.com/repos/zhang98722/clover/releases{/id}","created_at":"2015-08-21T01:47:57Z","updated_at":"2015-08-21T01:47:05Z","pushed_at":"2015-04-15T09:07:41Z","git_url":"git://github.com/zhang98722/clover.git","ssh_url":"git@github.com:zhang98722/clover.git","clone_url":"https://github.com/zhang98722/clover.git","svn_url":"https://github.com/zhang98722/clover","homepage":null,"size":5084,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","public":true}}