ImportNew 一周资讯 : 开发者应该了解的 RabbitMQ 最佳实践

2018 年 12 月 17 日 ImportNew

(点击上方公众号,可快速关注)


来源:lmportNew - 唐尤华


ImportNew小编为您搜集有关Java业界、资源一周资讯(2018.12.10)。

(内容无特殊说明均为英文,这里仅做摘编,点击链接可直达原文。)


1. RabbitMQ 最佳实践(视频+文章):来自  pivotal


解读:这份视频列表里包含了以下内容:


视频:现实世界中的 RabbitMQ 部署 — Gerhard Lazu & Wayne Lund


https://content.pivotal.io/rabbitmq-best-practices/real-world-rabbitmq-deployments-gerhard-lazu-wayne-lund


视频:从数千个 RabbitMQ 生产集群中得到的经验总结 — Lovisa Johansson


https://content.pivotal.io/rabbitmq-best-practices/what-weve-learned-from-running-thousands-of-production-rabbitmq-clusters-lovisa-johansson


视频:主旨演讲:RabbitMQ 习惯用语 — Gavin M Roy


https://content.pivotal.io/rabbitmq-best-practices/keynote-idiomatic-rabbitmq-gavin-m-roy


视频:专题讨论:RabbitMQ 即将可用的新特性


https://content.pivotal.io/rabbitmq-best-practices/panel-discussion-whats-new-and-whats-on-the-horizon-for-rabbitmq


视频:每位使用 RabbitMQ 开发者都应该知道的10件事 2018.12 网络研讨会


https://content.pivotal.io/rabbitmq-best-practices/dec-12-10-things-every-developer-using-rabbitmq-should-know-webinar


视频:RabbitMQ 最佳实践 — 配合 CloudAMQP


https://content.pivotal.io/rabbitmq-best-practices/rabbitmq-best-practice-webinar-with-cloudamqp-2


视频:RabbitMQ 与微服务故障诊断及使用建议 — Michael Klishin


https://content.pivotal.io/rabbitmq-best-practices/troubleshooting-rabbitmq-and-microservices-that-use-it-michael-klishin-2


博客:高性能(高吞吐量)RabbitMQ 最佳实践


https://www.cloudamqp.com/blog/2018-01-08-part2-rabbitmq-best-practice-for-high-performance.html


博客:13 个 RabbitMQ 常见错误


https://www.cloudamqp.com/blog/2018-01-19-part4-rabbitmq-13-common-errors.html


2. J2CL—迟到总比不到好:来自 javacodegeeks


解读:J2CL 由 Google GWT 小组开发,可以把 Java 翻译成 Closure 风格的 JavaScript 代码。J2CL 通过转译器(transpiler)借助 Closure 编译器实现,基于 Bazel 进行构建。2015年齐 J2CL 开源就被提上了日程。2018年12月5日,Google 终于开源了 J2CL 的源代码 https://github.com/google/j2cl。尽管目前使用起来还有一些限制,但迟到总比不到好。


3. 使用 Java 10 Graal 和 C2 比较 Kotlin 性能:来自 javaadvent


解读:Java 10 引入了新的 Graal 编译器,对比传统的 C2 编译器优势如何?这篇文章用游戏程序对二者性能进行了测试。作者实现了曼德布洛特复数集合生成器(Mandelbrot Set Generator)与背包解算器(Knapsack Solver),实现采用 Kotlin 语言,分别用 Graal 与 传统 C2 编译器编译。对比结果如下:


  • 曼德布洛特复数集合生成器测试:Graal 比 C2 快 18%。

  • 背包解算器(递归实现)测试:优化前 Graal 比 C2 慢 54%,改进 key 生成后 Graal 比 C2 快了一些。


C2 对经典的 Java 用法进行了大量优化,而 Graal 在小方法和轻量级对象上有优势,后者更符合 Kotlin 的使用习惯。

 

4. JDPR— Java数据保护推荐 :来自 javaadvent


解读:个人用户信息(personally-identifiable information PII)保护已经成为了大家关注的话题,欧盟在2018年公布了GDPR(公民通用数据保护条例)。这篇文章介绍了在 Java 应用中保护个人信息推荐措施:


  1. 在应用中定位个人信息和敏感数据:比如在 POJO 中搜寻类似 getAddress()、getName() 这样的 API,在 JDBC 和 ORM 开发库中检查数据查询,借助类似 CONTRAST 这样的安全检查工具 ;

  2. 合理地进行加密:开发者可以很好地利用 Java 加密套件。JDK9 开始默认不限制加密能力(早先版本由于出口要求默认开启限制)。常见的加密方法包括哈希、对称加密与非对称加密。视频:如何应用 Java 加密;

  3. 为自定义代码、开发库与 JRE 打补丁。可以借助 OWASP 依赖检查工具或 CONTRAST 社区版对项目进行已知漏洞检查。


5. Docker 与 JVM:来自 javaadvent


解读:“一次编写,到处运行”的问题。这句话对 Java class 本身没有问题,但数据库驱动、文件系统访问、网络访问、第三方开发库可能就没那么肯定了。对比传统虚拟机解决方案,在 Docker 上部署 Java 有几大优势,部署的文件小、可分层部署。例如,一个典型的 Dockerfile 可能类似这样,每个步骤都可以作为独立的层次(layer):


  1. 全新 Ubuntu 安装;

  2. 安装 Java;

  3. 安装依赖 A;

  4. 安装依赖 B;

  5. 拷贝 jar 文件。


当然,Docker 部署 Java 还是有一些坑。比如 JVM 无法“理解”容器的内存和 CPU 限制。文章里给出了 JVM Dockerfile 的通用解决方案。

本文作者在伦敦 CodeNode 上的视频讲解: Cloud Ready JVM with Kubernetes


https://skillsmatter.com/skillscasts/12502-ljc-london-java-community


6. Serverless, Java 与 FN 项目,小试牛刀:来自 javaadvent


解读:除了传统的云服务厂商,越来越多的 Serverless 项目可以摆脱厂家的锁定,提供了更多的选择。这篇文章介绍了 FN 项目 http://fnproject.io/,用 Java 方便地开发出一个 Serverless 功能。用 FN 开发一个 Serverless 功能主要有以下几步:


  1. 初始化建立项目:依赖 Docker 17.10.0-ce 或更高版本,下载 FN;

  2. 初始化 FN 功能:用 fn init 命令初始化项目结构,打开生成的 HelloFunction.java 处理请求,核心功能在 func.yaml 中提供了实现;

  3. 单元测试:实现 HelloFunctionTest.java,加入 @Run 添加依赖,添加测试代码;

  4. 部署与调用:验证功能,访问 http://localhost:8080/t/myapp1/function1-trigger,返回 Hello, Java!;

  5. 扩展功能:使用 JSON 进行请求。


真的很迅速,可以自己动手试一下。


7. 如何用 Hibernate 把 PostgreSQL Enum 映射到 JPA 实体属性:来自 javaadvent


解读:hibernate-types 开源项目可以映射 JSON、数据、YearMonth、Month 或数据库里的数据列。这篇短文介绍了如何使用 JPA 和 Hibernate 映射 PostgreSQL Enum 类型:添加 Maven 依赖,定义模型,测试。


【关于投稿】


如果大家有原创好文投稿,请直接给公号发送留言。


① 留言格式:
【投稿】+《 文章标题》+ 文章链接

② 示例:
【投稿】《不要自称是程序员,我十多年的 IT 职场总结》:http://blog.jobbole.com/94148/

③ 最后请附上您的个人简介哈~



看完本文有收获?请转发分享给更多人

关注「ImportNew」,提升Java技能

登录查看更多
0

相关内容

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。其中较为成熟的MQ产品有IBM WEBSPHERE MQ。
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
162+阅读 · 2020年5月14日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
77+阅读 · 2020年4月24日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
165+阅读 · 2019年10月28日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
19+阅读 · 2019年10月9日
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
最佳实践:阿里巴巴数据中台
AliData
26+阅读 · 2019年7月26日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
52+阅读 · 2018年12月20日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
Music Transformer
Arxiv
5+阅读 · 2018年12月12日
Arxiv
11+阅读 · 2018年9月28日
Exploring Visual Relationship for Image Captioning
Arxiv
15+阅读 · 2018年9月19日
Arxiv
4+阅读 · 2018年6月1日
Arxiv
6+阅读 · 2018年1月14日
VIP会员
相关VIP内容
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
58+阅读 · 2020年6月26日
FPGA加速系统开发工具设计:综述与实践
专知会员服务
66+阅读 · 2020年6月24日
【高能所】如何做好⼀份学术报告& 简单介绍LaTeX 的使用
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
162+阅读 · 2020年5月14日
【实用书】流数据处理,Streaming Data,219页pdf
专知会员服务
77+阅读 · 2020年4月24日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
165+阅读 · 2019年10月28日
计算机视觉最佳实践、代码示例和相关文档
专知会员服务
19+阅读 · 2019年10月9日
相关资讯
滴滴离线索引快速构建FastIndex架构实践
InfoQ
21+阅读 · 2020年3月19日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
最佳实践:阿里巴巴数据中台
AliData
26+阅读 · 2019年7月26日
浅谈 Kubernetes 在生产环境中的架构
DevOps时代
11+阅读 · 2019年5月8日
一天精通无人中级篇:遥控器协议 S-BUS
无人机
52+阅读 · 2018年12月20日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
Top
微信扫码咨询专知VIP会员