1. Java Keynotes
先是社区代表亮相,为Java社区背书。
接下来是每年都有的Innovation Sponsor Intel的时间,当然不全是广告,从这个过程中还是可以了解到Intel的一些策略和核心关注点。
Data is Future
They want to enable the Future by Speed, Scale and Smart
They have proof that they are faster enough!
And us Alibaba represents Scalable, Proud!
Smart means supporting AI
这里面提出了OpenJDK的Panama项目的Vector API,用于支持AI,详情前往https://software.intel.com/en-us/articles/vector-api-developer-program-for-java
接下来的部分主要是介绍Java与Cloud,微服务的紧密关系。以及JAVA9的部分特性。包含一系列的DEMO演示,这里就不多说了,相信其它同学会有更详细的介绍这块内容。我个人的收获就是我极大的增强了对JAVA的信心,我不需要学习其它编程语言了,哈哈
2. Micro Services related at this JavaOne
2.1 异步编排微服务
此次的微服务相关主题绝大部分都与异步、Reactive、Message Driven、Event Sourcing有关,其实这与很多年前ebay所提出来的能异步则异步很相似。
简单来说就是异步化、消息驱动的微服务编排架构。这样做的好处是什么呢?
- 松耦合
- 更少的对设计者的依赖,很好的契合了微服务所提倡的自治
- 更好的并发以及更好的容错性
当然,不完全是好处,也有缺点:执行的不可预测性,以及不可测性。我觉得作者有意没有讲出更多的缺点。很多相关的Speaker都提出来Reactive的系统,比如用户提交时异步变更数据库,通过异步的Server Push再告知用户结果,有一些为了用而用的嫌疑,因为这样会带来很多复杂性,也会对用户体验有影响。Anyway, 我们应该审视一下我们哪些系统或服务或模块是可以异步的
2.2 我收获最多的微服务session
一、微服务绝对不仅仅是小,是单一职责的原则就可以了,微服务要实现团队间依赖更少的合作,服务要实现自治(做神一样的队友)
二、承诺说,有点像我们文化里面的ownership,"即使不是自己的职责,也是推诿"。大家仔细体会一下,尤其是那个tweet。
三、越Hot的数据往往占用了越多的资源,对性能也越关键,但往往是占用更少的空间。但是 往往有很多多的不同解决方案
四、没有所谓的无状态, 只是将状态推脱给别人。现实生活中,我们的很多方案都是不完美的,都是一种平衡,而我们往往听到一种观点,就不假思索的认为可以解决所有的问题,最后再返工浪费时间
五、所有的事实都在LOG中,数据库中的数据是LOG的子集。这个观点是用来引出Event Sourcing的,这块前面已经介绍过,这里不再详述
六、大家都讨厌最终一致,但它是necessary的