3 Spring Boot与Spring Cloud
由于JVM的负担较大,对于大型项目Go语言实现微服务更加轻便,而对于一些中型项目实现微服务,有庞大的java、spring生态群,我们往往通过Spring boot+Spring Cloud实现。常用的微服务模式都在spring cloud中都得以实现。Spring cloud 是在spring boot的基础上发展起来的。
JHipster可以用于搭建一个微服务的项目Demo,自己动手实践一个Demo,可以帮助快速理解微服务。spring cloud框架举例:Fiegn Client(服务间调用)、Circuit Breaker:Hystrix(自己制造错误测试)、Spring Cloud Stream。
4 微服务与其它技术
Docker是一种容器化的技术,微服务只有容器化技术结合才能称为微服务,一定要学习。Kubernetes用于大规模容器化集群,不熟悉Kubnetes则微服务寸步难行。分布式配置、服务发现、升级等都可以在Kubernetes进行管理。微服务中测试也十分重要,包含:Unit Testing、integreation Testing、Component Testing、Contract Testing、E2E/Performances Testing。
对于app、平台、体系系统都需要全面的监测,需要Monitor。微服务的日志需要进行集中管理,LogStash+ElasticSearch+Kibana可以很好的把日志进行管理。同时也需要Tracing工具,因为微服务中调用过程十分复杂,没有Tracing机制定位问题十分困难,MQ可以进行Tracing。
5 展望
一个好的微服务是云原生的平台,要把底部硬件的细节屏蔽,可以在不同的云上迁移。