Go语言HTTPServer开发的六种实现
学完了 net/http 和 fasthttp 两个HTTP协议接口的客户端实现,接下来就要开始Server的开发,不学不知道一学吓一跳,居然这两个库还支持Server的开发,太方便了。
相比于Java的HTTPServer开发基本上都是使用Spring或者Springboot框架,总是要配置各种配置类,各种 handle 对象。Golang的Server开发显得非常简单,就是因为特别简单,或者说没有形成特别统一的规范或者框架,我发现了很多实现方式,HTTP协议基于还是 net/http 和 fasthttp ,但是 handle 语法就多种多样了。
先复习一下: Golang语言HTTP客户端实践 、 Golang fasthttp实践 。
在Golang语言方面,实现某个功能的库可能会比较多,有机会还是要多跟同行交流,指不定就发现了更好用的库。下面我分享我学到的六种Server开发的实现Demo。
基于 net/http 实现,这是一种比较基础的,对于接口和 handle 映射关系处理并不优雅,不推荐使用。
第二种也是基于 net/http ,这种编写语法可以很好地解决第一种的问题,handle和path有了类似配置的语法,可读性提高了很多。
第三个基于 net/http 和 github.com/labstack/echo ,后者主要提供了 Echo 对象用来处理各类配置包括接口和handle映射,功能很丰富,可读性最佳。
第四种依然基于 net/http 实现,引入了 github.com/gin-gonic/gin 的路由,看起来接口和 handle 映射关系比较明晰了。
第五种基于 fasthttp 开发,使用都是 fasthttp 提供的API,可读性尚可,handle配置倒是更像Java了。
第六种依然基于 fasthttp ,用到了 github.com/buaazp/fasthttprouter ,有点奇怪两个居然不在一个GitHub仓库里。使用语法跟第三种方式有点类似,比较有条理,有利于阅读。
微服务框架全家福都有哪些
度娘给出的一个完整答案,总结的很全面
Java系微服务框架
·Spring Boot/ Netflix OSS/Spring Cloud
·Dubbo
·Dropwizard
·Akka
·Vert.x/ Lagom/ ReactiveX/Spring 5
·除了以上介绍的这些主流微服务框架外,还有Grizzly、KumuluzEE、ConductR、Ninja、Jodd、Restlet、RESTEasy、Payara Micro、Redkale、RestExpress、restx、JessMA、eventuate、Rapidoid、Ratpack、Javalite、JHipster及Bootique.io等
.Net系微服务框架
·Service Fabric
·Surging
·Steeltoe OSS
·Microdot Framework
·.NET China Foundation
·除以上框架,还有Xigadee、Apworks framework、Cronus、NancyFx、GRPC等相关框架和项目
Node.js微服务框架
·Seneca
·Hapi/ restify/ LoopBack
Go微服务框架
·Go-Kit
·Goa
·Dubbogo
·除了上面3种基于Go语言的微服务框架,还有Micro、Gizmo等
Python微服务框架
·Nameko, Python的微服务框架非常少,暂时就列出一个框架
Spring框架同类技术有哪些,还是它独霸天下
在JavaEE的轻量级框架中,不同层次有不同的框架,Spring主要提供了IoC和AOP两大功能,这一点其他框架都没有提供,基本上可以说在这个层面是没有替代者的,而且这个现象已经持续了十余年,说是独霸天下也不为过。同时SpringMVC也取代了Struts 2,MyBatis取代了Hibernate,以往的SSH框架现在基本上变成了SSM框架的组合。
go语言有没有类似tp5框架
有,go语言有框架,例如:Beego(Go语言下开源的,高性能Web框架 )、Buffalo(Go语言下快速Web开发框架)、Echo、Gin、Iris、Revel(高生产率,全栈Go语言的Web框架)等。