4月11号买的书,5月11号开始写读后感和实践。截止现在,差不多读了有两遍。 整本书200页不到,比较薄。
第一遍是在高铁上读的,我看书比较快,加之本身也就200页不到,略过代码还有一些API介绍的文字,读完整本书,也就花了六个小时不到。当时就感觉这本书压根不值65块,书上讲的微服务概念、springboot、node.js、zookeeper、docker、jenkins,这些东西都是网上随便找篇博客就可以入门了,而且网上写的比书上更加通俗易懂。
第二遍基本是下班后在公司读的。读的比较细,不懂的地方会上网搜搜,也试着开始试着实践。可能因为我没有真正的自己搭过一套微服务的框架有关系,第二遍整个过程下来,跟第一遍的印象不一样,反而收获良多。随着作者的文字我开始思考:怎么注册服务、怎么发现服务、怎么做健康检查、怎么做网关、怎么持续集成。开始想书里是怎么做的,先实践一遍,然后想有没有更好的做法。
总结一下自己想到的微服务框架需要做到的事情:
1、server端和client统一,以及如何生成.java文件或.cs文件。
这个问题归根结底是一个沟通问题,如果是java跟java之间交流,其实不存在这个问题, 直接提供.java文件即可。但是,如果是java跟.net之间交流,或者java跟php之间的交流,那问题就比较坑。
可以用xsd或者pb来解决,然后做一个根据xsd或者pb生成service和client代码的工具。
2、服务注册
java+zookeeper来实现服务的注册
3、服务的发现(微服务网关)
可以分为两种,一个是前段,一个是后端。
前端可以通过node.js+zookeeper做个服务发现和反向代理
后端可用java+zookeeper来进行管理,提供一个java的客户端,客户端根据servicename来查询服务地址, 算出一个地址后,直接将请求post过去。
这样可以去中心化,不再需要网关帮忙转发请求, 这个应该也是ESB和为微服务的区别。
同时,可以将这个地址在客户端做个缓存,但是,服务地址发生变化时,客户端的地址也需要跟着变化。
4、服务的封装与发布
gitlab代码管理。
jenkins跑自动化测试case,跑sonar,生成jar包。
jenkins+docker部署到生产。
关于微服务网关,除了最重要的服务发现之外,我们还需要做以下内容:
1、安全认证
2、性能监控
3、日志分析
4、请求分片
5、静态响应
完成主要的1、2、3、4点之后,我们将一一的来考虑如果做。