开源中间件通讯(创始卷,第2期)
Posted 开源中间件
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了开源中间件通讯(创始卷,第2期)相关的知识,希望对你有一定的参考价值。
开源中间件通迅小报试刊。
汇集整理业界重要的开源中间件技术新闻,不定期分享业界观察,好书精要,优秀培训资料,技术文章和大会主题内容。
帮助开发者掌握一手的知识和技术动向。
技 术 新 闻
Eclipse 发布MicroProfile 3.0规范
MicroProfile(https://microprofile.io/)是Java社区针对微服务架构提出来的规范集合。
当时在Oracle对Java EE的态度并不确定,Java开发者社区借鉴来自Netflix开源的若干Java微服务组件,以及Spring Cloud项目。对微服务开发中遇到的跨进程要考虑的技术因素进行归纳,结合若干Java EE的基础规范,组成一个面向微服务开发的规范集合。
MicroProfile规范,简单来说可以分为两大部分:
基本规范。在组件部分使用CDI规范,进行Java对象之间的动态注入。Web使用JavaRS提供Rest数据访问。定义了RestClient获取下层数据,没有定义JPA等数据层技术规范。Rest数据访问采用javax名域的JSONP/JSONB规范。对于配置项的处理,MicroProfile使用Config规范,可以读取来自属性文件,系统环境变量等等的配置信息。
微服务相关。包括Metrics性能测量,Health Check健康度检测,JWT Propagation安全令牌传递,Fault Tolerance容错处理,Open Tracing跟踪信息,OpenAPI开放API规范等。
3.0版本中,没有加入和更新较大特性,这个版本可以看成是一段时期技术工作的总结性发布,
为下一步的针对Reactive数据库, Event数据处理,LRA长事务操作,Service Mesh服务边界接口,GraphSQL等众多新内容做好准备。
在Jakarta EE未在授权方面达成一致前,很难进行代码变动,新的功能放到MicroProfile中是个不错的主意。Jakarta EE和MicroProfile作为Eclipse下面的两个规范集,未来进行融合也是自然而然。
Wildfly 17发布
RedHat JBoss应用服务器Wildfly发布了版本17,应该算是Quarkus项目推出JBoss开发组调整后的首次发布。
Wildfly继续在云端特性不断改进,开发了Wildfly Operator的第一个版本,并发布在operatorhub.io网站上。
Operator可以看作目前是Kubernetes的通用扩展机制,kubectl可以直接管理Wildlfy服务器和其部署在云上的应用。
从16版本开始,Wildfly提供了Galleon打包机制,用户可以构建含有不同特性的安装包,进一步构建出不同的容器镜像包。
在Openshift Launch网站上,开发者可以选择几种常用的运行时框架,Wildfly包含其中,此外还有SpringBoot, Vertx, Nodejs. .NET core等。
Wildfly 17在集群方面有很多特性加强:
可以使用独立的子系统来配置分布式的web session,帮助开发者更好的配置集群。
可以利用基于Hotrod协议的分布式Infinispan来管理缓存。
使用HA Singleton服务的应用,可以注册监听器来收到通知,比如在服务开始和结束时,集群节点被选举成为首要提供者等。
消息方面的加强有:
支持在http负载均衡后面配置消息集群,这样消息客户端可以直接定位负载均衡器,而不用考虑后面的服务器。
嵌入的消息broker打开日志文件的超时时长可以配置。
远程AMQ broker的连接配置加强。
其他还有:
访问日志的JSON格式自由定制
Elytron JDBC的安全realm支持对hash,密码和加盐进行编码
HAL管理控制台的页面题目可以自行定义
可以配置服务器端的EJB interceptor
部署描述文件由wildfly-core来解析
CLI工具可以获取Let's Encrypt的服务端证书
Wildlfy 17 已经支持JDK 12,目前支持的JDK版本有8,11,12
维护了当前所有JDK下载的页面
https://jdk.dev/download/
包括了目前 Java 领域知名公司和组织维护的JDK下载页面:
Oracle JDK(商业版本)
Oracle OpenJDK
Red Hat OpenJDK
Azul Zulu
AdoptOpenJDK
Amazon Corretto
SAP SapMachine
BellSoft Liberica JDK
以上基本都是基于OpenJDK的厂商或组织支持版本
另外还有一个JDK相关方案归总:
GraalVM (支持各种语言的高级虚拟机,如javascript, Python, Ruby, R, JVM基础语言Java, Scala, Kotlin, Clojure, LLVM基础语言C, C++,支持AOT)
基于Eclipse OpenJ9的AdoptOpenJDK版本
Azul的Zing,商业版本还有C4编译器
阿里的Dragonwell 8
GNU IcedTea (JamVM 和 CACAO虚拟机)
Aleksey Shipilev的二进制编译包
Pivotal Spring runtime
Pivotal公司宣布了Spring runtime的官方支持。包括的技术有:
Pivotal 的 OpenJDK发行版。基于AdodtOpenJDK,签署了白金技术支持协议。
Spring的支持,包括Spring框架,Spring Boot,Spring Cloud,Spring Cloud Dataflow等
Tomcat的支持,即tc Server服务器。提供了配置模板,诊断工具和集群方案,安全性保证。
值得关注的是,在衡量支持范围指标上,除了常用的CPU核心数,加入了Kubenetes Pod数目。
目前为每年50个Pod,支持价格为25K美金,而8核服务器每年支持价格是4K美金。
这个价格定义很值得琢磨:
从数值上看,8核每年4K,也就是48核24K,和50Pod每年25K基本一致。所以这两种报价是类似的。
但50个Pod的打包价,要远高于CPU核数打包报价。也就是对于云端部署,一般认为规模是更大的。
Kubernetes逐渐成为容器化部署标准,厂商也给出了基于Pod的报价方案,但在实际操作如何真实衡量使用量,即一方面架构师拆分微服务为细粒度,另一方面又基于服务化的容器来收取支持费用,微服务粒度的大小,需要进一步探讨。
业 界 观 察
Azure Kubernetes 服务中国区可用
微软云服务Azure,宣布其Kubernetes服务在中国区提供服务,包括东2区和北2区。
(https://azure.microsoft.com/en-us/updates/general-availability-azure-kubernetes-service-in-china-china-east2-and-china-north2/?WT.mc_id=aksch-twitter-jagord)
尽管Azure Kubernetes早已在全球很多区域提供服务,但还是首个国内大陆范围的共有云Kubernetes服务。
(https://azure.microsoft.com/en-us/global-infrastructure/services/?products=kubernetes-service®ions=non-regional,us-east,us-east-2,us-central,us-north-central,us-south-central,us-west-central,us-west,us-west-2,china-non-regional,china-east,china-east-2,china-north,china-north-2,japan-east,japan-west,korea-central,korea-south,asia-pacific-east)
亚马逊云也还没有在国内开通EKS
(AWS全球区域服务表 https://amazonaws-china.com/cn/about-aws/global-infrastructure/regional-product-services/)
另外谷歌云不用说,没有入华时间表。国内的阿里云,腾讯云,华为云等已经有了Kubernetes云服务。相信公有云服务中,基础服务和基于Kubenetes会成为企业云计算的主要选择。
培 训 资 料
一个非常好的免费Java培训课程
网址 https://testautomationu.applitools.com/java-programming-course/
梳理到位的课程大纲,覆盖了Java基础知识:
编程和算法综述
Java基础
条件判定If else 嵌套
条件判定 Switch
关系和逻辑操作符
循环 Do while
循环 For
循环嵌套
方法
条件变量范围
类和对象
对象实例化
方法参数和返回值
类的方法重载
数组
查询数组
数据类型
字符串
接口
继承
继承关系的对象初始化
对象的方法覆盖和重载
访问限制和多重继承
多态和泛型
抽象类
接口
集合框架
遍历集合和Map
异常和抛出
自动化测试
如果能加入一些流和函数式方面,以及泛型更深入一些会更好。
以上是关于开源中间件通讯(创始卷,第2期)的主要内容,如果未能解决你的问题,请参考以下文章
分布式技术专题「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构
分布式技术专题「OSS中间件系列」从0到1的介绍一下开源对象存储MinIO技术架构