koding mysql_koding kite如何部署使用?

1.下载kite和kontrol代码

git项目里面都有介绍, 这里是下载最新代码,如果是用于生产环境,注意从release下载稳定版本

go get github.com/koding/kite

2.安装Kontrol和初始化

Install Kontrol:

go get github.com/koding/kite/kontrol/kontrol

注意:这里生成的kontrol可执行程序在 $GOPATH/bin/目录下面

Generate keys for the Kite key:

openssl genrsa -out key.pem 2048

openssl rsa -in key.pem -pubout > key_pub.pem

Set environment variables(这里设置基本环境变量,也可以通过kontrol进行修改):

KONTROL_PORT=6000

KONTROL_USERNAME="kontrol"

KONTROL_STORAGE="etcd" #注意这里,有个坑,默认是etcd,但是没有注明安装和部署

KONTROL_KONTROLURL="http://127.0.0.1:6000/kite"

KONTROL_PUBLICKEYFILE="$youpath/certs/key_pub.pem"

KONTROL_PRIVATEKEYFILE="$youpath/certs/key.pem"

Generate initial Kite key:

$GOPATH/bin/kontrol -initial

执行结果如下

~/gocode/bin $./kontrol -initial

2015-07-29 09:57:25 [kontrol] WARNING Key pair storage is not set. Using in memory cache

2015-07-29 09:57:25 [kontrol] INFO Registered machine on user: kontrol

kite.key is written to ~/.kite/kite.key. You can see it with:

kitectl showkey

3. 下载运行etcd

从https://github.com/coreos/etcd/releases/tag/v2.1.1 直接下载编译好的二进制

注意:这里只是为了跑通程序,部署单机进行测试

qpzhang@qpzhangdeMac-mini:~/gocode/kitetest/etcd-v2.1.1 $./etcd

2015/07/29 15:20:28 etcdmain: setting maximum number of CPUs to 1, total number of available CPUs is 8

2015/07/29 15:20:28 etcdmain: no data-dir provided, using default data-dir ./default.etcd

2015/07/29 15:20:28 etcdmain: listening for peers on http://localhost:2380

2015/07/29 15:20:28 etcdmain: listening for peers on http://localhost:7001

2015/07/29 15:20:28 etcdmain: listening for client requests on http://localhost:2379

2015/07/29 15:20:28 etcdmain: listening for client requests on http://localhost:4001

2015/07/29 15:20:28 etcdserver: name = default

2015/07/29 15:20:28 etcdserver: data dir = default.etcd

2015/07/29 15:20:28 etcdserver: member dir = default.etcd/member

2015/07/29 15:20:28 etcdserver: heartbeat = 100ms

2015/07/29 15:20:28 etcdserver: election = 1000ms

2015/07/29 15:20:28 etcdserver: snapshot count = 10000

2015/07/29 15:20:28 etcdserver: advertise client URLs = http://localhost:2379,http://localhost:4001

2015/07/29 15:20:28 etcdserver: initial advertise peer URLs = http://localhost:2380,http://localhost:7001

2015/07/29 15:20:28 etcdserver: initial cluster = default=http://localhost:2380,default=http://localhost:7001

2015/07/29 15:20:28 etcdserver: starting member ce2a822cea30bfca in cluster 7e27652122e8b2ae

2015/07/29 15:20:28 raft: ce2a822cea30bfca became follower at term 0

2015/07/29 15:20:28 raft: newRaft ce2a822cea30bfca [peers: [], term: 0, commit: 0, applied: 0, lastindex: 0, lastterm: 0]

2015/07/29 15:20:28 raft: ce2a822cea30bfca became follower at term 1

2015/07/29 15:20:28 etcdserver: starting server... [version: 2.1.1, cluster version: to_be_decided]

2015/07/29 15:20:28 etcdserver: cannot monitor file descriptor usage (cannot get FDUsage on darwin)

2015/07/29 15:20:28 etcdserver: added local member ce2a822cea30bfca [http://localhost:2380 http://localhost:7001] to cluster 7e27652122e8b2ae

2015/07/29 15:20:29 raft: ce2a822cea30bfca is starting a new election at term 1

2015/07/29 15:20:29 raft: ce2a822cea30bfca became candidate at term 2

2015/07/29 15:20:29 raft: ce2a822cea30bfca received vote from ce2a822cea30bfca at term 2

2015/07/29 15:20:29 raft: ce2a822cea30bfca became leader at term 2

2015/07/29 15:20:29 raft: raft.node: ce2a822cea30bfca elected leader ce2a822cea30bfca at term 2

2015/07/29 15:20:29 etcdserver: setting up the initial cluster version to 2.1.0

2015/07/29 15:20:29 etcdserver: published {Name:default ClientURLs:[http://localhost:2379 http://localhost:4001]} to cluster 7e27652122e8b2ae

2015/07/29 15:20:29 etcdserver: set the initial cluster version to 2.1.0

4.启动kontrol

~/gocode/bin $./kontrol -ip=127.0.0.1 -port=6000

2015-07-29 15:23:20 [kontrol] WARNING Key pair storage is not set. Using in memory cache

2015-07-29 15:23:20 [kontrol] INFO New listening: 127.0.0.1:6000

2015-07-29 15:23:20 [kontrol] INFO Serving…

现在能启动了,这里连接etcd是用默认的端口4001,如果在不同机器上部署,需要修改配置。

kontrol的使用方法如下:

Usage of ./kontrol:

-initial=false: Change value of Initial.

-ip=: Change value of Ip.

-kontrolurl=http://127.0.0.1:6000/kite: Change value of KontrolURL.

-machines=[]: Change value of Machines.

-port=6000: Change value of Port.

-postgres-dbname=: Change value of Postgres-DBName.

-postgres-host=localhost: Change value of Postgres-Host.

-postgres-password=: Change value of Postgres-Password.

-postgres-port=5432: Change value of Postgres-Port.

-postgres-username=: Change value of Postgres-Username.

-privatekeyfile=/Users/qpzhang/gocode/kitetest/key.pem: Change value of PrivateKeyFile.

-publickeyfile=/Users/qpzhang/gocode/kitetest/key_pub.pem: Change value of PublicKeyFile.

-registerurl=: Change value of RegisterUrl.

-tlscertfile=: Change value of TLSCertFile.

-tlskeyfile=: Change value of TLSKeyFile.

-username=kontrol: Change value of Username.

-version=0.0.1: Change value of Version.

5.启动示例的kite 从 https://github.com/koding/kite/tree/master/examples 下载代码进行测试,这里测试的是

math_register.go 和 exp2-query.go

先启动提供服务者,向kontrol进行注册:

~/gocode/kitetest $./math_register

2015-07-29 15:29:00 [math] INFO Dialing 'kontrol' kite: http://127.0.0.1:6000/kite

2015-07-29 15:29:00 [math] DEBUG Client transport is set to 'WebSocket'

2015-07-29 15:29:00 [math] INFO Connected to Kontrol

2015-07-29 15:29:00 [math] INFO Registering to kontrol with URL: http://localhost:6667/kite

2015-07-29 15:29:00 [math] DEBUG Telling method [register] on kite [kontrol]

2015-07-29 15:29:00 [math] DEBUG Sending: {"method":"register","arguments":[{"kite":{"name":"math","username":"kontrol","id":"284df2a9-427f-4a31-7f80-883a2e15d042","environment":"unknown","region":"unknown","version":"1.0.0","hostname":"qpzhangdeMac-mini.local"},"authentication":{"type":"kiteKey","key":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE0MzgxNTQ1ODUsImlzcyI6ImtvbnRyb2wiLCJqdGkiOiIyODRkZjJhOS00MjdmLTRhMzEtN2Y4MC04ODNhMmUxNWQwNDIiLCJrb250cm9sS2V5IjoiLS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS1cbk1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBMUlrcnFhdU50SnVZSjk0M0l3RlRcbnI0MUlpRmxqeGUrK0YyMi9CRzBuOE55cTc5Umo1bE5IMUMvMi81S0dvWFBTTWgrdFRNYmQzWEozZ01ZSzRaOWRcbnkxNno0eW5nSktMWHZWdFphUXp1UnhJZlc3Y2dMcWtnOEFZZEJPTUxhV3RTb1JPakZSbmIrTzlNK250K3l1S2JcblRmNW1kMDZJSFIyTk5EYlM3YWVKaDdjU0xXVTJySXRSbEl6ZWRHYkFZZVQvS1J0ZjBjd3NLTHZGa21RdGRqTFBcbkllUzUzMVBIalRjTHorQ0FHTkFPT2pJemdSYysrb0hiWUtBcGZLZll1dk5FeWdBcmdkUllYMm1sU0s0QjVWK3VcbjJEWDZvdmFLa0NENkF2TmMxWkNKeWZRYmx0VDJPOVhnTFVJSnh6Zm5VSUlVdTdaV3hudjdsTGxZSTJaaS9CZFhcblhRSURBUUFCXG4tLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0iLCJrb250cm9sVVJMIjoiaHR0cDovLzEyNy4wLjAuMTo2MDAwL2tpdGUiLCJzdWIiOiJrb250cm9sIn0.UfZkGk1vVucTkRzqX4Cr6s8DogQSB3PuwGIE3BZzLgZHIwUDsok6wJaDJjL5kv154qf5HT9g3KwOZmJFe82NdITqseqvzazI1UKKZszzoBCj94wqV4r-tAzcDk_Bx3NituWnmcTFBCoddVcylvEM83BLDTONF2AU387IrmEhNaptOi61F3D5o7K1MVoUVr-HSn39jtpllJPdGnsXBS5uT-DBBniT76545M-odVqP83RToB45ahp_XRYNzbguVizqRyeKR-XVgAAy5_ckB419-R1d1ZOyCRmnzQjlyZgUk_S_A0F2x_hUfij_GcjYp2Nzy_UeZvNvubFMNdQaeTC56g"},"responseCallback":"[Function]","withArgs":[{"url":"http://localhost:6667/kite"}]}],"callbacks":{"0":[0,"responseCallback"]}}

2015-07-29 15:29:00 [math] DEBUG Received : {"method":"kite.heartbeat","arguments":[{"kite":{"name":"kontrol","username":"kontrol","id":"b49f6b65-b152-420c-5e0b-4919b0b1825f","environment":"unknown","region":"unknown","version":"0.0.1","hostname":"qpzhangdeMac-mini.local"},"authentication":null,"responseCallback":"[Function]","withArgs":[10,"[Function]"]}],"callbacks":{"0":[0,"responseCallback"],"1":[0,"withArgs",1]}}

2015-07-29 15:29:00 [math] DEBUG Received : {"method":0,"arguments":[{"error":null,"result":{"url":"http://localhost:6667/kite","heartbeatInterval":0}}],"callbacks":{}}

2015-07-29 15:29:00 [math] INFO Registered to kontrol with URL: http://localhost:6667/kite and Kite query: /kontrol/unknown/math/1.0.0/unknown/qpzhangdeMac-mini.local/284df2a9-427f-4a31-7f80-883a2e15d042

2015-07-29 15:29:00 [math] INFO New listening: 0.0.0.0:6667

2015-07-29 15:29:00 [math] INFO Serving...

然后启动调用者:

~/gocode/kitetest $./exp2-query

2015-07-29 15:29:06 [exp2] INFO Dialing 'kontrol' kite: http://127.0.0.1:6000/kite

2015-07-29 15:29:06 [exp2] INFO Connected to Kontrol

2015-07-29 15:29:07 [exp2] INFO Dialing 'math' kite: http://localhost:6667/kite

2015-07-29 15:29:08 [exp2] INFO math: Message from math: "You have requested square of 7"

input: 7 result: 49

然后会看到math_register输出日志:

2015-07-29 15:29:07 [math] DEBUG New session: yWydSeY8IQKWfs3CkOhh

2015-07-29 15:29:08 [math] DEBUG Received : {"method":"square","arguments":[{"kite":{"name":"exp2","username":"kontrol","id":"a6a11fab-d476-4275-4770-a42ad6698c3d","environment":"unknown","region":"unknown","version":"1.0.0","hostname":"qpzhangdeMac-mini.local"},"authentication":{"type":"token","key":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiIva29udHJvbC91bmtub3duL21hdGgiLCJleHAiOjE0MzgzMjc4MDYsImlhdCI6MTQzODE1NDk0NiwiaXNzIjoia29udHJvbCIsImp0aSI6IjMyMTA4ZWIzLTg5MWItNGExZi03ZjQ3LTQ0MDU4YTczYWIyZSIsIm5iZiI6MTQzODE1NDg4Niwic3ViIjoia29udHJvbCJ9.CrireQe5HvNxbefvyGSaWDpHYEaX7cAkkQJjbWno4f7ki5sLAqJGet65heyiZFMNqJBALQZHkTVjExuwYA8b7ade4Y15ht9yhUdK8hRNbpzgQ5NHCMozJLvpkeijkp02EMSG8wfNbXogld3OkcajpGzN0b6KnRfSmsyNe9MdX5u7VesHo4JXTzlnY9zOTTtgGEjZQvlxI8WQTXge_6O0IMKO2xl5PvokYrnOLmNnKMYKYRYtj2MH58vvkQaqoktiKGRGmSDqBzNDoxX4X1reWdShcPn_1c38sV1aw3CvFbjRyrXHGf25g5dMqX98jC7IpcLCKWTv9rkKuS88LCvNPA"},"responseCallback":"[Function]","withArgs":[7]}],"callbacks":{"0":[0,"responseCallback"]}}

2015-07-29 15:29:08 [math] DEBUG Session "yWydSeY8IQKWfs3CkOhh" is identified as "/kontrol/unknown/exp2/1.0.0/unknown/qpzhangdeMac-mini.local/a6a11fab-d476-4275-4770-a42ad6698c3d"

Call received, sending result 49 back

至此,这个框架都跑起来了。

但是都是在本机。

【Kite架构是怎么样?】

【Kite代码是怎么编写的?】

【Kite如何搭建分布式系统?会存在那些问题?】

后续慢慢研究 了。

本项目是一个基于SSM(Spring+SpringMVC+MyBatis)后端框架与Vue.js前端框架开发的疫情居家办公系统。该系统旨在为居家办公的员工提供一个高效、便捷的工作环境,同时帮助企业更好地管理远程工作流程。项目包含了完整的数据库设计、前后端代码实现以及详细的文档说明,非常适合计算机相关专业的毕设学生和需要进行项目实战练习的Java学习者。 系统的核心功能包括用户管理、任务分配、进度跟踪、文件共享和在线沟通等。用户管理模块允许管理员创建和管理用户账户,分配不同的权限。任务分配模块使项目经理能够轻松地分配任务给团队成员,并设置截止日期。进度跟踪模块允许员工实时更新他们的工作状态,确保项目按计划进行。文件共享模块提供了一个安全的平台,让团队成员可以共享和协作处理文档。在线沟通模块则支持即时消息和视频会议,以增强团队之间的沟通效率。 技术栈方面,后端采用了Spring框架来管理业务逻辑,SpringMVC用于构建Web应用程序,MyBatis作为ORM框架简化数据库操作。前端则使用Vue.js来实现动态用户界面,搭配Vue Router进行页面导航,以及Vuex进行状态管理。数据库选用MySQL,确保数据的安全性和可靠性。 该项目不仅提供了一个完整的技术实现示例,还为开发者留下了扩展和改进的空间,可以根据实际需求添加新功能或优化现有功能。
本项目是一个基于SSM(Spring+SpringMVC+MyBatis)后端框架与Vue.js前端框架开发的网上球鞋竞拍系统。该项目旨在为球鞋爱好者提供一个便捷、高效的在线竞拍平台,用户可以在此平台上浏览、搜索、竞拍心仪的球鞋,并参与到各种有趣的竞拍活动中。 系统的主要功能包括用户注册登录、球鞋信息展示、竞拍活动创建与管理、实时竞拍以及交易安全保障等。用户可以通过注册账号后,浏览平台上发布的各类球鞋信息,包括品牌、型号、颜色、尺码以及当前竞拍状态等。系统支持用户创建和管理自己的竞拍活动,设定竞拍规则和时间,同时提供实时竞拍功能,确保公平、透明的交易过程。 在技术实现上,后端采用SSM框架进行开发,Spring负责业务逻辑层,SpringMVC处理Web请求,MyBatis进行数据库操作,保证了系统的稳定性和扩展性。前端则使用Vue.js框架,结合Axios进行数据请求,实现了前后端分离,提高了开发效率和用户体验。 数据库设计方面,系统采用了MySQL数据库,存储用户信息、球鞋信息、竞拍活动等数据,确保数据的安全性和完整性。此外,项目还包含了详细的文档资料,包括需求分析、系统设计、数据库设计以及测试报告等,为项目的实施和维护提供了有力的支持。 该项目不仅适合作为计算机相关专业学生的毕业设计题目,也适合Java学习者进行实战练习,通过在此基础上进行功能扩展和改进,可以进一步提升编程技能和项目管理能力。
使用教程】 一、环境配置 1、建议下载anaconda和pycharm 在anaconda中配置好环境,然后直接导入到pycharm中,在pycharm中运行项目 anaconda和pycharm安装及环境配置参考网上博客,有很多博主介绍 2、在anacodna中安装requirements.txt中的软件包 命令为:pip install -r requirements.txt 或者改成清华源后再执行以上命令,这样安装要快一些 软件包都安装成功后才算成功 3、安装好软件包后,把anaconda中对应的python导入到pycharm中即可(不难,参考网上博客) 二、环境配置好后,开始训练(也可以训练自己数据集) 1、数据集准备 需要准备yolo格式的目标检测数据集,如果不清楚yolo数据集格式,或者有其他数据训练需求,请看博主yolo格式各种数据集集合链接:https://blog.csdn.net/DeepLearning_/article/details/127276492 里面涵盖了上百种yolo数据集,且在不断更新,基本都是实际项目使用。来自于网上收集、实际场景采集制作等,自己使用labelimg标注工具标注的。数据集质量绝对有保证! 本项目所使用的数据集,见csdn该资源下载页面中的介绍栏,里面有对应的下载链接,下载后可直接使用。 2、数据准备好,开始修改配置文件 参考代码中data文件夹下的banana_ripe.yaml,可以自己新建一个不同名称的yaml文件 train:训练集的图片路径 val:验证集的图片路径 names: 0: very-ripe 类别1 1: immature 类别2 2: mid-ripe 类别3 格式按照banana_ripe.yaml照葫芦画瓢就行,不需要过多参考网上的 3、修改train_dual.py中的配置参数,开始训练模型 方式一: 修改点: a.--weights参数,填入'yolov9-s.pt',博主训练的是yolov9-s,根据自己需求可自定义 b.--cfg参数,填入 models/detect/yolov9-c.yaml c.--data参数,填入data/banana_ripe.yaml,可自定义自己的yaml路径 d.--hyp参数,填入hyp.scratch-high.yaml e.--epochs参数,填入100或者200都行,根据自己的数据集可改 f.--batch-size参数,根据自己的电脑性能(显存大小)自定义修改 g.--device参数,一张显卡的话,就填0。没显卡,使用cpu训练,就填cpu h.--close-mosaic参数,填入15 以上修改好,直接pycharm中运行train_dual.py开始训练 方式二: 命令行方式,在pycharm中的终端窗口输入如下命令,可根据自己情况修改参数 官方示例:python train_dual.py --workers 8 --device 0 --batch 16 --data data/coco.yaml --img 640 --cfg models/detect/yolov9-c.yaml --weights '' --name yolov9-c --hyp hyp.scratch-high.yaml --min-items 0 --epochs 500 --close-mosaic 15 训练完会在runs/train文件下生成对应的训练文件及模型,后续测试可以拿来用。 三、测试 1、训练完,测试 修改detect_dual.py中的参数 --weights,改成上面训练得到的best.pt对应的路径 --source,需要测试的数据图片存放的位置,代码中的test_imgs --conf-thres,置信度阈值,自定义修改 --iou-thres,iou阈值,自定义修改 其他默认即可 pycharm中运行detect_dual.py 在runs/detect文件夹下存放检测结果图片或者视频 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值