Soul网关-day01

Soul网关

初识Soul网关

​ 猫大人的项目集:https://dromara.org/en-us/;Soul网关的github地址:https://github.com/Dromara/soul

​ 逛github就像逛B站一样star,watch,fork一键三连必不可少,为猫大人拉拉票~

​ 言归正传,我们认识一项技术时,首先需要明确的是:这个技术是什么,用的是什么思想,用来解决什么问题;

Soul网关是怎样一个框架

​ 这是一个异步的,高性能的,跨语言的,响应式的API网关。它:

1. 支持各种语言(http协议),支持 dubbo,springcloud协议。
2. 插件化设计思想,插件热插拔,易扩展。
3. 灵活的流量筛选,能满足各种流量控制。
4. 内置丰富的插件支持,鉴权,限流,熔断,防火墙等等。
5. 流量配置动态化,性能极高,网关消耗在 1~2ms。
6. 支持集群部署,支持 A/B Test, 蓝绿发布。

​ 需要的安装环境:

1. JDK 1.8+
2. Maven 3.2.x
3. Git
4. mysql

Soul网关源码拉取

​ 只是把Soul拉下来比较单调,就多讲点成为Soul Contributor的方法吧,开始接任务的时候其实早就做完了,但由于以前没用github进行过协同开发,所以一直瑟瑟发抖不敢提交,怕出错,在研究了Soul文档以及提交规范不下10遍后,才战战兢兢的提了pull request,结果很快就被accept了(当然,可能和我的任务特别简单有关…)

  1. ​ fork

    这一步是成为Contributor的第一步,将Soul源码fork到自己的仓库,然后运行以下指令:

    git clone 你自己的repository
    

    这个时候你自己的repository就会变成origin,为后续Push操作提供了上传依据。

  2. 设置upstream

    git remote add upstream https://github.com/dromara/soul.git
    
  3. 选择需要修改的issue,就是issue列表中的数字;当然其实有更复杂的操作,不过我暂时没用到,复杂的操作如下:

    请在选择您要修改的issue。如果是您新发现的问题或想提供issue中没有的功能增强,请先新建一个issue并设置正确的标签。
    在选中相关的issue之后,请回复以表明您当前正在这个issue上工作。并在回复的时候为自己设置一个deadline,添加至回复内容中。
    

    大概是如果没有的话需要自己主动提一个issue;并表示你在该issue上工作,并且回复相应的信息。

  4. 切换到你的仓库里fork的master分支,这步我记得不是太清楚了,似乎一开始就work在master分支?但这样操作保险点,应该在第二步可以保证本地fork到的代码是soul仓库中最新的。

    git checkout master
    git pull upstream master
    git checkout -b [issueNo,就是issue上的数字]
    

    仔细看了下,有这样一个说明:

    注意 :PR会按照squash的方式进行merge,如果不创建新分支,本地和远程的提交记录将不能保持同步

    不是太懂squash是什么意思,但还是照着做比较好。

  5. 注意代码格式,Soul有相应的代码规范,在如下网址(我就不凑这个字数了):

    https://dromara.org/zh-cn/docs/soul/code-conduct.html

  6. push到你fork的git仓库,直接运行以下指令就好了:

    git add 修改代码
    git commit -m 'commit log'
    git push origin issueNo
    
  7. push以后去仓库可以看到,会有个提示说你的代码可以merge了,点击那个按钮就可以进入pull request的编辑界面了。说个小插叙,就是开始不知道前面那个√怎么打上去的,然后发现github下面其实会有个文档教怎么去编辑的,最终结果就是,在需要打勾的条目前面会有一个“[ ]”,把它改成“[x]”就能在preview上看到,前面都√,勾上了。

  8. 接下来就是修修改改pr的代码。

Soul网关初体验

​ 需要maven环境,然后我是运行以下maven指令,和其他同学有点小区别,但其实差别应该不是太大:

mvn clean install -Dmaven.javadoc.skip=true -Drat.skip=true -DskipTests 

觉得console里面不断地刷东西很烦的话,就在上面的命令后面加" > log.txt";感觉一般就是看看结果成功没,哪里出错了,感觉没必要在console里面不停的刷,我电脑性能不太行,刷的感觉会特别卡,估计是内存不足的原因,不过这台笔记本又不给加内存条…就,凑合着用吧…

​ 基本没啥意外的话都会成功的,然后就是跑Soul-admin了,要改的就是soul-admin下的application.yml
Soul网关-day01
​ 这个位置改成本地数据库的密码;如果不用mysql的话,url和driver-class-name也要一起改了。
跑起来以后大家的界面都一样,我就不放上来了。
​ soul-bootstrap也差不多,还没有打断点去追,这几天又开始莫名其妙的忙起来了,就先更这么多,看看能不能(抄 划掉)借鉴一下其他同学的思路。

上一篇:Excelize 2.3.2 发布,Go 语言 Excel 文档基础库,2021 年首个更新


下一篇:CoreText原理及基本使用方法